diff --git a/plugins/acme-ssl/locales/translated/bn_BD.json b/plugins/acme-ssl/locales/translated/bn_BD.json index 5c0aaa55b..4b056c0c9 100644 --- a/plugins/acme-ssl/locales/translated/bn_BD.json +++ b/plugins/acme-ssl/locales/translated/bn_BD.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "ACME সার্টিফিকেটগুলি পরিচালনা করুন", + "description": "সার্টিফিকেটের অবস্থা দেখুন এবং এখনই একটি নতুন সার্টিফিকেটের জন্য অনুরোধ করুন।" } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "স্বয়ংক্রিয়ভাবে নবায়ন করুন", + "description": "দিনে দুইবার পরীক্ষা করুন এবং যখন কোনো সার্টিফিকেট থাকবে না, সেটি ডোমেইনকে কভার করবে না, অথবা ৩০ দিনের মধ্যে এর মেয়াদ শেষ হয়ে যাবে, তখন একটি নতুন সার্টিফিকেট সংগ্রহ করুন।" }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "ডোমেইন", + "description": "সার্টিফিকেটটির পাবলিক ডোমেইন নাম।", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "ইমেল", + "description": "ACME অ্যাকাউন্ট এবং মেয়াদ শেষ হওয়ার বিজ্ঞপ্তির জন্য যোগাযোগের ইমেল।", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "শংসাপত্র কর্তৃপক্ষ", + "description": "সার্টিফিকেটটি কোথা থেকে পাবেন। Let's Encrypt-এর রেট লিমিট অতিক্রম না করে পরীক্ষা করার জন্য স্টেজিং ব্যবহার করুন।", + "letsencrypt": "আসুন এনক্রিপ্ট করি", + "letsencryptStaging": "লেটস এনক্রিপ্ট (স্টেজিং)", + "custom": "কাস্টম ACME ডিরেক্টরি" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME ডিরেক্টরি URL", + "description": "শুধুমাত্র কাস্টম সার্টিফিকেট অথরিটির জন্য। অবশ্যই একটি https URL হতে হবে।" }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "চ্যালেঞ্জের ধরণ", + "description": "ডোমেইনটির মালিকানা কীভাবে প্রমাণ করবেন।", + "http": "HTTP - এর জন্য ইন্টারনেট থেকে পোর্ট ৮০ অ্যাক্সেসযোগ্য হতে হবে।", + "cloudflare": "ডিএনএস (ক্লাউডফ্লেয়ার) - একটি ক্লাউডফ্লেয়ার এপিআই টোকেন প্রয়োজন" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "ক্লাউডফ্লেয়ার এপিআই টোকেন", + "description": "আপনার ডোমেনের জন্য Zone:DNS:Edit অনুমতিসহ স্কোপড টোকেন।" } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "সার্টিফিকেটের অবস্থা", + "none": "কোন সার্টিফিকেট নেই", + "names": "{{names}} কভার করে", + "issuer": "{{issuer}} দ্বারা জারি করা হয়েছে", + "expires": "মেয়াদ শেষ হবে {{date}}", + "lastIssued": "সর্বশেষ প্রকাশিত {{date}}", + "lastError": "শেষ চেষ্টা ব্যর্থ: {{error}}", + "missing": "সার্টিফিকেটের জন্য অনুরোধ করার আগে, ডোমেইন, ইমেল এবং আপনার চ্যালেঞ্জ টাইপের জন্য প্রয়োজনীয় ফিল্ডগুলো সেট করুন, তারপর সেভ করুন।", + "request": "এখনই সার্টিফিকেটের জন্য অনুরোধ করুন", + "requesting": "সার্টিফিকেটের জন্য অনুরোধ...", + "issued": "সার্টিফিকেট ইস্যু এবং ইনস্টল করা হয়েছে" } } diff --git a/plugins/acme-ssl/locales/translated/hi_IN.json b/plugins/acme-ssl/locales/translated/hi_IN.json index 774d505b9..b5ec9ddc4 100644 --- a/plugins/acme-ssl/locales/translated/hi_IN.json +++ b/plugins/acme-ssl/locales/translated/hi_IN.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "ACME प्रमाणपत्रों का प्रबंधन करें", + "description": "प्रमाणपत्र की स्थिति देखें और अभी नए प्रमाणपत्र के लिए अनुरोध करें।" } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "स्वचालित रूप से नवीनीकरण करें", + "description": "दिन में दो बार जांच करें और यदि कोई प्रमाणपत्र मौजूद नहीं है, या वह डोमेन को कवर नहीं करता है, या 30 दिनों के भीतर समाप्त हो रहा है, तो नया प्रमाणपत्र प्राप्त करें।" }, "domain": { "label": "डोमेन", @@ -17,42 +17,42 @@ }, "email": { "label": "ईमेल", - "description": "Contact email for the ACME account and expiry notices.", + "description": "ACME खाते और समाप्ति सूचनाओं के लिए संपर्क ईमेल पता।", "placeholder": "admin@example.com" }, "provider": { "label": "प्रमाणपत्र प्राधिकरण", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "description": "सर्टिफिकेट कहां से प्राप्त करें। Let's Encrypt की दर सीमा का उल्लंघन किए बिना परीक्षण के लिए स्टेजिंग का उपयोग करें।", + "letsencrypt": "आइए एन्क्रिप्ट करें", + "letsencryptStaging": "लेट्स एनक्रिप्ट (चरणबद्ध)", + "custom": "कस्टम एसीएमई निर्देशिका" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME निर्देशिका URL", + "description": "केवल कस्टम सर्टिफिकेट अथॉरिटी के लिए। यूआरएल HTTPS होना चाहिए।" }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "चुनौती का प्रकार", + "description": "आप डोमेन के मालिक होने का प्रमाण कैसे दे सकते हैं?", + "http": "HTTP - इसके लिए इंटरनेट से पोर्ट 80 तक पहुंच आवश्यक है।", + "cloudflare": "DNS (Cloudflare) - इसके लिए Cloudflare API टोकन की आवश्यकता होती है।" }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "क्लाउडफ्लेयर एपीआई टोकन", "description": "आपके डोमेन के लिए Zone:DNS:Edit अनुमति वाला स्कोप्ड टोकन।" } }, "status": { - "title": "Certificate status", + "title": "प्रमाणपत्र की स्थिति", "none": "कोई प्रमाणपत्र नहीं", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "कवर {{names}}", + "issuer": "{{issuer}} द्वारा जारी किया गया", "expires": "{{date}} को समाप्त होगा", "lastIssued": "अंतिम जारी: {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "अंतिम प्रयास विफल रहा: {{error}}", + "missing": "डोमेन, ईमेल और आपके चैलेंज टाइप के लिए आवश्यक फ़ील्ड सेट करें, फिर प्रमाणपत्र का अनुरोध करने से पहले सेव करें।", + "request": "अभी प्रमाणपत्र का अनुरोध करें", "requesting": "प्रमाणपत्र अनुरोध किया जा रहा है...", - "issued": "Certificate issued and installed" + "issued": "प्रमाणपत्र जारी और स्थापित किया गया" } } diff --git a/plugins/acme-ssl/locales/translated/id_ID.json b/plugins/acme-ssl/locales/translated/id_ID.json index 5c0aaa55b..2587f1bc1 100644 --- a/plugins/acme-ssl/locales/translated/id_ID.json +++ b/plugins/acme-ssl/locales/translated/id_ID.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Kelola sertifikat ACME", + "description": "Lihat status sertifikat dan ajukan permohonan sertifikat baru sekarang." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Perpanjang secara otomatis", + "description": "Periksa dua kali sehari dan dapatkan sertifikat baru jika tidak ada, tidak mencakup domain, atau akan kedaluwarsa dalam 30 hari." }, "domain": { "label": "Domain", - "description": "The public domain name for the certificate.", + "description": "Nama domain publik untuk sertifikat tersebut.", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "E-mail", + "description": "Alamat email kontak untuk akun ACME dan pemberitahuan masa berlaku.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Lembaga sertifikasi", + "description": "Di mana mendapatkan sertifikat? Gunakan staging untuk pengujian tanpa melampaui batas kuota Let's Encrypt.", + "letsencrypt": "Mari Enkripsi", + "letsencryptStaging": "Let's Encrypt (pementasan)", + "custom": "Direktori ACME khusus" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL direktori ACME", + "description": "Hanya untuk otoritas sertifikat khusus. Harus berupa URL https." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Jenis tantangan", + "description": "Bagaimana cara membuktikan bahwa Anda pemilik domain tersebut.", + "http": "HTTP - memerlukan port 80 yang dapat diakses dari internet.", + "cloudflare": "DNS (Cloudflare) - memerlukan token API Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Token API Cloudflare", + "description": "Token terlingkup dengan izin Zone:DNS:Edit untuk domain Anda." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Status sertifikat", + "none": "Tidak ada sertifikat", + "names": "Sampul {{names}}", + "issuer": "Dikeluarkan oleh {{issuer}}", + "expires": "Berakhir {{date}}", + "lastIssued": "Terakhir diterbitkan {{date}}", + "lastError": "Upaya terakhir gagal: {{error}}", + "missing": "Atur domain, email, dan kolom yang dibutuhkan oleh tipe tantangan Anda, lalu simpan, sebelum meminta sertifikat.", + "request": "Ajukan sertifikat sekarang", + "requesting": "Meminta sertifikat...", + "issued": "Sertifikat telah diterbitkan dan dipasang." } } diff --git a/plugins/acme-ssl/locales/translated/no_NO.json b/plugins/acme-ssl/locales/translated/no_NO.json index 158b763a8..9309ceb09 100644 --- a/plugins/acme-ssl/locales/translated/no_NO.json +++ b/plugins/acme-ssl/locales/translated/no_NO.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Administrer ACME-sertifikater", + "description": "Se sertifikatstatusen og be om et nytt sertifikat nå." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Forny automatisk", + "description": "Sjekk to ganger om dagen og få et nytt sertifikat når det ikke finnes noe, det ikke dekker domenet, eller det utløper innen 30 dager." }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "Domene", + "description": "Det offentlige domenenavnet for sertifikatet.", "placeholder": "termix.example.com" }, "email": { "label": "E-post", - "description": "Contact email for the ACME account and expiry notices.", + "description": "Kontakt-e-postadresse for ACME-kontoen og utløpsvarsler.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Sertifikatmyndighet", + "description": "Hvor får man tak i sertifikatet? Bruk staging for å teste uten å nå hastighetsgrensene til Let's Encrypt.", + "letsencrypt": "La oss kryptere", + "letsencryptStaging": "La oss kryptere (staging)", + "custom": "Tilpasset ACME-katalog" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL-adressen til ACME-katalogen", + "description": "Kun for en tilpasset sertifiseringsinstans. Må være en https-URL." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Utfordringstype", + "description": "Hvordan bevise at du eier domenet.", + "http": "HTTP - trenger port 80 som kan nås fra internett", + "cloudflare": "DNS (Cloudflare) – trenger et Cloudflare API-token" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Cloudflare API-token", + "description": "Scope-token med Zone:DNS:Rediger-tillatelse for domenet ditt." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Sertifikatstatus", + "none": "Ingen sertifikat", + "names": "Omslag {{names}}", + "issuer": "Utstedt av {{issuer}}", + "expires": "Utløper {{date}}", + "lastIssued": "Sist utstedt {{date}}", + "lastError": "Siste forsøk mislyktes: {{error}}", + "missing": "Angi domenet, e-postadressen og feltene utfordringstypen din trenger, og lagre deretter før du ber om et sertifikat.", + "request": "Be om sertifikat nå", + "requesting": "Ber om sertifikat...", + "issued": "Sertifikat utstedt og installert" } } diff --git a/plugins/acme-ssl/locales/translated/pl_PL.json b/plugins/acme-ssl/locales/translated/pl_PL.json index 6d01a8b64..921a7d6d4 100644 --- a/plugins/acme-ssl/locales/translated/pl_PL.json +++ b/plugins/acme-ssl/locales/translated/pl_PL.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Zarządzaj certyfikatami ACME", + "description": "Sprawdź status certyfikatu i poproś o nowy certyfikat już teraz." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Odnów automatycznie", + "description": "Sprawdzaj dwa razy dziennie i wykup nowy certyfikat, jeśli go nie masz, nie obejmuje on tej domeny lub wygasa w ciągu 30 dni." }, "domain": { "label": "Domena", @@ -17,42 +17,42 @@ }, "email": { "label": "E-mail", - "description": "Contact email for the ACME account and expiry notices.", + "description": "Adres e-mail kontaktowy do konta ACME i powiadomień o wygaśnięciu.", "placeholder": "admin@example.com" }, "provider": { "label": "Urząd certyfikacji (CA)", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "description": "Gdzie uzyskać certyfikat? Użyj środowiska testowego do testowania bez przekraczania limitów przepustowości Let's Encrypt.", + "letsencrypt": "Szyfrujmy", + "letsencryptStaging": "Let's Encrypt (etap przygotowawczy)", + "custom": "Niestandardowy katalog ACME" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "Adres URL katalogu ACME", + "description": "Tylko dla niestandardowego urzędu certyfikacji. Adres URL musi być w formacie https." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Typ wyzwania", + "description": "Jak udowodnić, że jesteś właścicielem domeny.", + "http": "HTTP - wymaga dostępu do portu 80 z Internetu", + "cloudflare": "DNS (Cloudflare) – wymaga tokenu API Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Token API Cloudflare", "description": "Token zakresowy z uprawnieniem Zone:DNS:Edit dla Twojej domeny." } }, "status": { - "title": "Certificate status", + "title": "Status certyfikatu", "none": "Brak certyfikatu", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "Obejmuje {{names}}", + "issuer": "Wydane przez {{issuer}}", "expires": "Wygasa {{date}}", "lastIssued": "Ostatnio wystawiono {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "Ostatnia próba nieudana: {{error}}", + "missing": "Ustaw domenę, adres e-mail i pola, których wymaga Twój typ wyzwania, a następnie zapisz, zanim poprosisz o certyfikat.", + "request": "Złóż wniosek o certyfikat już teraz", "requesting": "Żądanie certyfikatu...", - "issued": "Certificate issued and installed" + "issued": "Certyfikat wydany i zainstalowany" } } diff --git a/plugins/acme-ssl/locales/translated/pt_BR.json b/plugins/acme-ssl/locales/translated/pt_BR.json index 5c0aaa55b..c972d782c 100644 --- a/plugins/acme-ssl/locales/translated/pt_BR.json +++ b/plugins/acme-ssl/locales/translated/pt_BR.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Gerenciar certificados ACME", + "description": "Veja o status do certificado e solicite um novo agora mesmo." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Renovar automaticamente", + "description": "Verifique duas vezes ao dia e obtenha um novo certificado quando não houver nenhum, se ele não cobrir o domínio ou se expirar em 30 dias." }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "Domínio", + "description": "O nome de domínio público do certificado.", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "E-mail", + "description": "E-mail de contato para a conta ACME e avisos de vencimento.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Autoridade certificadora", + "description": "Onde obter o certificado. Use o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.", + "letsencrypt": "Vamos criptografar", + "letsencryptStaging": "Let's Encrypt (em fase de testes)", + "custom": "Diretório ACME personalizado" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL do diretório ACME", + "description": "Somente para uma autoridade de certificação personalizada. Deve ser um URL https." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Tipo de desafio", + "description": "Como comprovar que você é o proprietário do domínio.", + "http": "HTTP - requer que a porta 80 esteja acessível pela internet.", + "cloudflare": "DNS (Cloudflare) - requer um token de API do Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Token da API Cloudflare", + "description": "Token com escopo definido e permissão Zone:DNS:Edit para o seu domínio." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Status do certificado", + "none": "Sem certificado", + "names": "Capas {{names}}", + "issuer": "Emitido por {{issuer}}", + "expires": "Expira em {{date}}", + "lastIssued": "Última edição {{date}}", + "lastError": "Última tentativa falhou: {{error}}", + "missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e salve as alterações antes de solicitar um certificado.", + "request": "Solicite o certificado agora", + "requesting": "Solicitar certificado...", + "issued": "Certificado emitido e instalado." } } diff --git a/plugins/acme-ssl/locales/translated/pt_PT.json b/plugins/acme-ssl/locales/translated/pt_PT.json index 103eded8b..c75d2e6dd 100644 --- a/plugins/acme-ssl/locales/translated/pt_PT.json +++ b/plugins/acme-ssl/locales/translated/pt_PT.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Gerir certificados ACME", + "description": "Veja o estado do certificado e solicite um novo agora mesmo." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Renovar automaticamente", + "description": "Verifique duas vezes por dia e obtenha um novo certificado quando não houver nenhum, se não cobrir o domínio ou se expirar dentro de 30 dias." }, "domain": { "label": "Domínio", @@ -17,42 +17,42 @@ }, "email": { "label": "E-mail", - "description": "Contact email for the ACME account and expiry notices.", + "description": "E-mail de contacto para a conta ACME e avisos de vencimento.", "placeholder": "admin@example.com" }, "provider": { "label": "Autoridade de certificação", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "description": "Onde obter o certificado. Utilize o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.", + "letsencrypt": "Vamos encriptar", + "letsencryptStaging": "Let's Encrypt (em fase de testes)", + "custom": "Diretório ACME personalizado" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL do diretório ACME", + "description": "Apenas para uma autoridade de certificação personalizada. Deve ser um URL https." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Tipo de desafio", + "description": "Como comprovar que é o proprietário do domínio.", + "http": "HTTP - requer que a porta 80 esteja acessível através da internet.", + "cloudflare": "DNS (Cloudflare) - requer um token API do Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Token da API Cloudflare", "description": "Token com âmbito e permissão Zone:DNS:Edit para o seu domínio." } }, "status": { - "title": "Certificate status", + "title": "Estado do certificado", "none": "Sem certificado", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "Capas {{names}}", + "issuer": "Emitido por {{issuer}}", "expires": "Expira a {{date}}", "lastIssued": "Última emissão a {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "Última tentativa falhada: {{error}}", + "missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e guarde as alterações antes de solicitar um certificado.", + "request": "Solicite já o certificado", "requesting": "A solicitar certificado...", - "issued": "Certificate issued and installed" + "issued": "Certificado emitido e instalado." } } diff --git a/plugins/acme-ssl/locales/translated/ru_RU.json b/plugins/acme-ssl/locales/translated/ru_RU.json index a398a4fdd..7795f5ed2 100644 --- a/plugins/acme-ssl/locales/translated/ru_RU.json +++ b/plugins/acme-ssl/locales/translated/ru_RU.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Управление сертификатами ACME", + "description": "Проверьте статус сертификата и запросите новый сертификат прямо сейчас." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Автоматическое продление", + "description": "Проверяйте дважды в день и получайте новый сертификат, если его нет, если он не покрывает домен или если срок действия старого истекает в течение 30 дней." }, "domain": { "label": "Домен", @@ -17,42 +17,42 @@ }, "email": { "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "description": "Адрес электронной почты, указанный в учетной записи ACME, для получения уведомлений об истечении срока действия.", "placeholder": "admin@example.com" }, "provider": { "label": "Центр сертификации", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", + "description": "Где получить сертификат. Используйте тестовую среду (staging) для проверки без превышения лимитов запросов Let's Encrypt.", "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "letsencryptStaging": "Let's Encrypt (тестовая версия)", + "custom": "Пользовательский каталог ACME" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL-адрес каталога ACME", + "description": "Только для пользовательского центра сертификации. URL-адрес должен быть HTTPS." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Тип задачи", + "description": "Как доказать, что вы являетесь владельцем домена.", + "http": "HTTP — требуется доступ к порту 80 из интернета.", + "cloudflare": "DNS (Cloudflare) — требуется токен API Cloudflare." }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "API-токен Cloudflare", "description": "Токен с ограниченной областью действия и разрешением Zone:DNS:Edit для вашего домена." } }, "status": { - "title": "Certificate status", + "title": "Статус сертификата", "none": "Сертификат отсутствует", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "Обложки {{names}}", + "issuer": "Выпущено {{issuer}}", "expires": "Истекает {{date}}", "lastIssued": "Последний выпуск {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "Последняя попытка не удалась: {{error}}", + "missing": "Укажите домен, адрес электронной почты и поля, необходимые для типа проверки подлинности, затем сохраните изменения, прежде чем запрашивать сертификат.", + "request": "Запросить сертификат сейчас", "requesting": "Запрос сертификата...", - "issued": "Certificate issued and installed" + "issued": "Сертификат выдан и установлен." } } diff --git a/plugins/acme-ssl/locales/translated/sr_SP.json b/plugins/acme-ssl/locales/translated/sr_SP.json index 5c0aaa55b..4f270ce8c 100644 --- a/plugins/acme-ssl/locales/translated/sr_SP.json +++ b/plugins/acme-ssl/locales/translated/sr_SP.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Управљање ACME сертификатима", + "description": "Погледајте статус сертификата и одмах затражите нови сертификат." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Аутоматски обнови", + "description": "Проверавајте два пута дневно и набавите нови сертификат када га нема, када не покрива домен или када истиче у року од 30 дана." }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "Домен", + "description": "Јавно име домена за сертификат.", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "Е-пошта", + "description": "Контакт имејл за ACME налог и обавештења о истеку.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Сертификатски ауторитет", + "description": "Где добити сертификат. Користите припрему за тестирање без достизања ограничења брзине Let's Encrypt-а.", + "letsencrypt": "Хајде да шифрујемо", + "letsencryptStaging": "Хајде да шифрујемо (припрема)", + "custom": "Прилагођени ACME директоријум" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL ACME директоријума", + "description": "Само за прилагођени ауторитет за сертификате. Мора бити https URL." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Тип изазова", + "description": "Како доказати да сте власник домена.", + "http": "HTTP - потребан је порт 80 доступан са интернета", + "cloudflare": "DNS (Cloudflare) - потребан је Cloudflare API токен" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Клаудфлејр АПИ токен", + "description": "Ограничени токен са дозволом Zone:DNS:Edit за ваш домен." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Статус сертификата", + "none": "Без сертификата", + "names": "Навлаке {{names}}", + "issuer": "Издао/ла {{issuer}}", + "expires": "Истиче {{date}}", + "lastIssued": "Последње издање {{date}}", + "lastError": "Последњи покушај није успео: {{error}}", + "missing": "Подесите домен, имејл адресу и поља која су потребна вашем типу изазова, а затим сачувајте подешавања пре него што затражите сертификат.", + "request": "Затражите сертификат сада", + "requesting": "Захтева се сертификат...", + "issued": "Сертификат издат и инсталиран" } } diff --git a/plugins/acme-ssl/locales/translated/sv_SE.json b/plugins/acme-ssl/locales/translated/sv_SE.json index 5c0aaa55b..8abd67e81 100644 --- a/plugins/acme-ssl/locales/translated/sv_SE.json +++ b/plugins/acme-ssl/locales/translated/sv_SE.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Hantera ACME-certifikat", + "description": "Se certifikatets status och begär ett nytt certifikat nu." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Förnya automatiskt", + "description": "Kontrollera två gånger om dagen och skaffa ett nytt certifikat om det inte finns något, om det inte täcker domänen eller om det löper ut inom 30 dagar." }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "Domän", + "description": "Det offentliga domännamnet för certifikatet.", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "E-post", + "description": "Kontakta e-postadressen för ACME-kontot och meddelanden om utgångsdatum.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Certifikatutfärdare", + "description": "Var man kan hämta certifikatet. Använd staging för att testa utan att nå hastighetsgränserna för Let's Encrypt.", + "letsencrypt": "Låt oss kryptera", + "letsencryptStaging": "Låt oss kryptera (staging)", + "custom": "Anpassad ACME-katalog" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME-katalogens URL", + "description": "Endast för en anpassad certifikatutfärdare. Måste vara en https-URL." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Utmaningstyp", + "description": "Hur man bevisar att man äger domänen.", + "http": "HTTP - behöver port 80 som kan nås från internet", + "cloudflare": "DNS (Cloudflare) - behöver en Cloudflare API-token" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Cloudflare API-token", + "description": "Scoped-token med Zone:DNS:Edit-behörighet för din domän." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Certifikatstatus", + "none": "Inget certifikat", + "names": "Omslag {{names}}", + "issuer": "Utfärdad av {{issuer}}", + "expires": "Utgångsdatum {{date}}", + "lastIssued": "Senast utfärdad {{date}}", + "lastError": "Senaste försöket misslyckades: {{error}}", + "missing": "Ange domän, e-postadress och de fält som din utmaningstyp behöver, spara sedan innan du begär ett certifikat.", + "request": "Begär certifikat nu", + "requesting": "Begär certifikat...", + "issued": "Certifikat utfärdat och installerat" } } diff --git a/plugins/acme-ssl/locales/translated/th_TH.json b/plugins/acme-ssl/locales/translated/th_TH.json index 5c0aaa55b..c71e209b6 100644 --- a/plugins/acme-ssl/locales/translated/th_TH.json +++ b/plugins/acme-ssl/locales/translated/th_TH.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "จัดการใบรับรอง ACME", + "description": "ตรวจสอบสถานะใบรับรองและขอใบรับรองใหม่ได้เลยตอนนี้" } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "ต่ออายุอัตโนมัติ", + "description": "ตรวจสอบวันละสองครั้ง และขอใบรับรองใหม่เมื่อไม่มีใบรับรอง หากใบรับรองไม่ครอบคลุมโดเมน หรือหากใบรับรองหมดอายุภายใน 30 วัน" }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", - "placeholder": "termix.example.com" + "label": "โดเมน", + "description": "ชื่อโดเมนสาธารณะสำหรับใบรับรอง", + "placeholder": "เทอร์มิกซ์.ตัวอย่าง.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "อีเมล", + "description": "อีเมลสำหรับติดต่อเพื่อรับข้อมูลเกี่ยวกับบัญชี ACME และประกาศแจ้งเตือนวันหมดอายุ", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "หน่วยงานออกใบรับรอง", + "description": "จะขอรับใบรับรองได้จากที่ไหน ใช้ระบบทดสอบ (staging) เพื่อทดสอบโดยไม่ให้เกินขีดจำกัดการใช้งานของ Let's Encrypt", + "letsencrypt": "เลทส์ เอนคริปท์", + "letsencryptStaging": "Let's Encrypt (รุ่นทดสอบ)", + "custom": "ไดเร็กทอรี ACME แบบกำหนดเอง" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL ของไดเร็กทอรี ACME", + "description": "ใช้ได้เฉพาะกับหน่วยงานออกใบรับรองที่กำหนดเองเท่านั้น ต้องเป็น URL ที่ใช้ HTTPS" }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "ประเภทความท้าทาย", + "description": "วิธีพิสูจน์ว่าคุณเป็นเจ้าของโดเมน", + "http": "HTTP - ต้องมีพอร์ต 80 ที่สามารถเข้าถึงได้จากอินเทอร์เน็ต", + "cloudflare": "DNS (Cloudflare) - ต้องใช้โทเค็น API ของ Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "โทเค็น API ของ Cloudflare", + "description": "โทเค็นแบบจำกัดขอบเขตพร้อมสิทธิ์ Zone:DNS:Edit สำหรับโดเมนของคุณ" } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "สถานะใบรับรอง", + "none": "ไม่มีใบรับรอง", + "names": "ปก {{names}}", + "issuer": "ออกโดย {{issuer}}", + "expires": "หมดอายุ {{date}}", + "lastIssued": "ออกครั้งล่าสุด {{date}}", + "lastError": "ความพยายามครั้งล่าสุดล้มเหลว: {{error}}", + "missing": "ตั้งค่าโดเมน อีเมล และข้อมูลที่จำเป็นสำหรับประเภทการตรวจสอบสิทธิ์ของคุณ จากนั้นบันทึกก่อนที่จะขอใบรับรอง", + "request": "ขอใบรับรองตอนนี้", + "requesting": "ขอใบรับรอง...", + "issued": "ออกและติดตั้งใบรับรองแล้ว" } } diff --git a/plugins/acme-ssl/locales/translated/tr_TR.json b/plugins/acme-ssl/locales/translated/tr_TR.json index 031945ccc..aef1aad1b 100644 --- a/plugins/acme-ssl/locales/translated/tr_TR.json +++ b/plugins/acme-ssl/locales/translated/tr_TR.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "ACME sertifikalarını yönetin", + "description": "Sertifika durumunu kontrol edin ve şimdi yeni bir sertifika talep edin." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Otomatik olarak yenile", + "description": "Sertifikayı günde iki kez kontrol edin ve yoksa, alan adını kapsamıyorsa veya 30 gün içinde süresi dolacaksa yenisini alın." }, "domain": { "label": "Alan Adı", @@ -17,42 +17,42 @@ }, "email": { "label": "E-posta", - "description": "Contact email for the ACME account and expiry notices.", + "description": "ACME hesabı ve sona erme bildirimleri için iletişim e-posta adresi.", "placeholder": "admin@example.com" }, "provider": { "label": "Sertifika yetkilisi", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", + "description": "Sertifikayı nereden alabilirsiniz? Let's Encrypt'in hız sınırlamalarına takılmadan test etmek için hazırlık ortamını kullanın.", "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "letsencryptStaging": "Let's Encrypt (test aşaması)", + "custom": "Özel ACME dizini" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME dizin URL'si", + "description": "Yalnızca özel sertifika yetkilisi için geçerlidir. HTTPS URL'si olmalıdır." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Meydan okuma türü", + "description": "Alan adının size ait olduğunu nasıl kanıtlayabilirsiniz?", + "http": "HTTP - internetten erişilebilir 80 numaralı porta ihtiyaç duyar.", + "cloudflare": "DNS (Cloudflare) - Cloudflare API belirteci gerektirir." }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Cloudflare API belirteci", "description": "Alan adınız için Zone:DNS:Edit iznine sahip kapsamlı belirteç." } }, "status": { - "title": "Certificate status", + "title": "Sertifika durumu", "none": "Sertifika yok", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "Kapaklar {{names}}", + "issuer": "{{issuer}} tarafından yayınlandı", "expires": "Son kullanma: {{date}}", "lastIssued": "Son veriliş: {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "Son deneme başarısız oldu: {{error}}", + "missing": "Sertifika talebinde bulunmadan önce etki alanını, e-postayı ve doğrulama türünüzün gerektirdiği alanları ayarlayın, ardından kaydedin.", + "request": "Şimdi sertifika talep edin", "requesting": "Sertifika isteniyor...", - "issued": "Certificate issued and installed" + "issued": "Sertifika düzenlendi ve kuruldu." } } diff --git a/plugins/acme-ssl/locales/translated/uk_UA.json b/plugins/acme-ssl/locales/translated/uk_UA.json index 5c0aaa55b..738c42373 100644 --- a/plugins/acme-ssl/locales/translated/uk_UA.json +++ b/plugins/acme-ssl/locales/translated/uk_UA.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Керування сертифікатами ACME", + "description": "Перегляньте статус сертифіката та запросіть новий сертифікат зараз." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Автоматичне поновлення", + "description": "Перевіряйте двічі на день та отримуйте новий сертифікат, коли його немає, він не поширюється на домен або термін його дії закінчується протягом 30 днів." }, "domain": { - "label": "Domain", - "description": "The public domain name for the certificate.", + "label": "Домен", + "description": "Ім'я публічного домену для сертифіката.", "placeholder": "termix.example.com" }, "email": { - "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "label": "Електронна пошта", + "description": "Контактна електронна адреса для облікового запису ACME та повідомлень про закінчення терміну дії.", "placeholder": "admin@example.com" }, "provider": { - "label": "Certificate authority", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "label": "Центр сертифікації", + "description": "Де отримати сертифікат. Використовуйте проміжну версію для тестування без перевищення обмежень швидкості Let's Encrypt.", + "letsencrypt": "Давайте зашифруємо", + "letsencryptStaging": "Давайте зашифруємо (підготовка)", + "custom": "Користувацький каталог ACME" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL-адреса каталогу ACME", + "description": "Тільки для власного центру сертифікації. Має бути URL-адреса https." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Тип виклику", + "description": "Як довести, що ви є власником домену.", + "http": "HTTP – потрібен порт 80, доступний з Інтернету", + "cloudflare": "DNS (Cloudflare) – потрібен токен API Cloudflare" }, "cloudflareToken": { - "label": "Cloudflare API token", - "description": "Scoped token with Zone:DNS:Edit permission for your domain." + "label": "Токен API Cloudflare", + "description": "Токен з обмеженою областю дії та дозволом Zone:DNS:Edit для вашого домену." } }, "status": { - "title": "Certificate status", - "none": "No certificate", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", - "expires": "Expires {{date}}", - "lastIssued": "Last issued {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", - "requesting": "Requesting certificate...", - "issued": "Certificate issued and installed" + "title": "Статус сертифіката", + "none": "Без сертифіката", + "names": "Обкладинки {{names}}", + "issuer": "Видано {{issuer}}", + "expires": "Термін дії закінчується {{date}}", + "lastIssued": "Останній виданий {{date}}", + "lastError": "Остання спроба не вдалася: {{error}}", + "missing": "Вкажіть домен, електронну пошту та поля, необхідні для вашого типу завдання, а потім збережіть зміни, перш ніж запитувати сертифікат.", + "request": "Замовити сертифікат зараз", + "requesting": "Запит сертифіката...", + "issued": "Сертифікат видано та встановлено" } } diff --git a/plugins/acme-ssl/locales/translated/vi_VN.json b/plugins/acme-ssl/locales/translated/vi_VN.json index 90cf7aa4a..a08d48b18 100644 --- a/plugins/acme-ssl/locales/translated/vi_VN.json +++ b/plugins/acme-ssl/locales/translated/vi_VN.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "Quản lý chứng chỉ ACME", + "description": "Xem trạng thái chứng chỉ và yêu cầu chứng chỉ mới ngay bây giờ." } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "Tự động gia hạn", + "description": "Hãy kiểm tra hai lần một ngày và lấy chứng chỉ mới nếu chứng chỉ hiện không có, không bao phủ tên miền hoặc hết hạn trong vòng 30 ngày." }, "domain": { "label": "Tên miền", @@ -17,42 +17,42 @@ }, "email": { "label": "Email", - "description": "Contact email for the ACME account and expiry notices.", + "description": "Địa chỉ email liên hệ cho tài khoản ACME và thông báo hết hạn.", "placeholder": "admin@example.com" }, "provider": { "label": "Cơ quan chứng thực", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", - "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "description": "Lấy chứng chỉ ở đâu? Sử dụng môi trường thử nghiệm để kiểm tra mà không vượt quá giới hạn số lượng yêu cầu của Let's Encrypt.", + "letsencrypt": "Hãy mã hóa", + "letsencryptStaging": "Let's Encrypt (phiên bản thử nghiệm)", + "custom": "Danh mục ACME tùy chỉnh" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "URL thư mục ACME", + "description": "Chỉ dành cho cơ quan cấp chứng chỉ tùy chỉnh. Phải là URL HTTPS." }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "Loại thử thách", + "description": "Cách chứng minh bạn sở hữu tên miền.", + "http": "HTTP - cần cổng 80 có thể truy cập được từ internet", + "cloudflare": "DNS (Cloudflare) - cần mã thông báo API của Cloudflare." }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Mã thông báo API Cloudflare", "description": "Token có phạm vi với quyền Zone:DNS:Edit cho tên miền của bạn." } }, "status": { - "title": "Certificate status", + "title": "Trạng thái chứng chỉ", "none": "Không có chứng chỉ", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "Ảnh bìa {{names}}", + "issuer": "Được phát hành bởi {{issuer}}", "expires": "Hết hạn {{date}}", "lastIssued": "Cấp lần cuối {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "Lần thử cuối cùng thất bại: {{error}}", + "missing": "Hãy thiết lập tên miền, email và các trường thông tin mà loại thử thách của bạn yêu cầu, sau đó lưu lại trước khi yêu cầu chứng chỉ.", + "request": "Yêu cầu chứng chỉ ngay bây giờ", "requesting": "Đang yêu cầu chứng chỉ...", - "issued": "Certificate issued and installed" + "issued": "Giấy chứng nhận đã được cấp và cài đặt" } } diff --git a/plugins/acme-ssl/locales/translated/zh_CN.json b/plugins/acme-ssl/locales/translated/zh_CN.json index 75ebb08f9..038eade61 100644 --- a/plugins/acme-ssl/locales/translated/zh_CN.json +++ b/plugins/acme-ssl/locales/translated/zh_CN.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "管理 ACME 证书", + "description": "查看证书状态并立即申请新证书。" } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "自动续订", + "description": "每天检查两次,如果没有证书、证书不涵盖该域名或证书将在 30 天内过期,则获取新证书。" }, "domain": { "label": "域名", @@ -17,42 +17,42 @@ }, "email": { "label": "邮箱", - "description": "Contact email for the ACME account and expiry notices.", + "description": "ACME账户及到期通知的联系邮箱。", "placeholder": "admin@example.com" }, "provider": { "label": "证书颁发机构", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", + "description": "证书获取途径。使用测试环境进行测试,避免超出 Let's Encrypt 的速率限制。", "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "letsencryptStaging": "Let's Encrypt(测试版)", + "custom": "自定义 ACME 目录" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME目录URL", + "description": "仅适用于自定义证书颁发机构。必须是 https URL。" }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "挑战类型", + "description": "如何证明您拥有该域名。", + "http": "HTTP协议需要可通过互联网访问的80端口。", + "cloudflare": "DNS(Cloudflare)——需要 Cloudflare API 令牌" }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Cloudflare API 令牌", "description": "具有您域名的 Zone:DNS:Edit 权限的限定作用域令牌。" } }, "status": { - "title": "Certificate status", + "title": "证书状态", "none": "无证书", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "封面 {{names}}", + "issuer": "由 {{issuer}} 发行", "expires": "过期于 {{date}}", "lastIssued": "上次签发于 {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "最后一次尝试失败: {{error}}", + "missing": "设置域名、电子邮件和您的质询类型所需的字段,然后保存,再申请证书。", + "request": "立即申请证书", "requesting": "正在请求证书...", - "issued": "Certificate issued and installed" + "issued": "证书已颁发并安装" } } diff --git a/plugins/acme-ssl/locales/translated/zh_TW.json b/plugins/acme-ssl/locales/translated/zh_TW.json index ec27c0005..996d23180 100644 --- a/plugins/acme-ssl/locales/translated/zh_TW.json +++ b/plugins/acme-ssl/locales/translated/zh_TW.json @@ -1,14 +1,14 @@ { "permissions": { "manage": { - "title": "Manage ACME certificates", - "description": "See the certificate status and request a new certificate now." + "title": "管理 ACME 證書", + "description": "查看證書狀態並立即申請新證書。" } }, "settings": { "autoRenew": { - "label": "Renew automatically", - "description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days." + "label": "自動續訂", + "description": "每天檢查兩次,如果沒有證書、證書不涵蓋該網域或證書將在 30 天內過期,則取得新證書。" }, "domain": { "label": "網域", @@ -17,42 +17,42 @@ }, "email": { "label": "電子郵件", - "description": "Contact email for the ACME account and expiry notices.", + "description": "ACME帳戶及到期通知的聯絡信箱。", "placeholder": "admin@example.com" }, "provider": { "label": "憑證授權中心", - "description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", + "description": "證書取得途徑。使用測試環境進行測試,避免超出 Let's Encrypt 的速率限制。", "letsencrypt": "Let's Encrypt", - "letsencryptStaging": "Let's Encrypt (staging)", - "custom": "Custom ACME directory" + "letsencryptStaging": "Let's Encrypt(測試版)", + "custom": "自訂 ACME 目錄" }, "directoryUrl": { - "label": "ACME directory URL", - "description": "Only for a custom certificate authority. Must be an https URL." + "label": "ACME目錄URL", + "description": "僅適用於自訂憑證授權單位。必須是 https URL。" }, "challengeType": { - "label": "Challenge type", - "description": "How to prove you own the domain.", - "http": "HTTP - needs port 80 reachable from the internet", - "cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" + "label": "挑戰類型", + "description": "如何證明您擁有該網域。", + "http": "HTTP協定需要80個可透過網際網路存取的連接埠。", + "cloudflare": "DNS(Cloudflare)-需要 Cloudflare API 令牌" }, "cloudflareToken": { - "label": "Cloudflare API token", + "label": "Cloudflare API 令牌", "description": "具有您網域 Zone:DNS:Edit 權限的限定範圍權杖。" } }, "status": { - "title": "Certificate status", + "title": "證書狀態", "none": "無憑證", - "names": "Covers {{names}}", - "issuer": "Issued by {{issuer}}", + "names": "封面 {{names}}", + "issuer": "由 {{issuer}} 發行", "expires": "到期日 {{date}}", "lastIssued": "上次簽發日期 {{date}}", - "lastError": "Last attempt failed: {{error}}", - "missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", - "request": "Request certificate now", + "lastError": "最後嘗試失敗: {{error}}", + "missing": "設定網域名稱、電子郵件和您的質詢類型所需的字段,然後儲存,再申請憑證。", + "request": "立即申請證書", "requesting": "請求憑證中...", - "issued": "Certificate issued and installed" + "issued": "證書已頒發並安裝" } } diff --git a/plugins/ai/locales/translated/bn_BD.json b/plugins/ai/locales/translated/bn_BD.json index 7b5758ffa..ee8f946c7 100644 --- a/plugins/ai/locales/translated/bn_BD.json +++ b/plugins/ai/locales/translated/bn_BD.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "সহকারী ব্যবহার করুন", + "description": "অ্যাসিস্ট্যান্টটি খুলুন এবং এটিকে বিভিন্ন জিনিস জিজ্ঞাসা করুন।" }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "সরবরাহকারীদের পরিচালনা করুন", + "description": "এআই প্রোভাইডার এবং তাদের এপিআই কীগুলো যোগ, সম্পাদনা ও অপসারণ করুন।" }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "প্রস্তাবগুলি প্রয়োগ করুন", + "description": "সহকারীকে তার প্রস্তাবিত পরিবর্তনগুলো কার্যকর করতে দিন।" }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "অন্যান্য বৈশিষ্ট্য থেকে এআই ব্যবহার করুন", + "description": "অন্যান্য বৈশিষ্ট্য আপনার পক্ষ থেকে সহকারীকে ডাকতে পারে।" }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "এপিআই কী শেয়ার করুন", + "description": "অন্যান্য ফিচারগুলো সংরক্ষিত এআই এপিআই কী-টি না দেখেই ব্যবহার করতে পারে।" } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "এই সার্ভারে এআই অ্যাসিস্ট্যান্ট বন্ধ করা আছে।", + "providersNeedOptIn": "প্রোভাইডার যোগ করতে উপরের এআই অ্যাসিস্ট্যান্টটি চালু করুন।", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "এআই সহকারী", + "description": "ব্যবহারকারীদের এআই অ্যাসিস্ট্যান্ট চালু করার সুযোগ দিন। এটি বন্ধ থাকা অবস্থায়, অ্যাসিস্ট্যান্টটি সকলের জন্য লুকানো এবং ব্লক করা থাকবে।" }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "ব্যক্তিগত এআই হোস্ট অনুমোদিত", + "description": "আপনার প্রাইভেট নেটওয়ার্কে এমন হোস্ট রাখুন, যেগুলোকে ব্যবহারকারীরা কোনো প্রোভাইডারের দিকে নির্দেশ করতে পারে, যেমন একটি সেলফ-হোস্টেড ওলামা। প্রতিটি লাইনে একটি করে হোস্ট রাখুন।" } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন", + "description": "এই হোস্টের টার্মিনালে সাহায্য করার জন্য এআই অ্যাসিস্ট্যান্টকে অনুমতি দিন। এটি ডিফল্টরূপে বন্ধ থাকে এবং আপনার অ্যাকাউন্টের জন্য এআই চালু করা প্রয়োজন।" } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", - "providerOpenai": "OpenAI", - "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "title": "সহকারী", + "send": "পাঠান", + "stop": "থামুন", + "save": "সংরক্ষণ করুন", + "cancel": "বাতিল করুন", + "running": "দৌড়ানো", + "approve": "অনুমোদন করুন", + "reject": "প্রত্যাখ্যান করুন", + "inputPlaceholder": "আপনার সার্ভারগুলো সম্পর্কে জিজ্ঞাসা করুন, অথবা কোনো পরিবর্তনের প্রস্তাব বর্ণনা করুন।", + "selectProvider": "একজন সরবরাহকারী নির্বাচন করুন", + "providerSettings": "প্রদানকারীর সেটিংস", + "addProvider": "প্রদানকারী যোগ করুন", + "editProvider": "সম্পাদনা প্রদানকারী", + "removeProvider": "প্রদানকারীকে অপসারণ করুন", + "providerType": "সরবরাহকারী", + "providerLabel": "নাম", + "providerLabelPlaceholder": "উদাহরণস্বরূপ: স্থানীয় ওলামা", + "baseUrl": "সার্ভারের ঠিকানা", + "apiKey": "এপিআই কী", + "defaultModel": "ডিফল্ট মডেল", + "defaultModelPlaceholder": "উদাহরণস্বরূপ: llama3.1 অথবা claude-opus-5", + "labelRequired": "এই সরবরাহকারীকে একটি নাম দিন", + "providerSaveFailed": "প্রদানকারীকে সংরক্ষণ করা যায়নি", + "providerUpdated": "প্রদানকারী আপডেট করেছেন", + "providerDeleteFailed": "প্রদানকারীকে সরানো যায়নি", + "privateEndpointHint": "আপনার ব্যক্তিগত নেটওয়ার্কের অ্যাড্রেসগুলো ব্যবহার করার জন্য প্রথমে একজন অ্যাডমিনিস্ট্রেটরের কাছ থেকে হোস্টটিকে অনুমতি নিতে হয়।", + "providerOllama": "ওল্লামা", + "providerAnthropic": "অ্যানথ্রোপিক", + "providerOpenai": "ওপেনএআই", + "providerGemini": "গুগল জেমিনি", + "providerOpenaiCompatible": "ওপেনএআই সামঞ্জস্যপূর্ণ", + "toolArguments": "ইনপুট", + "toolResult": "ফলাফল", + "statusApplied": "প্রয়োগ করা হয়েছে", + "statusRejected": "প্রত্যাখ্যাত", + "proposalApplied": "পরিবর্তন প্রয়োগ করা হয়েছে", + "proposalApplyFailed": "পরিবর্তনটি প্রয়োগ করা যায়নি।", + "proposalRejectFailed": "পরিবর্তনটি প্রত্যাখ্যান করা যায়নি", + "enableTitle": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন", + "enableDescription": "সহকারীকে আপনার সেটআপটি পড়তে দিন এবং আপনার অনুমোদনের জন্য পরিবর্তনের পরামর্শ দিতে দিন।", + "readOnlyCommands": "শুধুমাত্র পঠনযোগ্য ডায়াগনস্টিক কমান্ডের অনুমতি দিন", + "readOnlyCommandsDescription": "সহকারী প্রতিবার অনুমতি না নিয়েই df এবং uptime-এর মতো কয়েকটি নিরাপদ কমান্ড চালাতে পারে। সার্ভার পরিবর্তন করে এমন যেকোনো কিছু সর্বদা প্রথমে প্রস্তাব করা হয়।", + "modelDetectFailed": "সরবরাহকারীর সাথে যোগাযোগ করা সম্ভব হয়নি, তাই এটি একটি সাধারণ তালিকা। আপনি যেকোনো মডেলের নাম টাইপ করতে পারেন।", + "modelCustom": "একটি মডেলের নাম লিখুন", + "modelRefresh": "তালিকা রিফ্রেশ করুন", + "modelPlaceholder": "একটি মডেল বেছে নিন বা টাইপ করুন", + "attachHint": "কোনো হোস্ট, স্নিপেট বা অটোমেশন উল্লেখ করতে @ টাইপ করুন। আপনার অনুমোদনের জন্য পরিবর্তনগুলো প্রস্তাব করা হবে।", + "runCommandTitle": "রান কমান্ড", + "assistant": "এআই সহকারী", + "terminalPanelEmpty": "এই হোস্ট সম্পর্কে অ্যাসিস্ট্যান্টকে জিজ্ঞাসা করুন। অবস্থা পরিবর্তনের জন্য প্রথমে আপনার অনুমোদন প্রয়োজন।", + "terminalPanelPlaceholder": "এই হোস্ট সম্পর্কে জিজ্ঞাসা করুন...", + "noProvidersConfigured": "এখনো কোনো এআই প্রোভাইডার কনফিগার করা হয়নি। এআই অ্যাসিস্ট্যান্ট ট্যাবে একটি যোগ করুন।", + "runsInOpenTerminal": "আপনার খোলা টার্মিনাল সেশনে চলে।", + "runInTerminal": "দৌড়", + "terminalContextPrefill": "আমার টার্মিনাল আউটপুট নিচে দেওয়া হলো:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "অন্যান্য ফিচারগুলোকে তাদের নিজস্ব অনুরোধের জন্য আপনার এআই প্রোভাইডার এপিআই কী ব্যবহার করতে দিন। কী-টি কখনোই কপি করা হয় না এবং আপনি যেকোনো সময় এটি প্রত্যাহার করতে পারেন।" } }, "nav": { - "ai": "AI" + "ai": "এআই" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "এআই সহকারী", + "aiIntro": "টারমিক্সে একটি ঐচ্ছিক এআই অ্যাসিস্ট্যান্ট অন্তর্ভুক্ত থাকতে পারে। আপনি পরবর্তীতে আপনার সেটিংসে এটি পরিবর্তন করতে পারবেন।", + "aiSkipTitle": "এটা ছেড়ে দাও", + "aiSkipDesc": "টারমিক্স এখন যেমন কাজ করে, তেমনই কাজ করে। অ্যাসিস্ট্যান্টটি লুকানো থাকে।", + "aiEnableTitle": "এটা চালু করুন", + "aiEnableDesc": "একজন সহকারী যোগ করে যে আপনার সেটআপ পড়ে এবং আপনার অনুমোদিত পরিবর্তনের পরামর্শ দেয়। এর জন্য আপনার সরবরাহ করা একজন প্রদানকারীর প্রয়োজন, যেমন একজন স্থানীয় ওলামা।", + "aiNote": "আপনি একজন প্রোভাইডার যোগ করে মেসেজ না পাঠানো পর্যন্ত কোথাও কিছু পাঠানো হয় না।" }, "hosts": { - "docsLink": "View docs" + "docsLink": "নথি দেখুন" } } diff --git a/plugins/ai/locales/translated/hi_IN.json b/plugins/ai/locales/translated/hi_IN.json index e75d94f64..eb0e1009c 100644 --- a/plugins/ai/locales/translated/hi_IN.json +++ b/plugins/ai/locales/translated/hi_IN.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "सहायक का उपयोग करें", + "description": "असिस्टेंट खोलें और उससे सवाल पूछें।" }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "प्रदाताओं का प्रबंधन करें", + "description": "एआई प्रदाताओं और उनकी एपीआई कुंजियों को जोड़ें, संपादित करें और हटाएं।" }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "प्रस्ताव लागू करें", + "description": "सहायक को उसके द्वारा सुझाए गए बदलावों को लागू करने दें।" }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "अन्य सुविधाओं से एआई का उपयोग करें", + "description": "अन्य सुविधाएं आपकी ओर से असिस्टेंट को कॉल कर सकती हैं।" }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "एपीआई कुंजी साझा करें", + "description": "अन्य सुविधाएं संग्रहीत एआई एपीआई कुंजी का उपयोग उसे देखे बिना भी कर सकती हैं।" } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "इस सर्वर पर एआई असिस्टेंट बंद है।", + "providersNeedOptIn": "प्रदाताओं को जोड़ने के लिए ऊपर दिए गए एआई सहायक को चालू करें।", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "एआई सहायक", + "description": "उपयोगकर्ताओं को एआई सहायक चालू करने की अनुमति दें। जब यह बंद होगा, तो सहायक सभी के लिए छिपा हुआ और अवरुद्ध रहेगा।" }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "निजी एआई होस्ट की अनुमति दी गई", + "description": "आपके निजी नेटवर्क पर मौजूद होस्ट, जिन्हें उपयोगकर्ता किसी प्रदाता से जोड़ सकते हैं, जैसे कि स्व-होस्टेड ओलामा। प्रत्येक पंक्ति में एक होस्ट रखें।" } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "एआई असिस्टेंट को सक्षम करें", + "description": "इस होस्ट के टर्मिनल में एआई सहायक को मदद करने की अनुमति दें। यह डिफ़ॉल्ट रूप से बंद है, लेकिन आपके खाते के लिए एआई को सक्षम करना आवश्यक है।" } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "सहायक", + "send": "भेजना", "stop": "स्टॉप", "save": "सहेजें", "cancel": "रद्द करें", "running": "चल रहे", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "मंज़ूरी देना", + "reject": "अस्वीकार करना", + "inputPlaceholder": "अपने सर्वरों के बारे में पूछें, या प्रस्तावित परिवर्तन का वर्णन करें।", + "selectProvider": "एक प्रदाता का चयन करें", + "providerSettings": "प्रदाता सेटिंग्स", + "addProvider": "प्रदाता जोड़ें", + "editProvider": "प्रदाता संपादित करें", + "removeProvider": "प्रदाता को हटाएँ", + "providerType": "प्रदाता", "providerLabel": "नाम", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", - "providerOpenai": "OpenAI", - "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerLabelPlaceholder": "उदाहरण के लिए: स्थानीय ओलामा", + "baseUrl": "सर्वर पता", + "apiKey": "एपीआई कुंजी", + "defaultModel": "डिफ़ॉल्ट मॉडल", + "defaultModelPlaceholder": "उदाहरण के लिए: llama3.1 या claude-opus-5", + "labelRequired": "इस प्रदाता को एक नाम दें", + "providerSaveFailed": "प्रदाता को बचाया नहीं जा सका", + "providerUpdated": "प्रदाता ने अपडेट किया", + "providerDeleteFailed": "प्रदाता को हटाया नहीं जा सका", + "privateEndpointHint": "आपके निजी नेटवर्क पर मौजूद पतों के लिए पहले एक प्रशासक द्वारा होस्ट को अनुमति देना आवश्यक है।", + "providerOllama": "ओलामा", + "providerAnthropic": "anthropic", + "providerOpenai": "ओपनएआई", + "providerGemini": "गूगल जेमिनी", + "providerOpenaiCompatible": "OpenAI संगत", "toolArguments": "इनपुट", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "परिणाम", + "statusApplied": "लागू किया गया", + "statusRejected": "अस्वीकार कर दिया", + "proposalApplied": "परिवर्तन लागू हो गया", + "proposalApplyFailed": "परिवर्तन लागू नहीं हो सका", + "proposalRejectFailed": "परिवर्तन को अस्वीकार नहीं किया जा सका", + "enableTitle": "एआई सहायक को सक्रिय करें", + "enableDescription": "सहायक को आपकी सेटअप प्रक्रिया पढ़ने दें और वह आपके अनुमोदन के लिए परिवर्तन सुझाएगा।", + "readOnlyCommands": "केवल पढ़ने योग्य डायग्नोस्टिक कमांड की अनुमति दें", + "readOnlyCommandsDescription": "सहायक बिना पूछे ही df और uptime जैसे कुछ सुरक्षित कमांड चला सकता है। सर्वर में कोई भी बदलाव करने का प्रस्ताव हमेशा पहले दिया जाता है।", + "modelDetectFailed": "प्रदाता से संपर्क नहीं हो सका, इसलिए यह एक सामान्य सूची है। आप किसी भी मॉडल का नाम टाइप कर सकते हैं।", + "modelCustom": "मॉडल का नाम दर्ज करें", + "modelRefresh": "सूची रीफ़्रेश करें", + "modelPlaceholder": "कोई मॉडल चुनें या टाइप करें", + "attachHint": "किसी होस्ट, स्निपेट या ऑटोमेशन को संदर्भित करने के लिए @ टाइप करें। आपके अनुमोदन के लिए परिवर्तन प्रस्तावित किए जा रहे हैं।", + "runCommandTitle": "कमांड चलाएँ", + "assistant": "एआई सहायक", + "terminalPanelEmpty": "इस होस्ट के बारे में असिस्टेंट से पूछें। किसी भी स्थिति में बदलाव के लिए पहले आपकी स्वीकृति आवश्यक है।", + "terminalPanelPlaceholder": "इस होस्ट के बारे में पूछें...", + "noProvidersConfigured": "अभी तक कोई एआई प्रदाता कॉन्फ़िगर नहीं किया गया है। एआई सहायक टैब में एक जोड़ें।", + "runsInOpenTerminal": "यह आपके खुले टर्मिनल सत्र में चलता है।", "runInTerminal": "चलाएं", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "यह मेरे टर्मिनल का आउटपुट है:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "अन्य सुविधाओं को अपने अनुरोधों के लिए आपके एआई प्रदाता एपीआई कुंजी का उपयोग करने दें। कुंजी की कभी प्रतिलिपि नहीं बनाई जाती है, और आप इसे किसी भी समय रद्द कर सकते हैं।" } }, "nav": { - "ai": "AI" + "ai": "ऐ" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "एआई सहायक", + "aiIntro": "टर्मिक्स में एक वैकल्पिक एआई सहायक शामिल हो सकता है। आप इसे बाद में अपनी सेटिंग्स में बदल सकते हैं।", + "aiSkipTitle": "इसे बंद कर दो", + "aiSkipDesc": "टर्मिक्स अभी की तरह ही काम करता है। असिस्टेंट छिपा रहता है।", + "aiEnableTitle": "इसे चालू करें", + "aiEnableDesc": "यह एक सहायक सुविधा जोड़ता है जो आपके सेटअप को पढ़ता है और आपके द्वारा स्वीकृत किए जाने वाले परिवर्तनों का सुझाव देता है। इसके लिए आपको एक प्रदाता उपलब्ध कराना होगा, जैसे कि स्थानीय ओलामा।", + "aiNote": "जब तक आप कोई प्रदाता नहीं जोड़ते और संदेश नहीं भेजते, तब तक कुछ भी कहीं नहीं भेजा जाता।" }, "hosts": { "docsLink": "दस्तावेज़ देखें" diff --git a/plugins/ai/locales/translated/id_ID.json b/plugins/ai/locales/translated/id_ID.json index 7b5758ffa..2caae0afb 100644 --- a/plugins/ai/locales/translated/id_ID.json +++ b/plugins/ai/locales/translated/id_ID.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Gunakan asisten", + "description": "Buka asisten dan ajukan pertanyaan kepadanya." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Mengelola penyedia", + "description": "Tambahkan, edit, dan hapus penyedia AI dan kunci API mereka." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Ajukan proposal", + "description": "Biarkan asisten tersebut menjalankan perubahan yang disarankannya." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Gunakan AI dari fitur lain.", + "description": "Fitur lainnya mungkin akan memanggil asisten atas nama Anda." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Bagikan kunci API", + "description": "Fitur lain mungkin menggunakan kunci API AI yang tersimpan tanpa mengetahuinya." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "Asisten AI dinonaktifkan di server ini.", + "providersNeedOptIn": "Aktifkan asisten AI di atas untuk menambahkan penyedia.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "Asisten AI", + "description": "Izinkan pengguna untuk mengaktifkan asisten AI. Saat dinonaktifkan, asisten akan disembunyikan dan diblokir untuk semua orang." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Host AI pribadi yang diizinkan", + "description": "Host di jaringan pribadi Anda yang dapat diarahkan pengguna ke penyedia layanan, seperti Ollama yang dihosting sendiri. Letakkan satu host di setiap baris." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Aktifkan Asisten AI", + "description": "Izinkan asisten AI untuk membantu di terminal host ini. Secara default dinonaktifkan, dan AI tetap perlu diaktifkan untuk akun Anda." } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "title": "Asisten", + "send": "Mengirim", + "stop": "Berhenti", + "save": "Menyimpan", + "cancel": "Membatalkan", + "running": "berlari", + "approve": "Menyetujui", + "reject": "Menolak", + "inputPlaceholder": "Tanyakan tentang server Anda, atau jelaskan perubahan yang ingin Anda usulkan.", + "selectProvider": "Pilih penyedia", + "providerSettings": "Pengaturan penyedia", + "addProvider": "Tambahkan penyedia", + "editProvider": "Penyedia pengeditan", + "removeProvider": "Hapus penyedia", + "providerType": "Penyedia", + "providerLabel": "Nama", + "providerLabelPlaceholder": "Contohnya: Ollama setempat", + "baseUrl": "Alamat server", + "apiKey": "Kunci API", + "defaultModel": "Model default", + "defaultModelPlaceholder": "Misalnya: llama3.1 atau claude-opus-5", + "labelRequired": "Beri nama penyedia ini", + "providerSaveFailed": "Penyedia layanan tidak dapat disimpan.", + "providerUpdated": "Penyedia diperbarui", + "providerDeleteFailed": "Penyedia layanan tidak dapat dihapus.", + "privateEndpointHint": "Alamat-alamat di jaringan pribadi Anda memerlukan izin administrator terlebih dahulu untuk host tersebut.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerAnthropic": "Antropis", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "providerOpenaiCompatible": "Kompatibel dengan OpenAI", + "toolArguments": "Masukan", + "toolResult": "Hasil", + "statusApplied": "Terapan", + "statusRejected": "Ditolak", + "proposalApplied": "Perubahan diterapkan", + "proposalApplyFailed": "Perubahan tidak dapat diterapkan.", + "proposalRejectFailed": "Tidak bisa menolak perubahan tersebut", + "enableTitle": "Aktifkan asisten AI", + "enableDescription": "Biarkan asisten membaca pengaturan Anda dan menyarankan perubahan yang perlu Anda setujui.", + "readOnlyCommands": "Izinkan perintah diagnostik hanya baca.", + "readOnlyCommandsDescription": "Asisten dapat menjalankan daftar singkat perintah aman seperti df dan uptime tanpa bertanya setiap kali. Apa pun yang mengubah server selalu diusulkan terlebih dahulu.", + "modelDetectFailed": "Tidak dapat menghubungi penyedia, jadi ini adalah daftar umum. Anda dapat mengetikkan nama model apa pun.", + "modelCustom": "Masukkan nama model", + "modelRefresh": "Perbarui daftar", + "modelPlaceholder": "Pilih atau ketik model", + "attachHint": "Ketik @ untuk merujuk ke host, cuplikan kode, atau otomatisasi. Perubahan diajukan untuk Anda setujui.", + "runCommandTitle": "Jalankan perintah", + "assistant": "Asisten AI", + "terminalPanelEmpty": "Tanyakan kepada asisten tentang tuan rumah ini. Segala sesuatu yang berubah status memerlukan persetujuan Anda terlebih dahulu.", + "terminalPanelPlaceholder": "Tanyakan tentang tuan rumah ini...", + "noProvidersConfigured": "Belum ada penyedia AI yang dikonfigurasi. Tambahkan satu di tab asisten AI.", + "runsInOpenTerminal": "Berjalan di sesi terminal Anda yang sedang terbuka.", + "runInTerminal": "Berlari", + "terminalContextPrefill": "Berikut adalah output terminal saya:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Izinkan fitur lain menggunakan kunci API penyedia AI Anda untuk permintaan mereka sendiri. Kunci tersebut tidak pernah disalin, dan Anda dapat mencabutnya kapan saja." } }, "nav": { "ai": "AI" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "Asisten AI", + "aiIntro": "Termix dapat menyertakan asisten AI opsional. Anda dapat mengubahnya nanti di pengaturan Anda.", + "aiSkipTitle": "Biarkan saja", + "aiSkipDesc": "Termix berfungsi seperti sekarang. Asisten tetap tersembunyi.", + "aiEnableTitle": "Nyalakan", + "aiEnableDesc": "Menambahkan asisten yang membaca pengaturan Anda dan menyarankan perubahan yang Anda setujui. Membutuhkan penyedia yang Anda berikan, seperti Ollama lokal.", + "aiNote": "Tidak ada data yang dikirim ke mana pun sampai Anda menambahkan penyedia dan mengirim pesan." }, "hosts": { - "docsLink": "View docs" + "docsLink": "Lihat dokumen" } } diff --git a/plugins/ai/locales/translated/no_NO.json b/plugins/ai/locales/translated/no_NO.json index 3dd895392..b76a26f06 100644 --- a/plugins/ai/locales/translated/no_NO.json +++ b/plugins/ai/locales/translated/no_NO.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Bruk assistenten", + "description": "Åpne assistenten og spør den om ting." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Administrer leverandører", + "description": "Legg til, rediger og fjern AI-leverandørene og API-nøklene deres." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Bruk forslag", + "description": "La assistenten utføre endringene den foreslår." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Bruk AI fra andre funksjoner", + "description": "Andre funksjoner kan ringe assistenten på dine vegne." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Del API-nøkkelen", + "description": "Andre funksjoner kan bruke den lagrede AI API-nøkkelen uten å se den." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "AI-assistenten er slått av på denne serveren.", + "providersNeedOptIn": "Slå på AI-assistenten ovenfor for å legge til leverandører.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "AI-assistent", + "description": "La brukere slå på AI-assistenten. Mens dette er av, er assistenten skjult og blokkert for alle." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Tillatte private AI-verter", + "description": "Verter på ditt private nettverk som brukere kan peke en leverandør til, for eksempel en selvhostet Ollama. Plasser én vert på hver linje." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Aktiver AI-assistent", + "description": "Tillat at AI-assistenten hjelper til i denne vertens terminal. Av som standard, og krever fortsatt at AI er aktivert for kontoen din." } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "Assistent", + "send": "Sende", "stop": "Stopp", "save": "Lagre", "cancel": "Avbryt", "running": "kjører", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "Vedta", + "reject": "Avvis", + "inputPlaceholder": "Spør om servitørene dine, eller beskriv en endring du vil foreslå", + "selectProvider": "Velg en leverandør", + "providerSettings": "Leverandørinnstillinger", + "addProvider": "Legg til leverandør", + "editProvider": "Rediger leverandør", + "removeProvider": "Fjern leverandør", + "providerType": "Leverandør", "providerLabel": "Navn", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "providerLabelPlaceholder": "For eksempel: Lokal Ollama", + "baseUrl": "Serveradresse", + "apiKey": "API-nøkkel", + "defaultModel": "Standardmodell", + "defaultModelPlaceholder": "For eksempel: llama3.1 eller claude-opus-5", + "labelRequired": "Gi denne leverandøren et navn", + "providerSaveFailed": "Kunne ikke lagre leverandøren", + "providerUpdated": "Leverandøren er oppdatert", + "providerDeleteFailed": "Kunne ikke fjerne leverandøren", + "privateEndpointHint": "Adresser på ditt private nettverk krever at en administrator tillater verten først.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", - "providerOpenai": "OpenAI", + "providerAnthropic": "Antropisk", + "providerOpenai": "Åpen kunstig intelligens", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "providerOpenaiCompatible": "OpenAI-kompatibel", + "toolArguments": "Inndata", + "toolResult": "Resultat", + "statusApplied": "Anvendt", + "statusRejected": "Avvist", + "proposalApplied": "Endringen er brukt", + "proposalApplyFailed": "Kunne ikke bruke endringen", + "proposalRejectFailed": "Kunne ikke avvise endringen", + "enableTitle": "Aktiver AI-assistenten", + "enableDescription": "La assistenten lese oppsettet ditt og foreslå endringer du kan godkjenne.", + "readOnlyCommands": "Tillat skrivebeskyttede diagnostiske kommandoer", + "readOnlyCommandsDescription": "Assistenten kan kjøre en kort liste med sikre kommandoer som df og uptime uten å spørre hver gang. Alt som endrer en server blir alltid foreslått først.", + "modelDetectFailed": "Kunne ikke nå leverandøren, så dette er en generell liste. Du kan skrive inn et hvilket som helst modellnavn.", + "modelCustom": "Skriv inn et modellnavn", + "modelRefresh": "Oppdater listen", + "modelPlaceholder": "Velg eller skriv inn en modell", + "attachHint": "Skriv inn @ for å referere til en vert, et kodeutdrag eller en automatisering. Endringer foreslås som du kan godkjenne.", + "runCommandTitle": "Kjør kommandoen", + "assistant": "AI-assistent", + "terminalPanelEmpty": "Spør assistenten om denne verten. Alt som endrer status trenger din godkjenning først.", + "terminalPanelPlaceholder": "Spør om denne verten...", + "noProvidersConfigured": "Ingen AI-leverandør er konfigurert ennå. Legg til en i AI-assistent-fanen.", + "runsInOpenTerminal": "Kjører i din åpne terminaløkt.", "runInTerminal": "Kjør", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "Her er terminalutgangen min:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "La andre funksjoner bruke API-nøkkelen til AI-leverandøren din for sine egne forespørsler. Nøkkelen kopieres aldri, og du kan tilbakekalle den når som helst." } }, "nav": { "ai": "AI" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "AI-assistent", + "aiIntro": "Termix kan inkludere en valgfri AI-assistent. Du kan endre dette senere i innstillingene dine.", + "aiSkipTitle": "La det være av", + "aiSkipDesc": "Termix fungerer som den gjør nå. Assistenten forblir skjult.", + "aiEnableTitle": "Slå den på", + "aiEnableDesc": "Legger til en assistent som leser oppsettet ditt og foreslår endringer du godkjenner. Krever en leverandør du oppgir, for eksempel en lokal Ollama.", + "aiNote": "Ingenting sendes noe sted før du legger til en leverandør og sender en melding." }, "hosts": { - "docsLink": "View docs" + "docsLink": "Vis dokumenter" } } diff --git a/plugins/ai/locales/translated/pl_PL.json b/plugins/ai/locales/translated/pl_PL.json index a1fd9c256..edbef7d6f 100644 --- a/plugins/ai/locales/translated/pl_PL.json +++ b/plugins/ai/locales/translated/pl_PL.json @@ -1,29 +1,29 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Użyj asystenta", + "description": "Otwórz asystenta i zadaj mu pytania." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Zarządzaj dostawcami", + "description": "Dodawaj, edytuj i usuwaj dostawców sztucznej inteligencji oraz ich klucze API." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Zastosuj propozycje", + "description": "Pozwól asystentowi wprowadzić sugerowane zmiany." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Użyj sztucznej inteligencji z innych funkcji", + "description": "Inne funkcje mogą umożliwiać wywoływanie asystenta w Twoim imieniu." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Udostępnij klucz API", + "description": "Inne funkcje mogą wykorzystywać zapisany klucz API AI, nawet go nie widząc." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "Asystent AI jest wyłączony na tym serwerze.", + "providersNeedOptIn": "Włącz asystenta AI powyżej, aby dodać dostawców.", "admin": { "globallyEnabled": { "label": "Asystent AI", @@ -31,13 +31,13 @@ }, "privateEndpoints": { "label": "Dozwolone prywatne hosty AI", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "description": "Hosty w Twojej sieci prywatnej, na które użytkownicy mogą wskazać dostawcę, na przykład samodzielnie hostowany Ollama. Umieść jednego hosta na każdej linii." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Włącz asystenta AI", + "description": "Zezwól asystentowi AI na pomoc w terminalu tego hosta. Domyślnie wyłączone, ale nadal wymaga włączenia AI na Twoim koncie." } } }, @@ -90,15 +90,15 @@ "modelPlaceholder": "Wybierz lub wpisz model", "attachHint": "Wpisz @, aby odwołać się do hosta, snippetu lub automatyzacji. Zmiany są proponowane do Twojego zatwierdzenia.", "runCommandTitle": "Uruchom polecenie", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "assistant": "Asystent AI", + "terminalPanelEmpty": "Zapytaj asystenta o tego hosta. Każda zmiana stanu wymaga Twojej zgody.", + "terminalPanelPlaceholder": "Zapytaj o tego gospodarza...", + "noProvidersConfigured": "Nie skonfigurowano jeszcze żadnego dostawcy AI. Dodaj go w zakładce Asystent AI.", + "runsInOpenTerminal": "Działa w otwartej sesji terminalowej.", "runInTerminal": "Uruchom", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "Oto wynik mojego terminala:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Pozwól innym funkcjom używać klucza API dostawcy sztucznej inteligencji do własnych żądań. Klucz nigdy nie jest kopiowany i możesz go w dowolnym momencie cofnąć." } }, "nav": { diff --git a/plugins/ai/locales/translated/pt_BR.json b/plugins/ai/locales/translated/pt_BR.json index 9cc13f482..d0e8cc792 100644 --- a/plugins/ai/locales/translated/pt_BR.json +++ b/plugins/ai/locales/translated/pt_BR.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Use o assistente", + "description": "Abra o assistente e faça perguntas." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Gerenciar fornecedores", + "description": "Adicione, edite e remova os fornecedores de IA e suas chaves de API." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Apresentar propostas", + "description": "Deixe que o assistente execute as alterações que sugerir." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Utilizar IA de outras funcionalidades", + "description": "Outras funcionalidades podem chamar o assistente em seu nome." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Compartilhe a chave da API", + "description": "Outras funcionalidades podem usar a chave da API de IA armazenada sem visualizá-la." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "O assistente de IA está desativado neste servidor.", + "providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "assistente de IA", + "description": "Permita que os usuários ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Hosts de IA privados permitidos", + "description": "Servidores na sua rede privada que os usuários podem usar como provedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Ativar o assistente de IA", + "description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por padrão, mas ainda precisa que a IA esteja ativada para sua conta." } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", + "title": "Assistente", + "send": "Enviar", + "stop": "Parar", "save": "Salvar", "cancel": "Cancelar", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "running": "correndo", + "approve": "Aprovar", + "reject": "Rejeitar", + "inputPlaceholder": "Pergunte sobre seus servidores ou descreva uma alteração que você gostaria de propor.", + "selectProvider": "Selecione um fornecedor", + "providerSettings": "Configurações do provedor", + "addProvider": "Adicionar provedor", + "editProvider": "Editar provedor", + "removeProvider": "Remover provedor", + "providerType": "Fornecedor", + "providerLabel": "Nome", + "providerLabelPlaceholder": "Por exemplo: Ollama local", + "baseUrl": "Endereço do servidor", + "apiKey": "Chave de API", + "defaultModel": "Modelo padrão", + "defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5", + "labelRequired": "Dê um nome a este fornecedor.", + "providerSaveFailed": "Não foi possível salvar o provedor.", + "providerUpdated": "Fornecedor atualizado", + "providerDeleteFailed": "Não foi possível remover o provedor.", + "privateEndpointHint": "Os endereços na sua rede privada precisam que um administrador autorize o host primeiro.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerAnthropic": "Antrópico", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "Compatível com OpenAI", "toolArguments": "Entrada", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "toolResult": "Resultado", + "statusApplied": "Aplicado", + "statusRejected": "Rejeitado", + "proposalApplied": "Alteração aplicada", + "proposalApplyFailed": "Não foi possível aplicar a alteração.", + "proposalRejectFailed": "Não foi possível rejeitar a alteração.", + "enableTitle": "Ative o assistente de IA", + "enableDescription": "Deixe o assistente ler sua configuração e sugerir alterações para você aprovar.", + "readOnlyCommands": "Permitir comandos de diagnóstico somente leitura", + "readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar a cada vez. Qualquer alteração que faça no servidor será sempre sugerida primeiro.", + "modelDetectFailed": "Não foi possível contatar o fornecedor, portanto esta é uma lista genérica. Você pode digitar o nome de qualquer modelo.", + "modelCustom": "Insira o nome do modelo", + "modelRefresh": "Atualizar lista", + "modelPlaceholder": "Selecione ou digite um modelo", + "attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para sua aprovação.", + "runCommandTitle": "Executar comando", + "assistant": "Assistente de IA", + "terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado precisa da sua aprovação prévia.", + "terminalPanelPlaceholder": "Pergunte sobre este anfitrião...", + "noProvidersConfigured": "Nenhum provedor de IA está configurado ainda. Adicione um na aba do assistente de IA.", + "runsInOpenTerminal": "Executa na sua sessão de terminal aberta.", + "runInTerminal": "Correr", + "terminalContextPrefill": "Aqui está a saída do meu terminal:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Permita que outros recursos usem sua chave de API do provedor de IA para suas próprias solicitações. A chave nunca é copiada e você pode revogá-la a qualquer momento." } }, "nav": { - "ai": "AI" + "ai": "IA" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "assistente de IA", + "aiIntro": "O Termix pode incluir um assistente de IA opcional. Você pode alterar isso posteriormente nas suas configurações.", + "aiSkipTitle": "Deixe desligado", + "aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.", + "aiEnableTitle": "Ligue-o", + "aiEnableDesc": "Adiciona um assistente que lê sua configuração e sugere alterações que você aprova. Requer um provedor fornecido por você, como um Ollama local.", + "aiNote": "Nada será enviado até que você adicione um provedor e envie uma mensagem." }, "hosts": { "docsLink": "Documentação" diff --git a/plugins/ai/locales/translated/pt_PT.json b/plugins/ai/locales/translated/pt_PT.json index 6c9aee940..2decda4f7 100644 --- a/plugins/ai/locales/translated/pt_PT.json +++ b/plugins/ai/locales/translated/pt_PT.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Utilize o assistente", + "description": "Abra o assistente e coloque questões." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Gerir fornecedores", + "description": "Adicione, edite e remova os fornecedores de IA e as suas chaves API." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Apresentar propostas", + "description": "Deixe que o assistente execute as alterações que sugerir." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Utilizar IA de outras funcionalidades", + "description": "Outras funcionalidades podem chamar o assistente em seu nome." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Partilhar a chave da API", + "description": "Outras funcionalidades podem utilizar a chave da API de IA armazenada sem a visualizar." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "O assistente de IA está desativado neste servidor.", + "providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "assistente de IA", + "description": "Permita que os utilizadores ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Hosts de IA privados permitidos", + "description": "Servidores na sua rede privada que os utilizadores podem utilizar como fornecedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Ativar o assistente de IA", + "description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por defeito, mas ainda precisa que a IA esteja ativada para a sua conta." } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "Assistente", + "send": "Enviar", "stop": "Stop", "save": "Guardar", "cancel": "Cancelar", "running": "em execução", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "Aprovar", + "reject": "Rejeitar", + "inputPlaceholder": "Pergunte pelos seus servidores ou descreva uma alteração que gostaria de propor.", + "selectProvider": "Selecione um fornecedor", + "providerSettings": "Configurações do fornecedor", + "addProvider": "Adicionar provedor", + "editProvider": "Editar provedor", + "removeProvider": "Remover fornecedor", + "providerType": "Fornecedor", "providerLabel": "Nome", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "providerLabelPlaceholder": "Por exemplo: Ollama local", + "baseUrl": "Endereço do servidor", + "apiKey": "Chave API", + "defaultModel": "Modelo padrão", + "defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5", + "labelRequired": "Dê um nome a este fornecedor.", + "providerSaveFailed": "Não foi possível guardar o fornecedor.", + "providerUpdated": "Fornecedor atualizado", + "providerDeleteFailed": "Não foi possível remover o fornecedor.", + "privateEndpointHint": "Os endereços na sua rede privada necessitam que um administrador autorize primeiro o host.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerAnthropic": "Antrópico", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "Compatível com OpenAI", "toolArguments": "Entrada", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "Resultado", + "statusApplied": "Aplicado", + "statusRejected": "Rejeitado", + "proposalApplied": "Alteração aplicada", + "proposalApplyFailed": "Não foi possível aplicar a alteração.", + "proposalRejectFailed": "Não foi possível rejeitar a alteração.", + "enableTitle": "Ative o assistente de IA", + "enableDescription": "Deixe o assistente ler a sua configuração e sugerir alterações para que a aprove.", + "readOnlyCommands": "Permitir comandos de diagnóstico de leitura apenas", + "readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar de cada vez. Qualquer alteração que faça no servidor será sempre sugerida em primeiro lugar.", + "modelDetectFailed": "Não foi possível contactar o fornecedor, pelo que esta é uma lista genérica. Pode digitar o nome de qualquer modelo.", + "modelCustom": "Introduza o nome do modelo", + "modelRefresh": "Atualizar lista", + "modelPlaceholder": "Selecione ou introduza um modelo", + "attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para a sua aprovação.", + "runCommandTitle": "Executar comando", + "assistant": "Assistente de IA", + "terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado necessita da sua aprovação prévia.", + "terminalPanelPlaceholder": "Pergunte sobre este anfitrião...", + "noProvidersConfigured": "Nenhum fornecedor de IA está configurado ainda. Adicione um no separador do assistente de IA.", + "runsInOpenTerminal": "Executa na sua sessão de terminal aberta.", "runInTerminal": "Executar", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "Eis a saída do meu terminal:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Permita que outros recursos utilizem a sua chave API do fornecedor de IA para os seus próprios pedidos. A chave nunca é copiada e pode revogá-la a qualquer momento." } }, "nav": { - "ai": "AI" + "ai": "IA" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "assistente de IA", + "aiIntro": "O Termix pode incluir um assistente de IA opcional. Pode alterar isso posteriormente nas suas definições.", + "aiSkipTitle": "Deixe desligado", + "aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.", + "aiEnableTitle": "Ligue-o", + "aiEnableDesc": "Adiciona um assistente que lê a sua configuração e sugere alterações que aprova. Requer um fornecedor fornecido por si, como um Ollama local.", + "aiNote": "Nada será enviado até que adicione um fornecedor e envie uma mensagem." }, "hosts": { "docsLink": "Ver documentação" diff --git a/plugins/ai/locales/translated/ru_RU.json b/plugins/ai/locales/translated/ru_RU.json index bb9ef6af6..6b84a4c58 100644 --- a/plugins/ai/locales/translated/ru_RU.json +++ b/plugins/ai/locales/translated/ru_RU.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Воспользуйтесь помощником", + "description": "Откройте ассистента и задайте ему вопросы." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Управление поставщиками", + "description": "Добавляйте, редактируйте и удаляйте поставщиков ИИ и их API-ключи." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Подайте заявки на участие в тендере.", + "description": "Пусть ассистент внесет предложенные им изменения." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Используйте ИИ из других функций.", + "description": "Другие функции могут вызывать голосового помощника от вашего имени." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Поделитесь ключом API", + "description": "Другие функции могут использовать сохраненный ключ API ИИ, даже не видя его." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "На этом сервере ИИ-помощник отключен.", + "providersNeedOptIn": "Включите ИИ-помощника выше, чтобы добавить поставщиков услуг.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "ИИ-помощник", + "description": "Разрешите пользователям включить голосового помощника. Если он выключен, помощник скрыт и заблокирован для всех." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Разрешены частные хосты ИИ", + "description": "Разместите на каждой линии по одному хосту в вашей частной сети, на которые пользователи могут направлять запросы провайдера, например, самостоятельно размещенный Ollama." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Включить ИИ-помощника", + "description": "Разрешите помощнику с искусственным интеллектом помогать на терминале этого хоста. По умолчанию отключено, но для вашей учетной записи ИИ все равно должен быть включен." } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "Помощник", + "send": "Отправлять", "stop": "Остановить", "save": "Сохранить", "cancel": "Отмена", "running": "выполняется", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "Утвердить", + "reject": "Отклонять", + "inputPlaceholder": "Поинтересуйтесь состоянием ваших серверов или предложите внести изменения.", + "selectProvider": "Выберите поставщика", + "providerSettings": "Настройки поставщика", + "addProvider": "Добавить поставщика", + "editProvider": "Поставщик редактирования", + "removeProvider": "Удалить поставщика", + "providerType": "Поставщик", "providerLabel": "Название", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerLabelPlaceholder": "Например: Местная лама", + "baseUrl": "Адрес сервера", + "apiKey": "ключ API", + "defaultModel": "Модель по умолчанию", + "defaultModelPlaceholder": "Например: llama3.1 или claude-opus-5", + "labelRequired": "Укажите имя этого поставщика услуг.", + "providerSaveFailed": "Не удалось сохранить поставщика услуг.", + "providerUpdated": "Поставщик обновлен", + "providerDeleteFailed": "Не удалось удалить поставщика услуг.", + "privateEndpointHint": "Для доступа к адресам в вашей частной сети необходимо предварительное разрешение администратора.", + "providerOllama": "оллама", + "providerAnthropic": "Антропический", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "Совместимость с OpenAI", "toolArguments": "Ввод", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "Результат", + "statusApplied": "Применяемый", + "statusRejected": "Отклоненный", + "proposalApplied": "Внесены изменения.", + "proposalApplyFailed": "Не удалось применить изменения.", + "proposalRejectFailed": "Не мог отклонить изменение.", + "enableTitle": "Включите ИИ-помощника", + "enableDescription": "Позвольте ассистенту ознакомиться с вашими настройками и предложить изменения для утверждения.", + "readOnlyCommands": "Разрешить диагностические команды только для чтения", + "readOnlyCommandsDescription": "Ассистент может выполнить короткий список безопасных команд, таких как df и uptime, не запрашивая подтверждения каждый раз. Любая команда, изменяющая состояние сервера, всегда предлагается в первую очередь.", + "modelDetectFailed": "Не удалось связаться с поставщиком, поэтому это общий список. Вы можете ввести любое название модели.", + "modelCustom": "Введите название модели", + "modelRefresh": "Обновить список", + "modelPlaceholder": "Выберите или введите модель", + "attachHint": "Введите @ для ссылки на хост, фрагмент кода или автоматизацию. Предлагаются изменения для вашего утверждения.", + "runCommandTitle": "Выполните команду", + "assistant": "ИИ-помощник", + "terminalPanelEmpty": "Спросите помощника об этом хосте. Любое изменение состояния требует вашего предварительного одобрения.", + "terminalPanelPlaceholder": "Спросите об этом хостинге...", + "noProvidersConfigured": "Поставщик ИИ пока не настроен. Добавьте его на вкладке «Помощник ИИ».", + "runsInOpenTerminal": "Запускается в открытой терминальной сессии.", "runInTerminal": "Запустить", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "Вот вывод моего терминала:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Разрешите другим функциям использовать ваш API-ключ поставщика ИИ для своих запросов. Ключ никогда не копируется, и вы можете отозвать его в любое время." } }, "nav": { - "ai": "AI" + "ai": "ИИ" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "ИИ-помощник", + "aiIntro": "В Termix можно добавить опционального ИИ-помощника. Это можно изменить позже в настройках.", + "aiSkipTitle": "Оставьте это выключенным.", + "aiSkipDesc": "Termix работает так, как сейчас. Ассистент остается скрытым.", + "aiEnableTitle": "Включите его", + "aiEnableDesc": "Добавляет помощника, который анализирует ваши настройки и предлагает изменения, которые вы одобряете. Требуется поставщик, которого вы предоставляете, например, местный Ollama.", + "aiNote": "Ничего никуда не отправляется, пока вы не добавите поставщика услуг и не отправите сообщение." }, "hosts": { "docsLink": "Документация" diff --git a/plugins/ai/locales/translated/sr_SP.json b/plugins/ai/locales/translated/sr_SP.json index 7b5758ffa..e8f3c2e88 100644 --- a/plugins/ai/locales/translated/sr_SP.json +++ b/plugins/ai/locales/translated/sr_SP.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Користите помоћника", + "description": "Отворите асистента и питајте га." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Управљајте добављачима", + "description": "Додајте, уредите и уклоните добављаче вештачке интелигенције и њихове АПИ кључеве." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Примени предлоге", + "description": "Нека асистент изврши измене које предложи." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Користите вештачку интелигенцију из других функција", + "description": "Друге функције могу позвати асистента у ваше име." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Поделите API кључ", + "description": "Друге функције могу користити сачувани AI API кључ, а да га не виде." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "АИ асистент је искључен на овом серверу.", + "providersNeedOptIn": "Укључите AI асистента изнад да бисте додали добављаче.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "Асистент за вештачку интелигенцију", + "description": "Дозволите корисницима да укључе вештачку интелигенцију асистента. Док је ово искључено, асистент је скривен и блокиран за све." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Дозвољени приватни AI хостови", + "description": "Домаћини на вашој приватној мрежи на које корисници могу усмерити провајдера, као што је самостално хостовани Ollama. Ставите по један хост у сваки ред." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Омогући AI асистент", + "description": "Дозволите вештачкој интелигенцији да помогне у терминалу овог хоста. Искључено је подразумевано, а и даље је потребно да вештачка интелигенција буде омогућена за ваш налог." } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "title": "Асистент", + "send": "Пошаљи", + "stop": "Заустави", + "save": "Сачувај", + "cancel": "Откажи", + "running": "трчање", + "approve": "Одобри", + "reject": "Одбиј", + "inputPlaceholder": "Питајте о својим серверима или опишите промену коју желите да предложите", + "selectProvider": "Изаберите добављача", + "providerSettings": "Подешавања добављача", + "addProvider": "Додај добављача", + "editProvider": "Измени добављача", + "removeProvider": "Уклони добављача", + "providerType": "Провајдер", + "providerLabel": "Име", + "providerLabelPlaceholder": "На пример: Локална Олама", + "baseUrl": "Адреса сервера", + "apiKey": "API кључ", + "defaultModel": "Подразумевани модел", + "defaultModelPlaceholder": "На пример: llama3.1 или claude-opus-5", + "labelRequired": "Дајте име овом добављачу", + "providerSaveFailed": "Није могуће сачувати добављача", + "providerUpdated": "Провајдер је ажуриран", + "providerDeleteFailed": "Није могуће уклонити добављача", + "privateEndpointHint": "Адресе на вашој приватној мрежи прво треба да дозволе администратору хоста.", + "providerOllama": "Олама", + "providerAnthropic": "Антропски", "providerOpenai": "OpenAI", - "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "providerGemini": "Гугл Џемини", + "providerOpenaiCompatible": "Компатибилно са OpenAI-ом", + "toolArguments": "Унос", + "toolResult": "Резултат", + "statusApplied": "Примењено", + "statusRejected": "Одбијено", + "proposalApplied": "Промена је примењена", + "proposalApplyFailed": "Није могуће применити промену", + "proposalRejectFailed": "Није могуће одбити промену", + "enableTitle": "Омогућите вештачку интелигенцију (AI) асистента", + "enableDescription": "Нека асистент прочита ваша подешавања и предложи измене које ћете одобрити.", + "readOnlyCommands": "Дозволи дијагностичке команде само за читање", + "readOnlyCommandsDescription": "Асистент може да покрене кратку листу безбедних команди као што су df и uptime без сваког питања. Све што мења сервер се увек прво предлаже.", + "modelDetectFailed": "Нисмо могли да контактирамо добављача, тако да је ово општа листа. Можете да унесете било који назив модела.", + "modelCustom": "Унесите назив модела", + "modelRefresh": "Освежи листу", + "modelPlaceholder": "Изаберите или унесите модел", + "attachHint": "Унесите @ да бисте референцирали хост, исечак кода или аутоматизацију. Промене се предлажу да бисте их одобрили.", + "runCommandTitle": "Покрени команду", + "assistant": "АИ асистент", + "terminalPanelEmpty": "Питајте асистента о овом домаћину. Све што мења стање прво захтева ваше одобрење.", + "terminalPanelPlaceholder": "Питајте о овом домаћину...", + "noProvidersConfigured": "Још увек није конфигурисан ниједан добављач вештачке интелигенције. Додајте га на картици помоћника за вештачку интелигенцију.", + "runsInOpenTerminal": "Покреће се у вашој отвореној терминалној сесији.", + "runInTerminal": "Трчи", + "terminalContextPrefill": "Ево мог терминалног излаза:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Дозволите другим функцијама да користе ваш API кључ добављача вештачке интелигенције за сопствене захтеве. Кључ се никада не копира и можете га опозвати у било ком тренутку." } }, "nav": { - "ai": "AI" + "ai": "Вештачка интелигенција" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "Асистент за вештачку интелигенцију", + "aiIntro": "Termix може да укључи опционог AI асистента. Ово можете касније променити у подешавањима.", + "aiSkipTitle": "Остави то искључено", + "aiSkipDesc": "Термикс ради као и сада. Асистент остаје скривен.", + "aiEnableTitle": "Укључи га", + "aiEnableDesc": "Додаје асистента који чита ваша подешавања и предлаже измене које одобравате. Потребан је добављач кога ви обезбедите, као што је локални Олама.", + "aiNote": "Ништа се не шаље нигде док не додате провајдера и не пошаљете поруку." }, "hosts": { - "docsLink": "View docs" + "docsLink": "Прикажи документе" } } diff --git a/plugins/ai/locales/translated/sv_SE.json b/plugins/ai/locales/translated/sv_SE.json index 7b5758ffa..326ce2403 100644 --- a/plugins/ai/locales/translated/sv_SE.json +++ b/plugins/ai/locales/translated/sv_SE.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Använd assistenten", + "description": "Öppna assistenten och fråga den saker." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Hantera leverantörer", + "description": "Lägg till, redigera och ta bort AI-leverantörerna och deras API-nycklar." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Tillämpa förslag", + "description": "Låt assistenten utföra de ändringar den föreslår." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Använd AI från andra funktioner", + "description": "Andra funktioner kan ringa assistenten åt dig." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Dela API-nyckeln", + "description": "Andra funktioner kan använda den lagrade AI API-nyckeln utan att se den." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "AI-assistenten är avstängd på den här servern.", + "providersNeedOptIn": "Aktivera AI-assistenten ovan för att lägga till leverantörer.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "AI-assistent", + "description": "Låt användare aktivera AI-assistenten. Medan detta är avstängt är assistenten dold och blockerad för alla." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Tillåtna privata AI-värdar", + "description": "Värdar på ditt privata nätverk som användare kan hänvisa en leverantör till, till exempel en självhostad Ollama. Lägg en värd på varje rad." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Aktivera AI-assistenten", + "description": "Tillåt AI-assistenten att hjälpa till i den här värdens terminal. Av som standard och kräver fortfarande att AI är aktiverat för ditt konto." } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "title": "Assistent", + "send": "Skicka", + "stop": "Stopp", + "save": "Spara", + "cancel": "Avboka", + "running": "spring", + "approve": "Godkänna", + "reject": "Avvisa", + "inputPlaceholder": "Fråga om era servrar, eller beskriv en förändring att föreslå", + "selectProvider": "Välj en leverantör", + "providerSettings": "Leverantörsinställningar", + "addProvider": "Lägg till leverantör", + "editProvider": "Redigera leverantör", + "removeProvider": "Ta bort leverantör", + "providerType": "Leverantör", + "providerLabel": "Namn", + "providerLabelPlaceholder": "Till exempel: Lokal Ollama", + "baseUrl": "Serveradress", + "apiKey": "API-nyckel", + "defaultModel": "Standardmodell", + "defaultModelPlaceholder": "Till exempel: llama3.1 eller claude-opus-5", + "labelRequired": "Ge den här leverantören ett namn", + "providerSaveFailed": "Kunde inte spara leverantören", + "providerUpdated": "Leverantören uppdaterad", + "providerDeleteFailed": "Kunde inte ta bort leverantören", + "privateEndpointHint": "Adresser i ditt privata nätverk behöver en administratör som först tillåter värden.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", - "providerOpenai": "OpenAI", + "providerAnthropic": "Antropisk", + "providerOpenai": "Öppen AI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "OpenAI-kompatibel", "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "toolResult": "Resultat", + "statusApplied": "Tillämpad", + "statusRejected": "Avvisad", + "proposalApplied": "Ändring tillämpad", + "proposalApplyFailed": "Kunde inte tillämpa ändringen", + "proposalRejectFailed": "Kunde inte avvisa ändringen", + "enableTitle": "Aktivera AI-assistenten", + "enableDescription": "Låt assistenten läsa dina inställningar och föreslå ändringar som du kan godkänna.", + "readOnlyCommands": "Tillåt skrivskyddade diagnostikkommandon", + "readOnlyCommandsDescription": "Assistenten kan köra en kort lista med säkra kommandon som df och uptime utan att fråga varje gång. Allt som ändrar en server föreslås alltid först.", + "modelDetectFailed": "Kunde inte nå leverantören, så detta är en allmän lista. Du kan skriva in vilket modellnamn som helst.", + "modelCustom": "Ange ett modellnamn", + "modelRefresh": "Uppdatera listan", + "modelPlaceholder": "Välj eller skriv en modell", + "attachHint": "Skriv @ för att referera till en värd, ett kodavsnitt eller en automatisering. Ändringar föreslås för dig att godkänna.", + "runCommandTitle": "Kör kommando", + "assistant": "AI-assistent", + "terminalPanelEmpty": "Fråga assistenten om den här värden. Allt som ändras kräver ditt godkännande först.", + "terminalPanelPlaceholder": "Fråga om den här värden...", + "noProvidersConfigured": "Ingen AI-leverantör är konfigurerad ännu. Lägg till en på fliken AI-assistent.", + "runsInOpenTerminal": "Körs i din öppna terminalsession.", + "runInTerminal": "Sikt", + "terminalContextPrefill": "Här är min terminalutgång:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Låt andra funktioner använda din AI-leverantörs API-nyckel för sina egna förfrågningar. Nyckeln kopieras aldrig och du kan återkalla den när som helst." } }, "nav": { "ai": "AI" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "AI-assistent", + "aiIntro": "Termix kan inkludera en valfri AI-assistent. Du kan ändra detta senare i dina inställningar.", + "aiSkipTitle": "Lämna den av", + "aiSkipDesc": "Termix fungerar som den gör nu. Assistenten förblir dold.", + "aiEnableTitle": "Slå på den", + "aiEnableDesc": "Lägger till en assistent som läser din installation och föreslår ändringar som du godkänner. Kräver en leverantör som du tillhandahåller, till exempel en lokal Ollama.", + "aiNote": "Ingenting skickas någonstans förrän du lägger till en leverantör och skickar ett meddelande." }, "hosts": { - "docsLink": "View docs" + "docsLink": "Visa dokument" } } diff --git a/plugins/ai/locales/translated/th_TH.json b/plugins/ai/locales/translated/th_TH.json index 7b5758ffa..6df161654 100644 --- a/plugins/ai/locales/translated/th_TH.json +++ b/plugins/ai/locales/translated/th_TH.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "ใช้ตัวช่วย", + "description": "เปิดผู้ช่วยเสมือนจริงแล้วถามคำถามได้เลย" }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "จัดการผู้ให้บริการ", + "description": "เพิ่ม แก้ไข และลบผู้ให้บริการ AI และคีย์ API ของพวกเขา" }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "ยื่นข้อเสนอ", + "description": "ให้ผู้ช่วยดำเนินการเปลี่ยนแปลงตามที่ระบบแนะนำ" }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "ใช้ AI จากฟีเจอร์อื่นๆ", + "description": "ฟังก์ชันอื่นๆ อาจโทรติดต่อผู้ช่วยในนามของคุณ" }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "แชร์คีย์ API", + "description": "ฟังก์ชันอื่นๆ อาจใช้คีย์ API ของ AI ที่บันทึกไว้โดยไม่เห็นคีย์นั้น" } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "ระบบผู้ช่วย AI ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้", + "providersNeedOptIn": "เปิดใช้งานผู้ช่วย AI ด้านบนเพื่อเพิ่มผู้ให้บริการ", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "ผู้ช่วย AI", + "description": "อนุญาตให้ผู้ใช้เปิดใช้งานผู้ช่วย AI ได้ เมื่อปิดใช้งานอยู่ ผู้ช่วยจะถูกซ่อนและบล็อกไม่ให้ใครเห็น" }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "อนุญาตให้โฮสต์ AI ส่วนตัว", + "description": "โฮสต์บนเครือข่ายส่วนตัวของคุณที่ผู้ใช้สามารถชี้ไปยังผู้ให้บริการได้ เช่น Ollama ที่ติดตั้งเอง ให้ใส่โฮสต์หนึ่งตัวต่อหนึ่งบรรทัด" } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "เปิดใช้งานผู้ช่วย AI", + "description": "อนุญาตให้ผู้ช่วย AI ช่วยเหลือในเทอร์มินัลของโฮสต์นี้ โดยค่าเริ่มต้นจะปิดอยู่ และยังคงต้องเปิดใช้งาน AI สำหรับบัญชีของคุณก่อน" } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", - "providerOpenai": "OpenAI", - "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "title": "ผู้ช่วย", + "send": "ส่ง", + "stop": "หยุด", + "save": "บันทึก", + "cancel": "ยกเลิก", + "running": "วิ่ง", + "approve": "อนุมัติ", + "reject": "ปฏิเสธ", + "inputPlaceholder": "สอบถามเกี่ยวกับเซิร์ฟเวอร์ของคุณ หรืออธิบายการเปลี่ยนแปลงที่คุณต้องการเสนอแนะ", + "selectProvider": "เลือกผู้ให้บริการ", + "providerSettings": "การตั้งค่าผู้ให้บริการ", + "addProvider": "เพิ่มผู้ให้บริการ", + "editProvider": "แก้ไขผู้ให้บริการ", + "removeProvider": "ลบผู้ให้บริการ", + "providerType": "ผู้ให้บริการ", + "providerLabel": "ชื่อ", + "providerLabelPlaceholder": "ตัวอย่างเช่น: Ollama ท้องถิ่น", + "baseUrl": "ที่อยู่เซิร์ฟเวอร์", + "apiKey": "คีย์ API", + "defaultModel": "โมเดลเริ่มต้น", + "defaultModelPlaceholder": "ตัวอย่างเช่น: llama3.1 หรือ claude-opus-5", + "labelRequired": "ตั้งชื่อให้ผู้ให้บริการรายนี้", + "providerSaveFailed": "ไม่สามารถบันทึกผู้ให้บริการได้", + "providerUpdated": "ผู้ให้บริการได้รับการอัปเดตแล้ว", + "providerDeleteFailed": "ไม่สามารถลบผู้ให้บริการได้", + "privateEndpointHint": "การเข้าถึงที่อยู่บนเครือข่ายส่วนตัวของคุณนั้น จำเป็นต้องให้ผู้ดูแลระบบอนุญาตก่อน", + "providerOllama": "โอลาม่า", + "providerAnthropic": "แอนโทรปิก", + "providerOpenai": "โอเพ่นไอ", + "providerGemini": "กูเกิล เจมินี", + "providerOpenaiCompatible": "เข้ากันได้กับ OpenAI", + "toolArguments": "ป้อนข้อมูล", + "toolResult": "ผลลัพธ์", + "statusApplied": "สมัครแล้ว", + "statusRejected": "ถูกปฏิเสธ", + "proposalApplied": "มีการเปลี่ยนแปลงเกิดขึ้น", + "proposalApplyFailed": "ไม่สามารถทำการเปลี่ยนแปลงได้", + "proposalRejectFailed": "ไม่สามารถปฏิเสธการเปลี่ยนแปลงได้", + "enableTitle": "เปิดใช้งานผู้ช่วย AI", + "enableDescription": "ให้ผู้ช่วยอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงเพื่อให้คุณอนุมัติ", + "readOnlyCommands": "อนุญาตคำสั่งวินิจฉัยแบบอ่านอย่างเดียว", + "readOnlyCommandsDescription": "ผู้ช่วยอาจเรียกใช้คำสั่งที่ปลอดภัยเพียงไม่กี่คำสั่ง เช่น df และ uptime โดยไม่ต้องถามทุกครั้ง คำสั่งใดๆ ที่เปลี่ยนแปลงสถานะของเซิร์ฟเวอร์จะถูกเสนอให้ดำเนินการก่อนเสมอ", + "modelDetectFailed": "ไม่สามารถติดต่อผู้ให้บริการได้ ดังนั้นนี่จึงเป็นรายการทั่วไป คุณสามารถพิมพ์ชื่อรุ่นใดก็ได้", + "modelCustom": "ป้อนชื่อรุ่น", + "modelRefresh": "รีเฟรชรายการ", + "modelPlaceholder": "เลือกหรือพิมพ์แบบจำลอง", + "attachHint": "พิมพ์ @ เพื่ออ้างอิงถึงโฮสต์ สนิปเป็ต หรือระบบอัตโนมัติ การเปลี่ยนแปลงที่เสนอจะถูกนำมาให้คุณอนุมัติ", + "runCommandTitle": "เรียกใช้คำสั่ง", + "assistant": "ผู้ช่วย AI", + "terminalPanelEmpty": "สอบถามผู้ช่วยเกี่ยวกับโฮสต์นี้ การเปลี่ยนแปลงสถานะใดๆ ต้องได้รับการอนุมัติจากคุณก่อน", + "terminalPanelPlaceholder": "สอบถามเกี่ยวกับโฮสต์รายนี้...", + "noProvidersConfigured": "ยังไม่ได้ตั้งค่าผู้ให้บริการ AI เพิ่มผู้ให้บริการในแท็บผู้ช่วย AI", + "runsInOpenTerminal": "ทำงานในเซสชันเทอร์มินัลที่เปิดอยู่ของคุณ", + "runInTerminal": "วิ่ง", + "terminalContextPrefill": "นี่คือผลลัพธ์จากเทอร์มินัลของฉัน:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "อนุญาตให้ฟีเจอร์อื่นๆ ใช้คีย์ API ของผู้ให้บริการ AI ของคุณสำหรับการร้องขอของตนเอง คีย์นี้จะไม่ถูกคัดลอก และคุณสามารถยกเลิกได้ทุกเมื่อ" } }, "nav": { "ai": "AI" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "ผู้ช่วย AI", + "aiIntro": "Termix อาจมีผู้ช่วย AI เสริม คุณสามารถเปลี่ยนการตั้งค่าได้ในภายหลัง", + "aiSkipTitle": "ปิดมันไว้", + "aiSkipDesc": "Termix ทำงานเหมือนเดิมทุกประการ ตัวช่วยยังคงซ่อนอยู่", + "aiEnableTitle": "เปิดใช้งาน", + "aiEnableDesc": "เพิ่มผู้ช่วยที่จะอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงที่คุณต้องอนุมัติ จำเป็นต้องมีผู้ให้บริการที่คุณจัดหาให้ เช่น Ollama ในพื้นที่ของคุณ", + "aiNote": "จะไม่มีการส่งข้อมูลใดๆ จนกว่าคุณจะเพิ่มผู้ให้บริการและส่งข้อความ" }, "hosts": { - "docsLink": "View docs" + "docsLink": "ดูเอกสาร" } } diff --git a/plugins/ai/locales/translated/tr_TR.json b/plugins/ai/locales/translated/tr_TR.json index e2c58918d..dfd8291ed 100644 --- a/plugins/ai/locales/translated/tr_TR.json +++ b/plugins/ai/locales/translated/tr_TR.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Yardımcıyı kullanın", + "description": "Asistanı açın ve ona sorular sorun." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Sağlayıcıları yönetin", + "description": "Yapay zeka sağlayıcılarını ve API anahtarlarını ekleyin, düzenleyin ve kaldırın." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Tekliflerinizi sunun.", + "description": "Yardımcının önerdiği değişiklikleri uygulamasına izin verin." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Diğer özelliklerden yapay zeka kullanın.", + "description": "Diğer özellikler sizin adınıza asistanı arayabilir." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "API anahtarını paylaşın", + "description": "Diğer özellikler, kaydedilmiş yapay zeka API anahtarını görmeden kullanabilir." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "Bu sunucuda yapay zeka asistanı devre dışı bırakılmıştır.", + "providersNeedOptIn": "Sağlayıcı eklemek için yukarıdaki yapay zeka asistanını açın.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "Yapay zeka asistanı", + "description": "Kullanıcıların yapay zeka asistanını açmasına izin verin. Bu özellik kapalıyken, asistan gizlenir ve herkes için engellenir." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Özel yapay zeka sunucularına izin verildi.", + "description": "Kullanıcıların bir sağlayıcıya yönlendirebileceği özel ağınızdaki sunucular (örneğin, kendi sunucunuzda barındırdığınız Ollama). Her satıra bir sunucu yazın." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Yapay Zeka Asistanını Etkinleştir", + "description": "Bu sunucunun terminalinde yapay zeka asistanının yardımcı olmasına izin verin. Varsayılan olarak kapalıdır ve hesabınız için yapay zekanın etkinleştirilmiş olması gerekir." } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "Asistan", + "send": "Göndermek", "stop": "Durdurma", "save": "Kaydet", "cancel": "İptal", "running": "çalışan", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "Onaylamak", + "reject": "Reddetmek", + "inputPlaceholder": "Sunucularınız hakkında bilgi isteyin veya önereceğiniz bir değişikliği açıklayın.", + "selectProvider": "Bir sağlayıcı seçin", + "providerSettings": "Sağlayıcı ayarları", + "addProvider": "Sağlayıcı ekle", + "editProvider": "Sağlayıcıyı düzenle", + "removeProvider": "Sağlayıcıyı kaldır", + "providerType": "Sağlayıcı", "providerLabel": "Ad", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "providerLabelPlaceholder": "Örneğin: Yerel Ollama", + "baseUrl": "Sunucu adresi", + "apiKey": "API anahtarı", + "defaultModel": "Varsayılan model", + "defaultModelPlaceholder": "Örneğin: llama3.1 veya claude-opus-5", + "labelRequired": "Bu sağlayıcıya bir isim verin.", + "providerSaveFailed": "Sağlayıcı kaydedilemedi.", + "providerUpdated": "Sağlayıcı güncellendi.", + "providerDeleteFailed": "Sağlayıcı kaldırılamadı.", + "privateEndpointHint": "Özel ağınızdaki adreslerin kullanılabilmesi için öncelikle yöneticinin sunucuya izin vermesi gerekmektedir.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerAnthropic": "Antropik", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "OpenAI uyumlu", "toolArguments": "Giriş", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "Sonuç", + "statusApplied": "Uygulandı", + "statusRejected": "Reddedilmiş", + "proposalApplied": "Değişiklik uygulandı.", + "proposalApplyFailed": "Değişiklik uygulanamadı.", + "proposalRejectFailed": "Değişikliği reddedemedim.", + "enableTitle": "Yapay zekâ asistanını etkinleştirin", + "enableDescription": "Asistanın ayarlarınızı okumasını ve onaylamanız için değişiklik önerileri sunmasını sağlayın.", + "readOnlyCommands": "Yalnızca okuma amaçlı tanı komutlarına izin ver", + "readOnlyCommandsDescription": "Yardımcı program, her seferinde sormadan df ve uptime gibi kısa bir güvenli komut listesini çalıştırabilir. Sunucuda değişiklik yapan her şey her zaman önce önerilir.", + "modelDetectFailed": "Sağlayıcıya ulaşılamadı, bu nedenle bu genel bir listedir. İstediğiniz model adını yazabilirsiniz.", + "modelCustom": "Bir model adı girin", + "modelRefresh": "Listeyi yenile", + "modelPlaceholder": "Bir model seçin veya yazın.", + "attachHint": "Bir sunucuya, kod parçasına veya otomasyona referans vermek için @ işaretini kullanın. Onaylamanız için değişiklikler öneriliyor.", + "runCommandTitle": "Çalıştır komutu", + "assistant": "Yapay Zeka Asistanı", + "terminalPanelEmpty": "Bu ev sahibi hakkında asistana danışın. Durum değişikliği gerektiren her şey önce sizin onayınızı gerektirir.", + "terminalPanelPlaceholder": "Bu ev sahibi hakkında bilgi isteyin...", + "noProvidersConfigured": "Henüz hiçbir yapay zeka sağlayıcısı yapılandırılmadı. Yapay zeka asistanı sekmesinden bir tane ekleyin.", + "runsInOpenTerminal": "Açık terminal oturumunuzda çalışır.", "runInTerminal": "Çalıştır", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "İşte terminal çıktım:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Diğer özelliklerin kendi istekleri için yapay zeka sağlayıcınızın API anahtarını kullanmasına izin verin. Anahtar asla kopyalanmaz ve bunu istediğiniz zaman iptal edebilirsiniz." } }, "nav": { - "ai": "AI" + "ai": "Yapay zeka" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "Yapay zeka asistanı", + "aiIntro": "Termix isteğe bağlı bir yapay zeka asistanı içerebilir. Bunu daha sonra ayarlarınızdan değiştirebilirsiniz.", + "aiSkipTitle": "Kapalı bırakın", + "aiSkipDesc": "Termix şu anki haliyle çalışıyor. Asistan gizli kalıyor.", + "aiEnableTitle": "Açın", + "aiEnableDesc": "Ayarlarınızı okuyan ve onaylamanız halinde değişiklikler öneren bir asistan ekler. Yerel bir Ollama gibi, sizin sağladığınız bir sağlayıcıya ihtiyaç duyar.", + "aiNote": "Bir sağlayıcı ekleyip mesaj gönderene kadar hiçbir şey hiçbir yere gönderilmez." }, "hosts": { "docsLink": "Dokümanları görüntüle" diff --git a/plugins/ai/locales/translated/uk_UA.json b/plugins/ai/locales/translated/uk_UA.json index 7b5758ffa..8eb84143a 100644 --- a/plugins/ai/locales/translated/uk_UA.json +++ b/plugins/ai/locales/translated/uk_UA.json @@ -1,119 +1,119 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Використовуйте помічника", + "description": "Відкрийте помічника та запитайте його." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Керування постачальниками", + "description": "Додавайте, редагуйте та видаляйте постачальників штучного інтелекту та їхні ключі API." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Застосувати пропозиції", + "description": "Нехай помічник внесе запропоновані ним зміни." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Використання ШІ з інших функцій", + "description": "Інші функції можуть викликати помічника від вашого імені." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Поділитися ключем API", + "description": "Інші функції можуть використовувати збережений ключ API штучного інтелекту, не бачачи його." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "Помічник зі штучним інтелектом вимкнено на цьому сервері.", + "providersNeedOptIn": "Увімкніть помічника зі штучним інтелектом вище, щоб додати постачальників.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "Асистент зі штучним інтелектом", + "description": "Дозвольте користувачам увімкнути помічника зі штучним інтелектом. Коли це вимкнено, помічник прихований і заблокований для всіх." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Дозволені приватні хости ШІ", + "description": "Хости у вашій приватній мережі, на які користувачі можуть вказувати провайдера, наприклад, Ollama з власним хостингом. Розмістіть по одному хосту в кожному рядку." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Увімкнути помічника зі штучним інтелектом", + "description": "Дозволити помічнику зі штучним інтелектом допомагати в терміналі цього хоста. Вимкнено за замовчуванням, але все одно потребує ввімкнення штучного інтелекту для вашого облікового запису." } } }, "ai": { - "title": "Assistant", - "send": "Send", - "stop": "Stop", - "save": "Save", - "cancel": "Cancel", - "running": "running", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", - "providerLabel": "Name", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "title": "Помічник", + "send": "Надіслати", + "stop": "СТІЙ", + "save": "Зберегти", + "cancel": "Скасувати", + "running": "біг", + "approve": "Схвалити", + "reject": "Відхилити", + "inputPlaceholder": "Запитайте про ваші сервери або опишіть зміну, яку ви хочете запропонувати", + "selectProvider": "Виберіть постачальника", + "providerSettings": "Налаштування постачальника", + "addProvider": "Додати постачальника", + "editProvider": "Редагувати постачальника", + "removeProvider": "Видалити постачальника", + "providerType": "Постачальник", + "providerLabel": "Ім'я", + "providerLabelPlaceholder": "Наприклад: Місцевий Оллама", + "baseUrl": "Адреса сервера", + "apiKey": "Ключ API", + "defaultModel": "Модель за замовчуванням", + "defaultModelPlaceholder": "Наприклад: llama3.1 або claude-opus-5", + "labelRequired": "Дайте назву цьому постачальнику", + "providerSaveFailed": "Не вдалося зберегти постачальника", + "providerUpdated": "Постачальника оновлено", + "providerDeleteFailed": "Не вдалося видалити постачальника", + "privateEndpointHint": "Адреси у вашій приватній мережі спочатку потребують дозволу адміністратора хоста.", + "providerOllama": "Оллама", + "providerAnthropic": "Антропний", "providerOpenai": "OpenAI", - "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", - "toolArguments": "Input", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", - "runInTerminal": "Run", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "providerGemini": "Google Близнюки", + "providerOpenaiCompatible": "Сумісний з OpenAI", + "toolArguments": "Вхід", + "toolResult": "Результат", + "statusApplied": "Застосовано", + "statusRejected": "Відхилено", + "proposalApplied": "Зміну застосовано", + "proposalApplyFailed": "Не вдалося застосувати зміну", + "proposalRejectFailed": "Не вдалося відхилити зміну", + "enableTitle": "Увімкнути помічника зі штучним інтелектом", + "enableDescription": "Дозвольте асистенту прочитати ваші налаштування та запропонувати зміни для вашого схвалення.", + "readOnlyCommands": "Дозволити діагностичні команди лише для читання", + "readOnlyCommandsDescription": "Помічник може виконувати короткий список безпечних команд, таких як df та uptime, не запитуючи щоразу. Будь-які зміни на сервері завжди пропонуються першими.", + "modelDetectFailed": "Не вдалося зв’язатися з постачальником, тому це загальний список. Ви можете ввести будь-яку назву моделі.", + "modelCustom": "Введіть назву моделі", + "modelRefresh": "Оновити список", + "modelPlaceholder": "Виберіть або введіть модель", + "attachHint": "Введіть @, щоб посилатися на хост, фрагмент або автоматизацію. Зміни пропонуються для вашого схвалення.", + "runCommandTitle": "Виконати команду", + "assistant": "Помічник зі штучним інтелектом", + "terminalPanelEmpty": "Запитайте асистента про цього хоста. Будь-яка зміна стану потребує вашого попереднього схвалення.", + "terminalPanelPlaceholder": "Запитайте про цього хоста...", + "noProvidersConfigured": "Постачальника штучного інтелекту ще не налаштовано. Додайте його на вкладці помічника штучного інтелекту.", + "runsInOpenTerminal": "Працює у вашому відкритому термінальному сеансі.", + "runInTerminal": "Бігти", + "terminalContextPrefill": "Ось мій вивід з терміналу:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Дозвольте іншим функціям використовувати ваш ключ API постачальника штучного інтелекту для власних запитів. Ключ ніколи не копіюється, і ви можете скасувати його будь-коли." } }, "nav": { - "ai": "AI" + "ai": "Штучний інтелект" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "Асистент зі штучним інтелектом", + "aiIntro": "Termix може включати додатковий помічник зі штучним інтелектом. Ви можете змінити це пізніше в налаштуваннях.", + "aiSkipTitle": "Залиште це вимкненим", + "aiSkipDesc": "Termix працює як і зараз. Помічник залишається прихованим.", + "aiEnableTitle": "Увімкніть це", + "aiEnableDesc": "Додає помічника, який читає ваші налаштування та пропонує зміни, які ви схвалюєте. Потрібен постачальник, якого ви надаєте, наприклад, місцевий Ollama.", + "aiNote": "Нічого нікуди не надсилається, доки ви не додасте постачальника та не надішлете повідомлення." }, "hosts": { - "docsLink": "View docs" + "docsLink": "Переглянути документи" } } diff --git a/plugins/ai/locales/translated/vi_VN.json b/plugins/ai/locales/translated/vi_VN.json index e73b28930..81f034641 100644 --- a/plugins/ai/locales/translated/vi_VN.json +++ b/plugins/ai/locales/translated/vi_VN.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "Sử dụng trợ lý", + "description": "Mở trợ lý ảo và hỏi nó những câu hỏi." }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "Quản lý nhà cung cấp", + "description": "Thêm, chỉnh sửa và xóa các nhà cung cấp AI và khóa API của họ." }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "Áp dụng các đề xuất", + "description": "Hãy để trợ lý thực hiện những thay đổi mà nó đề xuất." }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "Sử dụng trí tuệ nhân tạo từ các tính năng khác", + "description": "Các tính năng khác có thể gọi trợ lý ảo thay mặt bạn." }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "Chia sẻ khóa API", + "description": "Các tính năng khác có thể sử dụng khóa API AI đã lưu trữ mà không cần nhìn thấy khóa đó." } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "Trợ lý AI đã bị tắt trên máy chủ này.", + "providersNeedOptIn": "Hãy bật trợ lý AI ở trên để thêm nhà cung cấp.", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "Trợ lý AI", + "description": "Cho phép người dùng bật trợ lý AI. Khi chức năng này tắt, trợ lý sẽ bị ẩn và chặn đối với tất cả mọi người." }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "Cho phép máy chủ AI riêng", + "description": "Các máy chủ trên mạng riêng của bạn mà người dùng có thể trỏ đến nhà cung cấp, chẳng hạn như Ollama tự lưu trữ. Đặt một máy chủ trên mỗi dòng." } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "Kích hoạt Trợ lý AI", + "description": "Cho phép trợ lý AI hỗ trợ trong thiết bị đầu cuối của máy chủ này. Mặc định là tắt, nhưng bạn vẫn cần bật AI cho tài khoản của mình." } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "Trợ lý", + "send": "Gửi", "stop": "Bit dừng", "save": "Lưu", "cancel": "Hủy", "running": "đang chạy", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "Chấp thuận", + "reject": "Từ chối", + "inputPlaceholder": "Hãy hỏi về máy chủ của bạn, hoặc mô tả một thay đổi mà bạn muốn đề xuất.", + "selectProvider": "Chọn nhà cung cấp", + "providerSettings": "Cài đặt nhà cung cấp", + "addProvider": "Thêm nhà cung cấp", + "editProvider": "Chỉnh sửa nhà cung cấp", + "removeProvider": "Xóa nhà cung cấp", + "providerType": "Nhà cung cấp", "providerLabel": "Tên", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "providerLabelPlaceholder": "Ví dụ: Ollama địa phương", + "baseUrl": "Địa chỉ máy chủ", + "apiKey": "Khóa API", + "defaultModel": "Mô hình mặc định", + "defaultModelPlaceholder": "Ví dụ: llama3.1 hoặc claude-opus-5", + "labelRequired": "Đặt tên cho nhà cung cấp này", + "providerSaveFailed": "Không thể lưu nhà cung cấp", + "providerUpdated": "Nhà cung cấp đã cập nhật", + "providerDeleteFailed": "Không thể xóa nhà cung cấp", + "privateEndpointHint": "Các địa chỉ trên mạng riêng của bạn cần được quản trị viên cho phép truy cập trước.", "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerAnthropic": "Nhân loại", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "Tương thích với OpenAI", "toolArguments": "Nhập", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "Kết quả", + "statusApplied": "Đã áp dụng", + "statusRejected": "Vật bị loại bỏ", + "proposalApplied": "Thay đổi đã được áp dụng", + "proposalApplyFailed": "Không thể áp dụng thay đổi", + "proposalRejectFailed": "Không thể từ chối thay đổi", + "enableTitle": "Kích hoạt trợ lý AI", + "enableDescription": "Hãy để trợ lý đọc cấu hình của bạn và đề xuất các thay đổi để bạn phê duyệt.", + "readOnlyCommands": "Cho phép các lệnh chẩn đoán chỉ đọc", + "readOnlyCommandsDescription": "Trợ lý có thể chạy một danh sách ngắn các lệnh an toàn như df và uptime mà không cần hỏi mỗi lần. Bất kỳ lệnh nào thay đổi máy chủ đều được đề xuất trước tiên.", + "modelDetectFailed": "Không thể liên lạc được với nhà cung cấp, vì vậy đây là danh sách chung. Bạn có thể nhập bất kỳ tên mẫu nào.", + "modelCustom": "Nhập tên mẫu", + "modelRefresh": "Làm mới danh sách", + "modelPlaceholder": "Chọn hoặc nhập mô hình", + "attachHint": "Nhập @ để tham chiếu đến máy chủ, đoạn mã hoặc quy trình tự động hóa. Các thay đổi được đề xuất để bạn phê duyệt.", + "runCommandTitle": "Chạy lệnh", + "assistant": "Trợ lý AI", + "terminalPanelEmpty": "Hãy hỏi trợ lý về máy chủ này. Bất cứ thay đổi nào về trạng thái đều cần sự chấp thuận của bạn trước.", + "terminalPanelPlaceholder": "Hãy hỏi về chủ nhà này...", + "noProvidersConfigured": "Chưa có nhà cung cấp AI nào được cấu hình. Hãy thêm một nhà cung cấp trong tab trợ lý AI.", + "runsInOpenTerminal": "Chương trình này chạy trong cửa sổ dòng lệnh đang mở của bạn.", "runInTerminal": "Chạy", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "Đây là kết quả hiển thị trên terminal của tôi:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "Cho phép các tính năng khác sử dụng khóa API của nhà cung cấp AI của bạn cho các yêu cầu riêng của chúng. Khóa này không bao giờ được sao chép và bạn có thể thu hồi nó bất cứ lúc nào." } }, "nav": { - "ai": "AI" + "ai": "Trí tuệ nhân tạo" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "Trợ lý AI", + "aiIntro": "Termix có thể bao gồm trợ lý AI tùy chọn. Bạn có thể thay đổi điều này sau trong phần cài đặt.", + "aiSkipTitle": "Đừng làm vậy", + "aiSkipDesc": "Termix vẫn hoạt động như hiện tại. Trợ lý ảo vẫn ẩn mình.", + "aiEnableTitle": "Bật nó lên", + "aiEnableDesc": "Thêm một trợ lý đọc cấu hình của bạn và đề xuất các thay đổi mà bạn chấp thuận. Cần có nhà cung cấp do bạn chỉ định, chẳng hạn như Ollama địa phương.", + "aiNote": "Không có dữ liệu nào được gửi đi cho đến khi bạn thêm nhà cung cấp và gửi tin nhắn." }, "hosts": { "docsLink": "Xem tài liệu" diff --git a/plugins/ai/locales/translated/zh_CN.json b/plugins/ai/locales/translated/zh_CN.json index a3f2e1867..9c8d76fd4 100644 --- a/plugins/ai/locales/translated/zh_CN.json +++ b/plugins/ai/locales/translated/zh_CN.json @@ -1,29 +1,29 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "使用助手", + "description": "打开助手并向它提问。" }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "管理供应商", + "description": "添加、编辑和删除人工智能提供商及其 API 密钥。" }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "提交提案", + "description": "让助手执行它建议的更改。" }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "利用其他功能中的人工智能", + "description": "其他功能可能会代表您呼叫语音助手。" }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "分享 API 密钥", + "description": "其他功能可能在看不到密钥的情况下使用已存储的 AI API 密钥。" } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "此服务器上的AI助手已关闭。", + "providersNeedOptIn": "开启上方的AI助手,即可添加服务提供商。", "admin": { "globallyEnabled": { "label": "AI 助手", @@ -31,74 +31,74 @@ }, "privateEndpoints": { "label": "允许的私有 AI 主机", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "description": "用户可向服务提供商指向的私有网络上的主机,例如自托管的 Ollama。每行填写一个主机。" } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "启用人工智能助手", + "description": "允许 AI 助手在此主机的终端上提供帮助。默认情况下处于关闭状态,但仍需在您的帐户中启用 AI 功能。" } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "助手", + "send": "发送", "stop": "停止", "save": "保存", "cancel": "取消", "running": "运行中", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", + "approve": "批准", + "reject": "拒绝", + "inputPlaceholder": "询问服务器相关情况,或描述要提出的变更建议", + "selectProvider": "选择服务提供商", + "providerSettings": "提供商设置", + "addProvider": "添加提供商", "editProvider": "编辑提供商", - "removeProvider": "Remove provider", + "removeProvider": "移除提供者", "providerType": "提供商", "providerLabel": "名称", "providerLabelPlaceholder": "例如:本地 Ollama", - "baseUrl": "Server address", + "baseUrl": "服务器地址", "apiKey": "API 密钥", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", + "defaultModel": "默认模型", + "defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5", "labelRequired": "给此提供商起个名字", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", + "providerSaveFailed": "无法保存提供商", + "providerUpdated": "提供商已更新", + "providerDeleteFailed": "无法移除提供商", + "privateEndpointHint": "您私有网络上的地址需要管理员先允许主机访问。", "providerOllama": "Ollama", "providerAnthropic": "Anthropic", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "兼容 OpenAI", "toolArguments": "输入", - "toolResult": "Result", + "toolResult": "结果", "statusApplied": "已应用", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", + "statusRejected": "已拒绝", + "proposalApplied": "变更已生效", + "proposalApplyFailed": "无法应用更改", + "proposalRejectFailed": "无法拒绝更改", "enableTitle": "启用 AI 助手", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", + "enableDescription": "让助手读取您的设置并提出更改建议,供您批准。", + "readOnlyCommands": "允许只读诊断命令", + "readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。", "modelDetectFailed": "无法联系到提供商,所以这里提供的是通用列表。您可以输入任何模型名称。", "modelCustom": "请输入模型名称", - "modelRefresh": "Refresh list", + "modelRefresh": "刷新列表", "modelPlaceholder": "选择或输入模型", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "attachHint": "输入 @ 符号可引用主机、代码片段或自动化流程。系统会提出更改建议,供您批准。", + "runCommandTitle": "运行命令", + "assistant": "人工智能助手", + "terminalPanelEmpty": "向助理询问有关此房东的信息。任何状态变更都需要您先批准。", + "terminalPanelPlaceholder": "询问一下这位房东的情况……", + "noProvidersConfigured": "尚未配置任何 AI 提供商。请在 AI 助手选项卡中添加。", + "runsInOpenTerminal": "在打开的终端会话中运行。", "runInTerminal": "运行", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "以下是我的终端输出:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "允许其他功能使用您的 AI 提供商 API 密钥发出各自的请求。该密钥绝不会被复制,您可以随时撤销此授权。" } }, "nav": { @@ -106,7 +106,7 @@ }, "onboarding": { "aiTitle": "AI 助手", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", + "aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。", "aiSkipTitle": "禁用", "aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。", "aiEnableTitle": "启用", diff --git a/plugins/ai/locales/translated/zh_TW.json b/plugins/ai/locales/translated/zh_TW.json index 57535668c..6f801c660 100644 --- a/plugins/ai/locales/translated/zh_TW.json +++ b/plugins/ai/locales/translated/zh_TW.json @@ -1,117 +1,117 @@ { "permissions": { "use": { - "title": "Use the assistant", - "description": "Open the assistant and ask it things." + "title": "使用助手", + "description": "打開助手並向它提問。" }, "manage_providers": { - "title": "Manage providers", - "description": "Add, edit and remove the AI providers and their API keys." + "title": "管理供應商", + "description": "新增、編輯和刪除人工智慧提供者及其 API 金鑰。" }, "apply_proposals": { - "title": "Apply proposals", - "description": "Let the assistant carry out the changes it suggests." + "title": "提交提案", + "description": "讓助手執行它建議的更改。" }, "services.use": { - "title": "Use AI from other features", - "description": "Other features may call the assistant on your behalf." + "title": "利用其他功能中的人工智慧", + "description": "其他功能可能會代表您呼叫語音助理。" }, "secrets.share": { - "title": "Share the API key", - "description": "Other features may use the stored AI API key without seeing it." + "title": "分享 API 金鑰", + "description": "其他功能可能會在不查看金鑰的情況下使用已儲存的 AI API 金鑰。" } }, "settings": { - "assistantUnavailable": "The AI assistant is turned off on this server.", - "providersNeedOptIn": "Turn on the AI assistant above to add providers.", + "assistantUnavailable": "此伺服器上的AI助理已關閉。", + "providersNeedOptIn": "開啟上方的AI助手,即可新增服務提供者。", "admin": { "globallyEnabled": { - "label": "AI assistant", - "description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." + "label": "人工智慧助手", + "description": "允許用戶開啟AI助理。關閉此功能後,助手將被隱藏,所有用戶均無法存取。" }, "privateEndpoints": { - "label": "Allowed private AI hosts", - "description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line." + "label": "允許的私有人工智慧主機", + "description": "使用者可將服務提供者指向的私有網路上的主機,例如自架的 Ollama。每行填寫一個主機。" } }, "host": { "enableAiAssistant": { - "label": "Enable AI Assistant", - "description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." + "label": "啟用人工智慧助手", + "description": "允許 AI 助理在此主機的終端機上提供協助。預設為關閉狀態,但仍需在您的帳戶中啟用 AI 功能。" } } }, "ai": { - "title": "Assistant", - "send": "Send", + "title": "助理", + "send": "傳送", "stop": "停止位元", "save": "儲存", "cancel": "取消", "running": "執行中", - "approve": "Approve", - "reject": "Reject", - "inputPlaceholder": "Ask about your servers, or describe a change to propose", - "selectProvider": "Select a provider", - "providerSettings": "Provider settings", - "addProvider": "Add provider", - "editProvider": "Edit provider", - "removeProvider": "Remove provider", - "providerType": "Provider", + "approve": "核准", + "reject": "拒絕", + "inputPlaceholder": "詢問伺服器相關情況,或描述要提出的變更建議", + "selectProvider": "選擇服務提供者", + "providerSettings": "提供者設定", + "addProvider": "新增提供者", + "editProvider": "編輯提供者", + "removeProvider": "移除提供者", + "providerType": "提供者", "providerLabel": "名稱", - "providerLabelPlaceholder": "For example: Local Ollama", - "baseUrl": "Server address", - "apiKey": "API key", - "defaultModel": "Default model", - "defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", - "labelRequired": "Give this provider a name", - "providerSaveFailed": "Could not save the provider", - "providerUpdated": "Provider updated", - "providerDeleteFailed": "Could not remove the provider", - "privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", - "providerOllama": "Ollama", - "providerAnthropic": "Anthropic", + "providerLabelPlaceholder": "例如:本地奧拉馬", + "baseUrl": "伺服器位址", + "apiKey": "API金鑰", + "defaultModel": "預設模型", + "defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5", + "labelRequired": "給這家服務提供者取個名字", + "providerSaveFailed": "無法儲存提供者", + "providerUpdated": "提供者已更新", + "providerDeleteFailed": "無法移除提供者", + "privateEndpointHint": "您私有網路上的位址需要管理員先允許主機存取。", + "providerOllama": "奧拉瑪", + "providerAnthropic": "人類學", "providerOpenai": "OpenAI", "providerGemini": "Google Gemini", - "providerOpenaiCompatible": "OpenAI compatible", + "providerOpenaiCompatible": "相容 OpenAI", "toolArguments": "輸入", - "toolResult": "Result", - "statusApplied": "Applied", - "statusRejected": "Rejected", - "proposalApplied": "Change applied", - "proposalApplyFailed": "Could not apply the change", - "proposalRejectFailed": "Could not reject the change", - "enableTitle": "Enable the AI assistant", - "enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", - "readOnlyCommands": "Allow read-only diagnostic commands", - "readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.", - "modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", - "modelCustom": "Enter a model name", - "modelRefresh": "Refresh list", - "modelPlaceholder": "Choose or type a model", - "attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", - "runCommandTitle": "Run command", - "assistant": "AI Assistant", - "terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", - "terminalPanelPlaceholder": "Ask about this host...", - "noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", - "runsInOpenTerminal": "Runs in your open terminal session.", + "toolResult": "結果", + "statusApplied": "應用", + "statusRejected": "已拒絕", + "proposalApplied": "變更已生效", + "proposalApplyFailed": "無法套用變更", + "proposalRejectFailed": "無法拒絕更改", + "enableTitle": "啟用人工智慧助手", + "enableDescription": "請助手讀取您的設定並提出更改建議,供您批准。", + "readOnlyCommands": "允許只讀診斷命令", + "readOnlyCommandsDescription": "助手可能會在不每次都詢問的情況下執行一些安全的命令,例如 `df` 和 `uptime`。任何會更改伺服器的操作都會優先被提出。", + "modelDetectFailed": "無法聯繫到供應商,所以這裡提供的是通用清單。您可以輸入任何型號名稱。", + "modelCustom": "請輸入型號名稱", + "modelRefresh": "重新整理清單", + "modelPlaceholder": "選擇或輸入型號", + "attachHint": "輸入 @ 符號可引用主機、程式碼片段或自動化流程。系統會提出更改建議,供您批准。", + "runCommandTitle": "運行命令", + "assistant": "人工智慧助手", + "terminalPanelEmpty": "向助理詢問有關此房東的資訊。任何狀態變更都需要您先批准。", + "terminalPanelPlaceholder": "詢問一下這位房東的狀況…", + "noProvidersConfigured": "尚未配置任何 AI 提供者。請在 AI 助理標籤中新增。", + "runsInOpenTerminal": "在開啟的終端機會話中運行。", "runInTerminal": "執行", - "terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", + "terminalContextPrefill": "以下是我的終端輸出:\n\n{{output}}\n\n", "secrets": { - "shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time." + "shareApiKey": "允許其他功能使用您的 AI 提供者 API 金鑰發出各自的請求。該密鑰絕不會被複製,您可以隨時撤銷此授權。" } }, "nav": { - "ai": "AI" + "ai": "人工智慧" }, "onboarding": { - "aiTitle": "AI assistant", - "aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", - "aiSkipTitle": "Leave it off", - "aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", - "aiEnableTitle": "Turn it on", - "aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", - "aiNote": "Nothing is sent anywhere until you add a provider and send a message." + "aiTitle": "人工智慧助手", + "aiIntro": "Termix 可以包含一個可選的 AI 助手。您可以稍後在設定中變更此選項。", + "aiSkipTitle": "丟開", + "aiSkipDesc": "Termix 的運作方式與現在相同。助手保持隱藏狀態。", + "aiEnableTitle": "打開它", + "aiEnableDesc": "添加一個助手,它可以讀取您的設定並提出您批准的更改建議。需要您提供服務提供者,例如當地的 Ollama 服務提供者。", + "aiNote": "在您新增服務提供者並發送訊息之前,任何內容都不會發送到任何地方。" }, "hosts": { "docsLink": "檢視文件" diff --git a/plugins/alerts/locales/translated/bn_BD.json b/plugins/alerts/locales/translated/bn_BD.json index 9d7514f0d..a8b64aa2f 100644 --- a/plugins/alerts/locales/translated/bn_BD.json +++ b/plugins/alerts/locales/translated/bn_BD.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "সতর্কতা" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "সতর্কতা ব্যবহার করুন", + "description": "ইনবক্সে অ্যালার্ট পান এবং সেগুলো আপনার নিজের চ্যানেলগুলোতে পাঠান।" } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "সতর্কতা", + "featureDesc": "সব অ্যালার্ট একটি ইনবক্সেই থাকবে, যা আপনি চাইলে ডিসকর্ড, এনটিএফওয়াই, ইমেল বা ওয়েবহুকে পাঠাতে পারবেন।" }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "সাধারণ", + "email": "ইমেল" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "টারমিক্স ঘোষণা", + "description": "টারমিক্স টিমের পক্ষ থেকে নিরাপত্তা বিজ্ঞপ্তি এবং নতুন রিলিজের মতো খবরগুলো সবার ইনবক্সে দেখান।" }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "(দিন) পর্যন্ত সতর্কতা চালু রাখুন", + "description": "প্রতিটি ইনবক্স থেকে পুরোনো অ্যালার্টগুলো মুছে ফেলা হয়।" }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP সার্ভার", + "description": "ইমেল চ্যানেলের জন্য প্রয়োজন। ইমেল বন্ধ করতে খালি রাখুন।", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP পোর্ট", + "description": "সাধারণত STARTTLS সহ 587 অথবা TLS সহ 465।" }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "শুরু থেকেই TLS ব্যবহার করুন", + "description": "পোর্ট ৪৬৫-এর জন্য চালু করুন। ৫৮৭-এর জন্য বন্ধ রাখুন, যেটি নিজে থেকেই TLS-এ আপগ্রেড হয়ে যায়।" }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP ব্যবহারকারীর নাম", + "description": "সার্ভারে লগইন করার প্রয়োজন না হলে এই স্থানটি খালি রাখুন।" }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP পাসওয়ার্ড", + "description": "এনক্রিপ্ট করে সংরক্ষণ করা হয়েছে।" }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "ঠিকানা থেকে", + "description": "প্রেরকের কাছ থেকে সতর্কতাগুলো আসে।", + "placeholder": "টারমিক্স " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "সতর্কতা পপআপ", + "description": "আপনি Termix ব্যবহার করার সময় কোন নতুন অ্যালার্টগুলো আসে? সেগুলো সবসময় ইনবক্সে আসে।", + "all": "সমস্ত সতর্কতা", + "warning": "সতর্কতা এবং সমালোচনামূলক", + "critical": "শুধুমাত্র সমালোচনামূলক", + "off": "কোনোটিই না" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "ইনবক্স", + "channels": "চ্যানেল", + "rules": "ডেলিভারি নিয়মাবলী" }, "severity": { - "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "info": "তথ্য", + "success": "সাফল্য", + "warning": "সতর্কতা", + "critical": "সমালোচনামূলক" }, "inbox": { - "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "sourceTermix": "টার্মিক্স", + "openLink": "খোলা", + "view": "দেখুন", + "unread": "অপঠিত", + "deliveryFailed_one": "{{count}} চ্যানেল ব্যর্থ হয়েছে", + "deliveryFailed_other": "{{count}} চ্যানেল ব্যর্থ হয়েছে", + "markRead": "পঠিত হিসেবে চিহ্নিত করুন", + "markUnread": "অপঠিত হিসাবে চিহ্নিত করুন", + "markAllRead": "সবগুলো পঠিত হিসেবে চিহ্নিত করুন।", + "delete": "মুছে ফেলুন", + "clearRead": "পঠিত সতর্কতাগুলি মুছুন", + "cleared_one": "{{count}} সতর্কতা মুছে ফেলা হয়েছে", + "cleared_other": "মুছে ফেলা {{count}} সতর্কতা", + "filterAll": "সব", + "filterUnread": "অপঠিত", + "anySeverity": "যেকোনো তীব্রতা", + "anySource": "যেকোনো উৎস", + "openAll": "একটি ট্যাবে খুলুন", + "empty": "এখনো কোনো সতর্কতা আসেনি।", + "emptyUnread": "আপনি সবকিছু জেনে গেছেন।", + "loadMore": "আরও লোড করুন" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "চ্যানেল হলো এমন জায়গা যেখানে অ্যালার্টগুলো টারমিক্সের বাইরে যেতে পারে। ডেলিভারি রুলগুলো নির্ধারণ করে কোন অ্যালার্টগুলো সেখানে ব্যবহৃত হবে।", + "add": "চ্যানেল যোগ করুন", + "edit": "চ্যানেল সম্পাদনা করুন", + "test": "একটি পরীক্ষা পাঠান", + "testSent": "পরীক্ষার সতর্কতা পাঠানো হয়েছে", + "testFailed": "পরীক্ষা ব্যর্থ হয়েছে: {{error}}", + "deleteConfirm": "\"{{name}} \" চ্যানেলটি মুছে ফেলবেন?", + "deleted": "চ্যানেল মুছে ফেলা হয়েছে", + "empty": "এখনো কোনো চ্যানেল নেই।", + "enabled": "সক্ষম করা হয়েছে", + "needsSave": "পাঠানোর আগে এই চ্যানেলটি আবার খুলতে ও সংরক্ষণ করতে হবে।", + "name": "নাম", + "nameRequired": "নাম আবশ্যক", + "type": "প্রকার", "types": { - "webhook": "Webhook", - "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "webhook": "ওয়েবহুক", + "ntfy": "এনটিএফওয়াই", + "discord": "ডিসকর্ড", + "email": "ইমেল" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", - "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "emailUnavailable": "ইমেইলের জন্য একটি SMTP সার্ভার প্রয়োজন, যা অ্যাডমিন অ্যালার্ট সেটিংসে সেট আপ করেন।", + "webhookUrl": "ইউআরএল", + "webhookHint": "প্রতিটি অ্যালার্টের জন্য একটি JSON বডি পাওয়া যায়।", + "method": "পদ্ধতি", + "headers": "হেডার", + "headersHint": "প্রতি লাইনে একটি করে, যেমন নাম: মান।", + "ntfyServer": "সার্ভার ইউআরএল", + "ntfyTopic": "বিষয়", + "ntfyToken": "প্রবেশ টোকেন (ঐচ্ছিক)", + "discordUrl": "ডিসকর্ড ওয়েবহুক ইউআরএল", + "discordHint": "ডিসকর্ডে চ্যানেলের সেটিংস থেকে, ইন্টিগ্রেশনস-এর অধীনে।", + "discordUsername": "প্রদর্শনের নাম (ঐচ্ছিক)", + "discordAvatar": "অবতার ইউআরএল (ঐচ্ছিক)", + "emailTo": "পাঠান", + "emailHint": "একাধিক ঠিকানা কমা দিয়ে আলাদা করুন।", + "privateNetwork": "একটি ব্যক্তিগত নেটওয়ার্ক ঠিকানা অনুমোদন করুন", + "privateNetworkHint": "এটি শুধুমাত্র সেইসব হোস্টের ক্ষেত্রেই কাজ করে, যেগুলোকে অ্যাডমিন তার প্রাইভেট এন্ডপয়েন্ট তালিকায় অনুমোদন দেয়।" }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "একটি ডেলিভারি রুল আপনার চ্যানেলগুলিতে প্রাসঙ্গিক অ্যালার্ট পাঠায়। অ্যালার্টগুলো সবসময় ইনবক্সেও থেকে যায়।", + "add": "নিয়ম যোগ করুন", + "edit": "নিয়ম সম্পাদনা করুন", + "empty": "এখনো কোনো নিয়ম তৈরি হয়নি, তাই অ্যালার্টগুলো শুধু ইনবক্সেই দেখা যায়।", + "needChannel": "প্রথমে একটি চ্যানেল যোগ করুন।", + "enabled": "সক্ষম করা হয়েছে", + "name": "নাম", + "nameRequired": "নাম আবশ্যক", + "match": "পাঠানোর জন্য সতর্কতা", + "matchHint": "সবকিছুর জন্য, অটোমেশন। অটোমেশন থেকে প্রাপ্ত সবকিছুর জন্য, অথবা ঠিক এক ধরনের।", + "minSeverity": "অন্তত", + "channels": "পাঠান", + "channelRequired": "অন্তত একটি চ্যানেল বেছে নিন", + "deleteConfirm": "\"{{name}} \" নিয়মটি মুছে ফেলুন?", + "everything": "সবকিছু", + "summary": "{{match}}, {{severity}} বা তার বেশি, থেকে {{channels}} পর্যন্ত" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "বাতিল করুন", + "save": "সংরক্ষণ করুন", + "saving": "সঞ্চয়...", + "delete": "মুছে ফেলুন" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "সতর্কতা ফিড", + "description": "আপনার সর্বশেষ অ্যালার্টগুলো, এবং সেগুলোকে পঠিত হিসেবে চিহ্নিত করার একটি দ্রুত উপায়।", + "maxItems": "সর্বোচ্চ আইটেম", + "showRead": "পঠিত সতর্কতা দেখান", + "allClear": "সব পরিষ্কার", + "loading": "লোড হচ্ছে..." } } diff --git a/plugins/alerts/locales/translated/hi_IN.json b/plugins/alerts/locales/translated/hi_IN.json index 92b403d80..a9a60474a 100644 --- a/plugins/alerts/locales/translated/hi_IN.json +++ b/plugins/alerts/locales/translated/hi_IN.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "अलर्ट का उपयोग करें", + "description": "इनबॉक्स में अलर्ट प्राप्त करें और उन्हें अपने चैनलों पर भेजें।" } }, "onboarding": { "feature": "अलर्ट", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "सभी अलर्ट एक ही इनबॉक्स में, और यदि आप चाहें तो उन्हें डिस्कोर्ड, एनटीएफआई, ईमेल या वेबहुक पर भेजा जा सकता है।" }, "settings": { "group": { @@ -19,141 +19,141 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "टर्मिक्स की घोषणाएँ", + "description": "टर्मिक्स टीम से संबंधित समाचार, जैसे कि सुरक्षा संबंधी सूचनाएं और विज्ञप्तियां, सभी के इनबॉक्स में दिखाएं।" }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "(दिनों) के लिए अलर्ट चालू रखें", + "description": "सभी इनबॉक्स से पुराने अलर्ट हटा दिए जाते हैं।" }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "एसएमटीपी सर्वर", + "description": "ईमेल चैनलों के लिए आवश्यक। ईमेल बंद करने के लिए इसे खाली छोड़ दें।", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "एसएमटीपी पोर्ट", + "description": "आमतौर पर STARTTLS के साथ 587 या TLS के साथ 465 का उपयोग किया जाता है।" }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "शुरुआत से ही TLS का उपयोग करें", + "description": "पोर्ट 465 के लिए इसे चालू करें। पोर्ट 587 के लिए इसे बंद रखें, क्योंकि यह अपने आप TLS में अपग्रेड हो जाता है।" }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "एसएमटीपी उपयोगकर्ता नाम", + "description": "यदि सर्वर को लॉगिन की आवश्यकता नहीं है तो इसे खाली छोड़ दें।" }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "एसएमटीपी पासवर्ड", + "description": "एन्क्रिप्टेड रूप में संग्रहीत।" }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "इस पते से", + "description": "प्रेषक अलर्ट कहाँ से आते हैं?", + "placeholder": "टर्मिक्स " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "अलर्ट पॉपअप", + "description": "टर्मिक्स का उपयोग करते समय कौन-कौन से नए अलर्ट आते हैं? वे हमेशा आपके इनबॉक्स में आते हैं।", + "all": "सभी अलर्ट", + "warning": "चेतावनी और महत्वपूर्ण", + "critical": "केवल महत्वपूर्ण", "off": "कोई नहीं" } } }, "sections": { - "inbox": "Inbox", + "inbox": "इनबॉक्स", "channels": "चैनल", - "rules": "Delivery rules" + "rules": "डिलीवरी नियम" }, "severity": { "info": "जानकारी", "success": "सफल", "warning": "चेतावनी", - "critical": "Critical" + "critical": "गंभीर" }, "inbox": { "sourceTermix": "Termix", "openLink": "खोलें", "view": "देखें", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "अपठित ग", + "deliveryFailed_one": "{{count}} चैनल विफल हो गया", + "deliveryFailed_other": "{{count}} चैनल विफल हो गए", + "markRead": "पढ़े हुए का चिह्न", + "markUnread": "अपठित के रूप में चिह्नित करें", + "markAllRead": "सभी को पढ़ा हुआ मार्क करें", "delete": "हटाएँ", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "पढ़े गए अलर्ट हटाएं", + "cleared_one": "अलर्ट हटा दिया गया {{count}}", + "cleared_other": "हटाए गए {{count}} अलर्ट", "filterAll": "सभी", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "अपठित ग", + "anySeverity": "किसी भी गंभीरता", + "anySource": "कोई भी स्रोत", + "openAll": "एक टैब में खोलें", + "empty": "अभी तक कोई अलर्ट नहीं है।", + "emptyUnread": "आप सभी अपडेट्स से अवगत हैं।", + "loadMore": "और लोड करें" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "चैनल वो जगह हैं जहां अलर्ट टर्मिक्स से बाहर जा सकते हैं। डिलीवरी नियम तय करते हैं कि कौन से अलर्ट इनका उपयोग करेंगे।", + "add": "चैनल जोड़ें", + "edit": "चैनल संपादित करें", + "test": "टेस्ट भेजें", + "testSent": "परीक्षण अलर्ट भेजा गया", + "testFailed": "परीक्षण विफल: {{error}}", + "deleteConfirm": "चैनल \"{{name}} \" को हटा दें?", + "deleted": "चैनल हटा दिया गया", + "empty": "अभी तक कोई चैनल उपलब्ध नहीं हैं।", "enabled": "सक्षम", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "भेजने से पहले इस चैनल को दोबारा खोलकर सेव करना होगा।", "name": "नाम", "nameRequired": "नाम आवश्यक है", "type": "प्रकार", "types": { - "webhook": "Webhook", + "webhook": "WEbhook", "ntfy": "ntfy", "discord": "Discord", "email": "ईमेल" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "ईमेल के लिए एक SMTP सर्वर की आवश्यकता होती है, जिसे एडमिन अलर्ट सेटिंग्स में सेट करता है।", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "प्रत्येक अलर्ट के लिए एक JSON बॉडी प्राप्त करता है।", + "method": "तरीका", + "headers": "हेडर", + "headersHint": "एक पंक्ति में एक, जैसे नाम: मान।", "ntfyServer": "सर्वर URL", "ntfyTopic": "विषय", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyToken": "एक्सेस टोकन (वैकल्पिक)", + "discordUrl": "डिस्कॉर्ड वेबहुक यूआरएल", + "discordHint": "डिस्कोर्ड में चैनल की सेटिंग में, इंटीग्रेशन के अंतर्गत।", + "discordUsername": "प्रदर्शन नाम (वैकल्पिक)", + "discordAvatar": "अवतार यूआरएल (वैकल्पिक)", + "emailTo": "भेजना", + "emailHint": "एक से अधिक पतों को अल्पविराम से अलग करें।", + "privateNetwork": "एक निजी नेटवर्क पते की अनुमति दें", + "privateNetworkHint": "यह सुविधा केवल उन होस्ट्स के लिए काम करती है जिन्हें एडमिन निजी एंडपॉइंट सूची में शामिल करने की अनुमति देता है।" }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "एक डिलीवरी नियम आपके चैनलों पर मिलान करने वाले अलर्ट भेजता है। अलर्ट हमेशा आपके इनबॉक्स में भी रहते हैं।", + "add": "नियम जोड़ें", + "edit": "नियम संपादित करें", + "empty": "अभी तक कोई नियम नहीं बने हैं, इसलिए अलर्ट केवल इनबॉक्स में ही दिखाई देंगे।", + "needChannel": "पहले एक चैनल जोड़ें।", "enabled": "सक्षम", "name": "नाम", "nameRequired": "नाम आवश्यक है", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "भेजे जाने वाले अलर्ट", + "matchHint": "* हर चीज के लिए, स्वचालन। * स्वचालन से लेकर हर चीज के लिए, या एक सटीक प्रकार के लिए।", + "minSeverity": "कम से कम", + "channels": "भेजना", + "channelRequired": "कम से कम एक चैनल चुनें", + "deleteConfirm": "क्या नियम \"{{name}} \" को हटा दें?", + "everything": "सब कुछ", + "summary": "{{match}}, {{severity}} या इससे अधिक, से {{channels}} तक" }, "actions": { "cancel": "रद्द करें", @@ -163,9 +163,9 @@ }, "widget": { "name": "अलर्ट फीड", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "आपके नवीनतम अलर्ट, जिन्हें आप आसानी से पढ़ सकते हैं।", + "maxItems": "अधिकतम आइटम", + "showRead": "पढ़े जाने के अलर्ट दिखाएँ", "allClear": "सब ठीक है", "loading": "लोड हो रहा है..." } diff --git a/plugins/alerts/locales/translated/id_ID.json b/plugins/alerts/locales/translated/id_ID.json index 9d7514f0d..2bd157083 100644 --- a/plugins/alerts/locales/translated/id_ID.json +++ b/plugins/alerts/locales/translated/id_ID.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Peringatan" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Gunakan peringatan", + "description": "Dapatkan notifikasi di kotak masuk dan kirimkan ke saluran Anda sendiri." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Peringatan", + "featureDesc": "Semua notifikasi dalam satu kotak masuk, yang kemudian dikirim ke Discord, ntfy, email, atau webhook jika Anda mau." }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "Umum", + "email": "E-mail" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Pengumuman Termix", + "description": "Tampilkan berita dari tim Termix, seperti pemberitahuan keamanan dan rilis, di kotak masuk setiap orang." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Aktifkan peringatan selama (hari)", + "description": "Notifikasi lama dihapus dari setiap kotak masuk." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "Server SMTP", + "description": "Diperlukan untuk saluran email. Biarkan kosong untuk menonaktifkan email.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "Port SMTP", + "description": "Biasanya 587 dengan STARTTLS atau 465 dengan TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Gunakan TLS sejak awal.", + "description": "Aktifkan untuk port 465. Biarkan nonaktif untuk port 587, yang akan secara otomatis diupgrade ke TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "Nama pengguna SMTP", + "description": "Biarkan kosong jika server tidak memerlukan login." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Kata sandi SMTP", + "description": "Disimpan dalam keadaan terenkripsi." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Dari alamat", + "description": "Peringatan pengirim berasal dari.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "Popup peringatan", + "description": "Notifikasi baru apa saja yang muncul saat Anda menggunakan Termix? Notifikasi tersebut selalu masuk ke kotak masuk Anda.", + "all": "Semua peringatan", + "warning": "Peringatan dan hal-hal penting", + "critical": "Kritik saja", + "off": "Tidak ada" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Kotak Masuk", + "channels": "Saluran", + "rules": "Aturan pengiriman" }, "severity": { - "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "info": "Informasi", + "success": "Kesuksesan", + "warning": "Peringatan", + "critical": "Kritis" }, "inbox": { "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "openLink": "Membuka", + "view": "Melihat", + "unread": "Belum dibaca", + "deliveryFailed_one": "{{count}} saluran gagal", + "deliveryFailed_other": "{{count}} saluran gagal", + "markRead": "Tandai sebagai sudah dibaca", + "markUnread": "Tandai sebagai belum dibaca", + "markAllRead": "Tandai semua sebagai sudah dibaca", + "delete": "Menghapus", + "clearRead": "Hapus notifikasi baca", + "cleared_one": "Peringatan {{count}} dihapus", + "cleared_other": "Peringatan {{count}} dihapus", + "filterAll": "Semua", + "filterUnread": "Belum dibaca", + "anySeverity": "Tingkat keparahan apa pun", + "anySource": "Sumber apa pun", + "openAll": "Buka di tab", + "empty": "Belum ada peringatan.", + "emptyUnread": "Anda sudah mengetahui semuanya.", + "loadMore": "Muat lebih banyak" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "Saluran adalah tempat peringatan dapat dikirim ke luar Termix. Aturan pengiriman memilih peringatan mana yang akan menggunakannya.", + "add": "Tambahkan saluran", + "edit": "Edit saluran", + "test": "Kirim tes", + "testSent": "Peringatan uji coba terkirim", + "testFailed": "Tes gagal: {{error}}", + "deleteConfirm": "Hapus saluran \"{{name}}\"?", + "deleted": "Saluran dihapus", + "empty": "Belum ada saluran.", + "enabled": "Diaktifkan", + "needsSave": "Saluran ini perlu dibuka dan disimpan kembali sebelum dapat mengirim data.", + "name": "Nama", + "nameRequired": "Nama wajib diisi.", + "type": "Jenis", "types": { "webhook": "Webhook", "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "discord": "Perselisihan", + "email": "E-mail" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "Email memerlukan server SMTP, yang diatur oleh administrator di pengaturan Notifikasi.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "webhookHint": "Menerima isi JSON untuk setiap peringatan.", + "method": "Metode", + "headers": "Judul", + "headersHint": "Satu per baris, seperti Nama: nilai.", + "ntfyServer": "URL Server", + "ntfyTopic": "Topik", + "ntfyToken": "Token akses (opsional)", + "discordUrl": "URL webhook Discord", + "discordHint": "Dari pengaturan saluran di Discord, di bawah Integrasi.", + "discordUsername": "Nama tampilan (opsional)", + "discordAvatar": "URL Avatar (opsional)", + "emailTo": "Kirim ke", + "emailHint": "Pisahkan lebih dari satu alamat dengan koma.", + "privateNetwork": "Izinkan alamat jaringan pribadi", + "privateNetworkHint": "Hanya berfungsi untuk host yang diizinkan oleh admin dalam daftar endpoint privat." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "Aturan pengiriman mengirimkan peringatan yang sesuai ke saluran Anda. Peringatan juga selalu tetap berada di kotak masuk.", + "add": "Tambahkan aturan", + "edit": "Edit aturan", + "empty": "Belum ada aturan, jadi notifikasi hanya muncul di kotak masuk.", + "needChannel": "Tambahkan saluran terlebih dahulu.", + "enabled": "Diaktifkan", + "name": "Nama", + "nameRequired": "Nama wajib diisi.", + "match": "Peringatan untuk dikirim", + "matchHint": "* untuk segala hal, otomatisasi.* untuk segala hal mulai dari otomatisasi, atau satu jenis tertentu.", + "minSeverity": "Setidaknya", + "channels": "Kirim ke", + "channelRequired": "Pilih setidaknya satu saluran", + "deleteConfirm": "Hapus aturan \"{{name}}\"?", + "everything": "Semuanya", + "summary": "{{match}}, {{severity}} atau lebih tinggi, hingga {{channels}}" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "Membatalkan", + "save": "Menyimpan", + "saving": "Penghematan...", + "delete": "Menghapus" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "Umpan Peringatan", + "description": "Notifikasi terbaru Anda, dengan cara cepat untuk menandainya sebagai sudah dibaca.", + "maxItems": "Jumlah maksimum", + "showRead": "Tampilkan pemberitahuan telah dibaca", + "allClear": "Semuanya aman.", + "loading": "Memuat..." } } diff --git a/plugins/alerts/locales/translated/no_NO.json b/plugins/alerts/locales/translated/no_NO.json index 5e9f5305f..fa0690417 100644 --- a/plugins/alerts/locales/translated/no_NO.json +++ b/plugins/alerts/locales/translated/no_NO.json @@ -1,16 +1,16 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Varsler" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Bruk varsler", + "description": "Få varsler i innboksen og send dem til dine egne kanaler." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Varsler", + "featureDesc": "Alle varsler i én innboks, sendt videre til Discord, ntfy, e-post eller en webhook om du vil." }, "settings": { "group": { @@ -19,141 +19,141 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix-kunngjøringer", + "description": "Vis nyheter fra Termix-teamet, som sikkerhetsvarsler og utgivelser, i alles innboks." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Behold varsler i (dager)", + "description": "Eldre varsler fjernes fra alle innbokser." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP-server", + "description": "Nødvendig for e-postkanaler. La stå tomt for å slå av e-post.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP-port", + "description": "Vanligvis 587 med STARTTLS eller 465 med TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Bruk TLS fra starten av", + "description": "Slå på port 465. Slå av for port 587, som oppgraderer til TLS på egenhånd." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP-brukernavn", + "description": "La feltet stå tomt hvis serveren ikke trenger pålogging." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP-passord", + "description": "Lagret kryptert." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Fra adresse", + "description": "Avsendervarslene kommer fra.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Varselspopup-vinduer", + "description": "Hvilke nye varsler dukker opp mens du bruker Termix? De havner alltid i innboksen.", + "all": "Alle varsler", + "warning": "Advarsler og kritiske", + "critical": "Kun kritisk", "off": "Ingen" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Innboks", + "channels": "Kanaler", + "rules": "Leveringsregler" }, "severity": { "info": "Info", "success": "Suksess", "warning": "Advarsel", - "critical": "Critical" + "critical": "Kritisk" }, "inbox": { "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "openLink": "Åpne", + "view": "Utsikt", + "unread": "Ulest", + "deliveryFailed_one": "{{count}} kanal mislyktes", + "deliveryFailed_other": "{{count}} kanaler mislyktes", + "markRead": "Merk som lest", + "markUnread": "Merk som ulest", + "markAllRead": "Merk alle som lest", "delete": "Slett", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "clearRead": "Slett lesevarsler", + "cleared_one": "Slettet {{count}} -varsel", + "cleared_other": "Slettede {{count}} varsler", + "filterAll": "Alle", + "filterUnread": "Ulest", + "anySeverity": "Enhver alvorlighetsgrad", + "anySource": "Enhver kilde", + "openAll": "Åpne i en fane", + "empty": "Ingen varsler ennå.", + "emptyUnread": "Dere er helt oppdatert.", + "loadMore": "Last inn mer" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "Kanaler er der varsler kan sendes utenfor Termix. Leveringsregler velger hvilke varsler som bruker dem.", + "add": "Legg til kanal", + "edit": "Rediger kanal", + "test": "Send en test", + "testSent": "Testvarsel sendt", + "testFailed": "Testen mislyktes: {{error}}", + "deleteConfirm": "Slette kanalen «{{name}}»?", + "deleted": "Kanalen slettet", + "empty": "Ingen kanaler ennå.", "enabled": "Aktivert", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Denne kanalen må åpnes og lagres på nytt før den kan sende.", "name": "Navn", "nameRequired": "Navn er påkrevd", "type": "Type", "types": { "webhook": "Webhook", "ntfy": "ntfy", - "discord": "Discord", + "discord": "Disharmoni", "email": "E-post" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", - "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "emailUnavailable": "E-post trenger en SMTP-server, som en administrator konfigurerer i varslingsinnstillingene.", + "webhookUrl": "URL-adresse", + "webhookHint": "Henter en JSON-tekst for hvert varsel.", + "method": "Metode", + "headers": "Overskrifter", + "headersHint": "Én per linje, som Navn: verdi.", "ntfyServer": "Server-URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyTopic": "Emne", + "ntfyToken": "Tilgangstoken (valgfritt)", + "discordUrl": "Discord webhook-URL", + "discordHint": "Fra kanalens innstillinger i Discord, under Integrasjoner.", + "discordUsername": "Visningsnavn (valgfritt)", + "discordAvatar": "Avatar-URL (valgfritt)", + "emailTo": "Send til", + "emailHint": "Skill mer enn én adresse med komma.", + "privateNetwork": "Tillat en privat nettverksadresse", + "privateNetworkHint": "Fungerer bare for verter som en administrator tillater i listen over private endepunkter." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "En leveringsregel sender samsvarende varsler til kanalene dine. Varsler forblir også alltid i innboksen.", + "add": "Legg til regel", + "edit": "Rediger regel", + "empty": "Ingen regler ennå, så varsler vises bare i innboksen.", + "needChannel": "Legg til en kanal først.", "enabled": "Aktivert", "name": "Navn", "nameRequired": "Navn er påkrevd", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Varsler som skal sendes", + "matchHint": "* for alt, automatiseringer.* for alt fra automatiseringer, eller én eksakt type.", + "minSeverity": "Minst", + "channels": "Send til", + "channelRequired": "Velg minst én kanal", + "deleteConfirm": "Slette regelen «{{name}}»?", + "everything": "Alt", + "summary": "{{match}}, {{severity}} eller høyere, til {{channels}}" }, "actions": { "cancel": "Avbryt", @@ -162,11 +162,11 @@ "delete": "Slett" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", + "name": "Varselstrøm", + "description": "Dine siste varsler, med en rask måte å merke dem som lest", + "maxItems": "Maks antall varer", + "showRead": "Vis lesevarsler", + "allClear": "Alt klart", "loading": "Laster..." } } diff --git a/plugins/alerts/locales/translated/pl_PL.json b/plugins/alerts/locales/translated/pl_PL.json index c1bbf8b49..a39f4f9ea 100644 --- a/plugins/alerts/locales/translated/pl_PL.json +++ b/plugins/alerts/locales/translated/pl_PL.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Użyj alertów", + "description": "Otrzymuj powiadomienia do skrzynki odbiorczej i wysyłaj je na swoje kanały." } }, "onboarding": { "feature": "Alerty", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "Każdy alert w jednej skrzynce odbiorczej, wysyłany na Discord, ntfy, e-mail lub webhook, jeśli sobie tego życzysz." }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Ogłoszenia Termix", + "description": "Wyświetlaj aktualności zespołu Termix, takie jak powiadomienia i komunikaty dotyczące bezpieczeństwa, w skrzynkach odbiorczych wszystkich użytkowników." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Zachowaj alerty przez (dni)", + "description": "Starsze alerty zostaną usunięte ze wszystkich skrzynek odbiorczych." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "Serwer SMTP", + "description": "Potrzebne dla kanałów e-mail. Pozostaw puste, aby wyłączyć pocztę e-mail.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "Port SMTP", + "description": "Zwykle 587 z STARTTLS lub 465 z TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Używaj protokołu TLS od samego początku", + "description": "Włącz dla portu 465. Pozostaw wyłączone dla portu 587, który automatycznie uaktualnia się do protokołu TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "Nazwa użytkownika SMTP", + "description": "Pozostaw puste, jeśli serwer nie wymaga logowania." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Hasło SMTP", + "description": "Przechowywane w postaci zaszyfrowanej." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Z adresu", + "description": "Od nadawcy pochodzą alerty.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Okienka z alertami", + "description": "Jakie nowe alerty pojawiają się podczas korzystania z Termix. Zawsze trafiają do skrzynki odbiorczej.", + "all": "Wszystkie alerty", + "warning": "Ostrzeżenia i ostrzeżenia krytyczne", + "critical": "Tylko krytyczne", "off": "Żaden" } } }, "sections": { - "inbox": "Inbox", + "inbox": "Skrzynka odbiorcza", "channels": "Kanały", - "rules": "Delivery rules" + "rules": "Zasady dostawy" }, "severity": { "info": "Informacje", "success": "Powodzenie", "warning": "Ostrzeżenie", - "critical": "Critical" + "critical": "Krytyczny" }, "inbox": { "sourceTermix": "Termix", "openLink": "Otwórz", "view": "Podgląd", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "Niewykształcony", + "deliveryFailed_one": "{{count}} kanał uszkodzony", + "deliveryFailed_other": "{{count}} kanałów nie powiodło się", + "markRead": "Oznacz jako przeczytane", + "markUnread": "Oznacz jako nieprzeczytane", + "markAllRead": "Oznacz wszystkie jako przeczytane", "delete": "Usuń", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "Usuń alerty odczytu", + "cleared_one": "Usunięto alert {{count}}", + "cleared_other": "Usunięto {{count}} alertów", "filterAll": "Wszystkie", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "Niewykształcony", + "anySeverity": "Jakakolwiek powaga", + "anySource": "Jakiekolwiek źródło", + "openAll": "Otwórz w karcie", + "empty": "Brak alertów.", + "emptyUnread": "Wszyscy jesteście na bieżąco.", + "loadMore": "Załaduj więcej" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", + "intro": "Kanały to miejsca, do których alerty mogą trafiać poza Termix. Reguły dostarczania określają, które alerty z nich korzystają.", + "add": "Dodaj kanał", + "edit": "Edytuj kanał", + "test": "Wyślij test", + "testSent": "Wysłano alert testowy", + "testFailed": "Test nie powiódł się: {{error}}", + "deleteConfirm": "Usunąć kanał „{{name}}”?", "deleted": "Kanał usunięty", - "empty": "No channels yet.", + "empty": "Brak kanałów.", "enabled": "Włączona", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Przed wysłaniem należy ponownie otworzyć i zapisać ten kanał.", "name": "Nazwa", "nameRequired": "Nazwa jest wymagana", "type": "Typ", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "E-mail" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "Do obsługi poczty e-mail potrzebny jest serwer SMTP, który administrator konfiguruje w ustawieniach alertów.", "webhookUrl": "Adres URL", - "webhookHint": "Gets a JSON body for every alert.", + "webhookHint": "Pobiera treść JSON dla każdego alertu.", "method": "Metoda", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "headers": "Nagłówki", + "headersHint": "Po jednym w każdym wierszu, np. Nazwa: wartość.", "ntfyServer": "Adres URL serwera", "ntfyTopic": "Temat", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyToken": "Token dostępu (opcjonalnie)", + "discordUrl": "Adres URL webhooka Discord", + "discordHint": "W ustawieniach kanału w Discordzie, w sekcji Integracje.", + "discordUsername": "Nazwa wyświetlana (opcjonalnie)", + "discordAvatar": "Adres URL awatara (opcjonalnie)", + "emailTo": "Wyślij do", + "emailHint": "Oddziel więcej niż jeden adres przecinkami.", + "privateNetwork": "Zezwól na prywatny adres sieciowy", + "privateNetworkHint": "Działa tylko w przypadku hostów dozwolonych przez administratora na liście prywatnych punktów końcowych." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "Reguła dostarczania wysyła pasujące alerty do Twoich kanałów. Alerty zawsze pozostają w skrzynce odbiorczej.", + "add": "Dodaj regułę", + "edit": "Edytuj regułę", + "empty": "Nie ma jeszcze żadnych reguł, więc powiadomienia pojawiają się tylko w skrzynce odbiorczej.", + "needChannel": "Najpierw dodaj kanał.", "enabled": "Włączona", "name": "Nazwa", "nameRequired": "Nazwa jest wymagana", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Alerty do wysłania", + "matchHint": "* do wszystkiego, automatyzacje.* do wszystkiego, od automatyzacji, lub jednego konkretnego rodzaju.", + "minSeverity": "Co najmniej", + "channels": "Wyślij do", + "channelRequired": "Wybierz co najmniej jeden kanał", + "deleteConfirm": "Usunąć regułę „{{name}}”?", + "everything": "Wszystko", + "summary": "{{match}}, {{severity}} lub wyższy, do {{channels}}" }, "actions": { "cancel": "Anuluj", @@ -163,9 +163,9 @@ }, "widget": { "name": "Kanał alertów", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "Twoje najnowsze alerty z możliwością szybkiego oznaczenia ich jako przeczytanych", + "maxItems": "Maksymalna liczba elementów", + "showRead": "Pokaż alerty odczytu", "allClear": "Bez alertów", "loading": "Ładowanie..." } diff --git a/plugins/alerts/locales/translated/pt_BR.json b/plugins/alerts/locales/translated/pt_BR.json index 0afaab20a..25398d732 100644 --- a/plugins/alerts/locales/translated/pt_BR.json +++ b/plugins/alerts/locales/translated/pt_BR.json @@ -1,159 +1,159 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Alertas" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Usar alertas", + "description": "Receba alertas na caixa de entrada e envie-os para seus próprios canais." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Alertas", + "featureDesc": "Todas as notificações em uma única caixa de entrada, enviadas para o Discord, NTfy, e-mail ou webhook, se desejar." }, "settings": { "group": { "general": "Geral", - "email": "Email" + "email": "E-mail" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Anúncios da Termix", + "description": "Exibir notícias da equipe Termix, como avisos de segurança e comunicados, na caixa de entrada de todos." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Manter alertas por (dias)", + "description": "Alertas antigos são removidos de todas as caixas de entrada." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "Servidor SMTP", + "description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "porta SMTP", + "description": "Normalmente, usa-se a porta 587 com STARTTLS ou a porta 465 com TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Use TLS desde o início.", + "description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "nome de usuário SMTP", + "description": "Deixe em branco se o servidor não exigir login." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Senha SMTP", + "description": "Armazenado criptografado." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Do endereço", + "description": "Os alertas do remetente vêm de:", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Janelas de alerta", + "description": "Quais novos alertas aparecem enquanto você usa o Termix? Eles sempre chegam na caixa de entrada.", + "all": "Todos os alertas", + "warning": "Avisos e alertas", + "critical": "Somente crítico", "off": "Nenhum" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Caixa de entrada", + "channels": "Canais", + "rules": "Regras de entrega" }, "severity": { - "info": "Info", - "success": "Success", + "info": "Informações", + "success": "Sucesso", "warning": "Atenção", - "critical": "Critical" + "critical": "Crítico" }, "inbox": { "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "openLink": "Abrir", + "view": "Visualizar", + "unread": "Não lido", + "deliveryFailed_one": "{{count}} canal falhou", + "deliveryFailed_other": "{{count}} canais falharam", + "markRead": "Marcar como lido", + "markUnread": "Marcar como não lida", + "markAllRead": "Marcar tudo como lido", "delete": "Apagar", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "clearRead": "Excluir alertas de leitura", + "cleared_one": "Alerta excluído {{count}}", + "cleared_other": "Alertas excluídos {{count}}", + "filterAll": "Todos", + "filterUnread": "Não lido", + "anySeverity": "Qualquer gravidade", + "anySource": "Qualquer fonte", + "openAll": "Abrir em uma aba", + "empty": "Ainda não há alertas.", + "emptyUnread": "Vocês estão todos a par da situação.", + "loadMore": "Carregar mais" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", + "intro": "Os canais são locais para onde os alertas podem ser enviados fora do Termix. As regras de entrega definem quais alertas os utilizarão.", + "add": "Adicionar canal", + "edit": "Editar canal", + "test": "Enviar um teste", + "testSent": "Alerta de teste enviado", + "testFailed": "Teste falhou: {{error}}", + "deleteConfirm": "Excluir o canal \"{{name}}\"?", + "deleted": "Canal excluído", + "empty": "Ainda não há canais.", + "enabled": "Habilitado", + "needsSave": "Este canal precisa ser aberto e salvo novamente antes de poder enviar mensagens.", + "name": "Nome", + "nameRequired": "O nome é obrigatório.", "type": "Tipo", "types": { "webhook": "Webhook", "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "discord": "Discórdia", + "email": "E-mail" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "O envio de e-mails requer um servidor SMTP, que um administrador configura nas configurações de Alertas.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "Obtém um corpo JSON para cada alerta.", + "method": "Método", + "headers": "Cabeçalhos", + "headersHint": "Um por linha, como Nome: valor.", "ntfyServer": "URL do Servidor", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyTopic": "Tópico", + "ntfyToken": "Token de acesso (opcional)", + "discordUrl": "URL do webhook do Discord", + "discordHint": "Nas configurações do canal no Discord, em Integrações.", + "discordUsername": "Nome de exibição (opcional)", + "discordAvatar": "URL do avatar (opcional)", + "emailTo": "Enviar para", + "emailHint": "Separe mais de um endereço com vírgulas.", + "privateNetwork": "Permitir um endereço de rede privada", + "privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.", + "add": "Adicionar regra", + "edit": "Editar regra", + "empty": "Ainda não existem regras, portanto os alertas só aparecem na caixa de entrada.", + "needChannel": "Primeiro, adicione um canal.", + "enabled": "Habilitado", + "name": "Nome", + "nameRequired": "O nome é obrigatório.", + "match": "Alertas a enviar", + "matchHint": "* para tudo, automações.* para tudo, desde automações, até um tipo específico.", + "minSeverity": "Pelo menos", + "channels": "Enviar para", + "channelRequired": "Escolha pelo menos um canal.", + "deleteConfirm": "Apagar a regra \"{{name}}\"?", + "everything": "Tudo", + "summary": "{{match}}, {{severity}} ou superior, para {{channels}}" }, "actions": { "cancel": "Cancelar", @@ -162,11 +162,11 @@ "delete": "Apagar" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", + "name": "Feed de alertas", + "description": "Seus alertas mais recentes, com uma maneira rápida de marcá-los como lidos.", + "maxItems": "Itens máximos", + "showRead": "Mostrar alertas de leitura", + "allClear": "Tudo certo", "loading": "Carregando..." } } diff --git a/plugins/alerts/locales/translated/pt_PT.json b/plugins/alerts/locales/translated/pt_PT.json index e90d1bf97..8446380f0 100644 --- a/plugins/alerts/locales/translated/pt_PT.json +++ b/plugins/alerts/locales/translated/pt_PT.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Usar alertas", + "description": "Receba alertas na caixa de entrada e envie-os para os seus próprios canais." } }, "onboarding": { "feature": "Alertas", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "Todas as notificações numa única caixa de entrada, enviadas para o Discord, NTfy, e-mail ou webhook, se desejar." }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Anúncios da Termix", + "description": "Exibir notícias da equipa Termix, como avisos de segurança e comunicados, na caixa de entrada de todos." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Manter alertas durante (dias)", + "description": "Os alertas antigos são removidos de todas as caixas de entrada." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", - "placeholder": "smtp.example.com" + "label": "Servidor SMTP", + "description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.", + "placeholder": "smtp.exemplo.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "porta SMTP", + "description": "Normalmente, utiliza-se a porta 587 com STARTTLS ou a porta 465 com TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Utilize TLS desde o início.", + "description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "nome de utilizador SMTP", + "description": "Deixe em branco se o servidor não necessitar de login." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Palavra-passe SMTP", + "description": "Armazenado encriptado." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Do endereço", + "description": "Os alertas do remetente provêm de:", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Janelas de alerta", + "description": "Que novos alertas aparecem enquanto utiliza o Termix? Chegam sempre na caixa de entrada.", + "all": "Todos os alertas", + "warning": "Avisos e alertas", + "critical": "Somente crítico", "off": "Nenhuma" } } }, "sections": { - "inbox": "Inbox", + "inbox": "Caixa de entrada", "channels": "Canais", - "rules": "Delivery rules" + "rules": "Regras de entrega" }, "severity": { "info": "Info", "success": "Sucesso", "warning": "Aviso", - "critical": "Critical" + "critical": "Crítico" }, "inbox": { "sourceTermix": "Termix", "openLink": "Abrir", "view": "Ver", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "Não lido", + "deliveryFailed_one": "{{count}} canal falhou", + "deliveryFailed_other": "{{count}} canais falharam", + "markRead": "Marcar como lido", + "markUnread": "Marcar como não lida", + "markAllRead": "Marcar tudo como lido", "delete": "Eliminar", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "Apagar alertas de leitura", + "cleared_one": "Alerta eliminado {{count}}", + "cleared_other": "Alertas excluídos {{count}}", "filterAll": "Todas", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "Não lido", + "anySeverity": "Qualquer gravidade", + "anySource": "Qualquer fonte", + "openAll": "Abrir numa aba", + "empty": "Ainda não há alertas.", + "emptyUnread": "Estão todos a par da situação.", + "loadMore": "Carregar mais" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "Os canais são locais para onde os alertas podem ser enviados fora do Termix. As regras de entrega definem quais os alertas que os irão utilizar.", + "add": "Adicionar canal", + "edit": "Editar canal", + "test": "Enviar um teste", + "testSent": "Alerta de teste enviado", + "testFailed": "Teste falhou: {{error}}", + "deleteConfirm": "Apagar o canal \"{{name}}\"?", + "deleted": "Canal excluído", + "empty": "Ainda não há canais.", "enabled": "Ativado", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Este canal precisa de ser aberto e guardado novamente antes de poder enviar mensagens.", "name": "Nome", "nameRequired": "O nome é obrigatório", "type": "Tipo", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "E-mail" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "O envio de e-mails requer um servidor SMTP, que um administrador configura nas definições de Alertas.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "Obtém um corpo JSON para cada alerta.", + "method": "Método", + "headers": "Cabeçalhos", + "headersHint": "Um por linha, como por exemplo Nome: valor.", "ntfyServer": "URL do servidor", "ntfyTopic": "Tópico", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyToken": "Token de acesso (opcional)", + "discordUrl": "URL do webhook do Discord", + "discordHint": "Nas definições do canal no Discord, em Integrações.", + "discordUsername": "Nome de visualização (opcional)", + "discordAvatar": "URL do avatar (opcional)", + "emailTo": "Enviar para", + "emailHint": "Separe mais do que um endereço com vírgulas.", + "privateNetwork": "Permitir um endereço de rede privada", + "privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.", + "add": "Adicionar regra", + "edit": "Editar regra", + "empty": "Ainda não existem regras, pelo que os alertas apenas aparecem na caixa de entrada.", + "needChannel": "Primeiro, adicione um canal.", "enabled": "Ativado", "name": "Nome", "nameRequired": "O nome é obrigatório", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Alertas a enviar", + "matchHint": "* para tudo, automações.* para tudo, desde automações, a um tipo específico.", + "minSeverity": "Pelo menos", + "channels": "Enviar para", + "channelRequired": "Escolha pelo menos um canal.", + "deleteConfirm": "Apagar a regra \"{{name}}\"?", + "everything": "Tudo", + "summary": "{{match}}, {{severity}} ou superior, para {{channels}}" }, "actions": { "cancel": "Cancelar", @@ -163,9 +163,9 @@ }, "widget": { "name": "Feed de alertas", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "Os seus alertas mais recentes, com uma forma rápida de os marcar como lidos.", + "maxItems": "Itens máximos", + "showRead": "Mostrar alertas de leitura", "allClear": "Tudo em ordem", "loading": "A carregar..." } diff --git a/plugins/alerts/locales/translated/ru_RU.json b/plugins/alerts/locales/translated/ru_RU.json index 900f0ebff..1e852207d 100644 --- a/plugins/alerts/locales/translated/ru_RU.json +++ b/plugins/alerts/locales/translated/ru_RU.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Используйте оповещения", + "description": "Получайте уведомления на свою электронную почту и отправляйте их в свои каналы." } }, "onboarding": { "feature": "Оповещения", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "Все оповещения в одном почтовом ящике, которые можно отправить в Discord, ntfy, на электронную почту или через веб-хук, если хотите." }, "settings": { "group": { @@ -19,141 +19,141 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Объявления компании Termix", + "description": "Показывайте новости от команды Termix, такие как уведомления о безопасности и обновления, в почтовые ящики всех пользователей." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Сохранять оповещения в течение (дней)", + "description": "Более старые уведомления удаляются из всех почтовых ящиков." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP-сервер", + "description": "Необходимо для каналов электронной почты. Оставьте поле пустым, чтобы отключить отправку писем.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP-порт", + "description": "Обычно используется код 587 с STARTTLS или 465 с TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Используйте TLS с самого начала.", + "description": "Включите порт 465. Оставьте выключенным порт 587, так как он автоматически переходит на TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "Имя пользователя SMTP", + "description": "Оставьте поле пустым, если серверу не требуется авторизация." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP-пароль", + "description": "Сохранено в зашифрованном виде." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "От адреса", + "description": "Уведомления поступают от отправителя.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Всплывающие уведомления", + "description": "Какие новые уведомления появляются во время использования Termix? Они всегда попадают во входящие сообщения.", + "all": "Все оповещения", + "warning": "Предупреждения и критические", + "critical": "Только критически важные", "off": "Ни одного" } } }, "sections": { - "inbox": "Inbox", + "inbox": "Входящие", "channels": "Каналы", - "rules": "Delivery rules" + "rules": "Правила доставки" }, "severity": { "info": "Информация", "success": "Успех", "warning": "Предупреждение", - "critical": "Critical" + "critical": "Критический" }, "inbox": { "sourceTermix": "Termix", "openLink": "Открыть", "view": "Просмотр", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "Непрочитано", + "deliveryFailed_one": "{{count}} канал не работает", + "deliveryFailed_other": "{{count}} каналы не работают", + "markRead": "Отметить как прочитанное", + "markUnread": "Отметить как непрочитанное", + "markAllRead": "Отметьте все как прочитанное", "delete": "Удалить", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "Удалить оповещения о прочтении", + "cleared_one": "Удалено {{count}} оповещение", + "cleared_other": "Удалены {{count}} оповещения", "filterAll": "Все", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "Непрочитано", + "anySeverity": "Любая степень тяжести", + "anySource": "Любой источник", + "openAll": "Открыть во вкладке", + "empty": "Пока нет оповещений.", + "emptyUnread": "Вы всё успели посмотреть.", + "loadMore": "Загрузить ещё" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "Каналы — это место, куда могут отправляться оповещения за пределы Termix. Правила доставки определяют, какие оповещения будут их использовать.", + "add": "Добавить канал", + "edit": "Редактировать канал", + "test": "Отправить тест", + "testSent": "Отправлено тестовое оповещение", + "testFailed": "Тест не пройден: {{error}}", + "deleteConfirm": "Удалить канал \"{{name}}\"?", + "deleted": "Канал удален", + "empty": "Каналов пока нет.", "enabled": "Включено", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Перед отправкой сообщения этот канал необходимо снова открыть и сохранить.", "name": "Название", "nameRequired": "Имя обязательно", "type": "Тип", "types": { - "webhook": "Webhook", - "ntfy": "ntfy", + "webhook": "Вебхук", + "ntfy": "нтфи", "discord": "Discord", "email": "Email" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "Для работы электронной почты необходим SMTP-сервер, который администратор настраивает в параметрах оповещений.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "Получает JSON-тело для каждого оповещения.", + "method": "Метод", + "headers": "Заголовки", + "headersHint": "Один символ на строку, например, Имя: значение.", "ntfyServer": "URL сервера", "ntfyTopic": "Тема", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyToken": "Токен доступа (необязательно)", + "discordUrl": "URL веб-перехватчика Discord", + "discordHint": "В настройках канала в Discord, в разделе «Интеграции».", + "discordUsername": "Отображаемое имя (необязательно)", + "discordAvatar": "URL-адрес аватара (необязательно)", + "emailTo": "Отправить", + "emailHint": "Разделяя несколько адресов запятыми.", + "privateNetwork": "Разрешить использование частного сетевого адреса", + "privateNetworkHint": "Работает только для хостов, разрешенных администратором в списке частных конечных точек." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "Правило доставки отправляет соответствующие оповещения в ваши каналы. Оповещения также всегда остаются во входящих сообщениях.", + "add": "Добавить правило", + "edit": "Редактировать правило", + "empty": "Правил пока нет, поэтому уведомления отображаются только во входящих сообщениях.", + "needChannel": "Сначала добавьте канал.", "enabled": "Включено", "name": "Название", "nameRequired": "Имя обязательно", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Уведомления для отправки", + "matchHint": "* для всего, что связано с автоматизацией.* для всего, что связано с автоматизацией, или для одного конкретного типа.", + "minSeverity": "По меньшей мере", + "channels": "Отправить", + "channelRequired": "Выберите хотя бы один канал", + "deleteConfirm": "Удалить правило \"{{name}}\"?", + "everything": "Все", + "summary": "{{match}}, {{severity}} или выше, до {{channels}}" }, "actions": { "cancel": "Отмена", @@ -163,9 +163,9 @@ }, "widget": { "name": "Лента оповещений", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "Ваши последние уведомления с возможностью быстрой пометки их как прочитанных.", + "maxItems": "Максимальное количество предметов", + "showRead": "Показать уведомления о прочтении", "allClear": "Всё в порядке", "loading": "Загрузка..." } diff --git a/plugins/alerts/locales/translated/sr_SP.json b/plugins/alerts/locales/translated/sr_SP.json index 9d7514f0d..3415871fd 100644 --- a/plugins/alerts/locales/translated/sr_SP.json +++ b/plugins/alerts/locales/translated/sr_SP.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Упозорења" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Користите упозорења", + "description": "Добијајте обавештења у пријемно сандуче и шаљите их на своје канале." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Упозорења", + "featureDesc": "Свако упозорење у једном пријемном сандучету, послато на Discord, ntfy, имејл или вебхук ако желите." }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "Опште", + "email": "Е-пошта" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix саопштења", + "description": "Прикажи вести од Termix тима, као што су безбедносна обавештења и издања, у пријемном сандучету свих корисника." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Задржавај упозорења (дана)", + "description": "Старија упозорења се уклањају из сваког пријемног сандучета." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP сервер", + "description": "Потребно за имејл канале. Оставите празно да бисте искључили имејл.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "СМТП порт", + "description": "Обично 587 са STARTTLS-ом или 465 са TLS-ом." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Користите TLS од почетка", + "description": "Укључите за порт 465. Оставите искључено за порт 587, који се сам надограђује на TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP корисничко име", + "description": "Оставите празно ако сервер не захтева пријаву." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "СМТП лозинка", + "description": "Сачувано шифровано." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "Адреса одакле", + "description": "Упозорења пошиљаоца долазе од.", + "placeholder": "Термикс " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "Искачући прозори са упозорењима", + "description": "Која нова упозорења се појављују док користите Termix. Она увек стижу у пријемно сандуче.", + "all": "Сва упозорења", + "warning": "Упозорења и критичне информације", + "critical": "Само критично", + "off": "Ниједан" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Пријемно сандуче", + "channels": "Канали", + "rules": "Правила испоруке" }, "severity": { - "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "info": "Информације", + "success": "Успех", + "warning": "Упозорење", + "critical": "Критично" }, "inbox": { - "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "sourceTermix": "Термикс", + "openLink": "Отворено", + "view": "Поглед", + "unread": "Непрочитано", + "deliveryFailed_one": "{{count}} канал није успео", + "deliveryFailed_other": "{{count}} канала није успело", + "markRead": "Означи као прочитано", + "markUnread": "Означи као непрочитано", + "markAllRead": "Означи све као прочитано", + "delete": "Обриши", + "clearRead": "Обриши упозорења о читању", + "cleared_one": "Обрисано упозорење {{count}}", + "cleared_other": "Обрисана упозорења {{count}}", + "filterAll": "Сви", + "filterUnread": "Непрочитано", + "anySeverity": "Било која тежина", + "anySource": "Било који извор", + "openAll": "Отвори у картици", + "empty": "Још нема упозорења.", + "emptyUnread": "Све сте у току.", + "loadMore": "Учитај још" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "Канали су места где упозорења могу да се шаљу изван Termix-а. Правила испоруке бирају која упозорења их користе.", + "add": "Додај канал", + "edit": "Измени канал", + "test": "Пошаљи тест", + "testSent": "Послато је тестно упозорење", + "testFailed": "Тест није успео: {{error}}", + "deleteConfirm": "Обрисати канал „{{name}}“?", + "deleted": "Канал је обрисан", + "empty": "Још нема канала.", + "enabled": "Омогућено", + "needsSave": "Овај канал треба поново отворити и сачувати пре него што се може послати.", + "name": "Име", + "nameRequired": "Име је обавезно", + "type": "Тип", "types": { - "webhook": "Webhook", - "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "webhook": "Вебхук", + "ntfy": "нтфи", + "discord": "Неслагање", + "email": "Е-пошта" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "Е-пошти је потребан SMTP сервер, који администратор подешава у подешавањима упозорења.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "webhookHint": "Добија JSON тело за свако упозорење.", + "method": "Метод", + "headers": "Заглавља", + "headersHint": "Један по реду, као што је Име: вредност.", + "ntfyServer": "URL сервера", + "ntfyTopic": "Тема", + "ntfyToken": "Приступни токен (опционо)", + "discordUrl": "URL вебхука на Дискорду", + "discordHint": "Из подешавања канала на Дискорду, под Интеграције.", + "discordUsername": "Приказано име (опционо)", + "discordAvatar": "URL адреса аватара (опционо)", + "emailTo": "Пошаљи", + "emailHint": "Одвојите више од једне адресе зарезима.", + "privateNetwork": "Дозволи адресу приватне мреже", + "privateNetworkHint": "Ради само за хостове које администратор дозвољава на листи приватних крајњих тачака." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "Правило испоруке шаље одговарајућа упозорења вашим каналима. Упозорења такође увек остају у пријемном сандучету.", + "add": "Додај правило", + "edit": "Измени правило", + "empty": "Још нема правила, тако да се упозорења приказују само у пријемном сандучету.", + "needChannel": "Прво додајте канал.", + "enabled": "Омогућено", + "name": "Име", + "nameRequired": "Име је обавезно", + "match": "Обавештења за слање", + "matchHint": "* за све, аутоматизације.* за све од аутоматизација, или само једну врсту.", + "minSeverity": "Барем", + "channels": "Пошаљи", + "channelRequired": "Изаберите барем један канал", + "deleteConfirm": "Обрисати правило „{{name}}“?", + "everything": "Све", + "summary": "{{match}}, {{severity}} или више, до {{channels}}" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "Откажи", + "save": "Сачувај", + "saving": "Чување...", + "delete": "Обриши" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "Фид обавештења", + "description": "Ваша најновија обавештења, са брзим начином да их означите као прочитане", + "maxItems": "Максималан број ставки", + "showRead": "Прикажи обавештења о читању", + "allClear": "Све је чисто", + "loading": "Учитавање..." } } diff --git a/plugins/alerts/locales/translated/sv_SE.json b/plugins/alerts/locales/translated/sv_SE.json index 9d7514f0d..e9febf4b0 100644 --- a/plugins/alerts/locales/translated/sv_SE.json +++ b/plugins/alerts/locales/translated/sv_SE.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Aviseringar" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Använd varningar", + "description": "Få aviseringar i inkorgen och skicka dem till dina egna kanaler." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Aviseringar", + "featureDesc": "Varje avisering i en inkorg, skickad vidare till Discord, ntfy, e-post eller en webhook om du vill." }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "Allmän", + "email": "E-post" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix-meddelanden", + "description": "Visa nyheter från Termix-teamet, som säkerhetsmeddelanden och pressmeddelanden, i allas inkorg." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Behåll varningar i (dagar)", + "description": "Äldre aviseringar tas bort från alla inkorgar." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP-server", + "description": "Behövs för e-postkanaler. Lämna tomt för att stänga av e-post.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP-port", + "description": "Vanligtvis 587 med STARTTLS eller 465 med TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Använd TLS från början", + "description": "Aktivera port 465. Avaktivera port 587, som uppgraderar till TLS på egen hand." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP-användarnamn", + "description": "Lämna tomt om servern inte behöver inloggning." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP-lösenord", + "description": "Lagras krypterat." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Från adress", + "description": "Avsändaraviseringarna kommer från.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "Aviseringspopup-fönster", + "description": "Vilka nya aviseringar dyker upp när du använder Termix? De hamnar alltid i inkorgen.", + "all": "Alla varningar", + "warning": "Varningar och kritiska", + "critical": "Endast kritisk", + "off": "Ingen" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Inkorg", + "channels": "Kanaler", + "rules": "Leveransregler" }, "severity": { "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "success": "Framgång", + "warning": "Varning", + "critical": "Kritisk" }, "inbox": { "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "openLink": "Öppna", + "view": "Se", + "unread": "Oläst", + "deliveryFailed_one": "{{count}} kanal misslyckades", + "deliveryFailed_other": "{{count}} kanaler misslyckades", + "markRead": "Markera som läst", + "markUnread": "Markera som oläst", + "markAllRead": "Markera alla som lästa", + "delete": "Radera", + "clearRead": "Ta bort läsaviseringar", + "cleared_one": "Borttagen {{count}} -avisering", + "cleared_other": "Borttagna {{count}} varningar", + "filterAll": "Alla", + "filterUnread": "Oläst", + "anySeverity": "Vilken allvarlighetsgrad som helst", + "anySource": "Vilken källa som helst", + "openAll": "Öppna i en flik", + "empty": "Inga varningar ännu.", + "emptyUnread": "Ni är helt uppdaterade.", + "loadMore": "Ladda mer" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "Kanaler är där aviseringar kan skickas utanför Termix. Leveransregler väljer vilka aviseringar som använder dem.", + "add": "Lägg till kanal", + "edit": "Redigera kanal", + "test": "Skicka ett test", + "testSent": "Testavisering skickad", + "testFailed": "Testet misslyckades: {{error}}", + "deleteConfirm": "Ta bort kanalen \"{{name}}\"?", + "deleted": "Kanal borttagen", + "empty": "Inga kanaler än.", + "enabled": "Aktiverad", + "needsSave": "Den här kanalen måste öppnas och sparas igen innan den kan skicka.", + "name": "Namn", + "nameRequired": "Namn krävs", + "type": "Typ", "types": { - "webhook": "Webhook", + "webhook": "Webbhook", "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "discord": "Disharmoni", + "email": "E-post" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "E-post behöver en SMTP-server, vilket en administratör konfigurerar i aviseringsinställningarna.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "webhookHint": "Hämtar en JSON-text för varje avisering.", + "method": "Metod", + "headers": "Rubriker", + "headersHint": "En per rad, som Namn: värde.", + "ntfyServer": "Server-URL", + "ntfyTopic": "Ämne", + "ntfyToken": "Åtkomsttoken (valfritt)", + "discordUrl": "Discord webhook-URL", + "discordHint": "Från kanalens inställningar i Discord, under Integrationer.", + "discordUsername": "Visningsnamn (valfritt)", + "discordAvatar": "Avatar-URL (valfritt)", + "emailTo": "Skicka till", + "emailHint": "Separera mer än en adress med kommatecken.", + "privateNetwork": "Tillåt en privat nätverksadress", + "privateNetworkHint": "Fungerar bara för värdar som en administratör tillåter i listan över privata slutpunkter." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "En leveransregel skickar matchande aviseringar till dina kanaler. Aviseringar finns alltid kvar i inkorgen också.", + "add": "Lägg till regel", + "edit": "Redigera regel", + "empty": "Inga regler ännu, så aviseringar visas bara i inkorgen.", + "needChannel": "Lägg till en kanal först.", + "enabled": "Aktiverad", + "name": "Namn", + "nameRequired": "Namn krävs", + "match": "Aviseringar att skicka", + "matchHint": "* för allt, automatiseringar.* för allt från automatiseringar, eller en exakt sort.", + "minSeverity": "Åtminstone", + "channels": "Skicka till", + "channelRequired": "Välj minst en kanal", + "deleteConfirm": "Ta bort regeln \"{{name}}\"?", + "everything": "Allt", + "summary": "{{match}}, {{severity}} eller högre, till {{channels}}" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "Avboka", + "save": "Spara", + "saving": "Sparande...", + "delete": "Radera" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "Aviseringsflöde", + "description": "Dina senaste aviseringar, med ett snabbt sätt att markera dem som lästa", + "maxItems": "Max antal artiklar", + "showRead": "Visa läsaviseringar", + "allClear": "Faran över", + "loading": "Belastning..." } } diff --git a/plugins/alerts/locales/translated/th_TH.json b/plugins/alerts/locales/translated/th_TH.json index 9d7514f0d..2912f0461 100644 --- a/plugins/alerts/locales/translated/th_TH.json +++ b/plugins/alerts/locales/translated/th_TH.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "การแจ้งเตือน" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "ใช้การแจ้งเตือน", + "description": "รับการแจ้งเตือนในกล่องข้อความขาเข้า และส่งต่อไปยังช่องทางของคุณเองได้" } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "การแจ้งเตือน", + "featureDesc": "การแจ้งเตือนทั้งหมดจะถูกส่งไปยังกล่องข้อความเดียว และส่งต่อไปยัง Discord, NTFI, อีเมล หรือ Webhook ตามที่คุณต้องการ" }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "ทั่วไป", + "email": "อีเมล" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "ประกาศจาก Termix", + "description": "แสดงข่าวสารจากทีม Termix เช่น ประกาศด้านความปลอดภัยและการอัปเดตต่างๆ ในกล่องจดหมายของทุกคน" }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "ตั้งค่าการแจ้งเตือนเป็นเวลา (วัน)", + "description": "การแจ้งเตือนเก่าๆ จะถูกลบออกจากกล่องจดหมายทุกกล่อง" }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "เซิร์ฟเวอร์ SMTP", + "description": "จำเป็นสำหรับช่องทางการส่งอีเมล เว้นว่างไว้เพื่อปิดการใช้งานอีเมล", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "พอร์ต SMTP", + "description": "โดยทั่วไปจะใช้พอร์ต 587 สำหรับ STARTTLS หรือ 465 สำหรับ TLS" }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "ใช้ TLS ตั้งแต่เริ่มต้น", + "description": "เปิดใช้งานสำหรับพอร์ต 465 ปิดใช้งานสำหรับพอร์ต 587 ซึ่งจะอัปเกรดเป็น TLS โดยอัตโนมัติ" }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "ชื่อผู้ใช้ SMTP", + "description": "เว้นว่างไว้หากเซิร์ฟเวอร์ไม่ต้องการการเข้าสู่ระบบ" }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "รหัสผ่าน SMTP", + "description": "จัดเก็บในรูปแบบเข้ารหัส" }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "จากที่อยู่", + "description": "การแจ้งเตือนจากผู้ส่งมาจาก...", + "placeholder": "เทอร์มิกซ์ " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "ป๊อปอัปแจ้งเตือน", + "description": "มีการแจ้งเตือนใหม่ๆ อะไรบ้างที่จะปรากฏขึ้นขณะที่คุณใช้งาน Termix การแจ้งเตือนเหล่านั้นจะถูกส่งไปยังกล่องจดหมายเข้าเสมอ", + "all": "การแจ้งเตือนทั้งหมด", + "warning": "คำเตือนและข้อสำคัญ", + "critical": "เฉพาะกรณีวิกฤติเท่านั้น", + "off": "ไม่มี" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "กล่องขาเข้า", + "channels": "ช่องต่างๆ", + "rules": "กฎการจัดส่ง" }, "severity": { - "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "info": "ข้อมูล", + "success": "ความสำเร็จ", + "warning": "คำเตือน", + "critical": "วิกฤต" }, "inbox": { - "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "sourceTermix": "เทอร์มิกซ์", + "openLink": "เปิด", + "view": "ดู", + "unread": "ยังไม่ได้อ่าน", + "deliveryFailed_one": "{{count}} ช่องทางล้มเหลว", + "deliveryFailed_other": "{{count}} ช่องทางล้มเหลว", + "markRead": "ทำเครื่องหมายว่าอ่านแล้ว", + "markUnread": "ทำเครื่องหมายว่ายังไม่ได้อ่าน", + "markAllRead": "ทำเครื่องหมายว่าอ่านแล้วทั้งหมด", + "delete": "ลบ", + "clearRead": "ลบการแจ้งเตือนการอ่าน", + "cleared_one": "ลบการแจ้งเตือน {{count}} แล้ว", + "cleared_other": "ลบการแจ้งเตือน {{count}} แล้ว", + "filterAll": "ทั้งหมด", + "filterUnread": "ยังไม่ได้อ่าน", + "anySeverity": "ความรุนแรงใดๆ", + "anySource": "แหล่งที่มาใดๆ", + "openAll": "เปิดในแท็บใหม่", + "empty": "ยังไม่มีการแจ้งเตือนใดๆ", + "emptyUnread": "คุณได้รับข้อมูลครบถ้วนแล้ว", + "loadMore": "โหลดเพิ่มเติม" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "ช่องทางต่างๆ คือที่ที่การแจ้งเตือนสามารถส่งออกไปภายนอก Termix ได้ กฎการส่งจะเลือกว่าการแจ้งเตือนใดควรใช้ช่องทางเหล่านั้น", + "add": "เพิ่มช่องทาง", + "edit": "แก้ไขช่อง", + "test": "ส่งทดสอบ", + "testSent": "ส่งการแจ้งเตือนการทดสอบแล้ว", + "testFailed": "การทดสอบล้มเหลว: {{error}}", + "deleteConfirm": "ลบช่อง \"{{name}}\"?", + "deleted": "ช่องถูกลบแล้ว", + "empty": "ยังไม่มีช่องทางใด ๆ", + "enabled": "เปิดใช้งาน", + "needsSave": "ต้องเปิดและบันทึกช่องทางนี้อีกครั้งก่อนจึงจะสามารถส่งได้", + "name": "ชื่อ", + "nameRequired": "ต้องระบุชื่อ", + "type": "พิมพ์", "types": { - "webhook": "Webhook", + "webhook": "เว็บฮุค", "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "discord": "ดิสคอร์ด", + "email": "อีเมล" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "อีเมลจำเป็นต้องมีเซิร์ฟเวอร์ SMTP ซึ่งผู้ดูแลระบบจะตั้งค่าไว้ในการตั้งค่าการแจ้งเตือน", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "webhookHint": "จะได้รับข้อมูล JSON สำหรับการแจ้งเตือนทุกครั้ง", + "method": "วิธี", + "headers": "ส่วนหัว", + "headersHint": "หนึ่งรายการต่อบรรทัด เช่น ชื่อ: ค่า", + "ntfyServer": "URL ของเซิร์ฟเวอร์", + "ntfyTopic": "หัวข้อ", + "ntfyToken": "โทเค็นการเข้าถึง (ไม่บังคับ)", + "discordUrl": "URL เว็บฮุคของ Discord", + "discordHint": "จากเมนูการตั้งค่าของช่องใน Discord ในส่วน \"การผสานรวม\"", + "discordUsername": "ชื่อที่แสดง (ไม่บังคับ)", + "discordAvatar": "URL รูปประจำตัว (ไม่บังคับ)", + "emailTo": "ส่งไปยัง", + "emailHint": "คั่นที่อยู่มากกว่าหนึ่งรายการด้วยเครื่องหมายจุลภาค", + "privateNetwork": "อนุญาตให้ใช้ที่อยู่เครือข่ายส่วนตัว", + "privateNetworkHint": "ใช้ได้เฉพาะกับโฮสต์ที่ผู้ดูแลระบบอนุญาตในรายการปลายทางส่วนตัวเท่านั้น" }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "กฎการส่งจะส่งการแจ้งเตือนที่ตรงกันไปยังช่องทางต่างๆ ของคุณ การแจ้งเตือนเหล่านี้จะยังคงอยู่ในกล่องจดหมายเข้าเสมอ", + "add": "เพิ่มกฎ", + "edit": "แก้ไขกฎ", + "empty": "ยังไม่มีการกำหนดกฎเกณฑ์ใดๆ ดังนั้นการแจ้งเตือนจะปรากฏเฉพาะในกล่องจดหมายเข้าเท่านั้น", + "needChannel": "เพิ่มช่องทางก่อน", + "enabled": "เปิดใช้งาน", + "name": "ชื่อ", + "nameRequired": "ต้องระบุชื่อ", + "match": "การแจ้งเตือนที่จะส่ง", + "matchHint": "*สำหรับทุกสิ่งทุกอย่าง ระบบอัตโนมัติ* สำหรับทุกสิ่งทุกอย่างจากระบบอัตโนมัติ หรือระบบอัตโนมัติแบบใดแบบหนึ่งโดยเฉพาะ", + "minSeverity": "อย่างน้อย", + "channels": "ส่งไปยัง", + "channelRequired": "เลือกอย่างน้อยหนึ่งช่อง", + "deleteConfirm": "ลบกฎ \"{{name}} \" ออกหรือไม่?", + "everything": "ทุกอย่าง", + "summary": "{{match}}, {{severity}} หรือสูงกว่า ไปจนถึง {{channels}}" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "ยกเลิก", + "save": "บันทึก", + "saving": "ประหยัด...", + "delete": "ลบ" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "ฟีดแจ้งเตือน", + "description": "การแจ้งเตือนล่าสุดของคุณ พร้อมวิธีทำเครื่องหมายว่าอ่านแล้วอย่างรวดเร็ว", + "maxItems": "ไอเทมสูงสุด", + "showRead": "แสดงการแจ้งเตือนการอ่าน", + "allClear": "ทุกอย่างเรียบร้อย", + "loading": "กำลังโหลด..." } } diff --git a/plugins/alerts/locales/translated/tr_TR.json b/plugins/alerts/locales/translated/tr_TR.json index 2e8dd2a69..752597c8c 100644 --- a/plugins/alerts/locales/translated/tr_TR.json +++ b/plugins/alerts/locales/translated/tr_TR.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Uyarıları kullanın", + "description": "Gelen kutunuza bildirimler alın ve bunları kendi kanallarınıza gönderin." } }, "onboarding": { "feature": "Uyarılar", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "Tüm uyarılar tek bir gelen kutusunda toplanır ve isterseniz Discord, NTfy, e-posta veya webhook üzerinden de gönderilebilir." }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix duyuruları", + "description": "Termix ekibinden gelen güvenlik uyarıları ve sürümler gibi haberleri herkesin e-posta kutusunda göster." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Uyarıları (gün) süreyle açık tut", + "description": "Eski bildirimler tüm gelen kutularından silinir." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP sunucusu", + "description": "E-posta kanalları için gereklidir. E-postayı kapatmak için boş bırakın.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP bağlantı noktası", + "description": "Genellikle STARTTLS ile 587 veya TLS ile 465 kullanılır." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "TLS'yi en başından itibaren kullanın.", + "description": "465 numaralı bağlantı noktası için etkinleştirin. 587 numaralı bağlantı noktasını ise devre dışı bırakın; bu bağlantı noktası otomatik olarak TLS'ye yükseltilir." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP kullanıcı adı", + "description": "Sunucuya giriş yapılması gerekmiyorsa boş bırakın." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP şifresi", + "description": "Şifrelenmiş olarak saklanmaktadır." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Gönderen adresi", + "description": "Uyarı gönderen şuradan geliyor.", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Uyarı açılır pencereleri", + "description": "Termix kullanırken hangi yeni uyarılar belirir? Bunlar her zaman gelen kutunuza düşer.", + "all": "Tüm uyarılar", + "warning": "Uyarılar ve kritik noktalar", + "critical": "Sadece kritik", "off": "Yok" } } }, "sections": { - "inbox": "Inbox", + "inbox": "Gelen Kutusu", "channels": "Kanallar", - "rules": "Delivery rules" + "rules": "Teslimat kuralları" }, "severity": { "info": "Bilgi", "success": "Başarılı", "warning": "Uyarı", - "critical": "Critical" + "critical": "Kritik" }, "inbox": { "sourceTermix": "Termix", "openLink": "Aç", "view": "Görüntüle", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "Okunmamış", + "deliveryFailed_one": "{{count}} kanal başarısız oldu", + "deliveryFailed_other": "{{count}} kanal başarısız oldu", + "markRead": "Okundu olarak işaretle", + "markUnread": "Okunmamış olarak işaretle", + "markAllRead": "Tümünü okundu olarak işaretle", "delete": "Sil", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "Okuma uyarılarını sil", + "cleared_one": "Silindi {{count}} uyarısı", + "cleared_other": "Silinen {{count}} uyarıları", "filterAll": "Tümü", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "Okunmamış", + "anySeverity": "Herhangi bir şiddet", + "anySource": "Herhangi bir kaynak", + "openAll": "Yeni sekmede aç", + "empty": "Henüz herhangi bir uyarı yok.", + "emptyUnread": "Her şey tamamlandı.", + "loadMore": "Daha fazla yükle" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "Kanallar, uyarıların Termix dışına gönderilebileceği yerlerdir. Teslimat kuralları, hangi uyarıların bu kanalları kullanacağını belirler.", + "add": "Kanal ekle", + "edit": "Kanalı düzenle", + "test": "Bir test gönderin", + "testSent": "Test uyarısı gönderildi", + "testFailed": "Test başarısız oldu: {{error}}", + "deleteConfirm": "\"{{name}} \" kanalını silmek mi istiyorsunuz?", + "deleted": "Kanal silindi", + "empty": "Henüz kanal yok.", "enabled": "Etkin", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Bu kanalın gönderilebilmesi için önce açılıp tekrar kaydedilmesi gerekiyor.", "name": "Ad", "nameRequired": "Ad zorunludur", "type": "Tür", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "E-posta" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "E-posta göndermek için bir SMTP sunucusuna ihtiyaç vardır ve bu sunucu yönetici tarafından Uyarılar ayarlarında kurulur.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "Her uyarı için JSON formatında bir veri gövdesi alır.", + "method": "Yöntem", + "headers": "Başlıklar", + "headersHint": "Her satıra bir tane, örneğin İsim: değer şeklinde.", "ntfyServer": "Sunucu URL'si", "ntfyTopic": "Konu", - "ntfyToken": "Access token (optional)", + "ntfyToken": "Erişim belirteci (isteğe bağlı)", "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "discordHint": "Discord'daki kanal ayarlarından, Entegrasyonlar bölümünden.", + "discordUsername": "Görüntülenen ad (isteğe bağlı)", + "discordAvatar": "Avatar URL'si (isteğe bağlı)", + "emailTo": "Gönder", + "emailHint": "Birden fazla adresi virgülle ayırın.", + "privateNetwork": "Özel ağ adresine izin verin", + "privateNetworkHint": "Yalnızca yöneticinin özel uç nokta listesinde izin verdiği sunucular için çalışır." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "Bir teslimat kuralı, eşleşen uyarıları kanallarınıza gönderir. Uyarılar her zaman gelen kutunuzda da kalır.", + "add": "Kural ekle", + "edit": "Kuralı düzenle", + "empty": "Henüz kurallar belirlenmedi, bu nedenle uyarılar yalnızca gelen kutusunda görünüyor.", + "needChannel": "Önce bir kanal ekleyin.", "enabled": "Etkin", "name": "Ad", "nameRequired": "Ad zorunludur", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Gönderilecek uyarılar", + "matchHint": "*Her şey için otomasyonlar.* Otomasyonlardan her şeye veya belirli bir türe kadar.", + "minSeverity": "En azından", + "channels": "Gönder", + "channelRequired": "En az bir kanal seçin", + "deleteConfirm": "\"{{name}} \" kuralını silmek mi istiyorsunuz?", + "everything": "Her şey", + "summary": "{{match}}, {{severity}} veya daha yüksek, {{channels}}'ye kadar" }, "actions": { "cancel": "İptal", @@ -163,9 +163,9 @@ }, "widget": { "name": "Uyarı Akışı", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "En son bildirimleriniz ve bunları okundu olarak işaretlemenin hızlı bir yolu.", + "maxItems": "Maksimum öğe", + "showRead": "Okuma uyarılarını göster", "allClear": "Her şey normal", "loading": "Yükleniyor..." } diff --git a/plugins/alerts/locales/translated/uk_UA.json b/plugins/alerts/locales/translated/uk_UA.json index 9d7514f0d..90dc9fb04 100644 --- a/plugins/alerts/locales/translated/uk_UA.json +++ b/plugins/alerts/locales/translated/uk_UA.json @@ -1,172 +1,172 @@ { "nav": { - "alerts": "Alerts" + "alerts": "Сповіщення" }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Використовуйте сповіщення", + "description": "Отримуйте сповіщення у вхідні повідомлення та надсилайте їх на власні канали." } }, "onboarding": { - "feature": "Alerts", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "feature": "Сповіщення", + "featureDesc": "Кожне сповіщення в одній поштовій скриньці, що надсилається на Discord, ntfy, електронну пошту або вебхук, якщо хочете." }, "settings": { "group": { - "general": "General", - "email": "Email" + "general": "Загальне", + "email": "Електронна пошта" }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Оголошення Termix", + "description": "Показувати новини від команди Termix, такі як повідомлення та релізи безпеки, у папці \"Вхідні\" для всіх." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Зберігати сповіщення протягом (днів)", + "description": "Старіші сповіщення видаляються з усіх папок \"Вхідні\"." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP-сервер", + "description": "Потрібно для каналів електронної пошти. Залиште поле порожнім, щоб вимкнути електронну пошту.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP-порт", + "description": "Зазвичай 587 з STARTTLS або 465 з TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Використовуйте TLS з самого початку", + "description": "Увімкніть для порту 465. Вимкніть для порту 587, який самостійно оновлюється до TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "Ім'я користувача SMTP", + "description": "Залиште поле порожнім, якщо сервер не потребує входу." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Пароль SMTP", + "description": "Зберігається зашифрованим." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "З адреси", + "description": "Сповіщення відправника надходять з.", + "placeholder": "Термікс " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", - "off": "None" + "label": "Спливаючі вікна сповіщень", + "description": "Які нові сповіщення з’являються під час використання Termix. Вони завжди потрапляють у папку «Вхідні».", + "all": "Усі сповіщення", + "warning": "Попередження та критичні", + "critical": "Тільки критично", + "off": "Жоден" } } }, "sections": { - "inbox": "Inbox", - "channels": "Channels", - "rules": "Delivery rules" + "inbox": "Вхідні", + "channels": "Канали", + "rules": "Правила доставки" }, "severity": { - "info": "Info", - "success": "Success", - "warning": "Warning", - "critical": "Critical" + "info": "Інформація", + "success": "Успіх", + "warning": "УВАГА", + "critical": "Критичний" }, "inbox": { - "sourceTermix": "Termix", - "openLink": "Open", - "view": "View", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", - "delete": "Delete", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", - "filterAll": "All", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "sourceTermix": "Термікс", + "openLink": "ВІДЧИНЕНО", + "view": "Переглянути", + "unread": "Непрочитане", + "deliveryFailed_one": "{{count}} канал не вдався", + "deliveryFailed_other": "{{count}} каналів не вдалося", + "markRead": "Позначити як прочитане", + "markUnread": "Позначити як непрочитане", + "markAllRead": "Позначити всі як прочитані", + "delete": "Видалити", + "clearRead": "Видалити сповіщення про прочитання", + "cleared_one": "Видалено сповіщення {{count}}", + "cleared_other": "Видалено сповіщень {{count}}", + "filterAll": "Усі", + "filterUnread": "Непрочитане", + "anySeverity": "Будь-якої тяжкості", + "anySource": "Будь-яке джерело", + "openAll": "Відкрити у вкладці", + "empty": "Поки що немає сповіщень.", + "emptyUnread": "Ви все в курсі.", + "loadMore": "Завантажити більше" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", - "enabled": "Enabled", - "needsSave": "This channel needs to be opened and saved again before it can send.", - "name": "Name", - "nameRequired": "Name is required", - "type": "Type", + "intro": "Канали – це місця, де сповіщення можуть надходити за межі Termix. Правила доставки вибирають, які сповіщення їх використовувати.", + "add": "Додати канал", + "edit": "Редагувати канал", + "test": "Надіслати тест", + "testSent": "Тестове сповіщення надіслано", + "testFailed": "Тест не вдався: {{error}}", + "deleteConfirm": "Видалити канал «{{name}}»?", + "deleted": "Канал видалено", + "empty": "Поки що немає каналів.", + "enabled": "Увімкнено", + "needsSave": "Цей канал потрібно знову відкрити та зберегти, перш ніж його можна буде надіслати.", + "name": "Ім'я", + "nameRequired": "Ім'я обов'язкове", + "type": "Тип", "types": { - "webhook": "Webhook", + "webhook": "Вебхук", "ntfy": "ntfy", - "discord": "Discord", - "email": "Email" + "discord": "Дискорд", + "email": "Електронна пошта" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", - "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", - "ntfyServer": "Server URL", - "ntfyTopic": "Topic", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "emailUnavailable": "Для електронної пошти потрібен SMTP-сервер, який адміністратор налаштовує в налаштуваннях сповіщень.", + "webhookUrl": "URL-адреса", + "webhookHint": "Отримує тіло JSON для кожного сповіщення.", + "method": "Метод", + "headers": "Заголовки", + "headersHint": "По одному на рядок, наприклад, Ім'я: значення.", + "ntfyServer": "URL-адреса сервера", + "ntfyTopic": "Тема", + "ntfyToken": "Токен доступу (необов'язково)", + "discordUrl": "URL-адреса вебхука Discord", + "discordHint": "У налаштуваннях каналу в Discord, у розділі «Інтеграції».", + "discordUsername": "Відображуване ім'я (необов'язково)", + "discordAvatar": "URL-адреса аватара (необов'язково)", + "emailTo": "Надіслати", + "emailHint": "Розділяйте більше однієї адреси комами.", + "privateNetwork": "Дозволити адресу приватної мережі", + "privateNetworkHint": "Працює лише для хостів, які адміністратор дозволяє в списку приватних кінцевих точок." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", - "enabled": "Enabled", - "name": "Name", - "nameRequired": "Name is required", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "intro": "Правило доставки надсилає відповідні сповіщення до ваших каналів. Сповіщення також завжди залишаються у вхідних повідомленнях.", + "add": "Додати правило", + "edit": "Редагувати правило", + "empty": "Поки що немає правил, тому сповіщення відображаються лише у вхідних повідомленнях.", + "needChannel": "Спочатку додайте канал.", + "enabled": "Увімкнено", + "name": "Ім'я", + "nameRequired": "Ім'я обов'язкове", + "match": "Сповіщення для надсилання", + "matchHint": "* для всього, автоматизації.* для всього, починаючи від автоматизації, або одного точного виду.", + "minSeverity": "Принаймні", + "channels": "Надіслати", + "channelRequired": "Виберіть хоча б один канал", + "deleteConfirm": "Видалити правило \"{{name}}\"?", + "everything": "Все", + "summary": "{{match}}, {{severity}} або вище, до {{channels}}" }, "actions": { - "cancel": "Cancel", - "save": "Save", - "saving": "Saving...", - "delete": "Delete" + "cancel": "Скасувати", + "save": "Зберегти", + "saving": "Збереження...", + "delete": "Видалити" }, "widget": { - "name": "Alert Feed", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", - "allClear": "All clear", - "loading": "Loading..." + "name": "Стрічка сповіщень", + "description": "Ваші останні сповіщення з можливістю швидко позначити їх як прочитані", + "maxItems": "Макс. кількість елементів", + "showRead": "Показувати сповіщення про прочитання", + "allClear": "Все чисто", + "loading": "Завантаження..." } } diff --git a/plugins/alerts/locales/translated/vi_VN.json b/plugins/alerts/locales/translated/vi_VN.json index 44d8a66ae..a92f340fb 100644 --- a/plugins/alerts/locales/translated/vi_VN.json +++ b/plugins/alerts/locales/translated/vi_VN.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "Sử dụng cảnh báo", + "description": "Nhận thông báo trong hộp thư đến và chia sẻ chúng lên các kênh của riêng bạn." } }, "onboarding": { "feature": "Cảnh báo", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "Tất cả thông báo đều được tập trung trong một hộp thư đến, sau đó được gửi đến Discord, NTFS, email hoặc webhook nếu bạn muốn." }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Thông báo của Termix", + "description": "Hiển thị tin tức từ đội ngũ Termix, chẳng hạn như thông báo bảo mật và bản phát hành, trong hộp thư đến của mọi người." }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "Giữ cảnh báo trong (ngày)", + "description": "Các thông báo cũ hơn sẽ bị xóa khỏi mọi hộp thư đến." }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "Máy chủ SMTP", + "description": "Cần thiết cho các kênh email. Để trống nếu muốn tắt email.", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "Cổng SMTP", + "description": "Thông thường là cổng 587 với STARTTLS hoặc 465 với TLS." }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "Hãy sử dụng TLS ngay từ đầu.", + "description": "Bật tính năng này cho cổng 465. Tắt tính năng cho cổng 587, vì cổng này sẽ tự động nâng cấp lên TLS." }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "Tên người dùng SMTP", + "description": "Để trống nếu máy chủ không cần đăng nhập." }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "Mật khẩu SMTP", + "description": "Được lưu trữ dưới dạng mã hóa." }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", + "label": "Từ địa chỉ", + "description": "Thông báo đến từ nguồn nào?", "placeholder": "Termix " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "Cửa sổ bật lên cảnh báo", + "description": "Những thông báo mới nào xuất hiện khi bạn sử dụng Termix? Chúng luôn được gửi đến hộp thư đến.", + "all": "Tất cả cảnh báo", + "warning": "Cảnh báo và thông tin quan trọng", + "critical": "Chỉ quan trọng", "off": "Không" } } }, "sections": { - "inbox": "Inbox", + "inbox": "Hộp thư đến", "channels": "Kênh", - "rules": "Delivery rules" + "rules": "Quy tắc giao hàng" }, "severity": { "info": "Thông tin", "success": "Thành công", "warning": "Cảnh báo", - "critical": "Critical" + "critical": "Phê bình" }, "inbox": { "sourceTermix": "Termix", "openLink": "Mở", "view": "Xem", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "Chưa đọc", + "deliveryFailed_one": "{{count}} kênh bị lỗi", + "deliveryFailed_other": "{{count}} kênh bị lỗi", + "markRead": "Đánh dấu là đã đọc", + "markUnread": "Đánh dấu là chưa đọc", + "markAllRead": "Đánh dấu tất cả là đã đọc", "delete": "Xóa", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "Xóa thông báo đã đọc", + "cleared_one": "Đã xóa cảnh báo {{count}}", + "cleared_other": "Đã xóa {{count}} cảnh báo", "filterAll": "Tất cả", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "Chưa đọc", + "anySeverity": "Bất kỳ mức độ nghiêm trọng nào", + "anySource": "Bất kỳ nguồn nào", + "openAll": "Mở trong một tab", + "empty": "Chưa có thông báo nào.", + "emptyUnread": "Bạn đã nắm bắt được hết mọi thứ rồi.", + "loadMore": "Tải thêm" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "Các kênh là nơi các cảnh báo có thể được gửi ra ngoài Termix. Các quy tắc phân phối sẽ chọn những cảnh báo nào sử dụng các kênh đó.", + "add": "Thêm kênh", + "edit": "Chỉnh sửa kênh", + "test": "Gửi một bài kiểm tra", + "testSent": "Đã gửi cảnh báo thử nghiệm", + "testFailed": "Kiểm tra thất bại: {{error}}", + "deleteConfirm": "Xóa kênh \"{{name}}\"?", + "deleted": "Kênh đã bị xóa", + "empty": "Chưa có kênh nào.", "enabled": "Đã bật", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "Kênh này cần được mở và lưu lại một lần nữa trước khi có thể gửi.", "name": "Tên", "nameRequired": "Tên là bắt buộc", "type": "Loại", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "Email" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "Email cần có máy chủ SMTP, mà quản trị viên sẽ thiết lập trong phần cài đặt Thông báo.", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "Lấy nội dung JSON cho mỗi thông báo.", + "method": "Phương pháp", + "headers": "Tiêu đề", + "headersHint": "Mỗi mục một dòng, ví dụ: Tên: giá trị.", "ntfyServer": "URL máy chủ", "ntfyTopic": "Chủ đề", - "ntfyToken": "Access token (optional)", - "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "ntfyToken": "Mã truy cập (tùy chọn)", + "discordUrl": "URL webhook Discord", + "discordHint": "Bạn có thể chọn \"Integrations\" trong phần cài đặt kênh trên Discord.", + "discordUsername": "Tên hiển thị (tùy chọn)", + "discordAvatar": "URL ảnh đại diện (tùy chọn)", + "emailTo": "Gửi đến", + "emailHint": "Hãy sử dụng dấu phẩy để phân tách nhiều địa chỉ.", + "privateNetwork": "Cho phép địa chỉ mạng riêng", + "privateNetworkHint": "Chỉ hoạt động với các máy chủ mà quản trị viên cho phép trong danh sách điểm cuối riêng tư." }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "Quy tắc phân phối sẽ gửi các thông báo phù hợp đến các kênh của bạn. Các thông báo này cũng luôn được lưu trữ trong hộp thư đến.", + "add": "Thêm quy tắc", + "edit": "Chỉnh sửa quy tắc", + "empty": "Hiện chưa có quy tắc nào, vì vậy thông báo chỉ hiển thị trong hộp thư đến.", + "needChannel": "Trước tiên hãy thêm kênh.", "enabled": "Đã bật", "name": "Tên", "nameRequired": "Tên là bắt buộc", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "Thông báo cần gửi", + "matchHint": "* Cho mọi thứ, tự động hóa.* Cho mọi thứ từ tự động hóa, hoặc một loại cụ thể nào đó.", + "minSeverity": "Ít nhất", + "channels": "Gửi đến", + "channelRequired": "Chọn ít nhất một kênh", + "deleteConfirm": "Xóa quy tắc \"{{name}}\"?", + "everything": "Mọi thứ", + "summary": "{{match}}, {{severity}} hoặc cao hơn, đến {{channels}}" }, "actions": { "cancel": "Hủy", @@ -163,9 +163,9 @@ }, "widget": { "name": "Luồng cảnh báo", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "Thông báo mới nhất của bạn, kèm theo cách nhanh để đánh dấu đã đọc.", + "maxItems": "Số lượng vật phẩm tối đa", + "showRead": "Hiển thị thông báo đã đọc", "allClear": "Tất cả ổn", "loading": "Đang tải..." } diff --git a/plugins/alerts/locales/translated/zh_CN.json b/plugins/alerts/locales/translated/zh_CN.json index 3b8ac1c4c..8f4bb1b6d 100644 --- a/plugins/alerts/locales/translated/zh_CN.json +++ b/plugins/alerts/locales/translated/zh_CN.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "使用提醒", + "description": "在收件箱中接收提醒,并将其发送到您自己的频道。" } }, "onboarding": { "feature": "告警", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "所有提醒都集中在一个收件箱中,您可以选择将其发送到 Discord、ntfy、电子邮件或 webhook。" }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix公告", + "description": "将 Termix 团队的新闻,例如安全通知和版本发布,发送到每个人的收件箱。" }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "保持警报(天)", + "description": "所有收件箱中都会删除较旧的提醒邮件。" }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP服务器", + "description": "需要用于电子邮件渠道。留空则关闭电子邮件功能。", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP端口", + "description": "通常使用 STARTTLS 的 587 端口或使用 TLS 的 465 端口。" }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "从一开始就使用TLS", + "description": "启用 465 端口。保持 587 端口关闭,该端口会自动升级到 TLS。" }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP 用户名", + "description": "如果服务器不需要登录,请留空。" }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP密码", + "description": "已加密存储。" }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "来自地址", + "description": "发件人警报来自。", + "placeholder": "终端 " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "弹出式警报", + "description": "使用Termix时会弹出哪些新提醒?它们都会发送到您的收件箱。", + "all": "所有警报", + "warning": "警告和关键信息", + "critical": "仅限关键", "off": "全不选" } } }, "sections": { - "inbox": "Inbox", + "inbox": "收件箱", "channels": "通道", - "rules": "Delivery rules" + "rules": "配送规则" }, "severity": { "info": "信息", "success": "成功", "warning": "警告", - "critical": "Critical" + "critical": "批判的" }, "inbox": { "sourceTermix": "Termix", "openLink": "打开", "view": "查看", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "未读", + "deliveryFailed_one": "{{count}} 通道失败", + "deliveryFailed_other": "{{count}} 通道失败", + "markRead": "标记为已读", + "markUnread": "标记为未读", + "markAllRead": "全部标记为已读", "delete": "删除", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "删除已读提醒", + "cleared_one": "已删除 {{count}} 警报", + "cleared_other": "已删除 {{count}} 警报", "filterAll": "全部", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "未读", + "anySeverity": "任何严重程度", + "anySource": "任何来源", + "openAll": "在标签页中打开", + "empty": "目前尚未收到任何警报。", + "emptyUnread": "你们都跟上了。", + "loadMore": "加载更多" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "通道是警报可以发送到 Termix 外部的途径。发送规则决定哪些警报使用哪个通道。", + "add": "添加频道", + "edit": "编辑频道", + "test": "发送测试", + "testSent": "已发送测试警报", + "testFailed": "测试失败: {{error}}", + "deleteConfirm": "删除频道“{{name}}”?", + "deleted": "频道已删除", + "empty": "暂无频道。", "enabled": "已启用", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "该通道需要重新打开并保存才能发送消息。", "name": "名称", "nameRequired": "名称为必填项", "type": "类型", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "邮箱" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "电子邮件需要 SMTP 服务器,管理员可以在“警报”设置中进行设置。", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "获取每个警报的 JSON 正文。", + "method": "方法", + "headers": "标题", + "headersHint": "每行一个,格式为:名称:值。", "ntfyServer": "服务器 URL", "ntfyTopic": "主题", - "ntfyToken": "Access token (optional)", + "ntfyToken": "访问令牌(可选)", "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "discordHint": "在 Discord 的频道设置中,位于“集成”下。", + "discordUsername": "显示名称(可选)", + "discordAvatar": "头像网址(可选)", + "emailTo": "发送至", + "emailHint": "多个地址之间用逗号分隔。", + "privateNetwork": "允许使用专用网络地址", + "privateNetworkHint": "仅适用于管理员允许添加到私有端点列表中的主机。" }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "发送规则会将匹配的提醒发送到您的渠道。提醒也会始终保留在收件箱中。", + "add": "添加规则", + "edit": "编辑规则", + "empty": "目前还没有规则,所以提醒只会显示在收件箱中。", + "needChannel": "请先添加频道。", "enabled": "已启用", "name": "名称", "nameRequired": "名称为必填项", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "发送提醒", + "matchHint": "*适用于所有自动化操作。*适用于所有自动化操作,或某一特定类型。", + "minSeverity": "至少", + "channels": "发送至", + "channelRequired": "至少选择一个频道", + "deleteConfirm": "删除规则“{{name}}”?", + "everything": "一切", + "summary": "{{match}}、 {{severity}} 或更高,至 {{channels}}" }, "actions": { "cancel": "取消", @@ -163,9 +163,9 @@ }, "widget": { "name": "告警信息流", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "您最新的提醒,以及快速标记为已读的功能。", + "maxItems": "最大物品数", + "showRead": "显示已读提醒", "allClear": "一切正常", "loading": "加载中..." } diff --git a/plugins/alerts/locales/translated/zh_TW.json b/plugins/alerts/locales/translated/zh_TW.json index a5f743f1a..8ab841e7c 100644 --- a/plugins/alerts/locales/translated/zh_TW.json +++ b/plugins/alerts/locales/translated/zh_TW.json @@ -4,13 +4,13 @@ }, "permissions": { "use": { - "title": "Use alerts", - "description": "Get alerts in the inbox and send them to your own channels." + "title": "使用提醒", + "description": "在收件匣中接收提醒,並將其發送到您自己的頻道。" } }, "onboarding": { "feature": "警示", - "featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." + "featureDesc": "所有提醒都集中在一個收件匣中,您可以選擇將其發送到 Discord、ntfy、電子郵件或 webhook。" }, "settings": { "group": { @@ -19,97 +19,97 @@ }, "admin": { "announcements": { - "label": "Termix announcements", - "description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." + "label": "Termix公告", + "description": "將 Termix 團隊的新聞,例如安全通知和版本發布,發送到每個人的收件匣。" }, "retentionDays": { - "label": "Keep alerts for (days)", - "description": "Older alerts are removed from every inbox." + "label": "保持警報(天)", + "description": "所有收件匣中都會刪除較舊的提醒郵件。" }, "smtpHost": { - "label": "SMTP server", - "description": "Needed for email channels. Leave empty to turn email off.", + "label": "SMTP伺服器", + "description": "需要用於電子郵件管道。留空則關閉電子郵件功能。", "placeholder": "smtp.example.com" }, "smtpPort": { - "label": "SMTP port", - "description": "Usually 587 with STARTTLS or 465 with TLS." + "label": "SMTP連接埠", + "description": "通常使用 STARTTLS 的 587 連接埠或使用 TLS 的 465 連接埠。" }, "smtpSecure": { - "label": "Use TLS from the start", - "description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." + "label": "從一開始就使用TLS", + "description": "啟用 465 連接埠。保持 587 連接埠關閉,該連接埠會自動升級至 TLS。" }, "smtpUser": { - "label": "SMTP username", - "description": "Leave empty if the server does not need a login." + "label": "SMTP 使用者名稱", + "description": "如果伺服器不需要登錄,請留空。" }, "smtpPassword": { - "label": "SMTP password", - "description": "Stored encrypted." + "label": "SMTP密碼", + "description": "已加密儲存。" }, "smtpFrom": { - "label": "From address", - "description": "The sender alerts come from.", - "placeholder": "Termix " + "label": "來自地址", + "description": "寄件者警報來自。", + "placeholder": "終端 " } }, "user": { "popups": { - "label": "Alert popups", - "description": "Which new alerts pop up while you use Termix. They always land in the inbox.", - "all": "All alerts", - "warning": "Warnings and critical", - "critical": "Critical only", + "label": "彈出式警報", + "description": "使用Termix時會彈出哪些新提醒?它們都會發送到您的收件匣。", + "all": "所有警報", + "warning": "警告和關鍵訊息", + "critical": "僅限關鍵", "off": "取消全選" } } }, "sections": { - "inbox": "Inbox", + "inbox": "收件匣", "channels": "通道", - "rules": "Delivery rules" + "rules": "配送規則" }, "severity": { "info": "資訊", "success": "成功", "warning": "警告", - "critical": "Critical" + "critical": "批判的" }, "inbox": { "sourceTermix": "Termix", "openLink": "開啟", "view": "檢視", - "unread": "Unread", - "deliveryFailed_one": "{{count}} channel failed", - "deliveryFailed_other": "{{count}} channels failed", - "markRead": "Mark as read", - "markUnread": "Mark as unread", - "markAllRead": "Mark all as read", + "unread": "未讀", + "deliveryFailed_one": "{{count}} 頻道失敗", + "deliveryFailed_other": "{{count}} 頻道失敗", + "markRead": "標記為已讀", + "markUnread": "標記為未讀", + "markAllRead": "全部標記為已讀", "delete": "刪除", - "clearRead": "Delete read alerts", - "cleared_one": "Deleted {{count}} alert", - "cleared_other": "Deleted {{count}} alerts", + "clearRead": "刪除已讀提醒", + "cleared_one": "已刪除 {{count}} 警報", + "cleared_other": "已刪除 {{count}} 警報", "filterAll": "全選", - "filterUnread": "Unread", - "anySeverity": "Any severity", - "anySource": "Any source", - "openAll": "Open in a tab", - "empty": "No alerts yet.", - "emptyUnread": "You are all caught up.", - "loadMore": "Load more" + "filterUnread": "未讀", + "anySeverity": "任何嚴重程度", + "anySource": "任何來源", + "openAll": "在標籤頁中開啟", + "empty": "目前尚未收到任何警報。", + "emptyUnread": "你們都跟上了。", + "loadMore": "加載更多" }, "channels": { - "intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", - "add": "Add channel", - "edit": "Edit channel", - "test": "Send a test", - "testSent": "Test alert sent", - "testFailed": "Test failed: {{error}}", - "deleteConfirm": "Delete the channel \"{{name}}\"?", - "deleted": "Channel deleted", - "empty": "No channels yet.", + "intro": "通道是警報可以發送到 Termix 外部的途徑。發送規則決定哪些警報使用哪個通道。", + "add": "新增頻道", + "edit": "編輯頻道", + "test": "發送測試", + "testSent": "已發送測試警報", + "testFailed": "測試失敗: {{error}}", + "deleteConfirm": "刪除頻道「{{name}}」?", + "deleted": "頻道已刪除", + "empty": "暫無頻道。", "enabled": "已啟用", - "needsSave": "This channel needs to be opened and saved again before it can send.", + "needsSave": "該通道需要重新打開並保存才能發送訊息。", "name": "名稱", "nameRequired": "名稱為必填", "type": "類型", @@ -119,41 +119,41 @@ "discord": "Discord", "email": "電子郵件" }, - "emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", + "emailUnavailable": "電子郵件需要 SMTP 伺服器,管理員可以在「警報」設定中進行設定。", "webhookUrl": "URL", - "webhookHint": "Gets a JSON body for every alert.", - "method": "Method", - "headers": "Headers", - "headersHint": "One per line, like Name: value.", + "webhookHint": "取得每個警報的 JSON 正文。", + "method": "方法", + "headers": "標題", + "headersHint": "每行一個,格式為:名稱:值。", "ntfyServer": "伺服器 URL", "ntfyTopic": "主題", - "ntfyToken": "Access token (optional)", + "ntfyToken": "訪問令牌(可選)", "discordUrl": "Discord webhook URL", - "discordHint": "From the channel's settings in Discord, under Integrations.", - "discordUsername": "Display name (optional)", - "discordAvatar": "Avatar URL (optional)", - "emailTo": "Send to", - "emailHint": "Separate more than one address with commas.", - "privateNetwork": "Allow a private network address", - "privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." + "discordHint": "在 Discord 的頻道設定中,位於「整合」下方。", + "discordUsername": "顯示名稱(可選)", + "discordAvatar": "頭像網址(可選)", + "emailTo": "發送至", + "emailHint": "多個地址之間以逗號分隔。", + "privateNetwork": "允許使用專用網路位址", + "privateNetworkHint": "僅適用於管理員允許新增至私有端點清單中的主機。" }, "rules": { - "intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", - "add": "Add rule", - "edit": "Edit rule", - "empty": "No rules yet, so alerts only show up in the inbox.", - "needChannel": "Add a channel first.", + "intro": "發送規則會將符合的提醒傳送到您的頻道。提醒也會始終保留在收件匣中。", + "add": "新增規則", + "edit": "編輯規則", + "empty": "目前還沒有規則,所以提醒只會顯示在收件匣中。", + "needChannel": "請先新增頻道。", "enabled": "已啟用", "name": "名稱", "nameRequired": "名稱為必填", - "match": "Alerts to send", - "matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", - "minSeverity": "At least", - "channels": "Send to", - "channelRequired": "Pick at least one channel", - "deleteConfirm": "Delete the rule \"{{name}}\"?", - "everything": "Everything", - "summary": "{{match}}, {{severity}} or higher, to {{channels}}" + "match": "發送提醒", + "matchHint": "*適用於所有自動化操作。 *適用於所有自動化操作,或某一特定類型。", + "minSeverity": "至少", + "channels": "發送至", + "channelRequired": "至少選擇一個頻道", + "deleteConfirm": "刪除規則“{{name}}”?", + "everything": "一切", + "summary": "{{match}}、 {{severity}} 或更高,至 {{channels}}" }, "actions": { "cancel": "取消", @@ -163,9 +163,9 @@ }, "widget": { "name": "警報動態", - "description": "Your latest alerts, with a quick way to mark them read", - "maxItems": "Max items", - "showRead": "Show read alerts", + "description": "您最新的提醒,以及快速標記為已讀的功能。", + "maxItems": "最大物品數", + "showRead": "顯示已讀提醒", "allClear": "一切正常", "loading": "載入中..." } diff --git a/plugins/automations/locales/translated/bn_BD.json b/plugins/automations/locales/translated/bn_BD.json index b459b4ade..6310201f0 100644 --- a/plugins/automations/locales/translated/bn_BD.json +++ b/plugins/automations/locales/translated/bn_BD.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "অটোমেশনগুলি দেখুন", + "description": "স্বয়ংক্রিয় ব্যবস্থাগুলো এবং সেগুলোর ইতিহাস দেখুন।" }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "অটোমেশন তৈরি করুন", + "description": "নতুন অটোমেশন যোগ করুন।" }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "অটোমেশন সম্পাদনা করুন", + "description": "বিদ্যমান অটোমেশনগুলো পরিবর্তন করুন।" }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "অটোমেশনগুলি মুছুন", + "description": "অটোমেশনগুলো সরিয়ে ফেলুন।" }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "অটোমেশন চালান", + "description": "ম্যানুয়ালি অটোমেশনটি চালু করুন।" } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "অটোমেশন", + "tabAutomations": "অটোমেশন", + "tabRuns": "রান", + "tabChannels": "চ্যানেল", + "createAutomation": "নতুন অটোমেশন", + "backToAutomations": "অটোমেশনে ফিরে যান", + "createTitle": "নতুন অটোমেশন", + "editTitle": "সম্পাদনা অটোমেশন", + "empty": "এখনো কোনো অটোমেশন নেই। কোনো মেট্রিক, শিডিউল বা ইভেন্টের প্রতিক্রিয়ায় একটি তৈরি করুন।", + "emptyRuns": "এখনো কোনো রান হয়নি।", + "channelsHint": "অ্যালার্টে চ্যানেলগুলি সেট আপ করা আছে।", + "noChannelsHint": "অ্যালার্টটি সবসময় আপনার ইনবক্সে আসে। এটি অন্য কোথাও পাঠানোর জন্য অ্যালার্টে চ্যানেল যোগ করুন।", + "nameLabel": "নাম", + "namePlaceholder": "যেমন, /data পূর্ণ হয়ে গেলে তা পরিষ্কার করুন।", + "nameRequired": "নাম আবশ্যক", + "descriptionLabel": "বর্ণনা", + "descriptionPlaceholder": "ঐচ্ছিক বিবরণ", + "enabledLabel": "সক্ষম করা হয়েছে", + "concurrencyLabel": "যদি এটি ইতিমধ্যে চালু থাকে", + "concurrencyHint": "শেষ রান শেষ হওয়ার আগেই এটি আবার চালু হলে কী করতে হবে।", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "নতুন রানটি এড়িয়ে যান।", + "queue": "অপেক্ষা করো এবং পিছনে দৌড়াও", + "allow": "একসাথে দুটোই চালান" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", + "save": "সংরক্ষণ করুন", + "created": "অটোমেশন তৈরি করা হয়েছে", + "updated": "অটোমেশন সংরক্ষিত", + "deleted": "অটোমেশন মুছে ফেলা হয়েছে", + "deleteConfirm": "এই অটোমেশনটি ডিলিট করলে, এর রান হিস্ট্রিও ডিলিট হয়ে যাবে।", + "runNow": "এখনই দৌড়ান", + "testRun": "পরীক্ষামূলক চালনা", + "testRunHint": "প্রতিটি ধাপ চলে কিন্তু টার্মিক্সের বাইরের কোনো কিছু স্পর্শ করে না।", + "runStarted": "দৌড় শুরু হলো", + "runFinished": "দৌড় শেষ: {{status}}", + "trigger": "ট্রিগার", + "steps": "পদক্ষেপ", + "addStep": "ধাপ যোগ করুন", + "removeStep": "ধাপটি সরান", + "moveUp": "উপরে উঠুন", + "moveDown": "নিচে নামুন", + "noSteps": "এখনো কোনো ধাপ যোগ করা হয়নি। কী হওয়া উচিত তা জানাতে একটি ধাপ যোগ করুন।", + "webhookTokenTitle": "ওয়েবহুক ইউআরএল", + "webhookTokenDescription": "এটি একবারই দেখানো হবে। এখনই সংরক্ষণ করুন, পরে আর পুনরুদ্ধার করা যাবে না।", + "copy": "অনুলিপি", + "copied": "অনুলিপি করা হয়েছে", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "viewBuilder": "নির্মাতা", + "viewGraph": "গ্রাফ", + "lastRun": "শেষ দৌড়", + "never": "কখনো না", "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "stepOutput": "আউটপুট", + "stepError": "ত্রুটি", + "dryRunBadge": "পরীক্ষামূলক চালনা", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "ট্রিগারিং হোস্ট", + "host": "নির্দিষ্ট হোস্ট", + "fleet": "ফ্লিট", + "all": "সকল হোস্ট" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "মেট্রিক থ্রেশহোল্ড", + "host_status": "হোস্ট উপরে বা নিচে যায়", + "health_check": "স্বাস্থ্য পরীক্ষার পরিবর্তন", + "schedule": "একটি সময়সূচী অনুযায়ী", + "docker_event": "কন্টেইনার ইভেন্ট", + "internal_event": "টারমিক্স ইভেন্ট", + "webhook": "ইনকামিং ওয়েবহুক" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "একটি সতর্কতা পাঠান", + "http": "একটি URL কল করুন", + "run_snippet": "একটি স্নিপেট চালান", + "run_command": "একটি কমান্ড চালান", + "docker": "একটি কন্টেইনার নিয়ন্ত্রণ করুন", + "tunnel": "একটি টানেল নিয়ন্ত্রণ করুন", + "wol": "একজন হোস্টকে জাগান", + "wait": "অপেক্ষা করুন", + "set_var": "একটি ভেরিয়েবল সেট করুন", + "if": "যদি / অন্যথায়", + "run_automation": "আরেকটি অটোমেশন চালান", + "stop": "থামুন" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "দৌড়ানো", + "success": "সাফল্য", + "failed": "ব্যর্থ", + "timeout": "সময়সীমা শেষ", + "skipped": "বাদ দেওয়া হয়েছে", + "cancelled": "বাতিল করা হয়েছে" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", - "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "host": "হোস্ট", + "metric": "মেট্রিক", + "mount": "মাউন্ট পয়েন্ট", + "operator": "হয়", + "value": "মূল্য", + "forSeconds": "(সেকেন্ড) ধরে স্থায়ী", + "cooldown": "কুলডাউন (মিনিট)", + "cron": "ক্রোন এক্সপ্রেশন", + "intervalSeconds": "প্রতি (সেকেন্ডে)", + "timezone": "সময় অঞ্চল", + "timezoneServer": "সার্ভারের সময়", + "timezoneHint": "এই জোনে ক্রন টাইম পড়া হয়। এটি ইন্টারভাল শিডিউলের ক্ষেত্রে প্রযোজ্য নয়।", + "container": "কন্টেইনার", + "command": "আদেশ", + "url": "ইউআরএল", + "method": "পদ্ধতি", + "body": "শরীর", + "channels": "এছাড়াও পাঠান", + "title": "শিরোনাম", + "message": "বার্তা", + "snippet": "স্নিপেট", + "seconds": "সেকেন্ড", + "conditionLeftPlaceholder": "যাচাই করার মান", + "conditionRightPlaceholder": "তুলনা করুন", + "variableName": "ভেরিয়েবলের নাম", + "variableValue": "মূল্য", + "elevated": "sudo দিয়ে চালান", + "onError": "যদি এটি ব্যর্থ হয়", + "allowPrivateNetwork": "স্থানীয় নেটওয়ার্ক ঠিকানাগুলির অনুমতি দিন", + "allowPrivateNetworkHint": "আপনার ল্যানে সেলফ-হোস্টেড সার্ভিসের জন্য প্রয়োজন। অভ্যন্তরীণ অ্যাড্রেসে অনুরোধ পাঠানো প্রতিরোধ করতে এটি ডিফল্টরূপে বন্ধ থাকে।" }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "দৌড় থামাও", + "continue": "চালিয়ে যান" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "প্রয়োজন {{plugin}}", + "needsPluginHint": "প্রয়োজনীয় ফিচারটি পুনরায় উপলব্ধ না হওয়া পর্যন্ত এই অটোমেশনটি বাদ দেওয়া হয়।", + "offBadge": "বন্ধ", + "docsLink": "নথি দেখুন", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}সেকেন্ড আগে", + "minutes": "{{count}}মিনিট আগে", + "hours": "{{count}}ঘণ্টা আগে", + "days": "{{count}}দিন আগে" } } } }, "nav": { - "automations": "Automations" + "automations": "অটোমেশন" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "অটোমেশন", + "feature_automations_desc": "কোনো ঘটনা ঘটলে স্বয়ংক্রিয়ভাবে ধাপগুলো সম্পন্ন করুন এবং বিজ্ঞপ্তি পান।" }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "রক্ষণাবেক্ষণ", + "description": "কাজ চলাকালীন হোস্ট স্ট্যাটাস, হেলথ, মেট্রিক, কন্টেইনার এবং টানেল-ডিসকানেকশন অটোমেশনগুলো থামিয়ে রাখুন। মনিটরিং, ম্যানুয়াল রান এবং নির্ধারিত অটোমেশনগুলো চলতে থাকবে।", + "denied": "রক্ষণাবেক্ষণ দেখার অনুমতি আপনার নেই।", + "sharedReadOnly": "এই হোস্টটি আপনার সাথে শেয়ার করা হয়েছে। শুধুমাত্র এর মালিকই রক্ষণাবেক্ষণ পরিবর্তন করতে পারেন।", + "failed": "রক্ষণাবেক্ষণ হালনাগাদ করা যায়নি।", + "active": "রক্ষণাবেক্ষণ সক্রিয়", + "estimated": "আনুমানিক সমাপ্তি", + "noAutoEnd": "প্রাক্কলনটি রক্ষণাবেক্ষণের কাজ শেষ করে না। কাজ সম্পন্ন হলে স্পষ্টভাবে এটি শেষ করুন।", + "endConfirm": "এই হোস্টের জন্য রক্ষণাবেক্ষণ শেষ করে ইভেন্ট-ট্রিগারড অটোমেশন পুনরায় চালু করবেন?", + "confirmEnd": "শেষ নিশ্চিত করুন", + "cancel": "বাতিল করুন", + "end": "শেষ রক্ষণাবেক্ষণ", + "action": "পদক্ষেপ", + "startNow": "এখনই শুরু করুন", + "schedule": "পরবর্তী সময়ের জন্য সময়সূচী", + "reason": "কারণ", + "startUtc": "প্রথম শুরু (ইউটিসি)", + "repeat": "পুনরাবৃত্তি", + "once": "একবার", + "weekly": "সাপ্তাহিক", + "monthly": "মাসিক", + "utcHelp": "সারা বছর ধরে সময়সূচী UTC ব্যবহার করে। মাসিক সময়সূচীতে নির্বাচিত দিনটি ছাড়া মাসগুলো বাদ দেওয়া হয়। পরিকল্পিত কাজের সময়সীমা একে অপরের উপর পড়তে পারে না; নির্ধারিত সময়ের অতিরিক্ত রক্ষণাবেক্ষণ পরবর্তী সময়সীমাগুলোতেও চলতে থাকে।", + "duration": "আনুমানিক সময়কাল (মিনিট)", + "grace": "অতিরিক্ত সময় (মিনিট)", + "notify": "আনুমানিক হিসাব এবং অতিরিক্ত সময়সীমার পরেও যদি অফলাইন থাকেন, তবে একবার জানান।", + "addSchedule": "সময়সূচী যোগ করুন", + "schedules": "সময়সূচী", + "noSchedules": "কোনো রক্ষণাবেক্ষণের সময়সূচী নেই।", + "completed": "ইতিমধ্যে শুরু হয়ে গেছে", + "minutes_one": "{{count}} মিনিট", + "minutes_other": "{{count}} মিনিট", + "remove": "সময়সূচী অপসারণ করুন", + "loadFailed": "রক্ষণাবেক্ষণের অবস্থা রিফ্রেশ করা যায়নি। লোড না হওয়া পর্যন্ত পরিবর্তনগুলি নিষ্ক্রিয় থাকবে।", + "loading": "রক্ষণাবেক্ষণের অবস্থা লোড হচ্ছে…" } } diff --git a/plugins/automations/locales/translated/hi_IN.json b/plugins/automations/locales/translated/hi_IN.json index e4c13111a..e3949683f 100644 --- a/plugins/automations/locales/translated/hi_IN.json +++ b/plugins/automations/locales/translated/hi_IN.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "स्वचालित सेवाओं को देखें", + "description": "स्वचालित प्रक्रियाओं और उनके इतिहास को देखें।" }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "स्वचालित प्रणालियाँ बनाएँ", + "description": "नई स्वचालित प्रणालियाँ जोड़ें।" }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "स्वचालित संपादन", + "description": "मौजूदा स्वचालित प्रक्रियाओं में बदलाव करें।" }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "स्वचालित सेवाओं को हटाएं", + "description": "स्वचालित प्रक्रियाओं को हटा दें।" }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "स्वचालित संचालन चलाएँ", + "description": "किसी स्वचालित प्रक्रिया को मैन्युअल रूप से शुरू करें।" } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "स्वचालन", + "tabAutomations": "स्वचालन", + "tabRuns": "दौड़ें", "tabChannels": "चैनल", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "नया स्वचालन", + "backToAutomations": "स्वचालन पर वापस जाएँ", + "createTitle": "नया स्वचालन", + "editTitle": "संपादन स्वचालन", + "empty": "अभी तक कोई ऑटोमेशन नहीं है। किसी मेट्रिक, शेड्यूल या इवेंट के आधार पर प्रतिक्रिया देने के लिए एक ऑटोमेशन बनाएं।", + "emptyRuns": "अभी तक कोई रन नहीं बना है।", + "channelsHint": "अलर्ट में चैनल सेट किए जाते हैं।", + "noChannelsHint": "यह अलर्ट हमेशा आपके इनबॉक्स में आता है। इसे कहीं और भेजने के लिए अलर्ट में चैनल जोड़ें।", "nameLabel": "नाम", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "उदाहरण के लिए, जब /data भर जाए तो उसे साफ़ कर दें।", "nameRequired": "नाम आवश्यक है", "descriptionLabel": "विवरण", "descriptionPlaceholder": "वैकल्पिक विवरण", "enabledLabel": "सक्षम", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "यदि यह पहले से चल रहा है", + "concurrencyHint": "पिछली बार रन पूरा होने से पहले ही अगर यह समस्या दोबारा उत्पन्न हो जाए तो क्या करें।", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "नए रन को छोड़ दें", + "queue": "प्रतीक्षा करो और उसके पीछे दौड़ो", + "allow": "दोनों को एक साथ चलाएं" }, "save": "सहेजें", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "स्वचालन द्वारा निर्मित", + "updated": "स्वचालन ने बचत की", + "deleted": "स्वचालित रूप से हटा दिया गया", + "deleteConfirm": "इस ऑटोमेशन को डिलीट करने पर, इसका रन हिस्ट्री भी डिलीट हो जाएगा।", + "runNow": "अब दौड़े", + "testRun": "परीक्षण के लिए चलाना", + "testRunHint": "यह हर चरण में दौड़ता है लेकिन टर्मिक्स के बाहर किसी भी चीज को नहीं छूता है।", + "runStarted": "दौड़ शुरू हो गई", + "runFinished": "रन समाप्त: {{status}}", "trigger": "ट्रिगर", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "steps": "चरण", + "addStep": "चरण जोड़ें", + "removeStep": "चरण हटाएँ", + "moveUp": "बढ़ाना", + "moveDown": "नीचे की ओर", + "noSteps": "अभी तक कोई चरण निर्धारित नहीं हैं। कृपया एक चरण जोड़कर बताएं कि आगे क्या होना चाहिए।", + "webhookTokenTitle": "वेबहुक यूआरएल", + "webhookTokenDescription": "यह केवल एक बार दिखाया जाएगा। इसे अभी सहेज लें, बाद में इसे पुनः प्राप्त नहीं किया जा सकेगा।", "copy": "कॉपी", "copied": "कॉपी किया गया", - "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewJson": "जेएन", + "viewBuilder": "निर्माता", + "viewGraph": "ग्राफ़", + "lastRun": "आखरी बार", "never": "कभी नहीं", "duration": "{{seconds}}s", "stepOutput": "आउटपुट", "stepError": "त्रुटि", - "dryRunBadge": "Test run", + "dryRunBadge": "परीक्षण के लिए चलाना", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "ट्रिगरिंग होस्ट", + "host": "विशिष्ट मेज़बान", + "fleet": "बेड़ा", "all": "सभी होस्ट" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "मीट्रिक सीमा", + "host_status": "होस्ट ऊपर या नीचे जाता है", + "health_check": "स्वास्थ्य जांच में बदलाव", + "schedule": "एक निर्धारित कार्यक्रम के अनुसार", + "docker_event": "कंटेनर घटना", + "internal_event": "टर्मिक्स घटना", + "webhook": "इनकमिंग वेबहुक" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "अलर्ट भेजें", + "http": "किसी URL को कॉल करें", + "run_snippet": "एक स्निपेट चलाएँ", + "run_command": "एक कमांड चलाएँ", + "docker": "एक कंटेनर को नियंत्रित करें", + "tunnel": "एक सुरंग को नियंत्रित करें", + "wol": "किसी मेजबान को जगाओ", + "wait": "इंतज़ार", + "set_var": "एक चर सेट करें", + "if": "यदि / अन्यथा", + "run_automation": "एक और ऑटोमेशन चलाएँ", "stop": "स्टॉप" }, "statuses": { "running": "चालू", "success": "सफल", "failed": "असफल", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "समय समााप्त", + "skipped": "छोड़ा गया", + "cancelled": "रद्द कर दिया गया" }, "fields": { "host": "होस्ट", "metric": "मीट्रिक", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "माउंट पॉइंट", + "operator": "है", + "value": "कीमत", + "forSeconds": "(सेकंड) तक कायम रहा", "cooldown": "कूलडाउन (मिनट)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "क्रोन अभिव्यक्ति", + "intervalSeconds": "हर (सेकंड)", + "timezone": "समय क्षेत्र", + "timezoneServer": "सर्वर समय", + "timezoneHint": "इस ज़ोन में क्रॉन टाइम पढ़े जाते हैं। यह इंटरवल शेड्यूल पर लागू नहीं होता है।", + "container": "पात्र", "command": "कमांड", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "तरीका", + "body": "शरीर", + "channels": "इसे भी भेजें", "title": "शीर्षक", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "संदेश", + "snippet": "टुकड़ा", + "seconds": "सेकंड", + "conditionLeftPlaceholder": "जाँच करने के लिए मान", + "conditionRightPlaceholder": "तुलना करें", + "variableName": "चर का नाम", + "variableValue": "कीमत", + "elevated": "sudo के साथ चलाएँ", + "onError": "यदि यह विफल हो जाता है", + "allowPrivateNetwork": "स्थानीय नेटवर्क पतों की अनुमति दें", + "allowPrivateNetworkHint": "आपके लोकल एरिया नेटवर्क (LAN) पर सेल्फ-होस्टेड सेवा के लिए आवश्यक। आंतरिक पतों पर अनुरोधों को रोकने के लिए डिफ़ॉल्ट रूप से बंद।" }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "दौड़ रोको", + "continue": "जारी रखो" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "आवश्यकताएँ {{plugin}}", + "needsPluginHint": "यह स्वचालन तब तक स्थगित रहेगा जब तक कि आवश्यक सुविधा पुनः उपलब्ध न हो जाए।", "offBadge": "बंद", "docsLink": "दस्तावेज़ देखें", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}सेकंड पहले", "minutes": "{{count}}m पहले", "hours": "{{count}}h पहले", "days": "{{count}}d पहले" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "स्वचालन" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "स्वचालन", + "feature_automations_desc": "कुछ घटित होने पर चरणों को स्वचालित रूप से चलाएं और सूचना प्राप्त करें।" }, "maintenance": { "title": "रखरखाव", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "कार्य प्रगति पर रहते हुए होस्ट की स्थिति, स्वास्थ्य, मीट्रिक, कंटेनर और टनल-डिस्कनेक्शन से संबंधित स्वचालित प्रक्रियाओं को रोकें। मॉनिटरिंग, मैन्युअल रन और निर्धारित स्वचालित प्रक्रियाएं जारी रहेंगी।", + "denied": "आपको रखरखाव कार्य देखने की अनुमति नहीं है।", + "sharedReadOnly": "यह होस्ट आपके साथ साझा किया गया है। केवल इसका स्वामी ही रखरखाव में बदलाव कर सकता है।", + "failed": "रखरखाव अपडेट नहीं हो सका।", + "active": "रखरखाव सक्रिय है", + "estimated": "अनुमानित समापन", + "noAutoEnd": "यह अनुमान रखरखाव कार्य की समाप्ति का संकेत नहीं है। कार्य पूर्ण होने पर इसे स्पष्ट रूप से समाप्त करें।", + "endConfirm": "इस होस्ट के लिए रखरखाव समाप्त करें और इवेंट-ट्रिगर ऑटोमेशन को पुनः आरंभ करें?", + "confirmEnd": "समाप्ति की पुष्टि करें", "cancel": "रद्द करें", - "end": "End maintenance", + "end": "रखरखाव समाप्त करें", "action": "क्रिया", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "शुरू करें", + "schedule": "बाद के लिए शेड्यूल करें", + "reason": "कारण", + "startUtc": "पहली शुरुआत (UTC)", + "repeat": "दोहराना", + "once": "एक बार", + "weekly": "साप्ताहिक", + "monthly": "महीने के", + "utcHelp": "शेड्यूल पूरे वर्ष UTC समय का उपयोग करते हैं। मासिक शेड्यूल चयनित दिन वाले महीनों को छोड़ देते हैं। नियोजित समय सीमाएँ एक-दूसरे से ओवरलैप नहीं हो सकतीं; निर्धारित रखरखाव कार्य निर्धारित समय सीमाओं में भी जारी रहता है।", + "duration": "अनुमानित अवधि (मिनटों में)", + "grace": "अनुग्रह अवधि (मिनटों में)", + "notify": "अनुमान और अनुग्रह अवधि के बाद भी ऑफ़लाइन रहने पर एक बार सूचित करें", + "addSchedule": "अनुसूची जोड़ें", + "schedules": "अनुसूचियों", + "noSchedules": "कोई रखरखाव कार्यक्रम नहीं।", + "completed": "पहले ही शुरू हो चुका है", + "minutes_one": "{{count}} मिनट", + "minutes_other": "{{count}} मिनट", + "remove": "अनुसूची हटाएँ", + "loadFailed": "रखरखाव की स्थिति को रीफ़्रेश नहीं किया जा सका। जब तक यह लोड नहीं हो जाता, तब तक परिवर्तन अक्षम रहेंगे।", + "loading": "रखरखाव की स्थिति लोड हो रही है…" } } diff --git a/plugins/automations/locales/translated/id_ID.json b/plugins/automations/locales/translated/id_ID.json index 3e5f8c65e..5936ff9bc 100644 --- a/plugins/automations/locales/translated/id_ID.json +++ b/plugins/automations/locales/translated/id_ID.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Lihat otomatisasi", + "description": "Lihat otomatisasi dan riwayatnya." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Buat otomatisasi", + "description": "Tambahkan otomatisasi baru." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Edit otomatisasi", + "description": "Ubah otomatisasi yang ada." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Hapus otomatisasi", + "description": "Hapus otomatisasi." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Jalankan otomatisasi", + "description": "Memicu otomatisasi secara manual." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "Otomatisasi", + "tabAutomations": "Otomatisasi", + "tabRuns": "Lari", + "tabChannels": "Saluran", + "createAutomation": "Otomatisasi Baru", + "backToAutomations": "Kembali ke Otomatisasi", + "createTitle": "Otomatisasi Baru", + "editTitle": "Edit Otomatisasi", + "empty": "Belum ada otomatisasi. Buat satu untuk bereaksi terhadap metrik, jadwal, atau peristiwa.", + "emptyRuns": "Belum ada percobaan lari.", + "channelsHint": "Saluran diatur dalam Peringatan.", + "noChannelsHint": "Notifikasi selalu masuk ke kotak masuk Anda. Tambahkan saluran di Notifikasi untuk mengirimkannya ke tempat lain juga.", + "nameLabel": "Nama", + "namePlaceholder": "misalnya, Bersihkan /data saat sudah penuh", + "nameRequired": "Nama wajib diisi.", + "descriptionLabel": "Keterangan", + "descriptionPlaceholder": "Deskripsi opsional", + "enabledLabel": "Diaktifkan", + "concurrencyLabel": "Jika sudah berjalan", + "concurrencyHint": "Apa yang harus dilakukan jika ini terpicu lagi sebelum proses terakhir selesai.", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Lewati lari baru", + "queue": "Tunggu dan lari setelahnya", + "allow": "Jalankan keduanya sekaligus" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", + "save": "Menyimpan", + "created": "Otomatisasi dibuat", + "updated": "Otomatisasi tersimpan", + "deleted": "Otomatisasi dihapus", + "deleteConfirm": "Hapus otomatisasi ini? Riwayat eksekusinya juga akan terhapus.", + "runNow": "Lari sekarang", + "testRun": "Uji coba", + "testRunHint": "Berjalan di setiap langkah tetapi tidak menyentuh apa pun di luar Termix.", + "runStarted": "Lari dimulai", + "runFinished": "Eksekusi selesai: {{status}}", + "trigger": "Pemicu", + "steps": "Tangga", + "addStep": "Tambahkan langkah", + "removeStep": "Hapus langkah", + "moveUp": "Naikkan", + "moveDown": "Turun ke bawah", + "noSteps": "Belum ada langkah. Tambahkan satu langkah untuk menjelaskan apa yang seharusnya terjadi.", + "webhookTokenTitle": "URL Webhook", + "webhookTokenDescription": "Ini hanya ditampilkan sekali. Simpan sekarang, karena tidak dapat diambil kembali nanti.", + "copy": "Menyalin", + "copied": "Disalin", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "viewBuilder": "Pembangun", + "viewGraph": "Grafik", + "lastRun": "Lari terakhir", + "never": "Tidak pernah", "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "stepOutput": "Keluaran", + "stepError": "Kesalahan", + "dryRunBadge": "Uji coba", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Host pemicu", + "host": "Host spesifik", + "fleet": "Armada", + "all": "Semua tuan rumah" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Ambang batas metrik", + "host_status": "Pembawa acara naik atau turun", + "health_check": "Perubahan pemeriksaan kesehatan", + "schedule": "Sesuai jadwal", + "docker_event": "Acara kontainer", + "internal_event": "Acara Termix", + "webhook": "Webhook masuk" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "Kirim peringatan", + "http": "Memanggil URL", + "run_snippet": "Jalankan cuplikan kode", + "run_command": "Jalankan perintah", + "docker": "Mengendalikan sebuah kontainer", + "tunnel": "Mengendalikan terowongan", + "wol": "Bangunkan tuan rumah", + "wait": "Tunggu", + "set_var": "Tetapkan sebuah variabel", + "if": "Jika/sebaliknya", + "run_automation": "Jalankan otomatisasi lainnya", + "stop": "Berhenti" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "Berlari", + "success": "Kesuksesan", + "failed": "Gagal", + "timeout": "Waktu habis", + "skipped": "Dilewati", + "cancelled": "Dibatalkan" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", + "host": "Tuan rumah", + "metric": "Metrik", + "mount": "Titik pemasangan", + "operator": "Adalah", + "value": "Nilai", + "forSeconds": "Berlangsung selama (detik)", + "cooldown": "Waktu pendinginan (menit)", + "cron": "Ekspresi Cron", + "intervalSeconds": "Setiap (detik)", + "timezone": "Zona waktu", + "timezoneServer": "Waktu server", + "timezoneHint": "Waktu Cron dibaca di zona ini. Tidak berlaku untuk jadwal interval.", + "container": "Wadah", + "command": "Memerintah", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "method": "Metode", + "body": "Tubuh", + "channels": "Kirim juga ke", + "title": "Judul", + "message": "Pesan", + "snippet": "Potongan", + "seconds": "Detik", + "conditionLeftPlaceholder": "Nilai yang perlu diperiksa", + "conditionRightPlaceholder": "Bandingkan dengan", + "variableName": "Nama variabel", + "variableValue": "Nilai", + "elevated": "Jalankan dengan sudo", + "onError": "Jika ini gagal", + "allowPrivateNetwork": "Izinkan alamat jaringan lokal", + "allowPrivateNetworkHint": "Diperlukan untuk layanan yang dihosting sendiri di LAN Anda. Secara default dinonaktifkan untuk mencegah permintaan ke alamat internal." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Hentikan larinya", + "continue": "Melanjutkan" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "Membutuhkan {{plugin}}", + "needsPluginHint": "Otomatisasi ini dilewati hingga fitur yang dibutuhkan tersedia kembali.", + "offBadge": "Mati", + "docsLink": "Lihat dokumen", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}detik yang lalu", "minutes": "{{count}} menit lalu", "hours": "{{count}} jam lalu", "days": "{{count}} detik lalu" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "Otomatisasi" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Otomatisasi", + "feature_automations_desc": "Jalankan langkah-langkah secara otomatis saat sesuatu terjadi, dan dapatkan notifikasi." }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "Pemeliharaan", + "description": "Jeda status host, kesehatan, metrik, kontainer, dan otomatisasi pemutusan koneksi terowongan saat pekerjaan sedang berlangsung. Pemantauan, eksekusi manual, dan otomatisasi terjadwal tetap berjalan.", + "denied": "Anda tidak memiliki izin untuk melihat pemeliharaan.", + "sharedReadOnly": "Host ini dibagikan kepada Anda. Hanya pemiliknya yang dapat mengubah pengaturan pemeliharaan.", + "failed": "Informasi pemeliharaan tidak dapat diperbarui.", + "active": "Pemeliharaan aktif", + "estimated": "Perkiraan penyelesaian", + "noAutoEnd": "Estimasi tersebut tidak mengakhiri pemeliharaan. Akhiri secara eksplisit ketika pekerjaan selesai.", + "endConfirm": "Akhiri pemeliharaan dan lanjutkan otomatisasi yang dipicu oleh peristiwa untuk host ini?", + "confirmEnd": "Konfirmasi akhir", + "cancel": "Membatalkan", + "end": "Akhir pemeliharaan", + "action": "Tindakan", + "startNow": "Mulai sekarang", + "schedule": "Jadwal untuk nanti", + "reason": "Alasan", + "startUtc": "Mulai pertama (UTC)", + "repeat": "Mengulang", + "once": "Sekali", + "weekly": "Mingguan", + "monthly": "Bulanan", + "utcHelp": "Jadwal menggunakan UTC sepanjang tahun. Jadwal bulanan melewatkan bulan-bulan yang tidak memiliki hari yang dipilih. Jendela waktu yang direncanakan tidak dapat tumpang tindih; pemeliharaan yang molor berlanjut ke jendela waktu berikutnya.", + "duration": "Perkiraan durasi (menit)", + "grace": "Masa tenggang (menit)", + "notify": "Beri tahu sekali jika masih offline setelah perkiraan ditambah masa tenggang.", + "addSchedule": "Tambahkan jadwal", + "schedules": "Jadwal", + "noSchedules": "Tidak ada jadwal perawatan.", + "completed": "Sudah dimulai", + "minutes_one": "{{count}} menit", + "minutes_other": "{{count}} menit", + "remove": "Hapus jadwal", + "loadFailed": "Status pemeliharaan tidak dapat diperbarui. Perubahan dinonaktifkan hingga status dapat dimuat.", + "loading": "Memuat status pemeliharaan…" } } diff --git a/plugins/automations/locales/translated/no_NO.json b/plugins/automations/locales/translated/no_NO.json index c74f6f289..d4f9d001c 100644 --- a/plugins/automations/locales/translated/no_NO.json +++ b/plugins/automations/locales/translated/no_NO.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Se automatiseringer", + "description": "Se automatiseringene og historikken deres." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Opprett automatiseringer", + "description": "Legg til nye automatiseringer." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Rediger automatiseringer", + "description": "Endre eksisterende automatiseringer." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Slett automatiseringer", + "description": "Fjern automatiseringer." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Kjør automatiseringer", + "description": "Utløs en automatisering manuelt." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "title": "Automatiseringer", + "tabAutomations": "Automatiseringer", + "tabRuns": "Løper", + "tabChannels": "Kanaler", + "createAutomation": "Ny automatisering", + "backToAutomations": "Tilbake til automatiseringer", + "createTitle": "Ny automatisering", + "editTitle": "Rediger automatisering", + "empty": "Ingen automatiseringer ennå. Opprett en for å reagere på en beregning, en tidsplan eller en hendelse.", + "emptyRuns": "Ingen løp ennå.", + "channelsHint": "Kanaler er satt opp i varsler", + "noChannelsHint": "Varselet går alltid til innboksen din. Legg til kanaler i varsler for å også sende det et annet sted.", "nameLabel": "Navn", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "f.eks. Rydd opp i /data når den fylles", "nameRequired": "Navn er påkrevd", "descriptionLabel": "Beskrivelse", "descriptionPlaceholder": "Valgfri beskrivelse", "enabledLabel": "Aktivert", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "Hvis den allerede kjører", + "concurrencyHint": "Hva skal man gjøre når dette utløses igjen før siste kjøring er ferdig?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Hopp over den nye kjøringen", + "queue": "Vent og løp etter", + "allow": "Kjør begge samtidig" }, "save": "Lagre", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "created": "Automatisering opprettet", + "updated": "Automatisering lagret", + "deleted": "Automatisering slettet", + "deleteConfirm": "Vil du slette denne automatiseringen? Kjørehistorikken slettes også.", + "runNow": "Løp nå", + "testRun": "Testkjøring", + "testRunHint": "Kjører hvert trinn, men berører ikke noe utenfor Termix.", + "runStarted": "Løpet startet", + "runFinished": "Kjøring fullført: {{status}}", + "trigger": "Avtrekker", + "steps": "Trinn", + "addStep": "Legg til trinn", + "removeStep": "Fjern trinn", + "moveUp": "Flytt opp", + "moveDown": "Flytt ned", + "noSteps": "Ingen trinn ennå. Legg til ett for å si hva som skal skje.", + "webhookTokenTitle": "Webhook-URL", + "webhookTokenDescription": "Dette vises én gang. Lagre det nå, det kan ikke hentes frem senere.", "copy": "Kopier", - "copied": "Copied", + "copied": "Kopiert", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "viewBuilder": "Bygger", + "viewGraph": "Kurve", + "lastRun": "Siste løp", + "never": "Aldri", "duration": "{{seconds}}s", - "stepOutput": "Output", + "stepOutput": "Produksjon", "stepError": "Feil", - "dryRunBadge": "Test run", + "dryRunBadge": "Testkjøring", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Utløsende vert", + "host": "Spesifikk vert", + "fleet": "Flåte", + "all": "Alle verter" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Metrisk terskel", + "host_status": "Verten går opp eller ned", + "health_check": "Endringer i helsesjekken", + "schedule": "På en tidsplan", + "docker_event": "Containerhendelse", + "internal_event": "Termix-arrangementet", + "webhook": "Innkommende webhook" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "Send et varsel", + "http": "Kall en URL", + "run_snippet": "Kjør et utdrag", + "run_command": "Kjør en kommando", + "docker": "Kontroller en container", + "tunnel": "Kontroller en tunnel", + "wol": "Vekk en vert", + "wait": "Vente", + "set_var": "Angi en variabel", + "if": "Hvis / ellers", + "run_automation": "Kjør en annen automatisering", "stop": "Stopp" }, "statuses": { "running": "Kjører", "success": "Suksess", "failed": "Mislyktes", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "Tidsavbrutt", + "skipped": "Hoppet over", + "cancelled": "Avlyst" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", + "host": "Vert", + "metric": "Metrisk", + "mount": "Monteringspunkt", + "operator": "Er", + "value": "Verdi", + "forSeconds": "Vedvarende i (sekunder)", + "cooldown": "Nedkjølingstid (minutter)", + "cron": "Cron-uttrykk", + "intervalSeconds": "Hvert (sekund)", + "timezone": "Tidssone", + "timezoneServer": "Servertid", + "timezoneHint": "Cron-tider leses i denne sonen. Gjelder ikke for intervallplaner.", "container": "Container", "command": "Kommando", - "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "url": "URL-adresse", + "method": "Metode", + "body": "Kropp", + "channels": "Send også til", + "title": "Tittel", + "message": "Beskjed", + "snippet": "Utdrag", + "seconds": "Sekunder", + "conditionLeftPlaceholder": "Verdi å sjekke", + "conditionRightPlaceholder": "Sammenlign mot", + "variableName": "Variabelnavn", + "variableValue": "Verdi", + "elevated": "Kjør med sudo", + "onError": "Hvis dette mislykkes", + "allowPrivateNetwork": "Tillat lokale nettverksadresser", + "allowPrivateNetworkHint": "Nødvendig for en selvhostet tjeneste på LAN-et ditt. Av som standard for å forhindre forespørsler til interne adresser." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Stopp løpet", + "continue": "Fortsett" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "Trenger {{plugin}}", + "needsPluginHint": "Denne automatiseringen hoppes over inntil funksjonen den trenger er tilgjengelig igjen.", + "offBadge": "Av", + "docsLink": "Vis dokumenter", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "For {{count}}sekunder siden", + "minutes": "For {{count}}minutter siden", + "hours": "for {{count}}t siden", + "days": "for {{count}}dager siden" } } } }, "nav": { - "automations": "Automations" + "automations": "Automatiseringer" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Automatiseringer", + "feature_automations_desc": "Kjør trinnene automatisk når noe skjer, og bli varslet." }, "maintenance": { "title": "Vedlikehold", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Sett automatiseringer for vertsstatus, helse, målinger, containere og tunnelfrakobling på pause mens arbeidet pågår. Overvåking, manuelle kjøringer og planlagte automatiseringer fortsetter.", + "denied": "Du har ikke tillatelse til å se vedlikehold.", + "sharedReadOnly": "Denne verten ble delt med deg. Bare eieren kan endre vedlikeholdet.", + "failed": "Vedlikehold kunne ikke oppdateres.", + "active": "Vedlikehold aktivt", + "estimated": "Forventet ferdigstillelse", + "noAutoEnd": "Estimatet avslutter ikke vedlikeholdet. Avslutt det eksplisitt når arbeidet er fullført.", + "endConfirm": "Vil du avslutte vedlikehold og gjenoppta hendelsesutløste automatiseringer for denne verten?", + "confirmEnd": "Bekreft slutten", "cancel": "Avbryt", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "end": "Avslutt vedlikehold", + "action": "Handling", + "startNow": "Start nå", + "schedule": "Planlegg for senere", + "reason": "Grunn", + "startUtc": "Første start (UTC)", + "repeat": "Gjenta", + "once": "En gang", + "weekly": "Ukentlig", + "monthly": "Månedlig", + "utcHelp": "Tidsplaner bruker UTC gjennom hele året. Månedlige tidsplaner hopper over måneder uten den valgte dagen. Planlagte vinduer kan ikke overlappe; overstyrt vedlikehold fortsetter på tvers av senere vinduer.", + "duration": "Estimert varighet (minutter)", + "grace": "Frist (minutter)", + "notify": "Varsle én gang hvis du fortsatt er frakoblet etter estimatet pluss respitperioden", + "addSchedule": "Legg til timeplan", + "schedules": "Tidsplaner", + "noSchedules": "Ingen vedlikeholdsplaner.", + "completed": "Allerede startet", + "minutes_one": "{{count}} minutt", + "minutes_other": "{{count}} minutter", + "remove": "Fjern tidsplan", + "loadFailed": "Kunne ikke oppdatere vedlikeholdsstatusen. Endringer er deaktivert inntil den kan lastes inn.", + "loading": "Laster inn vedlikeholdsstatus…" } } diff --git a/plugins/automations/locales/translated/pl_PL.json b/plugins/automations/locales/translated/pl_PL.json index 2a06a9864..36a9987c5 100644 --- a/plugins/automations/locales/translated/pl_PL.json +++ b/plugins/automations/locales/translated/pl_PL.json @@ -1,24 +1,24 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Wyświetl automatyzacje", + "description": "Zobacz automatyzacje i ich historię." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Twórz automatyzacje", + "description": "Dodaj nowe automatyzacje." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Edytuj automatyzacje", + "description": "Zmień istniejące automatyzacje." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Usuń automatyzacje", + "description": "Usuń automatyzacje." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Uruchom automatyzacje", + "description": "Uruchom automatyzację ręcznie." } }, "newUi": { @@ -34,8 +34,8 @@ "editTitle": "Edytuj automatyzację", "empty": "Brak jeszcze automatyzacji. Utwórz automatyzację, która będzie reagować na metrykę, harmonogram lub zdarzenie.", "emptyRuns": "Brak uruchomień.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "channelsHint": "Kanały są skonfigurowane w Alertach", + "noChannelsHint": "Alert zawsze trafia do Twojej skrzynki odbiorczej. Dodaj kanały w Alertach, aby wysłać go również gdzie indziej.", "nameLabel": "Nazwa", "namePlaceholder": "np. Wyczyść /data, gdy się zapełni", "nameRequired": "Nazwa jest wymagana", @@ -95,7 +95,7 @@ "webhook": "Przychodzący webhook" }, "stepTypes": { - "notify": "Send an alert", + "notify": "Wyślij alert", "http": "Wywołaj adres URL", "run_snippet": "Uruchom snippet", "run_command": "Uruchom polecenie", @@ -134,7 +134,7 @@ "url": "Adres URL", "method": "Metoda", "body": "Treść", - "channels": "Also send to", + "channels": "Wyślij również do", "title": "Tytuł", "message": "Wiadomość", "snippet": "Snippet", @@ -152,12 +152,12 @@ "stop": "Zatrzymaj uruchomienie", "continue": "Kontynuuj" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "Potrzeba {{plugin}}", + "needsPluginHint": "Ta automatyzacja jest pomijana do momentu, aż potrzebna funkcja stanie się ponownie dostępna.", "offBadge": "Wył.", "docsLink": "Zobacz dokumentację", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s temu", "minutes": "{{count}} min temu", "hours": "{{count}} godz. temu", "days": "{{count}} dni temu" @@ -174,38 +174,38 @@ }, "maintenance": { "title": "Konserwacja", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Wstrzymaj automatyzację stanu hosta, kondycji, metryk, kontenerów i rozłączania tunelu na czas trwania pracy. Monitorowanie, ręczne uruchomienia i zaplanowane automatyzacje będą kontynuowane.", + "denied": "Nie masz uprawnień do przeglądania informacji o konserwacji.", + "sharedReadOnly": "Ten host został Ci udostępniony. Tylko jego właściciel może zmienić stan konserwacji.", + "failed": "Nie udało się zaktualizować konserwacji.", + "active": "Konserwacja aktywna", + "estimated": "Szacowany termin ukończenia", + "noAutoEnd": "Kosztorys nie kończy prac konserwacyjnych. Należy go jednoznacznie zakończyć po zakończeniu prac.", + "endConfirm": "Zakończyć konserwację i wznowić automatyzacje wyzwalane zdarzeniami dla tego hosta?", + "confirmEnd": "Potwierdź koniec", "cancel": "Anuluj", - "end": "End maintenance", + "end": "Zakończ konserwację", "action": "Akcja", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", + "startNow": "Zacznij teraz", + "schedule": "Zaplanuj na później", + "reason": "Powód", + "startUtc": "Pierwsze uruchomienie (UTC)", "repeat": "Powtórz", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "once": "Raz", + "weekly": "Tygodnik", + "monthly": "Miesięczny", + "utcHelp": "Harmonogramy korzystają z czasu UTC przez cały rok. Harmonogramy miesięczne pomijają miesiące bez wybranego dnia. Zaplanowane okna czasowe nie mogą się na siebie nakładać; nadwyżki konserwacyjne trwają również w kolejnych oknach czasowych.", + "duration": "Szacowany czas trwania (minuty)", + "grace": "Okres karencji (minuty)", + "notify": "Powiadom raz, jeśli po upływie okresu szacunkowego i okresu karencji nadal będziesz offline", + "addSchedule": "Dodaj harmonogram", + "schedules": "Harmonogramy", + "noSchedules": "Brak harmonogramów konserwacji.", + "completed": "Już zaczęto", + "minutes_one": "{{count}} minuta", + "minutes_other": "{{count}} minut", + "remove": "Usuń harmonogram", + "loadFailed": "Nie można odświeżyć statusu konserwacji. Zmiany są zablokowane do czasu ich załadowania.", + "loading": "Ładowanie statusu konserwacji…" } } diff --git a/plugins/automations/locales/translated/pt_BR.json b/plugins/automations/locales/translated/pt_BR.json index 5489a735d..2c1c52ae5 100644 --- a/plugins/automations/locales/translated/pt_BR.json +++ b/plugins/automations/locales/translated/pt_BR.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Visualizar automações", + "description": "Veja as automações e seu histórico." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Criar automações", + "description": "Adicionar novas automações." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Editar automações", + "description": "Alterar as automações existentes." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Excluir automações", + "description": "Remover automações." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Executar automações", + "description": "Acione uma automação manualmente." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "Automações", + "tabAutomations": "Automações", + "tabRuns": "Corridas", + "tabChannels": "Canais", + "createAutomation": "Nova Automação", + "backToAutomations": "Voltar para Automações", + "createTitle": "Nova Automação", + "editTitle": "Editar Automação", + "empty": "Ainda não há automações. Crie uma para reagir a uma métrica, a um agendamento ou a um evento.", + "emptyRuns": "Ainda não houve nenhuma corrida.", + "channelsHint": "Os canais são configurados em Alertas.", + "noChannelsHint": "O alerta sempre será enviado para sua caixa de entrada. Adicione canais em Alertas para enviá-lo também para outros locais.", + "nameLabel": "Nome", + "namePlaceholder": "Por exemplo, limpe a pasta /data quando ela estiver cheia.", + "nameRequired": "O nome é obrigatório.", + "descriptionLabel": "Descrição", + "descriptionPlaceholder": "Descrição opcional", + "enabledLabel": "Habilitado", + "concurrencyLabel": "Se já estiver em execução", + "concurrencyHint": "O que fazer quando isso for acionado novamente antes da última execução terminar?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Pule a nova corrida", + "queue": "Espere e corra atrás.", + "allow": "Execute ambos simultaneamente" }, "save": "Salvar", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "created": "Automação criada", + "updated": "Automação economizou", + "deleted": "Automação excluída", + "deleteConfirm": "Excluir esta automação? O histórico de execução dela também será excluído.", + "runNow": "Corra agora", + "testRun": "Teste de execução", + "testRunHint": "Executa cada etapa, mas não toca em nada fora do Termix.", + "runStarted": "A corrida começou.", + "runFinished": "Execução concluída: {{status}}", + "trigger": "Acionar", + "steps": "Passos", + "addStep": "Adicionar etapa", + "removeStep": "Remover etapa", + "moveUp": "Suba", + "moveDown": "Desça", + "noSteps": "Ainda não há etapas. Adicione uma para descrever o que deve acontecer.", + "webhookTokenTitle": "URL do Webhook", + "webhookTokenDescription": "Esta mensagem será exibida apenas uma vez. Salve-a agora, pois não poderá ser recuperada posteriormente.", "copy": "Copiar", "copied": "Copiado", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "viewBuilder": "Construtor", + "viewGraph": "Gráfico", + "lastRun": "Última corrida", + "never": "Nunca", "duration": "{{seconds}}s", - "stepOutput": "Output", + "stepOutput": "Saída", "stepError": "Erro", - "dryRunBadge": "Test run", + "dryRunBadge": "Teste de execução", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Host que desencadeia o ataque", + "host": "hospedeiro específico", + "fleet": "Frota", + "all": "Todos os anfitriões" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Limiar métrico", + "host_status": "O host sobe ou desce.", + "health_check": "Alterações na verificação de saúde", + "schedule": "De acordo com um cronograma", + "docker_event": "Evento de contêiner", + "internal_event": "Evento Termix", + "webhook": "Webhook de entrada" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "Enviar um alerta", + "http": "Chamar um URL", + "run_snippet": "Executar um trecho de código", + "run_command": "Executar um comando", + "docker": "Controle um contêiner", + "tunnel": "Controle um túnel", + "wol": "Acorde um anfitrião", + "wait": "Espere", + "set_var": "Defina uma variável", + "if": "Se/caso contrário", + "run_automation": "Execute outra automação", + "stop": "Parar" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "Correndo", + "success": "Sucesso", + "failed": "Fracassado", + "timeout": "Tempo limite excedido", + "skipped": "Ignorado", + "cancelled": "Cancelado" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", + "host": "Hospedar", + "metric": "Métrica", + "mount": "Ponto de montagem", + "operator": "É", + "value": "Valor", + "forSeconds": "Sustentado por (segundos)", + "cooldown": "Tempo de resfriamento (minutos)", + "cron": "Expressão de Cron", + "intervalSeconds": "A cada (segundos)", + "timezone": "Fuso horário", + "timezoneServer": "Hora do servidor", + "timezoneHint": "Os horários cron são lidos nesta zona. Não se aplica a agendamentos por intervalo.", + "container": "Recipiente", + "command": "Comando", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "method": "Método", + "body": "Corpo", + "channels": "Enviar também para", + "title": "Título", + "message": "Mensagem", + "snippet": "Trecho", + "seconds": "Segundos", + "conditionLeftPlaceholder": "Valor a verificar", + "conditionRightPlaceholder": "Compare com", + "variableName": "Nome da variável", + "variableValue": "Valor", + "elevated": "Executar com sudo", + "onError": "Se isso falhar", + "allowPrivateNetwork": "Permitir endereços de rede local", + "allowPrivateNetworkHint": "Necessário para um serviço autohospedado em sua rede local (LAN). Desativado por padrão para evitar solicitações a endereços internos." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Pare a corrida", + "continue": "Continuar" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", + "needsPlugin": "Necessita de {{plugin}}", + "needsPluginHint": "Essa automação será ignorada até que o recurso necessário esteja disponível novamente.", + "offBadge": "Desligado", "docsLink": "Documentação", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}s atrás", + "minutes": "{{count}}m atrás", + "hours": "{{count}}h atrás", + "days": "{{count}}há alguns dias" } } } }, "nav": { - "automations": "Automations" + "automations": "Automações" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Automações", + "feature_automations_desc": "Execute etapas automaticamente quando algo acontecer e receba notificações." }, "maintenance": { "title": "Manutenção", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Pause as automações de status do host, integridade, métricas, contêiner e desconexão de túnel enquanto o trabalho estiver em andamento. O monitoramento, as execuções manuais e as automações agendadas continuam.", + "denied": "Você não tem permissão para visualizar a manutenção.", + "sharedReadOnly": "Este host foi compartilhado com você. Somente o proprietário pode alterar as configurações de manutenção.", + "failed": "A atualização de manutenção não pôde ser concluída.", + "active": "Manutenção ativa", + "estimated": "Conclusão prevista", + "noAutoEnd": "O orçamento não encerra a manutenção. Encerre-o explicitamente quando o trabalho estiver concluído.", + "endConfirm": "Encerrar a manutenção e retomar as automações acionadas por eventos para este host?", + "confirmEnd": "Confirme o fim", "cancel": "Cancelar", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "end": "Manutenção final", + "action": "Ação", + "startNow": "Comece agora", + "schedule": "Agendamento para mais tarde", + "reason": "Razão", + "startUtc": "Primeiro início (UTC)", + "repeat": "Repita", + "once": "Uma vez", + "weekly": "Semanalmente", + "monthly": "Mensal", + "utcHelp": "Os horários utilizam o UTC durante todo o ano. Os horários mensais ignoram os meses que não correspondem ao dia selecionado. Os períodos de planejamento não podem se sobrepor; a manutenção que se estende além do previsto continua nos períodos subsequentes.", + "duration": "Duração estimada (minutos)", + "grace": "Período de tolerância (minutos)", + "notify": "Notificar uma única vez se o usuário ainda estiver offline após o período estimado e de tolerância.", + "addSchedule": "Adicionar horário", + "schedules": "Horários", + "noSchedules": "Sem cronograma de manutenção.", + "completed": "Já começou", + "minutes_one": "{{count}} minuto", + "minutes_other": "{{count}} minutos", + "remove": "Remover agendamento", + "loadFailed": "Não foi possível atualizar o status de manutenção. As alterações estão desativadas até que o status seja carregado.", + "loading": "Carregando status de manutenção…" } } diff --git a/plugins/automations/locales/translated/pt_PT.json b/plugins/automations/locales/translated/pt_PT.json index 1ea6b9f12..59f8bdc10 100644 --- a/plugins/automations/locales/translated/pt_PT.json +++ b/plugins/automations/locales/translated/pt_PT.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Visualizar automações", + "description": "Veja as automatizações e o seu histórico." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Criar automações", + "description": "Adicionar novas automatizações." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Editar automações", + "description": "Alterar as automatizações existentes." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Apagar automações", + "description": "Remover automações." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Executar automações", + "description": "Acione uma automatização manualmente." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "Automações", + "tabAutomations": "Automações", + "tabRuns": "Corridas", "tabChannels": "Canais", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "Nova Automação", + "backToAutomations": "Voltar para Automações", + "createTitle": "Nova Automação", + "editTitle": "Editar Automação", + "empty": "Ainda não há automatizações. Crie uma para reagir a uma métrica, a um agendamento ou a um evento.", + "emptyRuns": "Ainda não houve qualquer corrida.", + "channelsHint": "Os canais são configurados em Alertas.", + "noChannelsHint": "O alerta será sempre enviado para a sua caixa de entrada. Adicione canais em Alertas para o enviar também para outros locais.", "nameLabel": "Nome", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "Por exemplo, limpe a pasta /data quando esta estiver cheia.", "nameRequired": "O nome é obrigatório", "descriptionLabel": "Descrição", "descriptionPlaceholder": "Descrição opcional", "enabledLabel": "Ativado", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "Se já estiver em execução", + "concurrencyHint": "O que fazer quando este for novamente acionado antes da última execução terminar?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Salte a nova corrida", + "queue": "Espere e corra atrás.", + "allow": "Execute ambos em simultâneo" }, "save": "Guardar", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "Automação criada", + "updated": "A automação economizou", + "deleted": "Automação excluída", + "deleteConfirm": "Apagar esta automação? O histórico de execução da mesma também será eliminado.", + "runNow": "Corra agora", + "testRun": "Teste de execução", + "testRunHint": "Executa cada passo, mas não toca em nada fora do Termix.", + "runStarted": "A corrida começou.", + "runFinished": "Execução concluída: {{status}}", "trigger": "Gatilho", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "steps": "Passos", + "addStep": "Adicionar etapa", + "removeStep": "Remover etapa", + "moveUp": "Suba", + "moveDown": "Desça", + "noSteps": "Ainda não há etapas. Adicione uma para descrever o que deve acontecer.", + "webhookTokenTitle": "URL do Webhook", + "webhookTokenDescription": "Esta mensagem será apresentada apenas uma vez. Guarde-a agora, pois não poderá ser recuperada posteriormente.", "copy": "Copiar", "copied": "Copiado", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewBuilder": "Construtor", + "viewGraph": "Gráfico", + "lastRun": "Última corrida", "never": "Nunca", "duration": "{{seconds}}s", "stepOutput": "Saída", "stepError": "Erro", - "dryRunBadge": "Test run", + "dryRunBadge": "Teste de execução", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "Host que desencadeia o ataque", + "host": "hospedeiro específico", + "fleet": "Frota", "all": "Todos os hosts" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Limiar métrico", + "host_status": "O host sobe ou desce.", + "health_check": "Alterações na verificação de saúde", + "schedule": "De acordo com um cronograma", + "docker_event": "Evento de contentor", + "internal_event": "Evento Termix", + "webhook": "Webhook de entrada" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "Enviar um alerta", + "http": "Chamar um URL", + "run_snippet": "Executar um excerto de código", + "run_command": "Executar um comando", + "docker": "Controle um contentor", + "tunnel": "Controle um túnel", + "wol": "Acorde um anfitrião", + "wait": "Espera", + "set_var": "Defina uma variável", + "if": "Se/caso contrário", + "run_automation": "Execute outra automatização", "stop": "Stop" }, "statuses": { "running": "Em execução", "success": "Sucesso", "failed": "Falhou", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "Tempo limite excedido", + "skipped": "Ignorado", + "cancelled": "Cancelado" }, "fields": { "host": "Servidor", "metric": "Métrica", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "Ponto de montagem", + "operator": "É", + "value": "Valor", + "forSeconds": "Sustentado por (segundos)", "cooldown": "Período de arrefecimento (minutos)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "Expressão de Cron", + "intervalSeconds": "A cada (segundos)", + "timezone": "Fuso horário", + "timezoneServer": "Hora do servidor", + "timezoneHint": "Os tempos cron são lidos nesta zona. Não se aplica a agendamentos por intervalo.", + "container": "Recipiente", "command": "Comando", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "Método", + "body": "Corpo", + "channels": "Enviar também para", "title": "Título", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "Mensagem", + "snippet": "Trecho", + "seconds": "Segundos", + "conditionLeftPlaceholder": "Valor a verificar", + "conditionRightPlaceholder": "Compare com", + "variableName": "Nome da variável", + "variableValue": "Valor", + "elevated": "Executar com sudo", + "onError": "Se isso falhar", + "allowPrivateNetwork": "Permitir endereços de rede local", + "allowPrivateNetworkHint": "Necessário para um serviço auto-hospedado na sua rede local (LAN). Desativado por defeito para evitar pedidos a endereços internos." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Pare a corrida", + "continue": "Continuar" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "Necessita de {{plugin}}", + "needsPluginHint": "Esta automatização será ignorada até que o recurso necessário esteja novamente disponível.", "offBadge": "Desativado", "docsLink": "Ver docs", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s atrás", "minutes": "há {{count}} min", "hours": "há {{count}} h", "days": "há {{count}} d" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "Automações" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Automações", + "feature_automations_desc": "Execute automaticamente os passos quando algo acontece e receba notificações." }, "maintenance": { "title": "Manutenção", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Faça uma pausa nas automatizações de estado do host, integridade, métricas, contentor e desconexão de túnel enquanto o trabalho estiver em curso. A monitorização, as execuções manuais e as automações agendadas continuam.", + "denied": "Não tem permissão para visualizar a manutenção.", + "sharedReadOnly": "Este host foi partilhado consigo. Apenas o proprietário pode alterar as definições de manutenção.", + "failed": "A atualização de manutenção não pôde ser concluída.", + "active": "Manutenção ativa", + "estimated": "Conclusão prevista", + "noAutoEnd": "O orçamento não encerra a manutenção. Encerre-o explicitamente quando o trabalho estiver concluído.", + "endConfirm": "Terminar a manutenção e retomar as automatizações acionadas por eventos para este host?", + "confirmEnd": "Confirme o fim", "cancel": "Cancelar", - "end": "End maintenance", + "end": "Manutenção final", "action": "Ação", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "Comece agora", + "schedule": "Agendamento para mais tarde", + "reason": "Razão", + "startUtc": "Primeiro arranque (UTC)", + "repeat": "Repetir", + "once": "Uma vez", + "weekly": "Semanalmente", + "monthly": "Mensal", + "utcHelp": "Os horários utilizam o UTC durante todo o ano. Os horários mensais ignoram os meses que não correspondem ao dia selecionado. Os períodos de planeamento não se podem sobrepor; a manutenção que se estende para além do previsto continua nos períodos subsequentes.", + "duration": "Duração estimada (minutos)", + "grace": "Período de tolerância (minutos)", + "notify": "Notificar uma única vez se o utilizador ainda estiver offline após o período estimado e de tolerância.", + "addSchedule": "Adicionar horário", + "schedules": "Horários", + "noSchedules": "Sem plano de manutenção.", + "completed": "Já começou", + "minutes_one": "{{count}} minuto", + "minutes_other": "{{count}} minutos", + "remove": "Remover agendamento", + "loadFailed": "Não foi possível atualizar o estado de manutenção. As alterações estão desativadas até que o estado seja carregado.", + "loading": "A carregar o estado de manutenção…" } } diff --git a/plugins/automations/locales/translated/ru_RU.json b/plugins/automations/locales/translated/ru_RU.json index 956e266b0..dbd84e2c8 100644 --- a/plugins/automations/locales/translated/ru_RU.json +++ b/plugins/automations/locales/translated/ru_RU.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Просмотреть автоматизации", + "description": "Ознакомьтесь с автоматизацией и её историей." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Создавайте автоматизации", + "description": "Добавить новые автоматизации." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Редактировать автоматизацию", + "description": "Измените существующие автоматизации." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Удалить автоматизации", + "description": "Удалите автоматизацию." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Запуск автоматизации", + "description": "Запустите автоматизацию вручную." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "Автоматизация", + "tabAutomations": "Автоматизация", + "tabRuns": "Беги", "tabChannels": "Каналы", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "Новая автоматизация", + "backToAutomations": "Назад к автоматизации", + "createTitle": "Новая автоматизация", + "editTitle": "Редактировать автоматизацию", + "empty": "Автоматизации пока нет. Создайте автоматизацию, которая будет реагировать на показатель, расписание или событие.", + "emptyRuns": "Пока ни одного заезда.", + "channelsHint": "Каналы настраиваются в разделе «Оповещения».", + "noChannelsHint": "Уведомление всегда приходит в ваш почтовый ящик. Добавьте каналы в разделе «Уведомления», чтобы оно также отправлялось в другие места.", "nameLabel": "Название", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "Например, очищать каталог /data, когда он заполняется.", "nameRequired": "Имя обязательно", "descriptionLabel": "Описание", "descriptionPlaceholder": "Необязательное описание", "enabledLabel": "Включено", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "Если он уже запущен", + "concurrencyHint": "Что делать, если это снова произойдет до завершения последнего запуска?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Пропустите новый запуск", + "queue": "Подожди и беги после", + "allow": "Запустите оба одновременно." }, "save": "Сохранить", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "Создана автоматизация", + "updated": "Автоматизация спасла", + "deleted": "Автоматизация удалена", + "deleteConfirm": "Удалить эту автоматизацию? История её выполнения также будет удалена.", + "runNow": "Запустите сейчас", + "testRun": "Тестовый запуск", + "testRunHint": "Программа выполняет каждый этап, но не затрагивает ничего за пределами Termix.", + "runStarted": "Запуск начался", + "runFinished": "Выполнение завершено: {{status}}", "trigger": "Триггер", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "steps": "Шаги", + "addStep": "Добавить шаг", + "removeStep": "Удалить шаг", + "moveUp": "Поднимитесь выше", + "moveDown": "Спуститесь вниз", + "noSteps": "Шагов пока нет. Добавьте один, чтобы указать, что должно произойти.", + "webhookTokenTitle": "URL веб-перехватчика", + "webhookTokenDescription": "Эта информация отображается только один раз. Сохраните её сейчас, позже восстановить её будет невозможно.", "copy": "Копировать", "copied": "Скопировано", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewBuilder": "Строитель", + "viewGraph": "График", + "lastRun": "Последний забег", "never": "Никогда", - "duration": "{{seconds}}s", + "duration": "{{seconds}}с", "stepOutput": "Вывод", "stepError": "Ошибка", - "dryRunBadge": "Test run", + "dryRunBadge": "Тестовый запуск", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "Запуск хоста", + "host": "Конкретный хост", + "fleet": "Флот", "all": "Все хосты" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Пороговое значение метрики", + "host_status": "Хост переходит в режим повышения или понижения.", + "health_check": "Изменения в результатах медицинского осмотра", + "schedule": "По расписанию", + "docker_event": "Событие контейнера", + "internal_event": "Мероприятие Termix", + "webhook": "Входящий веб-хук" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "Отправить оповещение", + "http": "Вызов URL-адреса", + "run_snippet": "Запустить фрагмент кода", + "run_command": "Выполните команду", + "docker": "Управлять контейнером", + "tunnel": "Контролируемый туннель", + "wol": "Разбудить хозяина", + "wait": "Ждать", + "set_var": "Задайте переменную", + "if": "Если / в противном случае", + "run_automation": "Запустите еще одну автоматизацию", "stop": "Остановить" }, "statuses": { "running": "Запущен", "success": "Успех", "failed": "Ошибка", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "Время истекло", + "skipped": "Пропущено", + "cancelled": "Отменено" }, "fields": { "host": "Хост", "metric": "Метрика", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "Маунт-Пойнт", + "operator": "Является", + "value": "Ценить", + "forSeconds": "Длительность (секунды)", "cooldown": "Задержка повторения (минут)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "Выражение Cron", + "intervalSeconds": "Каждые (секунды)", + "timezone": "Часовой пояс", + "timezoneServer": "Время сервера", + "timezoneHint": "В этой зоне считываются временные параметры Cron. Это не относится к интервальным расписаниям.", + "container": "Контейнер", "command": "Команда", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "Метод", + "body": "Тело", + "channels": "Также отправить на", "title": "Название", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "Сообщение", + "snippet": "Фрагмент", + "seconds": "Секунды", + "conditionLeftPlaceholder": "Значение для проверки", + "conditionRightPlaceholder": "Сравните с", + "variableName": "Имя переменной", + "variableValue": "Ценить", + "elevated": "Запустить с правами суперпользователя (sudo)", + "onError": "Если это не поможет", + "allowPrivateNetwork": "Разрешить использование локальных сетевых адресов", + "allowPrivateNetworkHint": "Необходим для самостоятельного размещения сервиса в вашей локальной сети. По умолчанию отключен, чтобы предотвратить запросы к внутренним адресам." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Остановить бег", + "continue": "Продолжать" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "Потребности {{plugin}}", + "needsPluginHint": "Эта автоматизация пропускается до тех пор, пока необходимая функция снова не станет доступна.", "offBadge": "Отключено", "docsLink": "Документация", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s назад", "minutes": "{{count}}м назад", "hours": "{{count}}ч назад", "days": "{{count}}д назад" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "Автоматизация" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Автоматизация", + "feature_automations_desc": "Запускайте шаги автоматически при возникновении событий и получайте уведомления." }, "maintenance": { "title": "Обслуживание", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Приостановите автоматизацию проверки состояния хоста, работоспособности, метрик, контейнеров и разрыва туннелей на время выполнения работ. Мониторинг, ручные запуски и запланированные автоматизации продолжатся.", + "denied": "У вас нет разрешения на просмотр информации о техническом обслуживании.", + "sharedReadOnly": "Этот хостинг был предоставлен вам. Только его владелец может вносить изменения в настройки технического обслуживания.", + "failed": "Обновление информации о техническом обслуживании не удалось.", + "active": "Техническое обслуживание активно", + "estimated": "Предполагаемая дата завершения", + "noAutoEnd": "Смета не завершает техническое обслуживание. Завершайте его, когда работы будут полностью выполнены.", + "endConfirm": "Завершить автоматизацию технического обслуживания и возобновить работу для этого хоста?", + "confirmEnd": "Подтвердить конец", "cancel": "Отмена", - "end": "End maintenance", + "end": "Завершение технического обслуживания", "action": "Действие", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "Начните прямо сейчас", + "schedule": "Запланируйте на более позднее время", + "reason": "Причина", + "startUtc": "Первый запуск (UTC)", + "repeat": "Повторить", + "once": "Один раз", + "weekly": "Еженедельно", + "monthly": "Ежемесячно", + "utcHelp": "В расписаниях используется UTC в течение всего года. В месячных расписаниях пропускаются месяцы, в которых отсутствует выбранный день. Запланированные временные окна не могут перекрываться; работы по техническому обслуживанию, выполняемые в течение более поздних временных окон, продолжаются и в последующие.", + "duration": "Ориентировочная продолжительность (в минутах)", + "grace": "Льготный период (в минутах)", + "notify": "Если после истечения расчетного периода и льготного периода связь по-прежнему отсутствует, сообщите об этом один раз.", + "addSchedule": "Добавить расписание", + "schedules": "Расписания", + "noSchedules": "График технического обслуживания отсутствует.", + "completed": "Уже началось", + "minutes_one": "{{count}} минут", + "minutes_other": "{{count}} минут", + "remove": "Удалить расписание", + "loadFailed": "Не удалось обновить статус технического обслуживания. Изменения отключены до тех пор, пока не будет загружена соответствующая информация.", + "loading": "Статус технического обслуживания загрузки…" } } diff --git a/plugins/automations/locales/translated/sr_SP.json b/plugins/automations/locales/translated/sr_SP.json index b459b4ade..5a556512d 100644 --- a/plugins/automations/locales/translated/sr_SP.json +++ b/plugins/automations/locales/translated/sr_SP.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Прикажи аутоматизације", + "description": "Погледајте аутоматизације и њихову историју." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Креирајте аутоматизације", + "description": "Додајте нове аутоматизације." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Уреди аутоматизације", + "description": "Промените постојеће аутоматизације." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Обриши аутоматизације", + "description": "Уклоните аутоматизације." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Покрени аутоматизације", + "description": "Ручно покрените аутоматизацију." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "Аутоматизације", + "tabAutomations": "Аутоматизације", + "tabRuns": "Трчи", + "tabChannels": "Канали", + "createAutomation": "Нова аутоматизација", + "backToAutomations": "Назад на аутоматизацију", + "createTitle": "Нова аутоматизација", + "editTitle": "Уреди аутоматизацију", + "empty": "Још увек нема аутоматизација. Направите једну да бисте реаговали на метрику, распоред или догађај.", + "emptyRuns": "Још нема трчања.", + "channelsHint": "Канали се подешавају у Обавештењима", + "noChannelsHint": "Обавештење увек иде у ваше пријемно сандуче. Додајте канале у Обавештења да бисте га послали и негде другде.", + "nameLabel": "Име", + "namePlaceholder": "нпр. Очисти /подаци када се попуне", + "nameRequired": "Име је обавезно", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Опциони опис", + "enabledLabel": "Омогућено", + "concurrencyLabel": "Ако већ ради", + "concurrencyHint": "Шта урадити када се ово поново покрене пре него што се заврши последње покретање.", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Прескочи нову вожњу", + "queue": "Чекај и трчи за њим", + "allow": "Покрени оба одједном" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", + "save": "Сачувај", + "created": "Аутоматизација је креирана", + "updated": "Аутоматизација је сачувана", + "deleted": "Аутоматизација је обрисана", + "deleteConfirm": "Да ли желите да обришете ову аутоматизацију? Њена историја покретања је такође обрисана.", + "runNow": "Трчи сада", + "testRun": "Тестирање", + "testRunHint": "Покреће сваки корак, али не додирује ништа изван Термикса.", + "runStarted": "Трчање је започето", + "runFinished": "Трка завршена: {{status}}", + "trigger": "Окидач", + "steps": "Кораци", + "addStep": "Додај корак", + "removeStep": "Уклони корак", + "moveUp": "Помери горе", + "moveDown": "Помери надоле", + "noSteps": "Још нема корака. Додајте један да бисте рекли шта треба да се деси.", + "webhookTokenTitle": "URL вебхука", + "webhookTokenDescription": "Ово се приказује једном. Сачувајте то сада, не можете то касније преузети.", + "copy": "Копија", + "copied": "Копирано", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", - "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "viewBuilder": "Градитељ", + "viewGraph": "График", + "lastRun": "Последње трчање", + "never": "Никад", + "duration": "{{seconds}}с", + "stepOutput": "Излаз", + "stepError": "Грешка", + "dryRunBadge": "Тестирање", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Покретач хоста", + "host": "Одређени домаћин", + "fleet": "Флота", + "all": "Сви домаћини" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Праг метрике", + "host_status": "Домаћин иде горе или доле", + "health_check": "Промене у провери исправности", + "schedule": "По распореду", + "docker_event": "Догађај контејнера", + "internal_event": "Термикс догађај", + "webhook": "Долазни вебхук" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "Пошаљи упозорење", + "http": "Позовите URL", + "run_snippet": "Покрени исечак", + "run_command": "Покрените команду", + "docker": "Контролишите контејнер", + "tunnel": "Контролишите тунел", + "wol": "Пробудите домаћина", + "wait": "Чекај", + "set_var": "Поставите променљиву", + "if": "Ако / иначе", + "run_automation": "Покрените још једну аутоматизацију", + "stop": "Заустави" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "Трчање", + "success": "Успех", + "failed": "Неуспешно", + "timeout": "Временско ограничење је истекло", + "skipped": "Прескочено", + "cancelled": "Отказано" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", + "host": "Домаћин", + "metric": "Метрика", + "mount": "Тачка монтирања", + "operator": "Је", + "value": "Вредност", + "forSeconds": "Задржано (секунде)", + "cooldown": "Хлађење (минути)", + "cron": "Cron израз", + "intervalSeconds": "Сваких (секунде)", + "timezone": "Временска зона", + "timezoneServer": "Време сервера", + "timezoneHint": "Cron времена се очитавају у овој зони. Не односи се на интервалне распореде.", + "container": "Контејнер", + "command": "Команда", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "method": "Метод", + "body": "Тело", + "channels": "Такође пошаљите на", + "title": "Наслов", + "message": "Порука", + "snippet": "Исечак", + "seconds": "Секунде", + "conditionLeftPlaceholder": "Вредност за проверу", + "conditionRightPlaceholder": "Упореди са", + "variableName": "Назив променљиве", + "variableValue": "Вредност", + "elevated": "Покрени са sudo-ом", + "onError": "Ако ово не успе", + "allowPrivateNetwork": "Дозволи локалне мрежне адресе", + "allowPrivateNetworkHint": "Потребно за самостално хостовану услугу на вашој локалној мрежи. Подразумевано искључено да би се спречили захтеви ка интерним адресама." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Заустави трчање", + "continue": "Настави" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "Потребно је {{plugin}}", + "needsPluginHint": "Ова аутоматизација се прескаче док функција која јој је потребна поново не буде доступна.", + "offBadge": "Искључено", + "docsLink": "Прикажи документе", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "Пре {{count}}сек", + "minutes": "{{count}}пре мин", + "hours": "{{count}}пре сати", + "days": "{{count}}пре д" } } } }, "nav": { - "automations": "Automations" + "automations": "Аутоматизације" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Аутоматизације", + "feature_automations_desc": "Аутоматски покрените кораке када се нешто деси и добијте обавештења." }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "Одржавање", + "description": "Паузирајте аутоматизације статуса хоста, здравља, метрике, контејнера и тунелског искључивања док је рад у току. Праћење, ручна покретања и заказане аутоматизације се настављају.", + "denied": "Немате дозволу за преглед одржавања.", + "sharedReadOnly": "Овај хост је дељен са вама. Само његов власник може да промени одржавање.", + "failed": "Ажурирање одржавања није успело.", + "active": "Одржавање је активно", + "estimated": "Процењени завршетак", + "noAutoEnd": "Процена не завршава одржавање. Завршите га експлицитно када је посао завршен.", + "endConfirm": "Да ли желите да завршите одржавање и наставите аутоматизације покренуте догађајима за овог хоста?", + "confirmEnd": "Потврди крај", + "cancel": "Откажи", + "end": "Заврши одржавање", + "action": "Акција", + "startNow": "Почни сада", + "schedule": "Закажите за касније", + "reason": "Разлог", + "startUtc": "Први почетак (UTC)", + "repeat": "Понови", + "once": "Једном", + "weekly": "Недељно", + "monthly": "Месечно", + "utcHelp": "Распореди користе UTC време током целе године. Месечни распореди прескачу месеце без изабраног дана. Планирани прозори се не могу преклапати; преоптерећено одржавање се наставља и у каснијим прозорима.", + "duration": "Процењено трајање (минути)", + "grace": "Грејс период (минути)", + "notify": "Обавести ме једном ако је и даље ван мреже након процене плус грејс период", + "addSchedule": "Додај распоред", + "schedules": "Распореди", + "noSchedules": "Нема распореда одржавања.", + "completed": "Већ је почело", + "minutes_one": "{{count}} минут", + "minutes_other": "{{count}} минута", + "remove": "Уклони распоред", + "loadFailed": "Није могуће освежити статус одржавања. Промене су онемогућене док се не учита.", + "loading": "Учитавање статуса одржавања…" } } diff --git a/plugins/automations/locales/translated/sv_SE.json b/plugins/automations/locales/translated/sv_SE.json index b459b4ade..7cc2e2b1a 100644 --- a/plugins/automations/locales/translated/sv_SE.json +++ b/plugins/automations/locales/translated/sv_SE.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Visa automatiseringar", + "description": "Se automatiseringarna och deras historik." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Skapa automatiseringar", + "description": "Lägg till nya automatiseringar." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Redigera automatiseringar", + "description": "Ändra befintliga automatiseringar." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Ta bort automatiseringar", + "description": "Ta bort automatiseringar." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Kör automatiseringar", + "description": "Utlös en automatisering manuellt." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "Automatiseringar", + "tabAutomations": "Automatiseringar", + "tabRuns": "Löpningar", + "tabChannels": "Kanaler", + "createAutomation": "Ny automatisering", + "backToAutomations": "Tillbaka till Automatiseringar", + "createTitle": "Ny automatisering", + "editTitle": "Redigera automatisering", + "empty": "Inga automatiseringar ännu. Skapa en för att reagera på ett mätvärde, ett schema eller en händelse.", + "emptyRuns": "Inga löpningar än.", + "channelsHint": "Kanaler konfigureras i aviseringar", + "noChannelsHint": "Aviseringen skickas alltid till din inkorg. Lägg till kanaler i Aviseringar för att även skicka den någon annanstans.", + "nameLabel": "Namn", + "namePlaceholder": "t.ex. Rensa upp /data när den fylls", + "nameRequired": "Namn krävs", + "descriptionLabel": "Beskrivning", + "descriptionPlaceholder": "Valfri beskrivning", + "enabledLabel": "Aktiverad", + "concurrencyLabel": "Om den redan är igång", + "concurrencyHint": "Vad man ska göra när detta utlöses igen innan den sista körningen är klar.", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Hoppa över den nya körningen", + "queue": "Vänta och spring efter", + "allow": "Kör båda samtidigt" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", + "save": "Spara", + "created": "Automatisering skapad", + "updated": "Automatisering sparad", + "deleted": "Automatisering borttagen", + "deleteConfirm": "Vill du ta bort den här automatiseringen? Dess körhistorik raderas också.", + "runNow": "Kör nu", + "testRun": "Testkörning", + "testRunHint": "Kör varje steg men rör ingenting utanför Termix.", + "runStarted": "Löpningen har startat", + "runFinished": "Körning avslutad: {{status}}", + "trigger": "Utlösare", + "steps": "Steg", + "addStep": "Lägg till steg", + "removeStep": "Ta bort steg", + "moveUp": "Flytta upp", + "moveDown": "Flytta nedåt", + "noSteps": "Inga steg ännu. Lägg till ett för att ange vad som ska hända.", + "webhookTokenTitle": "Webhook-URL", + "webhookTokenDescription": "Detta visas en gång. Spara det nu, det kan inte hämtas senare.", + "copy": "Kopiera", + "copied": "Kopierad", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "viewBuilder": "Byggmästare", + "viewGraph": "Graf", + "lastRun": "Sista körningen", + "never": "Aldrig", "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "stepOutput": "Produktion", + "stepError": "Fel", + "dryRunBadge": "Testkörning", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Utlösande värd", + "host": "Specifik värd", + "fleet": "Flotta", + "all": "Alla värdar" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Metrisk tröskelvärde", + "host_status": "Värden går upp eller ner", + "health_check": "Ändringar i hälsokontrollen", + "schedule": "Enligt ett schema", + "docker_event": "Containerhändelse", + "internal_event": "Termix-evenemang", + "webhook": "Inkommande webhook" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "Skicka en avisering", + "http": "Anropa en URL", + "run_snippet": "Kör ett utdrag", + "run_command": "Kör ett kommando", + "docker": "Styr en container", + "tunnel": "Kontrollera en tunnel", + "wol": "Väck en värd", + "wait": "Vänta", + "set_var": "Ställ in en variabel", + "if": "Om / annars", + "run_automation": "Kör en annan automatisering", + "stop": "Stopp" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "Spring", + "success": "Framgång", + "failed": "Misslyckades", + "timeout": "Timeout", + "skipped": "Hoppade över", + "cancelled": "Avbruten" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", + "host": "Värd", + "metric": "Metrisk", + "mount": "Monteringspunkt", + "operator": "Är", + "value": "Värde", + "forSeconds": "Uthållen i (sekunder)", + "cooldown": "Nedkylningstid (minuter)", + "cron": "Cron-uttryck", + "intervalSeconds": "Varje (sekund)", + "timezone": "Tidszon", + "timezoneServer": "Servertid", + "timezoneHint": "Cron-tider läses i denna zon. Gäller inte för intervallscheman.", + "container": "Behållare", + "command": "Kommando", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "method": "Metod", + "body": "Kropp", + "channels": "Skicka även till", + "title": "Titel", + "message": "Meddelande", + "snippet": "Utdrag", + "seconds": "Sekunder", + "conditionLeftPlaceholder": "Värde att kontrollera", + "conditionRightPlaceholder": "Jämför mot", + "variableName": "Variabelnamn", + "variableValue": "Värde", + "elevated": "Kör med sudo", + "onError": "Om detta misslyckas", + "allowPrivateNetwork": "Tillåt lokala nätverksadresser", + "allowPrivateNetworkHint": "Behövs för en självhostad tjänst på ditt lokala nätverk. Avstängt som standard för att förhindra förfrågningar till interna adresser." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Stoppa löpningen", + "continue": "Fortsätta" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "Behöver {{plugin}}", + "needsPluginHint": "Denna automatisering hoppas över tills den funktion den behöver är tillgänglig igen.", + "offBadge": "Av", + "docsLink": "Visa dokument", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}sekunder sedan", + "minutes": "för {{count}}minuter sedan", + "hours": "för {{count}}timmar sedan", + "days": "för {{count}}dagar sedan" } } } }, "nav": { - "automations": "Automations" + "automations": "Automatiseringar" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Automatiseringar", + "feature_automations_desc": "Kör steg automatiskt när något händer och få aviseringar." }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "Underhåll", + "description": "Pausa automatiseringar för värdstatus, hälsa, mätvärden, container- och tunnelfrånkoppling medan arbetet pågår. Övervakning, manuella körningar och schemalagda automatiseringar fortsätter.", + "denied": "Du har inte behörighet att visa underhåll.", + "sharedReadOnly": "Denna värden delades med dig. Endast dess ägare kan ändra underhållet.", + "failed": "Underhållet kunde inte uppdateras.", + "active": "Underhåll aktivt", + "estimated": "Beräknad färdigställande", + "noAutoEnd": "Uppskattningen avslutar inte underhållet. Avsluta det uttryckligen när arbetet är slutfört.", + "endConfirm": "Vill du avsluta underhållet och återuppta händelseutlösta automatiseringar för den här värden?", + "confirmEnd": "Bekräfta slutet", + "cancel": "Avboka", + "end": "Avsluta underhåll", + "action": "Handling", + "startNow": "Börja nu", + "schedule": "Schema för senare", + "reason": "Resonera", + "startUtc": "Första start (UTC)", + "repeat": "Upprepa", + "once": "En gång", + "weekly": "Varje vecka", + "monthly": "Månatlig", + "utcHelp": "Scheman använder UTC under hela året. Månadsscheman hoppar över månader utan vald dag. Planerade fönster kan inte överlappa varandra; underhåll som överskrider schemat fortsätter över senare fönster.", + "duration": "Beräknad varaktighet (minuter)", + "grace": "Respitperiod (minuter)", + "notify": "Meddela en gång om du fortfarande är offline efter uppskattningen plus respitperioden", + "addSchedule": "Lägg till schema", + "schedules": "Scheman", + "noSchedules": "Inga underhållsscheman.", + "completed": "Redan påbörjat", + "minutes_one": "{{count}} minut", + "minutes_other": "{{count}} minuter", + "remove": "Ta bort schema", + "loadFailed": "Kunde inte uppdatera underhållsstatusen. Ändringar är inaktiverade tills den kan läsas in.", + "loading": "Laddar underhållsstatus…" } } diff --git a/plugins/automations/locales/translated/th_TH.json b/plugins/automations/locales/translated/th_TH.json index b459b4ade..cec86a6bb 100644 --- a/plugins/automations/locales/translated/th_TH.json +++ b/plugins/automations/locales/translated/th_TH.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "ดูระบบอัตโนมัติ", + "description": "ดูการทำงานอัตโนมัติและประวัติการทำงาน" }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "สร้างระบบอัตโนมัติ", + "description": "เพิ่มระบบอัตโนมัติใหม่" }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "แก้ไขระบบอัตโนมัติ", + "description": "ปรับเปลี่ยนระบบอัตโนมัติที่มีอยู่เดิม" }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "ลบระบบอัตโนมัติ", + "description": "ลบระบบอัตโนมัติออก" }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "เรียกใช้ระบบอัตโนมัติ", + "description": "สั่งการให้ระบบอัตโนมัติทำงานด้วยตนเอง" } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "ระบบอัตโนมัติ", + "tabAutomations": "ระบบอัตโนมัติ", + "tabRuns": "วิ่ง", + "tabChannels": "ช่องต่างๆ", + "createAutomation": "ระบบอัตโนมัติใหม่", + "backToAutomations": "กลับสู่ระบบอัตโนมัติ", + "createTitle": "ระบบอัตโนมัติใหม่", + "editTitle": "แก้ไขอัตโนมัติ", + "empty": "ยังไม่มีระบบอัตโนมัติใดๆ สร้างระบบอัตโนมัติเพื่อตอบสนองต่อตัวชี้วัด กำหนดการ หรือเหตุการณ์ต่างๆ", + "emptyRuns": "ยังไม่มีการทดลองใดๆ เกิดขึ้น", + "channelsHint": "ช่องทางต่างๆ ถูกตั้งค่าไว้ในระบบแจ้งเตือน", + "noChannelsHint": "การแจ้งเตือนจะส่งไปยังกล่องจดหมายเข้าของคุณเสมอ เพิ่มช่องทางการแจ้งเตือนเพื่อส่งไปยังที่อื่นเพิ่มเติมได้", + "nameLabel": "ชื่อ", + "namePlaceholder": "เช่น ล้างข้อมูลใน /data เมื่อเต็ม", + "nameRequired": "ต้องระบุชื่อ", + "descriptionLabel": "คำอธิบาย", + "descriptionPlaceholder": "คำอธิบายเพิ่มเติม (ไม่บังคับ)", + "enabledLabel": "เปิดใช้งาน", + "concurrencyLabel": "หากกำลังทำงานอยู่แล้ว", + "concurrencyHint": "ควรทำอย่างไรเมื่อเหตุการณ์นี้เกิดขึ้นอีกครั้งก่อนที่การทำงานครั้งสุดท้ายจะเสร็จสิ้น", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "ข้ามการวิ่งรอบใหม่ไป", + "queue": "รอและวิ่งตาม", + "allow": "เรียกใช้ทั้งสองอย่างพร้อมกัน" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", - "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", + "save": "บันทึก", + "created": "ระบบอัตโนมัติสร้างขึ้น", + "updated": "ระบบอัตโนมัติได้รับการบันทึกแล้ว", + "deleted": "ระบบอัตโนมัติลบแล้ว", + "deleteConfirm": "ลบระบบอัตโนมัตินี้แล้วใช่ไหม? ประวัติการทำงานของมันก็จะถูกลบไปด้วย", + "runNow": "วิ่งเลยตอนนี้", + "testRun": "การทดสอบการทำงาน", + "testRunHint": "ทำงานทุกขั้นตอน แต่ไม่แตะต้องสิ่งใดนอกเหนือจาก Termix", + "runStarted": "การวิ่งเริ่มต้นขึ้นแล้ว", + "runFinished": "การทำงานเสร็จสิ้น: {{status}}", + "trigger": "สิ่งกระตุ้น", + "steps": "ขั้นตอน", + "addStep": "เพิ่มขั้นตอน", + "removeStep": "ลบขั้นตอน", + "moveUp": "เลื่อนขึ้น", + "moveDown": "เลื่อนลง", + "noSteps": "ยังไม่มีขั้นตอนใดๆ เพิ่มขั้นตอนเพื่ออธิบายว่าควรเกิดอะไรขึ้น", + "webhookTokenTitle": "URL ของเว็บฮุค", + "webhookTokenDescription": "แสดงเพียงครั้งเดียว บันทึกตอนนี้ ไม่สามารถเรียกดูซ้ำได้ในภายหลัง", + "copy": "สำเนา", + "copied": "คัดลอกแล้ว", + "viewJson": "เจซอน", + "viewBuilder": "ผู้สร้าง", + "viewGraph": "กราฟ", + "lastRun": "การวิ่งครั้งสุดท้าย", + "never": "ไม่เคย", "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "stepOutput": "เอาต์พุต", + "stepError": "ข้อผิดพลาด", + "dryRunBadge": "การทดสอบการทำงาน", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "โฮสต์ทริกเกอร์", + "host": "โฮสต์เฉพาะ", + "fleet": "กองเรือ", + "all": "โฮสต์ทั้งหมด" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "เกณฑ์เมตริก", + "host_status": "โฮสต์ขึ้นหรือลง", + "health_check": "การเปลี่ยนแปลงการตรวจสุขภาพ", + "schedule": "ตามกำหนดเวลา", + "docker_event": "เหตุการณ์คอนเทนเนอร์", + "internal_event": "กิจกรรมเทอร์มิกซ์", + "webhook": "เว็บฮุคขาเข้า" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "ส่งการแจ้งเตือน", + "http": "เรียกใช้ URL", + "run_snippet": "เรียกใช้โค้ดตัวอย่าง", + "run_command": "เรียกใช้คำสั่ง", + "docker": "ควบคุมคอนเทนเนอร์", + "tunnel": "ควบคุมอุโมงค์", + "wol": "ปลุกโฮสต์", + "wait": "รอ", + "set_var": "ตั้งค่าตัวแปร", + "if": "ถ้า / มิฉะนั้น", + "run_automation": "เรียกใช้ระบบอัตโนมัติอีกครั้ง", + "stop": "หยุด" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "วิ่ง", + "success": "ความสำเร็จ", + "failed": "ล้มเหลว", + "timeout": "หมดเวลา", + "skipped": "ข้ามไป", + "cancelled": "ยกเลิก" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", + "host": "เจ้าภาพ", + "metric": "เมตริก", + "mount": "จุดยึด", + "operator": "เป็น", + "value": "ค่า", + "forSeconds": "ต่อเนื่องเป็นเวลา (วินาที)", + "cooldown": "ระยะเวลาคูลดาวน์ (นาที)", + "cron": "การแสดงออกของ Cron", + "intervalSeconds": "ทุกๆ (วินาที)", + "timezone": "เขตเวลา", + "timezoneServer": "เวลาเซิร์ฟเวอร์", + "timezoneHint": "เวลาของ Cron จะอ่านได้ในโซนนี้ ไม่สามารถใช้ได้กับตารางเวลาแบบช่วงเวลา", + "container": "คอนเทนเนอร์", + "command": "สั่งการ", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "method": "วิธี", + "body": "ร่างกาย", + "channels": "ส่งไปที่ด้วยเช่นกัน", + "title": "ชื่อ", + "message": "ข้อความ", + "snippet": "ส่วนหนึ่ง", + "seconds": "วินาที", + "conditionLeftPlaceholder": "ค่าที่ต้องตรวจสอบ", + "conditionRightPlaceholder": "เปรียบเทียบกับ", + "variableName": "ชื่อตัวแปร", + "variableValue": "ค่า", + "elevated": "เรียกใช้ด้วยคำสั่ง sudo", + "onError": "หากวิธีนี้ล้มเหลว", + "allowPrivateNetwork": "อนุญาตให้ใช้ที่อยู่เครือข่ายท้องถิ่น", + "allowPrivateNetworkHint": "จำเป็นสำหรับบริการที่โฮสต์เองบนเครือข่าย LAN ของคุณ โดยค่าเริ่มต้นจะปิดใช้งานเพื่อป้องกันการร้องขอไปยังที่อยู่ภายใน" }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "หยุดการวิ่ง", + "continue": "ดำเนินการต่อไป" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "ต้องการ {{plugin}}", + "needsPluginHint": "กระบวนการอัตโนมัตินี้จะถูกข้ามไปจนกว่าฟีเจอร์ที่ต้องการจะพร้อมใช้งานอีกครั้ง", + "offBadge": "ปิด", + "docsLink": "ดูเอกสาร", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}วินาทีที่แล้ว", + "minutes": "{{count}}นาทีที่แล้ว", + "hours": "{{count}}ชั่วโมงที่แล้ว", + "days": "{{count}}วันก่อน" } } } }, "nav": { - "automations": "Automations" + "automations": "ระบบอัตโนมัติ" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "ระบบอัตโนมัติ", + "feature_automations_desc": "ดำเนินการตามขั้นตอนโดยอัตโนมัติเมื่อเกิดเหตุการณ์ใดๆ และรับการแจ้งเตือน" }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "การซ่อมบำรุง", + "description": "หยุดการตรวจสอบสถานะโฮสต์ สุขภาพ เมตริก คอนเทนเนอร์ และการตัดการเชื่อมต่ออุโมงค์โดยอัตโนมัติชั่วคราวในระหว่างการดำเนินการ การตรวจสอบ การเรียกใช้งานด้วยตนเอง และการทำงานอัตโนมัติตามกำหนดเวลายังคงดำเนินต่อไป", + "denied": "คุณไม่มีสิทธิ์ในการดูข้อมูลการบำรุงรักษา", + "sharedReadOnly": "โฮสต์นี้ถูกแชร์กับคุณ เจ้าของโฮสต์เท่านั้นที่สามารถเปลี่ยนแปลงการบำรุงรักษาได้", + "failed": "ไม่สามารถอัปเดตการบำรุงรักษาได้", + "active": "กำลังดำเนินการบำรุงรักษา", + "estimated": "คาดว่าจะแล้วเสร็จ", + "noAutoEnd": "การประเมินราคาไม่ได้หมายความว่าการบำรุงรักษาจะสิ้นสุดลง ให้ยุติการบำรุงรักษาอย่างชัดเจนเมื่อการทำงานเสร็จสมบูรณ์แล้ว", + "endConfirm": "สิ้นสุดโหมดบำรุงรักษาและเริ่มการทำงานอัตโนมัติที่ทำงานเมื่อเกิดเหตุการณ์สำหรับโฮสต์นี้อีกครั้งหรือไม่?", + "confirmEnd": "ยืนยันการสิ้นสุด", + "cancel": "ยกเลิก", + "end": "สิ้นสุดการบำรุงรักษา", + "action": "การกระทำ", + "startNow": "เริ่มเลยตอนนี้", + "schedule": "กำหนดเวลาสำหรับภายหลัง", + "reason": "เหตุผล", + "startUtc": "เริ่มครั้งแรก (UTC)", + "repeat": "ทำซ้ำ", + "once": "ครั้งหนึ่ง", + "weekly": "รายสัปดาห์", + "monthly": "รายเดือน", + "utcHelp": "ตารางงานใช้เวลา UTC ตลอดทั้งปี ตารางงานรายเดือนจะข้ามเดือนที่ไม่มีวันที่เลือกไว้ ช่วงเวลาที่วางแผนไว้ไม่สามารถทับซ้อนกันได้ การบำรุงรักษาที่ล่าช้าจะดำเนินการต่อในช่วงเวลาถัดไป", + "duration": "ระยะเวลาโดยประมาณ (นาที)", + "grace": "ระยะเวลาผ่อนผัน (นาที)", + "notify": "แจ้งเตือนครั้งเดียวหากยังคงออฟไลน์หลังจากเวลาที่คาดการณ์และช่วงเวลาผ่อนผันเสร็จสิ้นแล้ว", + "addSchedule": "เพิ่มตารางเวลา", + "schedules": "ตารางเวลา", + "noSchedules": "ไม่มีกำหนดการบำรุงรักษา", + "completed": "เริ่มแล้ว", + "minutes_one": "{{count}} นาที", + "minutes_other": "{{count}} นาที", + "remove": "ลบกำหนดการ", + "loadFailed": "ไม่สามารถรีเฟรชสถานะการบำรุงรักษาได้ การเปลี่ยนแปลงจะถูกปิดใช้งานจนกว่าจะสามารถโหลดได้", + "loading": "กำลังโหลดสถานะการบำรุงรักษา…" } } diff --git a/plugins/automations/locales/translated/tr_TR.json b/plugins/automations/locales/translated/tr_TR.json index 219593365..62a10407c 100644 --- a/plugins/automations/locales/translated/tr_TR.json +++ b/plugins/automations/locales/translated/tr_TR.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Otomasyonları görüntüle", + "description": "Otomasyonları ve tarihçelerini inceleyin." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Otomasyonlar oluşturun", + "description": "Yeni otomasyonlar ekleyin." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Düzenleme otomasyonları", + "description": "Mevcut otomasyonları değiştirin." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Otomasyonları sil", + "description": "Otomasyonları kaldırın." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Otomasyonları çalıştır", + "description": "Otomasyonu manuel olarak tetikleyin." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "Otomasyonlar", + "tabAutomations": "Otomasyonlar", + "tabRuns": "Koşular", "tabChannels": "Kanallar", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "Yeni Otomasyon", + "backToAutomations": "Otomasyonlara geri dön", + "createTitle": "Yeni Otomasyon", + "editTitle": "Düzenleme Otomasyonu", + "empty": "Henüz otomasyon yok. Bir ölçüme, bir programa veya bir olaya tepki verecek bir otomasyon oluşturun.", + "emptyRuns": "Henüz hiçbir deneme yapılmadı.", + "channelsHint": "Uyarılar bölümünde kanallar oluşturulur.", + "noChannelsHint": "Bildirim her zaman gelen kutunuza gönderilir. Bildirimleri başka bir yere de göndermek için Bildirimler bölümüne kanallar ekleyin.", "nameLabel": "Ad", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "Örneğin, /data klasörü dolduğunda temizle.", "nameRequired": "Ad zorunludur", "descriptionLabel": "Açıklama", "descriptionPlaceholder": "İsteğe bağlı açıklama", "enabledLabel": "Etkin", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "Eğer zaten çalışıyorsa", + "concurrencyHint": "Son çalıştırma tamamlanmadan önce bu durum tekrar tetiklendiğinde ne yapılmalı?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Yeni sürümü atla", + "queue": "Bekle ve sonra koş", + "allow": "İkisini birden çalıştırın" }, "save": "Kaydet", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "Otomasyon oluşturuldu", + "updated": "Otomasyon kaydedildi", + "deleted": "Otomasyon silindi", + "deleteConfirm": "Bu otomasyonu silerseniz, çalıştırma geçmişi de silinir.", + "runNow": "Şimdi çalıştır", + "testRun": "Test çalıştırması", + "testRunHint": "Her adımı çalıştırır ancak Termix dışındaki hiçbir şeye dokunmaz.", + "runStarted": "Koşu başladı", + "runFinished": "Çalıştırma tamamlandı: {{status}}", "trigger": "Tetikleyici", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", + "steps": "Adımlar", + "addStep": "Adım ekle", + "removeStep": "Adımı kaldır", + "moveUp": "Yukarı çık", + "moveDown": "Aşağıya doğru hareket edin", + "noSteps": "Henüz hiçbir adım yok. Ne olması gerektiğini belirtmek için bir adım ekleyin.", "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "webhookTokenDescription": "Bu yalnızca bir kez gösterilecektir. Şimdi kaydedin, daha sonra geri alınamaz.", "copy": "Kopyala", "copied": "Kopyalandı", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewBuilder": "İnşaatçı", + "viewGraph": "Grafik", + "lastRun": "Son koşu", "never": "Hiçbir zaman", "duration": "{{seconds}}s", "stepOutput": "Çıktı", "stepError": "Hata", - "dryRunBadge": "Test run", + "dryRunBadge": "Test çalıştırması", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "Tetikleyici sunucu", + "host": "Belirli ev sahibi", + "fleet": "Filo", "all": "Tüm sunucular" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Metrik eşik", + "host_status": "Sunucu yukarı veya aşağı hareket eder.", + "health_check": "Sağlık kontrolü değişiklikleri", + "schedule": "Bir program dahilinde", + "docker_event": "Konteyner olayı", + "internal_event": "Termix etkinliği", + "webhook": "Gelen web kancası" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "Uyarı gönder", + "http": "Bir URL'yi çağırın", + "run_snippet": "Bir kod parçası çalıştırın.", + "run_command": "Bir komut çalıştır", + "docker": "Bir konteyneri kontrol edin.", + "tunnel": "Bir tüneli kontrol edin.", + "wol": "Bir ev sahibini uyandırın", + "wait": "Beklemek", + "set_var": "Bir değişken tanımlayın", + "if": "Eğer / aksi takdirde", + "run_automation": "Başka bir otomasyon çalıştırın", "stop": "Durdurma" }, "statuses": { "running": "Çalışıyor", "success": "Başarılı", "failed": "Başarısız", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "Süre doldu", + "skipped": "Atlandı", + "cancelled": "İptal edildi" }, "fields": { "host": "Ana Bilgisayar", "metric": "Metrik", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "Montaj noktası", + "operator": "O", + "value": "Değer", + "forSeconds": "(Saniye) süreyle sürdürüldü", "cooldown": "Bekleme süresi (dakika)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "Cron ifadesi", + "intervalSeconds": "Her (saniye)", + "timezone": "Saat dilimi", + "timezoneServer": "Sunucu zamanı", + "timezoneHint": "Cron zamanlama ayarları bu bölgede okunur. Aralıklı zamanlamalar için geçerli değildir.", + "container": "Konteyner", "command": "Komut", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "Yöntem", + "body": "Vücut", + "channels": "Ayrıca şuraya da gönderin:", "title": "Başlık", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "Mesaj", + "snippet": "Alıntı", + "seconds": "Saniyeler", + "conditionLeftPlaceholder": "Kontrol edilecek değer", + "conditionRightPlaceholder": "Karşılaştırın", + "variableName": "Değişken adı", + "variableValue": "Değer", + "elevated": "sudo ile çalıştır", + "onError": "Eğer bu başarısız olursa", + "allowPrivateNetwork": "Yerel ağ adreslerine izin verin.", + "allowPrivateNetworkHint": "Yerel ağınızda kendi sunucunuzda barındırdığınız bir hizmet için gereklidir. Dahili adreslere yapılan istekleri engellemek için varsayılan olarak kapalıdır." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Koşuyu durdurun", + "continue": "Devam edin" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "İhtiyaçlar {{plugin}}", + "needsPluginHint": "Bu otomasyon, ihtiyaç duyulan özellik tekrar kullanılabilir hale gelene kadar atlanır.", "offBadge": "Kapalı", "docsLink": "Belgelere bak", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}saniye önce", "minutes": "{{count}} dakika önce", "hours": "{{count}} saat önce", "days": "{{count}} gün önce" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "Otomasyonlar" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Otomasyonlar", + "feature_automations_desc": "Bir şey olduğunda adımları otomatik olarak çalıştırın ve bildirim alın." }, "maintenance": { "title": "Bakım", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Çalışma devam ederken sunucu durumu, sağlık, ölçüm, konteyner ve tünel bağlantı kesme otomasyonlarını duraklatın. İzleme, manuel çalıştırmalar ve planlanmış otomasyonlar devam eder.", + "denied": "Bakım çalışmalarını görüntüleme izniniz yok.", + "sharedReadOnly": "Bu sunucu sizinle paylaşıldı. Bakım değişikliklerini yalnızca sahibi yapabilir.", + "failed": "Bakım bilgileri güncellenemedi.", + "active": "Bakım aktif", + "estimated": "Tahmini tamamlanma tarihi", + "noAutoEnd": "Tahmin edilen bakım işlemi, bakımın sonunu getirmez. İş tamamlandığında bakım işlemini açıkça sonlandırın.", + "endConfirm": "Bu sunucu için bakım işlemlerini sonlandırıp olay tetiklemeli otomasyonları yeniden başlatmak mı istiyorsunuz?", + "confirmEnd": "Sonu onaylayın", "cancel": "İptal", - "end": "End maintenance", + "end": "Son bakım", "action": "İşlem", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "Şimdi başla", + "schedule": "Daha sonra için planla", + "reason": "Sebep", + "startUtc": "İlk başlangıç (UTC)", + "repeat": "Tekrarlamak", + "once": "Bir kere", + "weekly": "Haftalık", + "monthly": "Aylık", + "utcHelp": "Planlamalar yıl boyunca UTC saat dilimini kullanır. Aylık planlamalar, seçilen günün olmadığı ayları atlar. Planlanan zaman dilimleri üst üste gelemez; uzadıkça bakım çalışmaları daha sonraki zaman dilimlerinde de devam eder.", + "duration": "Tahmini süre (dakika)", + "grace": "Bekleme süresi (dakika)", + "notify": "Tahmini süre ve ek bekleme süresinden sonra hala çevrimdışıysa bir kez bildirim gönderin.", + "addSchedule": "Program ekle", + "schedules": "Programlar", + "noSchedules": "Bakım programı yok.", + "completed": "Zaten başladı", + "minutes_one": "{{count}} dakika", + "minutes_other": "{{count}} dakika", + "remove": "Programı kaldır", + "loadFailed": "Bakım durumu yenilenemedi. Yüklenene kadar değişiklikler devre dışı bırakılmıştır.", + "loading": "Bakım durumu yükleniyor…" } } diff --git a/plugins/automations/locales/translated/uk_UA.json b/plugins/automations/locales/translated/uk_UA.json index b459b4ade..483cf0367 100644 --- a/plugins/automations/locales/translated/uk_UA.json +++ b/plugins/automations/locales/translated/uk_UA.json @@ -1,211 +1,211 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Переглянути автоматизації", + "description": "Перегляньте автоматизації та їхню історію." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Створення автоматизацій", + "description": "Додайте нові автоматизації." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Редагувати автоматизації", + "description": "Змінити існуючі автоматизації." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Видалити автоматизації", + "description": "Видаліть автоматизації." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Запуск автоматизації", + "description": "Запустіть автоматизацію вручну." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", - "tabChannels": "Channels", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Clean up /data when it fills", - "nameRequired": "Name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "enabledLabel": "Enabled", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "title": "Автоматизація", + "tabAutomations": "Автоматизація", + "tabRuns": "Пробіжки", + "tabChannels": "Канали", + "createAutomation": "Нова автоматизація", + "backToAutomations": "Назад до автоматизації", + "createTitle": "Нова автоматизація", + "editTitle": "Редагувати автоматизацію", + "empty": "Автоматизації поки що немає. Створіть її, щоб реагувати на метрику, розклад або подію.", + "emptyRuns": "Поки що жодних пробіжок.", + "channelsHint": "Канали налаштовуються в розділі «Сповіщення»", + "noChannelsHint": "Сповіщення завжди надходить до вашої поштової скриньки. Додайте канали в розділі \"Сповіщення\", щоб також надсилати його кудись ще.", + "nameLabel": "Ім'я", + "namePlaceholder": "наприклад, Очищати /дані, коли вони заповнюються", + "nameRequired": "Ім'я обов'язкове", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Додатковий опис", + "enabledLabel": "Увімкнено", + "concurrencyLabel": "Якщо воно вже працює", + "concurrencyHint": "Що робити, якщо це спрацьовує знову до завершення останнього запуску.", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Пропустити новий пробіг", + "queue": "Чекай і біжіть за ним", + "allow": "Запустіть обидва одночасно" }, - "save": "Save", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", - "trigger": "Trigger", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", - "copy": "Copy", - "copied": "Copied", + "save": "Зберегти", + "created": "Автоматизація створена", + "updated": "Автоматизація збережена", + "deleted": "Автоматизацію видалено", + "deleteConfirm": "Видалити цю автоматизацію? Історія її запуску також видаляється.", + "runNow": "Біжи зараз", + "testRun": "Тестовий запуск", + "testRunHint": "Виконує кожен крок, але не торкається нічого поза Termix.", + "runStarted": "Біг розпочато", + "runFinished": "Виконання завершено: {{status}}", + "trigger": "Тригер", + "steps": "Кроки", + "addStep": "Додати крок", + "removeStep": "Видалити крок", + "moveUp": "Перемістити вгору", + "moveDown": "Перемістити вниз", + "noSteps": "Кроків поки що немає. Додайте один, щоб пояснити, що має статися.", + "webhookTokenTitle": "URL-адреса вебхука", + "webhookTokenDescription": "Це відображається один раз. Збережіть це зараз, пізніше це неможливо буде отримати.", + "copy": "Копіювати", + "copied": "Скопійовано", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", - "never": "Never", - "duration": "{{seconds}}s", - "stepOutput": "Output", - "stepError": "Error", - "dryRunBadge": "Test run", + "viewBuilder": "Будівельник", + "viewGraph": "Графік", + "lastRun": "Останній запуск", + "never": "Ніколи", + "duration": "{{seconds}}с", + "stepOutput": "Вихід", + "stepError": "Помилка", + "dryRunBadge": "Тестовий запуск", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", - "all": "All hosts" + "trigger": "Хост-тригер", + "host": "Конкретний хост", + "fleet": "Флот", + "all": "Усі хости" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Поріг показника", + "host_status": "Хост піднімається або опускається", + "health_check": "Зміни в перевірці стану здоров'я", + "schedule": "За розкладом", + "docker_event": "Подія контейнера", + "internal_event": "Подія Termix", + "webhook": "Вхідний вебхук" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", - "stop": "Stop" + "notify": "Надіслати сповіщення", + "http": "Виклик URL-адреси", + "run_snippet": "Виконати фрагмент коду", + "run_command": "Виконайте команду", + "docker": "Керування контейнером", + "tunnel": "Контролюйте тунель", + "wol": "Розбудити господаря", + "wait": "Зачекайте", + "set_var": "Встановити змінну", + "if": "Якщо / інакше", + "run_automation": "Запустіть ще одну автоматизацію", + "stop": "СТІЙ" }, "statuses": { - "running": "Running", - "success": "Success", - "failed": "Failed", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "running": "Біг", + "success": "Успіх", + "failed": "Не вдалося", + "timeout": "Час очікування минув", + "skipped": "Пропущено", + "cancelled": "Скасовано" }, "fields": { - "host": "Host", - "metric": "Metric", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", - "cooldown": "Cooldown (minutes)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", - "command": "Command", - "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", - "title": "Title", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "host": "Хост", + "metric": "Метрика", + "mount": "Точка монтування", + "operator": "Є", + "value": "Значення", + "forSeconds": "Триває протягом (секунд)", + "cooldown": "Охолодження (хвилини)", + "cron": "Cron-вираз", + "intervalSeconds": "Кожні (секунди)", + "timezone": "Часовий пояс", + "timezoneServer": "Час сервера", + "timezoneHint": "Час Cron зчитується в цій зоні. Не стосується інтервальних розкладів.", + "container": "Контейнер", + "command": "Команда", + "url": "URL-адреса", + "method": "Метод", + "body": "Тіло", + "channels": "Також надіслати до", + "title": "Назва", + "message": "Повідомлення", + "snippet": "Фрагмент", + "seconds": "Секунди", + "conditionLeftPlaceholder": "Значення для перевірки", + "conditionRightPlaceholder": "Порівняйте з", + "variableName": "Ім'я змінної", + "variableValue": "Значення", + "elevated": "Запустити за допомогою sudo", + "onError": "Якщо це не вдасться", + "allowPrivateNetwork": "Дозволити адреси локальної мережі", + "allowPrivateNetworkHint": "Потрібно для самостійно розміщеної служби у вашій локальній мережі. Вимкнено за замовчуванням, щоб запобігти запитам до внутрішніх адрес." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Зупинити біг", + "continue": "Продовжуйте" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", - "offBadge": "Off", - "docsLink": "View docs", + "needsPlugin": "Потребує {{plugin}}", + "needsPluginHint": "Ця автоматизація пропускається, доки потрібна функція знову не стане доступною.", + "offBadge": "Вимкнено", + "docsLink": "Переглянути документи", "ago": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}с тому", + "minutes": "{{count}}хв тому", + "hours": "{{count}}год тому", + "days": "{{count}}днів тому" } } } }, "nav": { - "automations": "Automations" + "automations": "Автоматизація" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Автоматизація", + "feature_automations_desc": "Автоматично виконувати кроки, коли щось відбувається, та отримувати сповіщення." }, "maintenance": { - "title": "Maintenance", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", - "cancel": "Cancel", - "end": "End maintenance", - "action": "Action", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "title": "Технічне обслуговування", + "description": "Призупинити автоматизацію стану хоста, справності, метрик, контейнерів та відключення тунелів під час виконання роботи. Моніторинг, ручні запуски та запланована автоматизація продовжуються.", + "denied": "У вас немає дозволу на перегляд технічного обслуговування.", + "sharedReadOnly": "Цей хост надано вам. Тільки його власник може змінити налаштування обслуговування.", + "failed": "Не вдалося оновити технічне обслуговування.", + "active": "Технічне обслуговування активне", + "estimated": "Очікуване завершення", + "noAutoEnd": "Кошторис не завершує технічне обслуговування. Завершіть його чітко після завершення робіт.", + "endConfirm": "Завершити технічне обслуговування та відновити автоматизацію, що спрацьовує за подіями, для цього хоста?", + "confirmEnd": "Підтвердити кінець", + "cancel": "Скасувати", + "end": "Закінчення технічного обслуговування", + "action": "Дія", + "startNow": "Почати зараз", + "schedule": "Запланувати на пізніше", + "reason": "Причина", + "startUtc": "Перший запуск (UTC)", + "repeat": "Повторити", + "once": "Одного разу", + "weekly": "Щотижнево", + "monthly": "Щомісяця", + "utcHelp": "Розклади використовують UTC протягом року. Щомісячні розклади пропускають місяці без вибраного дня. Заплановані вікна не можуть перетинатися; перевищення термінів технічного обслуговування продовжується в наступних вікнах.", + "duration": "Орієнтовна тривалість (хвилини)", + "grace": "Пільговий період (хвилини)", + "notify": "Повідомити один раз, якщо після оцінки плюс пільговий період все ще не в мережі", + "addSchedule": "Додати розклад", + "schedules": "Розклади", + "noSchedules": "Немає графіків технічного обслуговування.", + "completed": "Вже розпочато", + "minutes_one": "{{count}} хвилина", + "minutes_other": "{{count}} хвилин", + "remove": "Видалити розклад", + "loadFailed": "Не вдалося оновити стан обслуговування. Зміни вимкнено, доки його не буде завантажено.", + "loading": "Завантаження статусу технічного обслуговування…" } } diff --git a/plugins/automations/locales/translated/vi_VN.json b/plugins/automations/locales/translated/vi_VN.json index 1e53b35f0..9f54650df 100644 --- a/plugins/automations/locales/translated/vi_VN.json +++ b/plugins/automations/locales/translated/vi_VN.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "Xem các quy trình tự động hóa", + "description": "Xem các quy trình tự động hóa và lịch sử của chúng." }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "Tạo các quy trình tự động hóa", + "description": "Thêm các quy trình tự động hóa mới." }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "Chỉnh sửa tự động hóa", + "description": "Thay đổi các quy trình tự động hóa hiện có." }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "Xóa các quy trình tự động hóa", + "description": "Loại bỏ các quy trình tự động hóa." }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "Chạy các quy trình tự động hóa", + "description": "Kích hoạt quy trình tự động bằng tay." } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "Tự động hóa", + "tabAutomations": "Tự động hóa", + "tabRuns": "Chạy", "tabChannels": "Kênh", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "Tự động hóa mới", + "backToAutomations": "Quay lại phần Tự động hóa", + "createTitle": "Tự động hóa mới", + "editTitle": "Tự động chỉnh sửa", + "empty": "Hiện chưa có tính năng tự động hóa nào. Hãy tạo một tính năng để phản ứng với một chỉ số, lịch trình hoặc sự kiện nào đó.", + "emptyRuns": "Chưa có lượt chạy nào.", + "channelsHint": "Các kênh được thiết lập trong mục Cảnh báo.", + "noChannelsHint": "Thông báo luôn được gửi đến hộp thư đến của bạn. Thêm kênh trong mục Thông báo để gửi thông báo đến các địa điểm khác nữa.", "nameLabel": "Tên", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "Ví dụ: Dọn dẹp thư mục /data khi nó đầy.", "nameRequired": "Tên là bắt buộc", "descriptionLabel": "Mô tả", "descriptionPlaceholder": "Mô tả tùy chọn", "enabledLabel": "Đã bật", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "Nếu nó đang chạy", + "concurrencyHint": "Phải làm gì khi sự cố này xảy ra lần nữa trước khi quá trình chạy cuối cùng hoàn tất?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "Bỏ qua lần chạy mới", + "queue": "Chờ đợi và chạy theo", + "allow": "Chạy cả hai cùng một lúc" }, "save": "Lưu", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "Tự động hóa được tạo", + "updated": "Tự động hóa đã được lưu", + "deleted": "Tự động hóa đã bị xóa", + "deleteConfirm": "Xóa tự động hóa này? Lịch sử chạy của nó cũng bị xóa.", + "runNow": "Chạy ngay", + "testRun": "Chạy thử nghiệm", + "testRunHint": "Nó thực hiện mọi bước nhưng không chạm vào bất cứ thứ gì bên ngoài Termix.", + "runStarted": "Chạy bắt đầu", + "runFinished": "Quá trình chạy đã hoàn tất: {{status}}", "trigger": "Kích hoạt", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", - "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "steps": "Các bước", + "addStep": "Thêm bước", + "removeStep": "Xóa bước", + "moveUp": "Tiến lên", + "moveDown": "Di chuyển xuống", + "noSteps": "Chưa có bước nào. Hãy thêm một bước để mô tả những gì cần xảy ra.", + "webhookTokenTitle": "URL Webhook", + "webhookTokenDescription": "Thông tin này chỉ hiển thị một lần. Hãy lưu lại ngay, bạn sẽ không thể khôi phục lại sau này.", "copy": "Sao chép", "copied": "Đã sao chép", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewBuilder": "Nhà xây dựng", + "viewGraph": "Đồ thị", + "lastRun": "Lần chạy cuối", "never": "Chưa bao giờ", "duration": "{{seconds}}s", "stepOutput": "Đầu ra", "stepError": "Lỗi", - "dryRunBadge": "Test run", + "dryRunBadge": "Chạy thử nghiệm", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "Máy chủ kích hoạt", + "host": "Máy chủ cụ thể", + "fleet": "Hạm đội", "all": "Tất cả máy chủ" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "Ngưỡng số liệu", + "host_status": "Máy chủ tăng hoặc giảm", + "health_check": "Thay đổi trong kiểm tra sức khỏe", + "schedule": "Theo lịch trình", + "docker_event": "Sự kiện container", + "internal_event": "Sự kiện Termix", + "webhook": "Webhook đến" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "Gửi thông báo", + "http": "Gọi một URL", + "run_snippet": "Chạy một đoạn mã", + "run_command": "Chạy một lệnh", + "docker": "Kiểm soát một container", + "tunnel": "Kiểm soát đường hầm", + "wol": "Đánh thức một chủ nhà", + "wait": "Chờ đợi", + "set_var": "Đặt một biến", + "if": "Nếu/ngược lại", + "run_automation": "Chạy một quy trình tự động hóa khác", "stop": "Bit dừng" }, "statuses": { "running": "Đang chạy", "success": "Thành công", "failed": "Thất bại", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "Hết thời gian", + "skipped": "Bỏ qua", + "cancelled": "Đã hủy" }, "fields": { "host": "Máy chủ", "metric": "Chỉ số", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "Điểm gắn kết", + "operator": "Là", + "value": "Giá trị", + "forSeconds": "Duy trì trong (giây)", "cooldown": "Thời gian chờ (phút)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "Biểu thức Cron", + "intervalSeconds": "Mỗi (giây)", + "timezone": "Múi giờ", + "timezoneServer": "Thời gian máy chủ", + "timezoneHint": "Thời gian Cron được đọc trong vùng này. Không áp dụng cho lịch trình theo khoảng thời gian.", + "container": "Thùng chứa", "command": "Lệnh", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "Phương pháp", + "body": "Thân hình", + "channels": "Cũng gửi đến", "title": "Tiêu đề", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "Tin nhắn", + "snippet": "Đoạn trích", + "seconds": "Giây", + "conditionLeftPlaceholder": "Giá trị cần kiểm tra", + "conditionRightPlaceholder": "So sánh với", + "variableName": "Tên biến", + "variableValue": "Giá trị", + "elevated": "Chạy với quyền sudo", + "onError": "Nếu điều này thất bại", + "allowPrivateNetwork": "Cho phép địa chỉ mạng cục bộ", + "allowPrivateNetworkHint": "Cần thiết cho dịch vụ tự lưu trữ trên mạng LAN của bạn. Mặc định là tắt để ngăn chặn các yêu cầu đến các địa chỉ nội bộ." }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "Dừng cuộc chạy", + "continue": "Tiếp tục" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "Nhu cầu {{plugin}}", + "needsPluginHint": "Quá trình tự động hóa này sẽ bị bỏ qua cho đến khi tính năng cần thiết được khôi phục.", "offBadge": "Tắt", "docsLink": "Xem tài liệu", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}giây trước", "minutes": "{{count}} phút trước", "hours": "{{count}} giờ trước", "days": "{{count}} ngày trước" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "Tự động hóa" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "Tự động hóa", + "feature_automations_desc": "Thực hiện các bước tự động khi có sự kiện xảy ra và nhận thông báo." }, "maintenance": { "title": "Bảo trì", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "Tạm dừng các hoạt động tự động hóa về trạng thái máy chủ, sức khỏe, số liệu, container và ngắt kết nối đường hầm trong khi công việc đang được tiến hành. Việc giám sát, chạy thủ công và các hoạt động tự động hóa theo lịch trình vẫn tiếp tục.", + "denied": "Bạn không có quyền xem thông tin bảo trì.", + "sharedReadOnly": "Máy chủ này được chia sẻ với bạn. Chỉ chủ sở hữu mới có thể thay đổi cài đặt bảo trì.", + "failed": "Không thể cập nhật bảo trì.", + "active": "Đang bảo trì", + "estimated": "Thời gian hoàn thành dự kiến", + "noAutoEnd": "Bản dự toán không kết thúc quá trình bảo trì. Hãy kết thúc quá trình bảo trì một cách rõ ràng khi công việc hoàn tất.", + "endConfirm": "Kết thúc bảo trì và tiếp tục các tự động hóa kích hoạt sự kiện cho máy chủ này?", + "confirmEnd": "Xác nhận kết thúc", "cancel": "Hủy", - "end": "End maintenance", + "end": "Kết thúc bảo trì", "action": "Hành động", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "Bắt đầu ngay bây giờ", + "schedule": "Lên lịch cho thời gian sau", + "reason": "Lý do", + "startUtc": "Lần khởi động đầu tiên (UTC)", + "repeat": "Lặp lại", + "once": "Một lần", + "weekly": "Hàng tuần", + "monthly": "Hàng tháng", + "utcHelp": "Lịch trình sử dụng múi giờ UTC suốt cả năm. Lịch trình hàng tháng sẽ bỏ qua các tháng không có ngày đã chọn. Các khung thời gian đã lên kế hoạch không được chồng chéo; việc bảo trì kéo dài sẽ tiếp tục sang các khung thời gian sau đó.", + "duration": "Thời gian ước tính (phút)", + "grace": "Thời gian ân hạn (phút)", + "notify": "Thông báo một lần nếu vẫn ngoại tuyến sau thời gian ước tính cộng thêm thời gian gia hạn.", + "addSchedule": "Thêm lịch trình", + "schedules": "Lịch trình", + "noSchedules": "Không có lịch bảo trì.", + "completed": "Đã bắt đầu", + "minutes_one": "{{count}} phút", + "minutes_other": "{{count}} phút", + "remove": "Xóa lịch trình", + "loadFailed": "Không thể cập nhật trạng thái bảo trì. Các thay đổi bị vô hiệu hóa cho đến khi có thể tải lại.", + "loading": "Đang tải trạng thái bảo trì…" } } diff --git a/plugins/automations/locales/translated/zh_CN.json b/plugins/automations/locales/translated/zh_CN.json index 2c9989a4a..54b92d442 100644 --- a/plugins/automations/locales/translated/zh_CN.json +++ b/plugins/automations/locales/translated/zh_CN.json @@ -1,110 +1,110 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "查看自动化流程", + "description": "查看自动化流程及其发展历程。" }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "创建自动化流程", + "description": "添加新的自动化流程。" }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "编辑自动化", + "description": "修改现有自动化流程。" }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "删除自动化", + "description": "移除自动化流程。" }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "运行自动化", + "description": "手动触发自动化流程。" } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", + "title": "自动化", + "tabAutomations": "自动化", "tabRuns": "运行记录", "tabChannels": "通道", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", + "createAutomation": "新自动化", + "backToAutomations": "返回自动化页面", + "createTitle": "新自动化", + "editTitle": "编辑自动化", + "empty": "目前还没有自动化流程。您可以创建一个自动化流程,使其能够根据指标、日程安排或事件做出反应。", "emptyRuns": "暂无运行记录。", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "channelsHint": "频道在警报中设置", + "noChannelsHint": "提醒信息始终会发送到您的收件箱。您可以在“提醒”中添加其他渠道,以便将提醒信息也发送到其他位置。", "nameLabel": "名称", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "例如,当 /data 目录填满时进行清理。", "nameRequired": "名称为必填项", "descriptionLabel": "描述", "descriptionPlaceholder": "可选描述", "enabledLabel": "已启用", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "如果它已经在运行", + "concurrencyHint": "如果在上次运行结束前再次触发此问题,该怎么办?", "concurrency": { - "skip": "Skip the new run", + "skip": "跳过新一轮", "queue": "稍等会再运行", - "allow": "Run both at once" + "allow": "同时运行这两个程序" }, "save": "保存", "created": "自动化已创建", "updated": "自动化已保存", "deleted": "自动化已删除", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "deleteConfirm": "删除此自动化流程?其运行历史记录也会被删除。", + "runNow": "立即运行", + "testRun": "测试运行", + "testRunHint": "执行所有步骤,但不触及 Termix 之外的任何内容。", + "runStarted": "运行已启动", + "runFinished": "运行结束: {{status}}", "trigger": "触发器", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", + "steps": "步骤", + "addStep": "添加步骤", + "removeStep": "移除步骤", + "moveUp": "向上", + "moveDown": "向下", + "noSteps": "暂无步骤。请添加步骤说明应该发生什么。", "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "webhookTokenDescription": "此信息仅显示一次。请立即保存,之后将无法调取。", "copy": "复制", "copied": "已复制", "viewJson": "JSON", "viewBuilder": "构建器", - "viewGraph": "Graph", + "viewGraph": "图形", "lastRun": "上次运行", "never": "从未", "duration": "{{seconds}}s", "stepOutput": "输出", "stepError": "错误", - "dryRunBadge": "Test run", + "dryRunBadge": "测试运行", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "触发主机", + "host": "特定主机", + "fleet": "舰队", "all": "所有主机" }, "triggerKinds": { - "metric_threshold": "Metric threshold", + "metric_threshold": "指标阈值", "host_status": "主机上线或离线", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", + "health_check": "健康检查变化", + "schedule": "按计划", + "docker_event": "容器事件", "internal_event": "Termix 事件", - "webhook": "Incoming webhook" + "webhook": "传入的 webhook" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", + "notify": "发送提醒", + "http": "调用 URL", + "run_snippet": "运行一段代码片段", + "run_command": "运行命令", + "docker": "控制容器", + "tunnel": "控制隧道", + "wol": "唤醒主机", + "wait": "等待", + "set_var": "设置变量", + "if": "如果/否则", "run_automation": "运行另一个自动化程序", "stop": "停止" }, @@ -112,52 +112,52 @@ "running": "运行中", "success": "成功", "failed": "失败", - "timeout": "Timed out", - "skipped": "Skipped", + "timeout": "超时", + "skipped": "跳过", "cancelled": "已取消" }, "fields": { "host": "主机", "metric": "指标", "mount": "挂载点", - "operator": "Is", + "operator": "是", "value": "值", - "forSeconds": "Sustained for (seconds)", + "forSeconds": "持续(秒)", "cooldown": "冷却时间(分钟)", "cron": "Cron 表达式", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "intervalSeconds": "每隔(秒)", + "timezone": "时区", + "timezoneServer": "服务器时间", + "timezoneHint": "此区域读取 cron 任务的时间。不适用于间隔任务。", + "container": "容器", "command": "命令", "url": "URL", - "method": "Method", + "method": "方法", "body": "请求体", - "channels": "Also send to", + "channels": "也发送到", "title": "标题", "message": "消息", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", + "snippet": "片段", + "seconds": "秒", + "conditionLeftPlaceholder": "待检查的值", + "conditionRightPlaceholder": "与……比较", "variableName": "变量名", "variableValue": "值", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "elevated": "使用 sudo 运行", + "onError": "如果失败", + "allowPrivateNetwork": "允许本地网络地址", + "allowPrivateNetworkHint": "在局域网内运行自托管服务时需要此功能。默认情况下处于关闭状态,以防止向内部地址发送请求。" }, "onError": { "stop": "停止运行", - "continue": "Carry on" + "continue": "继续" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "需要 {{plugin}}", + "needsPluginHint": "该自动化流程将被跳过,直到所需的功能再次可用为止。", "offBadge": "关闭", "docsLink": "查看文档", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}秒前", "minutes": "{{count}} 分钟前", "hours": "{{count}} 小时前", "days": "{{count}} 天前" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "自动化" }, "onboarding": { - "feature_automations": "Automations", + "feature_automations": "自动化", "feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。" }, "maintenance": { "title": "维护中", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "工作进行期间,暂停主机状态、健康状况、指标、容器和隧道断开连接的自动化操作。监控、手动运行和计划的自动化操作将继续进行。", + "denied": "您没有权限查看维护信息。", + "sharedReadOnly": "这台主机是与您共享的。只有主机所有者才能更改维护设置。", + "failed": "维护信息无法更新。", + "active": "维护活动", + "estimated": "预计完成时间", + "noAutoEnd": "估价并不意味着维护工作结束。工作完成后,应明确终止维护合同。", + "endConfirm": "结束此主机的维护并恢复事件触发的自动化操作?", + "confirmEnd": "确认结束", "cancel": "取消", - "end": "End maintenance", + "end": "维护结束", "action": "操作", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "立即开始", + "schedule": "稍后安排", + "reason": "原因", + "startUtc": "首次启动(UTC)", + "repeat": "重复", + "once": "一次", + "weekly": "每周", + "monthly": "月度", + "utcHelp": "全年所有计划均采用世界协调时 (UTC)。每月计划会跳过没有所选日期的月份。计划窗口不能重叠;超时维护会在后续窗口继续进行。", + "duration": "预计持续时间(分钟)", + "grace": "宽限期(分钟)", + "notify": "如果在预估时间和宽限期结束后仍离线,请通知一次。", + "addSchedule": "添加日程", + "schedules": "日程安排", + "noSchedules": "没有维护计划。", + "completed": "已经开始", + "minutes_one": "{{count}} 分钟", + "minutes_other": "{{count}} 分钟", + "remove": "移除日程", + "loadFailed": "无法刷新维护状态。更改功能已禁用,待状态加载完毕后方可启用。", + "loading": "正在加载维护状态…" } } diff --git a/plugins/automations/locales/translated/zh_TW.json b/plugins/automations/locales/translated/zh_TW.json index 3104650f6..6e8299815 100644 --- a/plugins/automations/locales/translated/zh_TW.json +++ b/plugins/automations/locales/translated/zh_TW.json @@ -1,163 +1,163 @@ { "permissions": { "view": { - "title": "View automations", - "description": "See the automations and their history." + "title": "查看自動化流程", + "description": "查看自動化流程及其發展歷程。" }, "create": { - "title": "Create automations", - "description": "Add new automations." + "title": "建立自動化流程", + "description": "新增新的自動化流程。" }, "edit": { - "title": "Edit automations", - "description": "Change existing automations." + "title": "編輯自動化", + "description": "修改現有自動化流程。" }, "delete": { - "title": "Delete automations", - "description": "Remove automations." + "title": "刪除自動化", + "description": "移除自動化流程。" }, "run": { - "title": "Run automations", - "description": "Trigger an automation by hand." + "title": "運作自動化", + "description": "手動觸發自動化流程。" } }, "newUi": { "sidebar": { "automations": { - "title": "Automations", - "tabAutomations": "Automations", - "tabRuns": "Runs", + "title": "自動化", + "tabAutomations": "自動化", + "tabRuns": "跑", "tabChannels": "通道", - "createAutomation": "New Automation", - "backToAutomations": "Back to Automations", - "createTitle": "New Automation", - "editTitle": "Edit Automation", - "empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", - "emptyRuns": "No runs yet.", - "channelsHint": "Channels are set up in Alerts", - "noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", + "createAutomation": "新自動化", + "backToAutomations": "返回自動化頁面", + "createTitle": "新自動化", + "editTitle": "編輯自動化", + "empty": "目前還沒有自動化流程。您可以建立一個自動化流程,使其能夠根據指標、日程安排或事件做出反應。", + "emptyRuns": "目前還沒有人運行。", + "channelsHint": "頻道在警報中設置", + "noChannelsHint": "提醒訊息始終會傳送到您的收件匣。您可以在「提醒」中新增其他管道,以便將提醒訊息也傳送到其他位置。", "nameLabel": "名稱", - "namePlaceholder": "e.g., Clean up /data when it fills", + "namePlaceholder": "例如,當 /data 目錄填滿時進行清理。", "nameRequired": "名稱為必填", "descriptionLabel": "說明", "descriptionPlaceholder": "選用說明", "enabledLabel": "已啟用", - "concurrencyLabel": "If it is already running", - "concurrencyHint": "What to do when this is triggered again before the last run has finished.", + "concurrencyLabel": "如果它已經在運行", + "concurrencyHint": "如果在上次運行結束前再次觸發此問題,該怎麼辦?", "concurrency": { - "skip": "Skip the new run", - "queue": "Wait and run after", - "allow": "Run both at once" + "skip": "跳過新一輪", + "queue": "等待並追趕", + "allow": "同時運行這兩個程序" }, "save": "儲存", - "created": "Automation created", - "updated": "Automation saved", - "deleted": "Automation deleted", - "deleteConfirm": "Delete this automation? Its run history is deleted too.", - "runNow": "Run now", - "testRun": "Test run", - "testRunHint": "Runs every step but does not touch anything outside Termix.", - "runStarted": "Run started", - "runFinished": "Run finished: {{status}}", + "created": "自動化創建", + "updated": "自動化保存", + "deleted": "自動化刪除", + "deleteConfirm": "刪除此自動化流程?其運行歷史記錄也會被刪除。", + "runNow": "立即運行", + "testRun": "測試運行", + "testRunHint": "執行所有步驟,但不觸及 Termix 以外的任何內容。", + "runStarted": "運行已啟動", + "runFinished": "運轉結束: {{status}}", "trigger": "觸發條件", - "steps": "Steps", - "addStep": "Add step", - "removeStep": "Remove step", - "moveUp": "Move up", - "moveDown": "Move down", - "noSteps": "No steps yet. Add one to say what should happen.", + "steps": "步驟", + "addStep": "新增步驟", + "removeStep": "移除步驟", + "moveUp": "向上", + "moveDown": "向下", + "noSteps": "暫無步驟。請加入步驟說明應該發生什麼。", "webhookTokenTitle": "Webhook URL", - "webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", + "webhookTokenDescription": "此資訊僅顯示一次。請立即儲存,之後將無法調取。", "copy": "複製", "copied": "已複製", "viewJson": "JSON", - "viewBuilder": "Builder", - "viewGraph": "Graph", - "lastRun": "Last run", + "viewBuilder": "建造者", + "viewGraph": "圖形", + "lastRun": "最後一次運行", "never": "從未", "duration": "{{seconds}}s", "stepOutput": "輸出", "stepError": "錯誤", - "dryRunBadge": "Test run", + "dryRunBadge": "測試運行", "hostSelector": { - "trigger": "Triggering host", - "host": "Specific host", - "fleet": "Fleet", + "trigger": "觸發主機", + "host": "特定主機", + "fleet": "艦隊", "all": "所有主機" }, "triggerKinds": { - "metric_threshold": "Metric threshold", - "host_status": "Host goes up or down", - "health_check": "Health check changes", - "schedule": "On a schedule", - "docker_event": "Container event", - "internal_event": "Termix event", - "webhook": "Incoming webhook" + "metric_threshold": "指標閾值", + "host_status": "主機升溫或降溫", + "health_check": "健康檢查變化", + "schedule": "按計劃", + "docker_event": "容器事件", + "internal_event": "Termix 活動", + "webhook": "傳入的 webhook" }, "stepTypes": { - "notify": "Send an alert", - "http": "Call a URL", - "run_snippet": "Run a snippet", - "run_command": "Run a command", - "docker": "Control a container", - "tunnel": "Control a tunnel", - "wol": "Wake a host", - "wait": "Wait", - "set_var": "Set a variable", - "if": "If / otherwise", - "run_automation": "Run another automation", + "notify": "發送提醒", + "http": "呼叫 URL", + "run_snippet": "運行一段程式碼片段", + "run_command": "運行命令", + "docker": "控制容器", + "tunnel": "控制隧道", + "wol": "喚醒主機", + "wait": "等待", + "set_var": "設定變數", + "if": "如果/否則", + "run_automation": "執行另一個自動化流程", "stop": "停止位元" }, "statuses": { "running": "執行中", "success": "成功", "failed": "失敗", - "timeout": "Timed out", - "skipped": "Skipped", - "cancelled": "Cancelled" + "timeout": "超時", + "skipped": "跳過", + "cancelled": "取消" }, "fields": { "host": "主機", "metric": "指標", - "mount": "Mount point", - "operator": "Is", - "value": "Value", - "forSeconds": "Sustained for (seconds)", + "mount": "登山點", + "operator": "是", + "value": "價值", + "forSeconds": "持續(秒)", "cooldown": "冷卻時間(分鐘)", - "cron": "Cron expression", - "intervalSeconds": "Every (seconds)", - "timezone": "Time zone", - "timezoneServer": "Server time", - "timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", - "container": "Container", + "cron": "複製表達式", + "intervalSeconds": "每隔(秒)", + "timezone": "時區", + "timezoneServer": "伺服器時間", + "timezoneHint": "此區域讀取 cron 任務的時間。不適用於間隔任務。", + "container": "容器", "command": "指令", "url": "URL", - "method": "Method", - "body": "Body", - "channels": "Also send to", + "method": "方法", + "body": "身體", + "channels": "也發送到", "title": "標題", - "message": "Message", - "snippet": "Snippet", - "seconds": "Seconds", - "conditionLeftPlaceholder": "Value to check", - "conditionRightPlaceholder": "Compare against", - "variableName": "Variable name", - "variableValue": "Value", - "elevated": "Run with sudo", - "onError": "If this fails", - "allowPrivateNetwork": "Allow local network addresses", - "allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." + "message": "訊息", + "snippet": "片段", + "seconds": "秒", + "conditionLeftPlaceholder": "待檢查的數值", + "conditionRightPlaceholder": "與…比較", + "variableName": "變數名", + "variableValue": "價值", + "elevated": "使用 sudo 運行", + "onError": "如果失敗", + "allowPrivateNetwork": "允許本地網路位址", + "allowPrivateNetworkHint": "在區域網路內執行自託管服務時需要此功能。預設為關閉狀態,以防止向內部位址發送請求。" }, "onError": { - "stop": "Stop the run", - "continue": "Carry on" + "stop": "停止奔跑", + "continue": "繼續" }, - "needsPlugin": "Needs {{plugin}}", - "needsPluginHint": "This automation is skipped until the feature it needs is available again.", + "needsPlugin": "需要 {{plugin}}", + "needsPluginHint": "這個自動化流程將被跳過,直到所需的功能再次可用為止。", "offBadge": "關閉", "docsLink": "檢視文件", "ago": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}秒前", "minutes": "{{count}} 分鐘前", "hours": "{{count}} 小時前", "days": "{{count}} 天前" @@ -166,46 +166,46 @@ } }, "nav": { - "automations": "Automations" + "automations": "自動化" }, "onboarding": { - "feature_automations": "Automations", - "feature_automations_desc": "Run steps automatically when something happens, and get notified." + "feature_automations": "自動化", + "feature_automations_desc": "當發生某些事情時,自動運行步驟並接收通知。" }, "maintenance": { "title": "維護", - "description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", - "denied": "You do not have permission to view maintenance.", - "sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", - "failed": "Maintenance could not be updated.", - "active": "Maintenance active", - "estimated": "Estimated completion", - "noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", - "endConfirm": "End maintenance and resume event-triggered automations for this host?", - "confirmEnd": "Confirm end", + "description": "工作進行期間,暫停主機狀態、健康狀況、指標、容器和隧道斷開連線的自動化操作。監控、手動運行和計劃的自動化操作將繼續進行。", + "denied": "您沒有權限查看維護資訊。", + "sharedReadOnly": "這台主機是與您共享的。只有主機所有者才能變更維護設定。", + "failed": "維護資訊無法更新。", + "active": "維護活動", + "estimated": "預計完成時間", + "noAutoEnd": "估價並不意味著維護工作結束。工作完成後,應明確終止維護合約。", + "endConfirm": "結束此主機的維護並恢復事件觸發的自動化操作?", + "confirmEnd": "確認結束", "cancel": "取消", - "end": "End maintenance", + "end": "維護結束", "action": "動作", - "startNow": "Start now", - "schedule": "Schedule for later", - "reason": "Reason", - "startUtc": "First start (UTC)", - "repeat": "Repeat", - "once": "Once", - "weekly": "Weekly", - "monthly": "Monthly", - "utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.", - "duration": "Estimated duration (minutes)", - "grace": "Grace period (minutes)", - "notify": "Notify once if still offline after the estimate plus grace period", - "addSchedule": "Add schedule", - "schedules": "Schedules", - "noSchedules": "No maintenance schedules.", - "completed": "Already started", - "minutes_one": "{{count}} minute", - "minutes_other": "{{count}} minutes", - "remove": "Remove schedule", - "loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", - "loading": "Loading maintenance status…" + "startNow": "立即開始", + "schedule": "稍後安排", + "reason": "原因", + "startUtc": "首次啟動(UTC)", + "repeat": "重複", + "once": "一次", + "weekly": "每週", + "monthly": "每月", + "utcHelp": "全年所有計劃均採用世界協調時 (UTC)。每月計劃會跳過沒有所選日期的月份。計劃視窗不能重疊;逾時維護會在後續視窗繼續進行。", + "duration": "預計持續時間(分鐘)", + "grace": "寬限期(分鐘)", + "notify": "如果在預估時間和寬限期結束後仍離線,請通知一次。", + "addSchedule": "新增日程", + "schedules": "日程安排", + "noSchedules": "沒有維護計劃。", + "completed": "已經開始", + "minutes_one": "{{count}} 分鐘", + "minutes_other": "{{count}} 分鐘", + "remove": "移除行程", + "loadFailed": "無法刷新維護狀態。更改功能已停用,待狀態載入完畢後方可啟用。", + "loading": "正在載入維護狀態…" } } diff --git a/plugins/docker/locales/translated/bn_BD.json b/plugins/docker/locales/translated/bn_BD.json index 631c3a919..30f924a5b 100644 --- a/plugins/docker/locales/translated/bn_BD.json +++ b/plugins/docker/locales/translated/bn_BD.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "এই হোস্টের জন্য ডকার সক্রিয় করা নেই।", + "validating": "ডকার যাচাই করা হচ্ছে...", + "connecting": "সংযোগ স্থাপন...", + "error": "ত্রুটি", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", - "start": "Start", - "stop": "Stop", - "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "connectionFailed": "ডকারের সাথে সংযোগ করতে ব্যর্থ হয়েছে", + "containerStarted": "কন্টেইনার {{name}} চালু হয়েছে", + "failedToStartContainer": "{{name}} কন্টেইনারটি শুরু করতে ব্যর্থ হয়েছে", + "containerStopped": "কন্টেইনার {{name}} থেমে গেছে", + "failedToStopContainer": "কন্টেইনার বন্ধ করতে ব্যর্থ {{name}}", + "containerRestarted": "কন্টেইনার {{name}} পুনরায় চালু হয়েছে", + "failedToRestartContainer": "কন্টেইনার পুনরায় চালু করতে ব্যর্থ {{name}}", + "containerPaused": "কন্টেইনার {{name}} থামানো হয়েছে", + "containerUnpaused": "কন্টেইনার {{name}} বিরতিহীন", + "failedToTogglePauseContainer": "কন্টেইনার {{name}} এর জন্য বিরতি অবস্থা টগল করতে ব্যর্থ হয়েছে", + "containerRemoved": "কন্টেইনার {{name}} সরানো হয়েছে", + "failedToRemoveContainer": "কন্টেইনার অপসারণ করা সম্ভব হয়নি {{name}}", + "image": "ছবি", + "ports": "বন্দর", + "noPorts": "কোন পোর্ট নেই", + "start": "শুরু করুন", + "stop": "থামুন", + "status": "অবস্থা", + "actions": "কর্ম", + "cardView": "কার্ড ভিউ", + "listView": "তালিকা দৃশ্য", + "confirmRemoveContainer": "আপনি কি '{{name}}' কন্টেইনারটি সরাতে নিশ্চিত? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।", + "runningContainerWarning": "সতর্কীকরণ: এই কন্টেইনারটি বর্তমানে চালু আছে। এটি অপসারণ করলে প্রথমে কন্টেইনারটি বন্ধ হবে।", + "loadingContainers": "কন্টেইনার লোড করা হচ্ছে...", + "manager": "ডকার ম্যানেজার", + "autoRefresh": "স্বয়ংক্রিয় রিফ্রেশ", + "timestamps": "টাইমস্ট্যাম্প", + "lines": "লাইন", + "filterLogs": "লগ ফিল্টার করুন...", + "refresh": "রিফ্রেশ", + "download": "ডাউনলোড করুন", + "clear": "পরিষ্কার", + "logsDownloaded": "লগগুলি সফলভাবে ডাউনলোড করা হয়েছে।", + "last50": "শেষ ৫০", + "last100": "শেষ ১০০", + "last500": "শেষ ৫০০", + "last1000": "শেষ ১০০০", + "allLogs": "সমস্ত লগ", + "noLogsMatching": "\"{{query}} \" এর সাথে মেলে এমন কোনও লগ নেই", + "noLogsAvailable": "কোন লগ উপলব্ধ নেই", + "noContainersFound": "কোন কন্টেইনার পাওয়া যায়নি", + "noContainersFoundHint": "এই হোস্টে কোনো ডকার কন্টেইনার উপলব্ধ নেই।", + "searchPlaceholder": "কন্টেইনারগুলি অনুসন্ধান করুন...", + "allStatuses": "সমস্ত স্ট্যাটাস", + "stateRunning": "দৌড়ানো", + "statePaused": "বিরতি দেওয়া হয়েছে", + "stateExited": "উত্তেজিত", + "stateRestarting": "পুনরায় চালু করা", + "noContainersMatchFilters": "আপনার ফিল্টারগুলির সাথে কোনও কন্টেইনার মেলে না", + "noContainersMatchFiltersHint": "আপনার অনুসন্ধান বা ফিল্টারের শর্তাবলী পরিবর্তন করে দেখুন।", + "failedToFetchStats": "কন্টেইনার পরিসংখ্যান আনতে ব্যর্থ হয়েছে", + "containerNotRunning": "কন্টেইনারটি চলছে না", + "startContainerToViewStats": "পরিসংখ্যান দেখতে কন্টেইনারটি চালু করুন।", + "loadingStats": "পরিসংখ্যান লোড হচ্ছে...", + "errorLoadingStats": "পরিসংখ্যান লোড করতে ত্রুটি", + "noStatsAvailable": "কোন পরিসংখ্যান উপলব্ধ নেই", + "cpuUsage": "সিপিইউ ব্যবহার", + "current": "বর্তমান", + "memoryUsage": "মেমরি ব্যবহার", + "networkIo": "নেটওয়ার্ক আই/ও", + "input": "ইনপুট", + "output": "আউটপুট", + "blockIo": "ব্লক আই/ও", + "read": "পড়ুন", + "write": "লিখুন", + "pids": "পিআইডি", + "containerInformation": "কন্টেইনারের তথ্য", + "name": "নাম", + "id": "আইডি", + "state": "রাজ্য", + "containerMustBeRunning": "কনসোল অ্যাক্সেস করতে হলে কন্টেইনারটি অবশ্যই চালু থাকতে হবে।", + "verificationCodePrompt": "যাচাইকরণ কোড প্রবেশ করান", + "totpVerificationFailed": "TOTP যাচাইকরণ ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "browserSignInFailed": "সাইন-ইন ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "connectedTo": "{{containerName}} এর সাথে সংযুক্ত", + "disconnected": "বিচ্ছিন্ন", + "consoleError": "কনসোল ত্রুটি", + "errorMessage": "ত্রুটি: {{message}}", + "failedToConnect": "কন্টেইনারের সাথে সংযোগ করতে ব্যর্থ হয়েছে", + "console": "কনসোল", + "selectShell": "শেল নির্বাচন করুন", + "bash": "ব্যাশ", + "sh": "শ", + "ash": "ছাই", + "connect": "সংযোগ করুন", + "disconnect": "সংযোগ বিচ্ছিন্ন করুন", + "notConnected": "সংযুক্ত নয়", + "clickToConnect": "শেল সেশন শুরু করতে কানেক্ট-এ ক্লিক করুন।", + "connectingTo": "{{containerName}} এর সাথে সংযোগ স্থাপন করা হচ্ছে...", + "containerNotFound": "কন্টেইনারটি খুঁজে পাওয়া যায়নি", + "backToList": "তালিকায় ফিরে যান", + "logs": "লগ", + "stats": "পরিসংখ্যান", + "consoleTab": "কনসোল", + "startContainerToAccess": "কনসোল অ্যাক্সেস করতে কন্টেইনারটি চালু করুন।", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "failedToFetchLogs": "লগ আনতে ব্যর্থ: {{error}}", + "failedToDownloadLogs": "লগ ডাউনলোড করা যায়নি: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "ডকার" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "ডকার", + "feature_docker_desc": "ডকার চালিত যেকোনো হোস্টে কন্টেইনার দেখুন, লগ পড়ুন এবং পরিসংখ্যান পর্যবেক্ষণ করুন।" }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "পুনরায় চেষ্টা করুন", + "clipboardReadFailed": "ক্লিপবোর্ড থেকে পড়তে ব্যর্থ হয়েছে। নিশ্চিত করুন যে ক্লিপবোর্ডের অনুমতি দেওয়া আছে।", + "clipboardWriteFailed": "ক্লিপবোর্ডে কপি করা সম্ভব হয়নি। নিশ্চিত করুন যে পৃষ্ঠাটি HTTPS বা লোকালহোস্টের মাধ্যমে পরিবেশিত হচ্ছে।" }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "ডকার ব্যবহার করুন", + "description": "যেসব হোস্টে ডকার সক্রিয় করা আছে, সেগুলোতে ডকার ম্যানেজার এবং কন্টেইনার কনসোল খুলুন।" } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "ডকার সক্রিয় করুন", + "description": "এই হোস্টে কন্টেইনারগুলি পরিচালনা করুন।" }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", - "podman": "Podman" + "label": "কন্টেইনার রানটাইম", + "description": "এই হোস্টে কন্টেইনার ব্যবস্থাপনার জন্য ব্যবহৃত CLI নির্বাচন করুন", + "docker": "ডকার", + "podman": "পডম্যান" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "রিমোট সার্ভার প্রয়োজন। এই সংযোগের ধরণটি ব্যবহার করতে সেটিংস-এ একটি রিমোট সার্ভার সংযুক্ত করুন।" }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "নথি দেখুন", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "loadingHost": "হোস্ট লোড হচ্ছে..." } } diff --git a/plugins/docker/locales/translated/hi_IN.json b/plugins/docker/locales/translated/hi_IN.json index e4b3e602d..c435dd5eb 100644 --- a/plugins/docker/locales/translated/hi_IN.json +++ b/plugins/docker/locales/translated/hi_IN.json @@ -23,9 +23,9 @@ "start": "प्रारंभ करें", "stop": "स्टॉप", "status": "स्थिति", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "कार्रवाई", + "cardView": "कार्ड दृश्य", + "listView": "लिस्ट व्यू", "confirmRemoveContainer": "क्या आप वाकई कंटेनर '{{name}}' हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती।", "runningContainerWarning": "चेतावनी: यह कंटेनर वर्तमान में चल रहा है। हटाने पर पहले इसे रोका जाएगा।", "loadingContainers": "कंटेनर लोड हो रहे हैं...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "कंसोल तक पहुंचने के लिए कंटेनर चालू होना चाहिए", "verificationCodePrompt": "सत्यापन कोड दर्ज करें", "totpVerificationFailed": "TOTP सत्यापन विफल। कृपया पुनः प्रयास करें।", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "प्रवेश विफल। कृपया दोबारा प्रयास करें।", "connectedTo": "{{containerName}} से जुड़ा", "disconnected": "डिस्कनेक्टेड", "consoleError": "कंसोल त्रुटि", @@ -101,15 +101,15 @@ "consoleTab": "कंसोल", "startContainerToAccess": "कंसोल तक पहुंचने के लिए कंटेनर चालू करें", "noHostSelected": "कोई होस्ट चयनित नहीं है", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "लॉग प्राप्त करने में विफल: {{error}}", + "failedToDownloadLogs": "लॉग डाउनलोड करने में विफल: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "डॉकर चलाने वाले किसी भी होस्ट पर कंटेनर देखें, लॉग पढ़ें और आंकड़े देखें।" }, "terminal": { "retry": "पुनः प्रयास करें", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "डॉकर का उपयोग करें", + "description": "जिन होस्ट पर डॉकर सक्षम है, उन पर डॉकर मैनेजर और कंटेनर कंसोल खोलें।" } }, "settings": { "host": { "enable": { "label": "Docker सक्षम करें", - "description": "Manage containers on this host." + "description": "इस होस्ट पर कंटेनरों का प्रबंधन करें।" }, "containerRuntime": { "label": "कंटेनर रनटाइम", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "रिमोट सर्वर आवश्यक है। इस कनेक्शन प्रकार का उपयोग करने के लिए सेटिंग्स में जाकर रिमोट सर्वर कनेक्ट करें।" }, "hosts": { "docsLink": "दस्तावेज़ देखें", diff --git a/plugins/docker/locales/translated/id_ID.json b/plugins/docker/locales/translated/id_ID.json index 631c3a919..170d6d860 100644 --- a/plugins/docker/locales/translated/id_ID.json +++ b/plugins/docker/locales/translated/id_ID.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "Docker tidak diaktifkan untuk host ini.", + "validating": "Memvalidasi Docker...", + "connecting": "Menghubungkan...", + "error": "Kesalahan", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", - "start": "Start", - "stop": "Stop", + "connectionFailed": "Gagal terhubung ke Docker", + "containerStarted": "Kontainer {{name}} dimulai", + "failedToStartContainer": "Gagal memulai kontainer {{name}}", + "containerStopped": "Kontainer {{name}} berhenti", + "failedToStopContainer": "Gagal menghentikan kontainer {{name}}", + "containerRestarted": "Kontainer {{name}} dimulai ulang", + "failedToRestartContainer": "Gagal memulai ulang kontainer {{name}}", + "containerPaused": "Kontainer {{name}} berhenti", + "containerUnpaused": "Kontainer {{name}} tidak dijeda", + "failedToTogglePauseContainer": "Gagal mengubah status jeda untuk kontainer {{name}}", + "containerRemoved": "Kontainer {{name}} dihapus", + "failedToRemoveContainer": "Gagal menghapus kontainer {{name}}", + "image": "Gambar", + "ports": "Pelabuhan", + "noPorts": "Tidak ada port", + "start": "Awal", + "stop": "Berhenti", "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", + "actions": "Tindakan", + "cardView": "Tampilan kartu", + "listView": "Tampilan daftar", + "confirmRemoveContainer": "Apakah Anda yakin ingin menghapus kontainer '{{name}}'? Tindakan ini tidak dapat dibatalkan.", + "runningContainerWarning": "Peringatan: Kontainer ini sedang berjalan. Menghapusnya akan menghentikan kontainer terlebih dahulu.", + "loadingContainers": "Memuat kontainer...", + "manager": "Manajer Docker", + "autoRefresh": "Penyegaran Otomatis", + "timestamps": "Cap waktu", + "lines": "Garis", + "filterLogs": "Filter log...", + "refresh": "Menyegarkan", + "download": "Unduh", + "clear": "Jernih", + "logsDownloaded": "Log berhasil diunduh.", + "last50": "50 Terakhir", + "last100": "100 terakhir", + "last500": "500 Terakhir", + "last1000": "1000 terakhir", + "allLogs": "Semua Log", + "noLogsMatching": "Tidak ada log yang cocok dengan \"{{query}}\"", + "noLogsAvailable": "Tidak ada log yang tersedia.", + "noContainersFound": "Tidak ditemukan wadah apa pun", + "noContainersFoundHint": "Tidak ada kontainer Docker yang tersedia di host ini.", + "searchPlaceholder": "Cari kontainer...", + "allStatuses": "Semua Status", + "stateRunning": "Berlari", + "statePaused": "Dijeda", + "stateExited": "Keluar", + "stateRestarting": "Memulai ulang", + "noContainersMatchFilters": "Tidak ada wadah yang sesuai dengan filter Anda.", + "noContainersMatchFiltersHint": "Cobalah menyesuaikan kriteria pencarian atau filter Anda.", + "failedToFetchStats": "Gagal mengambil statistik kontainer", + "containerNotRunning": "Kontainer tidak berjalan", + "startContainerToViewStats": "Jalankan kontainer untuk melihat statistik.", + "loadingStats": "Memuat statistik...", + "errorLoadingStats": "Terjadi kesalahan saat memuat statistik.", + "noStatsAvailable": "Tidak ada statistik yang tersedia.", + "cpuUsage": "Penggunaan CPU", + "current": "Saat ini", + "memoryUsage": "Penggunaan Memori", + "networkIo": "Input/Output Jaringan", + "input": "Masukan", + "output": "Keluaran", + "blockIo": "Blok I/O", + "read": "Membaca", + "write": "Menulis", + "pids": "PID", + "containerInformation": "Informasi Kontainer", + "name": "Nama", + "id": "PENGENAL", + "state": "Negara", + "containerMustBeRunning": "Kontainer harus berjalan agar dapat mengakses konsol.", + "verificationCodePrompt": "Masukkan kode verifikasi", + "totpVerificationFailed": "Verifikasi TOTP gagal. Silakan coba lagi.", + "browserSignInFailed": "Login gagal. Silakan coba lagi.", + "connectedTo": "Terhubung ke {{containerName}}", + "disconnected": "Terputus", + "consoleError": "Kesalahan konsol", + "errorMessage": "Kesalahan: {{message}}", + "failedToConnect": "Gagal terhubung ke kontainer", + "console": "Menghibur", + "selectShell": "Pilih cangkang", + "bash": "Pesta", "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "ash": "abu", + "connect": "Menghubungkan", + "disconnect": "Memutuskan", + "notConnected": "Tidak terhubung", + "clickToConnect": "Klik sambungkan untuk memulai sesi shell.", + "connectingTo": "Menghubungkan ke {{containerName}}...", + "containerNotFound": "Kontainer tidak ditemukan", + "backToList": "Kembali ke Daftar", + "logs": "Log", + "stats": "Statistik", + "consoleTab": "Menghibur", + "startContainerToAccess": "Jalankan kontainer untuk mengakses konsol.", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "failedToFetchLogs": "Gagal mengambil log: {{error}}", + "failedToDownloadLogs": "Gagal mengunduh log: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "Buruh pelabuhan" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "Buruh pelabuhan", + "feature_docker_desc": "Lihat kontainer, baca log, dan pantau statistik pada host mana pun yang menjalankan Docker." }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "Mencoba kembali", + "clipboardReadFailed": "Gagal membaca dari clipboard. Pastikan izin clipboard telah diberikan.", + "clipboardWriteFailed": "Gagal menyalin ke papan klip. Pastikan halaman disajikan melalui HTTPS atau localhost." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Gunakan Docker", + "description": "Buka pengelola Docker dan konsol kontainer pada host yang telah mengaktifkan Docker." } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "Aktifkan Docker", + "description": "Kelola kontainer di host ini." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", + "label": "Lingkungan Eksekusi Kontainer", + "description": "Pilih CLI yang digunakan untuk manajemen kontainer pada host ini.", + "docker": "Buruh pelabuhan", "podman": "Podman" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Diperlukan server jarak jauh. Hubungkan server jarak jauh di Pengaturan untuk menggunakan jenis koneksi ini." }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Lihat dokumen", + "hostNotFound": "Host tidak ditemukan", + "loadingHost": "Memuat host..." } } diff --git a/plugins/docker/locales/translated/no_NO.json b/plugins/docker/locales/translated/no_NO.json index f3f5c6eb4..bfb75e1d7 100644 --- a/plugins/docker/locales/translated/no_NO.json +++ b/plugins/docker/locales/translated/no_NO.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", + "notEnabled": "Docker er ikke aktivert for denne verten", + "validating": "Validerer Docker...", "connecting": "Kobler til...", "error": "Feil", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", + "connectionFailed": "Kunne ikke koble til Docker", + "containerStarted": "Container {{name}} startet", + "failedToStartContainer": "Kunne ikke starte containeren {{name}}", + "containerStopped": "Container {{name}} stoppet", + "failedToStopContainer": "Klarte ikke å stoppe containeren {{name}}", + "containerRestarted": "Beholder {{name}} startet på nytt", + "failedToRestartContainer": "Kunne ikke starte beholderen {{name}} på nytt", + "containerPaused": "Beholder {{name}} satt på pause", + "containerUnpaused": "Beholder {{name}} er ikke satt på pause lenger", + "failedToTogglePauseContainer": "Kunne ikke slå av/på pausetilstand for container {{name}}", + "containerRemoved": "Beholder {{name}} fjernet", + "failedToRemoveContainer": "Kunne ikke fjerne beholderen {{name}}", + "image": "Bilde", + "ports": "Porter", + "noPorts": "Ingen porter", "start": "Start", "stop": "Stopp", "status": "Status", "actions": "Handlinger", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", + "cardView": "Kortvisning", + "listView": "Listevisning", + "confirmRemoveContainer": "Er du sikker på at du vil fjerne beholderen '{{name}}'? Denne handlingen kan ikke angres.", + "runningContainerWarning": "Advarsel: Denne beholderen kjører for øyeblikket. Hvis du fjerner den, stoppes beholderen først.", + "loadingContainers": "Laster containere ...", "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", + "autoRefresh": "Automatisk oppdatering", + "timestamps": "Tidsstempler", + "lines": "Linjer", + "filterLogs": "Filtrer logger...", "refresh": "Oppdater", "download": "Last ned", "clear": "Tøm", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", + "logsDownloaded": "Loggene er lastet ned", + "last50": "Siste 50", + "last100": "Siste 100", + "last500": "Siste 500", + "last1000": "Siste 1000", + "allLogs": "Alle logger", + "noLogsMatching": "Ingen logger som samsvarer med «{{query}}»", + "noLogsAvailable": "Ingen logger tilgjengelig", + "noContainersFound": "Ingen containere funnet", + "noContainersFoundHint": "Ingen Docker-containere er tilgjengelige på denne verten", + "searchPlaceholder": "Søk i containere...", + "allStatuses": "Alle statuser", "stateRunning": "Kjører", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", + "statePaused": "Pauset", + "stateExited": "Avsluttet", + "stateRestarting": "Starter på nytt", + "noContainersMatchFilters": "Ingen beholdere samsvarer med filtrene dine", + "noContainersMatchFiltersHint": "Prøv å justere søke- eller filterkriteriene dine", + "failedToFetchStats": "Kunne ikke hente containerstatistikk", + "containerNotRunning": "Beholderen kjører ikke", + "startContainerToViewStats": "Start beholderen for å se statistikk", + "loadingStats": "Laster inn statistikk ...", + "errorLoadingStats": "Feil ved lasting av statistikk", + "noStatsAvailable": "Ingen statistikk tilgjengelig", "cpuUsage": "CPU-bruk", - "current": "Current", + "current": "Nåværende", "memoryUsage": "Minnebruk", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", + "networkIo": "Nettverk I/O", + "input": "Inndata", + "output": "Produksjon", + "blockIo": "Blokk I/O", "read": "Les", "write": "Skriv", - "pids": "PIDs", - "containerInformation": "Container Information", + "pids": "PID-er", + "containerInformation": "Containerinformasjon", "name": "Navn", "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", + "state": "Tilstand", + "containerMustBeRunning": "Containeren må kjøre for å få tilgang til konsollen", "verificationCodePrompt": "Angi verifikasjonskode", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", + "totpVerificationFailed": "TOTP-verifisering mislyktes. Prøv på nytt.", + "browserSignInFailed": "Påloggingen mislyktes. Prøv på nytt.", + "connectedTo": "Koblet til {{containerName}}", "disconnected": "Frakoblet", - "consoleError": "Console error", + "consoleError": "Konsollfeil", "errorMessage": "Feil: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", + "failedToConnect": "Kunne ikke koble til beholderen", + "console": "Konsoll", + "selectShell": "Velg skall", "bash": "Bash", "sh": "sh", - "ash": "ash", + "ash": "aske", "connect": "Koble til", "disconnect": "Koble fra", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", + "notConnected": "Ikke tilkoblet", + "clickToConnect": "Klikk på koble til for å starte en skalløkt", + "connectingTo": "Kobler til {{containerName}}...", + "containerNotFound": "Beholderen ble ikke funnet", + "backToList": "Tilbake til listen", + "logs": "Logger", + "stats": "Statistikk", + "consoleTab": "Konsoll", + "startContainerToAccess": "Start containeren for å få tilgang til konsollen", "noHostSelected": "Ingen vert valgt", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Kunne ikke hente logger: {{error}}", + "failedToDownloadLogs": "Kunne ikke laste ned logger: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "Dokker" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "Dokker", + "feature_docker_desc": "Se containere, les logger og se statistikk på alle verter som kjører Docker." }, "terminal": { "retry": "Prøv igjen", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "clipboardReadFailed": "Kunne ikke lese fra utklippstavlen. Sørg for at utklippstavlen har tillatelser.", + "clipboardWriteFailed": "Kunne ikke kopiere til utklippstavlen. Sørg for at siden serveres via HTTPS eller localhost." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Bruk Docker", + "description": "Åpne Docker-behandleren og containerkonsollene på verter med Docker aktivert." } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "Aktiver Docker", + "description": "Administrer containere på denne verten." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", + "label": "Containerkjøringstid", + "description": "Velg CRI-et som brukes for containeradministrasjon på denne verten", + "docker": "Dokker", "podman": "Podman" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Ekstern server kreves. Koble til en ekstern server i Innstillinger for å bruke denne tilkoblingstypen." }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Vis dokumenter", + "hostNotFound": "Verten ble ikke funnet", + "loadingHost": "Laster inn vert ..." } } diff --git a/plugins/docker/locales/translated/pl_PL.json b/plugins/docker/locales/translated/pl_PL.json index 2c2474b57..feddd9fe7 100644 --- a/plugins/docker/locales/translated/pl_PL.json +++ b/plugins/docker/locales/translated/pl_PL.json @@ -23,9 +23,9 @@ "start": "Start", "stop": "Stop", "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "Akcje", + "cardView": "Widok karty", + "listView": "Widok listy", "confirmRemoveContainer": "Czy na pewno chcesz usunąć kontener „{{name}}”? Tej czynności nie można cofnąć.", "runningContainerWarning": "Ostrzeżenie: Ten kontener jest obecnie uruchomiony. Jego usunięcie spowoduje najpierw jego zatrzymanie.", "loadingContainers": "Ładowanie kontenerów...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "Aby uzyskać dostęp do konsoli, kontener musi być uruchomiony", "verificationCodePrompt": "Wprowadź kod weryfikacyjny", "totpVerificationFailed": "Weryfikacja TOTP nie powiodła się. Spróbuj ponownie.", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Logowanie nie powiodło się. Spróbuj ponownie.", "connectedTo": "Połączono z {{containerName}}", "disconnected": "Rozłączono", "consoleError": "Błąd konsoli", @@ -101,8 +101,8 @@ "consoleTab": "Konsola", "startContainerToAccess": "Uruchom kontener, aby uzyskać dostęp do konsoli", "noHostSelected": "Nie wybrano hosta", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Nie udało się pobrać dzienników: {{error}}", + "failedToDownloadLogs": "Nie udało się pobrać dzienników: {{error}}" }, "nav": { "docker": "Docker" @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Użyj Dockera", + "description": "Otwórz menedżera Docker i konsole kontenerów na hostach z włączonym Dockerem." } }, "settings": { "host": { "enable": { "label": "Włącz Docker", - "description": "Manage containers on this host." + "description": "Zarządzaj kontenerami na tym hoście." }, "containerRuntime": { "label": "Środowisko wykonawcze kontenera", diff --git a/plugins/docker/locales/translated/pt_BR.json b/plugins/docker/locales/translated/pt_BR.json index a9bee900a..099204988 100644 --- a/plugins/docker/locales/translated/pt_BR.json +++ b/plugins/docker/locales/translated/pt_BR.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", + "notEnabled": "O Docker não está habilitado para este host.", + "validating": "Validando o Docker...", "connecting": "Conectando...", "error": "Erro", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", + "connectionFailed": "Falha ao conectar ao Docker", + "containerStarted": "Contêiner {{name}} iniciado", + "failedToStartContainer": "Falha ao iniciar o contêiner {{name}}", + "containerStopped": "Contêiner {{name}} parado", + "failedToStopContainer": "Falha ao parar o contêiner {{name}}", + "containerRestarted": "Contêiner {{name}} reiniciado", + "failedToRestartContainer": "Falha ao reiniciar o contêiner {{name}}", + "containerPaused": "Contêiner {{name}} pausado", + "containerUnpaused": "Contêiner {{name}} despausado", + "failedToTogglePauseContainer": "Falha ao alternar o estado de pausa para o contêiner {{name}}", + "containerRemoved": "Contêiner {{name}} removido", + "failedToRemoveContainer": "Falha ao remover o contêiner {{name}}", + "image": "Imagem", + "ports": "Portos", + "noPorts": "Sem portas", "start": "Iniciar", - "stop": "Stop", + "stop": "Parar", "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", + "actions": "Ações", + "cardView": "Visualização em cartão", + "listView": "Visualização em lista", + "confirmRemoveContainer": "Tem certeza de que deseja remover o contêiner '{{name}}'? Esta ação não pode ser desfeita.", + "runningContainerWarning": "Aviso: Este contêiner está em execução. Removê-lo interromperá o contêiner primeiro.", + "loadingContainers": "Carregando contêineres...", + "manager": "Gerenciador de Docker", + "autoRefresh": "Atualização automática", + "timestamps": "Carimbos de data/hora", + "lines": "Linhas", + "filterLogs": "Filtrar registros...", "refresh": "Atualizar", "download": "Download", "clear": "Limpar", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", + "logsDownloaded": "Registros baixados com sucesso", + "last50": "Últimos 50", + "last100": "Últimos 100", + "last500": "Últimos 500", + "last1000": "Últimos 1000", + "allLogs": "Todos os registros", + "noLogsMatching": "Nenhum registro correspondente a \"{{query}}\"", + "noLogsAvailable": "Nenhum registro disponível", + "noContainersFound": "Nenhum contêiner encontrado", + "noContainersFoundHint": "Não há contêineres Docker disponíveis neste host.", + "searchPlaceholder": "Contêineres de pesquisa...", + "allStatuses": "Todos os status", + "stateRunning": "Correndo", + "statePaused": "Em pausa", + "stateExited": "Saiu", + "stateRestarting": "Reiniciando", + "noContainersMatchFilters": "Nenhum recipiente corresponde aos seus filtros.", + "noContainersMatchFiltersHint": "Tente ajustar seus critérios de pesquisa ou filtro.", + "failedToFetchStats": "Falha ao obter as estatísticas do contêiner.", + "containerNotRunning": "Contêiner não está em execução", + "startContainerToViewStats": "Inicie o contêiner para visualizar as estatísticas.", + "loadingStats": "Carregando estatísticas...", + "errorLoadingStats": "Estatísticas de carregamento de erros", + "noStatsAvailable": "Não há estatísticas disponíveis.", + "cpuUsage": "Utilização da CPU", + "current": "Atual", + "memoryUsage": "Uso de memória", "networkIo": "Entrada e Saída de rede", "input": "Entrada", - "output": "Output", + "output": "Saída", "blockIo": "Bloco de E/S", - "read": "Read", - "write": "Write", + "read": "Ler", + "write": "Escrever", "pids": "Identificadores de Processos", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", + "containerInformation": "Informações do contêiner", + "name": "Nome", + "id": "EU IA", + "state": "Estado", "containerMustBeRunning": "O contêiner precisa estar em execução para acessar o console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", + "verificationCodePrompt": "Insira o código de verificação", + "totpVerificationFailed": "A verificação TOTP falhou. Tente novamente.", + "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.", + "connectedTo": "Conectado a {{containerName}}", + "disconnected": "Desconectado", + "consoleError": "Erro no console", + "errorMessage": "Erro: {{message}}", + "failedToConnect": "Falha ao conectar ao contêiner", "console": "Console", - "selectShell": "Select shell", + "selectShell": "Selecione shell", "bash": "Bash", "sh": "sh", - "ash": "ash", + "ash": "cinzas", "connect": "Conectar", "disconnect": "Desconectar", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", + "notConnected": "Não conectado", + "clickToConnect": "Clique em conectar para iniciar uma sessão de shell.", + "connectingTo": "Conectando a {{containerName}}...", + "containerNotFound": "Contêiner não encontrado", + "backToList": "Voltar à lista", + "logs": "Registros", + "stats": "Estatísticas", "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "startContainerToAccess": "Inicie o contêiner para acessar o console.", + "noHostSelected": "Nenhum host selecionado", + "failedToFetchLogs": "Falha ao obter os registros: {{error}}", + "failedToDownloadLogs": "Falha ao baixar os registros: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "Visualize contêineres, leia registros e acompanhe as estatísticas em qualquer host que execute o Docker." }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "Tentar novamente", + "clipboardReadFailed": "Não foi possível ler o conteúdo da área de transferência. Certifique-se de que as permissões de acesso à área de transferência estejam concedidas.", + "clipboardWriteFailed": "Falha ao copiar para a área de transferência. Certifique-se de que a página esteja sendo servida via HTTPS ou localhost." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Use o Docker", + "description": "Abra o gerenciador do Docker e os consoles de contêineres nos hosts com o Docker habilitado." } }, "settings": { "host": { "enable": { "label": "Ativar Docker", - "description": "Manage containers on this host." + "description": "Gerencie os contêineres neste host." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", + "label": "Tempo de execução do contêiner", + "description": "Escolha a CLI usada para gerenciamento de contêineres neste host.", "docker": "Docker", "podman": "Podman" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Conecte um servidor remoto nas Configurações para usar este tipo de conexão." }, "hosts": { "docsLink": "Documentação", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "hostNotFound": "Host não encontrado", + "loadingHost": "Carregando host..." } } diff --git a/plugins/docker/locales/translated/pt_PT.json b/plugins/docker/locales/translated/pt_PT.json index 5da41c447..1ed015fe5 100644 --- a/plugins/docker/locales/translated/pt_PT.json +++ b/plugins/docker/locales/translated/pt_PT.json @@ -23,9 +23,9 @@ "start": "Iniciar", "stop": "Stop", "status": "Estado", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "Ações", + "cardView": "Visualização em cartão", + "listView": "Visualização em lista", "confirmRemoveContainer": "Tem a certeza de que pretende remover o contentor '{{name}}'? Esta ação não pode ser desfeita.", "runningContainerWarning": "Aviso: Este contentor está em execução. Removê-lo irá pará-lo primeiro.", "loadingContainers": "A carregar contentores...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "O contentor tem de estar em execução para aceder à consola", "verificationCodePrompt": "Introduza o código de verificação", "totpVerificationFailed": "A verificação TOTP falhou. Por favor, tente novamente.", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.", "connectedTo": "Ligado a {{containerName}}", "disconnected": "Desligado", "consoleError": "Erro da consola", @@ -101,15 +101,15 @@ "consoleTab": "Consola", "startContainerToAccess": "Inicie o contentor para aceder à consola", "noHostSelected": "Nenhum anfitrião selecionado", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Falha ao obter os registos: {{error}}", + "failedToDownloadLogs": "Falha ao descarregar os registos: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "Visualize contentores, leia registos e acompanhe as estatísticas em qualquer host que execute o Docker." }, "terminal": { "retry": "Repetir", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Utilize o Docker", + "description": "Abra o gestor do Docker e as consolas de contentores nos hosts com o Docker ativado." } }, "settings": { "host": { "enable": { "label": "Ativar Docker", - "description": "Manage containers on this host." + "description": "Gerir os contentores neste host." }, "containerRuntime": { "label": "Runtime de Contentores", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Ligue um servidor remoto nas Definições para utilizar este tipo de ligação." }, "hosts": { "docsLink": "Ver documentação", diff --git a/plugins/docker/locales/translated/ru_RU.json b/plugins/docker/locales/translated/ru_RU.json index 281841e97..5cdfa206f 100644 --- a/plugins/docker/locales/translated/ru_RU.json +++ b/plugins/docker/locales/translated/ru_RU.json @@ -23,9 +23,9 @@ "start": "Запустить", "stop": "Остановить", "status": "Статус", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "Действия", + "cardView": "Карточный вид", + "listView": "Список", "confirmRemoveContainer": "Вы уверены, что хотите удалить контейнер «{{name}}»? Это действие нельзя отменить.", "runningContainerWarning": "Предупреждение: этот контейнер в настоящее время работает. При удалении он будет сначала остановлен.", "loadingContainers": "Загрузка контейнеров...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "Для доступа к консоли контейнер должен быть запущен", "verificationCodePrompt": "Введите код подтверждения", "totpVerificationFailed": "Ошибка проверки TOTP. Попробуйте еще раз.", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Вход в систему не удался. Пожалуйста, попробуйте еще раз.", "connectedTo": "Подключено к {{containerName}}", "disconnected": "Отключено", "consoleError": "Ошибка консоли", @@ -101,15 +101,15 @@ "consoleTab": "Консоль", "startContainerToAccess": "Запустите контейнер, чтобы получить доступ к консоли", "noHostSelected": "Хост не выбран", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Не удалось получить логи: {{error}}", + "failedToDownloadLogs": "Не удалось загрузить логи: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "Просматривайте контейнеры, читайте журналы и отслеживайте статистику на любом хосте, где запущен Docker." }, "terminal": { "retry": "Повторить", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Используйте Docker", + "description": "Откройте Docker Manager и консоли контейнеров на хостах с включенным Docker." } }, "settings": { "host": { "enable": { "label": "Включить Docker", - "description": "Manage containers on this host." + "description": "Управляйте контейнерами на этом хосте." }, "containerRuntime": { "label": "Среда выполнения контейнеров", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Требуется удаленный сервер. Для использования этого типа подключения подключите удаленный сервер в настройках." }, "hosts": { "docsLink": "Документация", diff --git a/plugins/docker/locales/translated/sr_SP.json b/plugins/docker/locales/translated/sr_SP.json index 631c3a919..6968f7ab3 100644 --- a/plugins/docker/locales/translated/sr_SP.json +++ b/plugins/docker/locales/translated/sr_SP.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "Докер није омогућен за овај хост", + "validating": "Валидација Докера...", + "connecting": "Повезивање...", + "error": "Грешка", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", - "start": "Start", - "stop": "Stop", - "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "connectionFailed": "Повезивање са Докером није успело", + "containerStarted": "Контејнер {{name}} је покренут", + "failedToStartContainer": "Покретање контејнера {{name}} није успело", + "containerStopped": "Контејнер {{name}} је заустављен", + "failedToStopContainer": "Заустављање контејнера {{name}} није успело", + "containerRestarted": "Контејнер {{name}} поново покренут", + "failedToRestartContainer": "Поновно покретање контејнера није успело {{name}}", + "containerPaused": "Контејнер {{name}} је паузиран", + "containerUnpaused": "Паузирање контејнера {{name}} је прекинуто", + "failedToTogglePauseContainer": "Није успело пребацивање стања паузе за контејнер {{name}}", + "containerRemoved": "Контејнер {{name}} је уклоњен", + "failedToRemoveContainer": "Није успело уклањање контејнера {{name}}", + "image": "Слика", + "ports": "Портови", + "noPorts": "Нема портова", + "start": "Почетак", + "stop": "Заустави", + "status": "Статус", + "actions": "Акције", + "cardView": "Приказ картице", + "listView": "Приказ листе", + "confirmRemoveContainer": "Да ли сте сигурни да желите да уклоните контејнер „{{name}}“? Ова радња се не може поништити.", + "runningContainerWarning": "Упозорење: Овај контејнер је тренутно покренут. Његово уклањање ће прво зауставити рад контејнера.", + "loadingContainers": "Учитавање контејнера...", + "manager": "Докер менаџер", + "autoRefresh": "Аутоматско освежавање", + "timestamps": "Временске ознаке", + "lines": "Линије", + "filterLogs": "Филтрирај логове...", + "refresh": "Освежи", + "download": "Преузми", + "clear": "Јасно", + "logsDownloaded": "Дневници су успешно преузети", + "last50": "Последњих 50", + "last100": "Последњих 100", + "last500": "Последњих 500", + "last1000": "Последњих 1000", + "allLogs": "Сви дневници", + "noLogsMatching": "Нема логова који одговарају „{{query}}“", + "noLogsAvailable": "Нема доступних логова", + "noContainersFound": "Нису пронађени контејнери", + "noContainersFoundHint": "На овом хосту нису доступни Docker контејнери", + "searchPlaceholder": "Претражи контејнере...", + "allStatuses": "Сви статуси", + "stateRunning": "Трчање", + "statePaused": "Паузирано", + "stateExited": "Изашао/ла", + "stateRestarting": "Поновно покретање", + "noContainersMatchFilters": "Ниједан контејнер не одговара вашим филтерима", + "noContainersMatchFiltersHint": "Покушајте да прилагодите критеријуме претраге или филтрирања", + "failedToFetchStats": "Није успело преузимање статистике контејнера", + "containerNotRunning": "Контејнер се не покреће", + "startContainerToViewStats": "Покрените контејнер да бисте видели статистику", + "loadingStats": "Учитавање статистике...", + "errorLoadingStats": "Грешка при учитавању статистике", + "noStatsAvailable": "Нема доступних статистика", + "cpuUsage": "Искоришћеност процесора", + "current": "Тренутни", + "memoryUsage": "Коришћење меморије", + "networkIo": "Мрежни улаз/излаз", + "input": "Унос", + "output": "Излаз", + "blockIo": "Блок У/И", + "read": "Читај", + "write": "Пиши", + "pids": "ПИД-ови", + "containerInformation": "Информације о контејнеру", + "name": "Име", + "id": "ИД", + "state": "Држава", + "containerMustBeRunning": "Контејнер мора бити покренут да би се приступило конзоли", + "verificationCodePrompt": "Унесите верификациони код", + "totpVerificationFailed": "Верификација TOTP-а није успела. Молимо покушајте поново.", + "browserSignInFailed": "Пријављивање није успело. Молимо покушајте поново.", + "connectedTo": "Повезано са {{containerName}}", + "disconnected": "Искључено", + "consoleError": "Грешка конзоле", + "errorMessage": "Грешка: {{message}}", + "failedToConnect": "Повезивање са контејнером није успело", + "console": "Конзола", + "selectShell": "Изаберите љуску", + "bash": "Баш", + "sh": "ш", + "ash": "пепео", + "connect": "Повежи се", + "disconnect": "Прекини везу", + "notConnected": "Није повезано", + "clickToConnect": "Кликните на повезивање да бисте покренули сесију шкољке", + "connectingTo": "Повезивање са {{containerName}}...", + "containerNotFound": "Контејнер није пронађен", + "backToList": "Назад на листу", + "logs": "Дневници", + "stats": "Статистика", + "consoleTab": "Конзола", + "startContainerToAccess": "Покрените контејнер да бисте приступили конзоли", + "noHostSelected": "Није изабран домаћин", + "failedToFetchLogs": "Није успело преузимање логова: {{error}}", + "failedToDownloadLogs": "Није успело преузимање логова: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "Докер" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "Докер", + "feature_docker_desc": "Погледајте контејнере, читајте логове и пратите статистику на било ком хосту који користи Docker." }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "Покушај поново", + "clipboardReadFailed": "Читање из међуспремника није успело. Уверите се да су дозволе за међуспремник одобрене.", + "clipboardWriteFailed": "Копирање у међуспремник није успело. Уверите се да се страница приказује преко HTTPS-а или localhost-а." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Користите Докер", + "description": "Отворите Docker менаџер и конзоле контејнера на хостовима са омогућеним Docker-ом." } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "Омогући Докер", + "description": "Управљајте контејнерима на овом хосту." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", - "podman": "Podman" + "label": "Време извршавања контејнера", + "description": "Изаберите CLI који се користи за управљање контејнерима на овом хосту", + "docker": "Докер", + "podman": "Подман" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потребан је удаљени сервер. Повежите се са удаљеним сервером у Подешавањима да бисте користили овај тип везе." }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Прикажи документе", + "hostNotFound": "Хост није пронађен", + "loadingHost": "Учитавање хоста..." } } diff --git a/plugins/docker/locales/translated/sv_SE.json b/plugins/docker/locales/translated/sv_SE.json index 631c3a919..fdddcca22 100644 --- a/plugins/docker/locales/translated/sv_SE.json +++ b/plugins/docker/locales/translated/sv_SE.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "Docker är inte aktiverat för den här värden", + "validating": "Validerar Docker...", + "connecting": "Ansluter...", + "error": "Fel", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", + "connectionFailed": "Misslyckades med att ansluta till Docker", + "containerStarted": "Behållaren {{name}} startad", + "failedToStartContainer": "Misslyckades med att starta containern {{name}}", + "containerStopped": "Behållaren {{name}} har stoppats", + "failedToStopContainer": "Misslyckades med att stoppa containern {{name}}", + "containerRestarted": "Behållaren {{name}} har startats om", + "failedToRestartContainer": "Misslyckades med att starta om behållaren {{name}}", + "containerPaused": "Behållaren {{name}} pausad", + "containerUnpaused": "Behållaren {{name}} har återupptagits", + "failedToTogglePauseContainer": "Misslyckades med att växla pausläge för container {{name}}", + "containerRemoved": "Behållaren {{name}} har tagits bort", + "failedToRemoveContainer": "Misslyckades med att ta bort behållaren {{name}}", + "image": "Bild", + "ports": "Hamnar", + "noPorts": "Inga portar", "start": "Start", - "stop": "Stop", + "stop": "Stopp", "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", + "actions": "Åtgärder", + "cardView": "Kortvy", + "listView": "Listvy", + "confirmRemoveContainer": "Är du säker på att du vill ta bort behållaren '{{name}}'? Den här åtgärden kan inte ångras.", + "runningContainerWarning": "Varning: Den här behållaren körs för närvarande. Om du tar bort den stoppas behållaren först.", + "loadingContainers": "Lastar containrar...", "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", + "autoRefresh": "Automatisk uppdatering", + "timestamps": "Tidsstämplar", + "lines": "Rader", + "filterLogs": "Filtrera loggar...", + "refresh": "Uppdatera", + "download": "Ladda ner", + "clear": "Rensa", + "logsDownloaded": "Loggarna har laddats ner", + "last50": "Senaste 50", + "last100": "Senaste 100", + "last500": "Senaste 500", + "last1000": "Senaste 1000", + "allLogs": "Alla loggar", + "noLogsMatching": "Inga loggar som matchar \"{{query}}\"", + "noLogsAvailable": "Inga loggar tillgängliga", + "noContainersFound": "Inga containrar hittades", + "noContainersFoundHint": "Inga Docker-containrar är tillgängliga på den här värden", + "searchPlaceholder": "Sök behållare...", + "allStatuses": "Alla statusar", + "stateRunning": "Spring", + "statePaused": "Pausad", + "stateExited": "Avslutad", + "stateRestarting": "Omstart", + "noContainersMatchFilters": "Inga behållare matchar dina filter", + "noContainersMatchFiltersHint": "Försök att justera dina sök- eller filterkriterier", + "failedToFetchStats": "Misslyckades med att hämta containerstatistik", + "containerNotRunning": "Behållaren körs inte", + "startContainerToViewStats": "Starta containern för att visa statistik", + "loadingStats": "Laddar statistik...", + "errorLoadingStats": "Fel vid inläsning av statistik", + "noStatsAvailable": "Ingen statistik tillgänglig", + "cpuUsage": "CPU-användning", + "current": "Nuvarande", + "memoryUsage": "Minnesanvändning", + "networkIo": "Nätverks-I/O", "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", + "output": "Produktion", + "blockIo": "Blockera I/O", + "read": "Läsa", + "write": "Skriva", + "pids": "PID:er", + "containerInformation": "Containerinformation", + "name": "Namn", "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", + "state": "Ange", + "containerMustBeRunning": "Behållaren måste köras för att komma åt konsolen", + "verificationCodePrompt": "Ange verifieringskod", + "totpVerificationFailed": "TOTP-verifieringen misslyckades. Försök igen.", + "browserSignInFailed": "Inloggningen misslyckades. Försök igen.", + "connectedTo": "Ansluten till {{containerName}}", + "disconnected": "Osammanhängande", + "consoleError": "Konsolfel", + "errorMessage": "Fel: {{message}}", + "failedToConnect": "Misslyckades med att ansluta till containern", + "console": "Trösta", + "selectShell": "Välj skal", + "bash": "Våldsamt slag", "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "ash": "aska", + "connect": "Ansluta", + "disconnect": "Koppla från", + "notConnected": "Inte ansluten", + "clickToConnect": "Klicka på Anslut för att starta en shell-session", + "connectingTo": "Ansluter till {{containerName}}...", + "containerNotFound": "Behållaren hittades inte", + "backToList": "Tillbaka till listan", + "logs": "Loggar", + "stats": "Statistik", + "consoleTab": "Trösta", + "startContainerToAccess": "Starta containern för att komma åt konsolen", + "noHostSelected": "Ingen värd vald", + "failedToFetchLogs": "Misslyckades med att hämta loggar: {{error}}", + "failedToDownloadLogs": "Misslyckades med att ladda ner loggar: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "Hamnarbetare" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "Hamnarbetare", + "feature_docker_desc": "Se containrar, läs loggar och titta på statistik för alla värdar som kör Docker." }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "Försöka igen", + "clipboardReadFailed": "Kunde inte läsa från urklipp. Kontrollera att behörigheter för urklipp är beviljade.", + "clipboardWriteFailed": "Kunde inte kopiera till urklipp. Kontrollera att sidan serveras via HTTPS eller localhost." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Använd Docker", + "description": "Öppna Docker-hanteraren och containerkonsolerna på värdar med Docker aktiverat." } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "Aktivera Docker", + "description": "Hantera containrar på den här värden." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", + "label": "Containerkörningstid", + "description": "Välj det CRI som används för containerhantering på den här värden", + "docker": "Hamnarbetare", "podman": "Podman" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Fjärrserver krävs. Anslut en fjärrserver i Inställningar för att använda den här anslutningstypen." }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Visa dokument", + "hostNotFound": "Värden hittades inte", + "loadingHost": "Laddar värd..." } } diff --git a/plugins/docker/locales/translated/th_TH.json b/plugins/docker/locales/translated/th_TH.json index 631c3a919..5b3f97851 100644 --- a/plugins/docker/locales/translated/th_TH.json +++ b/plugins/docker/locales/translated/th_TH.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "Docker ไม่ได้เปิดใช้งานสำหรับโฮสต์นี้", + "validating": "กำลังตรวจสอบความถูกต้องของ Docker...", + "connecting": "กำลังเชื่อมต่อ...", + "error": "ข้อผิดพลาด", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", - "start": "Start", - "stop": "Stop", - "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", + "connectionFailed": "ไม่สามารถเชื่อมต่อกับ Docker ได้", + "containerStarted": "คอนเทนเนอร์ {{name}} เริ่มทำงานแล้ว", + "failedToStartContainer": "ไม่สามารถเริ่มต้นคอนเทนเนอร์ได้ {{name}}", + "containerStopped": "คอนเทนเนอร์ {{name}} หยุดทำงานแล้ว", + "failedToStopContainer": "ไม่สามารถหยุดคอนเทนเนอร์ได้ {{name}}", + "containerRestarted": "คอนเทนเนอร์ {{name}} รีสตาร์ทแล้ว", + "failedToRestartContainer": "ไม่สามารถรีสตาร์ทคอนเทนเนอร์ได้ {{name}}", + "containerPaused": "คอนเทนเนอร์ {{name}} หยุดชั่วคราว", + "containerUnpaused": "คอนเทนเนอร์ {{name}} ยกเลิกการหยุดชั่วคราว", + "failedToTogglePauseContainer": "ไม่สามารถสลับสถานะหยุดชั่วคราวสำหรับคอนเทนเนอร์ {{name}} ได้", + "containerRemoved": "คอนเทนเนอร์ {{name}} ถูกลบออกแล้ว", + "failedToRemoveContainer": "ไม่สามารถลบคอนเทนเนอร์ {{name}} ได้", + "image": "ภาพ", + "ports": "ท่าเรือ", + "noPorts": "ไม่มีพอร์ต", + "start": "เริ่ม", + "stop": "หยุด", + "status": "สถานะ", + "actions": "การกระทำ", + "cardView": "มุมมองการ์ด", + "listView": "มุมมองรายการ", + "confirmRemoveContainer": "คุณแน่ใจหรือไม่ว่าต้องการลบคอนเทนเนอร์ '{{name}}'? การกระทำนี้ไม่สามารถย้อนกลับได้", + "runningContainerWarning": "คำเตือน: ขณะนี้คอนเทนเนอร์นี้กำลังทำงานอยู่ การลบคอนเทนเนอร์นี้จะหยุดการทำงานของคอนเทนเนอร์ก่อน", + "loadingContainers": "กำลังขนถ่ายตู้คอนเทนเนอร์...", + "manager": "ตัวจัดการ Docker", + "autoRefresh": "รีเฟรชอัตโนมัติ", + "timestamps": "ไทม์สแตมป์", + "lines": "เส้น", + "filterLogs": "กรองบันทึก...", + "refresh": "รีเฟรช", + "download": "ดาวน์โหลด", + "clear": "ชัดเจน", + "logsDownloaded": "ดาวน์โหลดบันทึกข้อมูลสำเร็จแล้ว", + "last50": "50 ครั้งสุดท้าย", + "last100": "100 ปีที่แล้ว", + "last500": "500 ครั้งสุดท้าย", + "last1000": "1000 ครั้งสุดท้าย", + "allLogs": "บันทึกทั้งหมด", + "noLogsMatching": "ไม่พบบันทึกใดที่ตรงกับ \"{{query}}\"", + "noLogsAvailable": "ไม่มีบันทึกข้อมูล", + "noContainersFound": "ไม่พบภาชนะบรรจุใดๆ", + "noContainersFoundHint": "ไม่มีคอนเทนเนอร์ Docker ให้บริการบนโฮสต์นี้", + "searchPlaceholder": "ค้นหาตู้คอนเทนเนอร์...", + "allStatuses": "สถานะทั้งหมด", + "stateRunning": "วิ่ง", + "statePaused": "หยุดชั่วคราว", + "stateExited": "ออกแล้ว", + "stateRestarting": "เริ่มใหม่", + "noContainersMatchFilters": "ไม่มีภาชนะใดตรงกับตัวกรองของคุณ", + "noContainersMatchFiltersHint": "ลองปรับเกณฑ์การค้นหาหรือตัวกรองของคุณดู", + "failedToFetchStats": "ไม่สามารถดึงข้อมูลสถิติของคอนเทนเนอร์ได้", + "containerNotRunning": "คอนเทนเนอร์ไม่ทำงาน", + "startContainerToViewStats": "เริ่มคอนเทนเนอร์เพื่อดูสถิติ", + "loadingStats": "กำลังโหลดสถิติ...", + "errorLoadingStats": "ข้อผิดพลาดในการโหลดสถิติ", + "noStatsAvailable": "ไม่มีสถิติให้ดู", + "cpuUsage": "การใช้งาน CPU", + "current": "ปัจจุบัน", + "memoryUsage": "การใช้งานหน่วยความจำ", + "networkIo": "อินพุต/เอาต์พุตเครือข่าย", + "input": "ป้อนข้อมูล", + "output": "เอาต์พุต", + "blockIo": "บล็อก I/O", + "read": "อ่าน", + "write": "เขียน", "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "containerInformation": "ข้อมูลเกี่ยวกับตู้คอนเทนเนอร์", + "name": "ชื่อ", + "id": "รหัสประจำตัว", + "state": "สถานะ", + "containerMustBeRunning": "ต้องรอให้คอนเทนเนอร์ทำงานอยู่จึงจะสามารถเข้าถึงคอนโซลได้", + "verificationCodePrompt": "ป้อนรหัสยืนยัน", + "totpVerificationFailed": "การตรวจสอบ TOTP ล้มเหลว โปรดลองอีกครั้ง", + "browserSignInFailed": "การเข้าสู่ระบบล้มเหลว โปรดลองใหม่อีกครั้ง", + "connectedTo": "เชื่อมต่อกับ {{containerName}}", + "disconnected": "ตัดการเชื่อมต่อ", + "consoleError": "ข้อผิดพลาดของคอนโซล", + "errorMessage": "ข้อผิดพลาด: {{message}}", + "failedToConnect": "ไม่สามารถเชื่อมต่อกับคอนเทนเนอร์ได้", + "console": "คอนโซล", + "selectShell": "เลือกเปลือกหอย", + "bash": "ทุบตี", + "sh": "ช", + "ash": "เถ้า", + "connect": "เชื่อมต่อ", + "disconnect": "ตัดการเชื่อมต่อ", + "notConnected": "ไม่ได้เชื่อมต่อ", + "clickToConnect": "คลิกเชื่อมต่อเพื่อเริ่มเซสชันเชลล์", + "connectingTo": "กำลังเชื่อมต่อกับ {{containerName}}...", + "containerNotFound": "ไม่พบคอนเทนเนอร์", + "backToList": "กลับสู่รายการ", + "logs": "บันทึก", + "stats": "สถิติ", + "consoleTab": "คอนโซล", + "startContainerToAccess": "เริ่มคอนเทนเนอร์เพื่อเข้าถึงคอนโซล", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "failedToFetchLogs": "ไม่สามารถดึงข้อมูลบันทึกได้: {{error}}", + "failedToDownloadLogs": "ไม่สามารถดาวน์โหลดบันทึกได้: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "ด็อกเกอร์" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "ด็อกเกอร์", + "feature_docker_desc": "ดูคอนเทนเนอร์ อ่านบันทึก และตรวจสอบสถิติบนโฮสต์ใดก็ได้ที่ใช้งาน Docker" }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "ลองใหม่อีกครั้ง", + "clipboardReadFailed": "ไม่สามารถอ่านข้อมูลจากคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์การเข้าถึงคลิปบอร์ดแล้ว", + "clipboardWriteFailed": "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าหน้าเว็บนั้นให้บริการผ่าน HTTPS หรือ localhost" }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "ใช้ Docker", + "description": "เปิดตัวจัดการ Docker และคอนโซลคอนเทนเนอร์บนโฮสต์ที่เปิดใช้งาน Docker ไว้" } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "เปิดใช้งาน Docker", + "description": "จัดการคอนเทนเนอร์บนโฮสต์นี้" }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", - "podman": "Podman" + "label": "รันไทม์คอนเทนเนอร์", + "description": "เลือก CLI ที่ใช้สำหรับการจัดการคอนเทนเนอร์บนโฮสต์นี้", + "docker": "ด็อกเกอร์", + "podman": "พอดแมน" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "จำเป็นต้องใช้เซิร์ฟเวอร์ระยะไกล เชื่อมต่อเซิร์ฟเวอร์ระยะไกลในการตั้งค่าเพื่อใช้ประเภทการเชื่อมต่อนี้" }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "ดูเอกสาร", + "hostNotFound": "ไม่พบโฮสต์", + "loadingHost": "กำลังโหลดโฮสต์..." } } diff --git a/plugins/docker/locales/translated/tr_TR.json b/plugins/docker/locales/translated/tr_TR.json index 2624361ab..cc88e6f5d 100644 --- a/plugins/docker/locales/translated/tr_TR.json +++ b/plugins/docker/locales/translated/tr_TR.json @@ -23,9 +23,9 @@ "start": "Başlat", "stop": "Durdurma", "status": "Durum", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "Eylemler", + "cardView": "Kart görünümü", + "listView": "Liste görünümü", "confirmRemoveContainer": "'{{name}}' konteynerini kaldırmak istediğinizden emin misiniz? Bu işlem geri alınamaz.", "runningContainerWarning": "Uyarı: Bu konteyner şu anda çalışıyor. Kaldırma işlemi önce konteyneri durduracak.", "loadingContainers": "Konteynerler yükleniyor...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "Konsola erişmek için konteyner çalışıyor olmalıdır", "verificationCodePrompt": "Doğrulama kodunu girin", "totpVerificationFailed": "TOTP doğrulaması başarısız oldu. Lütfen tekrar deneyin.", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Giriş başarısız oldu. Lütfen tekrar deneyin.", "connectedTo": "{{containerName}} ile bağlantı kuruldu", "disconnected": "Bağlantı kesildi", "consoleError": "Konsol hatası", @@ -101,15 +101,15 @@ "consoleTab": "Konsol", "startContainerToAccess": "Konsola erişmek için konteyneri başlatın", "noHostSelected": "Sunucu seçilmedi", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Günlükleri alma işlemi başarısız oldu: {{error}}", + "failedToDownloadLogs": "Günlük dosyaları indirilemedi: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "Docker çalıştıran herhangi bir sunucudaki konteynerleri görüntüleyin, günlükleri okuyun ve istatistikleri izleyin." }, "terminal": { "retry": "Yeniden dene", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Docker kullanın", + "description": "Docker'ın etkinleştirildiği sunucularda Docker yöneticisini ve kapsayıcı konsollarını açın." } }, "settings": { "host": { "enable": { "label": "Docker'ı Etkinleştir", - "description": "Manage containers on this host." + "description": "Bu sunucudaki konteynerleri yönetin." }, "containerRuntime": { "label": "Kapsayıcı Çalışma Zamanı", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Uzak sunucu gereklidir. Bu bağlantı türünü kullanmak için Ayarlar'dan bir uzak sunucu bağlayın." }, "hosts": { "docsLink": "Dokümanları görüntüle", diff --git a/plugins/docker/locales/translated/uk_UA.json b/plugins/docker/locales/translated/uk_UA.json index 631c3a919..b7380a5f8 100644 --- a/plugins/docker/locales/translated/uk_UA.json +++ b/plugins/docker/locales/translated/uk_UA.json @@ -1,147 +1,147 @@ { "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connecting": "Connecting...", - "error": "Error", + "notEnabled": "Docker не ввімкнено для цього хоста", + "validating": "Перевірка Docker...", + "connecting": "Підключення...", + "error": "Помилка", "version": "{{runtime}} {{version}}", - "connectionFailed": "Failed to connect to Docker", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", - "ports": "Ports", - "noPorts": "No ports", - "start": "Start", - "stop": "Stop", - "status": "Status", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "loadingContainers": "Loading containers...", - "manager": "Docker Manager", - "autoRefresh": "Auto Refresh", - "timestamps": "Timestamps", - "lines": "Lines", - "filterLogs": "Filter logs...", - "refresh": "Refresh", - "download": "Download", - "clear": "Clear", - "logsDownloaded": "Logs downloaded successfully", - "last50": "Last 50", - "last100": "Last 100", - "last500": "Last 500", - "last1000": "Last 1000", - "allLogs": "All Logs", - "noLogsMatching": "No logs matching \"{{query}}\"", - "noLogsAvailable": "No logs available", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "allStatuses": "All Statuses", - "stateRunning": "Running", - "statePaused": "Paused", - "stateExited": "Exited", - "stateRestarting": "Restarting", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", - "id": "ID", - "state": "State", - "containerMustBeRunning": "Container must be running to access console", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "browserSignInFailed": "Sign-in failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console", - "noHostSelected": "No host selected", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "connectionFailed": "Не вдалося підключитися до Docker", + "containerStarted": "Контейнер {{name}} запущено", + "failedToStartContainer": "Не вдалося запустити контейнер {{name}}", + "containerStopped": "Контейнер {{name}} зупинено", + "failedToStopContainer": "Не вдалося зупинити контейнер {{name}}", + "containerRestarted": "Контейнер {{name}} перезапущено", + "failedToRestartContainer": "Не вдалося перезапустити контейнер {{name}}", + "containerPaused": "Контейнер {{name}} призупинено", + "containerUnpaused": "Контейнер {{name}} відновлено", + "failedToTogglePauseContainer": "Не вдалося перемкнути стан паузи для контейнера {{name}}", + "containerRemoved": "Контейнер {{name}} видалено", + "failedToRemoveContainer": "Не вдалося видалити контейнер {{name}}", + "image": "Зображення", + "ports": "Порти", + "noPorts": "Без портів", + "start": "Початок", + "stop": "СТІЙ", + "status": "Статус", + "actions": "Дії", + "cardView": "Перегляд картки", + "listView": "Список", + "confirmRemoveContainer": "Ви впевнені, що хочете видалити контейнер '{{name}}'? Цю дію не можна скасувати.", + "runningContainerWarning": "Попередження: Цей контейнер зараз працює. Його видалення спочатку зупинить його роботу.", + "loadingContainers": "Завантаження контейнерів...", + "manager": "Менеджер Докера", + "autoRefresh": "Автоматичне оновлення", + "timestamps": "Позначки часу", + "lines": "Лінії", + "filterLogs": "Фільтрувати журнали...", + "refresh": "Оновити", + "download": "Завантажити", + "clear": "Очистити", + "logsDownloaded": "Журнали успішно завантажено", + "last50": "Останні 50", + "last100": "Останні 100", + "last500": "Останні 500", + "last1000": "Останні 1000", + "allLogs": "Усі журнали", + "noLogsMatching": "Немає журналів, що відповідають \"{{query}}\"", + "noLogsAvailable": "Журнали недоступні", + "noContainersFound": "Контейнерів не знайдено", + "noContainersFoundHint": "На цьому хості немає доступних контейнерів Docker", + "searchPlaceholder": "Пошук контейнерів...", + "allStatuses": "Усі статуси", + "stateRunning": "Біг", + "statePaused": "Призупинено", + "stateExited": "Вихід", + "stateRestarting": "Перезапуск", + "noContainersMatchFilters": "Немає контейнерів, що відповідають вашим фільтрам", + "noContainersMatchFiltersHint": "Спробуйте змінити критерії пошуку або фільтра", + "failedToFetchStats": "Не вдалося отримати статистику контейнера", + "containerNotRunning": "Контейнер не працює", + "startContainerToViewStats": "Запустіть контейнер для перегляду статистики", + "loadingStats": "Завантаження статистики...", + "errorLoadingStats": "Помилка завантаження статистики", + "noStatsAvailable": "Статистика недоступна", + "cpuUsage": "Використання процесора", + "current": "Поточний", + "memoryUsage": "Використання пам'яті", + "networkIo": "Мережевий ввід/вивід", + "input": "Вхід", + "output": "Вихід", + "blockIo": "Блок вводу/виводу", + "read": "Читати", + "write": "Написати", + "pids": "PID-ідентифікатори", + "containerInformation": "Інформація про контейнер", + "name": "Ім'я", + "id": "Ідентифікатор", + "state": "Штат", + "containerMustBeRunning": "Для доступу до консолі контейнер має бути запущений", + "verificationCodePrompt": "Введіть код підтвердження", + "totpVerificationFailed": "Не вдалося перевірити TOTP. Спробуйте ще раз.", + "browserSignInFailed": "Не вдалося ввійти. Спробуйте ще раз.", + "connectedTo": "Підключено до {{containerName}}", + "disconnected": "Відключено", + "consoleError": "Помилка консолі", + "errorMessage": "Помилка: {{message}}", + "failedToConnect": "Не вдалося підключитися до контейнера", + "console": "Консоль", + "selectShell": "Виберіть оболонку", + "bash": "Баш", + "sh": "ш", + "ash": "попіл", + "connect": "Підключитися", + "disconnect": "Відключитися", + "notConnected": "Не підключено", + "clickToConnect": "Натисніть кнопку «Підключитися», щоб розпочати сеанс оболонки", + "connectingTo": "Підключення до {{containerName}}...", + "containerNotFound": "Контейнер не знайдено", + "backToList": "Назад до списку", + "logs": "Журнали", + "stats": "Статистика", + "consoleTab": "Консоль", + "startContainerToAccess": "Запустіть контейнер для доступу до консолі", + "noHostSelected": "Хост не вибрано", + "failedToFetchLogs": "Не вдалося отримати журнали: {{error}}", + "failedToDownloadLogs": "Не вдалося завантажити журнали: {{error}}" }, "nav": { - "docker": "Docker" + "docker": "Докер" }, "onboarding": { - "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker": "Докер", + "feature_docker_desc": "Переглядайте контейнери, читайте журнали та переглядайте статистику на будь-якому хості, на якому працює Docker." }, "terminal": { - "retry": "Retry", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." + "retry": "Повторити спробу", + "clipboardReadFailed": "Не вдалося прочитати з буфера обміну. Переконайтеся, що надано дозволи на доступ до буфера обміну.", + "clipboardWriteFailed": "Не вдалося скопіювати в буфер обміну. Переконайтеся, що сторінка обслуговується через HTTPS або localhost." }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Використовуйте Docker", + "description": "Відкрийте менеджер Docker та консолі контейнерів на хостах з увімкненим Docker." } }, "settings": { "host": { "enable": { - "label": "Enable Docker", - "description": "Manage containers on this host." + "label": "Увімкнути Докер", + "description": "Керувати контейнерами на цьому хості." }, "containerRuntime": { - "label": "Container Runtime", - "description": "Choose the CLI used for container management on this host", - "docker": "Docker", - "podman": "Podman" + "label": "Середовище виконання контейнера", + "description": "Виберіть інтерфейс командного рядка, який використовується для керування контейнерами на цьому хості", + "docker": "Докер", + "podman": "Подман" } } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потрібен віддалений сервер. Підключіться до віддаленого сервера в налаштуваннях, щоб використовувати цей тип підключення." }, "hosts": { - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Переглянути документи", + "hostNotFound": "Хост не знайдено", + "loadingHost": "Завантаження хоста..." } } diff --git a/plugins/docker/locales/translated/vi_VN.json b/plugins/docker/locales/translated/vi_VN.json index 793883141..9b4b819e0 100644 --- a/plugins/docker/locales/translated/vi_VN.json +++ b/plugins/docker/locales/translated/vi_VN.json @@ -23,9 +23,9 @@ "start": "Khởi động", "stop": "Bit dừng", "status": "Trạng thái", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "Hành động", + "cardView": "Chế độ xem thẻ", + "listView": "Chế độ xem danh sách", "confirmRemoveContainer": "Bạn có chắc chắn muốn xóa container '{{name}}' không? Hành động này không thể hoàn tác.", "runningContainerWarning": "Cảnh báo: Container này đang chạy. Xóa nó sẽ dừng container trước.", "loadingContainers": "Đang tải danh sách container...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "Container phải đang chạy để truy cập bảng điều khiển", "verificationCodePrompt": "Nhập mã xác minh", "totpVerificationFailed": "Xác minh TOTP thất bại. Vui lòng thử lại.", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Đăng nhập không thành công. Vui lòng thử lại.", "connectedTo": "Đã kết nối đến {{containerName}}", "disconnected": "Đã ngắt kết nối", "consoleError": "Lỗi bảng điều khiển", @@ -101,15 +101,15 @@ "consoleTab": "Bảng điều khiển", "startContainerToAccess": "Khởi động container để truy cập bảng điều khiển", "noHostSelected": "Chưa chọn máy chủ", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "Không thể tải nhật ký: {{error}}", + "failedToDownloadLogs": "Không thể tải xuống nhật ký: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "Xem các container, đọc nhật ký và theo dõi số liệu thống kê trên bất kỳ máy chủ nào đang chạy Docker." }, "terminal": { "retry": "Thử lại", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "Sử dụng Docker", + "description": "Mở trình quản lý Docker và bảng điều khiển vùng chứa trên các máy chủ đã bật Docker." } }, "settings": { "host": { "enable": { "label": "Bật Docker", - "description": "Manage containers on this host." + "description": "Quản lý các container trên máy chủ này." }, "containerRuntime": { "label": "Môi trường chạy container", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Cần có máy chủ từ xa. Kết nối máy chủ từ xa trong Cài đặt để sử dụng loại kết nối này." }, "hosts": { "docsLink": "Xem tài liệu", diff --git a/plugins/docker/locales/translated/zh_CN.json b/plugins/docker/locales/translated/zh_CN.json index b1a43f784..91c2aec86 100644 --- a/plugins/docker/locales/translated/zh_CN.json +++ b/plugins/docker/locales/translated/zh_CN.json @@ -24,8 +24,8 @@ "stop": "停止", "status": "状态", "actions": "操作", - "cardView": "Card view", - "listView": "List view", + "cardView": "卡片视图", + "listView": "列表视图", "confirmRemoveContainer": "确定要移除容器 '{{name}}' 吗?此操作无法撤销。", "runningContainerWarning": "警告:此容器正在运行。移除操作将先停止容器。", "loadingContainers": "正在加载容器...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "访问控制台需要容器处于运行状态", "verificationCodePrompt": "输入验证码", "totpVerificationFailed": "TOTP 验证失败,请重试。", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "登录失败,请重试。", "connectedTo": "已连接到 {{containerName}}", "disconnected": "已断开连接", "consoleError": "控制台错误", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "使用 Docker", + "description": "在已启用 Docker 的主机上打开 Docker 管理器和容器控制台。" } }, "settings": { "host": { "enable": { "label": "启用 Docker", - "description": "Manage containers on this host." + "description": "管理此主机上的容器。" }, "containerRuntime": { "label": "容器运行时", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要远程服务器。请在“设置”中连接远程服务器以使用此连接类型。" }, "hosts": { "docsLink": "查看文档", diff --git a/plugins/docker/locales/translated/zh_TW.json b/plugins/docker/locales/translated/zh_TW.json index df863cecb..86b96839b 100644 --- a/plugins/docker/locales/translated/zh_TW.json +++ b/plugins/docker/locales/translated/zh_TW.json @@ -23,9 +23,9 @@ "start": "啟動", "stop": "停止位元", "status": "狀態", - "actions": "Actions", - "cardView": "Card view", - "listView": "List view", + "actions": "行動", + "cardView": "卡片視圖", + "listView": "清單視圖", "confirmRemoveContainer": "確定要移除容器 '{{name}}' 嗎?此動作無法復原。", "runningContainerWarning": "警告:此容器正在執行中。移除時會先將其停止。", "loadingContainers": "正在載入容器...", @@ -78,7 +78,7 @@ "containerMustBeRunning": "容器必須在執行中才能存取主控台", "verificationCodePrompt": "請輸入驗證碼", "totpVerificationFailed": "TOTP 驗證失敗,請再試一次。", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "登入失敗,請重試。", "connectedTo": "已連線至 {{containerName}}", "disconnected": "已中斷連線", "consoleError": "主控台錯誤", @@ -101,15 +101,15 @@ "consoleTab": "主控台", "startContainerToAccess": "啟動容器以存取主控台", "noHostSelected": "未選擇主機", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}" + "failedToFetchLogs": "取得日誌失敗: {{error}}", + "failedToDownloadLogs": "日誌下載失敗: {{error}}" }, "nav": { "docker": "Docker" }, "onboarding": { "feature_docker": "Docker", - "feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." + "feature_docker_desc": "查看執行 Docker 的任何主機上的容器、讀取日誌和查看統計資料。" }, "terminal": { "retry": "重試", @@ -118,15 +118,15 @@ }, "permissions": { "use": { - "title": "Use Docker", - "description": "Open the Docker manager and container consoles on hosts with Docker enabled." + "title": "使用 Docker", + "description": "在已啟用 Docker 的主機上開啟 Docker 管理員和容器控制台。" } }, "settings": { "host": { "enable": { "label": "啟用 Docker", - "description": "Manage containers on this host." + "description": "管理此主機上的容器。" }, "containerRuntime": { "label": "容器執行環境", @@ -137,7 +137,7 @@ } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要遠端伺服器。請在「設定」中連接遠端伺服器以使用此連線類型。" }, "hosts": { "docsLink": "檢視文件", diff --git a/plugins/file-manager/locales/translated/bn_BD.json b/plugins/file-manager/locales/translated/bn_BD.json index dc86761ce..469517c1f 100644 --- a/plugins/file-manager/locales/translated/bn_BD.json +++ b/plugins/file-manager/locales/translated/bn_BD.json @@ -1,543 +1,543 @@ { "nav": { - "files": "Files", - "sftp": "SFTP", - "openFileManager": "Open File Manager" + "files": "ফাইল", + "sftp": "এসএফটিপি", + "openFileManager": "ফাইল ম্যানেজার খুলুন" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "ফাইল ম্যানেজার ব্যবহার করুন", + "description": "SFTP-এর মাধ্যমে ফাইল ব্রাউজ, সম্পাদনা এবং স্থানান্তর করুন।" } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "ফাইল ম্যানেজার সক্রিয় করুন", + "description": "SFTP-এর মাধ্যমে এই হোস্টের ফাইলগুলো ব্রাউজ ও সম্পাদনা করুন।" }, "defaultPath": { - "label": "Default Path" + "label": "ডিফল্ট পথ" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "SCP লিগ্যাসি মোড" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "একযোগে ফাইল স্থানান্তর", + "description": "সাইড বাই সাইড লোকাল/রিমোট ম্যানেজার একই সময়ে কতগুলো ফাইল আপলোড বা ডাউনলোড করে। আপনার সার্ভার যদি SFTP চ্যানেল সীমিত করে, তবে এই সংখ্যাটি কমিয়ে দিন।" }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "ট্র্যাশে ফাইল সরানোর আগে নিশ্চিত করুন।", + "description": "রিমোট ফাইল ট্র্যাশে সরানোর আগে জিজ্ঞাসা করুন। স্থায়ীভাবে মুছে ফেলার জন্যও নিশ্চিতকরণের প্রয়োজন হয়।" } } }, "hostCapability": { - "label": "File Manager" + "label": "ফাইল ম্যানেজার" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "initializingEditor": "এডিটর চালু করা হচ্ছে...", + "file": "ফাইল", + "folder": "ফোল্ডার", + "uploadFile": "ফাইল আপলোড করুন", + "downloadFile": "ডাউনলোড করুন", + "extractArchive": "আর্কাইভ নিষ্কাশন করুন", + "extractingArchive": "{{name}} নিষ্কাশন করা হচ্ছে ...", + "archiveExtractedSuccessfully": "{{name}} সফলভাবে নিষ্কাশন করা হয়েছে", + "extractFailed": "নিষ্কাশন ব্যর্থ হয়েছে", + "compressFile": "ফাইল সংকুচিত করুন", + "compressFiles": "ফাইলগুলি সংকুচিত করুন", + "compressFilesDesc": "{{count}} টি আইটেমকে আর্কাইভে সংকুচিত করুন", + "archiveName": "আর্কাইভের নাম", + "enterArchiveName": "আর্কাইভের নাম লিখুন...", + "compressionFormat": "কম্প্রেশন ফরম্যাট", + "selectedFiles": "নির্বাচিত ফাইল", + "andMoreFiles": "এবং {{count}} আরও...", + "compress": "সংকুচিত করুন", + "compressingFiles": "{{count}} টি আইটেমকে {{name}} টি আইটেমে সংকুচিত করা হচ্ছে...", + "filesCompressedSuccessfully": "{{name}} সফলভাবে তৈরি হয়েছে", + "compressFailed": "সংকোচন ব্যর্থ হয়েছে", + "edit": "সম্পাদনা", + "preview": "প্রিভিউ", + "previous": "পূর্ববর্তী", + "next": "পরবর্তী", + "pageXOfY": "{{current}} এর {{total}} পৃষ্ঠা", + "zoomOut": "জুম আউট", + "zoomIn": "জুম ইন", + "newFile": "নতুন ফাইল", + "newFolder": "নতুন ফোল্ডার", + "rename": "নাম পরিবর্তন", + "uploading": "আপলোড হচ্ছে...", + "uploadingFile": "{{name}} আপলোড হচ্ছে ...", + "uploadingChunk": "{{name}}আপলোড করা হচ্ছে : {{percent}}% ( {{total}} এর {{chunk}} এর অংশ)", + "fileName": "ফাইলের নাম", + "folderName": "ফোল্ডারের নাম", + "fileUploadedSuccessfully": "ফাইল \"{{name}}\" সফলভাবে আপলোড হয়েছে", + "failedToUploadFile": "ফাইল আপলোড করতে ব্যর্থ হয়েছে", + "uploadingFolderFiles": "{{count}} টি ফাইল আপলোড করা হচ্ছে...", + "uploadedFolderFiles": "{{count}} টি ফাইল সফলভাবে আপলোড করা হয়েছে", + "uploadedFolderPartial": "{{uploaded}} টি ফাইল আপলোড করা হয়েছে, {{failed}} টি ফাইল আপলোড ব্যর্থ হয়েছে", + "fileDownloadedSuccessfully": "ফাইল \"{{name}}\" সফলভাবে ডাউনলোড হয়েছে", + "failedToDownloadFile": "ফাইল ডাউনলোড করতে ব্যর্থ হয়েছে", + "fileCreatedSuccessfully": "ফাইল \"{{name}}\" সফলভাবে তৈরি হয়েছে", + "folderCreatedSuccessfully": "\"{{name}}\" ফোল্ডারটি সফলভাবে তৈরি করা হয়েছে", + "failedToCreateItem": "আইটেম তৈরি করতে ব্যর্থ হয়েছে", + "operationFailed": "{{operation}} অপারেশনটি {{name}}এর জন্য ব্যর্থ হয়েছে: {{error}}", + "failedToResolveSymlink": "সিমলিঙ্ক সমাধান করতে ব্যর্থ হয়েছে", + "itemsDeletedSuccessfully": "{{count}} আইটেম সফলভাবে মুছে ফেলা হয়েছে", + "failedToDeleteItems": "আইটেমগুলি মুছে ফেলতে ব্যর্থ হয়েছে", + "sudoPasswordRequired": "প্রশাসক পাসওয়ার্ড আবশ্যক", + "enterSudoPassword": "এই অপারেশনটি চালিয়ে যেতে sudo পাসওয়ার্ড দিন।", + "sudoPassword": "সুডো পাসওয়ার্ড", + "sudoOperationFailed": "Sudo অপারেশন ব্যর্থ হয়েছে", + "sudoAuthFailed": "Sudo প্রমাণীকরণ ব্যর্থ হয়েছে", + "dragFilesToUpload": "আপলোড করার জন্য ফাইলগুলো এখানে রাখুন।", + "dropToUploadHere": "এখানে আপলোড করতে ড্রপ করুন", + "dropToDownloadHere": "ডাউনলোড করতে এখানে ক্লিক করুন", + "localFiles": "স্থানীয়", + "showLocalFiles": "স্থানীয় ফাইলগুলি দেখান (বিভক্ত দৃশ্য)", + "hideLocalFiles": "স্থানীয় ফাইলগুলি লুকান", + "localHome": "হোম ফোল্ডার", + "localPathPlaceholder": "স্থানীয় ফোল্ডার পাথ", + "localShowHidden": "লুকানো ফাইলগুলি দেখান", + "localHideHidden": "লুকানো ফাইলগুলি লুকান", + "localRevealInFileManager": "সিস্টেম ফাইল ম্যানেজারে প্রকাশ করুন", + "localCannotOpenFolder": "ফোল্ডার খোলা যাচ্ছে না", + "localItemCount": "{{count}} আইটেম", + "localSelectedCount": "{{count}} নির্বাচিত", + "back": "ফিরে যান", + "forward": "ফরোয়ার্ড", + "up": "উপরে", + "kind": "ধরনের", + "localUploadingProgress": "{{total}} এর {{current}} আপলোড করা হচ্ছে", + "localDownloadingProgress": "{{total}} এর {{current}} ডাউনলোড হচ্ছে", + "localTransferInFlight": "{{count}} একবারে", + "localPreparingDownload": "ডাউনলোড প্রস্তুত হচ্ছে...", + "localTransferCancelled": "স্থানান্তর বাতিল করা হয়েছে", + "localNothingToTransfer": "স্থানান্তর করার কিছু নেই", + "localUploadComplete": "{{count}} টি ফাইল আপলোড করা হয়েছে", + "localUploadFailed": "আপলোড ব্যর্থ হয়েছে", + "localUploadPartial": "{{done}} টি ফাইল আপলোড করা হয়েছে, {{failed}} টি ফাইল আপলোড ব্যর্থ হয়েছে", + "localDownloadComplete": "{{count}} টি ফাইল ডাউনলোড করা হয়েছে", + "localDownloadFailed": "ডাউনলোড ব্যর্থ হয়েছে", + "localDownloadPartial": "{{done}} টি ফাইল ডাউনলোড করা হয়েছে, {{failed}} টি ফাইল ডাউনলোড ব্যর্থ হয়েছে", + "localReplaceExistingPrompt": "এই ফোল্ডারে {{count}} টি আইটেম ইতিমধ্যেই বিদ্যমান। এগুলো প্রতিস্থাপন করবেন?", + "localReplace": "প্রতিস্থাপন করুন", + "localSkipExisting": "এড়িয়ে যান", + "localSkippedExisting": "{{count}} টি বিদ্যমান আইটেম বাদ দেওয়া হয়েছে", + "localUnsafeNamesSkipped": "{{count}} টি আইটেম বাদ দেওয়া হয়েছে, যেগুলোর নাম এই কম্পিউটারে ব্যবহার করা যাবে না।", + "localOpen": "খোলা", + "localOpenFolder": "ফোল্ডার খুলুন", + "localUploadToRemote": "সার্ভারে আপলোড করুন", + "localUploadToRemoteMany": "সার্ভারে {{count}} টি আইটেম আপলোড করুন", + "localMoveToTrash": "ট্র্যাশে সরান", + "localMoveToTrashMany": "{{count}} টি আইটেম ট্র্যাশে সরান", + "localTrashConfirmSingle": "\"{{name}}\" ট্র্যাশে সরাবেন?", + "localTrashConfirmFolder": "\"{{name}}\" ফোল্ডারটি এবং এর সমস্ত বিষয়বস্তু ট্র্যাশে সরান?", + "localTrashConfirmMany": "{{count}} টি আইটেম ট্র্যাশে সরাবেন?", + "localTrashed": "ট্র্যাশে {{count}} টি আইটেম সরানো হয়েছে", + "localTrashFailed": "ট্র্যাশে সরানো যায়নি", + "localRenameFailed": "নাম পরিবর্তন ব্যর্থ হয়েছে", + "localCreateFailed": "আইটেমটি তৈরি করা যায়নি", + "goToParentFolder": "প্যারেন্ট ফোল্ডারে যান", + "resizeSidebar": "সাইডবারের আকার পরিবর্তন করতে ড্র্যাগ করুন (রিসেট করতে ডাবল-ক্লিক করুন)", + "resizeLocalPane": "স্থানীয় প্যানেলের আকার পরিবর্তন করতে ড্র্যাগ করুন (রিসেট করতে ডাবল-ক্লিক করুন)", + "columns": "কলাম", + "columnsHint": "কলাম বাছাই করতে ডান-ক্লিক করুন", + "emptyFolder": "এই ফোল্ডারটি খালি", + "searchFiles": "ফাইলগুলি অনুসন্ধান করুন...", + "upload": "আপলোড", + "selectHostToStart": "ফাইল ব্যবস্থাপনা শুরু করতে একটি হোস্ট নির্বাচন করুন", + "sshRequiredForFileManager": "ফাইল ম্যানেজারের জন্য SSH প্রয়োজন। এই হোস্টে SSH সক্রিয় করা নেই।", + "failedToConnect": "SSH-এর সাথে সংযোগ করতে ব্যর্থ হয়েছে", + "failedToLoadDirectory": "ডিরেক্টরি লোড করতে ব্যর্থ হয়েছে", + "noSSHConnection": "কোন SSH সংযোগ উপলব্ধ নেই", + "copy": "অনুলিপি", + "cut": "কাটা", + "paste": "পেস্ট", + "copyPath": "কপি পাথ", + "copyPaths": "কপি পাথ", + "delete": "মুছে ফেলুন", + "properties": "বৈশিষ্ট্য", + "refresh": "রিফ্রেশ", + "downloadFiles": "ব্রাউজারে {{count}} ফাইলগুলো ডাউনলোড করুন", + "copyFiles": "{{count}} আইটেম কপি করুন", + "cutFiles": "{{count}} টি আইটেম কাটুন", + "deleteFiles": "{{count}} টি আইটেম মুছুন", + "filesCopiedToClipboard": "{{count}} আইটেম ক্লিপবোর্ডে কপি করা হয়েছে", + "filesCutToClipboard": "{{count}} আইটেমগুলো ক্লিপবোর্ডে কাটা হয়েছে", + "pathCopiedToClipboard": "পাথটি ক্লিপবোর্ডে কপি করা হয়েছে", + "pathsCopiedToClipboard": "{{count}} পাথগুলো ক্লিপবোর্ডে কপি করা হয়েছে", + "failedToCopyPath": "ক্লিপবোর্ডে পাথ কপি করতে ব্যর্থ হয়েছে", + "copyFolderLink": "ফোল্ডারে লিঙ্ক কপি করুন", + "copyCurrentFolderLink": "বর্তমান ফোল্ডারে লিঙ্ক কপি করুন", + "folderLinkCopied": "ফোল্ডারের লিঙ্ক ক্লিপবোর্ডে কপি করা হয়েছে", + "failedToCopyFolderLink": "ফোল্ডার লিঙ্ক কপি করতে ব্যর্থ হয়েছে", + "movedItems": "{{count}} টি আইটেম সরানো হয়েছে", + "failedToDeleteItem": "আইটেমটি মুছে ফেলতে ব্যর্থ হয়েছে", + "itemRenamedSuccessfully": "{{type}} সফলভাবে নাম পরিবর্তন করা হয়েছে", + "failedToRenameItem": "আইটেমের নাম পরিবর্তন করতে ব্যর্থ হয়েছে", + "download": "ডাউনলোড করুন", + "openExternalEditor": "বাইরে খুলুন", + "chooseExternalEditor": "বাহ্যিক সম্পাদক নির্বাচন করুন", + "externalEditorSelected": "বাহ্যিক সম্পাদক নির্বাচিত", + "externalEditorDesktopOnly": "এক্সটার্নাল এডিটর শুধুমাত্র ডেস্কটপ অ্যাপে উপলব্ধ।", + "externalEditorOpened": "বাহ্যিক এডিটরে খোলা হয়েছে। সেখানে সেভ করলে পরিবর্তনগুলো সার্ভারে আপলোড হয়ে যাবে।", + "failedToOpenExternalEditor": "বাহ্যিক সম্পাদক খুলতে ব্যর্থ হয়েছে", + "failedToSelectExternalEditor": "বাহ্যিক সম্পাদক নির্বাচন করতে ব্যর্থ হয়েছে", + "permissions": "অনুমতি", + "size": "আকার", + "modified": "পরিবর্তিত", + "path": "পথ", + "confirmDelete": "আপনি কি {{name}} মুছে ফেলতে নিশ্চিত?", + "permissionDenied": "অনুমতি প্রত্যাখ্যান করা হয়েছে", + "serverError": "সার্ভার ত্রুটি", + "fileSavedSuccessfully": "ফাইল সফলভাবে সংরক্ষিত হয়েছে।", + "failedToSaveFile": "ফাইল সংরক্ষণ করতে ব্যর্থ হয়েছে", + "confirmDeleteSingleItem": "আপনি কি \"{{name}} \" স্থায়ীভাবে মুছে ফেলতে চান?", + "confirmDeleteMultipleItems": "আপনি কি {{count}} টি আইটেম স্থায়ীভাবে মুছে ফেলতে চান?", + "confirmDeleteMultipleItemsWithFolders": "আপনি কি {{count}} টি আইটেম স্থায়ীভাবে মুছে ফেলতে নিশ্চিত? এর মধ্যে ফোল্ডার এবং তার ভেতরের সবকিছু অন্তর্ভুক্ত।", + "confirmDeleteFolder": "আপনি কি \"{{name}}\" ফোল্ডারটি এবং এর ভেতরের সবকিছু স্থায়ীভাবে মুছে ফেলতে চান?", + "permanentDeleteWarning": "এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না। আইটেম(গুলি) সার্ভার থেকে স্থায়ীভাবে মুছে ফেলা হবে।", + "moveToTrashWarning": "আইটেমটি টারমিক্স ট্র্যাশে স্থানান্তরিত হবে এবং সংরক্ষণের সময়সীমা শেষ হওয়ার আগে তা পুনরুদ্ধার করা যাবে।", + "itemsMovedToTrash": "{{count}} আইটেম(গুলি) ট্র্যাশে সরানো হয়েছে", + "trash": "আবর্জনা", + "trashDescription": "এই হোস্টে মুছে ফেলা আইটেমগুলি {{days}} দিন পর্যন্ত সংরক্ষিত থাকে।", + "trashLoadFailed": "ট্র্যাশ লোড করতে ব্যর্থ হয়েছে", + "trashEmpty": "ময়লার ঝুড়ি খালি", + "trashRestore": "পুনরুদ্ধার করুন", + "trashRestored": "পুনরুদ্ধার করা হয়েছে {{name}}", + "trashRestoreFailed": "আইটেমটি পুনরুদ্ধার করা সম্ভব হয়নি। মূল পাথটি হয়তো ইতিমধ্যেই বিদ্যমান আছে।", + "trashDeletePermanently": "স্থায়ীভাবে মুছে ফেলুন", + "trashDeleteConfirm": "{{name}}স্থায়ীভাবে মুছে ফেলবেন? এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", + "trashPermanentlyDeleted": "স্থায়ীভাবে মুছে ফেলা হয়েছে {{name}}", + "trashDeleteFailed": "আইটেমটি স্থায়ীভাবে মুছে ফেলতে ব্যর্থ হয়েছে", + "trashEmptyAction": "ময়লা খালি করুন", + "trashEmptyConfirm": "ট্র্যাশের প্রতিটি আইটেম স্থায়ীভাবে মুছে ফেলবেন? এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", + "trashEmptied": "ময়লা খালি করা হয়েছে", + "trashRetention": "(দিন) পর স্বয়ংক্রিয়ভাবে পরিষ্কার করা হবে", + "trashRetentionSaved": "আবর্জনা সংরক্ষণের সময় আপডেট করা হয়েছে", + "trashRetentionFailed": "ট্র্যাশ রিটেনশন আপডেট করতে ব্যর্থ হয়েছে", + "trashUnavailableConfirm": "এই আইটেমটি ট্র্যাশে সরানো যাচ্ছে না, কারণ এটি সাধারণত অন্য ফাইলসিস্টেমে রয়েছে অথবা এর জন্য বিশেষ অনুমতির প্রয়োজন। এর পরিবর্তে এটি স্থায়ীভাবে মুছে ফেলবেন?", + "recent": "সাম্প্রতিক", + "pinned": "পিন করা", + "folderShortcuts": "ফোল্ডার শর্টকাট", + "failedToReconnectSSH": "SSH সেশন পুনরায় সংযোগ করতে ব্যর্থ হয়েছে", + "openTerminalHere": "এখানে টার্মিনাল খুলুন", + "run": "দৌড়", + "openTerminalInFolder": "এই ফোল্ডারে টার্মিনাল খুলুন", + "openTerminalInFileLocation": "ফাইল লোকেশনে টার্মিনাল খুলুন", + "runningFile": "দৌড়ানো - {{file}}", + "onlyRunExecutableFiles": "শুধুমাত্র এক্সিকিউটেবল ফাইল চালানো যাবে", + "directories": "ডিরেক্টরি", + "removedFromRecentFiles": "সাম্প্রতিক ফাইলগুলি থেকে \"{{name}}\" সরানো হয়েছে", + "removeFailed": "ব্যর্থ অপসারণ", + "unpinnedSuccessfully": "\"{{name}}\" সফলভাবে আনপিন করা হয়েছে", + "unpinFailed": "আনপিন ব্যর্থ হয়েছে", + "removedShortcut": "\"{{name}} \" শর্টকাটটি সরানো হয়েছে", + "removeShortcutFailed": "শর্টকাট অপসারণ ব্যর্থ হয়েছে", + "clearedAllRecentFiles": "সাম্প্রতিক সমস্ত ফাইল মুছে ফেলা হয়েছে", + "clearFailed": "পরিষ্কার করতে ব্যর্থ হয়েছে", + "removeFromRecentFiles": "সাম্প্রতিক ফাইলগুলি থেকে সরান", + "clearAllRecentFiles": "সাম্প্রতিক সমস্ত ফাইল মুছে ফেলুন", + "unpinFile": "ফাইলটি আনপিন করুন", + "removeShortcut": "শর্টকাট সরান", + "pinFile": "পিন ফাইল", + "addToShortcuts": "শর্টকাটে যোগ করুন", + "pasteFailed": "পেস্ট ব্যর্থ হয়েছে", + "noUndoableActions": "কোনো পূর্বাবস্থায় ফেরানো যায় না এমন কাজ নেই।", + "undoCopySuccess": "কপি অপারেশন বাতিল করা হয়েছে: {{count}} টি কপি করা ফাইল মুছে ফেলা হয়েছে", + "undoCopyFailedDelete": "পূর্বাবস্থায় ফেরানো ব্যর্থ হয়েছে: কপি করা কোনো ফাইল মুছে ফেলা সম্ভব হয়নি", + "undoCopyFailedNoInfo": "পূর্বাবস্থায় ফেরানো ব্যর্থ হয়েছে: কপি করা ফাইলের তথ্য খুঁজে পাওয়া যায়নি", + "undoMoveSuccess": "স্থানান্তর প্রক্রিয়া বাতিল করা হয়েছে: {{count}} টি ফাইল মূল অবস্থানে ফিরিয়ে আনা হয়েছে", + "undoMoveFailedMove": "পূর্বাবস্থায় ফেরানো ব্যর্থ হয়েছে: কোনো ফাইল আগের জায়গায় সরানো সম্ভব হয়নি", + "undoMoveFailedNoInfo": "পূর্বাবস্থায় ফেরানো ব্যর্থ হয়েছে: স্থানান্তরিত ফাইলের তথ্য খুঁজে পাওয়া যায়নি", + "undoDeleteNotSupported": "মুছে ফেলার প্রক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না: ফাইলগুলো সার্ভার থেকে স্থায়ীভাবে মুছে ফেলা হয়েছে।", + "undoTypeNotSupported": "অসমর্থিত পূর্বাবস্থায় ফেরানোর অপারেশনের ধরণ", + "undoOperationFailed": "পূর্বাবস্থায় ফেরানো ব্যর্থ হয়েছে", + "unknownError": "অজানা ত্রুটি", + "confirm": "নিশ্চিত করুন", + "find": "খুঁজুন...", + "replace": "প্রতিস্থাপন করুন", + "downloadInstead": "পরিবর্তে ডাউনলোড করুন", + "keyboardShortcuts": "কীবোর্ড শর্টকাট", + "searchAndReplace": "অনুসন্ধান ও প্রতিস্থাপন", + "editing": "সম্পাদনা", + "search": "অনুসন্ধান", + "findNext": "পরবর্তী খুঁজুন", + "findPrevious": "পূর্ববর্তী খুঁজুন", + "save": "সংরক্ষণ করুন", + "selectAll": "সব নির্বাচন করুন", + "undo": "পূর্বাবস্থায় ফেরান", + "redo": "পুনরায় করুন", + "moveLineUp": "লাইন আপ সরান", + "moveLineDown": "লাইন নিচে সরান", + "toggleComment": "মন্তব্য টগল করুন", + "autoComplete": "স্বয়ংক্রিয়ভাবে সম্পূর্ণ", + "imageLoadError": "ছবি লোড করতে ব্যর্থ হয়েছে", + "startTyping": "টাইপ করা শুরু করুন...", + "unknownSize": "অজানা আকার", + "fileIsEmpty": "ফাইলটি খালি", + "largeFileWarning": "বড় ফাইলের সতর্কতা", + "largeFileWarningDesc": "এই ফাইলটির আকার {{size}} , যা টেক্সট হিসেবে খুললে পারফরম্যান্সের সমস্যা সৃষ্টি করতে পারে।", + "fileNotFoundAndRemoved": "\"{{name}}\" ফাইলটি খুঁজে পাওয়া যায়নি এবং সাম্প্রতিক/পিন করা ফাইলগুলো থেকে সরিয়ে ফেলা হয়েছে।", + "failedToLoadFile": "ফাইল লোড করতে ব্যর্থ: {{error}}", + "serverErrorOccurred": "সার্ভার ত্রুটি ঘটেছে। অনুগ্রহ করে পরে আবার চেষ্টা করুন।", + "autoSaveFailed": "স্বয়ংক্রিয় সংরক্ষণ ব্যর্থ হয়েছে", + "fileAutoSaved": "ফাইল স্বয়ংক্রিয়ভাবে সংরক্ষিত হয়েছে", + "moveFileFailed": "{{name}} সরাতে ব্যর্থ", + "moveOperationFailed": "স্থানান্তর প্রক্রিয়া ব্যর্থ হয়েছে", + "canOnlyCompareFiles": "শুধুমাত্র দুটি ফাইল তুলনা করা যাবে।", + "comparingFiles": "ফাইলগুলোর তুলনা: {{file1}} এবং {{file2}}", + "dragFailed": "ড্র্যাগ অপারেশন ব্যর্থ হয়েছে", + "filePinnedSuccessfully": "ফাইল \"{{name}}\" সফলভাবে পিন করা হয়েছে", + "pinFileFailed": "ফাইল পিন করতে ব্যর্থ হয়েছে", + "fileUnpinnedSuccessfully": "ফাইল \"{{name}}\" সফলভাবে আনপিন করা হয়েছে", + "unpinFileFailed": "ফাইল আনপিন করতে ব্যর্থ হয়েছে", + "shortcutAddedSuccessfully": "ফোল্ডার শর্টকাট \"{{name}}\" সফলভাবে যোগ করা হয়েছে", + "addShortcutFailed": "শর্টকাট যোগ করতে ব্যর্থ হয়েছে", + "operationCompletedSuccessfully": "{{operation}} {{count}} আইটেম সফলভাবে", + "operationCompleted": "{{operation}} {{count}} আইটেম", + "downloadFileSuccess": "ফাইল {{name}} সফলভাবে ডাউনলোড হয়েছে", + "downloadFileFailed": "ডাউনলোড ব্যর্থ হয়েছে", + "downloadingFile": "ডাউনলোড হচ্ছে {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", + "moveTo": "{{name}} এ যান", + "diffCompareWith": "{{name}} এর সাথে পার্থক্য তুলনা করুন", + "dragOutsideToDownload": "ডাউনলোড করতে উইন্ডোর বাইরে টেনে আনুন ({{count}} ফাইলগুলো)", + "newFolderDefault": "নতুন ফোল্ডার", "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", - "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "successfullyMovedItems": "{{count}} টি আইটেম সফলভাবে {{target}} টি আইটেমে সরানো হয়েছে", + "move": "স্থানান্তর", + "searchInFile": "ফাইলে অনুসন্ধান করুন (Ctrl+F)", + "showKeyboardShortcuts": "কিবোর্ড শর্টকাট দেখান", + "decreaseFontSize": "ফন্টের আকার কমান", + "increaseFontSize": "ফন্টের আকার বাড়ান", + "startWritingMarkdown": "আপনার মার্কডাউন কন্টেন্ট লেখা শুরু করুন...", + "loadingFileComparison": "ফাইল তুলনা লোড হচ্ছে...", + "reload": "পুনরায় লোড করুন", + "compare": "তুলনা করুন", + "sideBySide": "পাশাপাশি", + "inline": "ইনলাইন", + "fileComparison": "ফাইল তুলনা: {{file1}} বনাম {{file2}}", + "fileTooLarge": "ফাইলের আকার অনেক বড়: {{error}}", + "sshConnectionFailed": "SSH সংযোগ ব্যর্থ হয়েছে। অনুগ্রহ করে {{name}} ({{ip}}:{{port}} ) -এ আপনার সংযোগ পরীক্ষা করুন।", + "loadFileFailed": "ফাইল লোড করতে ব্যর্থ: {{error}}", + "connecting": "সংযোগ স্থাপন...", + "connectedSuccessfully": "সফলভাবে সংযুক্ত হয়েছে", + "totpVerificationFailed": "TOTP যাচাইকরণ ব্যর্থ হয়েছে", + "browserSignInFailed": "সাইন-ইন ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "authenticationFailed": "প্রমাণীকরণ ব্যর্থ হয়েছে", + "incorrectPassphrase": "ভুল পাসফ্রেজ। অনুগ্রহ করে আবার চেষ্টা করুন।", + "verificationCodePrompt": "যাচাইকরণ কোড:", + "changePermissions": "অনুমতি পরিবর্তন করুন", + "currentPermissions": "বর্তমান অনুমতি", + "owner": "মালিক", + "group": "গ্রুপ", + "others": "অন্যান্য", + "read": "পড়ুন", + "write": "লিখুন", + "execute": "কার্যকর করুন", + "permissionsChangedSuccessfully": "অনুমতি সফলভাবে পরিবর্তন করা হয়েছে", + "failedToChangePermissions": "অনুমতি পরিবর্তন করতে ব্যর্থ হয়েছে", + "name": "নাম", + "sortByName": "নাম", + "sortByDate": "পরিবর্তিত তারিখ", + "sortBySize": "আকার", + "ascending": "আরোহী", + "descending": "অবতরণ", + "root": "মূল", + "new": "নতুন", + "sortBy": "অনুসারে সাজান", + "items": "আইটেম", + "selected": "নির্বাচিত", + "editor": "সম্পাদক", + "octal": "অক্টাল", + "storage": "স্টোরেজ", + "disk": "ডিস্ক", + "used": "ব্যবহৃত", + "of": "এর", + "toggleSidebar": "সাইডবার টগল করুন", + "compactLayout": "সংক্ষিপ্ত বিন্যাস ব্যবহার করুন", + "comfortableLayout": "আরামদায়ক বিন্যাস ব্যবহার করুন", + "cannotLoadPdf": "পিডিএফ লোড করা যাচ্ছে না", + "pdfLoadError": "এই পিডিএফ ফাইলটি লোড করতে ত্রুটি হয়েছে।", + "loadingPdf": "পিডিএফ লোড হচ্ছে...", + "loadingPage": "পৃষ্ঠা লোড হচ্ছে...", + "cancel": "বাতিল করুন", + "copiedItems_one": "{{count}} আইটেমটি অনুলিপি করা হয়েছে", + "copiedItems_other": "{{count}} টি আইটেম কপি করা হয়েছে", + "deleteCopiedFileFailed": "{{name}}এর অনুলিপিটি মুছে ফেলা যায়নি: {{error}}", + "dragMovedItems_one": "{{count}} আইটেমটিকে {{target}} এ সরানো হয়েছে", + "dragMovedItems_other": "{{count}} টি আইটেম {{target}} টি আইটেমে সরানো হয়েছে", + "moveBackFileFailed": "{{name}} কে পিছনে সরানো সম্ভব নয়: {{error}}", + "terminal": "টার্মিনাল: {{host}} ({{path}})", + "dragToDesktop": "{{name}} কে ডেস্কটপে টেনে নিয়ে যাওয়া", + "dragFilesToDesktop": "{{count}} ফাইলগুলো ডেস্কটপে টেনে আনা", + "folderDragUnsupported": "ডেস্কটপে ফোল্ডার টেনে নিয়ে যাওয়ার সুবিধাটি এখনও সমর্থিত নয়।", + "saveToDesktopFailed": "সংরক্ষণ ব্যর্থ: {{error}}", + "dragFailedDetail": "টেনে আনা ব্যর্থ: {{error}}", + "videoUnsupported": "আপনার ব্রাউজার এই ভিডিও ফরম্যাটটি চালাতে পারছে না।", + "downloadToPlay": "অন্যত্র চালানোর জন্য ডাউনলোড করুন", + "cannotPreviewType": "এই ফাইল প্রকারের প্রিভিউ দেখা সম্ভব নয়", + "cannotPreviewTypeHint": "এই ফাইল টাইপের কোনো প্রিভিউ নেই। অন্য কোনো অ্যাপে খোলার জন্য এটি ডাউনলোড করুন।" }, "sftpTransfer": { - "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "title": "এসএফটিপি", + "description": "দুটি SSH হোস্টের মধ্যে ফাইল স্থানান্তর করুন।", + "sourceServer": "উৎস সার্ভার", + "destinationServer": "গন্তব্য সার্ভার", + "selectHost": "হোস্ট নির্বাচন করুন", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "move": "স্থানান্তর", + "copy": "অনুলিপি", + "upload": "আপলোড", + "itemsSelected": "{{count}} আইটেম নির্বাচিত", + "itemsSelected_other": "{{count}} নির্বাচিত আইটেম", + "ready": "প্রস্তুত", + "loadingHosts": "হোস্ট লোড হচ্ছে...", + "name": "নাম", + "modified": "পরিবর্তিত", + "size": "আকার", + "noFiles": "কোন ফাইল নেই", + "open": "খোলা", + "up": "উপরে", + "refresh": "রিফ্রেশ", + "copyToTarget": "লক্ষ্য ডিরেক্টরিতে অনুলিপি করুন", + "rename": "নাম পরিবর্তন", + "delete": "মুছে ফেলুন", + "editPermissions": "সম্পাদনার অনুমতি", + "createNewFolder": "নতুন ফোল্ডার তৈরি করুন", + "deleteSelectedItems": "নির্বাচিত আইটেমগুলি মুছুন", + "deleteConfirm": "{{count}} নির্বাচিত আইটেমটি মুছবেন?", + "deleteConfirm_other": "{{count}} নির্বাচিত আইটেমগুলি মুছবেন?", + "cancel": "বাতিল করুন", + "save": "সংরক্ষণ করুন", + "folderCreated": "ফোল্ডার তৈরি করা হয়েছে", + "itemRenamed": "আইটেমের নাম পরিবর্তন করা হয়েছে", + "actionFailed": "পদক্ষেপ ব্যর্থ হয়েছে", + "itemsDeleted": "{{count}} আইটেমটি মুছে ফেলা হয়েছে", + "itemsDeleted_other": "{{count}} আইটেম মুছে ফেলা হয়েছে", + "deleteFailed": "মুছে ফেলা ব্যর্থ হয়েছে", + "permissionsUpdated": "অনুমতি আপডেট করা হয়েছে", + "noRemoteSessionConnected": "কোন রিমোট সেশন সংযুক্ত নেই", + "failedToListFiles": "ফাইলগুলি তালিকাভুক্ত করতে ব্যর্থ হয়েছে", + "failedToRefresh": "রিফ্রেশ করতে ব্যর্থ হয়েছে", + "destinationInsideSource": "গন্তব্য নির্বাচিত উৎস পথের মধ্যে থাকতে পারবে না।", + "sameHostNoOp": "উৎস এবং গন্তব্য একই ফোল্ডার।" }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "ফাইল ম্যানেজার", + "fileManagerUrlCopied": "ফাইল ম্যানেজার ইউআরএল কপি করা হয়েছে", + "copyFileManagerUrlAction": "ফাইল ম্যানেজার ইউআরএল কপি করুন", + "docsLink": "নথি দেখুন", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "loadingHost": "হোস্ট লোড হচ্ছে..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "ফাইল ম্যানেজার", + "feature_files_desc": "অ্যাপ থেকে বের না হয়েই SFTP-এর মাধ্যমে ফাইল ব্রাউজ, আপলোড, ডাউনলোড এবং সম্পাদনা করুন।" }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}" + "runTitle": "দৌড়ানো {{command}} - {{host}}", + "terminalTitle": "টার্মিনাল - {{host}}", + "terminalWithPath": "টার্মিনাল - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "গন্তব্য ফোল্ডারগুলি ব্রাউজ করুন", + "browsePathError": "গন্তব্য হোস্টে এই পাথটি খোলা সম্ভব হয়নি।", + "browsePathWillBeCreated": "এই ফোল্ডারটি এখনও তৈরি হয়নি। স্থানান্তর শুরু হলে এটি তৈরি হয়ে যাবে।", + "cancel": "বাতিল করুন", + "cleanupDestFiles": "পরিষ্কার করার গন্তব্য", + "cleanupDestFilesError": "পরিষ্কার করা ব্যর্থ হয়েছে", + "cleanupDestFilesNothing": "গন্তব্যে পরিষ্কার করার কিছু নেই।", + "cleanupDestFilesPartial": "কিছু আংশিক ফাইল সরানো যায়নি", + "cleanupDestFilesSuccess": "গন্তব্য থেকে আংশিক ফাইল সরানো হয়েছে", + "confirmCopy": "অনুলিপি", + "confirmMove": "স্থানান্তর", + "copyFolderToHost": "ফোল্ডারটি হোস্টে কপি করুন…", + "copyItemsToHost": "{{count}} টি আইটেম হোস্টে কপি করুন…", + "copyToHost": "হোস্টে কপি করুন…", + "destinationPath": "গন্তব্য পথ", + "destMustBeDirectory": "একাধিক আইটেম স্থানান্তরের জন্য গন্তব্য অবশ্যই একটি ডিরেক্টরি হতে হবে।", + "goUp": "উপরে যান", + "hostAuthRequired": "প্রমাণীকরণ আবশ্যক। প্রথমে এই হোস্টে ফাইল ম্যানেজার খুলুন।", + "hostConnecting": "… সংযোগ করা হচ্ছে", + "hostConnectionFailed": "সংযোগ ব্যর্থ হয়েছে", + "hostDisconnected": "সংযুক্ত নয়", + "hostReady": "প্রস্তুত", + "itemsSummary": "{{count}} আইটেম", + "jumpHostLimitation": "উভয় হোস্টকেই টারমিক্স সার্ভার থেকে পৌঁছানো সম্ভব হতে হবে। সরাসরি হোস্ট-টু-হোস্ট রাউটিং সমর্থিত নয়।", + "methodAuto": "অটো", + "methodAutoHint": "ফাইলের সংখ্যা, আকার এবং সংকোচনযোগ্যতার উপর ভিত্তি করে tar অথবা ফাইল-ভিত্তিক SFTP নির্বাচন করে। একক ফাইলের ক্ষেত্রে সর্বদা স্ট্রিমিং SFTP ব্যবহৃত হয়।", + "methodItemSftp": "প্রতি-ফাইল এসএফটিপি", + "methodItemSftpHint": "SFTP-এর মাধ্যমে প্রতিটি ফাইল আলাদাভাবে স্থানান্তর করুন। উইন্ডোজ সহ সকল হোস্টে কাজ করে।", + "methodItemSftpLimitation": "প্রতিটি ফাইল একই SFTP স্ট্রিম ব্যবহার করে একটির পর একটি একক-ফাইল কপি হিসেবে তৈরি হয়। সমস্ত ফাইলের অগ্রগতি একত্রিত করা হয়, তাই বড় ফাইলের ক্ষেত্রে বারটি ধীরে চলে।", + "methodLabel": "স্থানান্তর পদ্ধতি", + "methodPreviewError": "স্থানান্তর পদ্ধতির প্রিভিউ দেখা সম্ভব হয়নি। আপনি চালু করার সময় সার্ভার নিজেই একটি পদ্ধতি বেছে নেবে।", + "methodPreviewLoading": "স্থানান্তর পদ্ধতি গণনা করা হচ্ছে…", + "methodPreviewScanSummary": "{{fileCount}} টি ফাইল, {{totalSize}} টি মোট (উৎস হোস্টে স্ক্যান করা হয়েছে)।", + "methodPreviewWillUseItemSftp": "ব্যবহার করা হবে: প্রতি-ফাইল এসএফটিপি", + "methodPreviewWillUseTar": "ব্যবহৃত হবে: টার আর্কাইভ", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "আপনি ফাইল-ভিত্তিক এসএফটিপি বেছে নিয়েছেন।", + "user_tar": "আপনি tar আর্কাইভটি বেছে নিয়েছেন।", + "tar_unavailable": "এক বা উভয় হোস্টে Tar উপলব্ধ না থাকায়, এর পরিবর্তে ফাইল-ভিত্তিক SFTP ব্যবহার করা হবে।", + "windows_host": "যেহেতু একটি উইন্ডোজ হোস্ট জড়িত, তাই tar ব্যবহার করা হয় না।", + "auto_multi_large": "স্বয়ংক্রিয়: সংকোচনযোগ্য ডেটা সহ একটি বড় ফাইল ({{largestSize}}) সহ একাধিক ফাইল। Tar সেগুলোকে একটি একক স্থানান্তরে একত্রিত করে।", + "auto_single_large_in_archive": "স্বয়ংক্রিয়: এই সেটে একটি বড় ফাইল ({{largestSize}}) আছে, তাই ফাইল-ভিত্তিক SFTP।", + "auto_many_incompressible": "অটো: বেশিরভাগ ডেটা অসংকোচনযোগ্য, তাই প্রতি-ফাইল এসএফটিপি।", + "auto_many_files": "স্বয়ংক্রিয়: একাধিক ফাইলের ক্ষেত্রে ({{fileCount}}), tar পদ্ধতি ব্যবহার করলে প্রতি ফাইলের অতিরিক্ত খরচ কমে যায়।", + "auto_default": "স্বয়ংক্রিয়: এই সেটের জন্য প্রতি-ফাইল এসএফটিপি।" }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "টার আর্কাইভ", + "methodTarHint": "উৎসস্থলে কম্প্রেস করুন, একটি আর্কাইভ স্থানান্তর করুন, এবং গন্তব্যে এক্সট্র্যাক্ট করুন। উভয় ইউনিক্স হোস্টে tar প্রয়োজন।", + "metricsCompress": "উৎস থেকে সংকুচিত করুন: {{duration}}", + "metricsExtract": "গন্তব্যে নিষ্কাশন: {{duration}}", + "metricsPrepare": "গন্তব্য প্রস্তুত করুন: {{duration}}", + "metricsRouteBenchmark": "রুট প্রোব: সরাসরি {{direct}}, রিলে {{relay}}", + "metricsSourceDelete": "উৎস থেকে সরান: {{duration}}", + "metricsTotal": "মোট: {{duration}}", + "metricsTransfer": "প্রান্ত থেকে প্রান্ত: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 দ্বারা যাচাইকৃত: {{duration}}", + "moveFolderToHost": "ফোল্ডারটি হোস্টে সরান…", + "moveItemsToHost": "{{count}} টি আইটেম… টি হোস্টে সরান", + "moveToHost": "হোস্টে যান…", + "noHostsConnected": "অন্য কোনো ফাইল-ম্যানেজার হোস্ট উপলব্ধ নেই।", + "noHostsConnectedHint": "হোস্ট ম্যানেজারে ফাইল ম্যানেজার সক্রিয় করা আছে এমন আরেকটি SSH হোস্ট যোগ করুন।", + "parallelSegmentsHint": "বড় ফাইলগুলোকে ২৫৬ মেগাবাইটের খণ্ডে ভাগ করা হয়। মোট থ্রুপুট বাড়ানোর জন্য একাধিক লেন আলাদা সংযোগ ব্যবহার করে (যেমন কয়েকটি ট্রান্সফার শুরু করা)।", + "parallelSegmentsLabel": "সমান্তরাল স্থানান্তর লেন", + "parallelSegmentsOption": "{{count}} লেন", + "progressBenchmarking": "দ্রুততম স্থানান্তর পথ নির্বাচন করা হচ্ছে…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "বাতিল করুন", + "progressCancelling": "বাতিল করা হচ্ছে…", + "progressCompressing": "উৎস হোস্টে সংকুচিত করা হচ্ছে…", + "progressExtracting": "গন্তব্য… থেকে নিষ্কাশন করা হচ্ছে", + "progressItems": "{{current}} / {{total}} ফাইল", + "progressReconnecting": "পুনরায় সংযোগ স্থাপন…", + "progressStalled": "স্থবির", + "progressTotalSpeed": "{{speed}} মোট ({{lanes}} লেন)", + "progressTransferring": "ডেটা স্থানান্তর করা হচ্ছে…", + "progressTransferringItems": "ফাইল স্থানান্তর করা হচ্ছে ({{current}} {{total}})…", + "progressVerifying": "ফাইলের অখণ্ডতা যাচাই করা হচ্ছে…", + "recentDestinations": "সাম্প্রতিক গন্তব্যস্থল", + "resumedHint": "অন্য একটি উইন্ডোতে শুরু হওয়া একটি সক্রিয় ট্রান্সফারের সাথে পুনরায় সংযুক্ত হওয়া গেছে।", + "retryTransfer": "পুনরায় চেষ্টা করুন", + "retryTransferError": "পুনরায় চেষ্টা ব্যর্থ হয়েছে", + "selectDestinationHost": "গন্তব্য হোস্ট নির্বাচন করুন", + "transferCancelled": "স্থানান্তর বাতিল করা হয়েছে", + "transferCancelledCopyHint": "গন্তব্যে আংশিক ফাইল থেকে যেতে পারে।", + "transferCancelledMoveHint": "গন্তব্যে আংশিক ফাইল থেকে যেতে পারে। মূল ফাইলগুলো সরানো হয়নি।", + "transferError": "স্থানান্তর ব্যর্থ হয়েছে", + "transferFailedRetryHint": "গন্তব্যে আংশিক ডেটা সংরক্ষিত হয়েছে। সংযোগ ফিরে এলে পুনরায় চেষ্টা শুরু হবে।", + "transferPartialHint": "স্থানান্তর করা যায়নি: {{paths}}", + "transferSuccess": "স্থানান্তর সম্পন্ন হয়েছে", + "metricsHopSourceRead": "উৎস → সার্ভার: {{throughput}}", + "metricsHopDestSftpWrite": "সার্ভার → গন্তব্য (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "সার্ভার → গন্তব্য (স্থানীয়): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/hi_IN.json b/plugins/file-manager/locales/translated/hi_IN.json index db82088f3..0a346ed27 100644 --- a/plugins/file-manager/locales/translated/hi_IN.json +++ b/plugins/file-manager/locales/translated/hi_IN.json @@ -1,20 +1,20 @@ { "nav": { "files": "फ़ाइलें", - "sftp": "SFTP", + "sftp": "एसएफटीपी", "openFileManager": "फ़ाइल प्रबंधक खोलें" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "फ़ाइल प्रबंधक का उपयोग करें", + "description": "SFTP के माध्यम से फाइलों को ब्राउज़ करें, संपादित करें और स्थानांतरित करें।" } }, "settings": { "host": { "enable": { "label": "फ़ाइल प्रबंधक सक्षम करें", - "description": "Browse and edit files on this host over SFTP." + "description": "इस होस्ट पर SFTP के माध्यम से फाइलों को ब्राउज़ और संपादित करें।" }, "defaultPath": { "label": "डिफ़ॉल्ट पथ" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "एक साथ फ़ाइल स्थानांतरण", + "description": "साइड-बाय-साइड लोकल/रिमोट मैनेजर एक ही समय में कितनी फाइलें अपलोड या डाउनलोड कर सकता है। यदि आपका सर्वर SFTP चैनलों को सीमित करता है तो इसे कम करें।" }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "फ़ाइलों को ट्रैश में भेजने से पहले पुष्टि कर लें", + "description": "रिमोट फ़ाइलों को ट्रैश में ले जाने से पहले पूछ लें। स्थायी रूप से हटाने के लिए भी पुष्टि आवश्यक है।" } } }, @@ -72,14 +72,14 @@ "rename": "नाम बदलें", "uploading": "अपलोड हो रहा है...", "uploadingFile": "{{name}} अपलोड हो रहा है...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "अपलोड हो रहा है {{name}}: {{percent}}% (भाग {{chunk}} का {{total}})", "fileName": "फ़ाइल का नाम", "folderName": "फ़ोल्डर का नाम", "fileUploadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक अपलोड हो गई", "failedToUploadFile": "फ़ाइल अपलोड करने में विफल", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "{{count}} फ़ाइलें अपलोड की जा रही हैं...", + "uploadedFolderFiles": "{{count}} फ़ाइलें सफलतापूर्वक अपलोड हो गईं", + "uploadedFolderPartial": "{{uploaded}} फ़ाइलें अपलोड की गईं, {{failed}} अपलोड विफल रहा।", "fileDownloadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक डाउनलोड हो गई", "failedToDownloadFile": "फ़ाइल डाउनलोड करने में विफल", "fileCreatedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक बनाई गई", @@ -95,58 +95,58 @@ "sudoOperationFailed": "sudo संचालन विफल", "sudoAuthFailed": "sudo प्रमाणीकरण विफल", "dragFilesToUpload": "अपलोड करने के लिए फ़ाइलें यहाँ छोड़ें", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "अपलोड करने के लिए यहां ड्रॉप करें", + "dropToDownloadHere": "डाउनलोड करने के लिए यहां क्लिक करें", "localFiles": "स्थानीय", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "स्थानीय फ़ाइलें दिखाएँ (स्प्लिट व्यू)", + "hideLocalFiles": "स्थानीय फ़ाइलों को छुपाएँ", + "localHome": "होम फ़ोल्डर", + "localPathPlaceholder": "स्थानीय फ़ोल्डर पथ", + "localShowHidden": "छिपी हुई फ़ाइलें दिखाएँ", + "localHideHidden": "छिपी हुई फ़ाइलों को छुपाएँ", + "localRevealInFileManager": "सिस्टम फ़ाइल प्रबंधक में दिखाएँ", + "localCannotOpenFolder": "फ़ोल्डर नहीं खोला जा सकता", "localItemCount": "{{count}} आइटम", "localSelectedCount": "{{count}} चयनित", "back": "वापस", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "आगे", + "up": "ऊपर", + "kind": "दयालु", + "localUploadingProgress": "{{total}} में से {{current}} अपलोड किया जा रहा है", + "localDownloadingProgress": "{{total}} में से {{current}} डाउनलोड हो रहा है", + "localTransferInFlight": "{{count}} एक साथ", + "localPreparingDownload": "डाउनलोड की तैयारी हो रही है...", "localTransferCancelled": "स्थानांतरण रद्द किया गया।", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "स्थानांतरित करने के लिए कुछ भी नहीं है", + "localUploadComplete": "{{count}} फाइल अपलोड की गई", + "localUploadFailed": "अपलोड विफल", + "localUploadPartial": "{{done}} फ़ाइलें अपलोड की गईं, {{failed}} अपलोड विफल रहा।", + "localDownloadComplete": "डाउनलोड की गई {{count}} फ़ाइलें", "localDownloadFailed": "डाउनलोड विफल", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "{{done}} फ़ाइलें डाउनलोड की गईं, {{failed}} डाउनलोड विफल रहा।", + "localReplaceExistingPrompt": "इस फ़ोल्डर में पहले से ही {{count}} आइटम मौजूद हैं। क्या आप उन्हें बदलना चाहेंगे?", "localReplace": "बदलें", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "छोडना", + "localSkippedExisting": "मौजूदा आइटमों में से {{count}} को छोड़ दिया गया", + "localUnsafeNamesSkipped": "इस कंप्यूटर पर जिन आइटमों के नाम इस्तेमाल नहीं किए जा सकते, उन्हें छोड़ दिया गया है {{count}}", "localOpen": "खोलें", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "फोल्डर खोलें", + "localUploadToRemote": "सर्वर पर अपलोड करें", + "localUploadToRemoteMany": "सर्वर पर {{count}} आइटम अपलोड करें", + "localMoveToTrash": "ट्रैश में ले जाएं", + "localMoveToTrashMany": "{{count}} आइटम ट्रैश में ले जाएं", + "localTrashConfirmSingle": "क्या आप \"{{name}}\" को ट्रैश में ले जाना चाहते हैं?", + "localTrashConfirmFolder": "क्या आप फोल्डर \"{{name}}\" और उसकी सभी सामग्री को ट्रैश में ले जाना चाहते हैं?", + "localTrashConfirmMany": "क्या {{count}} आइटम ट्रैश में ले जाएं?", + "localTrashed": "{{count}} आइटम ट्रैश में भेज दिए गए हैं", + "localTrashFailed": "ट्रैश में नहीं ले जाया जा सका", + "localRenameFailed": "नाम बदलने में विफल रहा", + "localCreateFailed": "आइटम नहीं बनाया जा सका", + "goToParentFolder": "मूल फ़ोल्डर पर जाएँ", + "resizeSidebar": "साइडबार का आकार बदलने के लिए उसे खींचें (रीसेट करने के लिए उस पर डबल-क्लिक करें)", + "resizeLocalPane": "स्थानीय फलक का आकार बदलने के लिए उसे खींचें (आकार बदलने के लिए उस पर दो बार क्लिक करें)", "columns": "कॉलम", - "columnsHint": "Right-click to choose columns", + "columnsHint": "कॉलम चुनने के लिए राइट-क्लिक करें", "emptyFolder": "यह फ़ोल्डर खाली है", "searchFiles": "फ़ाइलें खोजें...", "upload": "अपलोड करें", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "क्या आप वाकई {{count}} आइटम स्थायी रूप से हटाना चाहते हैं? इसमें फ़ोल्डर और उनकी सामग्री शामिल है।", "confirmDeleteFolder": "क्या आप वाकई फ़ोल्डर \"{{name}}\" और उसकी सभी सामग्री को स्थायी रूप से हटाना चाहते हैं?", "permanentDeleteWarning": "यह क्रिया पूर्ववत नहीं की जा सकती। आइटम सर्वर से स्थायी रूप से हटा दिए जाएँगे।", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "आइटम को टर्मिक्स ट्रैश में भेज दिया जाएगा और प्रतिधारण अवधि समाप्त होने से पहले इसे पुनर्स्थापित किया जा सकता है।", + "itemsMovedToTrash": "{{count}} आइटम ट्रैश में चले गए", + "trash": "कचरा", + "trashDescription": "हटाए गए आइटम इस होस्ट पर {{days}} दिनों तक रखे जाते हैं।", + "trashLoadFailed": "ट्रैश लोड करने में विफल", + "trashEmpty": "कचरा पात्र खाली है", "trashRestore": "पुनर्स्थापित करें", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "पुनर्स्थापित {{name}}", + "trashRestoreFailed": "आइटम को पुनर्स्थापित करने में विफल। मूल पथ पहले से मौजूद हो सकता है।", + "trashDeletePermanently": "स्थायी रूप से हटाएं", + "trashDeleteConfirm": "{{name}}को स्थायी रूप से हटा दें? इसे पूर्ववत नहीं किया जा सकता।", + "trashPermanentlyDeleted": "स्थायी रूप से हटा दिया गया {{name}}", + "trashDeleteFailed": "आइटम को स्थायी रूप से हटाने में विफल रहा", + "trashEmptyAction": "कचरा खाली करें", + "trashEmptyConfirm": "ट्रैश में मौजूद सभी आइटम को स्थायी रूप से हटाना चाहते हैं? इसे वापस नहीं लिया जा सकता।", + "trashEmptied": "कचरा खाली कर दिया गया", + "trashRetention": "(दिनों) के बाद स्वचालित सफाई", + "trashRetentionSaved": "कचरा संग्रहण प्रणाली को अद्यतन किया गया", + "trashRetentionFailed": "ट्रैश रिटेंशन को अपडेट करने में विफलता", + "trashUnavailableConfirm": "इस आइटम को ट्रैश में नहीं ले जाया जा सकता, आमतौर पर इसलिए क्योंकि यह किसी अन्य फ़ाइल सिस्टम पर है या इसके लिए उच्च अनुमतियों की आवश्यकता होती है। क्या इसे स्थायी रूप से हटा देना बेहतर होगा?", "recent": "हाल ही", "pinned": "पिन किए गए", "folderShortcuts": "फ़ोल्डर शॉर्टकट", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}} {{count}} आइटम", "downloadFileSuccess": "फ़ाइल {{name}} सफलतापूर्वक डाउनलोड हुई", "downloadFileFailed": "डाउनलोड विफल", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "डाउनलोड हो रहा है {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "{{name}} में ले जाएँ", "diffCompareWith": "{{name}} के साथ डिफ तुलना करें", @@ -329,7 +329,7 @@ "connecting": "कनेक्ट हो रहा है...", "connectedSuccessfully": "सफलतापूर्वक कनेक्ट हुआ", "totpVerificationFailed": "TOTP सत्यापन विफल", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "प्रवेश विफल। कृपया दोबारा प्रयास करें।", "authenticationFailed": "प्रमाणीकरण विफल", "incorrectPassphrase": "गलत पासफ़्रेज़। कृपया पुनः प्रयास करें।", "verificationCodePrompt": "सत्यापन कोड:", @@ -361,73 +361,73 @@ "used": "प्रयुक्त", "of": "में से", "toggleSidebar": "साइडबार टॉगल करें", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "कॉम्पैक्ट लेआउट का उपयोग करें", + "comfortableLayout": "सुविधाजनक लेआउट का उपयोग करें", "cannotLoadPdf": "PDF लोड नहीं कर सकता", "pdfLoadError": "इस PDF फ़ाइल को लोड करने में त्रुटि हुई।", "loadingPdf": "PDF लोड हो रहा है...", "loadingPage": "पृष्ठ लोड हो रहा है...", "cancel": "रद्द करें", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "copiedItems_one": "आइटम कॉपी किया गया {{count}}", + "copiedItems_other": "आइटम कॉपी किए गए {{count}}", + "deleteCopiedFileFailed": "{{name}}की प्रतिलिपि को हटाया नहीं जा सका : {{error}}", + "dragMovedItems_one": "{{count}} आइटम को {{target}} में स्थानांतरित किया गया", + "dragMovedItems_other": "{{count}} आइटम {{target}} में स्थानांतरित किए गए", + "moveBackFileFailed": "{{name}} को वापस नहीं ले जाया जा सका: {{error}}", + "terminal": "टर्मिनल: {{host}} ({{path}})", + "dragToDesktop": "{{name}} को डेस्कटॉप पर खींचना", + "dragFilesToDesktop": "{{count}} फ़ाइलों को डेस्कटॉप पर खींचना", + "folderDragUnsupported": "फ़ोल्डरों को डेस्कटॉप पर ड्रैग करने की सुविधा अभी समर्थित नहीं है।", + "saveToDesktopFailed": "सेव करने में विफल: {{error}}", + "dragFailedDetail": "ड्रैग विफल: {{error}}", + "videoUnsupported": "आपका ब्राउज़र इस वीडियो प्रारूप को नहीं चला सकता।", + "downloadToPlay": "इसे कहीं और खेलने के लिए डाउनलोड करें", + "cannotPreviewType": "इस फ़ाइल प्रकार का पूर्वावलोकन नहीं किया जा सकता है", + "cannotPreviewTypeHint": "इस फ़ाइल प्रकार का कोई पूर्वावलोकन नहीं है। इसे डाउनलोड करके किसी अन्य ऐप में खोलें।" }, "sftpTransfer": { - "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "title": "एसएफटीपी", + "description": "दो SSH होस्ट के बीच फ़ाइलें स्थानांतरित करें।", + "sourceServer": "स्रोत सर्वर", + "destinationServer": "गंतव्य सर्वर", + "selectHost": "होस्ट का चयन करें", "noHostSelected": "कोई होस्ट चयनित नहीं है", "move": "ले जाएँ", "copy": "कॉपी", "upload": "अपलोड करें", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} आइटम चयनित", + "itemsSelected_other": "{{count}} आइटम चयनित", "ready": "तैयार", "loadingHosts": "होस्ट लोड हो रहे हैं...", "name": "नाम", "modified": "संशोधित", "size": "आकार", - "noFiles": "No files", + "noFiles": "कोई फ़ाइल नहीं", "open": "खोलें", - "up": "Up", + "up": "ऊपर", "refresh": "ताज़ा करें", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "लक्ष्य निर्देशिका में प्रतिलिपि करें", "rename": "नाम बदलें", "delete": "हटाएँ", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "संपादन अनुमतियाँ", + "createNewFolder": "नया फ़ोल्डर बनाएं", + "deleteSelectedItems": "चयनित आइटम हटाएं", + "deleteConfirm": "चयनित आइटम हटाएं {{count}}?", + "deleteConfirm_other": "चयनित आइटम हटाएं {{count}}?", "cancel": "रद्द करें", "save": "सहेजें", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "फ़ोल्डर बनाया गया", + "itemRenamed": "आइटम का नाम बदल दिया गया", "actionFailed": "कार्रवाई विफल", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} आइटम हटा दिया गया", + "itemsDeleted_other": "{{count}} आइटम हटा दिए गए", + "deleteFailed": "डिलीट विफल", + "permissionsUpdated": "अनुमतियाँ अपडेट की गईं", + "noRemoteSessionConnected": "कोई रिमोट सेशन कनेक्ट नहीं हुआ", + "failedToListFiles": "फ़ाइलों को सूचीबद्ध करने में विफल", + "failedToRefresh": "रीफ़्रेश करने में विफल", + "destinationInsideSource": "गंतव्य चयनित स्रोत पथ के अंदर नहीं हो सकता।", + "sameHostNoOp": "स्रोत और गंतव्य एक ही फ़ोल्डर हैं।" }, "hosts": { "fileManager": "फ़ाइल प्रबंधक", @@ -438,8 +438,8 @@ "loadingHost": "होस्ट लोड हो रहा है..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "फ़ाइल मैनेजर", + "feature_files_desc": "ऐप छोड़े बिना SFTP के माध्यम से फाइलों को ब्राउज़ करें, अपलोड करें, डाउनलोड करें और संपादित करें।" }, "terminal": { "runTitle": "{{command}} चल रहा है - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "गंतव्य पथ", "destMustBeDirectory": "कई आइटम स्थानांतरण के लिए गंतव्य एक निर्देशिका होना चाहिए", "goUp": "ऊपर जाएं", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "प्रमाणीकरण आवश्यक है। पहले इस होस्ट पर फ़ाइल मैनेजर खोलें।", "hostConnecting": "कनेक्ट हो रहा है…", "hostConnectionFailed": "कनेक्शन विफल", "hostDisconnected": "कनेक्ट नहीं है", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "आपने प्रति-फ़ाइल SFTP चुना।", "user_tar": "आपने tar संग्रह चुना।", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "एक या दोनों होस्ट पर टार उपलब्ध नहीं है, इसलिए इसके बजाय प्रति-फाइल एसएफटीपी का उपयोग किया जाएगा।", + "windows_host": "इसमें विंडोज होस्ट शामिल है, इसलिए tar का उपयोग नहीं किया जाता है।", + "auto_multi_large": "ऑटो: कई फाइलें जिनमें संपीड़ित डेटा वाली एक बड़ी फाइल ({{largestSize}}) शामिल है। टार उन्हें एक ही स्थानांतरण में बंडल करता है।", + "auto_single_large_in_archive": "ऑटो: इस सेट में एक बड़ी फ़ाइल ({{largestSize}}), इसलिए प्रति-फ़ाइल SFTP.", + "auto_many_incompressible": "ऑटो: अधिकतर असंपीड़नीय डेटा, इसलिए प्रति-फ़ाइल SFTP।", + "auto_many_files": "ऑटो: कई फाइलें ({{fileCount}}), टार प्रति-फाइल ओवरहेड को कम करता है।", "auto_default": "ऑटो: इस सेट के लिए प्रति-फ़ाइल SFTP।" }, "methodTar": "Tar संग्रह", @@ -498,11 +498,11 @@ "metricsCompress": "स्रोत पर संपीड़न: {{duration}}", "metricsExtract": "गंतव्य पर निष्कर्षण: {{duration}}", "metricsPrepare": "गंतव्य तैयारी: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "रूट प्रोब: डायरेक्ट {{direct}}, रिले {{relay}}", "metricsSourceDelete": "स्रोत से हटाना: {{duration}}", "metricsTotal": "कुल: {{duration}}", "metricsTransfer": "एंड-टू-एंड: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "SHA-256 सत्यापित: {{duration}}", "moveFolderToHost": "फ़ोल्डर होस्ट पर स्थानांतरित करें…", "moveItemsToHost": "{{count}} आइटम होस्ट पर स्थानांतरित करें…", "moveToHost": "होस्ट पर ले जाएँ…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "बड़ी फ़ाइलें 256 MB टुकड़ों में विभाजित होती हैं। एकाधिक लेन उच्च कुल थ्रूपुट के लिए अलग-अलग कनेक्शन का उपयोग करती हैं (जैसे कई स्थानांतरण प्रारंभ करना)।", "parallelSegmentsLabel": "समानांतर स्थानांतरण लेन", "parallelSegmentsOption": "{{count}} लेन", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "सबसे तेज़ स्थानांतरण मार्ग का चयन करना…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "रद्द करें", "progressCancelling": "रद्द कर रहा है…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} कुल ({{lanes}} लेन)", "progressTransferring": "डेटा स्थानांतरित कर रहा है…", "progressTransferringItems": "फ़ाइलें स्थानांतरित कर रहा है ({{current}} / {{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "फ़ाइल की अखंडता का सत्यापन…", "recentDestinations": "हाल के गंतव्य", "resumedHint": "किसी अन्य विंडो में शुरू हुए सक्रिय स्थानांतरण से पुनः जुड़ा।", "retryTransfer": "पुनः प्रयास करें", diff --git a/plugins/file-manager/locales/translated/id_ID.json b/plugins/file-manager/locales/translated/id_ID.json index 9c4c6d35e..713c6b40b 100644 --- a/plugins/file-manager/locales/translated/id_ID.json +++ b/plugins/file-manager/locales/translated/id_ID.json @@ -1,543 +1,543 @@ { "nav": { - "files": "Files", + "files": "Berkas", "sftp": "SFTP", - "openFileManager": "Open File Manager" + "openFileManager": "Buka Pengelola File" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Gunakan pengelola file.", + "description": "Telusuri, edit, dan transfer file melalui SFTP." } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "Aktifkan Pengelola File", + "description": "Jelajahi dan edit file di host ini melalui SFTP." }, "defaultPath": { - "label": "Default Path" + "label": "Jalur Default" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "Mode Warisan SCP" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Transfer File Serentak", + "description": "Jumlah file yang diunggah atau diunduh oleh pengelola file lokal/jarak jauh secara bersamaan. Kurangi nilai ini jika server Anda membatasi saluran SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Konfirmasikan sebelum memindahkan file ke tempat sampah", + "description": "Mintalah izin sebelum memindahkan file jarak jauh ke tempat sampah. Penghapusan permanen tetap memerlukan konfirmasi." } } }, "hostCapability": { - "label": "File Manager" + "label": "Pengelola File" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "initializingEditor": "Menginisialisasi editor...", + "file": "Mengajukan", + "folder": "Map", + "uploadFile": "Unggah File", + "downloadFile": "Unduh", + "extractArchive": "Ekstrak Arsip", + "extractingArchive": "Mengekstrak {{name}}...", + "archiveExtractedSuccessfully": "{{name}} berhasil diekstrak", + "extractFailed": "Ekstraksi gagal", + "compressFile": "Kompres File", + "compressFiles": "Kompres File", + "compressFilesDesc": "Kompres {{count}} item ke dalam arsip", + "archiveName": "Nama Arsip", + "enterArchiveName": "Masukkan nama arsip...", + "compressionFormat": "Format Kompresi", + "selectedFiles": "File terpilih", + "andMoreFiles": "dan {{count}} lainnya...", + "compress": "Kompres", + "compressingFiles": "Mengompres {{count}} item menjadi {{name}}...", + "filesCompressedSuccessfully": "{{name}} berhasil dibuat", + "compressFailed": "Kompresi gagal", "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", + "preview": "Pratinjau", + "previous": "Sebelumnya", + "next": "Berikutnya", + "pageXOfY": "Halaman {{current}} dari {{total}}", + "zoomOut": "Perkecil tampilan", + "zoomIn": "Perbesar", + "newFile": "Berkas Baru", + "newFolder": "Folder Baru", + "rename": "Ganti nama", + "uploading": "Sedang mengunggah...", + "uploadingFile": "Mengunggah {{name}}...", + "uploadingChunk": "Mengunggah {{name}}: {{percent}}% (bagian {{chunk}} dari {{total}})", + "fileName": "Nama File", + "folderName": "Nama Folder", + "fileUploadedSuccessfully": "Berkas \"{{name}}\" berhasil diunggah", + "failedToUploadFile": "Gagal mengunggah file", + "uploadingFolderFiles": "Mengunggah {{count}} berkas...", + "uploadedFolderFiles": "Berhasil mengunggah {{count}} berkas", + "uploadedFolderPartial": "Pengunggahan {{uploaded}} berkas, {{failed}} gagal", + "fileDownloadedSuccessfully": "File \"{{name}}\" berhasil diunduh", + "failedToDownloadFile": "Gagal mengunduh file", + "fileCreatedSuccessfully": "File \"{{name}}\" berhasil dibuat", + "folderCreatedSuccessfully": "Folder \"{{name}}\" berhasil dibuat", + "failedToCreateItem": "Gagal membuat item", + "operationFailed": "Operasi {{operation}} gagal untuk {{name}}: {{error}}", + "failedToResolveSymlink": "Gagal menyelesaikan symlink", + "itemsDeletedSuccessfully": "{{count}} item berhasil dihapus", + "failedToDeleteItems": "Gagal menghapus item", + "sudoPasswordRequired": "Kata Sandi Administrator Diperlukan", + "enterSudoPassword": "Masukkan kata sandi sudo untuk melanjutkan operasi ini.", + "sudoPassword": "Kata sandi Sudo", + "sudoOperationFailed": "Operasi Sudo gagal", + "sudoAuthFailed": "Autentikasi Sudo gagal", + "dragFilesToUpload": "Seret file ke sini untuk mengunggah", + "dropToUploadHere": "Unggah di sini", + "dropToDownloadHere": "Klik di sini untuk mengunduh.", + "localFiles": "Lokal", + "showLocalFiles": "Tampilkan file lokal (tampilan terpisah)", + "hideLocalFiles": "Sembunyikan file lokal", + "localHome": "Folder beranda", + "localPathPlaceholder": "Jalur folder lokal", + "localShowHidden": "Tampilkan file tersembunyi", + "localHideHidden": "Sembunyikan file tersembunyi", + "localRevealInFileManager": "Ungkapkan di pengelola file sistem", + "localCannotOpenFolder": "Tidak dapat membuka folder", + "localItemCount": "{{count}} item", + "localSelectedCount": "{{count}} terpilih", + "back": "Kembali", + "forward": "Maju", + "up": "Ke atas", + "kind": "Baik", + "localUploadingProgress": "Mengunggah {{current}} dari {{total}}", + "localDownloadingProgress": "Mengunduh {{current}} dari {{total}}", + "localTransferInFlight": "{{count}} sekaligus", + "localPreparingDownload": "Mempersiapkan pengunduhan...", + "localTransferCancelled": "Transfer dibatalkan", + "localNothingToTransfer": "Tidak ada yang perlu ditransfer", + "localUploadComplete": "Berkas {{count}} telah diunggah", + "localUploadFailed": "Unggahan gagal", + "localUploadPartial": "Pengunggahan {{done}} berkas, {{failed}} gagal", + "localDownloadComplete": "Berkas {{count}} telah diunduh", + "localDownloadFailed": "Pengunduhan gagal", + "localDownloadPartial": "Pengunduhan {{done}} berkas, {{failed}} gagal", + "localReplaceExistingPrompt": "{{count}} item sudah ada di folder ini. Ganti item tersebut?", + "localReplace": "Mengganti", + "localSkipExisting": "Melewati", + "localSkippedExisting": "Melewati {{count}} item yang sudah ada", + "localUnsafeNamesSkipped": "Melewati {{count}} item karena namanya tidak dapat digunakan di komputer ini", + "localOpen": "Membuka", + "localOpenFolder": "Buka folder", + "localUploadToRemote": "Unggah ke server", + "localUploadToRemoteMany": "Unggah {{count}} item ke server", + "localMoveToTrash": "Pindahkan ke Tempat Sampah", + "localMoveToTrashMany": "Pindahkan {{count}} item ke Sampah", + "localTrashConfirmSingle": "Pindahkan \"{{name}}\" ke Sampah?", + "localTrashConfirmFolder": "Pindahkan folder \"{{name}}\" beserta seluruh isinya ke Sampah?", + "localTrashConfirmMany": "Pindahkan {{count}} item ke Sampah?", + "localTrashed": "Memindahkan {{count}} item ke Sampah", + "localTrashFailed": "Tidak bisa dipindahkan ke tempat sampah", + "localRenameFailed": "Penggantian nama gagal", + "localCreateFailed": "Tidak dapat membuat item", + "goToParentFolder": "Buka folder induk", + "resizeSidebar": "Seret untuk mengubah ukuran bilah sisi (klik dua kali untuk mengatur ulang)", + "resizeLocalPane": "Seret untuk mengubah ukuran panel lokal (klik dua kali untuk mengatur ulang)", + "columns": "Kolom", + "columnsHint": "Klik kanan untuk memilih kolom", + "emptyFolder": "Folder ini kosong", + "searchFiles": "Cari file...", + "upload": "Mengunggah", + "selectHostToStart": "Pilih host untuk memulai manajemen file.", + "sshRequiredForFileManager": "Pengelola file memerlukan SSH. Host ini tidak mengaktifkan SSH.", + "failedToConnect": "Gagal terhubung ke SSH", + "failedToLoadDirectory": "Gagal memuat direktori", + "noSSHConnection": "Tidak ada koneksi SSH yang tersedia.", + "copy": "Menyalin", + "cut": "Memotong", + "paste": "Pasta", + "copyPath": "Salin Jalur", + "copyPaths": "Salin Jalur", + "delete": "Menghapus", + "properties": "Properti", + "refresh": "Menyegarkan", + "downloadFiles": "Unduh {{count}} file ke Browser", + "copyFiles": "Salin {{count}} item", + "cutFiles": "Potong {{count}} item", + "deleteFiles": "Hapus {{count}} item", + "filesCopiedToClipboard": "{{count}} item disalin ke papan klip", + "filesCutToClipboard": "{{count}} item dipotong ke papan klip", + "pathCopiedToClipboard": "Jalur disalin ke papan klip", + "pathsCopiedToClipboard": "{{count}} jalur disalin ke papan klip", + "failedToCopyPath": "Gagal menyalin jalur ke papan klip.", + "copyFolderLink": "Salin Tautan ke Folder", + "copyCurrentFolderLink": "Salin Tautan ke Folder Saat Ini", + "folderLinkCopied": "Tautan folder disalin ke papan klip", + "failedToCopyFolderLink": "Gagal menyalin tautan folder", + "movedItems": "Memindahkan {{count}} item", + "failedToDeleteItem": "Gagal menghapus item", + "itemRenamedSuccessfully": "{{type}} berhasil diganti namanya", + "failedToRenameItem": "Gagal mengganti nama item", + "download": "Unduh", + "openExternalEditor": "Buka secara eksternal", + "chooseExternalEditor": "Pilih editor eksternal", + "externalEditorSelected": "Editor eksternal terpilih", + "externalEditorDesktopOnly": "Editor eksternal hanya tersedia di aplikasi desktop.", + "externalEditorOpened": "Dibuka di editor eksternal. Menyimpan di sana akan mengunggah perubahan kembali ke server.", + "failedToOpenExternalEditor": "Gagal membuka editor eksternal", + "failedToSelectExternalEditor": "Gagal memilih editor eksternal", + "permissions": "Izin", + "size": "Ukuran", + "modified": "Dimodifikasi", + "path": "Jalur", + "confirmDelete": "Apakah Anda yakin ingin menghapus {{name}}?", + "permissionDenied": "Izin ditolak", + "serverError": "Kesalahan Server", + "fileSavedSuccessfully": "Berkas berhasil disimpan.", + "failedToSaveFile": "Gagal menyimpan file", + "confirmDeleteSingleItem": "Apakah Anda yakin ingin menghapus \"{{name}} \" secara permanen?", + "confirmDeleteMultipleItems": "Apakah Anda yakin ingin menghapus {{count}} item secara permanen?", + "confirmDeleteMultipleItemsWithFolders": "Apakah Anda yakin ingin menghapus {{count}} item secara permanen? Ini termasuk folder dan isinya.", + "confirmDeleteFolder": "Apakah Anda yakin ingin menghapus folder \"{{name}}\" beserta seluruh isinya secara permanen?", + "permanentDeleteWarning": "Tindakan ini tidak dapat dibatalkan. Item tersebut akan dihapus secara permanen dari server.", + "moveToTrashWarning": "Item tersebut akan dipindahkan ke Tempat Sampah Termix dan dapat dipulihkan sebelum masa penyimpanan berakhir.", + "itemsMovedToTrash": "{{count}} item dipindahkan ke Sampah", + "trash": "Sampah", + "trashDescription": "Item yang dihapus akan tetap tersimpan selama {{days}} hari di host ini.", + "trashLoadFailed": "Gagal memuat Sampah", + "trashEmpty": "Tempat sampah sudah kosong", + "trashRestore": "Memulihkan", + "trashRestored": "Dipulihkan {{name}}", + "trashRestoreFailed": "Gagal memulihkan item. Jalur asli mungkin sudah ada.", + "trashDeletePermanently": "Hapus secara permanen", + "trashDeleteConfirm": "Hapus secara permanen {{name}}? Tindakan ini tidak dapat dibatalkan.", + "trashPermanentlyDeleted": "Dihapus secara permanen {{name}}", + "trashDeleteFailed": "Gagal menghapus item secara permanen.", + "trashEmptyAction": "Kosongkan Tempat Sampah", + "trashEmptyConfirm": "Menghapus semua item di Sampah secara permanen? Tindakan ini tidak dapat dibatalkan.", + "trashEmptied": "Sampah sudah dikosongkan", + "trashRetention": "Pembersihan otomatis setelah (hari)", + "trashRetentionSaved": "Pembaruan tentang retensi sampah", + "trashRetentionFailed": "Gagal memperbarui pengaturan penyimpanan sampah.", + "trashUnavailableConfirm": "Item ini tidak dapat dipindahkan ke Sampah, biasanya karena berada di sistem file lain atau memerlukan hak akses administrator. Hapus saja secara permanen?", + "recent": "Terkini", + "pinned": "Disematkan", + "folderShortcuts": "Pintasan Folder", + "failedToReconnectSSH": "Gagal menyambungkan kembali sesi SSH.", + "openTerminalHere": "Buka Terminal di Sini", + "run": "Berlari", + "openTerminalInFolder": "Buka Terminal di Folder Ini", + "openTerminalInFileLocation": "Buka Terminal di Lokasi File", + "runningFile": "Berlari - {{file}}", + "onlyRunExecutableFiles": "Hanya dapat menjalankan file yang dapat dieksekusi.", + "directories": "Direktori", + "removedFromRecentFiles": "Menghapus \"{{name}}\" dari file terbaru", + "removeFailed": "Hapus yang gagal", + "unpinnedSuccessfully": "Pin \"{{name}}\" berhasil dilepas", + "unpinFailed": "Gagal membuka pin", + "removedShortcut": "Pintasan \"{{name}} \" telah dihapus", + "removeShortcutFailed": "Penghapusan pintasan gagal.", + "clearedAllRecentFiles": "Semua file terbaru telah dihapus.", + "clearFailed": "Hapus gagal", + "removeFromRecentFiles": "Hapus dari berkas terbaru", + "clearAllRecentFiles": "Hapus semua file terbaru", + "unpinFile": "Lepaskan pin file", + "removeShortcut": "Hapus pintasan", "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "addToShortcuts": "Tambahkan ke pintasan", + "pasteFailed": "Pasta gagal", + "noUndoableActions": "Tidak ada tindakan yang tidak dapat dibatalkan.", + "undoCopySuccess": "Batalkan operasi penyalinan: Menghapus {{count}} file yang disalin", + "undoCopyFailedDelete": "Pembatalan gagal: Tidak dapat menghapus file yang disalin.", + "undoCopyFailedNoInfo": "Pembatalan gagal: Informasi file yang disalin tidak ditemukan.", + "undoMoveSuccess": "Operasi pemindahan dibatalkan: {{count}} berkas dipindahkan kembali ke lokasi semula", + "undoMoveFailedMove": "Pembatalan gagal: Tidak dapat memindahkan file apa pun kembali.", + "undoMoveFailedNoInfo": "Pembatalan gagal: Informasi file yang dipindahkan tidak ditemukan.", + "undoDeleteNotSupported": "Operasi penghapusan tidak dapat dibatalkan: File telah dihapus secara permanen dari server.", + "undoTypeNotSupported": "Jenis operasi undo yang tidak didukung", + "undoOperationFailed": "Operasi pembatalan gagal", + "unknownError": "Kesalahan tidak dikenal", + "confirm": "Mengonfirmasi", + "find": "Menemukan...", + "replace": "Mengganti", + "downloadInstead": "Unduh sebagai gantinya", + "keyboardShortcuts": "Pintasan Keyboard", + "searchAndReplace": "Cari & Ganti", + "editing": "Pengeditan", + "search": "Mencari", + "findNext": "Temukan Selanjutnya", + "findPrevious": "Temukan Sebelumnya", + "save": "Menyimpan", + "selectAll": "Pilih Semua", + "undo": "Membuka", + "redo": "Mengulangi", + "moveLineUp": "Susunan Langkah", + "moveLineDown": "Geser Garis ke Bawah", + "toggleComment": "Alihkan Komentar", + "autoComplete": "Pelengkapan Otomatis", + "imageLoadError": "Gambar gagal dimuat", + "startTyping": "Mulai mengetik...", + "unknownSize": "Ukuran tidak diketahui", + "fileIsEmpty": "Berkas kosong", + "largeFileWarning": "Peringatan Ukuran File Besar", + "largeFileWarningDesc": "File ini berukuran {{size}} , yang dapat menyebabkan masalah kinerja saat dibuka sebagai teks.", + "fileNotFoundAndRemoved": "Berkas \"{{name}}\" tidak ditemukan dan telah dihapus dari berkas terbaru/yang disematkan", + "failedToLoadFile": "Gagal memuat file: {{error}}", + "serverErrorOccurred": "Terjadi kesalahan server. Silakan coba lagi nanti.", + "autoSaveFailed": "Penyimpanan otomatis gagal", + "fileAutoSaved": "Berkas tersimpan otomatis", + "moveFileFailed": "Gagal memindahkan {{name}}", + "moveOperationFailed": "Operasi pemindahan gagal", + "canOnlyCompareFiles": "Hanya dapat membandingkan dua file.", + "comparingFiles": "Membandingkan berkas: {{file1}} dan {{file2}}", + "dragFailed": "Operasi seret gagal", + "filePinnedSuccessfully": "Berkas \"{{name}}\" berhasil disematkan", + "pinFileFailed": "Gagal menyematkan file", + "fileUnpinnedSuccessfully": "Berkas \"{{name}}\" berhasil dilepas dari pin", + "unpinFileFailed": "Gagal melepaskan pin file", + "shortcutAddedSuccessfully": "Pintasan folder \"{{name}}\" berhasil ditambahkan", + "addShortcutFailed": "Gagal menambahkan pintasan", + "operationCompletedSuccessfully": "{{operation}} {{count}} item berhasil", + "operationCompleted": "{{operation}} {{count}} item", + "downloadFileSuccess": "File {{name}} berhasil diunduh", + "downloadFileFailed": "Pengunduhan gagal", + "downloadingFile": "Mengunduh {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", + "moveTo": "Pindah ke {{name}}", + "diffCompareWith": "Bandingkan perbedaan dengan {{name}}", + "dragOutsideToDownload": "Seret ke luar jendela untuk mengunduh ({{count}} file)", + "newFolderDefault": "Folder Baru", + "newFileDefault": "File Baru.txt", + "successfullyMovedItems": "Berhasil memindahkan {{count}} item ke {{target}}", + "move": "Bergerak", + "searchInFile": "Cari di dalam file (Ctrl+F)", + "showKeyboardShortcuts": "Tampilkan pintasan keyboard", + "decreaseFontSize": "Kurangi ukuran font", + "increaseFontSize": "Perbesar ukuran font", + "startWritingMarkdown": "Mulailah menulis konten markdown Anda...", + "loadingFileComparison": "Sedang memuat perbandingan file...", "reload": "Muat Ulang", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", + "compare": "Membandingkan", + "sideBySide": "Berdampingan", + "inline": "Sejajar", + "fileComparison": "Perbandingan File: {{file1}} vs {{file2}}", + "fileTooLarge": "Ukuran file terlalu besar: {{error}}", + "sshConnectionFailed": "Koneksi SSH gagal. Harap periksa koneksi Anda ke {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Gagal memuat file: {{error}}", + "connecting": "Menghubungkan...", + "connectedSuccessfully": "Terhubung berhasil", + "totpVerificationFailed": "Verifikasi TOTP gagal", + "browserSignInFailed": "Login gagal. Silakan coba lagi.", + "authenticationFailed": "Autentikasi gagal", + "incorrectPassphrase": "Kata sandi salah. Silakan coba lagi.", + "verificationCodePrompt": "Kode verifikasi:", + "changePermissions": "Ubah Izin", + "currentPermissions": "Izin Saat Ini", + "owner": "Pemilik", + "group": "Kelompok", + "others": "Yang lain", + "read": "Membaca", + "write": "Menulis", + "execute": "Menjalankan", + "permissionsChangedSuccessfully": "Izin berhasil diubah.", + "failedToChangePermissions": "Gagal mengubah izin", + "name": "Nama", + "sortByName": "Nama", + "sortByDate": "Tanggal Diubah", + "sortBySize": "Ukuran", + "ascending": "Naik", + "descending": "Menurun", + "root": "Akar", + "new": "Baru", + "sortBy": "Urutkan Berdasarkan", + "items": "Barang-barang", + "selected": "Terpilih", "editor": "Editor", - "octal": "Octal", - "storage": "Storage", + "octal": "Oktal", + "storage": "Penyimpanan", "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "used": "Digunakan", + "of": "dari", + "toggleSidebar": "Alihkan Sidebar", + "compactLayout": "Gunakan tata letak yang ringkas.", + "comfortableLayout": "Gunakan tata letak yang nyaman.", + "cannotLoadPdf": "Tidak dapat memuat PDF", + "pdfLoadError": "Terjadi kesalahan saat memuat file PDF ini.", + "loadingPdf": "Sedang memuat PDF...", + "loadingPage": "Sedang memuat halaman...", + "cancel": "Membatalkan", + "copiedItems_one": "Item {{count}} disalin", + "copiedItems_other": "Item {{count}} disalin", + "deleteCopiedFileFailed": "Tidak dapat menghapus salinan {{name}}: {{error}}", + "dragMovedItems_one": "Item {{count}} dipindahkan ke {{target}}", + "dragMovedItems_other": "Memindahkan {{count}} item ke {{target}}", + "moveBackFileFailed": "Tidak dapat memindahkan {{name}} kembali: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Menyeret {{name}} ke desktop", + "dragFilesToDesktop": "Menyeret {{count}} berkas ke desktop", + "folderDragUnsupported": "Menyeret folder ke desktop belum didukung.", + "saveToDesktopFailed": "Penyimpanan gagal: {{error}}", + "dragFailedDetail": "Seret gagal: {{error}}", + "videoUnsupported": "Browser Anda tidak dapat memutar format video ini.", + "downloadToPlay": "Unduh untuk memainkannya di tempat lain", + "cannotPreviewType": "Tidak dapat melihat pratinjau tipe file ini.", + "cannotPreviewTypeHint": "Jenis file ini tidak memiliki pratinjau. Unduh untuk membukanya di aplikasi lain." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "description": "Mentransfer file antara dua host SSH.", + "sourceServer": "Server Sumber", + "destinationServer": "Server Tujuan", + "selectHost": "Pilih tuan rumah", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "move": "Bergerak", + "copy": "Menyalin", + "upload": "Mengunggah", + "itemsSelected": "{{count}} item dipilih", + "itemsSelected_other": "{{count}} item terpilih", + "ready": "Siap", + "loadingHosts": "Memuat host...", + "name": "Nama", + "modified": "Dimodifikasi", + "size": "Ukuran", + "noFiles": "Tidak ada berkas", + "open": "Membuka", + "up": "Ke atas", + "refresh": "Menyegarkan", + "copyToTarget": "Salin ke Direktori Target", + "rename": "Ganti nama", + "delete": "Menghapus", + "editPermissions": "Edit Izin", + "createNewFolder": "Buat Folder Baru", + "deleteSelectedItems": "Hapus Item yang Dipilih", + "deleteConfirm": "Hapus {{count}} item yang dipilih?", + "deleteConfirm_other": "Hapus {{count}} item yang dipilih?", + "cancel": "Membatalkan", + "save": "Menyimpan", + "folderCreated": "Folder telah dibuat.", + "itemRenamed": "Item diganti namanya", + "actionFailed": "Tindakan gagal", + "itemsDeleted": "{{count}} item dihapus", + "itemsDeleted_other": "{{count}} item dihapus", + "deleteFailed": "Penghapusan gagal", + "permissionsUpdated": "Izin telah diperbarui.", + "noRemoteSessionConnected": "Tidak ada sesi jarak jauh yang terhubung.", + "failedToListFiles": "Gagal menampilkan daftar file.", + "failedToRefresh": "Gagal memperbarui", + "destinationInsideSource": "Tujuan tidak boleh berada di dalam jalur sumber yang dipilih.", + "sameHostNoOp": "Sumber dan tujuan berada di folder yang sama." }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "Pengelola File", + "fileManagerUrlCopied": "URL Pengelola File disalin", + "copyFileManagerUrlAction": "Salin URL Pengelola File", + "docsLink": "Lihat dokumen", + "hostNotFound": "Host tidak ditemukan", + "loadingHost": "Memuat host..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Pengelola berkas", + "feature_files_desc": "Jelajahi, unggah, unduh, dan edit file melalui SFTP tanpa meninggalkan aplikasi." }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", + "runTitle": "Menjalankan {{command}} - {{host}}", "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "Telusuri folder tujuan", + "browsePathError": "Tidak dapat membuka jalur ini pada host tujuan.", + "browsePathWillBeCreated": "Folder ini belum ada. Folder ini akan dibuat saat transfer dimulai.", + "cancel": "Membatalkan", + "cleanupDestFiles": "Tujuan pembersihan", + "cleanupDestFilesError": "Pembersihan gagal", + "cleanupDestFilesNothing": "Tidak ada yang perlu dibersihkan di tempat tujuan.", + "cleanupDestFilesPartial": "Beberapa file parsial tidak dapat dihapus.", + "cleanupDestFilesSuccess": "File parsial telah dihapus dari tujuan.", + "confirmCopy": "Menyalin", + "confirmMove": "Bergerak", + "copyFolderToHost": "Salin folder ke host…", + "copyItemsToHost": "Salin {{count}} item ke host…", + "copyToHost": "Salin ke host…", + "destinationPath": "Jalur tujuan", + "destMustBeDirectory": "Tujuan harus berupa direktori untuk transfer multi-item.", + "goUp": "Naik", + "hostAuthRequired": "Diperlukan autentikasi. Buka File Manager di host ini terlebih dahulu.", + "hostConnecting": "Menghubungkan…", + "hostConnectionFailed": "Koneksi gagal", + "hostDisconnected": "Tidak terhubung", + "hostReady": "Siap", + "itemsSummary": "{{count}} item", + "jumpHostLimitation": "Kedua host harus dapat dijangkau dari server Termix. Perutean langsung antar host tidak didukung.", + "methodAuto": "Mobil", + "methodAutoHint": "Memilih antara tar atau SFTP per-file berdasarkan jumlah file, ukuran, dan kemampuan kompresi. File tunggal selalu menggunakan SFTP streaming.", + "methodItemSftp": "SFTP per file", + "methodItemSftpHint": "Transfer setiap file secara individual melalui SFTP. Berfungsi di semua host termasuk Windows.", + "methodItemSftpLimitation": "Setiap berkas menggunakan aliran SFTP yang sama sebagai salinan berkas tunggal, satu demi satu. Kemajuan digabungkan di semua berkas, sehingga bilah kemajuan bergerak lambat selama pemrosesan berkas berukuran besar.", + "methodLabel": "Metode transfer", + "methodPreviewError": "Metode transfer tidak dapat dipratinjau. Server akan tetap memilih metode saat Anda memulai.", + "methodPreviewLoading": "Metode perhitungan transfer…", + "methodPreviewScanSummary": "{{fileCount}} berkas, {{totalSize}} total (dipindai pada host sumber).", + "methodPreviewWillUseItemSftp": "Akan menggunakan: SFTP per file", + "methodPreviewWillUseTar": "Akan menggunakan: Arsip Tar", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Anda memilih SFTP per-file.", + "user_tar": "Anda memilih arsip tar.", + "tar_unavailable": "Tar tidak tersedia di salah satu atau kedua host, jadi SFTP per-file akan digunakan sebagai gantinya.", + "windows_host": "Karena menggunakan sistem operasi Windows, maka tar tidak digunakan.", + "auto_multi_large": "Auto: beberapa file termasuk file besar ({{largestSize}}) dengan data yang dapat dikompresi. Tar menggabungkannya menjadi satu transfer.", + "auto_single_large_in_archive": "Otomatis: satu file besar ({{largestSize}}) dalam set ini, jadi SFTP per file.", + "auto_many_incompressible": "Otomatis: sebagian besar data tidak dapat dikompresi, jadi SFTP per file.", + "auto_many_files": "Auto: banyak file ({{fileCount}}), tar mengurangi overhead per file.", + "auto_default": "Otomatis: SFTP per-file untuk set ini." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", + "methodTar": "Arsip Tar", + "methodTarHint": "Kompres di sumber, transfer satu arsip, ekstrak di tujuan. Membutuhkan tar di kedua host Unix.", + "metricsCompress": "Kompres pada sumber: {{duration}}", + "metricsExtract": "Ekstrak pada tujuan: {{duration}}", + "metricsPrepare": "Siapkan tujuan: {{duration}}", + "metricsRouteBenchmark": "Pemeriksaan rute: langsung {{direct}}, relai {{relay}}", + "metricsSourceDelete": "Hapus dari sumber: {{duration}}", "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "metricsTransfer": "Ujung ke ujung: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 terverifikasi: {{duration}}", + "moveFolderToHost": "Pindahkan folder ke host…", + "moveItemsToHost": "Pindahkan {{count}} item ke host…", + "moveToHost": "Pindah ke host…", + "noHostsConnected": "Tidak ada penyedia pengelola file lain yang tersedia.", + "noHostsConnectedHint": "Tambahkan host SSH lain dengan File Manager diaktifkan di Host Manager.", + "parallelSegmentsHint": "File berukuran besar dibagi menjadi bagian-bagian berukuran 256 MB. Beberapa jalur menggunakan koneksi terpisah (seperti memulai beberapa transfer) untuk throughput total yang lebih tinggi.", + "parallelSegmentsLabel": "Jalur transfer paralel", + "parallelSegmentsOption": "{{count}} jalur", + "progressBenchmarking": "Memilih rute transfer tercepat…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "Membatalkan", + "progressCancelling": "Membatalkan…", + "progressCompressing": "Kompresi pada host sumber…", + "progressExtracting": "Mengekstraksi pada tujuan…", + "progressItems": "berkas {{current}} / {{total}}", + "progressReconnecting": "Menghubungkan kembali…", + "progressStalled": "Terhenti", + "progressTotalSpeed": "{{speed}} total ({{lanes}} lajur)", + "progressTransferring": "Mentransfer data…", + "progressTransferringItems": "Mentransfer berkas ({{current}} dari {{total}})…", + "progressVerifying": "Memverifikasi integritas file…", + "recentDestinations": "Destinasi terkini", + "resumedHint": "Terhubung kembali ke transfer aktif yang dimulai di jendela lain.", + "retryTransfer": "Mencoba kembali", + "retryTransferError": "Percobaan ulang gagal.", + "selectDestinationHost": "Pilih host tujuan", + "transferCancelled": "Transfer dibatalkan", + "transferCancelledCopyHint": "File yang tidak lengkap mungkin masih tersisa di tujuan.", + "transferCancelledMoveHint": "Sebagian berkas mungkin masih tersisa di tujuan. Berkas sumber tidak dihapus.", + "transferError": "Transfer gagal", + "transferFailedRetryHint": "Sebagian data tersimpan di tujuan. Upaya pengulangan akan dilanjutkan saat koneksi kembali pulih.", + "transferPartialHint": "Tidak dapat mentransfer: {{paths}}", + "transferSuccess": "Transfer selesai", + "metricsHopSourceRead": "Sumber → server: {{throughput}}", + "metricsHopDestSftpWrite": "Server → tujuan (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Server → tujuan (lokal): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/it_IT.json b/plugins/file-manager/locales/translated/it_IT.json index a30ceedae..89c5cd031 100644 --- a/plugins/file-manager/locales/translated/it_IT.json +++ b/plugins/file-manager/locales/translated/it_IT.json @@ -79,7 +79,7 @@ "failedToUploadFile": "Caricamento file non riuscito", "uploadingFolderFiles": "Caricamento del/dei file {{count}} in corso...", "uploadedFolderFiles": "File caricati con successo {{count}}", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadedFolderPartial": "Caricamento del/i file {{uploaded}} non riuscito/i {{failed}}", "fileDownloadedSuccessfully": "File \"{{name}}\" scaricato con successo", "failedToDownloadFile": "Scaricamento file non riuscito", "fileCreatedSuccessfully": "File \"{{name}}\" creato con successo", @@ -120,7 +120,7 @@ "localNothingToTransfer": "Nulla da trasferire", "localUploadComplete": "Caricato/i file {{count}}", "localUploadFailed": "Caricamento non riuscito", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", + "localUploadPartial": "Caricamento del/i file {{done}} non riuscito/i {{failed}}", "localDownloadComplete": "Scaricato il/i file {{count}}", "localDownloadFailed": "Download non riuscito", "localDownloadPartial": "Scaricamento del/dei file {{done}} , {{failed}} non riuscito", diff --git a/plugins/file-manager/locales/translated/no_NO.json b/plugins/file-manager/locales/translated/no_NO.json index f6d1ca1c3..e4f137e1a 100644 --- a/plugins/file-manager/locales/translated/no_NO.json +++ b/plugins/file-manager/locales/translated/no_NO.json @@ -1,36 +1,36 @@ { "nav": { - "files": "Files", + "files": "Filer", "sftp": "SFTP", "openFileManager": "Åpne filutforsker" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Bruk filbehandleren", + "description": "Bla gjennom, rediger og overfør filer via SFTP." } }, "settings": { "host": { "enable": { "label": "Aktiver filutforsker", - "description": "Browse and edit files on this host over SFTP." + "description": "Bla gjennom og rediger filer på denne verten via SFTP." }, "defaultPath": { "label": "Standardsti" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "SCP Legacy-modus" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Samtidige filoverføringer", + "description": "Hvor mange filer den side om side lokale/fjernstyrte administratoren laster opp eller ned samtidig. Reduser dette hvis serveren din begrenser SFTP-kanaler." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Bekreft før du flytter filer til papirkurven", + "description": "Spør før du flytter eksterne filer til papirkurven. Permanent sletting krever fortsatt bekreftelse." } } }, @@ -39,7 +39,7 @@ }, "fileManager": { "noHostSelected": "Ingen vert valgt", - "initializingEditor": "Initializing editor...", + "initializingEditor": "Initialiserer redigeringsprogrammet...", "file": "Fil", "folder": "Mappe", "uploadFile": "Last opp fil", @@ -72,14 +72,14 @@ "rename": "Gi nytt navn", "uploading": "Laster opp...", "uploadingFile": "Laster opp {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "Laster opp {{name}}: {{percent}}% (del {{chunk}} av {{total}})", "fileName": "Filnavn", "folderName": "Mappenavn", "fileUploadedSuccessfully": "Fil \"{{name}}\" ble lastet opp", "failedToUploadFile": "Kunne ikke laste opp fil", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "Laster opp {{count}} fil(er)...", + "uploadedFolderFiles": "Lastet opp {{count}} fil(er)", + "uploadedFolderPartial": "Opplasting av {{uploaded}} fil(er), {{failed}} mislyktes", "fileDownloadedSuccessfully": "Filen ble lastet ned", "failedToDownloadFile": "Kunne ikke laste ned fil", "fileCreatedSuccessfully": "Fil \"{{name}}\" ble opprettet", @@ -89,69 +89,69 @@ "failedToResolveSymlink": "Kunne ikke løse symbolske lenker", "itemsDeletedSuccessfully": "{{count}} elementer ble slettet", "failedToDeleteItems": "Kunne ikke slette elementer", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", + "sudoPasswordRequired": "Administratorpassord kreves", + "enterSudoPassword": "Skriv inn sudo-passordet for å fortsette denne operasjonen", + "sudoPassword": "Sudo-passord", + "sudoOperationFailed": "Sudo-operasjonen mislyktes", + "sudoAuthFailed": "Sudo-autentisering mislyktes", "dragFilesToUpload": "Slipp filer her for å laste opp", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Slipp for å laste opp her", + "dropToDownloadHere": "Slipp for å laste ned her", "localFiles": "Lokal", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Vis lokale filer (delt visning)", + "hideLocalFiles": "Skjul lokale filer", + "localHome": "Hjemmappe", + "localPathPlaceholder": "Lokal mappebane", + "localShowHidden": "Vis skjulte filer", + "localHideHidden": "Skjul skjulte filer", + "localRevealInFileManager": "Avslør i systemfilbehandleren", + "localCannotOpenFolder": "Kan ikke åpne mappen", "localItemCount": "{{count}} elementer", "localSelectedCount": "{{count}} valgt", "back": "Tilbake", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "forward": "Framover", + "up": "Opp", + "kind": "Type", + "localUploadingProgress": "Laster opp {{current}} av {{total}}", + "localDownloadingProgress": "Laster ned {{current}} av {{total}}", + "localTransferInFlight": "{{count}} med en gang", + "localPreparingDownload": "Forbereder nedlasting ...", + "localTransferCancelled": "Overføringen er avbrutt", + "localNothingToTransfer": "Ingenting å overføre", + "localUploadComplete": "Opplastede {{count}} fil(er)", + "localUploadFailed": "Opplastingen mislyktes", + "localUploadPartial": "Opplasting av {{done}} fil(er), {{failed}} mislyktes", + "localDownloadComplete": "Lastet ned {{count}} fil(er)", "localDownloadFailed": "Nedlasting mislyktes", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "Nedlasting av {{done}} fil(er), {{failed}} mislyktes", + "localReplaceExistingPrompt": "{{count}} element(er) finnes allerede i denne mappen. Vil du erstatte dem?", "localReplace": "Erstatt", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", + "localSkipExisting": "Hopp over", + "localSkippedExisting": "Hoppet over {{count}} eksisterende element(er)", + "localUnsafeNamesSkipped": "Hoppet over {{count}} elementer hvis navn ikke kan brukes på denne datamaskinen", + "localOpen": "Åpne", + "localOpenFolder": "Åpne mappen", + "localUploadToRemote": "Last opp til server", + "localUploadToRemoteMany": "Last opp {{count}} elementer til serveren", + "localMoveToTrash": "Flytt til papirkurven", + "localMoveToTrashMany": "Flytt {{count}} elementer til papirkurven", + "localTrashConfirmSingle": "Flytte «{{name}}» til papirkurven?", + "localTrashConfirmFolder": "Flytte mappen «{{name}}» og alt innholdet til papirkurven?", + "localTrashConfirmMany": "Flytte {{count}} elementer til papirkurven?", + "localTrashed": "Flyttet {{count}} element(er) til papirkurven", + "localTrashFailed": "Kunne ikke flytte til papirkurven", + "localRenameFailed": "Mislyktes i å gi nytt navn", + "localCreateFailed": "Kunne ikke opprette elementet", + "goToParentFolder": "Gå til overordnet mappe", + "resizeSidebar": "Dra for å endre størrelsen på sidefeltet (dobbeltklikk for å tilbakestille)", + "resizeLocalPane": "Dra for å endre størrelsen på den lokale ruten (dobbeltklikk for å tilbakestille)", + "columns": "Kolonner", + "columnsHint": "Høyreklikk for å velge kolonner", "emptyFolder": "Denne mappen er tom", "searchFiles": "Søk i filer...", "upload": "Last opp", "selectHostToStart": "Velg en vert for å starte filhåndtering", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", + "sshRequiredForFileManager": "Filbehandleren krever SSH. Denne verten har ikke SSH aktivert.", "failedToConnect": "Kunne ikke koble til SSH", "failedToLoadDirectory": "Kunne ikke laste katalog", "noSSHConnection": "Ingen SSH-tilkobling tilgjengelig", @@ -172,22 +172,22 @@ "pathCopiedToClipboard": "Sti kopiert til utklippstavlen", "pathsCopiedToClipboard": "{{count}} stier kopiert til utklippstavlen", "failedToCopyPath": "Kunne ikke kopiere sti", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", + "copyFolderLink": "Kopier lenke til mappe", + "copyCurrentFolderLink": "Kopier lenke til gjeldende mappe", + "folderLinkCopied": "Mappelenke kopiert til utklippstavlen", + "failedToCopyFolderLink": "Kunne ikke kopiere mappelenken", "movedItems": "Flyttet {{count}} elementer", "failedToDeleteItem": "Kunne ikke slette element", "itemRenamedSuccessfully": "{{type}} fikk nytt navn", "failedToRenameItem": "Kunne ikke gi element nytt navn", "download": "Last ned", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", + "openExternalEditor": "Åpne eksternt", + "chooseExternalEditor": "Velg ekstern editor", + "externalEditorSelected": "Ekstern redigerer valgt", + "externalEditorDesktopOnly": "Ekstern editor er bare tilgjengelig i skrivebordsappen", + "externalEditorOpened": "Åpnet i ekstern editor. Hvis du lagrer der, lastes endringene opp tilbake til serveren.", + "failedToOpenExternalEditor": "Kunne ikke åpne ekstern editor", + "failedToSelectExternalEditor": "Kunne ikke velge ekstern redigeringsprogram", "permissions": "Tillatelser", "size": "Størrelse", "modified": "Endret", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "Er du sikker på at du vil slette {{count}} elementer permanent? Dette inkluderer mapper og innholdet deres.", "confirmDeleteFolder": "Er du sikker på at du vil slette mappen \"{{name}}\" og alt innholdet permanent?", "permanentDeleteWarning": "Denne handlingen kan ikke angres. Elementene blir slettet permanent fra serveren.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "moveToTrashWarning": "Elementet/elementene vil bli flyttet til Termix-papirkurven og kan gjenopprettes før oppbevaringsperioden utløper.", + "itemsMovedToTrash": "{{count}} element(er) flyttet til papirkurven", + "trash": "Søppel", + "trashDescription": "Slettede elementer lagres i {{days}} dag(er) på denne verten.", + "trashLoadFailed": "Kunne ikke laste inn papirkurven", + "trashEmpty": "Papirkurven er tom", + "trashRestore": "Restaurere", + "trashRestored": "Gjenopprettet {{name}}", + "trashRestoreFailed": "Kunne ikke gjenopprette elementet. Den opprinnelige banen finnes kanskje allerede.", + "trashDeletePermanently": "Slett permanent", + "trashDeleteConfirm": "Vil du slette {{name}}permanent? Dette kan ikke angres.", + "trashPermanentlyDeleted": "Slettet permanent {{name}}", + "trashDeleteFailed": "Kunne ikke slette elementet permanent", + "trashEmptyAction": "Tøm søppelbøtten", + "trashEmptyConfirm": "Vil du slette alle elementene i papirkurven permanent? Dette kan ikke angres.", + "trashEmptied": "Søppelet tømt", + "trashRetention": "Automatisk opprydding etter (dager)", + "trashRetentionSaved": "Oppbevaring av søppel er oppdatert", + "trashRetentionFailed": "Kunne ikke oppdatere papirkurven", + "trashUnavailableConfirm": "Dette elementet kan ikke flyttes til papirkurven, vanligvis fordi det er på et annet filsystem eller krever utvidede tillatelser. Slette det permanent i stedet?", "recent": "Nylige", "pinned": "Festet", "folderShortcuts": "Mappesnarveier", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}} {{count}} elementer", "downloadFileSuccess": "Fil {{name}} ble lastet ned", "downloadFileFailed": "Nedlasting mislyktes", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "Laster ned {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "Flytt til {{name}}", "diffCompareWith": "Sammenlign forskjeller med {{name}}", @@ -314,14 +314,14 @@ "move": "Flytt", "searchInFile": "Søk i fil (Ctrl+F)", "showKeyboardShortcuts": "Vis tastatursnarveier", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", + "decreaseFontSize": "Reduser skriftstørrelsen", + "increaseFontSize": "Øk skriftstørrelsen", "startWritingMarkdown": "Begynn å skrive markdown-innhold...", "loadingFileComparison": "Laster filsammenligning...", "reload": "Last inn på nytt", "compare": "Sammenlign", "sideBySide": "Side om side", - "inline": "Inline", + "inline": "Innebygd", "fileComparison": "Filsammenligning: {{file1}} vs {{file2}}", "fileTooLarge": "Fil for stor: {{error}}", "sshConnectionFailed": "SSH-tilkobling mislyktes. Kontroller tilkoblingen til {{name}} ({{ip}}:{{port}})", @@ -329,10 +329,10 @@ "connecting": "Kobler til...", "connectedSuccessfully": "Tilkoblet", "totpVerificationFailed": "TOTP-verifisering mislyktes", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", + "browserSignInFailed": "Påloggingen mislyktes. Prøv på nytt.", + "authenticationFailed": "Autentisering mislyktes", + "incorrectPassphrase": "Feil passordfrase. Prøv på nytt.", + "verificationCodePrompt": "Verifiseringskode:", "changePermissions": "Endre tillatelser", "currentPermissions": "Gjeldende tillatelser", "owner": "Eier", @@ -345,101 +345,101 @@ "failedToChangePermissions": "Kunne ikke endre tillatelser", "name": "Navn", "sortByName": "Navn", - "sortByDate": "Date Modified", + "sortByDate": "Dato endret", "sortBySize": "Størrelse", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", + "ascending": "Stigende", + "descending": "Synkende", + "root": "Rot", + "new": "Ny", + "sortBy": "Sorter etter", + "items": "Elementer", + "selected": "Valgt", + "editor": "Redaktør", + "octal": "Oktal", + "storage": "Lagring", "disk": "Disk", "used": "Brukt", "of": "av", "toggleSidebar": "Slå av/på sidepanel", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", + "compactLayout": "Bruk kompakt oppsett", + "comfortableLayout": "Bruk komfortabel layout", + "cannotLoadPdf": "Kan ikke laste inn PDF-filen", + "pdfLoadError": "Det oppsto en feil under lasting av denne PDF-filen.", + "loadingPdf": "Laster inn PDF-filen...", + "loadingPage": "Laster inn side...", "cancel": "Avbryt", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "copiedItems_one": "Kopierte {{count}} element", + "copiedItems_other": "Kopierte {{count}} elementer", + "deleteCopiedFileFailed": "Kunne ikke slette kopien av {{name}}: {{error}}", + "dragMovedItems_one": "Flyttet {{count}} element til {{target}}", + "dragMovedItems_other": "Flyttet {{count}} elementer til {{target}}", + "moveBackFileFailed": "Kunne ikke flytte {{name}} tilbake: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Dra {{name}} til skrivebordet", + "dragFilesToDesktop": "Dra {{count}} filer til skrivebordet", + "folderDragUnsupported": "Det støttes ikke ennå å dra mapper til skrivebordet", + "saveToDesktopFailed": "Lagring mislyktes: {{error}}", + "dragFailedDetail": "Drag mislyktes: {{error}}", + "videoUnsupported": "Nettleseren din kan ikke spille av dette videoformatet.", + "downloadToPlay": "Last ned for å spille det et annet sted", + "cannotPreviewType": "Kan ikke forhåndsvise denne filtypen", + "cannotPreviewTypeHint": "Denne filtypen har ingen forhåndsvisning. Last den ned for å åpne den i en annen app." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "Overfør filer mellom to SSH-verter.", + "sourceServer": "Kildeserver", + "destinationServer": "Destinasjonsserver", + "selectHost": "Velg vert", "noHostSelected": "Ingen vert valgt", "move": "Flytt", "copy": "Kopier", "upload": "Last opp", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} element valgt", + "itemsSelected_other": "{{count}} elementer valgt", "ready": "Klar", "loadingHosts": "Laster verter...", "name": "Navn", "modified": "Endret", "size": "Størrelse", - "noFiles": "No files", - "open": "Open", - "up": "Up", + "noFiles": "Ingen filer", + "open": "Åpne", + "up": "Opp", "refresh": "Oppdater", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Kopier til målkatalogen", "rename": "Gi nytt navn", "delete": "Slett", - "editPermissions": "Edit Permissions", + "editPermissions": "Rediger tillatelser", "createNewFolder": "Opprett ny mappe", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "deleteSelectedItems": "Slett valgte elementer", + "deleteConfirm": "Slette {{count}} valgt element?", + "deleteConfirm_other": "Slette {{count}} valgte elementer?", "cancel": "Avbryt", "save": "Lagre", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", + "folderCreated": "Mappe opprettet", + "itemRenamed": "Elementet har fått nytt navn", + "actionFailed": "Handlingen mislyktes", + "itemsDeleted": "{{count}} element slettet", + "itemsDeleted_other": "{{count}} elementer slettet", + "deleteFailed": "Slettingen mislyktes", + "permissionsUpdated": "Tillatelser oppdatert", + "noRemoteSessionConnected": "Ingen ekstern økt tilkoblet", "failedToListFiles": "Kunne ikke liste filer", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "failedToRefresh": "Kunne ikke laste inn på nytt", + "destinationInsideSource": "Destinasjonen kan ikke være innenfor den valgte kildebanen.", + "sameHostNoOp": "Kilde og destinasjon er i samme mappe." }, "hosts": { "fileManager": "Filbehandler", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManagerUrlCopied": "URL-adressen til filbehandleren er kopiert", + "copyFileManagerUrlAction": "Kopier URL-adressen til filbehandleren", + "docsLink": "Vis dokumenter", + "hostNotFound": "Verten ble ikke funnet", + "loadingHost": "Laster inn vert ..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Filbehandler", + "feature_files_desc": "Bla gjennom, last opp, last ned og rediger filer via SFTP uten å forlate appen." }, "terminal": { "runTitle": "Kjører {{command}} - {{host}}", @@ -447,97 +447,97 @@ "terminalWithPath": "Terminal - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", + "browseFolders": "Bla gjennom målmapper", + "browsePathError": "Kunne ikke åpne denne banen på målverten.", + "browsePathWillBeCreated": "Denne mappen finnes ikke ennå. Den vil bli opprettet når overføringen starter.", "cancel": "Avbryt", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", + "cleanupDestFiles": "Rydd opp destinasjonen", + "cleanupDestFilesError": "Opprydding mislyktes", + "cleanupDestFilesNothing": "Ingenting å rydde opp i på destinasjonen", + "cleanupDestFilesPartial": "Kunne ikke fjerne noen delvise filer", + "cleanupDestFilesSuccess": "Fjernet delvise filer fra destinasjonen", "confirmCopy": "Kopier", "confirmMove": "Flytt", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", + "copyFolderToHost": "Kopier mappe til vert…", + "copyItemsToHost": "Kopier {{count}} elementer til vert for…", + "copyToHost": "Kopier til vert…", + "destinationPath": "Destinasjonssti", + "destMustBeDirectory": "Destinasjonen må være en katalog for overføringer av flere elementer", + "goUp": "Gå opp", + "hostAuthRequired": "Autentisering kreves. Åpne Filbehandler på denne verten først", + "hostConnecting": "Kobler til…", "hostConnectionFailed": "Tilkobling mislyktes", - "hostDisconnected": "Not connected", + "hostDisconnected": "Ikke tilkoblet", "hostReady": "Klar", "itemsSummary": "{{count}} elementer", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "jumpHostLimitation": "Begge vertene må være tilgjengelige fra Termix-serveren. Direkte vert-til-vert-ruting støttes ikke.", + "methodAuto": "Bil", + "methodAutoHint": "Velger tar eller SFTP per fil basert på antall filer, størrelse og komprimerbarhet. Enkeltfiler bruker alltid strømme-SFTP.", + "methodItemSftp": "SFTP per fil", + "methodItemSftpHint": "Overfør hver fil individuelt via SFTP. Fungerer på alle verter, inkludert Windows.", + "methodItemSftpLimitation": "Hver fil bruker den samme SFTP-strømmen som en enkeltfilskopi, én etter én. Fremdriften kombineres på tvers av alle filene, så linjen beveger seg sakte under store filer.", + "methodLabel": "Overføringsmetode", + "methodPreviewError": "Kunne ikke forhåndsvise overføringsmetoden. Serveren vil fortsatt velge en metode når du starter.", + "methodPreviewLoading": "Beregning av overføringsmetode…", + "methodPreviewScanSummary": "{{fileCount}} filer, {{totalSize}} totalt (skannet på kildeverten).", + "methodPreviewWillUseItemSftp": "Vil bruke: SFTP per fil", + "methodPreviewWillUseTar": "Vil bruke: Tar-arkiv", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Du valgte SFTP per fil.", + "user_tar": "Du valgte tar-arkiv.", + "tar_unavailable": "Tar er ikke tilgjengelig på én eller begge vertene, så SFTP per fil vil bli brukt i stedet.", + "windows_host": "En Windows-vert er involvert, så tar brukes ikke.", + "auto_multi_large": "Auto: flere filer, inkludert en stor fil ({{largestSize}}) med komprimerbare data. Tar samler dem i én overføring.", + "auto_single_large_in_archive": "Auto: én stor fil ({{largestSize}}) i dette settet, så SFTP per fil.", + "auto_many_incompressible": "Auto: stort sett inkomprimerbare data, så SFTP per fil.", + "auto_many_files": "Auto: mange filer ({{fileCount}}), tar reduserer overhead per fil.", + "auto_default": "Auto: SFTP per fil for dette settet." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "Tar-arkiv", + "methodTarHint": "Komprimer på kildekode, overfør ett arkiv, pakk ut på destinasjon. Krever tar på begge Unix-vertene.", + "metricsCompress": "Komprimer på kilde: {{duration}}", + "metricsExtract": "Uttrekk på destinasjon: {{duration}}", + "metricsPrepare": "Forbered destinasjon: {{duration}}", + "metricsRouteBenchmark": "Rutesonde: direkte {{direct}}, relé {{relay}}", + "metricsSourceDelete": "Fjern fra kilden: {{duration}}", + "metricsTotal": "Totalt: {{duration}}", + "metricsTransfer": "Ende-til-ende: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 bekreftet: {{duration}}", + "moveFolderToHost": "Flytt mappen til verten…", + "moveItemsToHost": "Flytt {{count}} elementer til vert for…", + "moveToHost": "Flytt til vert…", + "noHostsConnected": "Ingen andre filbehandlerverter tilgjengelig.", + "noHostsConnectedHint": "Legg til en annen SSH-vert med Filbehandling aktivert i Vertsbehandling.", + "parallelSegmentsHint": "Store filer deles inn i deler på 256 MB. Flere baner bruker separate tilkoblinger (som å starte flere overføringer) for høyere total gjennomstrømning.", + "parallelSegmentsLabel": "Parallelle overføringsfelt", + "parallelSegmentsOption": "{{count}} baner", + "progressBenchmarking": "Velge den raskeste overgangsruten…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "Avbryt", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", + "progressCancelling": "Avbryter…", + "progressCompressing": "Komprimering på kildevert…", + "progressExtracting": "Uttrekker på destinasjon…", + "progressItems": "{{current}} / {{total}} filer", + "progressReconnecting": "Kobler til igjen…", + "progressStalled": "Fastlåst", + "progressTotalSpeed": "{{speed}} totalt ({{lanes}} baner)", + "progressTransferring": "Overføring av data…", + "progressTransferringItems": "Overføring av filer ({{current}} av {{total}})…", + "progressVerifying": "Verifiserer filintegritet…", + "recentDestinations": "Nylige destinasjoner", + "resumedHint": "Koblet til igjen en aktiv overføring som startet i et annet vindu.", "retryTransfer": "Prøv igjen", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "retryTransferError": "Forsøk på nytt mislyktes", + "selectDestinationHost": "Velg destinasjonsvert", + "transferCancelled": "Overføringen er avbrutt", + "transferCancelledCopyHint": "Delvise filer kan bli liggende igjen på destinasjonen.", + "transferCancelledMoveHint": "Delvise filer kan bli liggende igjen på destinasjonen. Kildefilene ble ikke fjernet.", + "transferError": "Overføringen mislyktes", + "transferFailedRetryHint": "Delvise data ble lagret på destinasjonen. Forsøket gjenopptas når forbindelsen er tilbake.", + "transferPartialHint": "Kunne ikke overføre: {{paths}}", + "transferSuccess": "Overføringen er fullført", + "metricsHopSourceRead": "Kilde → server: {{throughput}}", + "metricsHopDestSftpWrite": "Server → destinasjon (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Server → dest (lokal): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/pl_PL.json b/plugins/file-manager/locales/translated/pl_PL.json index 82c0c0c83..c47ad20fe 100644 --- a/plugins/file-manager/locales/translated/pl_PL.json +++ b/plugins/file-manager/locales/translated/pl_PL.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Użyj menedżera plików", + "description": "Przeglądaj, edytuj i przesyłaj pliki przez SFTP." } }, "settings": { "host": { "enable": { "label": "Włącz menedżer plików", - "description": "Browse and edit files on this host over SFTP." + "description": "Przeglądaj i edytuj pliki na tym hoście przez SFTP." }, "defaultPath": { "label": "Domyślna ścieżka" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Jednoczesne przesyłanie plików", + "description": "Ile plików lokalny/zdalny menedżer obok siebie przesyła lub pobiera jednocześnie? Zmniejsz tę wartość, jeśli Twój serwer ogranicza kanały SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Potwierdź przed przeniesieniem plików do kosza", + "description": "Zapytaj przed przeniesieniem plików zdalnych do kosza. Trwałe usunięcie nadal wymaga potwierdzenia." } } }, @@ -72,7 +72,7 @@ "rename": "Zmień nazwę", "uploading": "Przesyłanie...", "uploadingFile": "Przesyłanie {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "Przesyłanie {{name}}: {{percent}}% (część {{chunk}} z {{total}})", "fileName": "Nazwa pliku", "folderName": "Nazwa folderu", "fileUploadedSuccessfully": "Plik „{{name}}” został pomyślnie przesłany", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Operacja sudo nie powiodła się", "sudoAuthFailed": "Uwierzytelnianie sudo nie powiodło się", "dragFilesToUpload": "Upuść pliki tutaj, aby je przesłać", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Upuść, aby przesłać tutaj", + "dropToDownloadHere": "Upuść, aby pobrać tutaj", "localFiles": "Lokalne", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Pokaż pliki lokalne (widok podzielony)", + "hideLocalFiles": "Ukryj pliki lokalne", + "localHome": "Folder domowy", + "localPathPlaceholder": "Ścieżka do folderu lokalnego", + "localShowHidden": "Pokaż ukryte pliki", + "localHideHidden": "Ukryj ukryte pliki", + "localRevealInFileManager": "Pokaż w menedżerze plików systemowych", + "localCannotOpenFolder": "Nie można otworzyć folderu", "localItemCount": "{{count}} elementów", "localSelectedCount": "Zaznaczono: {{count}}", "back": "Wstecz", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "Do przodu", + "up": "W górę", + "kind": "Uprzejmy", + "localUploadingProgress": "Przesyłanie {{current}} z {{total}}", + "localDownloadingProgress": "Pobieranie {{current}} z {{total}}", + "localTransferInFlight": "{{count}} natychmiast", + "localPreparingDownload": "Przygotowywanie do pobrania...", "localTransferCancelled": "Transfer anulowany", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", + "localNothingToTransfer": "Nic do przeniesienia", + "localUploadComplete": "Przesłano {{count}} plików", + "localUploadFailed": "Przesyłanie nie powiodło się", "localUploadPartial": "Przesłano {{done}} plików, {{failed}} nie powiodło się", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localDownloadComplete": "Pobrano {{count}} plików", "localDownloadFailed": "Pobieranie nie powiodło się", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "Pobrano {{done}} plików, {{failed}} nie powiodło się", + "localReplaceExistingPrompt": "W tym folderze istnieje już {{count}} elementów. Czy je zastąpić?", "localReplace": "Zamień", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "Pominąć", + "localSkippedExisting": "Pominięto {{count}} istniejących elementów", + "localUnsafeNamesSkipped": "Pominięto {{count}} elementów, których nazw nie można używać na tym komputerze", "localOpen": "Otwórz", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "Otwórz folder", + "localUploadToRemote": "Prześlij na serwer", + "localUploadToRemoteMany": "Prześlij {{count}} elementów na serwer", + "localMoveToTrash": "Przenieś do kosza", + "localMoveToTrashMany": "Przenieś {{count}} elementów do Kosza", + "localTrashConfirmSingle": "Przenieść „{{name}}” do Kosza?", + "localTrashConfirmFolder": "Czy przenieść folder „{{name}}” i całą jego zawartość do Kosza?", + "localTrashConfirmMany": "Przenieść {{count}} elementów do Kosza?", + "localTrashed": "Przeniesiono {{count}} elementów do Kosza", + "localTrashFailed": "Nie można przenieść do Kosza", + "localRenameFailed": "Zmiana nazwy nie powiodła się", + "localCreateFailed": "Nie można utworzyć elementu", + "goToParentFolder": "Przejdź do folderu nadrzędnego", + "resizeSidebar": "Przeciągnij, aby zmienić rozmiar paska bocznego (kliknij dwukrotnie, aby zresetować)", + "resizeLocalPane": "Przeciągnij, aby zmienić rozmiar panelu lokalnego (kliknij dwukrotnie, aby zresetować)", "columns": "Kolumny", - "columnsHint": "Right-click to choose columns", + "columnsHint": "Kliknij prawym przyciskiem myszy, aby wybrać kolumny", "emptyFolder": "Ten folder jest pusty", "searchFiles": "Wyszukaj pliki...", "upload": "Prześlij", @@ -329,7 +329,7 @@ "connecting": "Łączenie...", "connectedSuccessfully": "Połączono pomyślnie", "totpVerificationFailed": "Weryfikacja TOTP nie powiodła się", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Logowanie nie powiodło się. Spróbuj ponownie.", "authenticationFailed": "Uwierzytelnianie nie powiodło się", "incorrectPassphrase": "Nieprawidłowe hasło klucza. Spróbuj ponownie.", "verificationCodePrompt": "Kod weryfikacyjny:", @@ -361,73 +361,73 @@ "used": "Użyte", "of": "z", "toggleSidebar": "Przełącz pasek boczny", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "Użyj kompaktowego układu", + "comfortableLayout": "Użyj wygodnego układu", "cannotLoadPdf": "Nie można załadować pliku PDF", "pdfLoadError": "Wystąpił błąd podczas ładowania pliku PDF.", "loadingPdf": "Ładowanie pliku PDF...", "loadingPage": "Ładowanie strony...", "cancel": "Anuluj", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "copiedItems_one": "Skopiowano element {{count}}", + "copiedItems_other": "Skopiowano {{count}} elementów", + "deleteCopiedFileFailed": "Nie można usunąć kopii {{name}}: {{error}}", + "dragMovedItems_one": "Przeniesiono {{count}} element do {{target}}", + "dragMovedItems_other": "Przeniesiono {{count}} elementów do {{target}}", + "moveBackFileFailed": "Nie można przesunąć {{name}} wstecz: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Przeciąganie {{name}} na pulpit", + "dragFilesToDesktop": "Przeciąganie plików {{count}} na pulpit", + "folderDragUnsupported": "Przeciąganie folderów na pulpit nie jest jeszcze obsługiwane", + "saveToDesktopFailed": "Nie udało się zapisać: {{error}}", + "dragFailedDetail": "Nie udało się przeciągnąć: {{error}}", + "videoUnsupported": "Twoja przeglądarka nie może odtworzyć tego formatu wideo.", + "downloadToPlay": "Pobierz, aby odtworzyć w innym miejscu", + "cannotPreviewType": "Nie można wyświetlić podglądu tego typu pliku", + "cannotPreviewTypeHint": "Ten typ pliku nie ma podglądu. Pobierz go, aby otworzyć w innej aplikacji." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "Przesyłanie plików pomiędzy dwoma hostami SSH.", + "sourceServer": "Serwer źródłowy", + "destinationServer": "Serwer docelowy", + "selectHost": "Wybierz hosta", "noHostSelected": "Nie wybrano hosta", "move": "Przenieś", "copy": "Kopiuj", "upload": "Prześlij", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} wybrano element", + "itemsSelected_other": "Wybrano {{count}} elementów", "ready": "Gotowy", "loadingHosts": "Ładowanie hostów...", "name": "Nazwa", "modified": "Zmodyfikowano", "size": "Rozmiar", - "noFiles": "No files", + "noFiles": "Brak plików", "open": "Otwórz", - "up": "Up", + "up": "W górę", "refresh": "Odśwież", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Kopiuj do katalogu docelowego", "rename": "Zmień nazwę", "delete": "Usuń", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "Edytuj uprawnienia", + "createNewFolder": "Utwórz nowy folder", + "deleteSelectedItems": "Usuń wybrane elementy", + "deleteConfirm": "Usunąć {{count}} wybrany element?", + "deleteConfirm_other": "Usunąć {{count}} wybranych elementów?", "cancel": "Anuluj", "save": "Zapisz", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "Utworzono folder", + "itemRenamed": "Zmieniono nazwę elementu", "actionFailed": "Akcja nie powiodła się", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} element usunięty", + "itemsDeleted_other": "Usunięto {{count}} elementów", + "deleteFailed": "Usunięcie nie powiodło się", + "permissionsUpdated": "Zaktualizowano uprawnienia", + "noRemoteSessionConnected": "Brak połączonych sesji zdalnych", + "failedToListFiles": "Nie udało się wyświetlić listy plików", + "failedToRefresh": "Nie udało się odświeżyć", + "destinationInsideSource": "Miejsce docelowe nie może znajdować się wewnątrz wybranej ścieżki źródłowej.", + "sameHostNoOp": "Źródło i cel znajdują się w tym samym folderze." }, "hosts": { "fileManager": "Menedżer plików", @@ -464,7 +464,7 @@ "destinationPath": "Ścieżka docelowa", "destMustBeDirectory": "Miejsce docelowe musi być katalogiem przy transferze wielu elementów", "goUp": "W górę", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "Wymagane uwierzytelnienie. Najpierw otwórz Menedżera plików na tym hoście.", "hostConnecting": "Łączenie…", "hostConnectionFailed": "Połączenie nieudane", "hostDisconnected": "Nie połączono", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "Wybrano SFTP dla poszczególnych plików.", "user_tar": "Wybrano archiwum tar.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "Tar nie jest dostępny na jednym lub obu hostach, więc zamiast tego używany będzie protokół SFTP dla każdego pliku.", + "windows_host": "Ponieważ wykorzystywany jest host Windows, nie używa się pliku tar.", + "auto_multi_large": "Auto: wiele plików, w tym duży plik ({{largestSize}}) z kompresowalnymi danymi. Tar łączy je w jeden transfer.", + "auto_single_large_in_archive": "Auto: jeden duży plik ({{largestSize}}) w tym zestawie, więc SFTP dla każdego pliku.", + "auto_many_incompressible": "Auto: dane w większości niekompresowalne, więc SFTP dla każdego pliku.", + "auto_many_files": "Auto: wiele plików ({{fileCount}}), tar redukuje narzut na plik.", "auto_default": "Auto: SFTP dla każdego pliku w tym zestawie." }, "methodTar": "Archiwum tar", @@ -498,7 +498,7 @@ "metricsCompress": "Kompresja w źródle: {{duration}}", "metricsExtract": "Rozpakowanie w miejscu docelowym: {{duration}}", "metricsPrepare": "Przygotowanie miejsca docelowego: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "Sonda trasy: bezpośrednia {{direct}}, przekaźnikowa {{relay}}", "metricsSourceDelete": "Usunięcie ze źródła: {{duration}}", "metricsTotal": "Razem: {{duration}}", "metricsTransfer": "Całościowo: {{throughput}} ({{duration}})", diff --git a/plugins/file-manager/locales/translated/pt_BR.json b/plugins/file-manager/locales/translated/pt_BR.json index 01845e8af..3f69028f9 100644 --- a/plugins/file-manager/locales/translated/pt_BR.json +++ b/plugins/file-manager/locales/translated/pt_BR.json @@ -6,31 +6,31 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Use o gerenciador de arquivos", + "description": "Navegue, edite e transfira arquivos via SFTP." } }, "settings": { "host": { "enable": { "label": "Ativar Gerenciador de Arquivos", - "description": "Browse and edit files on this host over SFTP." + "description": "Navegue e edite arquivos neste servidor via SFTP." }, "defaultPath": { "label": "Caminho padrão" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "Modo Legado SCP" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Transferências simultâneas de arquivos", + "description": "Quantos arquivos o gerenciador local/remoto lado a lado carrega ou baixa simultaneamente? Diminua esse valor se o seu servidor limitar os canais SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Confirme antes de mover os arquivos para a lixeira.", + "description": "Peça permissão antes de mover arquivos remotos para a lixeira. A exclusão permanente ainda requer confirmação." } } }, @@ -38,506 +38,506 @@ "label": "Gerenciador de Arquivos" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", + "noHostSelected": "Nenhum host selecionado", + "initializingEditor": "Inicializando o editor...", + "file": "Arquivo", "folder": "Pasta", "uploadFile": "Enviar arquivo", "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", + "extractArchive": "Extrair arquivo", + "extractingArchive": "Extraindo {{name}}...", + "archiveExtractedSuccessfully": "{{name}} extraído com sucesso", + "extractFailed": "A extração falhou", + "compressFile": "Compactar arquivo", + "compressFiles": "Comprimir arquivos", + "compressFilesDesc": "Comprima {{count}} itens em um arquivo", + "archiveName": "Nome do arquivo", + "enterArchiveName": "Digite o nome do arquivo...", + "compressionFormat": "Formato de compressão", + "selectedFiles": "Arquivos selecionados", + "andMoreFiles": "e {{count}} mais...", + "compress": "Compressa", + "compressingFiles": "Comprimindo {{count}} itens em {{name}}...", + "filesCompressedSuccessfully": "{{name}} criado com sucesso", + "compressFailed": "A compressão falhou", "edit": "Editar", - "preview": "Preview", + "preview": "Pré-visualização", "previous": "Voltar", "next": "Próximo", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", + "pageXOfY": "Página {{current}} de {{total}}", + "zoomOut": "Diminuir o zoom", + "zoomIn": "Ampliar", + "newFile": "Novo arquivo", + "newFolder": "Nova pasta", "rename": "Renomear", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", + "uploading": "Carregando...", + "uploadingFile": "Carregando {{name}}...", + "uploadingChunk": "Enviando {{name}}: {{percent}}% (parte {{chunk}} de {{total}})", + "fileName": "Nome do arquivo", + "folderName": "Nome da pasta", + "fileUploadedSuccessfully": "Arquivo \"{{name}}\" enviado com sucesso", + "failedToUploadFile": "Falha ao carregar o arquivo", + "uploadingFolderFiles": "Enviando {{count}} arquivo(s)...", + "uploadedFolderFiles": "Arquivo(s) carregado(s) com sucesso {{count}}", "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "fileDownloadedSuccessfully": "Arquivo \"{{name}}\" baixado com sucesso", + "failedToDownloadFile": "Falha ao baixar o arquivo", + "fileCreatedSuccessfully": "Arquivo \"{{name}}\" criado com sucesso", + "folderCreatedSuccessfully": "Pasta \"{{name}}\" criada com sucesso", + "failedToCreateItem": "Falha ao criar o item", + "operationFailed": "A operação {{operation}} falhou para {{name}}: {{error}}", + "failedToResolveSymlink": "Falha ao resolver o link simbólico", + "itemsDeletedSuccessfully": "{{count}} itens excluídos com sucesso", + "failedToDeleteItems": "Falha ao excluir itens", + "sudoPasswordRequired": "Senha de administrador necessária", + "enterSudoPassword": "Digite a senha de sudo para continuar esta operação.", + "sudoPassword": "Senha de sudo", + "sudoOperationFailed": "A operação sudo falhou", + "sudoAuthFailed": "Falha na autenticação sudo", + "dragFilesToUpload": "Arraste e solte os arquivos aqui para fazer o upload.", + "dropToUploadHere": "Arraste e faça o upload aqui.", + "dropToDownloadHere": "Faça o download aqui.", "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", + "showLocalFiles": "Exibir arquivos locais (visualização dividida)", + "hideLocalFiles": "Ocultar arquivos locais", + "localHome": "Pasta inicial", + "localPathPlaceholder": "Caminho da pasta local", + "localShowHidden": "Mostrar arquivos ocultos", + "localHideHidden": "Ocultar arquivos ocultos", + "localRevealInFileManager": "Exibir no gerenciador de arquivos do sistema", + "localCannotOpenFolder": "Não é possível abrir a pasta", + "localItemCount": "{{count}} itens", + "localSelectedCount": "{{count}} selecionado", "back": "Voltar", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", + "forward": "Avançar", + "up": "Acima", + "kind": "Tipo", + "localUploadingProgress": "Enviando {{current}} de {{total}}", + "localDownloadingProgress": "Baixando {{current}} de {{total}}", + "localTransferInFlight": "{{count}} imediatamente", + "localPreparingDownload": "Preparando o download...", + "localTransferCancelled": "Transferência cancelada", + "localNothingToTransfer": "Nada a transferir", "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", + "localUploadFailed": "Falha no upload", "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", + "localDownloadComplete": "Arquivo(s) baixado(s) {{count}}", + "localDownloadFailed": "Falha no download", "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", + "localReplaceExistingPrompt": "{{count}} Já existem itens nesta pasta. Deseja substituí-los?", + "localReplace": "Substituir", + "localSkipExisting": "Pular", + "localSkippedExisting": "Ignorou {{count}} item(ns) existente(s)", + "localUnsafeNamesSkipped": "Ignorado {{count}} item(ns) cujos nomes não podem ser usados neste computador", + "localOpen": "Abrir", + "localOpenFolder": "Abra a pasta", + "localUploadToRemote": "Enviar para o servidor", + "localUploadToRemoteMany": "Enviar {{count}} itens para o servidor", + "localMoveToTrash": "Mover para a Lixeira", + "localMoveToTrashMany": "Mova {{count}} itens para a Lixeira", + "localTrashConfirmSingle": "Mover \"{{name}}\" para a Lixeira?", + "localTrashConfirmFolder": "Mover a pasta \"{{name}}\" e todo o seu conteúdo para a Lixeira?", + "localTrashConfirmMany": "Mover {{count}} itens para a Lixeira?", + "localTrashed": "Movidos {{count}} itens para a Lixeira", + "localTrashFailed": "Não foi possível mover para a Lixeira", + "localRenameFailed": "A renomeação falhou", + "localCreateFailed": "Não foi possível criar o item.", + "goToParentFolder": "Acesse a pasta principal", + "resizeSidebar": "Arraste para redimensionar a barra lateral (clique duas vezes para redefinir).", + "resizeLocalPane": "Arraste para redimensionar o painel local (clique duas vezes para redefinir).", + "columns": "Colunas", + "columnsHint": "Clique com o botão direito do mouse para escolher as colunas.", + "emptyFolder": "Esta pasta está vazia", + "searchFiles": "Pesquisar arquivos...", "upload": "Fazer upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", + "selectHostToStart": "Selecione um host para iniciar o gerenciamento de arquivos.", + "sshRequiredForFileManager": "O gerenciador de arquivos requer SSH. Este host não tem o SSH habilitado.", + "failedToConnect": "Falha ao conectar-se ao SSH", + "failedToLoadDirectory": "Falha ao carregar o diretório", + "noSSHConnection": "Nenhuma conexão SSH disponível", "copy": "Copiar", - "cut": "Cut", + "cut": "Corte", "paste": "Colar", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", + "copyPath": "Copiar caminho", + "copyPaths": "Copiar caminhos", "delete": "Apagar", - "properties": "Properties", + "properties": "Propriedades", "refresh": "Atualizar", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", + "downloadFiles": "Baixar {{count}} arquivos para o navegador", + "copyFiles": "Copiar {{count}} itens", + "cutFiles": "Recortar {{count}} itens", + "deleteFiles": "Excluir {{count}} itens", + "filesCopiedToClipboard": "{{count}} itens copiados para a área de transferência", + "filesCutToClipboard": "{{count}} itens copiados para a área de transferência", + "pathCopiedToClipboard": "Caminho copiado para a área de transferência", + "pathsCopiedToClipboard": "{{count}} caminhos copiados para a área de transferência", + "failedToCopyPath": "Falha ao copiar o caminho para a área de transferência", + "copyFolderLink": "Copiar link para a pasta", + "copyCurrentFolderLink": "Copiar link para a pasta atual", + "folderLinkCopied": "Link da pasta copiado para a área de transferência", + "failedToCopyFolderLink": "Falha ao copiar o link da pasta", + "movedItems": "Itens movidos {{count}}", + "failedToDeleteItem": "Falha ao excluir o item", + "itemRenamedSuccessfully": "{{type}} renomeado com sucesso", + "failedToRenameItem": "Falha ao renomear o item", "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "openExternalEditor": "Abrir externamente", + "chooseExternalEditor": "Escolha um editor externo.", + "externalEditorSelected": "Editor externo selecionado", + "externalEditorDesktopOnly": "O editor externo está disponível apenas no aplicativo para desktop.", + "externalEditorOpened": "Aberto em um editor externo. Salvar aqui enviará as alterações de volta para o servidor.", + "failedToOpenExternalEditor": "Não foi possível abrir o editor externo.", + "failedToSelectExternalEditor": "Não foi possível selecionar o editor externo.", + "permissions": "Permissões", + "size": "Tamanho", + "modified": "Modificado", + "path": "Caminho", + "confirmDelete": "Tem certeza de que deseja excluir {{name}}?", + "permissionDenied": "Permissão negada", + "serverError": "Erro do servidor", + "fileSavedSuccessfully": "Arquivo salvo com sucesso", + "failedToSaveFile": "Falha ao salvar o arquivo", + "confirmDeleteSingleItem": "Tem certeza de que deseja excluir permanentemente \"{{name}}\"?", + "confirmDeleteMultipleItems": "Tem certeza de que deseja excluir permanentemente {{count}} itens?", + "confirmDeleteMultipleItemsWithFolders": "Tem certeza de que deseja excluir permanentemente {{count}} itens? Isso inclui pastas e seus conteúdos.", + "confirmDeleteFolder": "Tem certeza de que deseja excluir permanentemente a pasta \"{{name}}\" e todo o seu conteúdo?", + "permanentDeleteWarning": "Esta ação não pode ser desfeita. O(s) item(ns) será(ão) excluído(s) permanentemente do servidor.", + "moveToTrashWarning": "O(s) item(ns) será(ão) movido(s) para a Lixeira Termix e poderá(ão) ser restaurado(s) antes do término do período de retenção.", + "itemsMovedToTrash": "{{count}} item(ns) movido(s) para a Lixeira", + "trash": "Lixo", + "trashDescription": "Os itens excluídos são retidos por {{days}} dia(s) neste host.", + "trashLoadFailed": "Falha ao carregar a Lixeira", + "trashEmpty": "A lixeira está vazia.", "trashRestore": "Restaurar", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", + "trashRestored": "Restaurado {{name}}", + "trashRestoreFailed": "Falha ao restaurar o item. O caminho original pode já existir.", + "trashDeletePermanently": "Excluir permanentemente", + "trashDeleteConfirm": "Excluir permanentemente {{name}}? Esta ação não pode ser desfeita.", + "trashPermanentlyDeleted": "Excluído permanentemente {{name}}", + "trashDeleteFailed": "Falha ao excluir o item permanentemente", + "trashEmptyAction": "Esvaziar o lixo", + "trashEmptyConfirm": "Excluir permanentemente todos os itens da Lixeira? Esta ação é irreversível.", + "trashEmptied": "Lixo esvaziado", + "trashRetention": "Limpeza automática após (dias)", + "trashRetentionSaved": "Retenção de lixo atualizada", + "trashRetentionFailed": "Falha na atualização da retenção de lixo", + "trashUnavailableConfirm": "Este item não pode ser movido para a Lixeira, geralmente porque está em outro sistema de arquivos ou requer permissões elevadas. Deseja excluí-lo permanentemente?", + "recent": "Recente", + "pinned": "Fixado", + "folderShortcuts": "Atalhos de pastas", + "failedToReconnectSSH": "Falha ao reconectar a sessão SSH", + "openTerminalHere": "Abra o terminal aqui", + "run": "Correr", + "openTerminalInFolder": "Abra o terminal nesta pasta.", + "openTerminalInFileLocation": "Abra o terminal no local do arquivo.", + "runningFile": "Correndo - {{file}}", + "onlyRunExecutableFiles": "Só é possível executar arquivos executáveis.", + "directories": "Diretórios", + "removedFromRecentFiles": "Removemos \"{{name}}\" dos arquivos recentes", + "removeFailed": "Remover falha", + "unpinnedSuccessfully": "Desfixado \"{{name}}\" com sucesso", + "unpinFailed": "Desafixar falhou", + "removedShortcut": "Atalho removido \"{{name}}\"", + "removeShortcutFailed": "A remoção do atalho falhou", + "clearedAllRecentFiles": "Apaguei todos os arquivos recentes.", + "clearFailed": "Limpar falhou", + "removeFromRecentFiles": "Remover dos arquivos recentes", + "clearAllRecentFiles": "Limpar todos os arquivos recentes", + "unpinFile": "Desafixar arquivo", + "removeShortcut": "Remover atalho", + "pinFile": "Arquivo PIN", + "addToShortcuts": "Adicionar aos atalhos", + "pasteFailed": "A colagem falhou", + "noUndoableActions": "Ações não podem ser desfeitas", + "undoCopySuccess": "Operação de cópia desfeita: Arquivos copiados excluídos {{count}}", + "undoCopyFailedDelete": "Falha ao desfazer: Não foi possível excluir nenhum arquivo copiado.", + "undoCopyFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo copiado.", + "undoMoveSuccess": "Operação de movimentação desfeita: {{count}} arquivos foram movidos de volta para o local original.", + "undoMoveFailedMove": "Falha ao desfazer: Não foi possível mover nenhum arquivo de volta.", + "undoMoveFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo movido.", + "undoDeleteNotSupported": "A operação de exclusão não pode ser desfeita: os arquivos foram excluídos permanentemente do servidor.", + "undoTypeNotSupported": "Tipo de operação de desfazer não suportado", + "undoOperationFailed": "A operação de desfazer falhou", + "unknownError": "Erro desconhecido", "confirm": "Confirmar", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", + "find": "Encontrar...", + "replace": "Substituir", + "downloadInstead": "Baixe em vez de baixar.", + "keyboardShortcuts": "Atalhos de teclado", + "searchAndReplace": "Localizar e substituir", + "editing": "Edição", + "search": "Procurar", + "findNext": "Encontre a seguir", + "findPrevious": "Encontrar Anterior", "save": "Salvar", "selectAll": "Selecionar Tudo", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "undo": "Desfazer", + "redo": "Refazer", + "moveLineUp": "Mova a fila para cima", + "moveLineDown": "Deslizar a linha para baixo", + "toggleComment": "Alternar comentário", + "autoComplete": "Preenchimento automático", + "imageLoadError": "Falha ao carregar a imagem", + "startTyping": "Comece a digitar...", + "unknownSize": "Tamanho desconhecido", + "fileIsEmpty": "O arquivo está vazio", + "largeFileWarning": "Aviso de Arquivo Grande", + "largeFileWarningDesc": "Este arquivo tem {{size}} de tamanho, o que pode causar problemas de desempenho ao ser aberto como texto.", + "fileNotFoundAndRemoved": "O arquivo \"{{name}}\" não foi encontrado e foi removido dos arquivos recentes/fixados", + "failedToLoadFile": "Falha ao carregar o arquivo: {{error}}", + "serverErrorOccurred": "Ocorreu um erro no servidor. Tente novamente mais tarde.", + "autoSaveFailed": "O salvamento automático falhou", + "fileAutoSaved": "Arquivo salvo automaticamente", + "moveFileFailed": "Falha ao mover {{name}}", + "moveOperationFailed": "A operação de movimentação falhou", + "canOnlyCompareFiles": "Só é possível comparar dois arquivos.", + "comparingFiles": "Comparando arquivos: {{file1}} e {{file2}}", + "dragFailed": "A operação de arrastar falhou", + "filePinnedSuccessfully": "Arquivo \"{{name}}\" fixado com sucesso", + "pinFileFailed": "Falha ao fixar o arquivo", + "fileUnpinnedSuccessfully": "Arquivo \"{{name}}\" desafixado com sucesso", + "unpinFileFailed": "Falha ao desafixar o arquivo", + "shortcutAddedSuccessfully": "Atalho de pasta \"{{name}}\" adicionado com sucesso", + "addShortcutFailed": "Falha ao adicionar atalho", + "operationCompletedSuccessfully": "{{operation}} {{count}} itens com sucesso", + "operationCompleted": "{{operation}} {{count}} itens", + "downloadFileSuccess": "Arquivo {{name}} baixado com sucesso", + "downloadFileFailed": "Falha no download", + "downloadingFile": "Baixando {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", + "moveTo": "Mover para {{name}}", + "diffCompareWith": "Diff compare com {{name}}", + "dragOutsideToDownload": "Arraste para fora da janela para baixar ({{count}} arquivos)", + "newFolderDefault": "Nova pasta", + "newFileDefault": "NovoArquivo.txt", + "successfullyMovedItems": "Movidos com sucesso {{count}} itens para {{target}}", + "move": "Mover", + "searchInFile": "Pesquisar no arquivo (Ctrl+F)", + "showKeyboardShortcuts": "Mostrar atalhos de teclado", + "decreaseFontSize": "Diminuir o tamanho da fonte", + "increaseFontSize": "Aumentar o tamanho da fonte", + "startWritingMarkdown": "Comece a escrever seu conteúdo em Markdown...", + "loadingFileComparison": "Carregando comparação de arquivos...", "reload": "Recarregar", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", + "compare": "Comparar", + "sideBySide": "Lado a lado", + "inline": "Em linha", + "fileComparison": "Comparação de arquivos: {{file1}} vs {{file2}}", + "fileTooLarge": "Arquivo muito grande: {{error}}", + "sshConnectionFailed": "A conexão SSH falhou. Verifique sua conexão com {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Falha ao carregar o arquivo: {{error}}", "connecting": "Conectando...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", + "connectedSuccessfully": "Conexão estabelecida com sucesso.", + "totpVerificationFailed": "A verificação TOTP falhou.", + "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.", + "authenticationFailed": "A autenticação falhou.", + "incorrectPassphrase": "Senha incorreta. Tente novamente.", + "verificationCodePrompt": "Código de verificação:", + "changePermissions": "Alterar permissões", + "currentPermissions": "Permissões atuais", + "owner": "Proprietário", + "group": "Grupo", + "others": "Outros", + "read": "Ler", + "write": "Escrever", + "execute": "Executar", + "permissionsChangedSuccessfully": "Permissões alteradas com sucesso", + "failedToChangePermissions": "Falha ao alterar as permissões", + "name": "Nome", + "sortByName": "Nome", + "sortByDate": "Data de modificação", + "sortBySize": "Tamanho", + "ascending": "Ascendente", + "descending": "Descendente", + "root": "Raiz", + "new": "Novo", + "sortBy": "Ordenar por", + "items": "Unid", + "selected": "Selecionado", "editor": "Editor", "octal": "Octal", - "storage": "Storage", - "disk": "Disk", - "used": "Used", + "storage": "Armazenar", + "disk": "Disco", + "used": "Usado", "of": "de", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", + "toggleSidebar": "Alternar barra lateral", + "compactLayout": "Utilize um layout compacto.", + "comfortableLayout": "Use um layout confortável", + "cannotLoadPdf": "Não foi possível carregar o PDF.", + "pdfLoadError": "Ocorreu um erro ao carregar este arquivo PDF.", + "loadingPdf": "Carregando PDF...", + "loadingPage": "Carregando página...", "cancel": "Cancelar", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", + "copiedItems_one": "Item copiado {{count}}", + "copiedItems_other": "Itens copiados {{count}}", + "deleteCopiedFileFailed": "Não foi possível excluir a cópia de {{name}}: {{error}}", "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "dragMovedItems_other": "Movidos {{count}} itens para {{target}}", + "moveBackFileFailed": "Não foi possível mover {{name}} para trás: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Arrastar {{name}} para a área de trabalho", + "dragFilesToDesktop": "Arrastar {{count}} arquivos para a área de trabalho", + "folderDragUnsupported": "Arrastar pastas para a área de trabalho ainda não é suportado.", + "saveToDesktopFailed": "Falha ao salvar: {{error}}", + "dragFailedDetail": "Falha ao arrastar: {{error}}", + "videoUnsupported": "Seu navegador não consegue reproduzir este formato de vídeo.", + "downloadToPlay": "Faça o download para jogar em outro lugar.", + "cannotPreviewType": "Não é possível visualizar este tipo de arquivo.", + "cannotPreviewTypeHint": "Este tipo de arquivo não possui pré-visualização. Faça o download para abri-lo em outro aplicativo." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", + "description": "Transferir arquivos entre dois hosts SSH.", + "sourceServer": "Servidor de origem", + "destinationServer": "Servidor de destino", + "selectHost": "Selecione o host", + "noHostSelected": "Nenhum host selecionado", + "move": "Mover", "copy": "Copiar", "upload": "Enviar", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", + "itemsSelected": "{{count}} item selecionado", + "itemsSelected_other": "{{count}} itens selecionados", + "ready": "Preparar", + "loadingHosts": "Carregando hosts...", + "name": "Nome", + "modified": "Modificado", + "size": "Tamanho", + "noFiles": "Nenhum arquivo", + "open": "Abrir", + "up": "Acima", "refresh": "Atualizar", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Copiar para o diretório de destino", "rename": "Renomear", "delete": "Apagar", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", + "editPermissions": "Editar permissões", + "createNewFolder": "Criar nova pasta", + "deleteSelectedItems": "Excluir itens selecionados", "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "deleteConfirm_other": "Excluir {{count}} itens selecionados?", "cancel": "Cancelar", "save": "Salvar", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "folderCreated": "Pasta criada", + "itemRenamed": "Item renomeado", + "actionFailed": "A ação falhou", + "itemsDeleted": "{{count}} item excluído", + "itemsDeleted_other": "{{count}} itens excluídos", + "deleteFailed": "Falha ao excluir", + "permissionsUpdated": "Permissões atualizadas", + "noRemoteSessionConnected": "Nenhuma sessão remota conectada.", + "failedToListFiles": "Falha ao listar os arquivos", + "failedToRefresh": "Falha ao atualizar", + "destinationInsideSource": "O destino não pode estar dentro do caminho de origem selecionado.", + "sameHostNoOp": "A origem e o destino são a mesma pasta." }, "hosts": { "fileManager": "Gerenciador de Arquivos", - "fileManagerUrlCopied": "File Manager URL copied", + "fileManagerUrlCopied": "URL do Gerenciador de Arquivos copiada", "copyFileManagerUrlAction": "Copiar URL do Gerenciador de Arquivos", "docsLink": "Documentação", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "hostNotFound": "Host não encontrado", + "loadingHost": "Carregando host..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Gerenciador de arquivos", + "feature_files_desc": "Navegue, carregue, baixe e edite arquivos via SFTP sem sair do aplicativo." }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", + "runTitle": "Executando {{command}} - {{host}}", "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", + "browseFolders": "Procurar pastas de destino", + "browsePathError": "Não foi possível abrir este caminho no host de destino.", + "browsePathWillBeCreated": "Esta pasta ainda não existe. Ela será criada quando a transferência começar.", "cancel": "Cancelar", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", + "cleanupDestFiles": "destino de limpeza", + "cleanupDestFilesError": "A limpeza falhou", + "cleanupDestFilesNothing": "Nada para limpar no destino.", + "cleanupDestFilesPartial": "Alguns arquivos parciais não puderam ser removidos.", + "cleanupDestFilesSuccess": "Arquivos parciais removidos do destino.", "confirmCopy": "Copiar", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", + "confirmMove": "Mover", + "copyFolderToHost": "Copiar pasta para o host…", + "copyItemsToHost": "Copiar {{count}} itens para o host…", + "copyToHost": "Copiar para o host…", + "destinationPath": "Caminho de destino", + "destMustBeDirectory": "O destino deve ser um diretório para transferências de múltiplos itens.", + "goUp": "Subir", + "hostAuthRequired": "É necessária autenticação. Primeiro, abra o Gerenciador de Arquivos neste host.", + "hostConnecting": "Conectando…", + "hostConnectionFailed": "Falha na conexão", + "hostDisconnected": "Não conectado", + "hostReady": "Preparar", + "itemsSummary": "{{count}} itens", + "jumpHostLimitation": "Ambos os hosts devem ser acessíveis a partir do servidor Termix. O roteamento direto de host para host não é suportado.", "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "methodAutoHint": "Seleciona o método de compactação (tar) ou SFTP por arquivo com base na quantidade de arquivos, tamanho e compressibilidade. Arquivos individuais sempre utilizam SFTP de streaming.", + "methodItemSftp": "SFTP por arquivo", + "methodItemSftpHint": "Transfira cada arquivo individualmente via SFTP. Funciona em todos os hosts, incluindo Windows.", + "methodItemSftpLimitation": "Cada arquivo utiliza o mesmo fluxo SFTP como uma cópia de arquivo único, um após o outro. O progresso é combinado em todos os arquivos, portanto a barra se move lentamente durante a transferência de arquivos grandes.", + "methodLabel": "Método de transferência", + "methodPreviewError": "Não foi possível visualizar o método de transferência. O servidor ainda escolherá um método quando você iniciar o servidor.", + "methodPreviewLoading": "Calculando o método de transferência…", + "methodPreviewScanSummary": "{{fileCount}} arquivos, {{totalSize}} total (verificado no host de origem).", + "methodPreviewWillUseItemSftp": "Será utilizado: SFTP por arquivo", + "methodPreviewWillUseTar": "Será utilizado: Arquivo tar", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Você escolheu SFTP por arquivo.", + "user_tar": "Você escolheu o arquivo tar.", + "tar_unavailable": "O arquivo tar não está disponível em um ou ambos os servidores, portanto, será utilizado o SFTP por arquivo.", + "windows_host": "Como se trata de um host Windows, o tar não é utilizado.", + "auto_multi_large": "Automático: vários arquivos, incluindo um arquivo grande ({{largestSize}}) com dados compressíveis. O Tar os agrupa em uma única transferência.", + "auto_single_large_in_archive": "Automático: um arquivo grande ({{largestSize}}) neste conjunto, portanto, SFTP por arquivo.", + "auto_many_incompressible": "Automático: dados em sua maioria não compressíveis, portanto, SFTP por arquivo.", + "auto_many_files": "Automático: muitos arquivos ({{fileCount}}), tar reduz a sobrecarga por arquivo.", + "auto_default": "Automático: SFTP por arquivo para este conjunto." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", + "methodTar": "Arquivo Tar", + "methodTarHint": "Comprima na origem, transfira um único arquivo compactado e extraia no destino. Requer o uso do tar em ambos os hosts Unix.", + "metricsCompress": "Comprimir na origem: {{duration}}", + "metricsExtract": "Extrair no destino: {{duration}}", + "metricsPrepare": "Preparar destino: {{duration}}", + "metricsRouteBenchmark": "Sondagem de rota: direta {{direct}}, retransmissão {{relay}}", + "metricsSourceDelete": "Remover da fonte: {{duration}}", "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "metricsTransfer": "De ponta a ponta: {{throughput}} ({{duration}})", + "metricsVerify": "Verificado por SHA-256: {{duration}}", + "moveFolderToHost": "Mover pasta para o host…", + "moveItemsToHost": "Mova {{count}} itens para o host…", + "moveToHost": "Mover para o host…", + "noHostsConnected": "Não há outros servidores de gerenciamento de arquivos disponíveis.", + "noHostsConnectedHint": "Adicione outro host SSH com o Gerenciador de Arquivos habilitado no Gerenciador de Hosts.", + "parallelSegmentsHint": "Arquivos grandes são divididos em partes de 256 MB. Várias vias utilizam conexões separadas (como iniciar várias transferências) para obter uma taxa de transferência total maior.", + "parallelSegmentsLabel": "Faixas de transferência paralelas", + "parallelSegmentsOption": "{{count}} faixas", + "progressBenchmarking": "Selecionando a rota de transferência mais rápida…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "Cancelar", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancelling": "Cancelando…", + "progressCompressing": "Comprimindo no host de origem…", + "progressExtracting": "Extraindo no destino…", + "progressItems": "{{current}} / {{total}} arquivos", + "progressReconnecting": "Reconectando…", + "progressStalled": "Paralisado", + "progressTotalSpeed": "{{speed}} total ({{lanes}} faixas)", + "progressTransferring": "Transferindo dados…", + "progressTransferringItems": "Transferindo arquivos ({{current}} de {{total}})…", + "progressVerifying": "Verificando a integridade do arquivo…", + "recentDestinations": "Destinos recentes", + "resumedHint": "Reconectado a uma transferência ativa iniciada em outra janela.", + "retryTransfer": "Tentar novamente", + "retryTransferError": "A nova tentativa falhou.", + "selectDestinationHost": "Selecione o host de destino", + "transferCancelled": "Transferência cancelada", + "transferCancelledCopyHint": "Alguns arquivos podem permanecer no destino.", + "transferCancelledMoveHint": "É possível que alguns arquivos permaneçam no destino. Os arquivos de origem não foram removidos.", + "transferError": "A transferência falhou", + "transferFailedRetryHint": "Dados parciais foram mantidos no destino. A tentativa será retomada quando a conexão for restabelecida.", + "transferPartialHint": "Não foi possível transferir: {{paths}}", + "transferSuccess": "Transferência concluída", + "metricsHopSourceRead": "Origem → servidor: {{throughput}}", + "metricsHopDestSftpWrite": "Servidor → destino (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Servidor → destino (local): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/pt_PT.json b/plugins/file-manager/locales/translated/pt_PT.json index e0f1b14b4..880bf9c4f 100644 --- a/plugins/file-manager/locales/translated/pt_PT.json +++ b/plugins/file-manager/locales/translated/pt_PT.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Use o gestor de ficheiros", + "description": "Navegue, edite e transfira ficheiros via SFTP." } }, "settings": { "host": { "enable": { "label": "Ativar Gestor de Ficheiros", - "description": "Browse and edit files on this host over SFTP." + "description": "Navegue e edite ficheiros neste servidor via SFTP." }, "defaultPath": { "label": "Caminho Predefinido" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Transferências simultâneas de ficheiros", + "description": "Quantos ficheiros o gestor local/remoto lado a lado carrega ou descarrega simultaneamente? Diminua este valor se o seu servidor limitar os canais SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Confirme antes de mover os ficheiros para a reciclagem.", + "description": "Peça permissão antes de mover ficheiros remotos para a reciclagem. A eliminação permanente ainda requer confirmação." } } }, @@ -72,13 +72,13 @@ "rename": "Renomear", "uploading": "A enviar...", "uploadingFile": "A enviar {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "A enviar {{name}}: {{percent}}% (parte {{chunk}} de {{total}})", "fileName": "Nome do ficheiro", "folderName": "Nome da pasta", "fileUploadedSuccessfully": "Ficheiro \"{{name}}\" enviado com sucesso", "failedToUploadFile": "Falha ao enviar ficheiro", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", + "uploadingFolderFiles": "A enviar {{count}} ficheiro(s)...", + "uploadedFolderFiles": "Ficheiro(s) carregado(s) com sucesso {{count}}", "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "fileDownloadedSuccessfully": "Ficheiro \"{{name}}\" descarregado com sucesso", "failedToDownloadFile": "Falha ao descarregar ficheiro", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Operação sudo falhou", "sudoAuthFailed": "Autenticação sudo falhou", "dragFilesToUpload": "Arraste ficheiros aqui para carregar", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Arraste e faça o upload aqui.", + "dropToDownloadHere": "Faça o download aqui.", "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Visualizar ficheiros locais (visualização dividida)", + "hideLocalFiles": "Ocultar ficheiros locais", + "localHome": "Pasta inicial", + "localPathPlaceholder": "Caminho da pasta local", + "localShowHidden": "Mostrar ficheiros ocultos", + "localHideHidden": "Ocultar ficheiros ocultos", + "localRevealInFileManager": "Exibir no gestor de ficheiros do sistema", + "localCannotOpenFolder": "Não é possível abrir a pasta", "localItemCount": "{{count}} itens", "localSelectedCount": "{{count}} selecionado(s)", "back": "Voltar", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "Encaminhar", + "up": "Para cima", + "kind": "Amabilidade", + "localUploadingProgress": "A enviar {{current}} de {{total}}", + "localDownloadingProgress": "A descarregar {{current}} de {{total}}", + "localTransferInFlight": "{{count}} imediatamente", + "localPreparingDownload": "A preparar o download...", "localTransferCancelled": "Transferência cancelada", - "localNothingToTransfer": "Nothing to transfer", + "localNothingToTransfer": "Nada a transferir", "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", + "localUploadFailed": "Falha no upload", "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localDownloadComplete": "Ficheiro(s) descarregado(s) {{count}}", "localDownloadFailed": "Falha ao descarregar", "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localReplaceExistingPrompt": "{{count}} Já existem itens nesta pasta. Deseja substituí-los?", "localReplace": "Substituir", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "Ignorar", + "localSkippedExisting": "Ignorou {{count}} item(s) existente(s)", + "localUnsafeNamesSkipped": "Ignorado {{count}} item(s) cujos nomes não podem ser utilizados neste computador", "localOpen": "Abrir", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "Abra a pasta", + "localUploadToRemote": "Enviar para o servidor", + "localUploadToRemoteMany": "Enviar {{count}} itens para o servidor", + "localMoveToTrash": "Mover para a Reciclagem", + "localMoveToTrashMany": "Mover {{count}} itens para a Reciclagem", + "localTrashConfirmSingle": "Deslocar \"{{name}}\" para a Reciclagem?", + "localTrashConfirmFolder": "Mover a pasta \"{{name}}\" e todo o seu conteúdo para a Reciclagem?", + "localTrashConfirmMany": "Mover {{count}} itens para a Reciclagem?", + "localTrashed": "Movidos {{count}} itens para a Reciclagem", + "localTrashFailed": "Não foi possível mover para a Reciclagem", + "localRenameFailed": "A renomeação falhou", + "localCreateFailed": "Não foi possível criar o item.", + "goToParentFolder": "Aceda à pasta principal", + "resizeSidebar": "Arraste para redimensionar a barra lateral (clique duas vezes para repor).", + "resizeLocalPane": "Arraste para redimensionar o painel local (clique duas vezes para repor).", "columns": "Colunas", - "columnsHint": "Right-click to choose columns", + "columnsHint": "Clique com o botão direito do rato para escolher as colunas.", "emptyFolder": "Esta pasta está vazia", "searchFiles": "Procurar ficheiros...", "upload": "Carregar", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "Tem a certeza de que pretende eliminar permanentemente {{count}} itens? Isto inclui pastas e o seu conteúdo.", "confirmDeleteFolder": "Tem a certeza de que pretende eliminar permanentemente a pasta \"{{name}}\" e todo o seu conteúdo?", "permanentDeleteWarning": "Esta ação não pode ser anulada. Os itens serão permanentemente eliminados do servidor.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "O(s) artigo(s) será(ão) movido(s) para a Reciclagem Termix e poderá(ão) ser restaurado(s) antes do fim do período de retenção.", + "itemsMovedToTrash": "{{count}} artigo(s) movido(s) para a Reciclagem", + "trash": "Lixo", + "trashDescription": "Os itens eliminados são retidos durante {{days}} dia(s) neste host.", + "trashLoadFailed": "Falha ao carregar a Reciclagem", + "trashEmpty": "A papeleira está vazia.", "trashRestore": "Restaurar", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "Restaurado {{name}}", + "trashRestoreFailed": "Falha ao restaurar o item. O caminho original pode já existir.", + "trashDeletePermanently": "Apagar permanentemente", + "trashDeleteConfirm": "Apagar permanentemente {{name}}? Esta ação não pode ser anulada.", + "trashPermanentlyDeleted": "Eliminado permanentemente {{name}}", + "trashDeleteFailed": "Falha ao eliminar o item permanentemente", + "trashEmptyAction": "Esvaziar o lixo", + "trashEmptyConfirm": "Apagar permanentemente todos os itens da Reciclagem? Esta ação é irreversível.", + "trashEmptied": "Lixo esvaziado", + "trashRetention": "Limpeza automática após (dias)", + "trashRetentionSaved": "Retenção de lixo atualizada", + "trashRetentionFailed": "Falha na atualização da retenção de lixo", + "trashUnavailableConfirm": "Este item não pode ser movido para a Reciclagem, geralmente porque está noutro sistema de ficheiros ou requer permissões elevadas. Deseja eliminá-lo permanentemente?", "recent": "Recentes", "pinned": "Fixados", "folderShortcuts": "Atalhos de pastas", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}} {{count}} itens", "downloadFileSuccess": "Ficheiro {{name}} descarregado com sucesso", "downloadFileFailed": "Falha ao descarregar", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "A descarregar {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "Mover para {{name}}", "diffCompareWith": "Comparar diferenças com {{name}}", @@ -329,7 +329,7 @@ "connecting": "A ligar...", "connectedSuccessfully": "Ligado com sucesso", "totpVerificationFailed": "Falha na verificação TOTP", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.", "authenticationFailed": "Falha na autenticação", "incorrectPassphrase": "Frase-passe incorreta. Tente novamente.", "verificationCodePrompt": "Código de verificação:", @@ -361,73 +361,73 @@ "used": "Utilizado", "of": "de", "toggleSidebar": "Alternar Barra Lateral", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "Utilize um layout compacto.", + "comfortableLayout": "Utilize um layout confortável", "cannotLoadPdf": "Não é possível carregar o PDF", "pdfLoadError": "Ocorreu um erro ao carregar este ficheiro PDF.", "loadingPdf": "A carregar PDF...", "loadingPage": "A carregar página...", "cancel": "Cancelar", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", + "copiedItems_one": "Item copiado {{count}}", + "copiedItems_other": "Itens copiados {{count}}", + "deleteCopiedFileFailed": "Não foi possível eliminar a cópia de {{name}}: {{error}}", "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "dragMovedItems_other": "Movidos {{count}} itens para {{target}}", + "moveBackFileFailed": "Não foi possível mover {{name}} para trás: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Arrastar {{name}} para o ambiente de trabalho", + "dragFilesToDesktop": "Arrastar {{count}} ficheiros para o ambiente de trabalho", + "folderDragUnsupported": "Arrastar pastas para o ambiente de trabalho ainda não é suportado.", + "saveToDesktopFailed": "Falha ao guardar: {{error}}", + "dragFailedDetail": "Falha ao arrastar: {{error}}", + "videoUnsupported": "O seu navegador não consegue reproduzir este formato de vídeo.", + "downloadToPlay": "Faça o download para jogar noutro local.", + "cannotPreviewType": "Não é possível visualizar este tipo de ficheiro.", + "cannotPreviewTypeHint": "Este tipo de ficheiro não possui pré-visualização. Faça o download para abri-lo noutra aplicação." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "Transferir ficheiros entre dois hosts SSH.", + "sourceServer": "Servidor de origem", + "destinationServer": "Servidor de destino", + "selectHost": "Selecione o host", "noHostSelected": "Nenhum anfitrião selecionado", "move": "Mover", "copy": "Copiar", "upload": "Carregar", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} item selecionado", + "itemsSelected_other": "{{count}} itens selecionados", "ready": "Pronto", "loadingHosts": "A carregar hosts...", "name": "Nome", "modified": "Modificado", "size": "Tamanho", - "noFiles": "No files", + "noFiles": "Nenhum ficheiro", "open": "Abrir", - "up": "Up", + "up": "Para cima", "refresh": "Atualizar", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Copiar para o diretório de destino", "rename": "Renomear", "delete": "Eliminar", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", + "editPermissions": "Editar permissões", + "createNewFolder": "Criar nova pasta", + "deleteSelectedItems": "Apagar itens selecionados", "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "deleteConfirm_other": "Apagar {{count}} itens selecionados?", "cancel": "Cancelar", "save": "Guardar", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "Pasta criada", + "itemRenamed": "Artigo renomeado", "actionFailed": "A ação falhou", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} item eliminado", + "itemsDeleted_other": "{{count}} itens eliminados", + "deleteFailed": "Falha ao eliminar", + "permissionsUpdated": "Permissões atualizadas", + "noRemoteSessionConnected": "Nenhuma sessão remota ligada.", + "failedToListFiles": "Falha ao listar os ficheiros", + "failedToRefresh": "Falha ao atualizar", + "destinationInsideSource": "O destino não pode estar dentro do caminho de origem selecionado.", + "sameHostNoOp": "A origem e o destino são a mesma pasta." }, "hosts": { "fileManager": "Gestor de Ficheiros", @@ -438,8 +438,8 @@ "loadingHost": "A carregar o host..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Gestor de arquivos", + "feature_files_desc": "Navegue, carregue, descarregue e edite ficheiros via SFTP sem sair da aplicação." }, "terminal": { "runTitle": "A executar {{command}} - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "Caminho de destino", "destMustBeDirectory": "O destino deve ser uma pasta para transferências de vários itens.", "goUp": "Subir", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "É necessária autenticação. Primeiro, abra o Gestor de Ficheiros neste host.", "hostConnecting": "A ligar…", "hostConnectionFailed": "Falha na ligação", "hostDisconnected": "Desligado", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "Optou por SFTP ficheiro a ficheiro.", "user_tar": "Optou por ficheiro tar.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "O ficheiro tar não está disponível num ou em ambos os servidores, pelo que será utilizado o SFTP por ficheiro.", + "windows_host": "Como se trata de um host Windows, o tar não é utilizado.", + "auto_multi_large": "Automático: vários ficheiros, incluindo um ficheiro grande ({{largestSize}}) com dados compressíveis. O Tar agrupa-os numa única transferência.", + "auto_single_large_in_archive": "Automático: um ficheiro grande ({{largestSize}}) neste conjunto, portanto, SFTP por ficheiro.", + "auto_many_incompressible": "Automático: dados maioritariamente não compressíveis, portanto, SFTP por ficheiro.", + "auto_many_files": "Automático: muitos ficheiros ({{fileCount}}), o tar reduz a sobrecarga por ficheiro.", "auto_default": "Automático: SFTP ficheiro a ficheiro para este conjunto." }, "methodTar": "Arquivo Tar", @@ -498,11 +498,11 @@ "metricsCompress": "Compressão na origem: {{duration}}", "metricsExtract": "Extração no destino: {{duration}}", "metricsPrepare": "Preparar destino: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "Sondagem de percurso: direta {{direct}}, retransmissão {{relay}}", "metricsSourceDelete": "Remoção da origem: {{duration}}", "metricsTotal": "Total: {{duration}}", "metricsTransfer": "Ponta a ponta: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "Verificado por SHA-256: {{duration}}", "moveFolderToHost": "Mover pasta para o host…", "moveItemsToHost": "Mover {{count}} itens para o host…", "moveToHost": "Mover para o host…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "Os ficheiros grandes são divididos em partes de 256 MB. Múltiplas vias utilizam ligações separadas (como iniciar várias transferências) para um maior débito total.", "parallelSegmentsLabel": "Vias de transferência paralelas", "parallelSegmentsOption": "{{count}} vias", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "Selecionando a rota de transferência mais rápida…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "Cancelar", "progressCancelling": "A cancelar…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} total ({{lanes}} vias)", "progressTransferring": "A transferir dados…", "progressTransferringItems": "A transferir ficheiros ({{current}} de {{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "Verificação da integridade do ficheiro…", "recentDestinations": "Destinos recentes", "resumedHint": "Reconectado a uma transferência ativa iniciada noutra janela.", "retryTransfer": "Repetir", diff --git a/plugins/file-manager/locales/translated/ru_RU.json b/plugins/file-manager/locales/translated/ru_RU.json index 4be46429a..1a43999fc 100644 --- a/plugins/file-manager/locales/translated/ru_RU.json +++ b/plugins/file-manager/locales/translated/ru_RU.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Используйте файловый менеджер", + "description": "Просматривайте, редактируйте и передавайте файлы по протоколу SFTP." } }, "settings": { "host": { "enable": { "label": "Включить файловый менеджер", - "description": "Browse and edit files on this host over SFTP." + "description": "Просматривайте и редактируйте файлы на этом хосте по протоколу SFTP." }, "defaultPath": { "label": "Путь по умолчанию" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Одновременная передача файлов", + "description": "Сколько файлов менеджер, работающий в режиме локального/удалённого доступа, может загружать или скачивать одновременно. Уменьшите это значение, если ваш сервер ограничивает количество SFTP-каналов." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Перед перемещением файлов в корзину подтвердите перемещение.", + "description": "Перед перемещением удалённых файлов в корзину запросите подтверждение. Для окончательного удаления всё равно потребуется подтверждение." } } }, @@ -72,14 +72,14 @@ "rename": "Переименовать", "uploading": "Загрузка...", "uploadingFile": "Загрузка {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "Загрузка {{name}}: {{percent}}% (часть {{chunk}} из {{total}})", "fileName": "Имя файла", "folderName": "Имя папки", "fileUploadedSuccessfully": "Файл «{{name}}» успешно загружен", "failedToUploadFile": "Не удалось загрузить файл", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "Загрузка {{count}} файла(ов)...", + "uploadedFolderFiles": "Файл(ы) {{count}} успешно загружен(ы).", + "uploadedFolderPartial": "Загрузка {{uploaded}} файла(ов), {{failed}} не удалась.", "fileDownloadedSuccessfully": "Файл «{{name}}» успешно скачан", "failedToDownloadFile": "Не удалось скачать файл", "fileCreatedSuccessfully": "Файл «{{name}}» успешно создан", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Операция sudo не удалась", "sudoAuthFailed": "Аутентификация sudo не удалась", "dragFilesToUpload": "Перетащите файлы сюда для загрузки", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Перетащите файл для загрузки сюда.", + "dropToDownloadHere": "Скачать можно здесь (перетащите ссылку)", "localFiles": "Локальная", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Отображение локальных файлов (в режиме разделенного экрана)", + "hideLocalFiles": "Скрыть локальные файлы", + "localHome": "Домашняя папка", + "localPathPlaceholder": "Путь к локальной папке", + "localShowHidden": "Показать скрытые файлы", + "localHideHidden": "Скрыть скрытые файлы", + "localRevealInFileManager": "Показать в системном файловом менеджере", + "localCannotOpenFolder": "Не удаётся открыть папку", "localItemCount": "{{count}} элементов", "localSelectedCount": "{{count}} выбрано", "back": "Назад", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "Вперед", + "up": "Вверх", + "kind": "Добрый", + "localUploadingProgress": "Загрузка {{current}} из {{total}}", + "localDownloadingProgress": "Загрузка {{current}} из {{total}}", + "localTransferInFlight": "{{count}} сразу", + "localPreparingDownload": "Подготовка к загрузке...", "localTransferCancelled": "Передача отменена", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "Нет ничего для перевода", + "localUploadComplete": "Загружено {{count}} файлов", + "localUploadFailed": "Загрузка не удалась.", + "localUploadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.", + "localDownloadComplete": "Загружено {{count}} файлов", "localDownloadFailed": "Не удалось загрузить", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.", + "localReplaceExistingPrompt": "{{count}} Элемент(ы) уже существуют в этой папке. Заменить их?", "localReplace": "Заменить", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "Пропускать", + "localSkippedExisting": "Пропущено {{count}} существующих элементов", + "localUnsafeNamesSkipped": "Пропущено {{count}} элементов, названия которых нельзя использовать на этом компьютере", "localOpen": "Открыть", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "Открыть папку", + "localUploadToRemote": "Загрузка на сервер", + "localUploadToRemoteMany": "Загрузите {{count}} предметов на сервер", + "localMoveToTrash": "Переместить в мусорное ведро", + "localMoveToTrashMany": "Переместить {{count}} элементов в корзину", + "localTrashConfirmSingle": "Переместить \"{{name}}\" в корзину?", + "localTrashConfirmFolder": "Переместить папку \"{{name}}\" и всё её содержимое в корзину?", + "localTrashConfirmMany": "Переместить {{count}} элементов в корзину?", + "localTrashed": "Перемещено {{count}} предметов в корзину", + "localTrashFailed": "Не удалось переместить в мусорный бак.", + "localRenameFailed": "Переименование не удалось.", + "localCreateFailed": "Не удалось создать элемент.", + "goToParentFolder": "Перейдите в родительскую папку", + "resizeSidebar": "Перетащите ползунок, чтобы изменить размер боковой панели (двойной щелчок для сброса).", + "resizeLocalPane": "Перетащите курсор, чтобы изменить размер локальной панели (двойной щелчок для сброса).", "columns": "Столбцы", - "columnsHint": "Right-click to choose columns", + "columnsHint": "Щелкните правой кнопкой мыши, чтобы выбрать столбцы.", "emptyFolder": "Эта папка пуста", "searchFiles": "Поиск файлов...", "upload": "Загрузить", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "Вы уверены, что хотите безвозвратно удалить {{count}} элементов? Включая папки и их содержимое.", "confirmDeleteFolder": "Вы уверены, что хотите безвозвратно удалить папку \"{{name}}\" и всё её содержимое?", "permanentDeleteWarning": "Это действие необратимо. Элемент(ы) будут безвозвратно удалены с сервера.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "Предмет(ы) будут перемещены в корзину Termix и могут быть возвращены на место до истечения срока хранения.", + "itemsMovedToTrash": "{{count}} элемент(ы) перемещены в корзину", + "trash": "Мусор", + "trashDescription": "Удаленные элементы сохраняются на этом хосте в течение {{days}} дней.", + "trashLoadFailed": "Не удалось загрузить мусор.", + "trashEmpty": "Мусорное ведро пусто.", "trashRestore": "Восстановить", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "Восстановлено {{name}}", + "trashRestoreFailed": "Не удалось восстановить элемент. Возможно, исходный путь уже существует.", + "trashDeletePermanently": "Удалить навсегда", + "trashDeleteConfirm": "Удалить {{name}}навсегда? Это действие необратимо.", + "trashPermanentlyDeleted": "Удалено навсегда {{name}}", + "trashDeleteFailed": "Не удалось удалить элемент навсегда.", + "trashEmptyAction": "Опустошите мусорный бак", + "trashEmptyConfirm": "Удалить все элементы из корзины навсегда? Это действие необратимо.", + "trashEmptied": "Мусор вывезен", + "trashRetention": "Автоматическая очистка через (дней)", + "trashRetentionSaved": "Обновлена информация о хранении мусора.", + "trashRetentionFailed": "Не удалось обновить срок хранения корзины.", + "trashUnavailableConfirm": "Этот элемент нельзя переместить в корзину, как правило, потому что он находится в другой файловой системе или требует повышенных прав доступа. Может, лучше удалить его навсегда?", "recent": "Недавние", "pinned": "Закреплённые", "folderShortcuts": "Ярлыки папок", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}} {{count}} элементов", "downloadFileSuccess": "Файл {{name}} успешно загружен", "downloadFileFailed": "Не удалось загрузить", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "Загрузка {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "Переместить в {{name}}", "diffCompareWith": "Сравнить с {{name}}", @@ -329,7 +329,7 @@ "connecting": "Подключение...", "connectedSuccessfully": "Подключено успешно", "totpVerificationFailed": "Ошибка проверки TOTP", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Вход в систему не удался. Пожалуйста, попробуйте еще раз.", "authenticationFailed": "Ошибка аутентификации", "incorrectPassphrase": "Неверная парольная фраза. Попробуйте еще раз.", "verificationCodePrompt": "Код подтверждения:", @@ -361,73 +361,73 @@ "used": "Занято", "of": "из", "toggleSidebar": "Переключить боковую панель", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "Используйте компактную компоновку.", + "comfortableLayout": "Используйте удобную планировку", "cannotLoadPdf": "Не удаётся загрузить PDF", "pdfLoadError": "Ошибка при загрузке этого PDF-файла.", "loadingPdf": "Загрузка PDF...", "loadingPage": "Загрузка страницы...", "cancel": "Отмена", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "copiedItems_one": "Скопировано {{count}} элемент", + "copiedItems_other": "Скопировано {{count}} элементов", + "deleteCopiedFileFailed": "Не удалось удалить копию {{name}}: {{error}}", + "dragMovedItems_one": "Перемещен элемент {{count}} в {{target}}", + "dragMovedItems_other": "Перемещено {{count}} элементов в {{target}}", + "moveBackFileFailed": "Не удалось переместить {{name}} назад: {{error}}", + "terminal": "Терминал: {{host}} ({{path}})", + "dragToDesktop": "Перетаскивание {{name}} на рабочий стол", + "dragFilesToDesktop": "Перетаскивание {{count}} файлов на рабочий стол", + "folderDragUnsupported": "Перетаскивание папок на рабочий стол пока не поддерживается.", + "saveToDesktopFailed": "Сохранение не удалось: {{error}}", + "dragFailedDetail": "Перетаскивание не удалось: {{error}}", + "videoUnsupported": "Ваш браузер не может воспроизвести этот видеоформат.", + "downloadToPlay": "Скачайте, чтобы играть в другом месте.", + "cannotPreviewType": "Предварительный просмотр файла этого типа невозможен.", + "cannotPreviewTypeHint": "Для этого типа файла предварительный просмотр недоступен. Скачайте его, чтобы открыть в другом приложении." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "Передача файлов между двумя SSH-хостами.", + "sourceServer": "Исходный сервер", + "destinationServer": "Сервер назначения", + "selectHost": "Выберите хост", "noHostSelected": "Хост не выбран", "move": "Переместить", "copy": "Копировать", "upload": "Загрузить", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} выбранный элемент", + "itemsSelected_other": "{{count}} выбранные элементы", "ready": "Готов", "loadingHosts": "Загрузка хостов...", "name": "Название", "modified": "Изменён", "size": "По размеру", - "noFiles": "No files", + "noFiles": "Нет файлов", "open": "Открыть", - "up": "Up", + "up": "Вверх", "refresh": "Обновить", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Скопировать в целевую директорию", "rename": "Переименовать", "delete": "Удалить", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "Изменить права доступа", + "createNewFolder": "Создать новую папку", + "deleteSelectedItems": "Удалить выбранные элементы", + "deleteConfirm": "Удалить {{count}} выбранный элемент?", + "deleteConfirm_other": "Удалить {{count}} выбранные элементы?", "cancel": "Отмена", "save": "Сохранить", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "Создана папка", + "itemRenamed": "Элемент переименован", "actionFailed": "Действие не удалось", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} элемент удален", + "itemsDeleted_other": "{{count}} удаленные элементы", + "deleteFailed": "Удаление не удалось.", + "permissionsUpdated": "Права доступа обновлены.", + "noRemoteSessionConnected": "Удалённая сессия не подключена", + "failedToListFiles": "Не удалось отобразить список файлов.", + "failedToRefresh": "Не удалось обновить", + "destinationInsideSource": "Место назначения не может находиться внутри выбранного пути источника.", + "sameHostNoOp": "Исходная и целевая папки — одна и та же." }, "hosts": { "fileManager": "Файловый менеджер", @@ -438,8 +438,8 @@ "loadingHost": "Загрузка хоста..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Файловый менеджер", + "feature_files_desc": "Просматривайте, загружайте, скачивайте и редактируйте файлы по протоколу SFTP, не выходя из приложения." }, "terminal": { "runTitle": "Выполнение {{command}} - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "Путь назначения", "destMustBeDirectory": "Для передачи нескольких элементов путь назначения должен быть папкой", "goUp": "Вверх", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "Требуется аутентификация. Сначала откройте файловый менеджер на этом хосте.", "hostConnecting": "Подключение…", "hostConnectionFailed": "Ошибка подключения", "hostDisconnected": "Не подключен", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "Вы выбрали пофайловый SFTP.", "user_tar": "Вы выбрали tar-архив.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "Tar недоступен на одном или обоих хостах, поэтому вместо него будет использоваться SFTP для каждого файла.", + "windows_host": "В процессе используется хост под управлением Windows, поэтому tar не применяется.", + "auto_multi_large": "Авто: несколько файлов, включая большой файл ({{largestSize}}) с данными, которые можно сжать. Tar объединяет их в одну передачу.", + "auto_single_large_in_archive": "Авто: один большой файл ({{largestSize}}) в этом наборе, поэтому SFTP для каждого файла отдельно.", + "auto_many_incompressible": "Авто: в основном несжимаемые данные, поэтому используется SFTP для каждого файла.", + "auto_many_files": "Авто: много файлов ({{fileCount}}), tar сокращает накладные расходы на каждый файл.", "auto_default": "Авто: пофайловый SFTP для этого набора." }, "methodTar": "Архив Tar", @@ -498,11 +498,11 @@ "metricsCompress": "Сжатие на источнике: {{duration}}", "metricsExtract": "Распаковка на назначении: {{duration}}", "metricsPrepare": "Подготовка назначения: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "Маршрутизация: прямой {{direct}}, ретранслятор {{relay}}", "metricsSourceDelete": "Удаление с источника: {{duration}}", "metricsTotal": "Всего: {{duration}}", "metricsTransfer": "Сквозной: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "SHA-256 проверен: {{duration}}", "moveFolderToHost": "Переместить папку на хост…", "moveItemsToHost": "Переместить {{count}} элементов на хост…", "moveToHost": "Переместить на хост…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "Большие файлы разбиваются на фрагменты по 256 МБ. Несколько каналов используют отдельные соединения (как при запуске нескольких передач) для повышения общей пропускной способности.", "parallelSegmentsLabel": "Параллельные каналы передачи", "parallelSegmentsOption": "{{count}} каналов", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "Выбор самого быстрого маршрута пересадки…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "Отмена", "progressCancelling": "Отмена…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} всего ({{lanes}} каналов)", "progressTransferring": "Передача данных…", "progressTransferringItems": "Передача файлов ({{current}} из {{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "Проверка целостности файла…", "recentDestinations": "Недавние назначения", "resumedHint": "Переподключено к активной передаче, запущенной в другом окне.", "retryTransfer": "Повторить", diff --git a/plugins/file-manager/locales/translated/sr_SP.json b/plugins/file-manager/locales/translated/sr_SP.json index dc86761ce..23fff2739 100644 --- a/plugins/file-manager/locales/translated/sr_SP.json +++ b/plugins/file-manager/locales/translated/sr_SP.json @@ -1,23 +1,23 @@ { "nav": { - "files": "Files", - "sftp": "SFTP", - "openFileManager": "Open File Manager" + "files": "Датотеке", + "sftp": "СФТП", + "openFileManager": "Отвори менаџер датотека" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Користите менаџер датотека", + "description": "Прегледајте, уређујте и преносите датотеке преко SFTP-а." } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "Омогући менаџер датотека", + "description": "Прегледајте и уређујте датотеке на овом хосту преко SFTP-а." }, "defaultPath": { - "label": "Default Path" + "label": "Подразумевана путања" }, "scpLegacy": { "label": "SCP Legacy Mode" @@ -25,519 +25,519 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Истовремени пренос датотека", + "description": "Колико датотека локални/удаљени менаџер истовремено отпрема или преузима. Смањите ово ако ваш сервер ограничава SFTP канале." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Потврди пре премештања датотека у отпад", + "description": "Питај пре премештања удаљених датотека у смеће. Трајно брисање и даље захтева потврду." } } }, "hostCapability": { - "label": "File Manager" + "label": "Менаџер датотека" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "noHostSelected": "Није изабран домаћин", + "initializingEditor": "Иницијализација уређивача...", + "file": "Датотека", + "folder": "Фасцикла", + "uploadFile": "Отпреми датотеку", + "downloadFile": "Преузми", + "extractArchive": "Издвоји архиву", + "extractingArchive": "Издвајање {{name}}...", + "archiveExtractedSuccessfully": "{{name}} је успешно извучено", + "extractFailed": "Издвајање није успело", + "compressFile": "Компресуј датотеку", + "compressFiles": "Компресуј датотеке", + "compressFilesDesc": "Компресуј {{count}} ставки у архиву", + "archiveName": "Назив архиве", + "enterArchiveName": "Унесите име архиве...", + "compressionFormat": "Формат компресије", + "selectedFiles": "Изабране датотеке", + "andMoreFiles": "и још {{count}}...", + "compress": "Компресуј", + "compressingFiles": "Компресија {{count}} ставки у {{name}}...", + "filesCompressedSuccessfully": "{{name}} је успешно креирано", + "compressFailed": "Компресија није успела", + "edit": "Измени", + "preview": "Преглед", + "previous": "Претходно", + "next": "Следеће", + "pageXOfY": "Страница {{current}} од {{total}}", + "zoomOut": "Умањи", + "zoomIn": "Увећај", + "newFile": "Нова датотека", + "newFolder": "Нова фасцикла", + "rename": "Преименуј", + "uploading": "Отпремање...", + "uploadingFile": "Отпремање {{name}}...", + "uploadingChunk": "Отпремање {{name}}: {{percent}}% (део {{chunk}} од {{total}})", + "fileName": "Име датотеке", + "folderName": "Назив фасцикле", + "fileUploadedSuccessfully": "Датотека „{{name}}“ је успешно отпремљена", + "failedToUploadFile": "Отпремање датотеке није успело", + "uploadingFolderFiles": "Отпремање {{count}} датотека...", + "uploadedFolderFiles": "Успешно отпремљено {{count}} датотека", + "uploadedFolderPartial": "Отпремљено {{uploaded}} датотека, {{failed}} није успело", + "fileDownloadedSuccessfully": "Датотека „{{name}}“ је успешно преузета", + "failedToDownloadFile": "Преузимање датотеке није успело", + "fileCreatedSuccessfully": "Датотека „{{name}}“ је успешно креирана", + "folderCreatedSuccessfully": "Фасцикла „{{name}}“ је успешно креирана", + "failedToCreateItem": "Није успело креирање ставке", + "operationFailed": "Операција {{operation}} није успела за {{name}}: {{error}}", + "failedToResolveSymlink": "Није успело решавање симболичке везе", + "itemsDeletedSuccessfully": "{{count}} ставке су успешно обрисане", + "failedToDeleteItems": "Брисање ставки није успело", + "sudoPasswordRequired": "Потребна је администраторска лозинка", + "enterSudoPassword": "Унесите лозинку за судо да бисте наставили ову операцију", + "sudoPassword": "Sudo лозинка", + "sudoOperationFailed": "Sudo операција није успела", + "sudoAuthFailed": "Судо аутентификација није успела", + "dragFilesToUpload": "Отпустите датотеке овде да бисте их отпремили", + "dropToUploadHere": "Отпустите да бисте отпремили овде", + "dropToDownloadHere": "Отпустите да бисте преузели овде", + "localFiles": "Локално", + "showLocalFiles": "Прикажи локалне датотеке (подељени приказ)", + "hideLocalFiles": "Сакриј локалне датотеке", + "localHome": "Почетна фасцикла", + "localPathPlaceholder": "Путања локалне фасцикле", + "localShowHidden": "Прикажи скривене датотеке", + "localHideHidden": "Сакриј скривене датотеке", + "localRevealInFileManager": "Откриј у системском менаџеру датотека", + "localCannotOpenFolder": "Не могу да отворим фасциклу", + "localItemCount": "{{count}} ставке", + "localSelectedCount": "{{count}} изабрано", + "back": "Назад", + "forward": "Напред", + "up": "Горе", + "kind": "Врста", + "localUploadingProgress": "Отпремање {{current}} од {{total}}", + "localDownloadingProgress": "Преузимање {{current}} од {{total}}", + "localTransferInFlight": "{{count}} одједном", + "localPreparingDownload": "Припрема преузимања...", + "localTransferCancelled": "Трансфер отказан", + "localNothingToTransfer": "Ништа за пренос", + "localUploadComplete": "Отпремљено {{count}} датотека", + "localUploadFailed": "Отпремање није успело", + "localUploadPartial": "Отпремљено {{done}} датотека, {{failed}} није успело", + "localDownloadComplete": "Преузето {{count}} датотека", + "localDownloadFailed": "Преузимање није успело", + "localDownloadPartial": "Преузимање {{done}} датотека, {{failed}} није успело", + "localReplaceExistingPrompt": "{{count}} став(е) већ постоје у овој фасцикли. Заменити их?", + "localReplace": "Замени", + "localSkipExisting": "Прескочи", + "localSkippedExisting": "Прескочено {{count}} постојећих ставки", + "localUnsafeNamesSkipped": "Прескочено је {{count}} ставки чија имена се не могу користити на овом рачунару", + "localOpen": "Отворено", + "localOpenFolder": "Отвори фасциклу", + "localUploadToRemote": "Отпреми на сервер", + "localUploadToRemoteMany": "Отпреми {{count}} ставки на сервер", + "localMoveToTrash": "Премести у отпад", + "localMoveToTrashMany": "Премести {{count}} ставки у Отпад", + "localTrashConfirmSingle": "Преместити „{{name}}“ у Отпад?", + "localTrashConfirmFolder": "Преместити фасциклу „{{name}}“ и сав њен садржај у корпу за отпад?", + "localTrashConfirmMany": "Преместити {{count}} ставки у Отпад?", + "localTrashed": "Премештено {{count}} ставки у Отпад", + "localTrashFailed": "Није могуће преместити у Отпад", + "localRenameFailed": "Преименовање није успело", + "localCreateFailed": "Није могуће креирати ставку", + "goToParentFolder": "Иди у надређени фолдер", + "resizeSidebar": "Превуците да бисте променили величину бочне траке (двапут кликните да бисте ресетовали)", + "resizeLocalPane": "Превуците да бисте променили величину локалног окна (двапут кликните да бисте ресетовали)", + "columns": "Колоне", + "columnsHint": "Кликните десним тастером миша да бисте изабрали колоне", + "emptyFolder": "Ова фасцикла је празна", + "searchFiles": "Претражи датотеке...", + "upload": "Отпреми", + "selectHostToStart": "Изаберите хост да бисте започели управљање датотекама", + "sshRequiredForFileManager": "Менаџер датотека захтева SSH. Овај хост нема омогућен SSH.", + "failedToConnect": "Повезивање са SSH-ом није успело", + "failedToLoadDirectory": "Учитавање директоријума није успело", + "noSSHConnection": "SSH веза није доступна", + "copy": "Копија", + "cut": "Исеци", + "paste": "Залепи", + "copyPath": "Копирај путању", + "copyPaths": "Копирај путање", + "delete": "Обриши", + "properties": "Некретнине", + "refresh": "Освежи", + "downloadFiles": "Преузмите {{count}} датотека у прегледач", + "copyFiles": "Копирај {{count}} ставке", + "cutFiles": "Исеци {{count}} ставки", + "deleteFiles": "Обриши {{count}} ставки", + "filesCopiedToClipboard": "{{count}} ставке копиране у међуспремник", + "filesCutToClipboard": "{{count}} ставке исечене у међуспремник", + "pathCopiedToClipboard": "Путања је копирана у међуспремник", + "pathsCopiedToClipboard": "{{count}} путање копиране у међуспремник", + "failedToCopyPath": "Копирање путање у међуспремник није успело", + "copyFolderLink": "Копирај везу у фасциклу", + "copyCurrentFolderLink": "Копирај везу у тренутну фасциклу", + "folderLinkCopied": "Линк фасцикле копиран у међуспремник", + "failedToCopyFolderLink": "Копирање линка фасцикле није успело", + "movedItems": "Премештено {{count}} ставки", + "failedToDeleteItem": "Брисање ставке није успело", + "itemRenamedSuccessfully": "{{type}} је успешно преименован", + "failedToRenameItem": "Преименовање ставке није успело", + "download": "Преузми", + "openExternalEditor": "Отвори споља", + "chooseExternalEditor": "Изаберите спољни уређивач", + "externalEditorSelected": "Изабран је спољни уредник", + "externalEditorDesktopOnly": "Спољни уређивач је доступан само у десктоп апликацији", + "externalEditorOpened": "Отворено у екстерном уређивачу. Чувањем тамо ће се измене отпремити назад на сервер.", + "failedToOpenExternalEditor": "Отварање екстерног уређивача није успело", + "failedToSelectExternalEditor": "Није успело бирање спољног уређивача", + "permissions": "Дозволе", + "size": "Величина", + "modified": "Измењено", + "path": "Путања", + "confirmDelete": "Да ли сте сигурни да желите да обришете {{name}}?", + "permissionDenied": "Дозвола одбијена", + "serverError": "Грешка сервера", + "fileSavedSuccessfully": "Датотека је успешно сачувана", + "failedToSaveFile": "Чување датотеке није успело", + "confirmDeleteSingleItem": "Да ли сте сигурни да желите трајно да избришете „{{name}}“?", + "confirmDeleteMultipleItems": "Да ли сте сигурни да желите трајно да избришете {{count}} ставке?", + "confirmDeleteMultipleItemsWithFolders": "Да ли сте сигурни да желите трајно да избришете {{count}} ставке? Ово укључује фасцикле и њихов садржај.", + "confirmDeleteFolder": "Да ли сте сигурни да желите трајно да избришете фасциклу „{{name}}“ и сав њен садржај?", + "permanentDeleteWarning": "Ова радња се не може поништити. Ставка(е) ће бити трајно избрисане са сервера.", + "moveToTrashWarning": "Ставка(е) ће бити премештена(е) у смеће Термикса и може(ју) се вратити пре истека периода чувања.", + "itemsMovedToTrash": "{{count}} ставке премештено у Отпад", + "trash": "Смеће", + "trashDescription": "Обрисане ставке се чувају {{days}} дана на овом хосту.", + "trashLoadFailed": "Учитавање Отпада није успело", + "trashEmpty": "Отпад је празан", + "trashRestore": "Врати", + "trashRestored": "Враћено {{name}}", + "trashRestoreFailed": "Враћање ставке није успело. Оригинална путања можда већ постоји.", + "trashDeletePermanently": "Трајно избриши", + "trashDeleteConfirm": "Трајно избрисати {{name}}? Ово се не може поништити.", + "trashPermanentlyDeleted": "Трајно обрисано {{name}}", + "trashDeleteFailed": "Трајно брисање ставке није успело", + "trashEmptyAction": "Испразни отпад", + "trashEmptyConfirm": "Трајно избрисати сваку ставку у Отпаду? Ово се не може поништити.", + "trashEmptied": "Отпад је испражњен", + "trashRetention": "Аутоматско чишћење после (дана)", + "trashRetentionSaved": "Задржавање отпада је ажурирано", + "trashRetentionFailed": "Ажурирање задржавања у отпаду није успело", + "trashUnavailableConfirm": "Ова ставка не може бити премештена у Отпад, обично зато што се налази на другом систему датотека или захтева повишена права. Желите ли да је трајно избришете?", + "recent": "Недавно", + "pinned": "Закачено", + "folderShortcuts": "Пречице за фасцикле", + "failedToReconnectSSH": "Поновно повезивање SSH сесије није успело", + "openTerminalHere": "Отвори терминал овде", + "run": "Трчи", + "openTerminalInFolder": "Отвори терминал у овој фасцикли", + "openTerminalInFileLocation": "Отвори терминал на локацији датотеке", + "runningFile": "Трчање - {{file}}", + "onlyRunExecutableFiles": "Може покренути само извршне датотеке", + "directories": "Директоријуми", + "removedFromRecentFiles": "Уклоњено је „{{name}}“ из недавних датотека", + "removeFailed": "Уклањање није успело", + "unpinnedSuccessfully": "Откачено „{{name}}“ успешно", + "unpinFailed": "Откачивање није успело", + "removedShortcut": "Уклоњена пречица „{{name}}“", + "removeShortcutFailed": "Уклањање пречице није успело", + "clearedAllRecentFiles": "Обрисани су сви недавно објављени фајлови", + "clearFailed": "Брисање није успело", + "removeFromRecentFiles": "Уклони из недавних датотека", + "clearAllRecentFiles": "Обриши све недавно објављене датотеке", + "unpinFile": "Откачи датотеку", + "removeShortcut": "Уклони пречицу", + "pinFile": "Закачи датотеку", + "addToShortcuts": "Додај у пречице", + "pasteFailed": "Лепљење није успело", + "noUndoableActions": "Нема радњи које се могу поништити", + "undoCopySuccess": "Поништена операција копирања: Обрисано {{count}} копираних датотека", + "undoCopyFailedDelete": "Поништавање није успело: Није могуће обрисати ниједну копирану датотеку", + "undoCopyFailedNoInfo": "Поништавање није успело: Нису пронађене информације о копираној датотеци", + "undoMoveSuccess": "Поништена операција премештања: Премештено {{count}} датотека назад на оригиналну локацију", + "undoMoveFailedMove": "Поништавање није успело: Није могуће вратити датотеке", + "undoMoveFailedNoInfo": "Поништавање није успело: Нису пронађене информације о премештеној датотеци", + "undoDeleteNotSupported": "Брисање се не може поништити: Датотеке су трајно обрисане са сервера", + "undoTypeNotSupported": "Неподржани тип операције поништавања", + "undoOperationFailed": "Поништавање није успело", + "unknownError": "Непозната грешка", + "confirm": "Потврди", + "find": "Пронађи...", + "replace": "Замени", + "downloadInstead": "Преузми уместо тога", + "keyboardShortcuts": "Пречице на тастатури", + "searchAndReplace": "Претражи и замени", + "editing": "Уређивање", + "search": "Претрага", + "findNext": "Пронађи следеће", + "findPrevious": "Пронађи претходно", + "save": "Сачувај", + "selectAll": "Изабери све", + "undo": "Поништи", + "redo": "Понови", + "moveLineUp": "Помери ред нагоре", + "moveLineDown": "Помери ред надоле", + "toggleComment": "Укључи/искључи коментар", + "autoComplete": "Аутоматско довршавање", + "imageLoadError": "Учитавање слике није успело", + "startTyping": "Почни да куцаш...", + "unknownSize": "Непозната величина", + "fileIsEmpty": "Датотека је празна", + "largeFileWarning": "Упозорење о великој датотеци", + "largeFileWarningDesc": "Величина ове датотеке је {{size}} , што може изазвати проблеме са перформансама када се отвори као текст.", + "fileNotFoundAndRemoved": "Датотека „{{name}}“ није пронађена и уклоњена је из недавно коришћених/закачених датотека", + "failedToLoadFile": "Није успело учитавање датотеке: {{error}}", + "serverErrorOccurred": "Дошло је до грешке сервера. Молимо покушајте поново касније.", + "autoSaveFailed": "Аутоматско чување није успело", + "fileAutoSaved": "Датотека је аутоматски сачувана", + "moveFileFailed": "Премештање није успело {{name}}", + "moveOperationFailed": "Операција премештања није успела", + "canOnlyCompareFiles": "Могуће је упоредити само две датотеке", + "comparingFiles": "Поређење датотека: {{file1}} и {{file2}}", + "dragFailed": "Превлачење није успело", + "filePinnedSuccessfully": "Датотека „{{name}}“ је успешно закачена", + "pinFileFailed": "Качење датотеке није успело", + "fileUnpinnedSuccessfully": "Датотека „{{name}}“ је успешно откачена", + "unpinFileFailed": "Откачивање датотеке није успело", + "shortcutAddedSuccessfully": "Пречица за фасциклу „{{name}}“ је успешно додата", + "addShortcutFailed": "Додавање пречице није успело", + "operationCompletedSuccessfully": "{{operation}} {{count}} ставке успешно", + "operationCompleted": "{{operation}} {{count}} ставке", + "downloadFileSuccess": "Датотека {{name}} је успешно преузета", + "downloadFileFailed": "Преузимање није успело", + "downloadingFile": "Преузимање {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", - "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "moveTo": "Премести на {{name}}", + "diffCompareWith": "Разлика у поређењу са {{name}}", + "dragOutsideToDownload": "Превуците спољашњост прозора да бисте преузели ({{count}} датотека)", + "newFolderDefault": "Нови фолдер", + "newFileDefault": "НоваДатотека.txt", + "successfullyMovedItems": "Успешно премештено {{count}} ставки у {{target}}", + "move": "Помери", + "searchInFile": "Претражи у датотеци (Ctrl+F)", + "showKeyboardShortcuts": "Прикажи пречице на тастатури", + "decreaseFontSize": "Смањи величину фонта", + "increaseFontSize": "Повећај величину фонта", + "startWritingMarkdown": "Почните да пишете свој садржај у markdown формату...", + "loadingFileComparison": "Учитавање поређења датотека...", + "reload": "Поново учитај", + "compare": "Упореди", + "sideBySide": "Један поред другог", + "inline": "Уграђено", + "fileComparison": "Поређење датотека: {{file1}} наспрам {{file2}}", + "fileTooLarge": "Датотека је превелика: {{error}}", + "sshConnectionFailed": "SSH веза није успела. Молимо вас да проверите везу са {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Није успело учитавање датотеке: {{error}}", + "connecting": "Повезивање...", + "connectedSuccessfully": "Успешно повезано", + "totpVerificationFailed": "Верификација TOTP-а није успела", + "browserSignInFailed": "Пријављивање није успело. Молимо покушајте поново.", + "authenticationFailed": "Аутентификација није успела", + "incorrectPassphrase": "Нетачна лозинка. Молимо покушајте поново.", + "verificationCodePrompt": "Верификациони код:", + "changePermissions": "Промени дозволе", + "currentPermissions": "Тренутне дозволе", + "owner": "Власник", + "group": "Група", + "others": "Други", + "read": "Читај", + "write": "Пиши", + "execute": "Изврши", + "permissionsChangedSuccessfully": "Дозволе су успешно промењене", + "failedToChangePermissions": "Промена дозвола није успела", + "name": "Име", + "sortByName": "Име", + "sortByDate": "Датум измене", + "sortBySize": "Величина", + "ascending": "Растуће", + "descending": "Опадајући", + "root": "Корен", + "new": "Ново", + "sortBy": "Сортирај по", + "items": "Ставке", + "selected": "Изабрано", + "editor": "Уредник", + "octal": "Октално", + "storage": "Складиштење", + "disk": "Диск", + "used": "Коришћено", + "of": "од", + "toggleSidebar": "Укључи/искључи бочну траку", + "compactLayout": "Користите компактни распоред", + "comfortableLayout": "Користите удобан распоред", + "cannotLoadPdf": "Није могуће учитати PDF", + "pdfLoadError": "Дошло је до грешке при учитавању ове PDF датотеке.", + "loadingPdf": "Учитавање PDF-а...", + "loadingPage": "Учитавање странице...", + "cancel": "Откажи", + "copiedItems_one": "Копирана ставка {{count}}", + "copiedItems_other": "Копирано {{count}} ставки", + "deleteCopiedFileFailed": "Није могуће обрисати копију {{name}}: {{error}}", + "dragMovedItems_one": "Ставка {{count}} је премештена у {{target}}", + "dragMovedItems_other": "Премештено је {{count}} ставки у {{target}}", + "moveBackFileFailed": "Није могуће померити {{name}} назад: {{error}}", + "terminal": "Терминал: {{host}} ({{path}})", + "dragToDesktop": "Превлачење {{name}} на радну површину", + "dragFilesToDesktop": "Превлачење {{count}} датотека на радну површину", + "folderDragUnsupported": "Превлачење фасцикли на радну површину још увек није подржано", + "saveToDesktopFailed": "Чување није успело: {{error}}", + "dragFailedDetail": "Превлачење није успело: {{error}}", + "videoUnsupported": "Ваш прегледач не може да репродукује овај видео формат.", + "downloadToPlay": "Преузмите да бисте је репродуковали негде другде", + "cannotPreviewType": "Не могу да прегледам овај тип датотеке", + "cannotPreviewTypeHint": "Овај тип датотеке нема преглед. Преузмите је да бисте је отворили у другој апликацији." }, "sftpTransfer": { - "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "title": "СФТП", + "description": "Пренос датотека између два SSH хоста.", + "sourceServer": "Изворни сервер", + "destinationServer": "Одредишни сервер", + "selectHost": "Изаберите хоста", + "noHostSelected": "Није изабран домаћин", + "move": "Помери", + "copy": "Копија", + "upload": "Отпреми", + "itemsSelected": "{{count}} ставка је изабрана", + "itemsSelected_other": "Изабрано је {{count}} ставки", + "ready": "Спреман", + "loadingHosts": "Учитавање хостова...", + "name": "Име", + "modified": "Измењено", + "size": "Величина", + "noFiles": "Нема датотека", + "open": "Отворено", + "up": "Горе", + "refresh": "Освежи", + "copyToTarget": "Копирај у циљни директоријум", + "rename": "Преименуј", + "delete": "Обриши", + "editPermissions": "Измени дозволе", + "createNewFolder": "Направи нову фасциклу", + "deleteSelectedItems": "Обриши изабране ставке", + "deleteConfirm": "Обришите {{count}} изабрану ставку?", + "deleteConfirm_other": "Обришите {{count}} изабраних ставки?", + "cancel": "Откажи", + "save": "Сачувај", + "folderCreated": "Фасцикла је направљена", + "itemRenamed": "Ставка је преименована", + "actionFailed": "Акција није успела", + "itemsDeleted": "{{count}} ставка је обрисана", + "itemsDeleted_other": "{{count}} ставки су обрисане", + "deleteFailed": "Брисање није успело", + "permissionsUpdated": "Дозволе су ажуриране", + "noRemoteSessionConnected": "Није повезана удаљена сесија", + "failedToListFiles": "Навођење датотека није успело", + "failedToRefresh": "Освежавање није успело", + "destinationInsideSource": "Одредиште не може бити унутар изабране изворне путање.", + "sameHostNoOp": "Извор и одредиште су иста фасцикла." }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "Менаџер датотека", + "fileManagerUrlCopied": "URL менаџера датотека је копиран", + "copyFileManagerUrlAction": "Копирај УРЛ менаџера датотека", + "docsLink": "Прикажи документе", + "hostNotFound": "Хост није пронађен", + "loadingHost": "Учитавање хоста..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Менаџер датотека", + "feature_files_desc": "Прегледајте, отпремајте, преузимајте и уређујте датотеке преко SFTP-а без напуштања апликације." }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}" + "runTitle": "Покреће се {{command}} - {{host}}", + "terminalTitle": "Терминал - {{host}}", + "terminalWithPath": "Терминал - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "Прегледајте одредишне фасцикле", + "browsePathError": "Није могуће отворити ову путању на одредишном хосту.", + "browsePathWillBeCreated": "Ова фасцикла још увек не постоји. Биће креирана када пренос почне.", + "cancel": "Откажи", + "cleanupDestFiles": "Очистите одредиште", + "cleanupDestFilesError": "Чишћење није успело", + "cleanupDestFilesNothing": "Нема ништа за чишћење на одредишту", + "cleanupDestFilesPartial": "Неке делимичне датотеке нису могле бити уклоњене", + "cleanupDestFilesSuccess": "Уклоњене су делимичне датотеке са одредишта", + "confirmCopy": "Копија", + "confirmMove": "Помери", + "copyFolderToHost": "Копирај фасциклу на хост…", + "copyItemsToHost": "Копирај {{count}} ставке за хостовање…", + "copyToHost": "Копирај на хост…", + "destinationPath": "Путања одредишта", + "destMustBeDirectory": "Одредиште мора бити директоријум за преносе више ставки", + "goUp": "Иди горе", + "hostAuthRequired": "Потребна је аутентификација. Прво отворите Менаџер датотека на овом хосту.", + "hostConnecting": "Повезивање…", + "hostConnectionFailed": "Повезивање није успело", + "hostDisconnected": "Није повезано", + "hostReady": "Спреман", + "itemsSummary": "{{count}} ставке", + "jumpHostLimitation": "Оба хоста морају бити доступна са Termix сервера. Директно рутирање од хоста до хоста није подржано.", + "methodAuto": "Аутоматски", + "methodAutoHint": "Бира tar или SFTP за сваку датотеку на основу броја датотека, величине и компресибилности. Појединачне датотеке увек користе SFTP за стримовање.", + "methodItemSftp": "SFTP по датотеци", + "methodItemSftpHint": "Пренесите сваку датотеку појединачно преко SFTP-а. Ради на свим хостовима, укључујући Windows.", + "methodItemSftpLimitation": "Свака датотека користи исти SFTP ток као и копија појединачних датотека, једна за другом. Напредак се комбинује за све датотеке, тако да се трака помера споро током великих датотека.", + "methodLabel": "Метод преноса", + "methodPreviewError": "Није могуће прегледати метод преноса. Сервер ће ипак изабрати метод када покренете.", + "methodPreviewLoading": "Израчунавање методе преноса…", + "methodPreviewScanSummary": "{{fileCount}} датотека, {{totalSize}} укупно (скенирано на изворном хосту).", + "methodPreviewWillUseItemSftp": "Користиће се: SFTP за сваку датотеку", + "methodPreviewWillUseTar": "Користиће се: Тар архива", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Изабрали сте SFTP за сваку датотеку.", + "user_tar": "Изабрали сте tar архиву.", + "tar_unavailable": "Тар није доступан на једном или оба хоста, па ће се уместо тога користити SFTP протокол за сваку датотеку.", + "windows_host": "Укључен је Windows хост, тако да се tar не користи.", + "auto_multi_large": "Аутоматски: више датотека, укључујући велику датотеку ({{largestSize}}) са компресибилним подацима. Тар их обједињује у један пренос.", + "auto_single_large_in_archive": "Аутоматски: једна велика датотека ({{largestSize}}) у овом скупу, тако да се користи SFTP за сваку датотеку.", + "auto_many_incompressible": "Аутоматски: углавном некомпримљиви подаци, тако да се користи SFTP за сваку датотеку.", + "auto_many_files": "Аутоматски: више датотека ({{fileCount}}), tar смањује оптерећење по датотеци.", + "auto_default": "Аутоматски: SFTP за сваку датотеку за овај скуп." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "Тар архива", + "methodTarHint": "Компресуј на изворном коду, пренеси једну архиву, распакуј на одредишту. Потребан је tar на оба Unix хоста.", + "metricsCompress": "Компресуј на изворном коду: {{duration}}", + "metricsExtract": "Издвајање на одредишту: {{duration}}", + "metricsPrepare": "Припреми одредиште: {{duration}}", + "metricsRouteBenchmark": "Сонда руте: директна {{direct}}, релејна {{relay}}", + "metricsSourceDelete": "Уклони из извора: {{duration}}", + "metricsTotal": "Укупно: {{duration}}", + "metricsTransfer": "Од краја до краја: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 верификован: {{duration}}", + "moveFolderToHost": "Премести фасциклу на хост…", + "moveItemsToHost": "Премести {{count}} ставке на хост…", + "moveToHost": "Премести на хост…", + "noHostsConnected": "Нема других доступних хостова за управљање датотекама.", + "noHostsConnectedHint": "Додајте још један SSH хост са омогућеним File Manager-ом у Host Manager-у.", + "parallelSegmentsHint": "Велике датотеке су подељене на делове од 256 MB. Вишеструке траке користе одвојене везе (као што је покретање неколико преноса) за већи укупни проток.", + "parallelSegmentsLabel": "Паралелне траке за прелазак", + "parallelSegmentsOption": "{{count}} траке", + "progressBenchmarking": "Избор најбрже руте за трансфер…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "Откажи", + "progressCancelling": "Отказивање…", + "progressCompressing": "Компресија на изворном хосту…", + "progressExtracting": "Распакује се на одредишту…", + "progressItems": "{{current}} / {{total}} датотеке", + "progressReconnecting": "Поновно повезивање…", + "progressStalled": "Заустављено", + "progressTotalSpeed": "{{speed}} укупно ({{lanes}} трака)", + "progressTransferring": "Пренос података…", + "progressTransferringItems": "Пренос датотека ({{current}} од {{total}})…", + "progressVerifying": "Провера интегритета датотеке…", + "recentDestinations": "Недавне дестинације", + "resumedHint": "Поново повезано са активним преносом започетим у другом прозору.", + "retryTransfer": "Покушај поново", + "retryTransferError": "Поновни покушај није успео", + "selectDestinationHost": "Изаберите одредишни хост", + "transferCancelled": "Трансфер отказан", + "transferCancelledCopyHint": "Делимични фајлови могу остати на одредишту.", + "transferCancelledMoveHint": "Делимични фајлови могу остати на одредишту. Изворни фајлови нису уклоњени.", + "transferError": "Пренос није успео", + "transferFailedRetryHint": "Делимични подаци су сачувани на одредишту. Покушај ће бити настављен када се веза поново успостави.", + "transferPartialHint": "Није могуће пренети: {{paths}}", + "transferSuccess": "Пренос завршен", + "metricsHopSourceRead": "Извор → сервер: {{throughput}}", + "metricsHopDestSftpWrite": "Сервер → одредиште (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Сервер → одредиште (локално): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/sv_SE.json b/plugins/file-manager/locales/translated/sv_SE.json index dc86761ce..b1b207a27 100644 --- a/plugins/file-manager/locales/translated/sv_SE.json +++ b/plugins/file-manager/locales/translated/sv_SE.json @@ -1,543 +1,543 @@ { "nav": { - "files": "Files", + "files": "Filer", "sftp": "SFTP", - "openFileManager": "Open File Manager" + "openFileManager": "Öppna filhanteraren" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Använd filhanteraren", + "description": "Bläddra, redigera och överför filer via SFTP." } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "Aktivera filhanteraren", + "description": "Bläddra och redigera filer på den här värden via SFTP." }, "defaultPath": { - "label": "Default Path" + "label": "Standardsökväg" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "SCP Legacy-läge" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Samtidiga filöverföringar", + "description": "Hur många filer den sida vid sida lokala/fjärrstyrda hanteraren laddar upp eller laddar ner samtidigt. Sänk detta om din server begränsar SFTP-kanaler." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Bekräfta innan du flyttar filer till papperskorgen", + "description": "Fråga innan du flyttar fjärrfiler till papperskorgen. Permanent borttagning kräver fortfarande bekräftelse." } } }, "hostCapability": { - "label": "File Manager" + "label": "Filhanteraren" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "noHostSelected": "Ingen värd vald", + "initializingEditor": "Initierar redigeraren...", + "file": "Fil", + "folder": "Mapp", + "uploadFile": "Ladda upp fil", + "downloadFile": "Ladda ner", + "extractArchive": "Utdragsarkiv", + "extractingArchive": "Extraherar {{name}}...", + "archiveExtractedSuccessfully": "{{name}} extraherades", + "extractFailed": "Extraheringen misslyckades", + "compressFile": "Komprimera fil", + "compressFiles": "Komprimera filer", + "compressFilesDesc": "Komprimera {{count}} objekt till ett arkiv", + "archiveName": "Arkivnamn", + "enterArchiveName": "Ange arkivnamn...", + "compressionFormat": "Komprimeringsformat", + "selectedFiles": "Valda filer", + "andMoreFiles": "och {{count}} mer...", + "compress": "Komprimera", + "compressingFiles": "Komprimerar {{count}} objekt till {{name}}...", + "filesCompressedSuccessfully": "{{name}} skapades", + "compressFailed": "Komprimeringen misslyckades", + "edit": "Redigera", + "preview": "Förhandsvisning", + "previous": "Tidigare", + "next": "Nästa", + "pageXOfY": "Sida {{current}} av {{total}}", + "zoomOut": "Zooma ut", + "zoomIn": "Zooma in", + "newFile": "Ny fil", + "newFolder": "Ny mapp", + "rename": "Döpa om", + "uploading": "Laddar upp...", + "uploadingFile": "Laddar upp {{name}}...", + "uploadingChunk": "Laddar upp {{name}}: {{percent}}% (del {{chunk}} av {{total}})", + "fileName": "Filnamn", + "folderName": "Mappnamn", + "fileUploadedSuccessfully": "Filen \"{{name}}\" har laddats upp", + "failedToUploadFile": "Misslyckades med att ladda upp filen", + "uploadingFolderFiles": "Laddar upp {{count}} fil(er)...", + "uploadedFolderFiles": "Uppladdade {{count}} fil(er) framgångsrikt", + "uploadedFolderPartial": "Uppladdade {{uploaded}} fil(er), {{failed}} misslyckades", + "fileDownloadedSuccessfully": "Filen \"{{name}}\" har laddats ner", + "failedToDownloadFile": "Misslyckades med att ladda ner filen", + "fileCreatedSuccessfully": "Filen \"{{name}}\" skapades", + "folderCreatedSuccessfully": "Mappen \"{{name}}\" skapades", + "failedToCreateItem": "Misslyckades med att skapa objektet", + "operationFailed": "{{operation}} -åtgärden misslyckades för {{name}}: {{error}}", + "failedToResolveSymlink": "Misslyckades med att lösa symbolisk länk", + "itemsDeletedSuccessfully": "{{count}} objekt har raderats", + "failedToDeleteItems": "Misslyckades med att ta bort objekt", + "sudoPasswordRequired": "Administratörslösenord krävs", + "enterSudoPassword": "Ange sudo-lösenordet för att fortsätta den här operationen", + "sudoPassword": "Sudo-lösenord", + "sudoOperationFailed": "Sudo-operationen misslyckades", + "sudoAuthFailed": "Sudo-autentisering misslyckades", + "dragFilesToUpload": "Släpp filer här för att ladda upp", + "dropToUploadHere": "Släpp för att ladda upp här", + "dropToDownloadHere": "Släpp för att ladda ner här", + "localFiles": "Lokal", + "showLocalFiles": "Visa lokala filer (delad vy)", + "hideLocalFiles": "Dölj lokala filer", + "localHome": "Hemmappen", + "localPathPlaceholder": "Sökväg till lokal mapp", + "localShowHidden": "Visa dolda filer", + "localHideHidden": "Dölj dolda filer", + "localRevealInFileManager": "Visa i systemets filhanterare", + "localCannotOpenFolder": "Kan inte öppna mappen", + "localItemCount": "{{count}} objekt", + "localSelectedCount": "{{count}} vald", + "back": "Tillbaka", + "forward": "Fram", + "up": "Upp", + "kind": "Slag", + "localUploadingProgress": "Laddar upp {{current}} av {{total}}", + "localDownloadingProgress": "Laddar ner {{current}} av {{total}}", + "localTransferInFlight": "{{count}} på en gång", + "localPreparingDownload": "Förbereder nedladdning...", + "localTransferCancelled": "Överföringen avbruten", + "localNothingToTransfer": "Inget att överföra", + "localUploadComplete": "Uppladdade {{count}} fil(er)", + "localUploadFailed": "Uppladdningen misslyckades", + "localUploadPartial": "Uppladdade {{done}} fil(er), {{failed}} misslyckades", + "localDownloadComplete": "Nedladdade {{count}} fil(er)", + "localDownloadFailed": "Nedladdningen misslyckades", + "localDownloadPartial": "Nedladdning av {{done}} fil(er), {{failed}} misslyckades", + "localReplaceExistingPrompt": "{{count}} objekt finns redan i den här mappen. Vill du ersätta dem?", + "localReplace": "Ersätta", + "localSkipExisting": "Hoppa", + "localSkippedExisting": "Hoppade över {{count}} befintliga objekt", + "localUnsafeNamesSkipped": "Hoppade över {{count}} objekt vars namn inte kan användas på den här datorn", + "localOpen": "Öppna", + "localOpenFolder": "Öppna mappen", + "localUploadToRemote": "Ladda upp till servern", + "localUploadToRemoteMany": "Ladda upp {{count}} objekt till servern", + "localMoveToTrash": "Flytta till papperskorgen", + "localMoveToTrashMany": "Flytta {{count}} objekt till papperskorgen", + "localTrashConfirmSingle": "Flytta \"{{name}}\" till papperskorgen?", + "localTrashConfirmFolder": "Flytta mappen \"{{name}}\" och allt dess innehåll till papperskorgen?", + "localTrashConfirmMany": "Flytta {{count}} objekt till papperskorgen?", + "localTrashed": "Flyttade {{count}} objekt till papperskorgen", + "localTrashFailed": "Kunde inte flytta till papperskorgen", + "localRenameFailed": "Byte av namn misslyckades", + "localCreateFailed": "Kunde inte skapa objektet", + "goToParentFolder": "Gå till överordnad mapp", + "resizeSidebar": "Dra för att ändra storlek på sidofältet (dubbelklicka för att återställa)", + "resizeLocalPane": "Dra för att ändra storlek på den lokala rutan (dubbelklicka för att återställa)", + "columns": "Kolumner", + "columnsHint": "Högerklicka för att välja kolumner", + "emptyFolder": "Den här mappen är tom", + "searchFiles": "Sök filer...", + "upload": "Ladda upp", + "selectHostToStart": "Välj en värd för att starta filhanteringen", + "sshRequiredForFileManager": "Filhanteraren kräver SSH. Den här värden har inte SSH aktiverat.", + "failedToConnect": "Misslyckades med att ansluta till SSH", + "failedToLoadDirectory": "Misslyckades med att ladda katalogen", + "noSSHConnection": "Ingen SSH-anslutning tillgänglig", + "copy": "Kopiera", + "cut": "Skära", + "paste": "Klistra", + "copyPath": "Kopiera sökväg", + "copyPaths": "Kopiera sökvägar", + "delete": "Radera", + "properties": "Fastigheter", + "refresh": "Uppdatera", + "downloadFiles": "Ladda ner {{count}} filer till webbläsaren", + "copyFiles": "Kopiera {{count}} objekt", + "cutFiles": "Klipp ut {{count}} objekt", + "deleteFiles": "Ta bort {{count}} objekt", + "filesCopiedToClipboard": "{{count}} objekt kopierade till urklipp", + "filesCutToClipboard": "{{count}} objekt klippta till urklipp", + "pathCopiedToClipboard": "Sökväg kopierad till urklipp", + "pathsCopiedToClipboard": "{{count}} sökvägar kopierade till urklipp", + "failedToCopyPath": "Misslyckades med att kopiera sökvägen till urklipp", + "copyFolderLink": "Kopiera länk till mapp", + "copyCurrentFolderLink": "Kopiera länk till aktuell mapp", + "folderLinkCopied": "Mapplänk kopierad till urklipp", + "failedToCopyFolderLink": "Misslyckades med att kopiera mapplänken", + "movedItems": "Flyttade {{count}} objekt", + "failedToDeleteItem": "Misslyckades med att ta bort objektet", + "itemRenamedSuccessfully": "{{type}} har bytt namn", + "failedToRenameItem": "Misslyckades med att byta namn på objektet", + "download": "Ladda ner", + "openExternalEditor": "Öppna externt", + "chooseExternalEditor": "Välj extern redigerare", + "externalEditorSelected": "Extern redigerare vald", + "externalEditorDesktopOnly": "Extern redigerare är endast tillgänglig i skrivbordsappen", + "externalEditorOpened": "Öppnad i extern redigerare. Om du sparar där laddas ändringarna upp tillbaka till servern.", + "failedToOpenExternalEditor": "Misslyckades med att öppna den externa redigeraren", + "failedToSelectExternalEditor": "Misslyckades med att välja extern redigerare", + "permissions": "Behörigheter", + "size": "Storlek", + "modified": "Ändrad", + "path": "Väg", + "confirmDelete": "Är du säker på att du vill ta bort {{name}}?", + "permissionDenied": "Tillstånd nekad", + "serverError": "Serverfel", + "fileSavedSuccessfully": "Filen har sparats", + "failedToSaveFile": "Misslyckades med att spara filen", + "confirmDeleteSingleItem": "Är du säker på att du vill ta bort \"{{name}} \" permanent?", + "confirmDeleteMultipleItems": "Är du säker på att du vill ta bort {{count}} objekt permanent?", + "confirmDeleteMultipleItemsWithFolders": "Är du säker på att du vill ta bort {{count}} objekt permanent? Detta inkluderar mappar och deras innehåll.", + "confirmDeleteFolder": "Är du säker på att du vill permanent ta bort mappen \"{{name}}\" och allt dess innehåll?", + "permanentDeleteWarning": "Den här åtgärden kan inte ångras. Objektet/objekten kommer att raderas permanent från servern.", + "moveToTrashWarning": "Objektet/objekten kommer att flyttas till Termix-papperskorgen och kan återställas innan lagringsperioden löper ut.", + "itemsMovedToTrash": "{{count}} objekt flyttade till papperskorgen", + "trash": "Skräp", + "trashDescription": "Borttagna objekt sparas i {{days}} dag(ar) på den här värden.", + "trashLoadFailed": "Misslyckades med att ladda papperskorgen", + "trashEmpty": "Papperskorgen är tom", + "trashRestore": "Återställa", + "trashRestored": "Återställd {{name}}", + "trashRestoreFailed": "Det gick inte att återställa objektet. Den ursprungliga sökvägen kan redan finnas.", + "trashDeletePermanently": "Ta bort permanent", + "trashDeleteConfirm": "Vill du permanent radera {{name}}? Detta kan inte ångras.", + "trashPermanentlyDeleted": "Permanent borttagen {{name}}", + "trashDeleteFailed": "Misslyckades med att ta bort objektet permanent", + "trashEmptyAction": "Töm papperskorgen", + "trashEmptyConfirm": "Vill du permanent radera alla objekt i papperskorgen? Det här kan inte ångras.", + "trashEmptied": "Papperskorgen tömd", + "trashRetention": "Automatisk rensning efter (dagar)", + "trashRetentionSaved": "Papperskorgen har lagrats uppdaterad", + "trashRetentionFailed": "Misslyckades med att uppdatera papperskorgen", + "trashUnavailableConfirm": "Det här objektet kan inte flyttas till papperskorgen, vanligtvis för att det finns på ett annat filsystem eller kräver utökade behörigheter. Vill du ta bort det permanent istället?", + "recent": "Ny", + "pinned": "Fäst", + "folderShortcuts": "Mappgenvägar", + "failedToReconnectSSH": "Misslyckades med att återansluta SSH-sessionen", + "openTerminalHere": "Öppna terminalen här", + "run": "Sikt", + "openTerminalInFolder": "Öppna terminalen i den här mappen", + "openTerminalInFileLocation": "Öppna terminalen på filplatsen", + "runningFile": "Löpning - {{file}}", + "onlyRunExecutableFiles": "Kan bara köra körbara filer", + "directories": "Kataloger", + "removedFromRecentFiles": "Tog bort \"{{name}}\" från senaste filer", + "removeFailed": "Borttagning misslyckades", + "unpinnedSuccessfully": "\"{{name}}\" har lossats", + "unpinFailed": "Misslyckades med att lossa", + "removedShortcut": "Tog bort genvägen \"{{name}}\"", + "removeShortcutFailed": "Misslyckades med att ta bort genvägen", + "clearedAllRecentFiles": "Rensade alla senaste filer", + "clearFailed": "Rensa misslyckades", + "removeFromRecentFiles": "Ta bort från senaste filer", + "clearAllRecentFiles": "Rensa alla senaste filer", + "unpinFile": "Lossa filen", + "removeShortcut": "Ta bort genväg", + "pinFile": "Fäst fil", + "addToShortcuts": "Lägg till i genvägar", + "pasteFailed": "Klistra in misslyckades", + "noUndoableActions": "Inga ångerbara åtgärder", + "undoCopySuccess": "Ångrad kopiering: Raderade {{count}} kopierade filer", + "undoCopyFailedDelete": "Ångra misslyckades: Kunde inte ta bort några kopierade filer", + "undoCopyFailedNoInfo": "Ångra misslyckades: Kunde inte hitta kopierad filinformation", + "undoMoveSuccess": "Ångrade flyttåtgärd: Flyttade {{count}} filer tillbaka till ursprunglig plats", + "undoMoveFailedMove": "Ångra misslyckades: Kunde inte flytta tillbaka några filer", + "undoMoveFailedNoInfo": "Ångra misslyckades: Kunde inte hitta information om den flyttade filen", + "undoDeleteNotSupported": "Raderingen kan inte ångras: Filerna har raderats permanent från servern", + "undoTypeNotSupported": "Ångra-åtgärdstypen stöds inte", + "undoOperationFailed": "Ångraåtgärden misslyckades", + "unknownError": "Okänt fel", + "confirm": "Bekräfta", + "find": "Hitta...", + "replace": "Ersätta", + "downloadInstead": "Ladda ner istället", + "keyboardShortcuts": "Kortkommandon", + "searchAndReplace": "Sök och ersätt", + "editing": "Redigering", + "search": "Söka", + "findNext": "Hitta nästa", + "findPrevious": "Hitta föregående", + "save": "Spara", + "selectAll": "Markera alla", + "undo": "Ångra", + "redo": "Göra om", + "moveLineUp": "Flytta upp raden", + "moveLineDown": "Flytta raden nedåt", + "toggleComment": "Växla kommentar", + "autoComplete": "Autoslutför", + "imageLoadError": "Misslyckades med att ladda bilden", + "startTyping": "Börja skriva...", + "unknownSize": "Okänd storlek", + "fileIsEmpty": "Filen är tom", + "largeFileWarning": "Varning för stora filer", + "largeFileWarningDesc": "Den här filen är {{size}} stor, vilket kan orsaka prestandaproblem när den öppnas som text.", + "fileNotFoundAndRemoved": "Filen \"{{name}}\" hittades inte och har tagits bort från senaste/fästa filer", + "failedToLoadFile": "Misslyckades med att ladda filen: {{error}}", + "serverErrorOccurred": "Serverfel uppstod. Försök igen senare.", + "autoSaveFailed": "Automatisk sparning misslyckades", + "fileAutoSaved": "Filen sparades automatiskt", + "moveFileFailed": "Misslyckades med att flytta {{name}}", + "moveOperationFailed": "Flyttoperationen misslyckades", + "canOnlyCompareFiles": "Kan bara jämföra två filer", + "comparingFiles": "Jämför filer: {{file1}} och {{file2}}", + "dragFailed": "Dragningsåtgärden misslyckades", + "filePinnedSuccessfully": "Filen \"{{name}}\" har fästs", + "pinFileFailed": "Misslyckades med att fästa filen", + "fileUnpinnedSuccessfully": "Filen \"{{name}}\" har lossats", + "unpinFileFailed": "Misslyckades med att lossa filen", + "shortcutAddedSuccessfully": "Mappgenvägen \"{{name}}\" har lagts till", + "addShortcutFailed": "Misslyckades med att lägga till genväg", + "operationCompletedSuccessfully": "{{operation}} {{count}} objekt lyckades", + "operationCompleted": "{{operation}} {{count}} objekt", + "downloadFileSuccess": "Filen {{name}} har laddats ner", + "downloadFileFailed": "Nedladdningen misslyckades", + "downloadingFile": "Laddar ner {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", + "moveTo": "Flytta till {{name}}", + "diffCompareWith": "Differensjämförelse med {{name}}", + "dragOutsideToDownload": "Dra utanför fönstret för att ladda ner ({{count}} filer)", + "newFolderDefault": "Nymapp", + "newFileDefault": "Nyfil.txt", + "successfullyMovedItems": "Flyttade {{count}} objekt till {{target}}", + "move": "Flytta", + "searchInFile": "Sök i filen (Ctrl+F)", + "showKeyboardShortcuts": "Visa kortkommandon", + "decreaseFontSize": "Minska teckenstorleken", + "increaseFontSize": "Öka teckenstorleken", + "startWritingMarkdown": "Börja skriva ditt nedskrivningsinnehåll...", + "loadingFileComparison": "Laddar filjämförelse...", + "reload": "Ladda om", + "compare": "Jämföra", + "sideBySide": "Sida vid sida", "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", + "fileComparison": "Filjämförelse: {{file1}} vs {{file2}}", + "fileTooLarge": "Filen är för stor: {{error}}", + "sshConnectionFailed": "SSH-anslutningen misslyckades. Kontrollera din anslutning till {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Misslyckades med att ladda filen: {{error}}", + "connecting": "Ansluter...", + "connectedSuccessfully": "Ansluten", + "totpVerificationFailed": "TOTP-verifiering misslyckades", + "browserSignInFailed": "Inloggningen misslyckades. Försök igen.", + "authenticationFailed": "Autentiseringen misslyckades", + "incorrectPassphrase": "Felaktigt lösenord. Försök igen.", + "verificationCodePrompt": "Verifieringskod:", + "changePermissions": "Ändra behörigheter", + "currentPermissions": "Nuvarande behörigheter", + "owner": "Ägare", + "group": "Grupp", + "others": "Andra", + "read": "Läsa", + "write": "Skriva", + "execute": "Utföra", + "permissionsChangedSuccessfully": "Behörigheter har ändrats", + "failedToChangePermissions": "Misslyckades med att ändra behörigheter", + "name": "Namn", + "sortByName": "Namn", + "sortByDate": "Datum ändrat", + "sortBySize": "Storlek", + "ascending": "Stigande", + "descending": "Fallande", + "root": "Rot", + "new": "Ny", + "sortBy": "Sortera efter", + "items": "Föremål", + "selected": "Vald", + "editor": "Redaktör", + "octal": "Oktal", + "storage": "Lagring", "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "used": "Begagnad", + "of": "av", + "toggleSidebar": "Växla sidofält", + "compactLayout": "Använd kompakt layout", + "comfortableLayout": "Använd bekväm layout", + "cannotLoadPdf": "Kan inte ladda PDF-filen", + "pdfLoadError": "Det uppstod ett fel när PDF-filen laddades.", + "loadingPdf": "Laddar PDF...", + "loadingPage": "Laddar sida...", + "cancel": "Avboka", + "copiedItems_one": "Kopierade {{count}} objekt", + "copiedItems_other": "Kopierade {{count}} objekt", + "deleteCopiedFileFailed": "Kunde inte ta bort kopian av {{name}}: {{error}}", + "dragMovedItems_one": "Flyttade objektet {{count}} till {{target}}", + "dragMovedItems_other": "Flyttade {{count}} objekt till {{target}}", + "moveBackFileFailed": "Kunde inte flytta {{name}} tillbaka: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "Dra {{name}} till skrivbordet", + "dragFilesToDesktop": "Dra {{count}} filer till skrivbordet", + "folderDragUnsupported": "Att dra mappar till skrivbordet stöds ännu inte", + "saveToDesktopFailed": "Spara misslyckades: {{error}}", + "dragFailedDetail": "Drag misslyckades: {{error}}", + "videoUnsupported": "Din webbläsare kan inte spela upp det här videoformatet.", + "downloadToPlay": "Ladda ner för att spela det någon annanstans", + "cannotPreviewType": "Det går inte att förhandsgranska den här filtypen", + "cannotPreviewTypeHint": "Den här filtypen har ingen förhandsgranskning. Ladda ner den för att öppna den i en annan app." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "description": "Överför filer mellan två SSH-värdar.", + "sourceServer": "Källserver", + "destinationServer": "Destinationsserver", + "selectHost": "Välj värd", + "noHostSelected": "Ingen värd vald", + "move": "Flytta", + "copy": "Kopiera", + "upload": "Ladda upp", + "itemsSelected": "{{count}} objekt valt", + "itemsSelected_other": "{{count}} objekt valda", + "ready": "Redo", + "loadingHosts": "Laddar värdar...", + "name": "Namn", + "modified": "Ändrad", + "size": "Storlek", + "noFiles": "Inga filer", + "open": "Öppna", + "up": "Upp", + "refresh": "Uppdatera", + "copyToTarget": "Kopiera till målkatalog", + "rename": "Döpa om", + "delete": "Radera", + "editPermissions": "Redigera behörigheter", + "createNewFolder": "Skapa ny mapp", + "deleteSelectedItems": "Ta bort valda objekt", + "deleteConfirm": "Ta bort {{count}} markerat objekt?", + "deleteConfirm_other": "Ta bort {{count}} markerade objekt?", + "cancel": "Avboka", + "save": "Spara", + "folderCreated": "Mapp skapad", + "itemRenamed": "Artikeln har bytt namn", + "actionFailed": "Åtgärden misslyckades", + "itemsDeleted": "{{count}} objekt borttaget", + "itemsDeleted_other": "{{count}} objekt raderade", + "deleteFailed": "Raderingen misslyckades", + "permissionsUpdated": "Behörigheter uppdaterade", + "noRemoteSessionConnected": "Ingen fjärrsession ansluten", + "failedToListFiles": "Misslyckades med att lista filer", + "failedToRefresh": "Misslyckades med att uppdatera", + "destinationInsideSource": "Destinationen får inte vara inom den valda källsökvägen.", + "sameHostNoOp": "Källa och destination är samma mapp." }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "Filhanteraren", + "fileManagerUrlCopied": "Filhanterarens URL kopierad", + "copyFileManagerUrlAction": "Kopiera filhanterarens URL", + "docsLink": "Visa dokument", + "hostNotFound": "Värden hittades inte", + "loadingHost": "Laddar värd..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Filhanteraren", + "feature_files_desc": "Bläddra, ladda upp, ladda ner och redigera filer via SFTP utan att lämna appen." }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", + "runTitle": "Kör {{command}} - {{host}}", "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "Bläddra bland målmappar", + "browsePathError": "Kunde inte öppna den här sökvägen på målvärden.", + "browsePathWillBeCreated": "Den här mappen finns inte ännu. Den kommer att skapas när överföringen startar.", + "cancel": "Avboka", + "cleanupDestFiles": "Städa upp destinationen", + "cleanupDestFilesError": "Rensningen misslyckades", + "cleanupDestFilesNothing": "Inget att städa upp på destinationen", + "cleanupDestFilesPartial": "Vissa delfiler kunde inte tas bort", + "cleanupDestFilesSuccess": "Tog bort delvisa filer från destinationen", + "confirmCopy": "Kopiera", + "confirmMove": "Flytta", + "copyFolderToHost": "Kopiera mapp till värden…", + "copyItemsToHost": "Kopiera {{count}} objekt till…", + "copyToHost": "Kopiera till värd…", + "destinationPath": "Destinationsväg", + "destMustBeDirectory": "Destinationen måste vara en katalog för överföringar av flera objekt", + "goUp": "Gå upp", + "hostAuthRequired": "Autentisering krävs. Öppna filhanteraren på den här värden först.", + "hostConnecting": "Ansluter…", + "hostConnectionFailed": "Anslutningen misslyckades", + "hostDisconnected": "Inte ansluten", + "hostReady": "Redo", + "itemsSummary": "{{count}} objekt", + "jumpHostLimitation": "Båda värdarna måste vara nåbara från Termix-servern. Direkt routing mellan värdar stöds inte.", + "methodAuto": "Bil", + "methodAutoHint": "Väljer tar eller SFTP per fil baserat på filantal, storlek och komprimerbarhet. Enstaka filer använder alltid strömmande SFTP.", + "methodItemSftp": "SFTP per fil", + "methodItemSftpHint": "Överför varje fil individuellt via SFTP. Fungerar på alla värdar inklusive Windows.", + "methodItemSftpLimitation": "Varje fil använder samma SFTP-ström som en kopia av en enda fil, en efter en. Förloppet kombineras över alla filer, så stapeln rör sig långsamt vid stora filer.", + "methodLabel": "Överföringsmetod", + "methodPreviewError": "Kunde inte förhandsgranska överföringsmetoden. Servern kommer fortfarande att välja en metod när du startar.", + "methodPreviewLoading": "Beräkning av överföringsmetod…", + "methodPreviewScanSummary": "{{fileCount}} filer, {{totalSize}} totalt (skannat på källvärd).", + "methodPreviewWillUseItemSftp": "Kommer att använda: SFTP per fil", + "methodPreviewWillUseTar": "Kommer att använda: Tar-arkiv", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Du valde SFTP per fil.", + "user_tar": "Du valde tar-arkivet.", + "tar_unavailable": "Tar är inte tillgängligt på en eller båda värdarna, så SFTP per fil kommer att användas istället.", + "windows_host": "En Windows-värd är inblandad, så tar används inte.", + "auto_multi_large": "Auto: flera filer inklusive en stor fil ({{largestSize}}) med komprimerbar data. Tar buntar dem i en överföring.", + "auto_single_large_in_archive": "Auto: en stor fil ({{largestSize}}) i den här uppsättningen, så SFTP per fil.", + "auto_many_incompressible": "Auto: mestadels inkomprimerbar data, så SFTP per fil.", + "auto_many_files": "Auto: många filer ({{fileCount}}), tar minskar overhead per fil.", + "auto_default": "Auto: SFTP per fil för den här uppsättningen." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "Tar-arkiv", + "methodTarHint": "Komprimera vid källan, överför ett arkiv, extrahera vid destinationen. Kräver tar på båda Unix-värdarna.", + "metricsCompress": "Komprimera på källan: {{duration}}", + "metricsExtract": "Extrahera på destination: {{duration}}", + "metricsPrepare": "Förbered destination: {{duration}}", + "metricsRouteBenchmark": "Ruttsond: direkt {{direct}}, relä {{relay}}", + "metricsSourceDelete": "Ta bort från källan: {{duration}}", + "metricsTotal": "Totalt: {{duration}}", + "metricsTransfer": "Från slut till slut: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 verifierad: {{duration}}", + "moveFolderToHost": "Flytta mappen till värden…", + "moveItemsToHost": "Flytta {{count}} objekt till…", + "moveToHost": "Flytta till värd…", + "noHostsConnected": "Inga andra filhanterarvärdar tillgängliga.", + "noHostsConnectedHint": "Lägg till en annan SSH-värd med filhanteraren aktiverad i värdhanteraren.", + "parallelSegmentsHint": "Stora filer delas upp i bitar på 256 MB. Flera filer använder separata anslutningar (som att starta flera överföringar) för högre total dataflöde.", + "parallelSegmentsLabel": "Parallella överföringsfält", + "parallelSegmentsOption": "{{count}} körfält", + "progressBenchmarking": "Välja den snabbaste transfervägen…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "Avboka", + "progressCancelling": "Avbryter…", + "progressCompressing": "Komprimering på källvärd…", + "progressExtracting": "Extraherar på destination…", + "progressItems": "{{current}} / {{total}} filer", + "progressReconnecting": "Återansluter…", + "progressStalled": "Stannade", + "progressTotalSpeed": "{{speed}} totalt ({{lanes}} körfält)", + "progressTransferring": "Överför data…", + "progressTransferringItems": "Överföra filer ({{current}} av {{total}})…", + "progressVerifying": "Verifierar filintegritet…", + "recentDestinations": "Senaste destinationerna", + "resumedHint": "Återansluten till en aktiv överföring som startade i ett annat fönster.", + "retryTransfer": "Försöka igen", + "retryTransferError": "Återförsök misslyckades", + "selectDestinationHost": "Välj destinationsvärd", + "transferCancelled": "Överföringen avbruten", + "transferCancelledCopyHint": "Delvisa filer kan finnas kvar på destinationen.", + "transferCancelledMoveHint": "Delvisa filer kan finnas kvar på destinationen. Källfilerna togs inte bort.", + "transferError": "Överföringen misslyckades", + "transferFailedRetryHint": "Delvis data sparades på destinationen. Försöket återupptas när anslutningen är tillbaka.", + "transferPartialHint": "Kunde inte överföra: {{paths}}", + "transferSuccess": "Överföringen är klar", + "metricsHopSourceRead": "Källa → server: {{throughput}}", + "metricsHopDestSftpWrite": "Server → destination (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Server → destination (lokal): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/th_TH.json b/plugins/file-manager/locales/translated/th_TH.json index dc86761ce..627a53c0b 100644 --- a/plugins/file-manager/locales/translated/th_TH.json +++ b/plugins/file-manager/locales/translated/th_TH.json @@ -1,543 +1,543 @@ { "nav": { - "files": "Files", - "sftp": "SFTP", - "openFileManager": "Open File Manager" + "files": "ไฟล์", + "sftp": "เอสเอฟทีพี", + "openFileManager": "เปิดตัวจัดการไฟล์" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "ใช้โปรแกรมจัดการไฟล์", + "description": "เรียกดู แก้ไข และถ่ายโอนไฟล์ผ่าน SFTP" } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "เปิดใช้งานตัวจัดการไฟล์", + "description": "เรียกดูและแก้ไขไฟล์บนโฮสต์นี้ผ่านทาง SFTP" }, "defaultPath": { - "label": "Default Path" + "label": "เส้นทางเริ่มต้น" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "โหมด SCP ดั้งเดิม" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "การโอนไฟล์พร้อมกัน", + "description": "ตัวจัดการไฟล์แบบโลคอล/รีโมตที่ทำงานควบคู่กันไป สามารถอัปโหลดหรือดาวน์โหลดไฟล์ได้พร้อมกันกี่ไฟล์ ลดจำนวนไฟล์นี้ลงหากเซิร์ฟเวอร์ของคุณจำกัดจำนวนช่อง SFTP" }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "ตรวจสอบให้แน่ใจก่อนย้ายไฟล์ไปยังถังขยะ", + "description": "โปรดสอบถามก่อนย้ายไฟล์ระยะไกลไปยังถังขยะ การลบถาวรยังคงต้องได้รับการยืนยัน" } } }, "hostCapability": { - "label": "File Manager" + "label": "ตัวจัดการไฟล์" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "initializingEditor": "กำลังเริ่มต้นโปรแกรมแก้ไข...", + "file": "ไฟล์", + "folder": "โฟลเดอร์", + "uploadFile": "อัปโหลดไฟล์", + "downloadFile": "ดาวน์โหลด", + "extractArchive": "แตกไฟล์เก็บถาวร", + "extractingArchive": "กำลังดึงข้อมูล {{name}}...", + "archiveExtractedSuccessfully": "{{name}} ดึงข้อมูลสำเร็จแล้ว", + "extractFailed": "การดึงข้อมูลล้มเหลว", + "compressFile": "บีบอัดไฟล์", + "compressFiles": "บีบอัดไฟล์", + "compressFilesDesc": "บีบอัดรายการ {{count}} รายการลงในไฟล์เก็บถาวร", + "archiveName": "ชื่อไฟล์เก็บถาวร", + "enterArchiveName": "ป้อนชื่อไฟล์เก็บถาวร...", + "compressionFormat": "รูปแบบการบีบอัด", + "selectedFiles": "ไฟล์ที่เลือก", + "andMoreFiles": "และ {{count}} เพิ่มเติม...", + "compress": "บีบอัด", + "compressingFiles": "บีบอัดรายการ {{count}} รายการลงใน {{name}} รายการ ...", + "filesCompressedSuccessfully": "{{name}} สร้างสำเร็จแล้ว", + "compressFailed": "การบีบอัดล้มเหลว", + "edit": "แก้ไข", + "preview": "ตัวอย่าง", + "previous": "ก่อนหน้า", + "next": "ต่อไป", + "pageXOfY": "หน้า {{current}} จาก {{total}}", + "zoomOut": "ซูมออก", + "zoomIn": "ซูมเข้า", + "newFile": "ไฟล์ใหม่", + "newFolder": "โฟลเดอร์ใหม่", + "rename": "เปลี่ยนชื่อ", + "uploading": "กำลังอัปโหลด...", + "uploadingFile": "กำลังอัปโหลด {{name}}...", + "uploadingChunk": "กำลังอัปโหลด {{name}}: {{percent}}% (ส่วน {{chunk}} ของ {{total}})", + "fileName": "ชื่อไฟล์", + "folderName": "ชื่อโฟลเดอร์", + "fileUploadedSuccessfully": "ไฟล์ \"{{name}}\" อัปโหลดสำเร็จแล้ว", + "failedToUploadFile": "ไม่สามารถอัปโหลดไฟล์ได้", + "uploadingFolderFiles": "กำลังอัปโหลดไฟล์ {{count}} ไฟล์...", + "uploadedFolderFiles": "อัปโหลดไฟล์ {{count}} ไฟล์สำเร็จแล้ว", + "uploadedFolderPartial": "อัปโหลดไฟล์ {{uploaded}} ไฟล์, {{failed}} ล้มเหลว", + "fileDownloadedSuccessfully": "ดาวน์โหลดไฟล์ \"{{name}}\" สำเร็จแล้ว", + "failedToDownloadFile": "ไม่สามารถดาวน์โหลดไฟล์ได้", + "fileCreatedSuccessfully": "สร้างไฟล์ \"{{name}}\" สำเร็จแล้ว", + "folderCreatedSuccessfully": "สร้างโฟลเดอร์ \"{{name}}\" สำเร็จแล้ว", + "failedToCreateItem": "ไม่สามารถสร้างรายการได้", + "operationFailed": "การดำเนินการ {{operation}} ล้มเหลวสำหรับ {{name}}: {{error}}", + "failedToResolveSymlink": "ไม่สามารถแก้ไขลิงก์สัญลักษณ์ได้", + "itemsDeletedSuccessfully": "รายการ {{count}} ถูกลบสำเร็จแล้ว", + "failedToDeleteItems": "ไม่สามารถลบรายการได้", + "sudoPasswordRequired": "ต้องใช้รหัสผ่านผู้ดูแลระบบ", + "enterSudoPassword": "ป้อนรหัสผ่าน sudo เพื่อดำเนินการต่อ", + "sudoPassword": "รหัสผ่าน Sudo", + "sudoOperationFailed": "การดำเนินการ Sudo ล้มเหลว", + "sudoAuthFailed": "การตรวจสอบสิทธิ์ Sudo ล้มเหลว", + "dragFilesToUpload": "ลากไฟล์มาวางที่นี่เพื่ออัปโหลด", + "dropToUploadHere": "ลากเส้นเพื่ออัปโหลดที่นี่", + "dropToDownloadHere": "คลิกที่นี่เพื่อดาวน์โหลด", + "localFiles": "ท้องถิ่น", + "showLocalFiles": "แสดงไฟล์ในเครื่อง (มุมมองแบบแบ่งหน้าจอ)", + "hideLocalFiles": "ซ่อนไฟล์ในเครื่อง", + "localHome": "โฟลเดอร์บ้าน", + "localPathPlaceholder": "เส้นทางโฟลเดอร์ในเครื่อง", + "localShowHidden": "แสดงไฟล์ที่ซ่อนอยู่", + "localHideHidden": "ซ่อนไฟล์ที่ซ่อนไว้", + "localRevealInFileManager": "เปิดเผยในตัวจัดการไฟล์ระบบ", + "localCannotOpenFolder": "ไม่สามารถเปิดโฟลเดอร์ได้", + "localItemCount": "{{count}} รายการ", + "localSelectedCount": "{{count}} เลือกแล้ว", + "back": "กลับ", + "forward": "ซึ่งไปข้างหน้า", + "up": "ขึ้น", + "kind": "ใจดี", + "localUploadingProgress": "กำลังอัปโหลด {{current}} จาก {{total}}", + "localDownloadingProgress": "กำลังดาวน์โหลด {{current}} จาก {{total}}", + "localTransferInFlight": "{{count}} ทันที", + "localPreparingDownload": "กำลังเตรียมดาวน์โหลด...", + "localTransferCancelled": "การโอนเงินถูกยกเลิก", + "localNothingToTransfer": "ไม่มีอะไรต้องโอน", + "localUploadComplete": "อัปโหลดไฟล์ {{count}} ไฟล์แล้ว", + "localUploadFailed": "การอัปโหลดล้มเหลว", + "localUploadPartial": "อัปโหลดไฟล์ {{done}} ไฟล์, {{failed}} ล้มเหลว", + "localDownloadComplete": "ดาวน์โหลดไฟล์ {{count}} ไฟล์แล้ว", + "localDownloadFailed": "การดาวน์โหลดล้มเหลว", + "localDownloadPartial": "ดาวน์โหลดไฟล์ {{done}} ไฟล์, {{failed}} ไฟล์ล้มเหลว", + "localReplaceExistingPrompt": "{{count}} รายการมีอยู่แล้วในโฟลเดอร์นี้ ต้องการแทนที่หรือไม่?", + "localReplace": "แทนที่", + "localSkipExisting": "ข้าม", + "localSkippedExisting": "ข้ามรายการที่มีอยู่ {{count}} รายการ", + "localUnsafeNamesSkipped": "ข้ามรายการ {{count}} รายการ เนื่องจากไม่สามารถใช้ชื่อรายการดังกล่าวในคอมพิวเตอร์เครื่องนี้ได้", + "localOpen": "เปิด", + "localOpenFolder": "เปิดโฟลเดอร์", + "localUploadToRemote": "อัปโหลดไปยังเซิร์ฟเวอร์", + "localUploadToRemoteMany": "อัปโหลด {{count}} รายการไปยังเซิร์ฟเวอร์", + "localMoveToTrash": "ย้ายไปที่ถังขยะ", + "localMoveToTrashMany": "ย้ายรายการ {{count}} รายการไปยังถังขยะ", + "localTrashConfirmSingle": "ย้าย \"{{name}}\" ไปที่ถังขยะ?", + "localTrashConfirmFolder": "ย้ายโฟลเดอร์ \"{{name}}\" และเนื้อหาทั้งหมดไปที่ถังขยะ?", + "localTrashConfirmMany": "ย้ายรายการ {{count}} รายการไปยังถังขยะหรือไม่?", + "localTrashed": "ย้ายรายการ {{count}} รายการไปยังถังขยะ", + "localTrashFailed": "ไม่สามารถย้ายไปถังขยะได้", + "localRenameFailed": "การเปลี่ยนชื่อล้มเหลว", + "localCreateFailed": "ไม่สามารถสร้างรายการได้", + "goToParentFolder": "ไปที่โฟลเดอร์หลัก", + "resizeSidebar": "ลากเพื่อปรับขนาดแถบด้านข้าง (ดับเบิ้ลคลิกเพื่อรีเซ็ต)", + "resizeLocalPane": "ลากเพื่อปรับขนาดบานหน้าต่างเฉพาะที่ (ดับเบิ้ลคลิกเพื่อรีเซ็ต)", + "columns": "คอลัมน์", + "columnsHint": "คลิกขวาเพื่อเลือกคอลัมน์", + "emptyFolder": "โฟลเดอร์นี้ว่างเปล่า", + "searchFiles": "ค้นหาไฟล์...", + "upload": "อัปโหลด", + "selectHostToStart": "เลือกโฮสต์เพื่อเริ่มการจัดการไฟล์", + "sshRequiredForFileManager": "โปรแกรมจัดการไฟล์ต้องการการเชื่อมต่อ SSH แต่เครื่องนี้ไม่ได้เปิดใช้งาน SSH", + "failedToConnect": "ไม่สามารถเชื่อมต่อ SSH ได้", + "failedToLoadDirectory": "ไม่สามารถโหลดไดเร็กทอรีได้", + "noSSHConnection": "ไม่มีการเชื่อมต่อ SSH ให้ใช้งาน", + "copy": "สำเนา", + "cut": "ตัด", + "paste": "แปะ", + "copyPath": "คัดลอกเส้นทาง", + "copyPaths": "คัดลอกเส้นทาง", + "delete": "ลบ", + "properties": "คุณสมบัติ", + "refresh": "รีเฟรช", + "downloadFiles": "ดาวน์โหลดไฟล์ {{count}} ไปยังเบราว์เซอร์", + "copyFiles": "คัดลอกรายการ {{count}} รายการ", + "cutFiles": "ตัด {{count}} รายการ", + "deleteFiles": "ลบรายการ {{count}} รายการ", + "filesCopiedToClipboard": "{{count}} รายการที่คัดลอกไปยังคลิปบอร์ด", + "filesCutToClipboard": "{{count}} รายการที่ถูกตัดไปยังคลิปบอร์ด", + "pathCopiedToClipboard": "คัดลอกเส้นทางไปยังคลิปบอร์ดแล้ว", + "pathsCopiedToClipboard": "{{count}} คัดลอกเส้นทางไปยังคลิปบอร์ดแล้ว", + "failedToCopyPath": "ไม่สามารถคัดลอกเส้นทางไปยังคลิปบอร์ดได้", + "copyFolderLink": "คัดลink ไปยังโฟลเดอร์", + "copyCurrentFolderLink": "คัดลink ไปยังโฟลเดอร์ปัจจุบัน", + "folderLinkCopied": "คัดลอกลิงก์โฟลเดอร์ไปยังคลิปบอร์ดแล้ว", + "failedToCopyFolderLink": "ไม่สามารถคัดลอกลิงก์โฟลเดอร์ได้", + "movedItems": "ย้ายรายการ {{count}} รายการ", + "failedToDeleteItem": "ไม่สามารถลบรายการได้", + "itemRenamedSuccessfully": "{{type}} เปลี่ยนชื่อสำเร็จแล้ว", + "failedToRenameItem": "ไม่สามารถเปลี่ยนชื่อรายการได้", + "download": "ดาวน์โหลด", + "openExternalEditor": "เปิดจากภายนอก", + "chooseExternalEditor": "เลือกตัวแก้ไขภายนอก", + "externalEditorSelected": "เลือกบรรณาธิการภายนอก", + "externalEditorDesktopOnly": "โปรแกรมแก้ไขภายนอกใช้งานได้เฉพาะในแอปพลิเคชันบนเดสก์ท็อปเท่านั้น", + "externalEditorOpened": "เปิดในโปรแกรมแก้ไขภายนอก การบันทึกในโปรแกรมแก้ไขนั้นจะอัปโหลดการเปลี่ยนแปลงกลับไปยังเซิร์ฟเวอร์", + "failedToOpenExternalEditor": "ไม่สามารถเปิดโปรแกรมแก้ไขภายนอกได้", + "failedToSelectExternalEditor": "ไม่สามารถเลือกตัวแก้ไขภายนอกได้", + "permissions": "สิทธิ์การเข้าถึง", + "size": "ขนาด", + "modified": "แก้ไขแล้ว", + "path": "เส้นทาง", + "confirmDelete": "คุณแน่ใจหรือไม่ว่าต้องการลบ {{name}}?", + "permissionDenied": "ไม่ได้รับอนุญาต", + "serverError": "ข้อผิดพลาดของเซิร์ฟเวอร์", + "fileSavedSuccessfully": "บันทึกไฟล์สำเร็จแล้ว", + "failedToSaveFile": "ไม่สามารถบันทึกไฟล์ได้", + "confirmDeleteSingleItem": "คุณแน่ใจหรือไม่ว่าต้องการลบ \"{{name}} \" อย่างถาวร?", + "confirmDeleteMultipleItems": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการ {{count}} อย่างถาวร?", + "confirmDeleteMultipleItemsWithFolders": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการ {{count}} รายการอย่างถาวร ซึ่งรวมถึงโฟลเดอร์และเนื้อหาภายในด้วย", + "confirmDeleteFolder": "คุณแน่ใจหรือไม่ว่าต้องการลบโฟลเดอร์ \"{{name}}\" และเนื้อหาทั้งหมดในนั้นอย่างถาวร?", + "permanentDeleteWarning": "การดำเนินการนี้ไม่สามารถยกเลิกได้ รายการดังกล่าวจะถูกลบออกจากเซิร์ฟเวอร์อย่างถาวร", + "moveToTrashWarning": "ไฟล์ดังกล่าวจะถูกย้ายไปยังถังขยะของ Termix และสามารถกู้คืนได้ก่อนที่ระยะเวลาการเก็บรักษาจะหมดลง", + "itemsMovedToTrash": "{{count}} รายการถูกย้ายไปยังถังขยะ", + "trash": "ขยะ", + "trashDescription": "รายการที่ถูกลบจะยังคงอยู่เป็นเวลา {{days}} วันบนโฮสต์นี้", + "trashLoadFailed": "ไม่สามารถโหลดถังขยะได้", + "trashEmpty": "ถังขยะว่างเปล่า", + "trashRestore": "คืนค่า", + "trashRestored": "กู้คืนแล้ว {{name}}", + "trashRestoreFailed": "ไม่สามารถกู้คืนรายการได้ เส้นทางเดิมอาจมีอยู่แล้ว", + "trashDeletePermanently": "ลบอย่างถาวร", + "trashDeleteConfirm": "ลบ {{name}}อย่างถาวรหรือไม่? การดำเนินการนี้ไม่สามารถย้อนกลับได้", + "trashPermanentlyDeleted": "ลบถาวร {{name}}", + "trashDeleteFailed": "ไม่สามารถลบรายการอย่างถาวรได้", + "trashEmptyAction": "ขยะทิ้ง", + "trashEmptyConfirm": "ต้องการลบทุกอย่างในถังขยะอย่างถาวรหรือไม่? การกระทำนี้ไม่สามารถย้อนกลับได้", + "trashEmptied": "ขยะถูกเก็บแล้ว", + "trashRetention": "ล้างข้อมูลอัตโนมัติหลังจาก (วัน)", + "trashRetentionSaved": "การปรับปรุงการเก็บรักษาขยะ", + "trashRetentionFailed": "ไม่สามารถอัปเดตการเก็บรักษาข้อมูลถังขยะได้", + "trashUnavailableConfirm": "ไม่สามารถย้ายรายการนี้ไปยังถังขยะได้ เนื่องจากไฟล์นี้อยู่ในระบบไฟล์อื่น หรือต้องใช้สิทธิ์ระดับสูง ต้องการลบอย่างถาวรแทนหรือไม่?", + "recent": "ล่าสุด", + "pinned": "ปักหมุด", + "folderShortcuts": "ทางลัดโฟลเดอร์", + "failedToReconnectSSH": "ไม่สามารถเชื่อมต่อเซสชัน SSH ใหม่ได้", + "openTerminalHere": "เปิดเทอร์มินัลที่นี่", + "run": "วิ่ง", + "openTerminalInFolder": "เปิดเทอร์มินัลในโฟลเดอร์นี้", + "openTerminalInFileLocation": "เปิดเทอร์มินัลที่ตำแหน่งไฟล์", + "runningFile": "การวิ่ง - {{file}}", + "onlyRunExecutableFiles": "สามารถเรียกใช้งานได้เฉพาะไฟล์ปฏิบัติการเท่านั้น", + "directories": "รายชื่อ", + "removedFromRecentFiles": "ลบ \"{{name}}\" ออกจากไฟล์ล่าสุดแล้ว", + "removeFailed": "ลบสิ่งที่ล้มเหลว", + "unpinnedSuccessfully": "ยกเลิกการตรึง \"{{name}}\" สำเร็จแล้ว", + "unpinFailed": "ยกเลิกการตรึงไม่สำเร็จ", + "removedShortcut": "ลบทางลัด \"{{name}} \" ออกแล้ว", + "removeShortcutFailed": "การลบทางลัดล้มเหลว", + "clearedAllRecentFiles": "ลบไฟล์ล่าสุดทั้งหมดแล้ว", + "clearFailed": "เคลียร์ล้มเหลว", + "removeFromRecentFiles": "ลบออกจากไฟล์ล่าสุด", + "clearAllRecentFiles": "ลบไฟล์ล่าสุดทั้งหมด", + "unpinFile": "ยกเลิกการตรึงไฟล์", + "removeShortcut": "ลบทางลัด", + "pinFile": "ไฟล์พิน", + "addToShortcuts": "เพิ่มไปยังทางลัด", + "pasteFailed": "การวางล้มเหลว", + "noUndoableActions": "ไม่มีการกระทำใดที่ย้อนกลับไม่ได้", + "undoCopySuccess": "ยกเลิกการคัดลอก: ลบไฟล์ที่คัดลอก {{count}} ไฟล์", + "undoCopyFailedDelete": "การยกเลิกการกระทำล้มเหลว: ไม่สามารถลบไฟล์ที่คัดลอกไว้ได้", + "undoCopyFailedNoInfo": "การยกเลิกการกระทำล้มเหลว: ไม่พบข้อมูลไฟล์ที่คัดลอกไว้", + "undoMoveSuccess": "ยกเลิกการย้าย: ย้ายไฟล์ {{count}} ไฟล์กลับไปยังตำแหน่งเดิม", + "undoMoveFailedMove": "การยกเลิกไม่สำเร็จ: ไม่สามารถย้ายไฟล์ใดๆ กลับได้", + "undoMoveFailedNoInfo": "การยกเลิกไม่สำเร็จ: ไม่พบข้อมูลไฟล์ที่ถูกย้าย", + "undoDeleteNotSupported": "ไม่สามารถยกเลิกการลบได้: ไฟล์ถูกลบออกจากเซิร์ฟเวอร์อย่างถาวรแล้ว", + "undoTypeNotSupported": "ประเภทการดำเนินการยกเลิกที่ไม่รองรับ", + "undoOperationFailed": "การยกเลิกการดำเนินการล้มเหลว", + "unknownError": "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "confirm": "ยืนยัน", + "find": "หา...", + "replace": "แทนที่", + "downloadInstead": "ดาวน์โหลดแทน", + "keyboardShortcuts": "แป้นพิมพ์ลัด", + "searchAndReplace": "ค้นหาและแทนที่", + "editing": "การแก้ไข", + "search": "ค้นหา", + "findNext": "ค้นหาถัดไป", + "findPrevious": "ค้นหาก่อนหน้า", + "save": "บันทึก", + "selectAll": "เลือกทั้งหมด", + "undo": "เลิกทำ", + "redo": "ทำซ้ำ", + "moveLineUp": "เคลื่อนแถว", + "moveLineDown": "เลื่อนเส้นลง", + "toggleComment": "สลับการแสดงความคิดเห็น", + "autoComplete": "การเติมข้อความอัตโนมัติ", + "imageLoadError": "ไม่สามารถโหลดรูปภาพได้", + "startTyping": "เริ่มพิมพ์...", + "unknownSize": "ขนาดไม่ทราบแน่ชัด", + "fileIsEmpty": "ไฟล์ว่างเปล่า", + "largeFileWarning": "คำเตือนเกี่ยวกับไฟล์ขนาดใหญ่", + "largeFileWarningDesc": "ไฟล์นี้มีขนาด {{size}} ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพเมื่อเปิดเป็นข้อความ", + "fileNotFoundAndRemoved": "ไม่พบไฟล์ \"{{name}}\" และไฟล์ดังกล่าวถูกลบออกจากไฟล์ล่าสุด/ไฟล์ปักหมุดแล้ว", + "failedToLoadFile": "ไม่สามารถโหลดไฟล์ได้: {{error}}", + "serverErrorOccurred": "เกิดข้อผิดพลาดของเซิร์ฟเวอร์ โปรดลองใหม่อีกครั้งในภายหลัง", + "autoSaveFailed": "การบันทึกอัตโนมัติล้มเหลว", + "fileAutoSaved": "ไฟล์ถูกบันทึกอัตโนมัติ", + "moveFileFailed": "การย้ายล้มเหลว {{name}}", + "moveOperationFailed": "การดำเนินการย้ายล้มเหลว", + "canOnlyCompareFiles": "สามารถเปรียบเทียบไฟล์ได้เพียงสองไฟล์เท่านั้น", + "comparingFiles": "เปรียบเทียบไฟล์: {{file1}} และ {{file2}}", + "dragFailed": "การดำเนินการลากล้มเหลว", + "filePinnedSuccessfully": "ไฟล์ \"{{name}}\" ถูกปักหมุดสำเร็จแล้ว", + "pinFileFailed": "ไม่สามารถตรึงไฟล์ได้", + "fileUnpinnedSuccessfully": "ไฟล์ \"{{name}}\" ถูกยกเลิกการตรึงสำเร็จแล้ว", + "unpinFileFailed": "ไม่สามารถยกเลิกการตรึงไฟล์ได้", + "shortcutAddedSuccessfully": "เพิ่มทางลัดโฟลเดอร์ \"{{name}}\" สำเร็จแล้ว", + "addShortcutFailed": "ไม่สามารถเพิ่มทางลัดได้", + "operationCompletedSuccessfully": "{{operation}} {{count}} รายการสำเร็จ", + "operationCompleted": "{{operation}} {{count}} รายการ", + "downloadFileSuccess": "ดาวน์โหลดไฟล์ {{name}} สำเร็จแล้ว", + "downloadFileFailed": "การดาวน์โหลดล้มเหลว", + "downloadingFile": "กำลังดาวน์โหลด {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", - "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "moveTo": "ย้ายไปที่ {{name}}", + "diffCompareWith": "เปรียบเทียบความแตกต่างกับ {{name}}", + "dragOutsideToDownload": "ลากออกนอกหน้าต่างเพื่อดาวน์โหลดไฟล์ ({{count}} ไฟล์)", + "newFolderDefault": "โฟลเดอร์ใหม่", + "newFileDefault": "ไฟล์ใหม่.txt", + "successfullyMovedItems": "ย้ายรายการ {{count}} รายการไปยัง {{target}} สำเร็จแล้ว", + "move": "เคลื่อนไหว", + "searchInFile": "ค้นหาในไฟล์ (Ctrl+F)", + "showKeyboardShortcuts": "แสดงทางลัดแป้นพิมพ์", + "decreaseFontSize": "ลดขนาดตัวอักษร", + "increaseFontSize": "เพิ่มขนาดตัวอักษร", + "startWritingMarkdown": "เริ่มเขียนเนื้อหา Markdown ของคุณได้เลย...", + "loadingFileComparison": "กำลังโหลดการเปรียบเทียบไฟล์...", + "reload": "โหลดซ้ำ", + "compare": "เปรียบเทียบ", + "sideBySide": "เคียงข้างกัน", + "inline": "อินไลน์", + "fileComparison": "การเปรียบเทียบไฟล์: {{file1}} กับ {{file2}}", + "fileTooLarge": "ไฟล์มีขนาดใหญ่เกินไป: {{error}}", + "sshConnectionFailed": "การเชื่อมต่อ SSH ล้มเหลว โปรดตรวจสอบการเชื่อมต่อของคุณกับ {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "ไม่สามารถโหลดไฟล์ได้: {{error}}", + "connecting": "กำลังเชื่อมต่อ...", + "connectedSuccessfully": "เชื่อมต่อสำเร็จแล้ว", + "totpVerificationFailed": "การตรวจสอบ TOTP ล้มเหลว", + "browserSignInFailed": "การเข้าสู่ระบบล้มเหลว โปรดลองใหม่อีกครั้ง", + "authenticationFailed": "การตรวจสอบสิทธิ์ล้มเหลว", + "incorrectPassphrase": "รหัสผ่านไม่ถูกต้อง โปรดลองอีกครั้ง", + "verificationCodePrompt": "รหัสยืนยัน:", + "changePermissions": "เปลี่ยนสิทธิ์การเข้าถึง", + "currentPermissions": "สิทธิ์การเข้าถึงปัจจุบัน", + "owner": "เจ้าของ", + "group": "กลุ่ม", + "others": "คนอื่น", + "read": "อ่าน", + "write": "เขียน", + "execute": "ดำเนินการ", + "permissionsChangedSuccessfully": "สิทธิ์การเข้าถึงเปลี่ยนแปลงสำเร็จแล้ว", + "failedToChangePermissions": "ไม่สามารถเปลี่ยนสิทธิ์ได้", + "name": "ชื่อ", + "sortByName": "ชื่อ", + "sortByDate": "วันที่แก้ไข", + "sortBySize": "ขนาด", + "ascending": "ขึ้นไป", + "descending": "ลง", + "root": "ราก", + "new": "ใหม่", + "sortBy": "เรียงลำดับตาม", + "items": "รายการ", + "selected": "เลือกแล้ว", + "editor": "บรรณาธิการ", + "octal": "แปด", + "storage": "พื้นที่จัดเก็บ", + "disk": "ดิสก์", + "used": "ใช้แล้ว", + "of": "ของ", + "toggleSidebar": "สลับแถบด้านข้าง", + "compactLayout": "ใช้รูปแบบการจัดวางที่กะทัดรัด", + "comfortableLayout": "ใช้รูปแบบการจัดวางที่สะดวกสบาย", + "cannotLoadPdf": "ไม่สามารถโหลดไฟล์ PDF ได้", + "pdfLoadError": "เกิดข้อผิดพลาดในการโหลดไฟล์ PDF นี้", + "loadingPdf": "กำลังโหลดไฟล์ PDF...", + "loadingPage": "กำลังโหลดหน้าเว็บ...", + "cancel": "ยกเลิก", + "copiedItems_one": "คัดลอกรายการ {{count}} แล้ว", + "copiedItems_other": "คัดลอกรายการ {{count}} รายการ", + "deleteCopiedFileFailed": "ไม่สามารถลบสำเนาของ {{name}}ได้ : {{error}}", + "dragMovedItems_one": "ย้ายรายการ {{count}} ไปยัง {{target}}", + "dragMovedItems_other": "ย้ายรายการ {{count}} รายการไปยัง {{target}}", + "moveBackFileFailed": "ไม่สามารถย้าย {{name}} กลับไปได้: {{error}}", + "terminal": "เทอร์มินัล: {{host}} ({{path}})", + "dragToDesktop": "ลาก {{name}} ไปยังเดสก์ท็อป", + "dragFilesToDesktop": "ลากไฟล์ {{count}} ไปยังเดสก์ท็อป", + "folderDragUnsupported": "ขณะนี้ยังไม่รองรับการลากโฟลเดอร์ไปยังเดสก์ท็อป", + "saveToDesktopFailed": "การบันทึกล้มเหลว: {{error}}", + "dragFailedDetail": "การลากไม่สำเร็จ: {{error}}", + "videoUnsupported": "เบราว์เซอร์ของคุณไม่สามารถเล่นวิดีโอรูปแบบนี้ได้", + "downloadToPlay": "ดาวน์โหลดเพื่อเล่นที่อื่น", + "cannotPreviewType": "ไม่สามารถแสดงตัวอย่างไฟล์ประเภทนี้ได้", + "cannotPreviewTypeHint": "ไฟล์ประเภทนี้ไม่มีตัวอย่างให้ดู ดาวน์โหลดเพื่อเปิดในแอปพลิเคชันอื่น" }, "sftpTransfer": { - "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "title": "เอสเอฟทีพี", + "description": "โอนไฟล์ระหว่างโฮสต์ SSH สองเครื่อง", + "sourceServer": "เซิร์ฟเวอร์ต้นทาง", + "destinationServer": "เซิร์ฟเวอร์ปลายทาง", + "selectHost": "เลือกโฮสต์", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "move": "เคลื่อนไหว", + "copy": "สำเนา", + "upload": "อัปโหลด", + "itemsSelected": "{{count}} รายการที่เลือก", + "itemsSelected_other": "รายการที่เลือก {{count}} รายการ", + "ready": "พร้อม", + "loadingHosts": "กำลังโหลดโฮสต์...", + "name": "ชื่อ", + "modified": "แก้ไขแล้ว", + "size": "ขนาด", + "noFiles": "ไม่มีไฟล์", + "open": "เปิด", + "up": "ขึ้น", + "refresh": "รีเฟรช", + "copyToTarget": "คัดลอกไปยังไดเร็กทอรีเป้าหมาย", + "rename": "เปลี่ยนชื่อ", + "delete": "ลบ", + "editPermissions": "แก้ไขสิทธิ์การเข้าถึง", + "createNewFolder": "สร้างโฟลเดอร์ใหม่", + "deleteSelectedItems": "ลบรายการที่เลือก", + "deleteConfirm": "ลบรายการที่เลือก {{count}} รายการหรือไม่?", + "deleteConfirm_other": "ลบรายการที่เลือก {{count}} รายการหรือไม่?", + "cancel": "ยกเลิก", + "save": "บันทึก", + "folderCreated": "สร้างโฟลเดอร์แล้ว", + "itemRenamed": "เปลี่ยนชื่อรายการ", + "actionFailed": "การดำเนินการล้มเหลว", + "itemsDeleted": "{{count}} รายการถูกลบ", + "itemsDeleted_other": "รายการที่ถูกลบ {{count}} รายการ", + "deleteFailed": "การลบล้มเหลว", + "permissionsUpdated": "สิทธิ์การเข้าถึงได้รับการอัปเดตแล้ว", + "noRemoteSessionConnected": "ไม่มีการเชื่อมต่อเซสชันระยะไกล", + "failedToListFiles": "ไม่สามารถแสดงรายการไฟล์ได้", + "failedToRefresh": "ไม่สามารถรีเฟรชได้", + "destinationInsideSource": "ปลายทางต้องไม่อยู่ภายในเส้นทางต้นทางที่เลือกไว้", + "sameHostNoOp": "ต้นทางและปลายทางเป็นโฟลเดอร์เดียวกัน" }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "ตัวจัดการไฟล์", + "fileManagerUrlCopied": "คัดลอก URL ของตัวจัดการไฟล์แล้ว", + "copyFileManagerUrlAction": "คัดลอก URL ของตัวจัดการไฟล์", + "docsLink": "ดูเอกสาร", + "hostNotFound": "ไม่พบโฮสต์", + "loadingHost": "กำลังโหลดโฮสต์..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "ตัวจัดการไฟล์", + "feature_files_desc": "เรียกดู อัปโหลด ดาวน์โหลด และแก้ไขไฟล์ผ่าน SFTP โดยไม่ต้องออกจากแอปพลิเคชัน" }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}" + "runTitle": "กำลังวิ่ง {{command}} - {{host}}", + "terminalTitle": "เทอร์มินัล - {{host}}", + "terminalWithPath": "เทอร์มินัล - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "เรียกดูโฟลเดอร์ปลายทาง", + "browsePathError": "ไม่สามารถเปิดเส้นทางนี้บนโฮสต์ปลายทางได้", + "browsePathWillBeCreated": "โฟลเดอร์นี้ยังไม่มีอยู่ จะถูกสร้างขึ้นเมื่อการถ่ายโอนเริ่มต้นขึ้น", + "cancel": "ยกเลิก", + "cleanupDestFiles": "สถานที่ทำความสะอาด", + "cleanupDestFilesError": "การทำความสะอาดล้มเหลว", + "cleanupDestFilesNothing": "ไม่มีอะไรต้องทำความสะอาดที่ปลายทาง", + "cleanupDestFilesPartial": "ไม่สามารถลบไฟล์บางส่วนได้", + "cleanupDestFilesSuccess": "ลบไฟล์บางส่วนออกจากปลายทางแล้ว", + "confirmCopy": "สำเนา", + "confirmMove": "เคลื่อนไหว", + "copyFolderToHost": "คัดลอกโฟลเดอร์ไปยังโฮสต์…", + "copyItemsToHost": "คัดลอกรายการ {{count}} รายการไปยังโฮสต์…", + "copyToHost": "คัดลอกไปยังโฮสต์…", + "destinationPath": "เส้นทางปลายทาง", + "destMustBeDirectory": "สำหรับการโอนย้ายหลายรายการ ปลายทางต้องเป็นไดเร็กทอรี", + "goUp": "ขึ้นไป", + "hostAuthRequired": "ต้องมีการยืนยันตัวตน โปรดเปิดตัวจัดการไฟล์บนโฮสต์นี้ก่อน", + "hostConnecting": "กำลังเชื่อมต่อ…", + "hostConnectionFailed": "การเชื่อมต่อล้มเหลว", + "hostDisconnected": "ไม่ได้เชื่อมต่อ", + "hostReady": "พร้อม", + "itemsSummary": "{{count}} รายการ", + "jumpHostLimitation": "โฮสต์ทั้งสองต้องสามารถเข้าถึงได้จากเซิร์ฟเวอร์ Termix ไม่รองรับการกำหนดเส้นทางโดยตรงระหว่างโฮสต์", + "methodAuto": "อัตโนมัติ", + "methodAutoHint": "เลือกใช้ไฟล์บีบอัดแบบ tar หรือ SFTP แบบต่อไฟล์ โดยพิจารณาจากจำนวนไฟล์ ขนาดไฟล์ และความสามารถในการบีบอัด ไฟล์เดี่ยวจะใช้ SFTP แบบสตรีมมิ่งเสมอ", + "methodItemSftp": "SFTP ต่อไฟล์", + "methodItemSftpHint": "โอนไฟล์แต่ละไฟล์ทีละไฟล์ผ่าน SFTP ใช้งานได้กับทุกระบบปฏิบัติการ รวมถึง Windows", + "methodItemSftpLimitation": "แต่ละไฟล์จะใช้สตรีม SFTP เดียวกันในการคัดลอกไฟล์ทีละไฟล์ ความคืบหน้าจะถูกรวมเข้าด้วยกัน ทำให้แถบแสดงความคืบหน้าเคลื่อนที่ช้าลงเมื่อคัดลอกไฟล์ขนาดใหญ่", + "methodLabel": "วิธีการถ่ายโอน", + "methodPreviewError": "ไม่สามารถดูตัวอย่างวิธีการถ่ายโอนได้ เซิร์ฟเวอร์จะเลือกวิธีการเมื่อคุณเริ่มต้นใช้งาน", + "methodPreviewLoading": "กำลังคำนวณวิธีการโอน…", + "methodPreviewScanSummary": "ไฟล์ {{fileCount}} ไฟล์, รวม {{totalSize}} ไฟล์ (สแกนจากโฮสต์ต้นทาง)", + "methodPreviewWillUseItemSftp": "จะใช้: SFTP แบบแยกไฟล์", + "methodPreviewWillUseTar": "จะใช้: ไฟล์เก็บถาวร Tar", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "คุณเลือกใช้ SFTP แบบต่อไฟล์", + "user_tar": "คุณเลือกไฟล์เก็บถาวรแบบ tar", + "tar_unavailable": "Tar ไม่สามารถใช้งานได้บนโฮสต์หนึ่งหรือทั้งสองโฮสต์ ดังนั้นจะใช้ SFTP แบบแยกไฟล์แทน", + "windows_host": "เนื่องจากใช้ระบบปฏิบัติการ Windows จึงไม่ได้ใช้โปรแกรม tar", + "auto_multi_large": "อัตโนมัติ: ไฟล์หลายไฟล์ รวมถึงไฟล์ขนาดใหญ่ ({{largestSize}}) ที่มีข้อมูลที่สามารถบีบอัดได้ Tar จะรวมไฟล์เหล่านั้นเข้าไว้ในการถ่ายโอนครั้งเดียว", + "auto_single_large_in_archive": "อัตโนมัติ: ไฟล์ขนาดใหญ่หนึ่งไฟล์ ({{largestSize}}) ในชุดนี้ ดังนั้นจึงใช้ SFTP ต่อไฟล์", + "auto_many_incompressible": "อัตโนมัติ: ข้อมูลส่วนใหญ่ไม่สามารถบีบอัดได้ ดังนั้นจึงใช้ SFTP แบบแยกไฟล์", + "auto_many_files": "อัตโนมัติ: ไฟล์จำนวนมาก ({{fileCount}}) tar ช่วยลดค่าใช้จ่ายต่อไฟล์", + "auto_default": "อัตโนมัติ: ตั้งค่า SFTP สำหรับแต่ละไฟล์ในชุดนี้" }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "คลังข้อมูลทาร์", + "methodTarHint": "บีบอัดไฟล์ที่ต้นทาง ถ่ายโอนไฟล์เก็บถาวรหนึ่งไฟล์ และแตกไฟล์ที่ปลายทาง ต้องใช้ tar บนเครื่อง Unix ทั้งสองเครื่อง", + "metricsCompress": "บีบอัดจากแหล่งที่มา: {{duration}}", + "metricsExtract": "แตกไฟล์ที่ปลายทาง: {{duration}}", + "metricsPrepare": "เตรียมปลายทาง: {{duration}}", + "metricsRouteBenchmark": "การตรวจสอบเส้นทาง: โดยตรง {{direct}}, รีเลย์ {{relay}}", + "metricsSourceDelete": "ลบออกจากแหล่งที่มา: {{duration}}", + "metricsTotal": "รวม: {{duration}}", + "metricsTransfer": "จากต้นทางถึงปลายทาง: {{throughput}} ({{duration}})", + "metricsVerify": "ตรวจสอบด้วย SHA-256 แล้ว: {{duration}}", + "moveFolderToHost": "ย้ายโฟลเดอร์ไปยังโฮสต์…", + "moveItemsToHost": "ย้ายรายการ {{count}} รายการไปยังโฮสต์…", + "moveToHost": "ย้ายไปยังโฮสต์…", + "noHostsConnected": "ไม่มีโฮสต์ตัวจัดการไฟล์อื่นให้บริการ", + "noHostsConnectedHint": "เพิ่มโฮสต์ SSH อีกตัวโดยเปิดใช้งานตัวจัดการไฟล์ในตัวจัดการโฮสต์", + "parallelSegmentsHint": "ไฟล์ขนาดใหญ่จะถูกแบ่งออกเป็นส่วนย่อยขนาด 256 MB การใช้หลายเลนจะใช้การเชื่อมต่อแยกกัน (เช่น การเริ่มการถ่ายโอนหลายรายการพร้อมกัน) เพื่อให้ได้ปริมาณงานโดยรวมที่สูงขึ้น", + "parallelSegmentsLabel": "ช่องทางเปลี่ยนถ่ายแบบขนาน", + "parallelSegmentsOption": "{{count}} เลน", + "progressBenchmarking": "เลือกเส้นทางการโอนย้ายที่เร็วที่สุด…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "ยกเลิก", + "progressCancelling": "การยกเลิก…", + "progressCompressing": "กำลังบีบอัดบนโฮสต์ต้นทาง…", + "progressExtracting": "กำลังแตกไฟล์ที่ปลายทาง…", + "progressItems": "ไฟล์ {{current}} / {{total}}", + "progressReconnecting": "กำลังเชื่อมต่อใหม่…", + "progressStalled": "หยุดชะงัก", + "progressTotalSpeed": "{{speed}} รวม ({{lanes}} เลน)", + "progressTransferring": "กำลังถ่ายโอนข้อมูล…", + "progressTransferringItems": "กำลังถ่ายโอนไฟล์ ({{current}} จาก {{total}})…", + "progressVerifying": "กำลังตรวจสอบความสมบูรณ์ของไฟล์…", + "recentDestinations": "จุดหมายปลายทางล่าสุด", + "resumedHint": "เชื่อมต่อใหม่กับการถ่ายโอนที่เริ่มทำงานในหน้าต่างอื่นแล้ว", + "retryTransfer": "ลองใหม่อีกครั้ง", + "retryTransferError": "การลองใหม่ล้มเหลว", + "selectDestinationHost": "เลือกโฮสต์ปลายทาง", + "transferCancelled": "การโอนเงินถูกยกเลิก", + "transferCancelledCopyHint": "ไฟล์บางส่วนอาจยังคงอยู่ในปลายทาง", + "transferCancelledMoveHint": "ไฟล์บางส่วนอาจยังคงอยู่ในปลายทาง ไฟล์ต้นฉบับไม่ได้ถูกลบออก", + "transferError": "การโอนล้มเหลว", + "transferFailedRetryHint": "ข้อมูลบางส่วนถูกเก็บไว้ในปลายทาง การลองใหม่จะดำเนินการต่อเมื่อการเชื่อมต่อกลับมาใช้งานได้", + "transferPartialHint": "ไม่สามารถโอนเงินได้: {{paths}}", + "transferSuccess": "การโอนเสร็จสมบูรณ์", + "metricsHopSourceRead": "แหล่งที่มา → เซิร์ฟเวอร์: {{throughput}}", + "metricsHopDestSftpWrite": "เซิร์ฟเวอร์ → ปลายทาง (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "เซิร์ฟเวอร์ → ปลายทาง (ภายในเครื่อง): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/tr_TR.json b/plugins/file-manager/locales/translated/tr_TR.json index cf6e4829c..a69bb2d64 100644 --- a/plugins/file-manager/locales/translated/tr_TR.json +++ b/plugins/file-manager/locales/translated/tr_TR.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Dosya yöneticisini kullanın.", + "description": "SFTP üzerinden dosyalara göz atın, düzenleyin ve aktarın." } }, "settings": { "host": { "enable": { "label": "Dosya Yöneticisini Etkinleştir", - "description": "Browse and edit files on this host over SFTP." + "description": "Bu sunucudaki dosyaları SFTP üzerinden tarayın ve düzenleyin." }, "defaultPath": { "label": "Varsayılan Yol" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Eşzamanlı Dosya Aktarımları", + "description": "Yan yana yerel/uzaktan yönetici tarafından aynı anda yüklenen veya indirilen dosya sayısı. Sunucunuz SFTP kanallarını sınırlandırıyorsa bu değeri düşürün." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Dosyaları çöp kutusuna taşımadan önce onaylayın.", + "description": "Uzak dosyaları çöp kutusuna taşımadan önce izin isteyin. Kalıcı silme işlemi de onay gerektirir." } } }, @@ -72,14 +72,14 @@ "rename": "Yeniden Adlandır", "uploading": "Yükleniyor...", "uploadingFile": "{{name}} yükleniyor...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "{{name}}yükleniyor : {{percent}}% ( {{total}}'ün {{chunk}} kısmı)", "fileName": "Dosya Adı", "folderName": "Klasör Adı", "fileUploadedSuccessfully": "\"{{name}}\" dosyası başarıyla yüklendi.", "failedToUploadFile": "Dosya yüklenemedi.", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "{{count}} dosya yükleniyor...", + "uploadedFolderFiles": "{{count}} dosya başarıyla yüklendi", + "uploadedFolderPartial": "{{uploaded}} dosya yüklendi, {{failed}} başarısız oldu", "fileDownloadedSuccessfully": "\"{{name}}\" dosyası başarıyla indirildi.", "failedToDownloadFile": "Dosya indirilemedi.", "fileCreatedSuccessfully": "\"{{name}}\" dosyası başarıyla oluşturuldu.", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Sudo işlemi başarısız", "sudoAuthFailed": "Sudo kimlik doğrulaması başarısız", "dragFilesToUpload": "Yüklemek için dosyaları buraya bırakın", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Yüklemek için sürükle bırak özelliğini kullanın.", + "dropToDownloadHere": "İndirmek için buraya tıklayın", "localFiles": "Yerel", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Yerel dosyaları göster (bölünmüş görünüm)", + "hideLocalFiles": "Yerel dosyaları gizle", + "localHome": "Ana klasör", + "localPathPlaceholder": "Yerel klasör yolu", + "localShowHidden": "Gizli dosyaları göster", + "localHideHidden": "Gizli dosyaları gizle", + "localRevealInFileManager": "Sistem dosya yöneticisinde göster", + "localCannotOpenFolder": "Klasör açılamıyor.", "localItemCount": "{{count}} öğe", "localSelectedCount": "{{count}} seçili", "back": "Geri", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "İleri", + "up": "Yukarı", + "kind": "Tür", + "localUploadingProgress": "{{total}}'ten {{current}} yükleniyor", + "localDownloadingProgress": "{{total}}'ten {{current}} indiriliyor", + "localTransferInFlight": "{{count}} hemen", + "localPreparingDownload": "İndirme işlemi hazırlanıyor...", "localTransferCancelled": "Aktarım iptal edildi", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "Aktarılacak bir şey yok.", + "localUploadComplete": "{{count}} dosya yüklendi", + "localUploadFailed": "Yükleme başarısız oldu", + "localUploadPartial": "{{done}} dosya yüklendi, {{failed}} başarısız oldu", + "localDownloadComplete": "{{count}} dosya indirildi", "localDownloadFailed": "İndirme başarısız oldu", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "{{done}} dosya indirildi, {{failed}} başarısız oldu", + "localReplaceExistingPrompt": "Bu klasörde zaten {{count}} öğe mevcut. Bunların yerine yenilerini mi koymak istiyorsunuz?", "localReplace": "Değiştir", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "Atlamak", + "localSkippedExisting": "{{count}} mevcut öğe atlandı", + "localUnsafeNamesSkipped": "Bu bilgisayarda adları kullanılamayan {{count}} öğe atlandı.", "localOpen": "Aç", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "Klasörü aç", + "localUploadToRemote": "Sunucuya yükle", + "localUploadToRemoteMany": "Sunucuya {{count}} öğe yükle", + "localMoveToTrash": "Çöp Kutusuna Taşı", + "localMoveToTrashMany": "{{count}} öğeyi Çöp Kutusuna Taşı", + "localTrashConfirmSingle": "\"{{name}}\" öğesini Çöp Kutusuna taşı?", + "localTrashConfirmFolder": "\"{{name}}\" klasörünü ve tüm içeriğini Çöp Kutusu'na taşı?", + "localTrashConfirmMany": "{{count}} öğeyi Çöp Kutusuna taşı?", + "localTrashed": "{{count}} öğe Çöp Kutusu'na taşındı", + "localTrashFailed": "Çöp kutusuna taşınamadı", + "localRenameFailed": "Yeniden adlandırma başarısız oldu.", + "localCreateFailed": "Öğe oluşturulamadı.", + "goToParentFolder": "Üst klasöre git", + "resizeSidebar": "Kenar çubuğunu yeniden boyutlandırmak için sürükleyin (sıfırlamak için çift tıklayın)", + "resizeLocalPane": "Yerel bölmeyi yeniden boyutlandırmak için sürükleyin (sıfırlamak için çift tıklayın).", "columns": "Sütunlar", - "columnsHint": "Right-click to choose columns", + "columnsHint": "Sütunları seçmek için sağ tıklayın.", "emptyFolder": "Bu klasör boş", "searchFiles": "Dosya ara...", "upload": "Yükle", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "{{count}} öğeyi kalıcı olarak silmek istediğinize emin misiniz? Bu, klasörleri ve içeriklerini de kapsar.", "confirmDeleteFolder": "\"{{name}}\" klasörünü ve tüm içeriğini kalıcı olarak silmek istediğinize emin misiniz?", "permanentDeleteWarning": "Bu işlem geri alınamaz. Öğe(ler) sunucudan kalıcı olarak silinecek.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "Öğeler Termix Çöp Kutusu'na taşınacak ve saklama süresi dolmadan önce geri yüklenebilecektir.", + "itemsMovedToTrash": "{{count}} öğe Çöp Kutusuna taşındı", + "trash": "Çöp", + "trashDescription": "Silinen öğeler bu sunucuda {{days}} gün boyunca saklanır.", + "trashLoadFailed": "Çöp kutusu yüklenemedi.", + "trashEmpty": "Çöp kutusu boş.", "trashRestore": "Geri Yükle", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "Geri Yüklendi {{name}}", + "trashRestoreFailed": "Öğeyi geri yükleme başarısız oldu. Orijinal yol zaten mevcut olabilir.", + "trashDeletePermanently": "Kalıcı olarak sil", + "trashDeleteConfirm": "{{name}}öğesini kalıcı olarak silmek istiyor musunuz? Bu işlem geri alınamaz.", + "trashPermanentlyDeleted": "Kalıcı olarak silindi {{name}}", + "trashDeleteFailed": "Öğeyi kalıcı olarak silme işlemi başarısız oldu.", + "trashEmptyAction": "Çöpü Boşaltın", + "trashEmptyConfirm": "Çöp kutusundaki tüm öğeleri kalıcı olarak silmek mi istiyorsunuz? Bu işlem geri alınamaz.", + "trashEmptied": "Çöp boşaltıldı.", + "trashRetention": "Otomatik temizleme süresi (gün)", + "trashRetentionSaved": "Çöp saklama süresi güncellendi", + "trashRetentionFailed": "Çöp kutusu saklama süresi güncellenemedi.", + "trashUnavailableConfirm": "Bu öğe Çöp Kutusu'na taşınamaz, genellikle başka bir dosya sisteminde olduğu veya yükseltilmiş izinler gerektirdiği içindir. Bunun yerine kalıcı olarak silin.", "recent": "Son Kullanılanlar", "pinned": "Sabitlenmiş", "folderShortcuts": "Klasör Kısayolları", @@ -303,7 +303,7 @@ "operationCompleted": "{{count}} öğe {{operation}}", "downloadFileSuccess": "{{name}} dosyası başarıyla indirildi", "downloadFileFailed": "İndirme başarısız oldu", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "{{name}}… indiriliyor", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "{{name}} konumuna taşı", "diffCompareWith": "{{name}} ile diff karşılaştır", @@ -329,7 +329,7 @@ "connecting": "Bağlanıyor...", "connectedSuccessfully": "Bağlantı başarıyla kuruldu", "totpVerificationFailed": "TOTP doğrulaması başarısız oldu", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Giriş başarısız oldu. Lütfen tekrar deneyin.", "authenticationFailed": "Kimlik doğrulama başarısız oldu", "incorrectPassphrase": "Yanlış parola. Lütfen tekrar deneyin.", "verificationCodePrompt": "Doğrulama kodu:", @@ -361,73 +361,73 @@ "used": "Kullanılan", "of": " / ", "toggleSidebar": "Kenar Çubuğunu Göster/Gizle", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "Kompakt düzeni kullanın.", + "comfortableLayout": "Rahat bir düzen kullanın.", "cannotLoadPdf": "PDF yüklenemiyor", "pdfLoadError": "Bu PDF dosyası yüklenirken bir hata oluştu.", "loadingPdf": "PDF yükleniyor...", "loadingPage": "Sayfa yükleniyor...", "cancel": "İptal", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", + "copiedItems_one": "Kopyalanan {{count}} öğe", + "copiedItems_other": "Kopyalanan {{count}} öğe", + "deleteCopiedFileFailed": "{{name}}kopyası silinemedi : {{error}}", + "dragMovedItems_one": "{{count}} öğesi {{target}} konumuna taşındı.", + "dragMovedItems_other": "{{count}} öğe {{target}} konumuna taşındı.", + "moveBackFileFailed": "{{name}} geri taşınamadı: {{error}}", "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "dragToDesktop": "{{name}} dosyasını masaüstüne sürükleme", + "dragFilesToDesktop": "{{count}} dosyaları masaüstüne sürükleme", + "folderDragUnsupported": "Klasörleri masaüstüne sürükleme özelliği henüz desteklenmiyor.", + "saveToDesktopFailed": "Kaydetme başarısız: {{error}}", + "dragFailedDetail": "Sürükleme başarısız oldu: {{error}}", + "videoUnsupported": "Tarayıcınız bu video formatını oynatamıyor.", + "downloadToPlay": "Başka yerde oynamak için indirin", + "cannotPreviewType": "Bu dosya türünün önizlemesi yapılamıyor.", + "cannotPreviewTypeHint": "Bu dosya türünün önizlemesi yok. Başka bir uygulamada açmak için indirin." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "İki SSH sunucusu arasında dosya aktarımı.", + "sourceServer": "Kaynak Sunucusu", + "destinationServer": "Hedef Sunucu", + "selectHost": "Sunucu seçin", "noHostSelected": "Sunucu seçilmedi", "move": "Taşı", "copy": "Kopyala", "upload": "Yükle", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} seçilen öğe", + "itemsSelected_other": "{{count}} öğe seçildi", "ready": "Hazır", "loadingHosts": "Hostlar yükleniyor...", "name": "Ad", "modified": "Değiştirilme", "size": "Boyut", - "noFiles": "No files", + "noFiles": "Dosya yok", "open": "Aç", - "up": "Up", + "up": "Yukarı", "refresh": "Yenile", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Hedef Dizine Kopyala", "rename": "Yeniden adlandır", "delete": "Sil", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", + "editPermissions": "Düzenleme İzinleri", + "createNewFolder": "Yeni Klasör Oluştur", + "deleteSelectedItems": "Seçili Öğeleri Sil", "deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm_other": "Delete {{count}} selected items?", "cancel": "İptal", "save": "Kaydet", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "Klasör oluşturuldu", + "itemRenamed": "Öğe yeniden adlandırıldı.", "actionFailed": "Eylem başarısız oldu", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} öğe silindi", + "itemsDeleted_other": "{{count}} öğe silindi", + "deleteFailed": "Silme işlemi başarısız oldu.", + "permissionsUpdated": "İzinler güncellendi", + "noRemoteSessionConnected": "Bağlantı kurulmuş uzaktan oturum yok.", + "failedToListFiles": "Dosyaları listeleme başarısız oldu.", + "failedToRefresh": "Yenileme başarısız oldu", + "destinationInsideSource": "Hedef, seçilen kaynak yolunun içinde olamaz.", + "sameHostNoOp": "Kaynak ve hedef aynı klasördedir." }, "hosts": { "fileManager": "Dosya Yöneticisi", @@ -438,8 +438,8 @@ "loadingHost": "Host yükleniyor..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Dosya yöneticisi", + "feature_files_desc": "Uygulamadan çıkmadan SFTP üzerinden dosyalara göz atın, yükleyin, indirin ve düzenleyin." }, "terminal": { "runTitle": "Çalıştırılıyor: {{command}} - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "Hedef yol", "destMustBeDirectory": "Çoklu öğe aktarımları için hedef bir dizin olmalıdır", "goUp": "Yukarı", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "Kimlik doğrulaması gereklidir. Öncelikle bu sunucuda Dosya Yöneticisini açın.", "hostConnecting": "Bağlanıyor…", "hostConnectionFailed": "Bağlantı başarısız", "hostDisconnected": "Bağlı değil", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "Dosya bazında SFTP seçtiniz.", "user_tar": "Tar arşivi seçtiniz.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "Tar, sunuculardan birinde veya her ikisinde de mevcut olmadığından, bunun yerine dosya bazlı SFTP kullanılacaktır.", + "windows_host": "Windows işletim sistemli bir sunucu söz konusu olduğundan tar kullanılmamıştır.", + "auto_multi_large": "Otomatik: Sıkıştırılabilir veriler içeren büyük bir dosya ({{largestSize}}) dahil olmak üzere birden fazla dosya. Tar bunları tek bir aktarımda birleştirir.", + "auto_single_large_in_archive": "Otomatik: Bu kümede büyük bir dosya ({{largestSize}}) var, bu yüzden dosya başına SFTP.", + "auto_many_incompressible": "Otomatik: Çoğunlukla sıkıştırılamayan veriler, bu nedenle dosya bazında SFTP.", + "auto_many_files": "Otomatik: birden fazla dosya ({{fileCount}}), tar dosya başına ek yükü azaltır.", "auto_default": "Otomatik: bu küme için dosya bazında SFTP." }, "methodTar": "Tar arşivi", @@ -498,11 +498,11 @@ "metricsCompress": "Kaynakta sıkıştırma: {{duration}}", "metricsExtract": "Hedefte çıkarma: {{duration}}", "metricsPrepare": "Hedefi hazırla: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "Rota sondası: doğrudan {{direct}}, röle {{relay}}", "metricsSourceDelete": "Kaynaktan silme: {{duration}}", "metricsTotal": "Toplam: {{duration}}", "metricsTransfer": "Uçtan uca: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "SHA-256 ile doğrulandı: {{duration}}", "moveFolderToHost": "Klasörü ana bilgisayara taşı…", "moveItemsToHost": "{{count}} öğeyi ana bilgisayara taşı…", "moveToHost": "Sunucuya taşı…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "Büyük dosyalar 256 MB'lık parçalara bölünür. Çoklu yollar, daha yüksek toplam aktarım hızı için ayrı bağlantılar kullanır (birden fazla aktarım başlatmak gibi).", "parallelSegmentsLabel": "Paralel aktarım yolları", "parallelSegmentsOption": "{{count}} yol", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "En hızlı aktarma rotasını seçme…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "İptal", "progressCancelling": "İptal ediliyor…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} toplam ({{lanes}} yol)", "progressTransferring": "Veri aktarılıyor…", "progressTransferringItems": "Dosyalar aktarılıyor ({{current}} / {{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "Dosya bütünlüğünün doğrulanması…", "recentDestinations": "Son hedefler", "resumedHint": "Başka bir pencerede başlatılan aktif bir aktarıma yeniden bağlanıldı.", "retryTransfer": "Yeniden dene", diff --git a/plugins/file-manager/locales/translated/uk_UA.json b/plugins/file-manager/locales/translated/uk_UA.json index dc86761ce..a656b8f25 100644 --- a/plugins/file-manager/locales/translated/uk_UA.json +++ b/plugins/file-manager/locales/translated/uk_UA.json @@ -1,543 +1,543 @@ { "nav": { - "files": "Files", + "files": "Файли", "sftp": "SFTP", - "openFileManager": "Open File Manager" + "openFileManager": "Відкрити файловий менеджер" }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Використовуйте файловий менеджер", + "description": "Переглядайте, редагуйте та передайте файли через SFTP." } }, "settings": { "host": { "enable": { - "label": "Enable File Manager", - "description": "Browse and edit files on this host over SFTP." + "label": "Увімкнути файловий менеджер", + "description": "Переглядайте та редагуйте файли на цьому хості через SFTP." }, "defaultPath": { - "label": "Default Path" + "label": "Шлях за замовчуванням" }, "scpLegacy": { - "label": "SCP Legacy Mode" + "label": "Застарілий режим SCP" } }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Одночасна передача файлів", + "description": "Скільки файлів одночасно завантажує або вивантажує локальний/віддалений менеджер. Зменште це значення, якщо ваш сервер обмежує кількість каналів SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Підтвердити перед переміщенням файлів у кошик", + "description": "Запитувати перед переміщенням віддалених файлів до кошика. Для остаточного видалення все одно потрібне підтвердження." } } }, "hostCapability": { - "label": "File Manager" + "label": "Файловий менеджер" }, "fileManager": { - "noHostSelected": "No host selected", - "initializingEditor": "Initializing editor...", - "file": "File", - "folder": "Folder", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "uploading": "Uploading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", - "fileName": "File Name", - "folderName": "Folder Name", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "sudoPasswordRequired": "Administrator Password Required", - "enterSudoPassword": "Enter sudo password to continue this operation", - "sudoPassword": "Sudo password", - "sudoOperationFailed": "Sudo operation failed", - "sudoAuthFailed": "Sudo authentication failed", - "dragFilesToUpload": "Drop files here to upload", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", - "localFiles": "Local", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", - "localItemCount": "{{count}} items", - "localSelectedCount": "{{count}} selected", - "back": "Back", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", - "localTransferCancelled": "Transfer cancelled", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", - "localDownloadFailed": "Download failed", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", - "localReplace": "Replace", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", - "localOpen": "Open", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", - "columns": "Columns", - "columnsHint": "Right-click to choose columns", - "emptyFolder": "This folder is empty", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "copyFolderLink": "Copy Link to Folder", - "copyCurrentFolderLink": "Copy Link to Current Folder", - "folderLinkCopied": "Folder link copied to clipboard", - "failedToCopyFolderLink": "Failed to copy folder link", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "openExternalEditor": "Open externally", - "chooseExternalEditor": "Choose external editor", - "externalEditorSelected": "External editor selected", - "externalEditorDesktopOnly": "External editor is only available in the desktop app", - "externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", - "failedToOpenExternalEditor": "Failed to open external editor", - "failedToSelectExternalEditor": "Failed to select external editor", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "permissionDenied": "Permission denied", - "serverError": "Server Error", - "fileSavedSuccessfully": "File saved successfully", - "failedToSaveFile": "Failed to save file", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", - "trashRestore": "Restore", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "confirm": "Confirm", - "find": "Find...", - "replace": "Replace", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "downloadingFile": "Downloading {{name}}…", + "noHostSelected": "Хост не вибрано", + "initializingEditor": "Ініціалізація редактора...", + "file": "Файл", + "folder": "Папка", + "uploadFile": "Завантажити файл", + "downloadFile": "Завантажити", + "extractArchive": "Витягти архів", + "extractingArchive": "Видобування {{name}}...", + "archiveExtractedSuccessfully": "{{name}} успішно видобуто", + "extractFailed": "Не вдалося витягти", + "compressFile": "Стиснути файл", + "compressFiles": "Стиснути файли", + "compressFilesDesc": "Стиснути {{count}} елементів в архів", + "archiveName": "Назва архіву", + "enterArchiveName": "Введіть назву архіву...", + "compressionFormat": "Формат стиснення", + "selectedFiles": "Вибрані файли", + "andMoreFiles": "та {{count}} більше...", + "compress": "Стиснути", + "compressingFiles": "Стискання {{count}} елементів у {{name}}...", + "filesCompressedSuccessfully": "{{name}} успішно створено", + "compressFailed": "Стиснення не вдалося", + "edit": "Редагувати", + "preview": "Попередній перегляд", + "previous": "Попередній", + "next": "Далі", + "pageXOfY": "Сторінка {{current}} з {{total}}", + "zoomOut": "Зменшити масштаб", + "zoomIn": "Збільшити масштаб", + "newFile": "Новий файл", + "newFolder": "Нова папка", + "rename": "Перейменувати", + "uploading": "Завантаження...", + "uploadingFile": "Завантаження {{name}}...", + "uploadingChunk": "Завантаження {{name}}: {{percent}}% (частина {{chunk}} з {{total}})", + "fileName": "Ім'я файлу", + "folderName": "Назва папки", + "fileUploadedSuccessfully": "Файл «{{name}}» успішно завантажено", + "failedToUploadFile": "Не вдалося завантажити файл", + "uploadingFolderFiles": "Завантаження {{count}} файлів...", + "uploadedFolderFiles": "Успішно завантажено {{count}} файл(ів)", + "uploadedFolderPartial": "Завантажено {{uploaded}} файл(ів), {{failed}} не вдалося", + "fileDownloadedSuccessfully": "Файл «{{name}}» успішно завантажено", + "failedToDownloadFile": "Не вдалося завантажити файл", + "fileCreatedSuccessfully": "Файл «{{name}}» успішно створено", + "folderCreatedSuccessfully": "Папка «{{name}}» успішно створена", + "failedToCreateItem": "Не вдалося створити елемент", + "operationFailed": "Операція {{operation}} не вдалася для {{name}}: {{error}}", + "failedToResolveSymlink": "Не вдалося вирішити проблему з символічним посиланням", + "itemsDeletedSuccessfully": "{{count}} елементів успішно видалено", + "failedToDeleteItems": "Не вдалося видалити елементи", + "sudoPasswordRequired": "Потрібен пароль адміністратора", + "enterSudoPassword": "Введіть пароль sudo, щоб продовжити цю операцію", + "sudoPassword": "Пароль Sudo", + "sudoOperationFailed": "Операція Sudo не вдалася", + "sudoAuthFailed": "Не вдалося виконати автентифікацію Sudo", + "dragFilesToUpload": "Перетягніть сюди файли для завантаження", + "dropToUploadHere": "Перетягніть сюди, щоб завантажити", + "dropToDownloadHere": "Перетягніть сюди, щоб завантажити", + "localFiles": "Місцевий", + "showLocalFiles": "Показати локальні файли (розділений вигляд)", + "hideLocalFiles": "Приховати локальні файли", + "localHome": "Домашня папка", + "localPathPlaceholder": "Шлях до локальної папки", + "localShowHidden": "Показати приховані файли", + "localHideHidden": "Приховати приховані файли", + "localRevealInFileManager": "Показати в системному файловому менеджері", + "localCannotOpenFolder": "Не вдається відкрити папку", + "localItemCount": "{{count}} елементів", + "localSelectedCount": "{{count}} вибрано", + "back": "Назад", + "forward": "Вперед", + "up": "Вгору", + "kind": "Вид", + "localUploadingProgress": "Завантаження {{current}} з {{total}}", + "localDownloadingProgress": "Завантаження {{current}} з {{total}}", + "localTransferInFlight": "{{count}} одразу", + "localPreparingDownload": "Підготовка завантаження...", + "localTransferCancelled": "Переказ скасовано", + "localNothingToTransfer": "Нічого для перенесення", + "localUploadComplete": "Завантажено {{count}} файл(ів)", + "localUploadFailed": "Не вдалося завантажити", + "localUploadPartial": "Завантажено {{done}} файл(ів), {{failed}} не вдалося", + "localDownloadComplete": "Завантажено {{count}} файл(ів)", + "localDownloadFailed": "Завантаження не вдалося", + "localDownloadPartial": "Завантажено {{done}} файл(ів), {{failed}} не вдалося", + "localReplaceExistingPrompt": "{{count}} елементів вже є в цій папці. Замінити їх?", + "localReplace": "Замінити", + "localSkipExisting": "Пропустити", + "localSkippedExisting": "Пропущено {{count}} існуючих елементів", + "localUnsafeNamesSkipped": "Пропущено {{count}} елементів, назви яких не можна використовувати на цьому комп’ютері", + "localOpen": "ВІДЧИНЕНО", + "localOpenFolder": "Відкрити папку", + "localUploadToRemote": "Завантажити на сервер", + "localUploadToRemoteMany": "Завантажити {{count}} елементів на сервер", + "localMoveToTrash": "Перемістити в кошик", + "localMoveToTrashMany": "Перемістити {{count}} елементів до кошика", + "localTrashConfirmSingle": "Перемістити \"{{name}}\" до кошика?", + "localTrashConfirmFolder": "Перемістити папку «{{name}}» та весь її вміст до кошика?", + "localTrashConfirmMany": "Перемістити {{count}} елементів до кошика?", + "localTrashed": "Переміщено {{count}} елементів до кошика", + "localTrashFailed": "Не вдалося перемістити в кошик", + "localRenameFailed": "Не вдалося перейменувати", + "localCreateFailed": "Не вдалося створити елемент", + "goToParentFolder": "Перейти до батьківської папки", + "resizeSidebar": "Перетягніть, щоб змінити розмір бічної панелі (двічі клацніть, щоб скинути налаштування)", + "resizeLocalPane": "Перетягніть, щоб змінити розмір локальної панелі (двічі клацніть, щоб скинути налаштування)", + "columns": "Колонки", + "columnsHint": "Клацніть правою кнопкою миші, щоб вибрати стовпці", + "emptyFolder": "Ця папка порожня", + "searchFiles": "Пошук файлів...", + "upload": "Завантажити", + "selectHostToStart": "Виберіть хост, щоб розпочати керування файлами", + "sshRequiredForFileManager": "Файловий менеджер вимагає SSH. На цьому хості SSH не ввімкнено.", + "failedToConnect": "Не вдалося підключитися до SSH", + "failedToLoadDirectory": "Не вдалося завантажити каталог", + "noSSHConnection": "SSH-з'єднання недоступне", + "copy": "Копіювати", + "cut": "Вирізати", + "paste": "Вставити", + "copyPath": "Копіювати шлях", + "copyPaths": "Копіювати шляхи", + "delete": "Видалити", + "properties": "Властивості", + "refresh": "Оновити", + "downloadFiles": "Завантажити {{count}} файлів у браузер", + "copyFiles": "Копіювати {{count}} елементів", + "cutFiles": "Вирізати {{count}} елементів", + "deleteFiles": "Видалити {{count}} елементів", + "filesCopiedToClipboard": "{{count}} елементів, скопійованих у буфер обміну", + "filesCutToClipboard": "{{count}} елементів, вирізаних у буфер обміну", + "pathCopiedToClipboard": "Шлях скопійовано в буфер обміну", + "pathsCopiedToClipboard": "{{count}} шляхів скопійовано в буфер обміну", + "failedToCopyPath": "Не вдалося скопіювати шлях до буфера обміну", + "copyFolderLink": "Копіювати посилання до папки", + "copyCurrentFolderLink": "Копіювати посилання до поточної папки", + "folderLinkCopied": "Посилання на папку скопійовано в буфер обміну", + "failedToCopyFolderLink": "Не вдалося скопіювати посилання на папку", + "movedItems": "Переміщено {{count}} елементів", + "failedToDeleteItem": "Не вдалося видалити елемент", + "itemRenamedSuccessfully": "{{type}} успішно перейменовано", + "failedToRenameItem": "Не вдалося перейменувати елемент", + "download": "Завантажити", + "openExternalEditor": "Відкрити зовні", + "chooseExternalEditor": "Виберіть зовнішній редактор", + "externalEditorSelected": "Вибрано зовнішнього редактора", + "externalEditorDesktopOnly": "Зовнішній редактор доступний лише в настільній програмі", + "externalEditorOpened": "Відкрито в зовнішньому редакторі. Збереження там завантажить зміни назад на сервер.", + "failedToOpenExternalEditor": "Не вдалося відкрити зовнішній редактор", + "failedToSelectExternalEditor": "Не вдалося вибрати зовнішній редактор", + "permissions": "Дозволи", + "size": "Розмір", + "modified": "Змінено", + "path": "Шлях", + "confirmDelete": "Ви впевнені, що хочете видалити {{name}}?", + "permissionDenied": "Дозвіл відхилено", + "serverError": "Помилка сервера", + "fileSavedSuccessfully": "Файл успішно збережено", + "failedToSaveFile": "Не вдалося зберегти файл", + "confirmDeleteSingleItem": "Ви впевнені, що хочете остаточно видалити \"{{name}}\"?", + "confirmDeleteMultipleItems": "Ви впевнені, що хочете остаточно видалити {{count}} елементів?", + "confirmDeleteMultipleItemsWithFolders": "Ви впевнені, що хочете остаточно видалити {{count}} елементів? Це стосується папок та їхнього вмісту.", + "confirmDeleteFolder": "Ви впевнені, що хочете остаточно видалити папку «{{name}}» та весь її вміст?", + "permanentDeleteWarning": "Цю дію неможливо скасувати. Елемент(и) буде назавжди видалено із сервера.", + "moveToTrashWarning": "Елемент(и) буде переміщено до кошика Termix і може бути відновлено до закінчення терміну зберігання.", + "itemsMovedToTrash": "{{count}} елементів переміщено до кошика", + "trash": "Сміття", + "trashDescription": "Видалені елементи зберігаються на цьому хості протягом {{days}} днів.", + "trashLoadFailed": "Не вдалося завантажити кошик", + "trashEmpty": "Кошик порожній", + "trashRestore": "Відновити", + "trashRestored": "Відновлено {{name}}", + "trashRestoreFailed": "Не вдалося відновити елемент. Можливо, початковий шлях уже існує.", + "trashDeletePermanently": "Видалити назавжди", + "trashDeleteConfirm": "Видалити {{name}}назавжди? Цю дію не можна скасувати.", + "trashPermanentlyDeleted": "Видалено назавжди {{name}}", + "trashDeleteFailed": "Не вдалося остаточно видалити елемент", + "trashEmptyAction": "Очистити кошик", + "trashEmptyConfirm": "Видалити всі елементи з кошика назавжди? Цю дію не можна скасувати.", + "trashEmptied": "Кошик очищено", + "trashRetention": "Автоматичне очищення через (дні)", + "trashRetentionSaved": "Збереження кошика оновлено", + "trashRetentionFailed": "Не вдалося оновити налаштування зберігання в кошику", + "trashUnavailableConfirm": "Цей елемент не можна перемістити до кошика, зазвичай тому, що він знаходиться в іншій файловій системі або потребує підвищених прав. Видалити його назавжди?", + "recent": "Нещодавні", + "pinned": "Закріплено", + "folderShortcuts": "Ярлики папок", + "failedToReconnectSSH": "Не вдалося відновити сеанс SSH", + "openTerminalHere": "Відкрити термінал тут", + "run": "Бігти", + "openTerminalInFolder": "Відкрити термінал у цій папці", + "openTerminalInFileLocation": "Відкрити термінал у місці розташування файлу", + "runningFile": "Біг – {{file}}", + "onlyRunExecutableFiles": "Можна запускати лише виконувані файли", + "directories": "Довідники", + "removedFromRecentFiles": "Видалено \"{{name}}\" з останніх файлів", + "removeFailed": "Видалити не вдалося", + "unpinnedSuccessfully": "Відкріплено \"{{name}}\" успішно", + "unpinFailed": "Не вдалося відкріпити", + "removedShortcut": "Видалено ярлик «{{name}}»", + "removeShortcutFailed": "Не вдалося видалити ярлик", + "clearedAllRecentFiles": "Очищено всі нещодавні файли", + "clearFailed": "Очистити не вдалося", + "removeFromRecentFiles": "Видалити з останніх файлів", + "clearAllRecentFiles": "Очистити всі нещодавні файли", + "unpinFile": "Відкріпити файл", + "removeShortcut": "Видалити ярлик", + "pinFile": "Закріпити файл", + "addToShortcuts": "Додати до ярликів", + "pasteFailed": "Вставити не вдалося", + "noUndoableActions": "Немає дій, які можна скасувати", + "undoCopySuccess": "Скасовано копіювання: Видалено {{count}} скопійованих файлів", + "undoCopyFailedDelete": "Не вдалося скасувати: не вдалося видалити жодного скопійованого файлу", + "undoCopyFailedNoInfo": "Не вдалося скасувати: не вдалося знайти інформацію про скопійований файл", + "undoMoveSuccess": "Скасовано операцію переміщення: {{count}} файлів переміщено назад у початкове розташування", + "undoMoveFailedMove": "Не вдалося скасувати: не вдалося перемістити жодного файлу назад", + "undoMoveFailedNoInfo": "Не вдалося скасувати: не вдалося знайти інформацію про переміщений файл", + "undoDeleteNotSupported": "Операцію видалення неможливо скасувати: файли остаточно видалено із сервера", + "undoTypeNotSupported": "Непідтримуваний тип операції скасування", + "undoOperationFailed": "Не вдалося скасувати операцію", + "unknownError": "Невідома помилка", + "confirm": "Підтвердити", + "find": "Знайти...", + "replace": "Замінити", + "downloadInstead": "Завантажити замість цього", + "keyboardShortcuts": "Комбінації клавіш", + "searchAndReplace": "Пошук і заміна", + "editing": "Редагування", + "search": "Пошук", + "findNext": "Знайти далі", + "findPrevious": "Знайти попередній", + "save": "Зберегти", + "selectAll": "Вибрати все", + "undo": "Скасувати", + "redo": "Повторити", + "moveLineUp": "Перемістити лінію вгору", + "moveLineDown": "Перемістити рядок вниз", + "toggleComment": "Перемикач коментарів", + "autoComplete": "Автоматичне завершення", + "imageLoadError": "Не вдалося завантажити зображення", + "startTyping": "Почніть друкувати...", + "unknownSize": "Невідомий розмір", + "fileIsEmpty": "Файл порожній", + "largeFileWarning": "Попередження про великий файл", + "largeFileWarningDesc": "Розмір цього файлу становить {{size}} , що може спричинити проблеми з продуктивністю під час відкриття його як тексту.", + "fileNotFoundAndRemoved": "Файл «{{name}}» не знайдено та видалено з нещодавніх/закріплених файлів", + "failedToLoadFile": "Не вдалося завантажити файл: {{error}}", + "serverErrorOccurred": "Сталася помилка сервера. Будь ласка, спробуйте пізніше.", + "autoSaveFailed": "Не вдалося автоматично зберегти", + "fileAutoSaved": "Файл автоматично збережено", + "moveFileFailed": "Не вдалося перемістити {{name}}", + "moveOperationFailed": "Не вдалося перемістити", + "canOnlyCompareFiles": "Можна порівняти лише два файли", + "comparingFiles": "Порівняння файлів: {{file1}} та {{file2}}", + "dragFailed": "Не вдалося перетягнути", + "filePinnedSuccessfully": "Файл «{{name}}» успішно закріплено", + "pinFileFailed": "Не вдалося закріпити файл", + "fileUnpinnedSuccessfully": "Файл «{{name}}» успішно відкріплено", + "unpinFileFailed": "Не вдалося відкріпити файл", + "shortcutAddedSuccessfully": "Ярлик папки «{{name}}» успішно додано", + "addShortcutFailed": "Не вдалося додати ярлик", + "operationCompletedSuccessfully": "{{operation}} {{count}} елементів успішно", + "operationCompleted": "{{operation}} {{count}} елементів", + "downloadFileSuccess": "Файл {{name}} успішно завантажено", + "downloadFileFailed": "Завантаження не вдалося", + "downloadingFile": "Завантаження {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "decreaseFontSize": "Decrease font size", - "increaseFontSize": "Increase font size", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connecting": "Connecting...", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "browserSignInFailed": "Sign-in failed. Please try again.", - "authenticationFailed": "Authentication failed", - "incorrectPassphrase": "Incorrect passphrase. Please try again.", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "currentPermissions": "Current Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions", - "name": "Name", - "sortByName": "Name", - "sortByDate": "Date Modified", - "sortBySize": "Size", - "ascending": "Ascending", - "descending": "Descending", - "root": "Root", - "new": "New", - "sortBy": "Sort By", - "items": "Items", - "selected": "Selected", - "editor": "Editor", - "octal": "Octal", - "storage": "Storage", - "disk": "Disk", - "used": "Used", - "of": "of", - "toggleSidebar": "Toggle Sidebar", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", - "cannotLoadPdf": "Cannot load PDF", - "pdfLoadError": "There was an error loading this PDF file.", - "loadingPdf": "Loading PDF...", - "loadingPage": "Loading page...", - "cancel": "Cancel", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "moveTo": "Перейти до {{name}}", + "diffCompareWith": "Різниця у порівнянні з {{name}}", + "dragOutsideToDownload": "Перетягніть за межі вікна, щоб завантажити ({{count}} файлів)", + "newFolderDefault": "НоваПапка", + "newFileDefault": "НовийФайл.txt", + "successfullyMovedItems": "Елементів {{count}} успішно переміщено до {{target}}", + "move": "Перемістити", + "searchInFile": "Пошук у файлі (Ctrl+F)", + "showKeyboardShortcuts": "Показати комбінації клавіш", + "decreaseFontSize": "Зменшити розмір шрифту", + "increaseFontSize": "Збільшити розмір шрифту", + "startWritingMarkdown": "Почніть писати свій контент у форматі Markdown...", + "loadingFileComparison": "Завантаження порівняння файлів...", + "reload": "Перезавантажити", + "compare": "Порівняти", + "sideBySide": "Пліч-о-пліч", + "inline": "Вбудований", + "fileComparison": "Порівняння файлів: {{file1}} проти {{file2}}", + "fileTooLarge": "Файл занадто великий: {{error}}", + "sshConnectionFailed": "Помилка SSH-з’єднання. Будь ласка, перевірте ваше з’єднання з {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Не вдалося завантажити файл: {{error}}", + "connecting": "Підключення...", + "connectedSuccessfully": "Підключено успішно", + "totpVerificationFailed": "Не вдалося перевірити TOTP", + "browserSignInFailed": "Не вдалося ввійти. Спробуйте ще раз.", + "authenticationFailed": "Помилка автентифікації", + "incorrectPassphrase": "Неправильна парольна фраза. Спробуйте ще раз.", + "verificationCodePrompt": "Код підтвердження:", + "changePermissions": "Змінити дозволи", + "currentPermissions": "Поточні дозволи", + "owner": "Власник", + "group": "Група", + "others": "Інші", + "read": "Читати", + "write": "Написати", + "execute": "Виконати", + "permissionsChangedSuccessfully": "Дозволи успішно змінено", + "failedToChangePermissions": "Не вдалося змінити дозволи", + "name": "Ім'я", + "sortByName": "Ім'я", + "sortByDate": "Дата зміни", + "sortBySize": "Розмір", + "ascending": "Зростаючий", + "descending": "Спадання", + "root": "Корінь", + "new": "Новий", + "sortBy": "Сортувати за", + "items": "Елементи", + "selected": "Вибрано", + "editor": "Редактор", + "octal": "Вісімкове", + "storage": "Зберігання", + "disk": "Диск", + "used": "Використано", + "of": "з", + "toggleSidebar": "Перемикання бічної панелі", + "compactLayout": "Використовуйте компактний макет", + "comfortableLayout": "Використовуйте зручний макет", + "cannotLoadPdf": "Не вдається завантажити PDF", + "pdfLoadError": "Під час завантаження цього PDF-файлу сталася помилка.", + "loadingPdf": "Завантаження PDF-файлу...", + "loadingPage": "Завантаження сторінки...", + "cancel": "Скасувати", + "copiedItems_one": "Скопійовано елемент {{count}}", + "copiedItems_other": "Скопійовано {{count}} елементів", + "deleteCopiedFileFailed": "Не вдалося видалити копію {{name}}: {{error}}", + "dragMovedItems_one": "Переміщено елемент {{count}} до {{target}}", + "dragMovedItems_other": "Переміщено {{count}} елементів до {{target}}", + "moveBackFileFailed": "Не вдалося перемістити {{name}} назад: {{error}}", + "terminal": "Термінал: {{host}} ({{path}})", + "dragToDesktop": "Перетягування {{name}} на робочий стіл", + "dragFilesToDesktop": "Перетягування файлів {{count}} на робочий стіл", + "folderDragUnsupported": "Перетягування папок на робочий стіл поки що не підтримується", + "saveToDesktopFailed": "Не вдалося зберегти: {{error}}", + "dragFailedDetail": "Не вдалося перетягнути: {{error}}", + "videoUnsupported": "Ваш браузер не може відтворити цей відеоформат.", + "downloadToPlay": "Завантажте, щоб відтворити деінде", + "cannotPreviewType": "Неможливо переглянути цей тип файлу", + "cannotPreviewTypeHint": "Цей тип файлу не має попереднього перегляду. Завантажте його, щоб відкрити в іншій програмі." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", - "noHostSelected": "No host selected", - "move": "Move", - "copy": "Copy", - "upload": "Upload", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", - "ready": "Ready", - "loadingHosts": "Loading hosts...", - "name": "Name", - "modified": "Modified", - "size": "Size", - "noFiles": "No files", - "open": "Open", - "up": "Up", - "refresh": "Refresh", - "copyToTarget": "Copy to Target Directory", - "rename": "Rename", - "delete": "Delete", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", - "cancel": "Cancel", - "save": "Save", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", - "actionFailed": "Action failed", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "description": "Передача файлів між двома SSH-хостами.", + "sourceServer": "Вихідний сервер", + "destinationServer": "Цільовий сервер", + "selectHost": "Виберіть хоста", + "noHostSelected": "Хост не вибрано", + "move": "Перемістити", + "copy": "Копіювати", + "upload": "Завантажити", + "itemsSelected": "Вибрано елемент {{count}}", + "itemsSelected_other": "Вибрано {{count}} елементів", + "ready": "Готовий", + "loadingHosts": "Завантаження хостів...", + "name": "Ім'я", + "modified": "Змінено", + "size": "Розмір", + "noFiles": "Немає файлів", + "open": "ВІДЧИНЕНО", + "up": "Вгору", + "refresh": "Оновити", + "copyToTarget": "Копіювати до цільового каталогу", + "rename": "Перейменувати", + "delete": "Видалити", + "editPermissions": "Редагувати дозволи", + "createNewFolder": "Створити нову папку", + "deleteSelectedItems": "Видалити вибрані елементи", + "deleteConfirm": "Видалити {{count}} вибраний елемент?", + "deleteConfirm_other": "Видалити {{count}} вибраних елементів?", + "cancel": "Скасувати", + "save": "Зберегти", + "folderCreated": "Папку створено", + "itemRenamed": "Елемент перейменовано", + "actionFailed": "Дія не вдалася", + "itemsDeleted": "{{count}} елемент видалено", + "itemsDeleted_other": "{{count}} елементів видалено", + "deleteFailed": "Видалити не вдалося", + "permissionsUpdated": "Дозволи оновлено", + "noRemoteSessionConnected": "Немає підключеного віддаленого сеансу", + "failedToListFiles": "Не вдалося переглянути файли", + "failedToRefresh": "Не вдалося оновити", + "destinationInsideSource": "Пункт призначення не може бути всередині вибраного вихідного шляху.", + "sameHostNoOp": "Джерело та призначення – це одна й та сама папка." }, "hosts": { - "fileManager": "File Manager", - "fileManagerUrlCopied": "File Manager URL copied", - "copyFileManagerUrlAction": "Copy File Manager URL", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "fileManager": "Файловий менеджер", + "fileManagerUrlCopied": "URL-адресу файлового менеджера скопійовано", + "copyFileManagerUrlAction": "Копіювати URL-адресу файлового менеджера", + "docsLink": "Переглянути документи", + "hostNotFound": "Хост не знайдено", + "loadingHost": "Завантаження хоста..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Файловий менеджер", + "feature_files_desc": "Переглядайте, завантажуйте, вивантажуйте та редагуйте файли через SFTP, не виходячи з програми." }, "terminal": { - "runTitle": "Running {{command}} - {{host}}", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}" + "runTitle": "Запуск {{command}} - {{host}}", + "terminalTitle": "Термінал - {{host}}", + "terminalWithPath": "Термінал - {{host}}:{{path}}" }, "transfer": { - "browseFolders": "Browse destination folders", - "browsePathError": "Could not open this path on the destination host.", - "browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", - "cancel": "Cancel", - "cleanupDestFiles": "Clean up destination", - "cleanupDestFilesError": "Cleanup failed", - "cleanupDestFilesNothing": "Nothing to clean up on the destination", - "cleanupDestFilesPartial": "Some partial files could not be removed", - "cleanupDestFilesSuccess": "Removed partial files from the destination", - "confirmCopy": "Copy", - "confirmMove": "Move", - "copyFolderToHost": "Copy folder to host…", - "copyItemsToHost": "Copy {{count}} items to host…", - "copyToHost": "Copy to host…", - "destinationPath": "Destination path", - "destMustBeDirectory": "Destination must be a directory for multi-item transfers", - "goUp": "Go up", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", - "hostConnecting": "Connecting…", - "hostConnectionFailed": "Connection failed", - "hostDisconnected": "Not connected", - "hostReady": "Ready", - "itemsSummary": "{{count}} items", - "jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", - "methodAuto": "Auto", - "methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", - "methodItemSftp": "Per-file SFTP", - "methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", - "methodItemSftpLimitation": "Each file uses the same SFTP stream as a single-file copy, one after another. Progress is combined across all files, so the bar moves slowly during large files.", - "methodLabel": "Transfer method", - "methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", - "methodPreviewLoading": "Calculating transfer method…", - "methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", - "methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", - "methodPreviewWillUseTar": "Will use: Tar archive", + "browseFolders": "Перегляд папок призначення", + "browsePathError": "Не вдалося відкрити цей шлях на хості призначення.", + "browsePathWillBeCreated": "Цієї папки ще не існує. Вона буде створена, коли розпочнеться передача.", + "cancel": "Скасувати", + "cleanupDestFiles": "Прибирання місця призначення", + "cleanupDestFilesError": "Очищення не вдалося", + "cleanupDestFilesNothing": "Нічого прибирати на місці призначення", + "cleanupDestFilesPartial": "Не вдалося видалити деякі часткові файли", + "cleanupDestFilesSuccess": "Видалено часткові файли з місця призначення", + "confirmCopy": "Копіювати", + "confirmMove": "Перемістити", + "copyFolderToHost": "Копіювати папку на хост…", + "copyItemsToHost": "Копіювати елементи {{count}} для розміщення…", + "copyToHost": "Копіювати на хост…", + "destinationPath": "Шлях призначення", + "destMustBeDirectory": "Для перенесення кількох елементів місцем призначення має бути каталог", + "goUp": "Піднімися", + "hostAuthRequired": "Потрібна автентифікація. Спочатку відкрийте файловий менеджер на цьому хості.", + "hostConnecting": "Підключення…", + "hostConnectionFailed": "Помилка підключення", + "hostDisconnected": "Не підключено", + "hostReady": "Готовий", + "itemsSummary": "{{count}} елементів", + "jumpHostLimitation": "Обидва хости мають бути доступні з сервера Termix. Пряма маршрутизація між хостами не підтримується.", + "methodAuto": "Авто", + "methodAutoHint": "Вибирає tar-файл або SFTP для кожного файлу на основі кількості файлів, розміру та стискальності. Окремі файли завжди використовують потоковий SFTP.", + "methodItemSftp": "SFTP для кожного файлу", + "methodItemSftpHint": "Передавайте кожен файл окремо через SFTP. Працює на всіх хостах, включаючи Windows.", + "methodItemSftpLimitation": "Кожен файл використовує той самий потік SFTP, що й копія окремого файлу, послідовно. Прогрес об'єднується для всіх файлів, тому шкала рухається повільно під час роботи з великими файлами.", + "methodLabel": "Спосіб переказу", + "methodPreviewError": "Не вдалося переглянути метод передачі. Сервер все одно вибере метод під час запуску.", + "methodPreviewLoading": "Розрахунок методу переказу…", + "methodPreviewScanSummary": "{{fileCount}} файлів, {{totalSize}} всього (проскановано на вихідному хості).", + "methodPreviewWillUseItemSftp": "Буде використовуватися: SFTP для кожного файлу", + "methodPreviewWillUseTar": "Буде використано: архів Tar", "methodReason": { - "user_item_sftp": "You chose per-file SFTP.", - "user_tar": "You chose tar archive.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", - "auto_default": "Auto: per-file SFTP for this set." + "user_item_sftp": "Ви обрали SFTP для кожного файлу.", + "user_tar": "Ви обрали tar-архів.", + "tar_unavailable": "Архів TAR недоступний на одному або обох хостах, тому замість нього буде використовуватися SFTP для кожного файлу.", + "windows_host": "Задіяний хост Windows, тому tar не використовується.", + "auto_multi_large": "Авто: кілька файлів, включаючи великий файл ({{largestSize}}) зі стислими даними. Tar об'єднує їх в одну передачу.", + "auto_single_large_in_archive": "Авто: один великий файл ({{largestSize}}) у цьому наборі, тому SFTP для кожного файлу.", + "auto_many_incompressible": "Авто: переважно нестисливі дані, тому SFTP для кожного файлу.", + "auto_many_files": "Авто: багато файлів ({{fileCount}}), tar зменшує накладні витрати на кожен файл.", + "auto_default": "Авто: SFTP для кожного файлу для цього набору." }, - "methodTar": "Tar archive", - "methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", - "metricsCompress": "Compress on source: {{duration}}", - "metricsExtract": "Extract on destination: {{duration}}", - "metricsPrepare": "Prepare destination: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", - "metricsSourceDelete": "Remove from source: {{duration}}", - "metricsTotal": "Total: {{duration}}", - "metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", - "moveFolderToHost": "Move folder to host…", - "moveItemsToHost": "Move {{count}} items to host…", - "moveToHost": "Move to host…", - "noHostsConnected": "No other file-manager hosts available.", - "noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", - "parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", - "parallelSegmentsLabel": "Parallel transfer lanes", - "parallelSegmentsOption": "{{count}} lanes", - "progressBenchmarking": "Selecting the fastest transfer route…", + "methodTar": "Архів Tar", + "methodTarHint": "Стиснення у вихідному коді, перенесення одного архіву, розпакування у кінцевому. Потрібен tar-архів на обох хостах Unix.", + "metricsCompress": "Стиснути у вихідному коді: {{duration}}", + "metricsExtract": "Вилучити в місці призначення: {{duration}}", + "metricsPrepare": "Підготувати пункт призначення: {{duration}}", + "metricsRouteBenchmark": "Зонд маршруту: прямий {{direct}}, ретрансляційний {{relay}}", + "metricsSourceDelete": "Видалити з джерела: {{duration}}", + "metricsTotal": "Всього: {{duration}}", + "metricsTransfer": "Від кінця до кінця: {{throughput}} ({{duration}})", + "metricsVerify": "SHA-256 перевірено: {{duration}}", + "moveFolderToHost": "Перемістити папку на хост…", + "moveItemsToHost": "Перемістити {{count}} елементів на хост…", + "moveToHost": "Перемістити на хост…", + "noHostsConnected": "Інших хостів файлових менеджерів немає.", + "noHostsConnectedHint": "Додайте ще один SSH-хост з увімкненим файловим менеджером у Host Manager.", + "parallelSegmentsHint": "Великі файли розділяються на фрагменти по 256 МБ. Кілька ліній використовують окремі з’єднання (наприклад, запуск кількох передач) для підвищення загальної пропускної здатності.", + "parallelSegmentsLabel": "Паралельні пересадочні смуги", + "parallelSegmentsOption": "{{count}} смуги", + "progressBenchmarking": "Вибір найшвидшого маршруту пересадки…", "progressBytes": "{{transferred}} / {{total}}", - "progressCancel": "Cancel", - "progressCancelling": "Cancelling…", - "progressCompressing": "Compressing on source host…", - "progressExtracting": "Extracting on destination…", - "progressItems": "{{current}} / {{total}} files", - "progressReconnecting": "Reconnecting…", - "progressStalled": "Stalled", - "progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", - "progressTransferring": "Transferring data…", - "progressTransferringItems": "Transferring files ({{current}} of {{total}})…", - "progressVerifying": "Verifying file integrity…", - "recentDestinations": "Recent destinations", - "resumedHint": "Reconnected to an active transfer started in another window.", - "retryTransfer": "Retry", - "retryTransferError": "Retry failed", - "selectDestinationHost": "Select destination host", - "transferCancelled": "Transfer cancelled", - "transferCancelledCopyHint": "Partial files may remain on the destination.", - "transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", - "transferError": "Transfer failed", - "transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", - "transferPartialHint": "Could not transfer: {{paths}}", - "transferSuccess": "Transfer complete", - "metricsHopSourceRead": "Source → server: {{throughput}}", - "metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", - "metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" + "progressCancel": "Скасувати", + "progressCancelling": "Скасування…", + "progressCompressing": "Стиснення на вихідному хості…", + "progressExtracting": "Видобування в місці призначення…", + "progressItems": "{{current}} / {{total}} файли", + "progressReconnecting": "Повторне підключення…", + "progressStalled": "Зупинився", + "progressTotalSpeed": "{{speed}} всього ({{lanes}} смуг)", + "progressTransferring": "Передача даних…", + "progressTransferringItems": "Передача файлів ({{current}} з {{total}})…", + "progressVerifying": "Перевірка цілісності файлу…", + "recentDestinations": "Нещодавні напрямки", + "resumedHint": "Повторне підключення до активної передачі, розпочатої в іншому вікні.", + "retryTransfer": "Повторити спробу", + "retryTransferError": "Повторна спроба не вдалася", + "selectDestinationHost": "Виберіть хост призначення", + "transferCancelled": "Переказ скасовано", + "transferCancelledCopyHint": "Часткові файли можуть залишатися на місці призначення.", + "transferCancelledMoveHint": "Часткові файли можуть залишатися в місці призначення. Вихідні файли не видалено.", + "transferError": "Передача не вдалася", + "transferFailedRetryHint": "На місці призначення збережено частку даних. Повторна спроба відновиться після відновлення з’єднання.", + "transferPartialHint": "Не вдалося перенести: {{paths}}", + "transferSuccess": "Перенесення завершено", + "metricsHopSourceRead": "Джерело → сервер: {{throughput}}", + "metricsHopDestSftpWrite": "Сервер → призначення (SFTP): {{throughput}}", + "metricsHopDestLocalWrite": "Сервер → призначення (локальний): {{throughput}}" } } diff --git a/plugins/file-manager/locales/translated/vi_VN.json b/plugins/file-manager/locales/translated/vi_VN.json index 5af3813c6..b86279b53 100644 --- a/plugins/file-manager/locales/translated/vi_VN.json +++ b/plugins/file-manager/locales/translated/vi_VN.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "Sử dụng trình quản lý tệp", + "description": "Duyệt, chỉnh sửa và chuyển file qua SFTP." } }, "settings": { "host": { "enable": { "label": "Bật Trình quản lý tập tin", - "description": "Browse and edit files on this host over SFTP." + "description": "Duyệt và chỉnh sửa tệp trên máy chủ này qua SFTP." }, "defaultPath": { "label": "Đường dẫn mặc định" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "Truyền tệp đồng thời", + "description": "Số lượng tệp mà trình quản lý cục bộ/từ xa song song tải lên hoặc tải xuống cùng lúc. Giảm giá trị này nếu máy chủ của bạn giới hạn số kênh SFTP." }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "Xác nhận trước khi chuyển tập tin vào thùng rác.", + "description": "Hãy hỏi ý kiến trước khi chuyển các tệp từ xa vào thùng rác. Việc xóa vĩnh viễn vẫn cần sự xác nhận." } } }, @@ -72,14 +72,14 @@ "rename": "Đổi tên", "uploading": "Đang tải lên...", "uploadingFile": "Đang tải lên {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "Đang tải lên {{name}}: {{percent}}% (một phần của {{chunk}} của {{total}})", "fileName": "Tên tập tin", "folderName": "Tên thư mục", "fileUploadedSuccessfully": "Tập tin \"{{name}}\" đã được tải lên thành công", "failedToUploadFile": "Tải tập tin lên thất bại", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "Đang tải lên {{count}} tập tin...", + "uploadedFolderFiles": "Đã tải lên {{count}} tập tin thành công", + "uploadedFolderPartial": "Đã tải lên {{uploaded}} tập tin, {{failed}} thất bại", "fileDownloadedSuccessfully": "Tập tin \"{{name}}\" đã được tải xuống thành công", "failedToDownloadFile": "Tải tập tin xuống thất bại", "fileCreatedSuccessfully": "Tập tin \"{{name}}\" đã được tạo thành công", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Thao tác sudo thất bại", "sudoAuthFailed": "Xác thực sudo thất bại", "dragFilesToUpload": "Kéo tệp vào đây để tải lên", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "Kéo thả để tải lên tại đây", + "dropToDownloadHere": "Kéo thả để tải xuống tại đây", "localFiles": "Cục bộ", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "Hiển thị các tệp cục bộ (chế độ chia đôi màn hình)", + "hideLocalFiles": "Ẩn các tệp cục bộ", + "localHome": "Thư mục trang chủ", + "localPathPlaceholder": "Đường dẫn thư mục cục bộ", + "localShowHidden": "Hiển thị các tệp ẩn", + "localHideHidden": "Ẩn các tệp tin ẩn", + "localRevealInFileManager": "Hiển thị trong trình quản lý tệp hệ thống", + "localCannotOpenFolder": "Không thể mở thư mục", "localItemCount": "{{count}} mục", "localSelectedCount": "{{count}} đã chọn", "back": "Quay lại", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "Phía trước", + "up": "Hướng lên", + "kind": "Loại", + "localUploadingProgress": "Đang tải lên {{current}} trong số {{total}}", + "localDownloadingProgress": "Đang tải xuống {{current}} của {{total}}", + "localTransferInFlight": "{{count}} ngay lập tức", + "localPreparingDownload": "Đang chuẩn bị tải xuống...", "localTransferCancelled": "Đã hủy chuyển", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "Không có gì để chuyển", + "localUploadComplete": "Đã tải lên {{count}} tập tin", + "localUploadFailed": "Tải lên thất bại", + "localUploadPartial": "Đã tải lên {{done}} tập tin, {{failed}} thất bại", + "localDownloadComplete": "Đã tải xuống {{count}} tập tin", "localDownloadFailed": "Tải xuống thất bại", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "Đã tải xuống {{done}} tập tin, {{failed}} thất bại", + "localReplaceExistingPrompt": "{{count}} mục đã tồn tại trong thư mục này. Bạn có muốn thay thế chúng không?", "localReplace": "Thay thế", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "Nhảy", + "localSkippedExisting": "Đã bỏ qua {{count}} mục hiện có", + "localUnsafeNamesSkipped": "Đã bỏ qua {{count}} mục có tên không thể sử dụng trên máy tính này", "localOpen": "Mở", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "Mở thư mục", + "localUploadToRemote": "Tải lên máy chủ", + "localUploadToRemoteMany": "Tải lên {{count}} mục lên máy chủ", + "localMoveToTrash": "Chuyển vào thùng rác", + "localMoveToTrashMany": "Di chuyển {{count}} mục vào Thùng rác", + "localTrashConfirmSingle": "Di chuyển \"{{name}}\" vào Thùng rác?", + "localTrashConfirmFolder": "Di chuyển thư mục \"{{name}}\" và tất cả nội dung bên trong vào Thùng rác?", + "localTrashConfirmMany": "Di chuyển {{count}} mục vào Thùng rác?", + "localTrashed": "Đã chuyển {{count}} mục vào Thùng rác", + "localTrashFailed": "Không thể chuyển vào Thùng rác", + "localRenameFailed": "Đổi tên không thành công", + "localCreateFailed": "Không thể tạo mục", + "goToParentFolder": "Đi đến thư mục cha", + "resizeSidebar": "Kéo để thay đổi kích thước thanh bên (nhấp đúp để đặt lại về kích thước ban đầu)", + "resizeLocalPane": "Kéo chuột để thay đổi kích thước khung cục bộ (nhấp đúp chuột để đặt lại về kích thước ban đầu)", "columns": "Cột", - "columnsHint": "Right-click to choose columns", + "columnsHint": "Nhấp chuột phải để chọn cột", "emptyFolder": "Thư mục này trống", "searchFiles": "Tìm kiếm tệp...", "upload": "Tải lên", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "Bạn có chắc chắn muốn xóa vĩnh viễn {{count}} mục? Điều này bao gồm các thư mục và nội dung của chúng.", "confirmDeleteFolder": "Bạn có chắc chắn muốn xóa vĩnh viễn thư mục \"{{name}}\" và tất cả nội dung của nó?", "permanentDeleteWarning": "Hành động này không thể hoàn tác. (Các) mục sẽ bị xóa vĩnh viễn khỏi máy chủ.", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "Các mục này sẽ được chuyển vào Thùng rác Termix và có thể được khôi phục trước khi thời hạn lưu giữ hết hạn.", + "itemsMovedToTrash": "{{count}} mục đã được chuyển vào Thùng rác", + "trash": "Rác", + "trashDescription": "Các mục đã xóa sẽ được lưu giữ trong {{days}} ngày trên máy chủ này.", + "trashLoadFailed": "Không thể tải Thùng rác", + "trashEmpty": "Thùng rác trống", "trashRestore": "Khôi phục", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "Đã khôi phục {{name}}", + "trashRestoreFailed": "Không thể khôi phục mục. Đường dẫn gốc có thể đã tồn tại.", + "trashDeletePermanently": "Xóa vĩnh viễn", + "trashDeleteConfirm": "Xóa vĩnh viễn {{name}}? Thao tác này không thể hoàn tác.", + "trashPermanentlyDeleted": "Đã xóa vĩnh viễn {{name}}", + "trashDeleteFailed": "Không thể xóa mục vĩnh viễn", + "trashEmptyAction": "Đổ rác", + "trashEmptyConfirm": "Xóa vĩnh viễn mọi mục trong Thùng rác? Thao tác này không thể hoàn tác.", + "trashEmptied": "Thùng rác đã được đổ", + "trashRetention": "Tự động dọn dẹp sau (ngày)", + "trashRetentionSaved": "Cập nhật thời gian lưu trữ rác", + "trashRetentionFailed": "Không thể cập nhật thời gian lưu trữ thùng rác.", + "trashUnavailableConfirm": "Không thể chuyển mục này vào Thùng rác, thường là do nó nằm trên hệ thống tệp khác hoặc yêu cầu quyền quản trị. Thay vào đó, hãy xóa vĩnh viễn mục này?", "recent": "Gần đây", "pinned": "Đã ghim", "folderShortcuts": "Lối tắt thư mục", @@ -303,7 +303,7 @@ "operationCompleted": "Đã {{operation}} {{count}} mục", "downloadFileSuccess": "Đã tải xuống tệp {{name}} thành công", "downloadFileFailed": "Tải xuống thất bại", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "Đang tải xuống {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "Di chuyển tới {{name}}", "diffCompareWith": "So sánh khác biệt với {{name}}", @@ -329,7 +329,7 @@ "connecting": "Đang kết nối...", "connectedSuccessfully": "Đã kết nối thành công", "totpVerificationFailed": "Xác minh TOTP thất bại", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "Đăng nhập không thành công. Vui lòng thử lại.", "authenticationFailed": "Xác thực thất bại", "incorrectPassphrase": "Cụm mật khẩu không đúng. Vui lòng thử lại.", "verificationCodePrompt": "Mã xác minh:", @@ -361,73 +361,73 @@ "used": "Đã dùng", "of": "của", "toggleSidebar": "Ẩn/Hiện thanh bên", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "Sử dụng bố cục nhỏ gọn", + "comfortableLayout": "Sử dụng bố cục thoải mái", "cannotLoadPdf": "Không thể tải PDF", "pdfLoadError": "Đã xảy ra lỗi khi tải tệp PDF này.", "loadingPdf": "Đang tải PDF...", "loadingPage": "Đang tải trang...", "cancel": "Hủy", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "copiedItems_one": "Đã sao chép mục {{count}}", + "copiedItems_other": "Đã sao chép {{count}} mục", + "deleteCopiedFileFailed": "Không thể xóa bản sao của {{name}}: {{error}}", + "dragMovedItems_one": "Đã di chuyển mục {{count}} đến {{target}}", + "dragMovedItems_other": "Đã di chuyển {{count}} mục đến {{target}}", + "moveBackFileFailed": "Không thể di chuyển {{name}} trở lại: {{error}}", + "terminal": "Thiết bị đầu cuối: {{host}} ({{path}})", + "dragToDesktop": "Kéo {{name}} ra màn hình nền", + "dragFilesToDesktop": "Kéo {{count}} tập tin ra màn hình nền", + "folderDragUnsupported": "Hiện tại, tính năng kéo thả thư mục ra màn hình nền chưa được hỗ trợ.", + "saveToDesktopFailed": "Lưu thất bại: {{error}}", + "dragFailedDetail": "Kéo thả thất bại: {{error}}", + "videoUnsupported": "Trình duyệt của bạn không thể phát định dạng video này.", + "downloadToPlay": "Tải xuống để chơi ở nơi khác", + "cannotPreviewType": "Không thể xem trước loại tệp này", + "cannotPreviewTypeHint": "Loại tệp này không có bản xem trước. Hãy tải xuống để mở bằng ứng dụng khác." }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "Truyền tệp giữa hai máy chủ SSH.", + "sourceServer": "Máy chủ nguồn", + "destinationServer": "Máy chủ đích", + "selectHost": "Chọn máy chủ", "noHostSelected": "Chưa chọn máy chủ", "move": "Di chuyển", "copy": "Sao chép", "upload": "Tải lên", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} mục đã chọn", + "itemsSelected_other": "{{count}} mục đã chọn", "ready": "Sẵn sàng", "loadingHosts": "Đang tải các máy chủ...", "name": "Tên", "modified": "Đã sửa", "size": "Kích thước", - "noFiles": "No files", + "noFiles": "Không có tệp nào", "open": "Mở", - "up": "Up", + "up": "Hướng lên", "refresh": "Làm mới", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "Sao chép vào thư mục đích", "rename": "Đổi tên", "delete": "Xóa", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "Chỉnh sửa quyền", + "createNewFolder": "Tạo thư mục mới", + "deleteSelectedItems": "Xóa các mục đã chọn", + "deleteConfirm": "Xóa mục đã chọn {{count}}?", + "deleteConfirm_other": "Xóa {{count}} mục đã chọn?", "cancel": "Hủy", "save": "Lưu", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "Thư mục đã được tạo", + "itemRenamed": "Mục đã được đổi tên", "actionFailed": "Hành động thất bại", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", - "failedToListFiles": "Failed to list files", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "itemsDeleted": "{{count}} mục đã bị xóa", + "itemsDeleted_other": "{{count}} mục đã bị xóa", + "deleteFailed": "Xóa không thành công", + "permissionsUpdated": "Quyền hạn đã được cập nhật", + "noRemoteSessionConnected": "Không có phiên kết nối từ xa nào được thiết lập.", + "failedToListFiles": "Không thể liệt kê các tệp.", + "failedToRefresh": "Không thể làm mới", + "destinationInsideSource": "Đường dẫn đích không được nằm bên trong đường dẫn nguồn đã chọn.", + "sameHostNoOp": "Thư mục nguồn và thư mục đích đều nằm trong cùng một thư mục." }, "hosts": { "fileManager": "Trình quản lý tệp", @@ -438,8 +438,8 @@ "loadingHost": "Đang tải máy chủ..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "Trình quản lý tập tin", + "feature_files_desc": "Duyệt, tải lên, tải xuống và chỉnh sửa tệp qua SFTP mà không cần rời khỏi ứng dụng." }, "terminal": { "runTitle": "Đang chạy {{command}} - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "Đường dẫn đích", "destMustBeDirectory": "Đích phải là thư mục khi truyền tải nhiều mục", "goUp": "Lên trên", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "Cần xác thực. Trước tiên hãy mở Trình quản lý tập tin trên máy chủ này.", "hostConnecting": "Đang kết nối…", "hostConnectionFailed": "Kết nối thất bại", "hostDisconnected": "Chưa kết nối", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "Bạn đã chọn SFTP từng tệp.", "user_tar": "Bạn đã chọn dùng tar.", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "Định dạng Tar không khả dụng trên một hoặc cả hai máy chủ, vì vậy thay vào đó sẽ sử dụng SFTP cho từng tệp.", + "windows_host": "Vì đây là máy chủ Windows nên không sử dụng lệnh tar.", + "auto_multi_large": "Tự động: nhiều tệp bao gồm một tệp lớn ({{largestSize}}) với dữ liệu có thể nén. Tar sẽ đóng gói chúng thành một lần truyền.", + "auto_single_large_in_archive": "Tự động: một tập tin lớn ({{largestSize}}) trong bộ này, vì vậy SFTP theo từng tập tin.", + "auto_many_incompressible": "Chế độ tự động: phần lớn dữ liệu không thể nén được, nên cần SFTP cho từng tệp riêng biệt.", + "auto_many_files": "Tự động: nhiều tệp ({{fileCount}}), tar giảm chi phí xử lý trên mỗi tệp.", "auto_default": "Tự động: SFTP từng tệp cho tập này." }, "methodTar": "Lưu trữ tar", @@ -498,11 +498,11 @@ "metricsCompress": "Nén tại nguồn: {{duration}}", "metricsExtract": "Giải nén tại đích: {{duration}}", "metricsPrepare": "Chuẩn bị đích: {{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "Đầu dò tuyến đường: trực tiếp {{direct}}, chuyển tiếp {{relay}}", "metricsSourceDelete": "Xóa khỏi nguồn: {{duration}}", "metricsTotal": "Tổng: {{duration}}", "metricsTransfer": "Toàn trình: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "Đã xác thực SHA-256: {{duration}}", "moveFolderToHost": "Di chuyển thư mục tới máy chủ…", "moveItemsToHost": "Di chuyển {{count}} mục tới máy chủ…", "moveToHost": "Di chuyển đến máy chủ…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "Các tệp lớn được chia thành các khối 256 MB. Nhiều làn sử dụng các kết nối riêng biệt (như khởi chạy nhiều lần truyền) để tăng tổng thông lượng.", "parallelSegmentsLabel": "Làn truyền song song", "parallelSegmentsOption": "{{count}} làn", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "Chọn tuyến đường chuyển tiếp nhanh nhất…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "Hủy", "progressCancelling": "Đang hủy…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} tổng ({{lanes}} làn)", "progressTransferring": "Đang truyền dữ liệu…", "progressTransferringItems": "Đang truyền tệp ({{current}}/{{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "Đang xác minh tính toàn vẹn của tệp…", "recentDestinations": "Đích gần đây", "resumedHint": "Đã kết nối lại với một tác vụ chuyển đang hoạt động được bắt đầu từ cửa sổ khác.", "retryTransfer": "Thử lại", diff --git a/plugins/file-manager/locales/translated/zh_CN.json b/plugins/file-manager/locales/translated/zh_CN.json index d137a28cc..58235b9ce 100644 --- a/plugins/file-manager/locales/translated/zh_CN.json +++ b/plugins/file-manager/locales/translated/zh_CN.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "使用文件管理器", + "description": "通过 SFTP 浏览、编辑和传输文件。" } }, "settings": { "host": { "enable": { "label": "启用文件管理器", - "description": "Browse and edit files on this host over SFTP." + "description": "通过 SFTP 浏览和编辑此主机上的文件。" }, "defaultPath": { "label": "默认路径" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "同时文件传输", + "description": "本地/远程并排管理器同时上传或下载的文件数量。如果您的服务器限制 SFTP 通道,请降低此值。" }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "请确认后再将文件移至回收站", + "description": "将远程文件移至回收站前请先询问。永久删除仍需确认。" } } }, @@ -72,14 +72,14 @@ "rename": "重命名", "uploading": "上传中...", "uploadingFile": "正在上传 {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "正在上传 {{name}}: {{percent}}% ( {{chunk}} 的一部分,共 {{total}})", "fileName": "文件名", "folderName": "文件夹名称", "fileUploadedSuccessfully": "文件 \"{{name}}\" 上传成功", "failedToUploadFile": "上传文件失败", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "正在上传 {{count}} 文件...", + "uploadedFolderFiles": "已成功上传 {{count}} 个文件", + "uploadedFolderPartial": "上传了 {{uploaded}} 个文件, {{failed}} 个文件失败", "fileDownloadedSuccessfully": "文件 \"{{name}}\" 下载成功", "failedToDownloadFile": "下载文件失败", "fileCreatedSuccessfully": "文件 \"{{name}}\" 创建成功", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Sudo 操作失败", "sudoAuthFailed": "Sudo 认证失败", "dragFilesToUpload": "将文件拖放到此处以上传", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "在此处上传", + "dropToDownloadHere": "点击此处下载", "localFiles": "本地", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "显示本地文件(分屏显示)", + "hideLocalFiles": "隐藏本地文件", + "localHome": "主页", + "localPathPlaceholder": "本地文件夹路径", + "localShowHidden": "显示隐藏文件", + "localHideHidden": "隐藏隐藏文件", + "localRevealInFileManager": "在系统文件管理器中显示", + "localCannotOpenFolder": "无法打开文件夹", "localItemCount": "{{count}} 个项目", "localSelectedCount": "已选择 {{count}} 项", "back": "返回", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "向前", + "up": "向上", + "kind": "种类", + "localUploadingProgress": "正在上传 {{current}} 中的 {{total}}", + "localDownloadingProgress": "正在下载 {{current}} 中的 {{total}}", + "localTransferInFlight": "{{count}} 立刻", + "localPreparingDownload": "正在准备下载……", "localTransferCancelled": "传输已取消", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "无需转移", + "localUploadComplete": "已上传 {{count}} 个文件", + "localUploadFailed": "上传失败", + "localUploadPartial": "上传文件 {{done}} 个失败, {{failed}} 个失败", + "localDownloadComplete": "已下载 {{count}} 个文件", "localDownloadFailed": "下载失败", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "下载了 {{done}} 个文件, {{failed}} 个文件失败", + "localReplaceExistingPrompt": "此文件夹中已存在 {{count}} 个项目。是否替换它们?", "localReplace": "替换", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "跳过", + "localSkippedExisting": "已跳过 {{count}} 个现有项目", + "localUnsafeNamesSkipped": "已跳过 {{count}} 个名称无法在此计算机上使用的项目。", "localOpen": "打开", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "打开文件夹", + "localUploadToRemote": "上传到服务器", + "localUploadToRemoteMany": "上传 {{count}} 项到服务器", + "localMoveToTrash": "移至垃圾桶", + "localMoveToTrashMany": "将 {{count}} 个物品移至垃圾桶", + "localTrashConfirmSingle": "将“{{name}}”移至回收站?", + "localTrashConfirmFolder": "将文件夹“{{name}}”及其所有内容移至回收站?", + "localTrashConfirmMany": "将 {{count}} 个项目移至回收站?", + "localTrashed": "已将 {{count}} 个项目移至回收站", + "localTrashFailed": "无法移至垃圾桶", + "localRenameFailed": "重命名失败", + "localCreateFailed": "无法创建项目", + "goToParentFolder": "转到上文件夹", + "resizeSidebar": "拖动即可调整侧边栏大小(双击即可重置)", + "resizeLocalPane": "拖动即可调整本地窗格大小(双击可重置)", "columns": "列", - "columnsHint": "Right-click to choose columns", + "columnsHint": "右键单击选择列", "emptyFolder": "此文件夹为空", "searchFiles": "搜索文件...", "upload": "上传", @@ -203,25 +203,25 @@ "confirmDeleteFolder": "确定要永久删除文件夹“{{name}}”及其所有内容吗?", "permanentDeleteWarning": "此操作无法撤销。项目将从服务器永久删除。", "moveToTrashWarning": "该项目将被移至 Termix 回收站,可在保留期到期前恢复。", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", + "itemsMovedToTrash": "{{count}} 项已移至回收站", "trash": "回收站", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", + "trashDescription": "已删除的项目将在本主机上保留 {{days}} 天。", + "trashLoadFailed": "加载回收站失败", "trashEmpty": "回收站是空的", "trashRestore": "恢复", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", + "trashRestored": "已恢复 {{name}}", + "trashRestoreFailed": "恢复项目失败。原始路径可能已存在。", + "trashDeletePermanently": "永久删除", + "trashDeleteConfirm": "永久删除 {{name}}?此操作无法撤销。", + "trashPermanentlyDeleted": "永久删除 {{name}}", + "trashDeleteFailed": "无法永久删除项目", "trashEmptyAction": "清空回收站", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", + "trashEmptyConfirm": "永久删除回收站中的所有项目?此操作无法撤销。", "trashEmptied": "回收站已清空", "trashRetention": "自动清理(N 天后)", "trashRetentionSaved": "回收站保留设置已更新", "trashRetentionFailed": "更新回收站保留设置失败", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashUnavailableConfirm": "此项目无法移至回收站,通常是因为它位于其他文件系统或需要更高的权限。是否将其永久删除?", "recent": "最近", "pinned": "已固定", "folderShortcuts": "文件夹快捷方式", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}}了{{count}}个项目", "downloadFileSuccess": "文件 {{name}} 下载成功", "downloadFileFailed": "下载失败", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "正在下载 {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "移动到 {{name}}", "diffCompareWith": "与 {{name}} 对比差异", @@ -329,7 +329,7 @@ "connecting": "连接中...", "connectedSuccessfully": "连接成功", "totpVerificationFailed": "TOTP 验证失败", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "登录失败,请重试。", "authenticationFailed": "认证失败", "incorrectPassphrase": "密码错误。请重试。", "verificationCodePrompt": "验证码:", @@ -361,73 +361,73 @@ "used": "已用", "of": "/", "toggleSidebar": "切换侧边栏", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "采用紧凑型布局", + "comfortableLayout": "采用舒适的布局", "cannotLoadPdf": "无法加载 PDF", "pdfLoadError": "加载此 PDF 文件时出错。", "loadingPdf": "正在加载 PDF...", "loadingPage": "正在加载页面...", "cancel": "取消", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "copiedItems_one": "已复制 {{count}} 项目", + "copiedItems_other": "已复制 {{count}} 项", + "deleteCopiedFileFailed": "无法删除 {{name}}的副本: {{error}}", + "dragMovedItems_one": "将 {{count}} 项移动到 {{target}}", + "dragMovedItems_other": "已将 {{count}} 个项目移动到 {{target}}", + "moveBackFileFailed": "无法将 {{name}} 向后移动: {{error}}", + "terminal": "终端: {{host}} ({{path}})", + "dragToDesktop": "将 {{name}} 拖到桌面", + "dragFilesToDesktop": "将 {{count}} 文件拖到桌面", + "folderDragUnsupported": "目前尚不支持将文件夹拖到桌面。", + "saveToDesktopFailed": "保存失败: {{error}}", + "dragFailedDetail": "拖拽失败: {{error}}", + "videoUnsupported": "您的浏览器无法播放此视频格式。", + "downloadToPlay": "下载后即可在其他地方播放", + "cannotPreviewType": "无法预览此文件类型", + "cannotPreviewTypeHint": "此文件类型没有预览。请下载后在其他应用程序中打开。" }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "在两台SSH主机之间传输文件。", + "sourceServer": "源服务器", + "destinationServer": "目标服务器", + "selectHost": "选择主机", "noHostSelected": "未选择主机", "move": "移动", "copy": "复制", "upload": "上传", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} 已选择项目", + "itemsSelected_other": "{{count}} 已选择项目", "ready": "就绪", "loadingHosts": "正在加载主机...", "name": "名称", "modified": "修改时间", "size": "大小", - "noFiles": "No files", + "noFiles": "没有文件", "open": "打开", - "up": "Up", + "up": "向上", "refresh": "刷新", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "复制到目标目录", "rename": "重命名", "delete": "删除", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "编辑权限", + "createNewFolder": "创建新文件夹", + "deleteSelectedItems": "删除选定项目", + "deleteConfirm": "删除 {{count}} 选定项目?", + "deleteConfirm_other": "删除 {{count}} 选定项目?", "cancel": "取消", "save": "保存", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "已创建文件夹", + "itemRenamed": "项目已重命名", "actionFailed": "操作失败", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", + "itemsDeleted": "{{count}} 项目已删除", + "itemsDeleted_other": "{{count}} 项已删除", + "deleteFailed": "删除失败", + "permissionsUpdated": "权限已更新", + "noRemoteSessionConnected": "未连接远程会话", "failedToListFiles": "文件列表失败", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "failedToRefresh": "刷新失败", + "destinationInsideSource": "目标路径不能位于所选源路径内。", + "sameHostNoOp": "源文件夹和目标文件夹是同一个文件夹。" }, "hosts": { "fileManager": "文件管理器", @@ -438,7 +438,7 @@ "loadingHost": "正在加载主机..." }, "onboarding": { - "feature_files": "File manager", + "feature_files": "文件管理器", "feature_files_desc": "无需离开应用,即可通过 SFTP 浏览、上传、下载及编辑文件。" }, "terminal": { @@ -464,7 +464,7 @@ "destinationPath": "目标路径", "destMustBeDirectory": "对于多项目传输,目标必须是一个目录", "goUp": "向上", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "需要进行身份验证。请先在此主机上打开文件管理器。", "hostConnecting": "连接中…", "hostConnectionFailed": "连接失败", "hostDisconnected": "未连接", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "您选择了逐文件 SFTP。", "user_tar": "您选择了 Tar 归档。", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "如果一台或两台主机上没有 Tar 服务,则将改用按文件传输的 SFTP 服务。", + "windows_host": "由于涉及 Windows 主机,因此不使用 tar。", + "auto_multi_large": "自动:支持多个文件,其中包括一个包含可压缩数据的大文件({{largestSize}})。Tar 会将它们打包成一个文件进行传输。", + "auto_single_large_in_archive": "自动:此集合中有一个大文件({{largestSize}}),因此按文件 SFTP。", + "auto_many_incompressible": "自动:数据大多不可压缩,因此按文件进行 SFTP 传输。", + "auto_many_files": "自动:多个文件({{fileCount}}),tar 可以减少每个文件的开销。", "auto_default": "自动:此集合使用逐文件 SFTP。" }, "methodTar": "Tar 归档", @@ -498,11 +498,11 @@ "metricsCompress": "源端压缩:{{duration}}", "metricsExtract": "目标端解压:{{duration}}", "metricsPrepare": "准备目标:{{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "路由探测:直接 {{direct}},中继 {{relay}}", "metricsSourceDelete": "从源端删除:{{duration}}", "metricsTotal": "总计:{{duration}}", "metricsTransfer": "端到端:{{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "SHA-256 已验证: {{duration}}", "moveFolderToHost": "移动文件夹到主机…", "moveItemsToHost": "移动 {{count}} 个项目到主机…", "moveToHost": "移动到主机…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "大文件会被拆分为 256 MB 的块。多个通道使用独立连接(如同同时进行多个传输),以获得更高的总吞吐量。", "parallelSegmentsLabel": "并行传输通道", "parallelSegmentsOption": "{{count}} 个通道", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "选择最快的传输路线…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "取消", "progressCancelling": "正在取消…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "{{speed}} 总计({{lanes}} 通道)", "progressTransferring": "正在传输数据…", "progressTransferringItems": "正在传输文件({{current}}/{{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "正在验证文件完整性…", "recentDestinations": "最近目标", "resumedHint": "已重新连接到在另一个窗口中启动的进行中的传输。", "retryTransfer": "重试", diff --git a/plugins/file-manager/locales/translated/zh_TW.json b/plugins/file-manager/locales/translated/zh_TW.json index 2e2e8c0ca..6b96895e6 100644 --- a/plugins/file-manager/locales/translated/zh_TW.json +++ b/plugins/file-manager/locales/translated/zh_TW.json @@ -6,15 +6,15 @@ }, "permissions": { "use": { - "title": "Use file manager", - "description": "Browse, edit and transfer files over SFTP." + "title": "使用檔案管理器", + "description": "透過 SFTP 瀏覽、編輯和傳輸檔案。" } }, "settings": { "host": { "enable": { "label": "啟用檔案管理員", - "description": "Browse and edit files on this host over SFTP." + "description": "透過 SFTP 瀏覽和編輯此主機上的檔案。" }, "defaultPath": { "label": "預設路徑" @@ -25,12 +25,12 @@ }, "user": { "transferConcurrency": { - "label": "Simultaneous File Transfers", - "description": "How many files the side by side local/remote manager uploads or downloads at the same time. Lower this if your server limits SFTP channels." + "label": "同時文件傳輸", + "description": "本機/遠端並排管理器同時上傳或下載的檔案數量。如果您的伺服器限制 SFTP 通道,請降低此值。" }, "confirmBeforeTrash": { - "label": "Confirm before moving files to trash", - "description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." + "label": "請確認後再將文件移至回收站", + "description": "將遠端文件移至回收站前請先詢問。永久刪除仍需確認。" } } }, @@ -72,14 +72,14 @@ "rename": "重新命名", "uploading": "上傳中...", "uploadingFile": "正在上傳 {{name}}...", - "uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", + "uploadingChunk": "正在上傳 {{name}}: {{percent}}% ( {{chunk}} 的一部分,共 {{total}})", "fileName": "檔案名稱", "folderName": "資料夾名稱", "fileUploadedSuccessfully": "檔案「{{name}}」上傳成功", "failedToUploadFile": "上傳檔案失敗", - "uploadingFolderFiles": "Uploading {{count}} file(s)...", - "uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", - "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", + "uploadingFolderFiles": "正在上傳 {{count}} 檔案...", + "uploadedFolderFiles": "已成功上傳 {{count}} 個文件", + "uploadedFolderPartial": "上傳檔案 {{uploaded}} 失敗, {{failed}} 失敗", "fileDownloadedSuccessfully": "檔案「{{name}}」下載成功", "failedToDownloadFile": "下載檔案失敗", "fileCreatedSuccessfully": "檔案「{{name}}」建立成功", @@ -95,58 +95,58 @@ "sudoOperationFailed": "Sudo 操作失敗", "sudoAuthFailed": "Sudo 驗證失敗", "dragFilesToUpload": "拖放檔案至此以上傳", - "dropToUploadHere": "Drop to upload here", - "dropToDownloadHere": "Drop to download here", + "dropToUploadHere": "在此處上傳", + "dropToDownloadHere": "點此下載", "localFiles": "本機", - "showLocalFiles": "Show local files (split view)", - "hideLocalFiles": "Hide local files", - "localHome": "Home folder", - "localPathPlaceholder": "Local folder path", - "localShowHidden": "Show hidden files", - "localHideHidden": "Hide hidden files", - "localRevealInFileManager": "Reveal in system file manager", - "localCannotOpenFolder": "Cannot open folder", + "showLocalFiles": "顯示本地文件(分割畫面顯示)", + "hideLocalFiles": "隱藏本地文件", + "localHome": "首頁", + "localPathPlaceholder": "本機資料夾路徑", + "localShowHidden": "顯示隱藏文件", + "localHideHidden": "隱藏隱藏文件", + "localRevealInFileManager": "在系統檔案管理器中顯示", + "localCannotOpenFolder": "無法開啟資料夾", "localItemCount": "{{count}} 個項目", "localSelectedCount": "已選取 {{count}} 個", "back": "返回", - "forward": "Forward", - "up": "Up", - "kind": "Kind", - "localUploadingProgress": "Uploading {{current}} of {{total}}", - "localDownloadingProgress": "Downloading {{current}} of {{total}}", - "localTransferInFlight": "{{count}} at once", - "localPreparingDownload": "Preparing download...", + "forward": "向前", + "up": "向上", + "kind": "種類", + "localUploadingProgress": "正在上傳 {{current}} 中的 {{total}}", + "localDownloadingProgress": "正在下載 {{current}} 中的 {{total}}", + "localTransferInFlight": "{{count}} 立刻", + "localPreparingDownload": "正在準備下載…", "localTransferCancelled": "傳輸已取消", - "localNothingToTransfer": "Nothing to transfer", - "localUploadComplete": "Uploaded {{count}} file(s)", - "localUploadFailed": "Upload failed", - "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", - "localDownloadComplete": "Downloaded {{count}} file(s)", + "localNothingToTransfer": "無需轉移", + "localUploadComplete": "已上傳 {{count}} 個文件", + "localUploadFailed": "上傳失敗", + "localUploadPartial": "上傳檔案 {{done}} 失敗, {{failed}} 失敗", + "localDownloadComplete": "已下載 {{count}} 個文件", "localDownloadFailed": "下載失敗", - "localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", - "localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", + "localDownloadPartial": "下載了 {{done}} 個文件, {{failed}} 個文件失敗", + "localReplaceExistingPrompt": "此資料夾中已存在 {{count}} 個項目。是否替換它們?", "localReplace": "取代", - "localSkipExisting": "Skip", - "localSkippedExisting": "Skipped {{count}} existing item(s)", - "localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", + "localSkipExisting": "跳過", + "localSkippedExisting": "已跳過 {{count}} 個現有項目", + "localUnsafeNamesSkipped": "已跳過 {{count}} 個名稱無法在此電腦上使用的項目。", "localOpen": "開啟", - "localOpenFolder": "Open folder", - "localUploadToRemote": "Upload to server", - "localUploadToRemoteMany": "Upload {{count}} items to server", - "localMoveToTrash": "Move to Trash", - "localMoveToTrashMany": "Move {{count}} items to Trash", - "localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", - "localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", - "localTrashConfirmMany": "Move {{count}} items to the Trash?", - "localTrashed": "Moved {{count}} item(s) to the Trash", - "localTrashFailed": "Could not move to the Trash", - "localRenameFailed": "Rename failed", - "localCreateFailed": "Could not create item", - "goToParentFolder": "Go to parent folder", - "resizeSidebar": "Drag to resize the sidebar (double-click to reset)", - "resizeLocalPane": "Drag to resize the local pane (double-click to reset)", + "localOpenFolder": "打開資料夾", + "localUploadToRemote": "上傳到伺服器", + "localUploadToRemoteMany": "上傳 {{count}} 項目到伺服器", + "localMoveToTrash": "移至垃圾桶", + "localMoveToTrashMany": "將 {{count}} 個物品移至垃圾桶", + "localTrashConfirmSingle": "將「{{name}}」移至回收站?", + "localTrashConfirmFolder": "將資料夾「{{name}}」及其所有內容移至回收站?", + "localTrashConfirmMany": "將 {{count}} 個項目移至回收站?", + "localTrashed": "已將 {{count}} 個項目移至回收站", + "localTrashFailed": "無法移至垃圾桶", + "localRenameFailed": "重新命名失敗", + "localCreateFailed": "無法建立專案", + "goToParentFolder": "轉到上資料夾", + "resizeSidebar": "拖曳即可調整側邊欄大小(雙擊即可重設)", + "resizeLocalPane": "拖曳即可調整本機窗格大小(雙擊可重設)", "columns": "欄", - "columnsHint": "Right-click to choose columns", + "columnsHint": "右鍵單擊選擇列", "emptyFolder": "此資料夾為空", "searchFiles": "搜尋檔案...", "upload": "上傳", @@ -202,26 +202,26 @@ "confirmDeleteMultipleItemsWithFolders": "確定要永久刪除 {{count}} 個項目嗎?這包含資料夾及其內容。", "confirmDeleteFolder": "確定要永久刪除資料夾「{{name}}」及其所有內容嗎?", "permanentDeleteWarning": "此動作無法復原。項目將從伺服器永久刪除。", - "moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", - "itemsMovedToTrash": "{{count}} item(s) moved to Trash", - "trash": "Trash", - "trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", - "trashLoadFailed": "Failed to load Trash", - "trashEmpty": "Trash is empty", + "moveToTrashWarning": "該物品將移至 Termix 回收站,可在保留期到期前恢復。", + "itemsMovedToTrash": "{{count}} 項已移至回收站", + "trash": "垃圾", + "trashDescription": "已刪除的項目將保留在本主機上 {{days}} 天。", + "trashLoadFailed": "載入回收站失敗", + "trashEmpty": "垃圾桶是空的。", "trashRestore": "還原", - "trashRestored": "Restored {{name}}", - "trashRestoreFailed": "Failed to restore item. The original path may already exist.", - "trashDeletePermanently": "Delete permanently", - "trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", - "trashPermanentlyDeleted": "Permanently deleted {{name}}", - "trashDeleteFailed": "Failed to permanently delete item", - "trashEmptyAction": "Empty Trash", - "trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", - "trashEmptied": "Trash emptied", - "trashRetention": "Automatic cleanup after (days)", - "trashRetentionSaved": "Trash retention updated", - "trashRetentionFailed": "Failed to update Trash retention", - "trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", + "trashRestored": "已恢復 {{name}}", + "trashRestoreFailed": "恢復專案失敗。原始路徑可能已存在。", + "trashDeletePermanently": "永久刪除", + "trashDeleteConfirm": "永久刪除 {{name}}?此操作無法撤銷。", + "trashPermanentlyDeleted": "永久刪除 {{name}}", + "trashDeleteFailed": "無法永久刪除項目", + "trashEmptyAction": "清空垃圾桶", + "trashEmptyConfirm": "永久刪除回收站中的所有項目?此操作無法撤銷。", + "trashEmptied": "垃圾已清空", + "trashRetention": "自動清理(天數)後", + "trashRetentionSaved": "垃圾保留狀況更新", + "trashRetentionFailed": "更新垃圾回收站保留策略失敗", + "trashUnavailableConfirm": "此項目無法移至回收站,通常是因為它位於其他檔案系統或需要更高的權限。是否將其永久刪除?", "recent": "最近", "pinned": "已釘選", "folderShortcuts": "資料夾捷徑", @@ -303,7 +303,7 @@ "operationCompleted": "{{operation}} {{count}} 個項目", "downloadFileSuccess": "檔案 {{name}} 已成功下載", "downloadFileFailed": "下載失敗", - "downloadingFile": "Downloading {{name}}…", + "downloadingFile": "正在下載 {{name}}…", "downloadProgressBytes": "{{transferred}} / {{total}}", "moveTo": "移動至 {{name}}", "diffCompareWith": "與 {{name}} 進行差異比對", @@ -329,7 +329,7 @@ "connecting": "連線中...", "connectedSuccessfully": "已成功連線", "totpVerificationFailed": "TOTP 驗證失敗", - "browserSignInFailed": "Sign-in failed. Please try again.", + "browserSignInFailed": "登入失敗,請重試。", "authenticationFailed": "驗證失敗", "incorrectPassphrase": "密碼片語錯誤。請再試一次。", "verificationCodePrompt": "驗證碼:", @@ -361,73 +361,73 @@ "used": "已使用", "of": " / ", "toggleSidebar": "切換側邊欄", - "compactLayout": "Use compact layout", - "comfortableLayout": "Use comfortable layout", + "compactLayout": "採用緊湊型佈局", + "comfortableLayout": "採用舒適的佈局", "cannotLoadPdf": "無法載入 PDF", "pdfLoadError": "載入此 PDF 檔案時發生錯誤。", "loadingPdf": "正在載入 PDF...", "loadingPage": "正在載入頁面...", "cancel": "取消", - "copiedItems_one": "Copied {{count}} item", - "copiedItems_other": "Copied {{count}} items", - "deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", - "dragMovedItems_one": "Moved {{count}} item to {{target}}", - "dragMovedItems_other": "Moved {{count}} items to {{target}}", - "moveBackFileFailed": "Could not move {{name}} back: {{error}}", - "terminal": "Terminal: {{host}} ({{path}})", - "dragToDesktop": "Dragging {{name}} to the desktop", - "dragFilesToDesktop": "Dragging {{count}} files to the desktop", - "folderDragUnsupported": "Dragging folders to the desktop is not supported yet", - "saveToDesktopFailed": "Save failed: {{error}}", - "dragFailedDetail": "Drag failed: {{error}}", - "videoUnsupported": "Your browser cannot play this video format.", - "downloadToPlay": "Download to play it elsewhere", - "cannotPreviewType": "Cannot preview this file type", - "cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." + "copiedItems_one": "已複製 {{count}} 項目", + "copiedItems_other": "已複製 {{count}} 項", + "deleteCopiedFileFailed": "無法刪除 {{name}}的副本: {{error}}", + "dragMovedItems_one": "將 {{count}} 項移到 {{target}}", + "dragMovedItems_other": "已將 {{count}} 個項目移至 {{target}}", + "moveBackFileFailed": "無法將 {{name}} 向後移動: {{error}}", + "terminal": "終端: {{host}} ({{path}})", + "dragToDesktop": "將 {{name}} 拖曳到桌面", + "dragFilesToDesktop": "將 {{count}} 檔案拖曳到桌面", + "folderDragUnsupported": "目前尚不支援將資料夾拖曳到桌面。", + "saveToDesktopFailed": "儲存失敗: {{error}}", + "dragFailedDetail": "拖曳失敗: {{error}}", + "videoUnsupported": "您的瀏覽器無法播放此影片格式。", + "downloadToPlay": "下載後即可在其他地方播放", + "cannotPreviewType": "無法預覽此文件類型", + "cannotPreviewTypeHint": "此文件類型沒有預覽。請下載後在其他應用程式中開啟。" }, "sftpTransfer": { "title": "SFTP", - "description": "Transfer files between two SSH hosts.", - "sourceServer": "Source Server", - "destinationServer": "Destination Server", - "selectHost": "Select host", + "description": "在兩台SSH主機之間傳輸檔案。", + "sourceServer": "來源伺服器", + "destinationServer": "目標伺服器", + "selectHost": "選擇主機", "noHostSelected": "未選擇主機", "move": "移動", "copy": "複製", "upload": "上傳", - "itemsSelected": "{{count}} item selected", - "itemsSelected_other": "{{count}} items selected", + "itemsSelected": "{{count}} 已選擇項目", + "itemsSelected_other": "{{count}} 已選擇項目", "ready": "就緒", "loadingHosts": "正在載入主機...", "name": "名稱", "modified": "修改時間", "size": "大小", - "noFiles": "No files", + "noFiles": "沒有文件", "open": "開啟", - "up": "Up", + "up": "向上", "refresh": "重新整理", - "copyToTarget": "Copy to Target Directory", + "copyToTarget": "複製到目標目錄", "rename": "重新命名", "delete": "刪除", - "editPermissions": "Edit Permissions", - "createNewFolder": "Create New Folder", - "deleteSelectedItems": "Delete Selected Items", - "deleteConfirm": "Delete {{count}} selected item?", - "deleteConfirm_other": "Delete {{count}} selected items?", + "editPermissions": "編輯權限", + "createNewFolder": "建立新資料夾", + "deleteSelectedItems": "刪除選定項目", + "deleteConfirm": "刪除 {{count}} 選取項目?", + "deleteConfirm_other": "刪除 {{count}} 選取項目?", "cancel": "取消", "save": "儲存", - "folderCreated": "Folder created", - "itemRenamed": "Item renamed", + "folderCreated": "已建立資料夾", + "itemRenamed": "項目已重新命名", "actionFailed": "操作失敗", - "itemsDeleted": "{{count}} item deleted", - "itemsDeleted_other": "{{count}} items deleted", - "deleteFailed": "Delete failed", - "permissionsUpdated": "Permissions updated", - "noRemoteSessionConnected": "No remote session connected", + "itemsDeleted": "{{count}} 項目已刪除", + "itemsDeleted_other": "{{count}} 項目已刪除", + "deleteFailed": "刪除失敗", + "permissionsUpdated": "權限已更新", + "noRemoteSessionConnected": "未連接遠端會話", "failedToListFiles": "檔案列表失敗", - "failedToRefresh": "Failed to refresh", - "destinationInsideSource": "Destination cannot be inside the selected source path.", - "sameHostNoOp": "Source and destination are the same folder." + "failedToRefresh": "刷新失敗", + "destinationInsideSource": "目標路徑不能位於所選來源路徑內。", + "sameHostNoOp": "來源資料夾和目標資料夾是同一個資料夾。" }, "hosts": { "fileManager": "檔案管理員", @@ -438,8 +438,8 @@ "loadingHost": "正在載入主機..." }, "onboarding": { - "feature_files": "File manager", - "feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." + "feature_files": "文件管理器", + "feature_files_desc": "無需離開應用程序,即可透過 SFTP 瀏覽、上傳、下載和編輯檔案。" }, "terminal": { "runTitle": "正在執行 {{command}} - {{host}}", @@ -464,7 +464,7 @@ "destinationPath": "目標路徑", "destMustBeDirectory": "多項目傳送時,目標必須是資料夾", "goUp": "向上", - "hostAuthRequired": "Authentication required. Open File Manager on this host first", + "hostAuthRequired": "需要進行身份驗證。請先在此主機上開啟檔案總管。", "hostConnecting": "連線中…", "hostConnectionFailed": "連線失敗", "hostDisconnected": "未連線", @@ -485,12 +485,12 @@ "methodReason": { "user_item_sftp": "您選擇了逐檔 SFTP。", "user_tar": "您選擇了 tar 封存。", - "tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", - "windows_host": "A Windows host is involved, so tar is not used.", - "auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", - "auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", - "auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", - "auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", + "tar_unavailable": "如果一台或兩台主機上沒有 Tar 服務,則將改用按檔案傳輸的 SFTP 服務。", + "windows_host": "由於涉及 Windows 主機,因此不使用 tar。", + "auto_multi_large": "自動:支援多個文件,其中包括一個包含可壓縮資料的大文件({{largestSize}})。 Tar 會將它們打包成一個檔案來傳輸。", + "auto_single_large_in_archive": "自動:此集合中有一個大檔案({{largestSize}}),因此請按檔案 SFTP。", + "auto_many_incompressible": "自動:資料大多不可壓縮,因此按檔案進行 SFTP 傳輸。", + "auto_many_files": "自動:多個檔案({{fileCount}}),tar 可以減少每個檔案的開銷。", "auto_default": "自動:此集合使用逐檔 SFTP。" }, "methodTar": "Tar 封存", @@ -498,11 +498,11 @@ "metricsCompress": "在來源主機壓縮: {{duration}}", "metricsExtract": "在目標主機解壓縮: {{duration}}", "metricsPrepare": "準備目標:{{duration}}", - "metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", + "metricsRouteBenchmark": "路由探測:直 {{direct}},中繼 {{relay}}", "metricsSourceDelete": "從來源主機刪除: {{duration}}", "metricsTotal": "總計: {{duration}}", "metricsTransfer": "端對端: {{throughput}} ({{duration}})", - "metricsVerify": "SHA-256 verified: {{duration}}", + "metricsVerify": "SHA-256 已驗證: {{duration}}", "moveFolderToHost": "移動資料夾至主機…", "moveItemsToHost": "將 {{count}} 個項目移至主機…", "moveToHost": "移動到主機…", @@ -511,7 +511,7 @@ "parallelSegmentsHint": "大型檔案會分割成 256 MB 區塊。多個通道會使用獨立的連線(如同啟動多個傳輸作業)以獲取更高的總傳輸速率。", "parallelSegmentsLabel": "平行傳輸通道", "parallelSegmentsOption": "{{count}} 個通道", - "progressBenchmarking": "Selecting the fastest transfer route…", + "progressBenchmarking": "選擇最快的傳輸路線…", "progressBytes": "{{transferred}} / {{total}}", "progressCancel": "取消", "progressCancelling": "正在取消…", @@ -523,7 +523,7 @@ "progressTotalSpeed": "總計 {{speed}}({{lanes}} 個通道)", "progressTransferring": "傳輸資料中…", "progressTransferringItems": "傳輸檔案中({{current}} / {{total}})…", - "progressVerifying": "Verifying file integrity…", + "progressVerifying": "正在驗證檔案完整性…", "recentDestinations": "最近使用的目的地", "resumedHint": "已重新連線至在另一個視窗中啟動的進行中傳輸。", "retryTransfer": "重試", diff --git a/plugins/fleets/locales/translated/bn_BD.json b/plugins/fleets/locales/translated/bn_BD.json index 18ffb4fa6..1cc33d3a6 100644 --- a/plugins/fleets/locales/translated/bn_BD.json +++ b/plugins/fleets/locales/translated/bn_BD.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "ফ্লিটগুলি দেখুন", + "description": "নৌবহর, তাদের সদস্য এবং মজুদ দেখুন।" }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "ফ্লিট পরিচালনা করুন", + "description": "ফ্লিট তৈরি, সম্পাদনা ও মুছে ফেলুন, সদস্যপদ পরিবর্তন করুন এবং অন্যান্য ব্যবহারকারী বা ভূমিকার সাথে ফ্লিট শেয়ার করুন।" }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "ফ্লিট অ্যাকশন চালান", + "description": "একটি ফ্লিট জুড়ে কমান্ড ও প্যাকেজ অ্যাকশন চালান, এবং এর সদস্য হোস্টগুলোতে ফাইল আদান-প্রদান করুন।" } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "title": "ফ্লিট", + "createFleet": "ফ্লিট তৈরি করুন", + "createFleetTitle": "ফ্লিট তৈরি করুন", + "editFleetTitle": "ফ্লিট সম্পাদনা করুন", + "createFleetDescription": "ফ্লিট হলো নামযুক্ত হোস্টদের একটি দল, যাদের বিরুদ্ধে আপনি একটি ইউনিট হিসেবে বিভিন্ন অ্যাকশন চালাতে পারেন।", + "nameLabel": "নাম", + "namePlaceholder": "যেমন, ওয়েব সার্ভার", + "nameRequired": "ফ্লিটের নাম প্রয়োজন", + "descriptionLabel": "বর্ণনা", + "descriptionPlaceholder": "ঐচ্ছিক বিবরণ", + "colorLabel": "রঙ", + "tagRulesLabel": "ট্যাগ নিয়ম", + "tagRulesPlaceholder": "প্রোড-ওয়েব, এজ", + "tagRulesHint": "ম্যানুয়ালি যোগ করা হোস্টগুলোর পাশাপাশি, এই ট্যাগগুলোর যেকোনো একটি থাকা হোস্টগুলো স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়ে যায়।", + "fleetCreated": "ফ্লিট তৈরি করা হয়েছে", + "fleetUpdated": "ফ্লিট আপডেট করা হয়েছে", + "fleetDeleted": "ফ্লিট মুছে ফেলা হয়েছে", + "saveFailed": "বহর সংরক্ষণ করতে ব্যর্থ হয়েছে", + "deleteFailed": "ফ্লিট মুছে ফেলতে ব্যর্থ হয়েছে", + "loadFailed": "ফ্লিট লোড করতে ব্যর্থ হয়েছে", + "deleteFleetTitle": "ফ্লিট মুছুন", + "deleteFleetDescription": "আপনি কি \"{{name}}\" মুছে ফেলতে নিশ্চিত? এটি সদস্য হোস্টদেরকে মুছে ফেলে না।", + "searchFleets": "নৌবহর অনুসন্ধান করুন...", + "noFleets": "এখনো কোনো ফ্লিট নেই। শুরু করার জন্য একটি তৈরি করুন।", + "memberCount": "{{count}} হোস্ট", + "memberCount_other": "{{count}} হোস্ট", + "manageMembers": "সদস্যদের পরিচালনা করুন", + "manageMembersTitle": "ফ্লিট সদস্যদের পরিচালনা করুন", + "manageMembersDescription": "এই ফ্লিটের স্ট্যাটিক সদস্যপদে হোস্টদের অন্তর্ভুক্ত বা বহির্ভূত করুন। ট্যাগ নিয়ম দ্বারা মেলানো হোস্টরা সর্বদা অন্তর্ভুক্ত থাকে।", + "searchHosts": "হোস্ট অনুসন্ধান করুন...", + "noHostsFound": "কোন হোস্ট খুঁজে পাওয়া যায়নি", + "noMembers": "এই ফ্লিটে এখনও কোনো সদস্য নেই। হোস্ট যোগ করুন অথবা একটি ট্যাগ নিয়ম সেট করুন।", + "membersLoadFailed": "ফ্লিট সদস্যদের লোড করতে ব্যর্থ হয়েছে", + "memberUpdateFailed": "ফ্লিট সদস্যপদ আপডেট করতে ব্যর্থ হয়েছে", + "tabRun": "রান কমান্ড", + "tabTransfer": "ফাইল স্থানান্তর করুন", + "tabInventory": "ইনভেন্টরি", + "openInventoryTab": "সম্পূর্ণ ট্যাবে খুলুন", + "tabPackages": "প্যাকেজ", + "runOnFleet": "ফ্লিটে চালান", + "commandPlaceholder": "আপটাইম && df -h", + "commandRequired": "একটি কমান্ড প্রয়োজন", + "commandInputsLabel": "কমান্ড ইনপুট", + "commandSucceeded": "সকল হোস্টে কমান্ড সফল হয়েছে।", + "commandPartialFailure": "{{failed}} এর {{total}} হোস্ট ব্যর্থ হয়েছে", + "commandFailed": "কমান্ড চালাতে ব্যর্থ হয়েছে", + "resultSuccess": "সাফল্য", + "resultFailed": "ব্যর্থ", + "push": "ধাক্কা দিন", + "pull": "টান", + "remotePathLabel": "দূরবর্তী পথ", + "remotePathRequired": "একটি দূরবর্তী পথের প্রয়োজন", + "fileLabel": "ফাইল", + "fileRequired": "একটি ফাইল প্রয়োজন", + "pushHint": "নির্বাচিত ফাইলটি ফ্লিটের প্রতিটি হোস্টের এই নির্দিষ্ট পাথে লেখা হয়।", + "pullHint": "এই পাথের ফাইলটি প্রতিটি হোস্ট থেকে পড়া হয় এবং একটি একক জিপ ফাইল হিসেবে ডাউনলোড করা হয়, যা প্রতি হোস্টে একটি করে ফোল্ডারে বিভক্ত থাকে।", + "transferComplete": "স্থানান্তর সম্পন্ন হয়েছে", + "transferFailed": "স্থানান্তর ব্যর্থ হয়েছে", + "refreshInventory": "ইনভেন্টরি রিফ্রেশ করুন", + "inventoryLoadFailed": "ইনভেন্টরি লোড করতে ব্যর্থ হয়েছে", + "inventoryRefreshed": "ইনভেন্টরি রিফ্রেশ করা হয়েছে", + "inventoryRefreshFailed": "ইনভেন্টরি রিফ্রেশ করতে ব্যর্থ হয়েছে", + "inventoryNoData": "এখনও কোনো ইনভেন্টরি ডেটা নেই - এটি সংগ্রহ করতে রিফ্রেশ করুন।", + "inventoryHost": "হোস্ট", + "inventoryCollectedCount": "{{count}}/{{total}} সংগৃহীত", + "inventoryOs": "ওএস", + "inventoryKernel": "কার্নেল", + "inventoryArch": "খিলান", + "inventoryUptime": "আপটাইম", + "inventoryPackageManager": "প্যাকেজ ম্যানেজার", + "inventoryCollectedAt": "সংগৃহীত", + "packageActionLabel": "পদক্ষেপ", + "packageInstall": "ইনস্টল করুন", + "packageRemove": "অপসারণ করুন", + "packageUpgradeAll": "সমস্ত প্যাকেজ আপগ্রেড করুন", + "packageNameLabel": "প্যাকেজের নাম", + "packageNameRequired": "একটি প্যাকেজের নাম প্রয়োজন", + "packageHint": "প্রতিটি হোস্টের জন্য ম্যানেজ-লেভেল অ্যাক্সেস প্রয়োজন এবং হোস্টের সংরক্ষিত sudo পাসওয়ার্ড ব্যবহার করে অ্যাক্সেস উন্নত করা হয়।", + "shareFleet": "শেয়ার ফ্লিট", + "shareFleetTitle": "শেয়ার করুন \"{{name}}\"", + "shareFleetDescription": "এই ফ্লিটের বর্তমান সদস্য হোস্টগুলোকে নির্বাচিত ব্যবহারকারী বা রোলের সাথে শেয়ার করে। ফ্লিটে পরে যোগ করা হোস্টগুলো স্বয়ংক্রিয়ভাবে শেয়ার হয় না - সেগুলোকে অন্তর্ভুক্ত করতে আবার শেয়ার করুন।", + "shareSelectionRequired": "অন্তত একজন ব্যবহারকারী বা ভূমিকা নির্বাচন করুন", + "fleetSharedSuccessfully": "এই ফ্লিটে {{total}} টি {{shared}} টি শেয়ার করা হোস্ট রয়েছে।", + "failedToShareFleet": "ফ্লিট শেয়ার করতে ব্যর্থ হয়েছে", + "noMembersToShare": "এই ফ্লিটে এখনও শেয়ার করার মতো কোনো সদস্য হোস্ট নেই।" } } }, "nav": { - "fleets": "Fleets" + "fleets": "ফ্লিট" }, "hosts": { - "docsLink": "View docs", + "docsLink": "নথি দেখুন", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "অ্যাক্সেসের মেয়াদ শেষ হতে বাকি ঘন্টা", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "কখনো না", + "oneHour": "১ ঘন্টা", + "oneDay": "২৪ ঘন্টা", + "sevenDays": "৭ দিন", + "thirtyDays": "৩০ দিন", + "custom": "কাস্টম" }, - "expiryLabel": "Access expiry", + "expiryLabel": "অ্যাক্সেসের মেয়াদ শেষ", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "সংযোগ করুন", + "description": "শুধুমাত্র টার্মিনাল, রিমোট ডেস্কটপ, ফাইল ম্যানেজার, টানেল এবং ডকার সেশনগুলো খোলা থাকবে। হোস্ট কনফিগারেশনে কোনো অ্যাক্সেস নেই।" }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "দেখুন", + "description": "সংযোগ করুন, এবং হোস্ট কনফিগারেশন দেখুন। গোপনীয় তথ্য কখনোই দেখানো হয় না।" }, "edit": { - "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "label": "সম্পাদনা", + "description": "নন-অথেনটিকেশন হোস্ট সেটিংস দেখুন এবং পরিবর্তন করুন। মালিকের SSH অথেনটিকেশন ব্যক্তিগত এবং শুধুমাত্র মালিকের জন্যই সংরক্ষিত থাকে।" }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "পরিচালনা করুন", + "description": "সম্পাদনা করুন, সেইসাথে অন্যদের সাথে হোস্টটি শেয়ার করুন, অনুমতির স্তর পরিবর্তন করুন এবং অ্যাক্সেস প্রত্যাহার করুন।" } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "কোনো মিল খুঁজে পাওয়া যায়নি", + "permissionLevelLabel": "অনুমতি স্তর", + "rolesTab": "ভূমিকা", + "searchPlaceholder": "ব্যবহারকারী বা ভূমিকা অনুসন্ধান করুন...", + "shareButton": "শেয়ার", + "shareWithCount": "শেয়ার করুন ({{count}})", + "usersTab": "ব্যবহারকারীরা" } } } diff --git a/plugins/fleets/locales/translated/hi_IN.json b/plugins/fleets/locales/translated/hi_IN.json index 0c51d8703..b30adc2d9 100644 --- a/plugins/fleets/locales/translated/hi_IN.json +++ b/plugins/fleets/locales/translated/hi_IN.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "बेड़े देखें", + "description": "बेड़े, उनके सदस्य और माल सूची देखें।" }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "बेड़े का प्रबंधन करें", + "description": "फ्लीट बनाएं, संपादित करें और हटाएं, सदस्यता बदलें और फ्लीट को अन्य उपयोगकर्ताओं या भूमिकाओं के साथ साझा करें।" }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "फ्लीट कार्रवाइयां चलाएं", + "description": "एक फ्लीट में कमांड चलाएं और पैकेज संबंधी कार्रवाइयां करें, और इसके सदस्य होस्ट से और उनके बीच फाइलें स्थानांतरित करें।" } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "बेड़े", + "createFleet": "बेड़ा बनाएं", + "createFleetTitle": "बेड़ा बनाएं", + "editFleetTitle": "बेड़े को संपादित करें", + "createFleetDescription": "फ्लीट होस्ट का एक नामित समूह है जिसके विरुद्ध आप एक इकाई के रूप में कार्रवाई कर सकते हैं।", "nameLabel": "नाम", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "उदाहरण के लिए, वेब सर्वर", + "nameRequired": "बेड़े का नाम आवश्यक है", "descriptionLabel": "विवरण", "descriptionPlaceholder": "वैकल्पिक विवरण", "colorLabel": "रंग", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesLabel": "टैग नियम", + "tagRulesPlaceholder": "प्रोड-वेब, एज", + "tagRulesHint": "मैन्युअल रूप से जोड़े गए होस्ट के अतिरिक्त, इनमें से किसी भी टैग वाले होस्ट स्वचालित रूप से शामिल हो जाते हैं।", + "fleetCreated": "बेड़ा बनाया गया", + "fleetUpdated": "बेड़े को अपडेट किया गया", + "fleetDeleted": "बेड़ा हटा दिया गया", + "saveFailed": "बेड़े को बचाने में विफल", + "deleteFailed": "बेड़ा हटाने में विफल", + "loadFailed": "फ्लीट लोड करने में विफल", + "deleteFleetTitle": "बेड़ा हटाएं", + "deleteFleetDescription": "क्या आप वाकई \"{{name}}\" को हटाना चाहते हैं? इससे सदस्य होस्ट स्वयं नहीं हटेंगे।", + "searchFleets": "खोज बेड़े...", + "noFleets": "अभी तक कोई बेड़ा नहीं है। शुरुआत करने के लिए एक बेड़ा बनाएं।", + "memberCount": "{{count}} होस्ट", "memberCount_other": "{{count}} होस्ट", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "सदस्यों का प्रबंधन करें", + "manageMembersTitle": "बेड़े के सदस्यों का प्रबंधन करें", + "manageMembersDescription": "इस फ्लीट की स्थायी सदस्यता में होस्ट को शामिल या बाहर करें। टैग नियमों द्वारा मेल खाने वाले होस्ट हमेशा शामिल होते हैं।", "searchHosts": "होस्ट खोजें...", "noHostsFound": "कोई होस्ट नहीं मिला", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "इस फ्लीट में अभी कोई सदस्य नहीं है। होस्ट जोड़ें या टैग नियम सेट करें।", + "membersLoadFailed": "फ्लीट सदस्यों को लोड करने में विफल", + "memberUpdateFailed": "फ्लीट सदस्यता को अपडेट करने में विफल", + "tabRun": "कमांड चलाएँ", + "tabTransfer": "फ़ाइलें स्थानांतरित करें", + "tabInventory": "भंडार", + "openInventoryTab": "पूरे टैब में खोलें", "tabPackages": "पैकेजेस", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "runOnFleet": "फ्लीट पर चलाएँ", + "commandPlaceholder": "अपटाइम && df -h", + "commandRequired": "एक आदेश आवश्यक है", + "commandInputsLabel": "कमांड इनपुट", + "commandSucceeded": "सभी होस्ट पर कमांड सफलतापूर्वक संचालित हुई।", + "commandPartialFailure": "{{failed}} में से {{total}} होस्ट विफल हो गए", + "commandFailed": "कमांड चलाने में विफल", "resultSuccess": "सफल", "resultFailed": "असफल", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "धकेलना", + "pull": "खींचो", + "remotePathLabel": "दूरस्थ पथ", + "remotePathRequired": "एक दूरस्थ मार्ग आवश्यक है", "fileLabel": "फ़ाइल", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "एक फ़ाइल आवश्यक है", + "pushHint": "चयनित फ़ाइल को फ्लीट में मौजूद प्रत्येक होस्ट पर ठीक इसी पथ पर लिखा जाता है।", + "pullHint": "इस पथ पर स्थित फ़ाइल को प्रत्येक होस्ट से पढ़ा जाता है और एक ही ज़िप फ़ाइल के रूप में डाउनलोड किया जाता है, जिसमें प्रत्येक होस्ट के लिए एक फ़ोल्डर होता है।", "transferComplete": "स्थानांतरण पूर्ण", "transferFailed": "स्थानांतरण विफल", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "इन्वेंट्री रीफ़्रेश करें", + "inventoryLoadFailed": "इन्वेंट्री लोड करने में विफल", + "inventoryRefreshed": "इन्वेंट्री रीफ़्रेश हो गई", + "inventoryRefreshFailed": "इन्वेंट्री को रीफ़्रेश करने में विफल", + "inventoryNoData": "अभी कोई इन्वेंट्री डेटा उपलब्ध नहीं है - इसे प्राप्त करने के लिए पेज को रिफ्रेश करें।", "inventoryHost": "होस्ट", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} एकत्रित", "inventoryOs": "ओएस", "inventoryKernel": "कर्नेल", - "inventoryArch": "Arch", + "inventoryArch": "मेहराब", "inventoryUptime": "अपटाइम", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "पैकेज प्रबंधक", + "inventoryCollectedAt": "एकत्र किया हुआ", "packageActionLabel": "क्रिया", - "packageInstall": "Install", + "packageInstall": "स्थापित करना", "packageRemove": "हटाएँ", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "सभी पैकेजों को अपग्रेड करें", + "packageNameLabel": "पैकेज का नाम", + "packageNameRequired": "पैकेज का नाम आवश्यक है", + "packageHint": "प्रत्येक होस्ट के लिए प्रबंधन-स्तर की पहुँच आवश्यक है और होस्ट के संग्रहीत सूडो पासवर्ड का उपयोग करके पहुँच को बढ़ाया जा सकता है।", + "shareFleet": "शेयर फ्लीट", + "shareFleetTitle": "शेयर करें \"{{name}}\"", + "shareFleetDescription": "यह सेवा इस फ्लीट के वर्तमान सदस्य होस्ट्स को चयनित उपयोगकर्ताओं या भूमिकाओं के साथ साझा करती है। फ्लीट में बाद में जोड़े गए होस्ट्स स्वचालित रूप से साझा नहीं होते हैं - उन्हें शामिल करने के लिए पुनः साझा करें।", + "shareSelectionRequired": "कम से कम एक उपयोगकर्ता या भूमिका का चयन करें", + "fleetSharedSuccessfully": "इस बेड़े में {{total}} मेज़बान(ओं) का साझा {{shared}} है", + "failedToShareFleet": "बेड़ा साझा करने में विफल", + "noMembersToShare": "इस फ्लीट में अभी तक कोई सदस्य होस्ट नहीं है जो अपनी सेवाएं साझा कर सके।" } } }, "nav": { - "fleets": "Fleets" + "fleets": "बेड़े" }, "hosts": { "docsLink": "दस्तावेज़ देखें", @@ -131,7 +131,7 @@ }, "edit": { "label": "संपादित करें", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "आप बिना प्रमाणीकरण वाले होस्ट की सेटिंग्स देख सकते हैं और उनमें बदलाव कर सकते हैं। मालिक का SSH प्रमाणीकरण गोपनीय रहता है और केवल मालिक के लिए ही उपलब्ध होता है।" }, "manage": { "label": "प्रबंधित करें", diff --git a/plugins/fleets/locales/translated/id_ID.json b/plugins/fleets/locales/translated/id_ID.json index 18ffb4fa6..4ac96588a 100644 --- a/plugins/fleets/locales/translated/id_ID.json +++ b/plugins/fleets/locales/translated/id_ID.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Lihat armada", + "description": "Lihat armada, anggotanya, dan inventarisnya." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Mengelola armada", + "description": "Buat, edit, dan hapus armada, ubah keanggotaan, dan bagikan armada dengan pengguna atau peran lain." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Jalankan tindakan armada.", + "description": "Jalankan perintah dan tindakan paket di seluruh armada, dan transfer file ke dan dari host anggotanya." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "title": "Armada", + "createFleet": "Buat Armada", + "createFleetTitle": "Buat Armada", + "editFleetTitle": "Edit Armada", + "createFleetDescription": "Armada adalah kelompok host bernama yang dapat Anda serang sebagai satu unit.", + "nameLabel": "Nama", + "namePlaceholder": "misalnya, Server Web", + "nameRequired": "Nama armada wajib diisi.", + "descriptionLabel": "Keterangan", + "descriptionPlaceholder": "Deskripsi opsional", + "colorLabel": "Warna", + "tagRulesLabel": "Aturan tag", + "tagRulesPlaceholder": "prod-web, tepi", + "tagRulesHint": "Host yang memiliki salah satu tag ini akan disertakan secara otomatis, di samping host yang ditambahkan secara manual.", + "fleetCreated": "Armada yang dibuat", + "fleetUpdated": "Armada diperbarui", + "fleetDeleted": "Armada dihapus", + "saveFailed": "Gagal menyelamatkan armada.", + "deleteFailed": "Gagal menghapus armada", + "loadFailed": "Gagal memuat armada", + "deleteFleetTitle": "Hapus Armada", + "deleteFleetDescription": "Apakah Anda yakin ingin menghapus \"{{name}}\"? Ini tidak menghapus host anggota itu sendiri.", + "searchFleets": "Armada pencarian...", + "noFleets": "Belum ada armada. Buat satu untuk memulai.", + "memberCount": "{{count}} tuan rumah", + "memberCount_other": "{{count}} tuan rumah", + "manageMembers": "Kelola Anggota", + "manageMembersTitle": "Mengelola Anggota Armada", + "manageMembersDescription": "Aktifkan atau nonaktifkan keanggotaan statis host dalam armada ini. Host yang cocok dengan aturan tag akan selalu disertakan.", + "searchHosts": "Cari host...", + "noHostsFound": "Tidak ada host yang ditemukan.", + "noMembers": "Armada ini belum memiliki anggota. Tambahkan host atau tetapkan aturan tag.", + "membersLoadFailed": "Gagal memuat anggota armada", + "memberUpdateFailed": "Gagal memperbarui keanggotaan armada.", + "tabRun": "Jalankan Perintah", + "tabTransfer": "Transfer File", + "tabInventory": "Inventaris", + "openInventoryTab": "Buka di tab penuh", + "tabPackages": "Paket", + "runOnFleet": "Lari di Armada", + "commandPlaceholder": "waktu aktif && df -h", + "commandRequired": "Diperlukan sebuah perintah.", + "commandInputsLabel": "Masukan perintah", + "commandSucceeded": "Perintah berhasil dijalankan di semua host.", + "commandPartialFailure": "{{failed}} dari {{total}} host gagal", + "commandFailed": "Perintah gagal dijalankan.", + "resultSuccess": "Kesuksesan", + "resultFailed": "Gagal", + "push": "Dorongan", + "pull": "Menarik", + "remotePathLabel": "Jalur jarak jauh", + "remotePathRequired": "Diperlukan jalur jarak jauh.", + "fileLabel": "Mengajukan", + "fileRequired": "Diperlukan sebuah berkas.", + "pushHint": "File yang dipilih akan ditulis ke jalur persis ini di setiap host dalam armada.", + "pullHint": "Berkas di jalur ini dibaca dari setiap host dan diunduh sebagai satu file zip, satu folder per host.", + "transferComplete": "Transfer selesai", + "transferFailed": "Transfer gagal", + "refreshInventory": "Perbarui Inventaris", + "inventoryLoadFailed": "Gagal memuat inventaris", + "inventoryRefreshed": "Persediaan diperbarui", + "inventoryRefreshFailed": "Gagal memperbarui inventaris", + "inventoryNoData": "Belum ada data inventaris - segarkan halaman untuk mengumpulkannya.", + "inventoryHost": "Tuan rumah", + "inventoryCollectedCount": "{{count}}/{{total}} dikumpulkan", + "inventoryOs": "Sistem Operasi", + "inventoryKernel": "Inti", + "inventoryArch": "Lengkungan", + "inventoryUptime": "Waktu aktif", + "inventoryPackageManager": "Pengelola paket", + "inventoryCollectedAt": "Dikumpulkan", + "packageActionLabel": "Tindakan", + "packageInstall": "Memasang", + "packageRemove": "Menghapus", + "packageUpgradeAll": "Tingkatkan semua paket", + "packageNameLabel": "Nama paket", + "packageNameRequired": "Nama paket wajib diisi.", + "packageHint": "Membutuhkan akses tingkat pengelola per host dan ditingkatkan menggunakan kata sandi sudo yang tersimpan di host tersebut.", + "shareFleet": "Armada Bersama", + "shareFleetTitle": "Bagikan \"{{name}}\"", + "shareFleetDescription": "Membagikan host anggota armada saat ini kepada pengguna atau peran yang dipilih. Host yang ditambahkan ke armada kemudian tidak dibagikan secara otomatis - bagikan lagi untuk menyertakannya.", + "shareSelectionRequired": "Pilih setidaknya satu pengguna atau peran", + "fleetSharedSuccessfully": "Berbagi {{shared}} dari {{total}} host di armada ini", + "failedToShareFleet": "Gagal berbagi armada", + "noMembersToShare": "Armada ini belum memiliki anggota yang dapat dibagikan." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Armada" }, "hosts": { - "docsLink": "View docs", + "docsLink": "Lihat dokumen", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Waktu hingga akses berakhir", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Tidak pernah", + "oneHour": "1 jam", + "oneDay": "24 jam", + "sevenDays": "7 hari", + "thirtyDays": "30 hari", + "custom": "Kebiasaan" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Kedaluwarsa akses", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "Menghubungkan", + "description": "Hanya sesi yang diizinkan untuk dibuka: terminal, desktop jarak jauh, pengelola file, terowongan, dan Docker. Tidak ada akses ke konfigurasi host." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Melihat", + "description": "Hubungkan, dan lihat konfigurasi host. Rahasia tidak akan pernah ditampilkan." }, "edit": { "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Lihat, dan ubah pengaturan host non-autentikasi. Autentikasi SSH pemilik tetap bersifat pribadi dan hanya untuk pemilik." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Mengelola", + "description": "Edit, bagikan host dengan orang lain, ubah tingkat izin, dan cabut akses." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "Tidak ditemukan kecocokan.", + "permissionLevelLabel": "Tingkat izin", + "rolesTab": "Peran", + "searchPlaceholder": "Cari pengguna atau peran...", + "shareButton": "Membagikan", + "shareWithCount": "Bagikan ({{count}})", + "usersTab": "Pengguna" } } } diff --git a/plugins/fleets/locales/translated/no_NO.json b/plugins/fleets/locales/translated/no_NO.json index 7ae1226eb..def3cc808 100644 --- a/plugins/fleets/locales/translated/no_NO.json +++ b/plugins/fleets/locales/translated/no_NO.json @@ -1,149 +1,149 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Se flåter", + "description": "Se flåter, deres medlemmer og inventar." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Administrer flåter", + "description": "Opprett, rediger og slett flåter, endre medlemskap og del flåter med andre brukere eller roller." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Kjør flåtehandlinger", + "description": "Kjør kommandoer og pakkehandlinger på tvers av en flåte, og overfør filer til og fra medlemsvertene." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "Flåter", + "createFleet": "Opprett flåte", + "createFleetTitle": "Opprett flåte", + "editFleetTitle": "Rediger flåte", + "createFleetDescription": "En flåte er en navngitt gruppe verter du kan kjøre handlinger mot som en enhet.", "nameLabel": "Navn", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "f.eks. webservere", + "nameRequired": "Flåtenavn er obligatorisk", "descriptionLabel": "Beskrivelse", "descriptionPlaceholder": "Valgfri beskrivelse", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "colorLabel": "Farge", + "tagRulesLabel": "Taggregler", + "tagRulesPlaceholder": "prod-web, kant", + "tagRulesHint": "Verter med noen av disse taggene inkluderes automatisk, i tillegg til verter som legges til manuelt.", + "fleetCreated": "Flåte opprettet", + "fleetUpdated": "Flåten er oppdatert", + "fleetDeleted": "Flåten er slettet", + "saveFailed": "Kunne ikke lagre flåten", + "deleteFailed": "Kunne ikke slette flåten", + "loadFailed": "Kunne ikke laste inn flåter", + "deleteFleetTitle": "Slett flåte", + "deleteFleetDescription": "Er du sikker på at du vil slette «{{name}}»? Dette sletter ikke selve medlemsvertene.", + "searchFleets": "Søk etter flåter...", + "noFleets": "Ingen flåter ennå. Opprett en for å komme i gang.", + "memberCount": "{{count}} vert", "memberCount_other": "{{count}} verter", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "manageMembers": "Administrer medlemmer", + "manageMembersTitle": "Administrer flåtemedlemmer", + "manageMembersDescription": "Veksle verter inn eller ut av denne flåtens statiske medlemskap. Verter som samsvarer med tagregler er alltid inkludert.", + "searchHosts": "Søk etter verter...", + "noHostsFound": "Ingen verter funnet", + "noMembers": "Denne flåten har ingen medlemmer ennå. Legg til verter eller angi en tagregel.", + "membersLoadFailed": "Kunne ikke laste inn flåtemedlemmer", + "memberUpdateFailed": "Kunne ikke oppdatere flåtemedlemskapet", + "tabRun": "Kjør kommando", + "tabTransfer": "Overfør filer", + "tabInventory": "Inventar", + "openInventoryTab": "Åpne i full fane", + "tabPackages": "Pakker", + "runOnFleet": "Kjør på flåten", + "commandPlaceholder": "oppetid og df -h", + "commandRequired": "En kommando er nødvendig", + "commandInputsLabel": "Kommandoinnganger", + "commandSucceeded": "Kommandoen lyktes på alle verter", + "commandPartialFailure": "{{failed}} av {{total}} verter mislyktes", + "commandFailed": "Kunne ikke kjøre kommandoen", "resultSuccess": "Suksess", "resultFailed": "Mislyktes", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "Trykk", + "pull": "Dra", + "remotePathLabel": "Fjernbane", + "remotePathRequired": "En ekstern sti er nødvendig", "fileLabel": "Fil", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "fileRequired": "En fil er nødvendig", + "pushHint": "Den valgte filen skrives til denne nøyaktige banen på alle verter i flåten.", + "pullHint": "Filen på denne banen leses fra hver vert og lastes ned som en enkelt zip-fil, én mappe per vert.", + "transferComplete": "Overføringen er fullført", + "transferFailed": "Overføringen mislyktes", + "refreshInventory": "Oppdater beholdningen", + "inventoryLoadFailed": "Kunne ikke laste inn beholdningen", + "inventoryRefreshed": "Lagerbeholdningen er oppdatert", + "inventoryRefreshFailed": "Kunne ikke oppdatere beholdningen", + "inventoryNoData": "Ingen lagerdata ennå – oppdater for å samle dem inn.", + "inventoryHost": "Vert", + "inventoryCollectedCount": "{{count}}/{{total}} samlet", "inventoryOs": "OS", "inventoryKernel": "Kjerne", - "inventoryArch": "Arch", + "inventoryArch": "Buen", "inventoryUptime": "Oppetid", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", + "inventoryPackageManager": "Pakkebehandler", + "inventoryCollectedAt": "Samlet", + "packageActionLabel": "Handling", + "packageInstall": "Installer", "packageRemove": "Fjern", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Oppgrader alle pakker", + "packageNameLabel": "Pakkenavn", + "packageNameRequired": "Et pakkenavn er obligatorisk", + "packageHint": "Krever tilgang på administratornivå per vert og heves ved hjelp av vertens lagrede sudo-passord.", + "shareFleet": "Del flåte", + "shareFleetTitle": "Del «{{name}}»", + "shareFleetDescription": "Deler denne flåtens nåværende medlemsverter med de valgte brukerne eller rollene. Verter som legges til flåten senere deles ikke automatisk – del på nytt for å inkludere dem.", + "shareSelectionRequired": "Velg minst én bruker eller rolle", + "fleetSharedSuccessfully": "Delt {{shared}} av {{total}} vert(er) i denne flåten", + "failedToShareFleet": "Kunne ikke dele flåten", + "noMembersToShare": "Denne flåten har ingen medlemsverter å dele ennå." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Flåter" }, "hosts": { - "docsLink": "View docs", + "docsLink": "Vis dokumenter", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Timer til tilgangen utløper", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Aldri", + "oneHour": "1 time", + "oneDay": "24 timer", + "sevenDays": "7 dager", + "thirtyDays": "30 dager", + "custom": "Skikk" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Utløpsdato for tilgang", "levels": { "connect": { "label": "Koble til", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "description": "Kun åpne økter: terminal, eksternt skrivebord, filbehandler, tunneler og Docker. Ingen tilgang til vertskonfigurasjonen." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Utsikt", + "description": "Koble til, pluss se vertskonfigurasjonen. Hemmeligheter vises aldri." }, "edit": { "label": "Rediger", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Vis og endre innstillinger for verter uten autentisering. Eierens SSH-autentisering forblir privat og kun for eieren." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Administrer", + "description": "Rediger, pluss del verten med andre, endre tillatelsesnivåer og tilbakekall tilgang." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", + "noMatches": "Ingen treff funnet", + "permissionLevelLabel": "Tillatelsesnivå", + "rolesTab": "Roller", + "searchPlaceholder": "Søk etter brukere eller roller...", + "shareButton": "Dele", + "shareWithCount": "Del ({{count}})", "usersTab": "Brukere" } } diff --git a/plugins/fleets/locales/translated/pl_PL.json b/plugins/fleets/locales/translated/pl_PL.json index 2eff54dea..41f2d3606 100644 --- a/plugins/fleets/locales/translated/pl_PL.json +++ b/plugins/fleets/locales/translated/pl_PL.json @@ -1,16 +1,16 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Wyświetl floty", + "description": "Zobacz floty, ich członków i zapasy." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Zarządzaj flotami", + "description": "Twórz, edytuj i usuwaj floty, zmieniaj członkostwo i udostępniaj floty innym użytkownikom lub rolom." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Wykonaj akcje floty", + "description": "Uruchamiaj polecenia i pakiety działań w obrębie floty oraz przesyłaj pliki do i z jej hostów członkowskich." } }, "newUi": { @@ -94,13 +94,13 @@ "packageNameLabel": "Nazwa pakietu", "packageNameRequired": "Wymagana jest nazwa pakietu", "packageHint": "Wymaga dostępu na poziomie zarządzania na każdym hoście i podnosi uprawnienia zapisanym hasłem sudo hosta.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "shareFleet": "Udostępnij flotę", + "shareFleetTitle": "Udostępnij „{{name}}”", + "shareFleetDescription": "Udostępnia aktualnych gospodarzy należących do tej floty wybranym użytkownikom lub rolom. Gospodarze dodani do floty później nie są udostępniani automatycznie — udostępnij ponownie, aby ich uwzględnić.", + "shareSelectionRequired": "Wybierz co najmniej jednego użytkownika lub rolę", + "fleetSharedSuccessfully": "Udostępniono {{shared}} z {{total}} hostów w tej flocie", + "failedToShareFleet": "Nie udało się udostępnić floty", + "noMembersToShare": "Ta flota nie ma jeszcze żadnych członków-gospodarzy, którymi można by się podzielić." } } }, diff --git a/plugins/fleets/locales/translated/pt_BR.json b/plugins/fleets/locales/translated/pt_BR.json index b907aaed6..4252696f7 100644 --- a/plugins/fleets/locales/translated/pt_BR.json +++ b/plugins/fleets/locales/translated/pt_BR.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Ver frotas", + "description": "Veja as frotas, seus membros e inventário." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Gerenciar frotas", + "description": "Crie, edite e exclua frotas, altere a composição da frota e compartilhe frotas com outros usuários ou funções." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Realizar operações de frota", + "description": "Execute comandos e ações de pacotes em toda a frota e transfira arquivos de e para seus hosts membros." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", + "title": "Frotas", + "createFleet": "Criar Frota", + "createFleetTitle": "Criar Frota", + "editFleetTitle": "Editar frota", + "createFleetDescription": "Uma frota é um grupo nomeado de hosts contra os quais você pode executar ações como uma unidade.", + "nameLabel": "Nome", + "namePlaceholder": "Por exemplo, servidores web", + "nameRequired": "É necessário nomear a frota.", + "descriptionLabel": "Descrição", + "descriptionPlaceholder": "Descrição opcional", + "colorLabel": "Cor", + "tagRulesLabel": "Regras de etiqueta", "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", + "tagRulesHint": "Os hosts com qualquer uma dessas tags são incluídos automaticamente, além dos hosts adicionados manualmente.", + "fleetCreated": "Frota criada", + "fleetUpdated": "Frota atualizada", + "fleetDeleted": "Frota excluída", + "saveFailed": "Não conseguiram salvar a frota.", + "deleteFailed": "Falha ao excluir a frota", + "loadFailed": "Falha ao carregar as frotas", + "deleteFleetTitle": "Excluir frota", + "deleteFleetDescription": "Tem certeza de que deseja excluir \"{{name}}\"? Isso não exclui os próprios hosts membros.", + "searchFleets": "Pesquisar frotas...", + "noFleets": "Ainda não há frotas. Crie uma para começar.", + "memberCount": "{{count}} anfitrião", + "memberCount_other": "{{count}} anfitriões", + "manageMembers": "Gerenciar membros", + "manageMembersTitle": "Gerenciar membros da frota", + "manageMembersDescription": "Ative ou desative a inclusão de hosts nesta frota estática. Os hosts que corresponderem às regras de tags serão sempre incluídos.", + "searchHosts": "Pesquisar hosts...", + "noHostsFound": "Nenhum host encontrado", + "noMembers": "Esta frota ainda não tem membros. Adicione anfitriões ou defina uma regra de etiqueta.", + "membersLoadFailed": "Falha ao carregar membros da frota", + "memberUpdateFailed": "Falha na atualização da associação à frota", + "tabRun": "Executar comando", + "tabTransfer": "Transferir arquivos", + "tabInventory": "Inventário", + "openInventoryTab": "Abrir em aba inteira", + "tabPackages": "Pacotes", + "runOnFleet": "Executar na frota", + "commandPlaceholder": "tempo de atividade e df -h", + "commandRequired": "É necessário um comando.", + "commandInputsLabel": "Entradas de comando", + "commandSucceeded": "O comando foi executado com sucesso em todos os hosts.", + "commandPartialFailure": "{{failed}} de {{total}} hosts falharam", + "commandFailed": "Falha ao executar o comando", + "resultSuccess": "Sucesso", + "resultFailed": "Fracassado", + "push": "Empurrar", + "pull": "Puxar", + "remotePathLabel": "Caminho remoto", + "remotePathRequired": "É necessário um caminho remoto.", + "fileLabel": "Arquivo", + "fileRequired": "É necessário um arquivo.", + "pushHint": "O arquivo selecionado é gravado exatamente nesse caminho em todos os hosts da frota.", + "pullHint": "O arquivo neste caminho é lido de cada host e baixado como um único arquivo zip, uma pasta por host.", + "transferComplete": "Transferência concluída", + "transferFailed": "A transferência falhou", + "refreshInventory": "Atualizar inventário", + "inventoryLoadFailed": "Falha ao carregar o inventário", + "inventoryRefreshed": "Inventário atualizado", + "inventoryRefreshFailed": "Falha ao atualizar o inventário", + "inventoryNoData": "Ainda não há dados de estoque - atualize a página para coletá-los.", + "inventoryHost": "Hospedar", + "inventoryCollectedCount": "{{count}}/{{total}} coletado", + "inventoryOs": "SO", "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", + "inventoryArch": "Arco", + "inventoryUptime": "Tempo de atividade", + "inventoryPackageManager": "Gerenciador de pacotes", + "inventoryCollectedAt": "Coletado", + "packageActionLabel": "Ação", + "packageInstall": "Instalar", "packageRemove": "Remover", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Atualize todos os pacotes", + "packageNameLabel": "Nome do pacote", + "packageNameRequired": "É necessário informar o nome do pacote.", + "packageHint": "Requer acesso de nível de gerenciamento por host e eleva os privilégios usando a senha sudo armazenada no host.", + "shareFleet": "Frota compartilhada", + "shareFleetTitle": "Compartilhar \"{{name}}\"", + "shareFleetDescription": "Compartilha os hosts membros atuais desta frota com os usuários ou funções selecionados. Hosts adicionados à frota posteriormente não são compartilhados automaticamente — compartilhe novamente para incluí-los.", + "shareSelectionRequired": "Selecione pelo menos um usuário ou função.", + "fleetSharedSuccessfully": "Compartilhado de {{shared}} de {{total}} hosts nesta frota", + "failedToShareFleet": "Não foi possível compartilhar a frota.", + "noMembersToShare": "Esta frota ainda não possui anfitriões membros para compartilhar." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Frotas" }, "hosts": { "docsLink": "Documentação", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Horas restantes até o acesso expirar", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Nunca", + "oneHour": "1 hora", + "oneDay": "24 horas", + "sevenDays": "7 dias", + "thirtyDays": "30 dias", + "custom": "Personalizado" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Expiração do acesso", "levels": { "connect": { "label": "Conectar", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "description": "Somente sessões abertas: terminal, área de trabalho remota, gerenciador de arquivos, túneis e Docker. Sem acesso à configuração do host." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Visualizar", + "description": "Conecte-se e veja a configuração do host. Os segredos nunca são exibidos." }, "edit": { "label": "Editar", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Visualize e modifique as configurações do host que não exigem autenticação. A autenticação SSH do proprietário permanece privada e restrita ao proprietário." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Gerenciar", + "description": "Edite, compartilhe o host com outras pessoas, altere os níveis de permissão e revogue o acesso." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "Nenhuma correspondência encontrada", + "permissionLevelLabel": "Nível de permissão", + "rolesTab": "Funções", + "searchPlaceholder": "Pesquisar usuários ou funções...", + "shareButton": "Compartilhar", + "shareWithCount": "Compartilhar ({{count}})", + "usersTab": "Usuários" } } } diff --git a/plugins/fleets/locales/translated/pt_PT.json b/plugins/fleets/locales/translated/pt_PT.json index 394fcf86b..c138323fb 100644 --- a/plugins/fleets/locales/translated/pt_PT.json +++ b/plugins/fleets/locales/translated/pt_PT.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Ver frotas", + "description": "Veja as frotas, os seus membros e inventário." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Gerir frotas", + "description": "Crie, edite e exclua frotas, altere a composição da frota e partilhe frotas com outros utilizadores ou funções." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Realizar operações de frota", + "description": "Execute comandos e ações de pacotes em toda a frota e transfira ficheiros de e para os seus hosts membros." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "Frotas", + "createFleet": "Criar Frota", + "createFleetTitle": "Criar Frota", + "editFleetTitle": "Editar frota", + "createFleetDescription": "Uma frota é um grupo nomeado de hosts contra os quais pode executar ações como uma unidade.", "nameLabel": "Nome", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "Por exemplo, os servidores web", + "nameRequired": "É necessário dar um nome à frota.", "descriptionLabel": "Descrição", "descriptionPlaceholder": "Descrição opcional", "colorLabel": "Cor", - "tagRulesLabel": "Tag rules", + "tagRulesLabel": "Regras de etiqueta", "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesHint": "Os hosts com qualquer uma destas etiquetas são incluídos automaticamente, para além dos hosts adicionados manualmente.", + "fleetCreated": "Frota criada", + "fleetUpdated": "Frota atualizada", + "fleetDeleted": "Frota excluída", + "saveFailed": "Não conseguiram salvar a frota.", + "deleteFailed": "Falha ao eliminar a frota", + "loadFailed": "Falha ao carregar as frotas", + "deleteFleetTitle": "Excluir frota", + "deleteFleetDescription": "Tem a certeza que pretende eliminar \"{{name}}\"? Isto não exclui os próprios hosts membros.", + "searchFleets": "Pesquisar frotas...", + "noFleets": "Ainda não há frotas. Crie uma para começar.", + "memberCount": "{{count}} anfitrião", "memberCount_other": "{{count}} máquinas", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "Gerir membros", + "manageMembersTitle": "Gerir membros da frota", + "manageMembersDescription": "Ative ou desative a inclusão de hosts nesta frota estática. Os hosts que corresponderem às regras das tags serão sempre incluídos.", "searchHosts": "Pesquisar hosts...", "noHostsFound": "Nenhum host encontrado", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "Esta frota ainda não tem membros. Adicione anfitriões ou defina uma regra de etiqueta.", + "membersLoadFailed": "Falha ao carregar membros da frota", + "memberUpdateFailed": "Falha na atualização da adesão à frota", + "tabRun": "Executar comando", + "tabTransfer": "Transferir ficheiros", + "tabInventory": "Inventário", + "openInventoryTab": "Abrir em separador inteiro", "tabPackages": "Pacotes", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "runOnFleet": "Executar na frota", + "commandPlaceholder": "tempo de atividade e df -h", + "commandRequired": "É necessário um comando.", + "commandInputsLabel": "Entradas de comando", + "commandSucceeded": "O comando foi executado com sucesso em todos os hosts.", + "commandPartialFailure": "{{failed}} de {{total}} os hosts falharam", + "commandFailed": "Falha ao executar o comando", "resultSuccess": "Sucesso", "resultFailed": "Falhou", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "Pressionar", + "pull": "Puxar", + "remotePathLabel": "Caminho remoto", + "remotePathRequired": "É necessário um caminho remoto.", "fileLabel": "Ficheiro", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "É necessário um ficheiro.", + "pushHint": "O ficheiro selecionado é gravado exatamente nesse caminho em todos os hosts da frota.", + "pullHint": "O ficheiro neste caminho é lido de cada host e descarregado como um único ficheiro zip, uma pasta por host.", "transferComplete": "Transferência concluída", "transferFailed": "Transferência falhou", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "Atualizar inventário", + "inventoryLoadFailed": "Falha ao carregar o inventário", + "inventoryRefreshed": "Inventário atualizado", + "inventoryRefreshFailed": "Falha ao atualizar o inventário", + "inventoryNoData": "Ainda não há dados de stock - atualize a página para os recolher.", "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} recolhido", "inventoryOs": "SO", "inventoryKernel": "Kernel", - "inventoryArch": "Arch", + "inventoryArch": "Arco", "inventoryUptime": "Tempo de Atividade", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "Gestor de pacotes", + "inventoryCollectedAt": "Coletado", "packageActionLabel": "Ação", - "packageInstall": "Install", + "packageInstall": "Instalar", "packageRemove": "Remover", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Atualize todos os pacotes", + "packageNameLabel": "Nome do pacote", + "packageNameRequired": "É necessário informar o nome do pacote.", + "packageHint": "Requer acesso de nível de gestão por host e eleva os privilégios utilizando a palavra-passe sudo armazenada no host.", + "shareFleet": "Frota partilhada", + "shareFleetTitle": "Partilhar \"{{name}}\"", + "shareFleetDescription": "Partilha os hosts membros atuais desta frota com os utilizadores ou funções selecionadas. Os hosts adicionados à frota posteriormente não são partilhados automaticamente — partilhe novamente para os incluir.", + "shareSelectionRequired": "Selecione pelo menos um utilizador ou função.", + "fleetSharedSuccessfully": "Partilhado a partir de {{shared}} de {{total}} hosts nesta frota", + "failedToShareFleet": "Não foi possível partilhar a frota.", + "noMembersToShare": "Esta frota ainda não tem anfitriões membros para partilhar." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Frotas" }, "hosts": { "docsLink": "Ver documentação", @@ -131,7 +131,7 @@ }, "edit": { "label": "Editar", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Visualize e modifique as definições do host que não requerem autenticação. A autenticação SSH do proprietário permanece privada e restrita ao proprietário." }, "manage": { "label": "Gerir", diff --git a/plugins/fleets/locales/translated/ru_RU.json b/plugins/fleets/locales/translated/ru_RU.json index e8d15834b..ff50cfb04 100644 --- a/plugins/fleets/locales/translated/ru_RU.json +++ b/plugins/fleets/locales/translated/ru_RU.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Просмотреть флоты", + "description": "Ознакомьтесь с флотом, его членами и инвентарем." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Управление автопарком", + "description": "Создавайте, редактируйте и удаляйте парки, изменяйте состав участников и предоставляйте доступ к паркам другим пользователям или ролям." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Выполнение действий флота", + "description": "Выполняйте команды и действия с пакетами в рамках всего парка устройств, а также передавайте файлы на входящие в него хосты и обратно." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "Флоты", + "createFleet": "Создать флот", + "createFleetTitle": "Создать флот", + "editFleetTitle": "Редактировать флот", + "createFleetDescription": "Флот — это именованная группа хостов, против которых можно выполнять действия как единое целое.", "nameLabel": "Название", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "например, веб-серверы", + "nameRequired": "Название флота обязательно.", "descriptionLabel": "Описание", "descriptionPlaceholder": "Необязательное описание", "colorLabel": "Цвет", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesLabel": "Правила тегирования", + "tagRulesPlaceholder": "прод-веб, граничный", + "tagRulesHint": "В дополнение к хостам, добавленным вручную, автоматически включаются хосты, имеющие любой из этих тегов.", + "fleetCreated": "Создан флот", + "fleetUpdated": "Обновление флота", + "fleetDeleted": "Флот уничтожен", + "saveFailed": "Не удалось спасти флот", + "deleteFailed": "Не удалось удалить флот", + "loadFailed": "Не удалось загрузить флот.", + "deleteFleetTitle": "Удалить флот", + "deleteFleetDescription": "Вы уверены, что хотите удалить \"{{name}}\"? Это не удалит сами хосты-участники.", + "searchFleets": "Поиск флотов...", + "noFleets": "Пока нет флотов. Создайте свой, чтобы начать.", + "memberCount": "{{count}} хост", "memberCount_other": "{{count}} хостов", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "Управление участниками", + "manageMembersTitle": "Управление членами автопарка", + "manageMembersDescription": "Добавляйте или исключайте хосты из статического членства в этом флоте. Хосты, соответствующие правилам тегов, всегда включаются.", "searchHosts": "Поиск хостов...", "noHostsFound": "Хосты не найдены", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "В этом флоте пока нет участников. Добавьте хостов или установите правило тегов.", + "membersLoadFailed": "Не удалось загрузить членов флота.", + "memberUpdateFailed": "Не удалось обновить данные о членстве в автопарке.", + "tabRun": "Выполнить команду", + "tabTransfer": "Передача файлов", + "tabInventory": "Инвентаризация", + "openInventoryTab": "Открыть в полноэкранном режиме", "tabPackages": "Пакеты", "runOnFleet": "Run on Fleet", "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "commandRequired": "Требуется команда", + "commandInputsLabel": "Ввод команд", + "commandSucceeded": "Команда успешно выполнена на всех хостах.", + "commandPartialFailure": "{{failed}} из {{total}} хостов не удалось", + "commandFailed": "Не удалось выполнить команду.", "resultSuccess": "Успех", "resultFailed": "Ошибка", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "Толкать", + "pull": "Тянуть", + "remotePathLabel": "Удаленный путь", + "remotePathRequired": "Требуется удаленный путь", "fileLabel": "Файл", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "Требуется файл", + "pushHint": "Выбранный файл записывается точно по этому пути на каждом хосте в сети.", + "pullHint": "Файл по этому пути считывается с каждого хоста и загружается в виде единого ZIP-архива, по одной папке на каждый хост.", "transferComplete": "Передача завершена", "transferFailed": "Ошибка передачи", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "Обновить инвентарь", + "inventoryLoadFailed": "Не удалось загрузить товарные запасы.", + "inventoryRefreshed": "Инвентарь обновлен", + "inventoryRefreshFailed": "Не удалось обновить данные об остатках на складе.", + "inventoryNoData": "Данные об остатках товара пока отсутствуют — обновите страницу, чтобы получить их.", "inventoryHost": "Хост", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} собрано", "inventoryOs": "ОС", "inventoryKernel": "Ядро", - "inventoryArch": "Arch", + "inventoryArch": "Арка", "inventoryUptime": "Время работы", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "Менеджер пакетов", + "inventoryCollectedAt": "Собрано", "packageActionLabel": "Действие", - "packageInstall": "Install", + "packageInstall": "Установить", "packageRemove": "Удалить", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Обновить все пакеты", + "packageNameLabel": "Название пакета", + "packageNameRequired": "Требуется указать имя пакета.", + "packageHint": "Для работы требуется доступ уровня администратора для каждого хоста, повышение прав осуществляется с помощью сохраненного пароля sudo для данного хоста.", + "shareFleet": "Совместное использование автопарка", + "shareFleetTitle": "Поделиться \"{{name}}\"", + "shareFleetDescription": "Предоставляет доступ к текущим хостам, входящим в этот парк, выбранным пользователям или ролям. Хосты, добавленные в парк позже, не предоставляются автоматически — предоставьте доступ снова, чтобы включить их.", + "shareSelectionRequired": "Выберите хотя бы одного пользователя или роль.", + "fleetSharedSuccessfully": "Общий {{shared}} хоста(ов) в этом флоте {{total}}", + "failedToShareFleet": "Не удалось поделиться флотом", + "noMembersToShare": "В этом флоте пока нет хостов-участников, которыми можно было бы поделиться." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Флоты" }, "hosts": { "docsLink": "Документация", @@ -131,7 +131,7 @@ }, "edit": { "label": "Редактирование", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Просмотр и изменение настроек хоста без аутентификации. SSH-аутентификация владельца остается конфиденциальной и доступна только владельцу." }, "manage": { "label": "Управление", diff --git a/plugins/fleets/locales/translated/sr_SP.json b/plugins/fleets/locales/translated/sr_SP.json index 18ffb4fa6..24dc5bc95 100644 --- a/plugins/fleets/locales/translated/sr_SP.json +++ b/plugins/fleets/locales/translated/sr_SP.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Погледајте возне паркове", + "description": "Погледајте возне паркове, њихове чланове и инвентар." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Управљајте возним парковима", + "description": "Креирајте, уређујте и бришите флоте, мењајте чланство и делите флоте са другим корисницима или улогама." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Покрени акције флоте", + "description": "Покрећите команде и акције пакета широм флоте и преносите датотеке на и са њених чланских хостова." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", + "title": "Флоте", + "createFleet": "Креирај флоту", + "createFleetTitle": "Креирај флоту", + "editFleetTitle": "Уреди флоту", + "createFleetDescription": "Флота је именована група хостова против којих можете извршавати акције као јединицу.", + "nameLabel": "Име", + "namePlaceholder": "нпр. веб сервери", + "nameRequired": "Назив флоте је обавезан", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Опциони опис", + "colorLabel": "Боја", + "tagRulesLabel": "Правила за ознаке", "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "tagRulesHint": "Домаћини са било којом од ових ознака се аутоматски укључују, поред домаћина додатих ручно.", + "fleetCreated": "Флота је створена", + "fleetUpdated": "Ажурирана флота", + "fleetDeleted": "Флота је обрисана", + "saveFailed": "Чување флоте није успело", + "deleteFailed": "Брисање флоте није успело", + "loadFailed": "Учитавање возних паркова није успело", + "deleteFleetTitle": "Обриши флоту", + "deleteFleetDescription": "Да ли сте сигурни да желите да обришете „{{name}}“? Овим се не бришу сами чланови хостови.", + "searchFleets": "Претражи флоте...", + "noFleets": "Још нема флота. Направите једну да бисте започели.", + "memberCount": "{{count}} домаћин", + "memberCount_other": "{{count}} домаћини", + "manageMembers": "Управљање члановима", + "manageMembersTitle": "Управљајте члановима флоте", + "manageMembersDescription": "Укључите или искључите хостове из статичког чланства ове флоте. Хостови који се подударају са правилима ознака су увек укључени.", + "searchHosts": "Претражи хостове...", + "noHostsFound": "Нису пронађени хостови", + "noMembers": "Ова флота још нема чланова. Додајте хостове или поставите правило за ознаке.", + "membersLoadFailed": "Учитавање чланова флоте није успело", + "memberUpdateFailed": "Ажурирање чланства у флоти није успело", + "tabRun": "Покрени команду", + "tabTransfer": "Пренос датотека", + "tabInventory": "Инвентар", + "openInventoryTab": "Отвори у целој картици", + "tabPackages": "Пакети", + "runOnFleet": "Трчи на флоти", + "commandPlaceholder": "време непрекидног рада && df -h", + "commandRequired": "Потребна је команда", + "commandInputsLabel": "Уноси команди", + "commandSucceeded": "Команда је успела на свим хостовима", + "commandPartialFailure": "{{failed}} од {{total}} хостова није успело", + "commandFailed": "Није успело покретање команде", + "resultSuccess": "Успех", + "resultFailed": "Неуспешно", + "push": "Гурај", + "pull": "Повуци", + "remotePathLabel": "Удаљена путања", + "remotePathRequired": "Потребна је удаљена путања", + "fileLabel": "Датотека", + "fileRequired": "Потребна је датотека", + "pushHint": "Изабрана датотека се уписује на ову тачну путању на сваком хосту у флоти.", + "pullHint": "Датотека на овој путањи се чита са сваког хоста и преузима као један zip фасцикла, једна фасцикла по хосту.", + "transferComplete": "Пренос завршен", + "transferFailed": "Пренос није успео", + "refreshInventory": "Освежи инвентар", + "inventoryLoadFailed": "Учитавање инвентара није успело", + "inventoryRefreshed": "Инвентар освежен", + "inventoryRefreshFailed": "Освежавање инвентара није успело", + "inventoryNoData": "Још нема података о залихама - освежите да бисте их прикупили.", + "inventoryHost": "Домаћин", + "inventoryCollectedCount": "{{count}}/{{total}} сакупљено", + "inventoryOs": "ОС", + "inventoryKernel": "Језгро", + "inventoryArch": "Лук", + "inventoryUptime": "Време непрекидног рада", + "inventoryPackageManager": "Менаџер пакета", + "inventoryCollectedAt": "Сакупљено", + "packageActionLabel": "Акција", + "packageInstall": "Инсталирај", + "packageRemove": "Уклони", + "packageUpgradeAll": "Надоградите све пакете", + "packageNameLabel": "Назив пакета", + "packageNameRequired": "Потребно је име пакета", + "packageHint": "Захтева приступ на нивоу управљања по хосту и подиже привилегије користећи сачувану sudo лозинку хоста.", + "shareFleet": "Дели флоту", + "shareFleetTitle": "Подели „{{name}}“", + "shareFleetDescription": "Дели тренутне хостове чланове ове флоте са изабраним корисницима или улогама. Хостови који се касније додају флоти се не деле аутоматски - поново делите да бисте их укључили.", + "shareSelectionRequired": "Изаберите барем једног корисника или улогу", + "fleetSharedSuccessfully": "Дељено {{shared}} од {{total}} хост(ова) у овој флоти", + "failedToShareFleet": "Дељење флоте није успело", + "noMembersToShare": "Ова флота још нема домаћине чланове за дељење." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Флоте" }, "hosts": { - "docsLink": "View docs", + "docsLink": "Прикажи документе", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Сати до истека приступа", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Никад", + "oneHour": "1 сат", + "oneDay": "24 сата", + "sevenDays": "7 дана", + "thirtyDays": "30 дана", + "custom": "Прилагођено" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Истек приступа", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "Повежи се", + "description": "Само отворене сесије: терминал, удаљена радна површина, менаџер датотека, тунели и Докер. Нема приступа конфигурацији хоста." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Поглед", + "description": "Повежите се, плус погледајте конфигурацију хоста. Тајне се никада не приказују." }, "edit": { - "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "label": "Измени", + "description": "Прегледајте и мењајте подешавања хоста која не захтевају аутентификацију. SSH аутентификација власника остаје приватна и доступна само власнику." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Управљај", + "description": "Уредите, плус делите хост са другима, мењајте нивое дозвола и опозовите приступ." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "Није пронађено ниједно подударање", + "permissionLevelLabel": "Ниво дозволе", + "rolesTab": "Улоге", + "searchPlaceholder": "Претражите кориснике или улоге...", + "shareButton": "Дели", + "shareWithCount": "Подели ({{count}})", + "usersTab": "Корисници" } } } diff --git a/plugins/fleets/locales/translated/sv_SE.json b/plugins/fleets/locales/translated/sv_SE.json index 18ffb4fa6..c6cc46d70 100644 --- a/plugins/fleets/locales/translated/sv_SE.json +++ b/plugins/fleets/locales/translated/sv_SE.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Visa flottor", + "description": "Se flottor, deras medlemmar och inventering." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Hantera flottor", + "description": "Skapa, redigera och ta bort flottor, ändra medlemskap och dela flottor med andra användare eller roller." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Kör flottans åtgärder", + "description": "Kör kommandon och paketåtgärder över en flotta och överför filer till och från dess medlemsvärdar." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "title": "Flottor", + "createFleet": "Skapa flotta", + "createFleetTitle": "Skapa flotta", + "editFleetTitle": "Redigera flotta", + "createFleetDescription": "En flotta är en namngiven grupp av värdar som du kan köra åtgärder mot som en enhet.", + "nameLabel": "Namn", + "namePlaceholder": "t.ex. webbservrar", + "nameRequired": "Flottans namn krävs", + "descriptionLabel": "Beskrivning", + "descriptionPlaceholder": "Valfri beskrivning", + "colorLabel": "Färg", + "tagRulesLabel": "Taggregler", + "tagRulesPlaceholder": "prod-web, kant", + "tagRulesHint": "Värdar med någon av dessa taggar inkluderas automatiskt, utöver värdar som läggs till manuellt.", + "fleetCreated": "Flotta skapad", + "fleetUpdated": "Flottan uppdaterad", + "fleetDeleted": "Flottan raderad", + "saveFailed": "Misslyckades med att spara flottan", + "deleteFailed": "Misslyckades med att ta bort flottan", + "loadFailed": "Misslyckades med att ladda flottor", + "deleteFleetTitle": "Ta bort flotta", + "deleteFleetDescription": "Är du säker på att du vill ta bort \"{{name}}\"? Detta tar inte bort själva medlemsvärdarna.", + "searchFleets": "Sök flottor...", + "noFleets": "Inga flottor ännu. Skapa en för att komma igång.", + "memberCount": "{{count}} värd", + "memberCount_other": "{{count}} värdar", + "manageMembers": "Hantera medlemmar", + "manageMembersTitle": "Hantera flottmedlemmar", + "manageMembersDescription": "Växla mellan att visa eller avaktivera värdar i flottans statiska medlemskap. Värdar som matchas av taggregler inkluderas alltid.", + "searchHosts": "Sök värdar...", + "noHostsFound": "Inga värdar hittades", + "noMembers": "Den här flottan har inga medlemmar ännu. Lägg till värdar eller ange en taggregel.", + "membersLoadFailed": "Misslyckades med att ladda flottmedlemmar", + "memberUpdateFailed": "Misslyckades med att uppdatera flottmedlemskapet", + "tabRun": "Kör kommando", + "tabTransfer": "Överför filer", + "tabInventory": "Lager", + "openInventoryTab": "Öppna i hela fliken", + "tabPackages": "Paket", + "runOnFleet": "Kör på flottan", + "commandPlaceholder": "drifttid && df -h", + "commandRequired": "Ett kommando krävs", + "commandInputsLabel": "Kommandoingångar", + "commandSucceeded": "Kommandot lyckades på alla värdar", + "commandPartialFailure": "{{failed}} av {{total}} värdar misslyckades", + "commandFailed": "Misslyckades med att köra kommandot", + "resultSuccess": "Framgång", + "resultFailed": "Misslyckades", + "push": "Tryck", + "pull": "Dra", + "remotePathLabel": "Fjärrväg", + "remotePathRequired": "En fjärrsökväg krävs", + "fileLabel": "Fil", + "fileRequired": "En fil krävs", + "pushHint": "Den valda filen skrivs till exakt denna sökväg på varje värd i flottan.", + "pullHint": "Filen på den här sökvägen läses från varje värd och laddas ner som en enda zip-fil, en mapp per värd.", + "transferComplete": "Överföringen är klar", + "transferFailed": "Överföringen misslyckades", + "refreshInventory": "Uppdatera lagret", + "inventoryLoadFailed": "Misslyckades med att ladda lagret", + "inventoryRefreshed": "Inventariet uppdaterat", + "inventoryRefreshFailed": "Misslyckades med att uppdatera lagret", + "inventoryNoData": "Ingen lagerdata ännu – uppdatera för att samla in den.", + "inventoryHost": "Värd", + "inventoryCollectedCount": "{{count}}/{{total}} samlade", + "inventoryOs": "operativsystem", + "inventoryKernel": "Kärna", + "inventoryArch": "Båge", + "inventoryUptime": "Drifttid", + "inventoryPackageManager": "Pakethanterare", + "inventoryCollectedAt": "Insamlad", + "packageActionLabel": "Handling", + "packageInstall": "Installera", + "packageRemove": "Ta bort", + "packageUpgradeAll": "Uppgradera alla paket", + "packageNameLabel": "Paketnamn", + "packageNameRequired": "Ett paketnamn krävs", + "packageHint": "Kräver åtkomst på hanteringsnivå per värd och höjs med hjälp av värdens lagrade sudo-lösenord.", + "shareFleet": "Dela flottan", + "shareFleetTitle": "Dela \"{{name}}\"", + "shareFleetDescription": "Delar den här flottans nuvarande medlemsvärdar med de valda användarna eller rollerna. Värdar som läggs till i flottan senare delas inte automatiskt – dela igen för att inkludera dem.", + "shareSelectionRequired": "Välj minst en användare eller roll", + "fleetSharedSuccessfully": "Delad {{shared}} av {{total}} värd(ar) i denna flotta", + "failedToShareFleet": "Misslyckades med att dela flottan", + "noMembersToShare": "Den här flottan har inga medlemsvärdar att dela ännu." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Flottor" }, "hosts": { - "docsLink": "View docs", + "docsLink": "Visa dokument", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Timmar tills åtkomsten upphör", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Aldrig", + "oneHour": "1 timme", + "oneDay": "24 timmar", + "sevenDays": "7 dagar", + "thirtyDays": "30 dagar", + "custom": "Beställnings" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Åtkomstutgång", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "Ansluta", + "description": "Endast öppna sessioner: terminal, fjärrskrivbord, filhanterare, tunnlar och Docker. Ingen åtkomst till värdkonfigurationen." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Se", + "description": "Anslut, plus se värdkonfigurationen. Hemligheter visas aldrig." }, "edit": { - "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "label": "Redigera", + "description": "Visa och ändra inställningar för icke-autentiseringsvärdar. Ägarens SSH-autentisering förblir privat och endast för ägaren." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Hantera", + "description": "Redigera, plus dela värden med andra, ändra behörighetsnivåer och återkalla åtkomst." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "Inga träffar hittades", + "permissionLevelLabel": "Behörighetsnivå", + "rolesTab": "Roller", + "searchPlaceholder": "Sök användare eller roller...", + "shareButton": "Dela", + "shareWithCount": "Dela ({{count}})", + "usersTab": "Användare" } } } diff --git a/plugins/fleets/locales/translated/th_TH.json b/plugins/fleets/locales/translated/th_TH.json index 18ffb4fa6..83d6c0a34 100644 --- a/plugins/fleets/locales/translated/th_TH.json +++ b/plugins/fleets/locales/translated/th_TH.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "ดูฝูงบิน", + "description": "ดูรายละเอียดกองเรือ สมาชิก และสินค้าคงคลัง" }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "บริหารจัดการกองยานพาหนะ", + "description": "สร้าง แก้ไข และลบกลุ่มยานพาหนะ เปลี่ยนแปลงสมาชิก และแชร์กลุ่มยานพาหนะกับผู้ใช้หรือบทบาทอื่นๆ" }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "ดำเนินการจัดการกองเรือ", + "description": "เรียกใช้คำสั่งและดำเนินการแพ็กเกจต่างๆ บนกลุ่มเครื่องเซิร์ฟเวอร์ และถ่ายโอนไฟล์ระหว่างเครื่องเซิร์ฟเวอร์ที่เป็นสมาชิก" } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", + "title": "กองเรือ", + "createFleet": "สร้างกลุ่มยานพาหนะ", + "createFleetTitle": "สร้างกลุ่มยานพาหนะ", + "editFleetTitle": "แก้ไขข้อมูลกองเรือ", + "createFleetDescription": "กลุ่มโฮสต์ (Fleet) คือกลุ่มของโฮสต์ที่มีชื่อ ซึ่งคุณสามารถเรียกใช้คำสั่งต่างๆ กับกลุ่มนั้นได้ในฐานะหน่วยเดียวกัน", + "nameLabel": "ชื่อ", + "namePlaceholder": "เช่น เว็บเซิร์ฟเวอร์", + "nameRequired": "ต้องระบุชื่อกองเรือ", + "descriptionLabel": "คำอธิบาย", + "descriptionPlaceholder": "คำอธิบายเพิ่มเติม (ไม่บังคับ)", + "colorLabel": "สี", + "tagRulesLabel": "กฎการติดแท็ก", + "tagRulesPlaceholder": "โปรด-เว็บ, เอดจ์", + "tagRulesHint": "โฮสต์ที่มีแท็กใดแท็กหนึ่งเหล่านี้จะถูกรวมไว้โดยอัตโนมัติ นอกเหนือจากโฮสต์ที่เพิ่มเข้ามาด้วยตนเอง", + "fleetCreated": "กองเรือสร้าง", + "fleetUpdated": "อัปเดตฝูงบินแล้ว", + "fleetDeleted": "กองเรือถูกลบ", + "saveFailed": "ไม่สามารถช่วยกองเรือได้", + "deleteFailed": "ไม่สามารถลบกลุ่มยานพาหนะได้", + "loadFailed": "ไม่สามารถโหลดข้อมูลยานพาหนะได้", + "deleteFleetTitle": "ลบกลุ่มยานพาหนะ", + "deleteFleetDescription": "คุณแน่ใจหรือไม่ว่าต้องการลบ \"{{name}}\"? การดำเนินการนี้ไม่ได้ลบโฮสต์สมาชิกเอง", + "searchFleets": "ค้นหากองเรือ...", + "noFleets": "ยังไม่มีกลุ่มเรือ สร้างกลุ่มเรือเพื่อเริ่มต้นใช้งานได้เลย", + "memberCount": "{{count}} โฮสต์", + "memberCount_other": "{{count}} โฮสต์", + "manageMembers": "จัดการสมาชิก", + "manageMembersTitle": "จัดการสมาชิกกลุ่มยานพาหนะ", + "manageMembersDescription": "สลับการเพิ่มหรือลบโฮสต์ออกจากการเป็นสมาชิกแบบคงที่ของกลุ่มโฮสต์นี้ โฮสต์ที่ตรงกับกฎแท็กจะถูกรวมอยู่เสมอ", + "searchHosts": "ค้นหาโฮสต์...", + "noHostsFound": "ไม่พบโฮสต์", + "noMembers": "กลุ่มเรือนี้ยังไม่มีสมาชิก เพิ่มโฮสต์หรือตั้งค่ากฎแท็ก", + "membersLoadFailed": "ไม่สามารถโหลดสมาชิกกองเรือได้", + "memberUpdateFailed": "ไม่สามารถอัปเดตข้อมูลสมาชิกกลุ่มยานพาหนะได้", + "tabRun": "เรียกใช้คำสั่ง", + "tabTransfer": "โอนไฟล์", + "tabInventory": "รายการสิ่งของ", + "openInventoryTab": "เปิดในแท็บเต็ม", + "tabPackages": "แพ็คเกจ", + "runOnFleet": "วิ่งบนกองเรือ", "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "commandRequired": "จำเป็นต้องมีคำสั่ง", + "commandInputsLabel": "อินพุตคำสั่ง", + "commandSucceeded": "คำสั่งทำงานสำเร็จบนโฮสต์ทั้งหมด", + "commandPartialFailure": "โฮสต์ {{failed}} ล้มเหลว {{total}}", + "commandFailed": "ไม่สามารถเรียกใช้คำสั่งได้", + "resultSuccess": "ความสำเร็จ", + "resultFailed": "ล้มเหลว", + "push": "ดัน", + "pull": "ดึง", + "remotePathLabel": "เส้นทางระยะไกล", + "remotePathRequired": "จำเป็นต้องใช้เส้นทางระยะไกล", + "fileLabel": "ไฟล์", + "fileRequired": "จำเป็นต้องมีไฟล์", + "pushHint": "ไฟล์ที่เลือกจะถูกเขียนไปยังพาธที่ระบุไว้นี้บนทุกเครื่องในระบบเครือข่าย", + "pullHint": "ไฟล์ที่อยู่ในพาธนี้จะถูกอ่านจากทุกโฮสต์และดาวน์โหลดเป็นไฟล์ซิปเดียว โดยมีหนึ่งโฟลเดอร์ต่อหนึ่งโฮสต์", + "transferComplete": "การโอนเสร็จสมบูรณ์", + "transferFailed": "การโอนล้มเหลว", + "refreshInventory": "รีเฟรชสินค้าคงคลัง", + "inventoryLoadFailed": "ไม่สามารถโหลดสินค้าคงคลังได้", + "inventoryRefreshed": "อัปเดตสินค้าคงคลังแล้ว", + "inventoryRefreshFailed": "ไม่สามารถรีเฟรชสินค้าคงคลังได้", + "inventoryNoData": "ยังไม่มีข้อมูลสินค้าคงคลัง โปรดรีเฟรชหน้าเว็บเพื่อดูข้อมูล", + "inventoryHost": "เจ้าภาพ", + "inventoryCollectedCount": "{{count}}/{{total}} รวบรวมแล้ว", + "inventoryOs": "โอเอส", + "inventoryKernel": "เคอร์เนล", + "inventoryArch": "โค้ง", + "inventoryUptime": "เวลาใช้งาน", + "inventoryPackageManager": "ตัวจัดการแพ็กเกจ", + "inventoryCollectedAt": "รวบรวม", + "packageActionLabel": "การกระทำ", + "packageInstall": "ติดตั้ง", + "packageRemove": "ลบ", + "packageUpgradeAll": "อัปเกรดแพ็กเกจทั้งหมด", + "packageNameLabel": "ชื่อแพ็คเกจ", + "packageNameRequired": "จำเป็นต้องระบุชื่อแพ็กเกจ", + "packageHint": "ต้องมีสิทธิ์การเข้าถึงระดับจัดการต่อโฮสต์ และยกระดับสิทธิ์โดยใช้รหัสผ่าน sudo ที่บันทึกไว้ของโฮสต์", + "shareFleet": "แบ่งปันกองเรือ", + "shareFleetTitle": "แชร์ \"{{name}}\"", + "shareFleetDescription": "แชร์โฮสต์ที่เป็นสมาชิกปัจจุบันของกลุ่มโฮสต์นี้ให้กับผู้ใช้หรือบทบาทที่เลือกไว้ โฮสต์ที่เพิ่มเข้ามาในกลุ่มโฮสต์ในภายหลังจะไม่ถูกแชร์โดยอัตโนมัติ ต้องแชร์อีกครั้งเพื่อรวมโฮสต์เหล่านั้น", + "shareSelectionRequired": "เลือกผู้ใช้หรือบทบาทอย่างน้อยหนึ่งรายการ", + "fleetSharedSuccessfully": "โฮสต์ {{shared}} ที่ใช้ร่วมกันของ {{total}} ในกลุ่มนี้", + "failedToShareFleet": "ไม่สามารถแบ่งปันกองเรือได้", + "noMembersToShare": "กลุ่มเรือนี้ยังไม่มีสมาชิกผู้ให้บริการโฮสติ้งให้แชร์ข้อมูล" } } }, "nav": { - "fleets": "Fleets" + "fleets": "กองเรือ" }, "hosts": { - "docsLink": "View docs", + "docsLink": "ดูเอกสาร", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "เหลือเวลาอีกกี่ชั่วโมงก่อนที่สิทธิ์การเข้าถึงจะหมดอายุ", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "ไม่เคย", + "oneHour": "1 ชั่วโมง", + "oneDay": "24 ชั่วโมง", + "sevenDays": "7 วัน", + "thirtyDays": "30 วัน", + "custom": "กำหนดเอง" }, - "expiryLabel": "Access expiry", + "expiryLabel": "วันหมดอายุการเข้าถึง", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "เชื่อมต่อ", + "description": "อนุญาตเฉพาะเซสชันที่เปิดใช้งานเท่านั้น: เทอร์มินัล, เดสก์ท็อประยะไกล, ตัวจัดการไฟล์, อุโมงค์ และ Docker ไม่สามารถเข้าถึงการกำหนดค่าโฮสต์ได้" }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "ดู", + "description": "เชื่อมต่อและดูการตั้งค่าโฮสต์ ข้อมูลลับจะไม่ถูกเปิดเผย" }, "edit": { - "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "label": "แก้ไข", + "description": "ดูและแก้ไขการตั้งค่าโฮสต์ที่ไม่ต้องยืนยันตัวตน การยืนยันตัวตน SSH ของเจ้าของจะยังคงเป็นส่วนตัวและเข้าถึงได้เฉพาะเจ้าของเท่านั้น" }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "จัดการ", + "description": "แก้ไข รวมถึงแชร์โฮสต์กับผู้อื่น เปลี่ยนระดับสิทธิ์ และเพิกถอนการเข้าถึงได้" } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "ไม่พบผลลัพธ์ที่ตรงกัน", + "permissionLevelLabel": "ระดับการอนุญาต", + "rolesTab": "บทบาท", + "searchPlaceholder": "ค้นหาผู้ใช้หรือบทบาท...", + "shareButton": "แบ่งปัน", + "shareWithCount": "แชร์ ({{count}})", + "usersTab": "ผู้ใช้" } } } diff --git a/plugins/fleets/locales/translated/tr_TR.json b/plugins/fleets/locales/translated/tr_TR.json index 0326df9ca..6ae2989a6 100644 --- a/plugins/fleets/locales/translated/tr_TR.json +++ b/plugins/fleets/locales/translated/tr_TR.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Filoları görüntüle", + "description": "Filoları, üyelerini ve envanterlerini görüntüleyin." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Filoları yönetin", + "description": "Filoları oluşturun, düzenleyin ve silin, üyelikleri değiştirin ve filoları diğer kullanıcılar veya rollerle paylaşın." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Filo işlemlerini yürütün", + "description": "Filo genelinde komutları çalıştırın, işlemleri paketleyin ve üye sunucular arasında dosya aktarımı yapın." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "Filolar", + "createFleet": "Filo Oluştur", + "createFleetTitle": "Filo Oluştur", + "editFleetTitle": "Filoyu Düzenle", + "createFleetDescription": "Filo, birim olarak eylemler gerçekleştirebileceğiniz, adlandırılmış bir sunucu grubudur.", "nameLabel": "Ad", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "Örneğin, Web Sunucuları", + "nameRequired": "Filo adı zorunludur.", "descriptionLabel": "Açıklama", "descriptionPlaceholder": "İsteğe bağlı açıklama", "colorLabel": "Renk", - "tagRulesLabel": "Tag rules", + "tagRulesLabel": "Etiket kuralları", "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesHint": "Bu etiketlerden herhangi birine sahip sunucular, manuel olarak eklenen sunuculara ek olarak otomatik olarak dahil edilir.", + "fleetCreated": "Filo oluşturuldu", + "fleetUpdated": "Filo güncellendi", + "fleetDeleted": "Filo silindi", + "saveFailed": "Filoyu kurtaramadık", + "deleteFailed": "Filoyu silme işlemi başarısız oldu.", + "loadFailed": "Filoların yüklenmesi başarısız oldu.", + "deleteFleetTitle": "Filoyu Sil", + "deleteFleetDescription": "\"{{name}}\" öğesini silmek istediğinizden emin misiniz? Bu işlem üye sunucuların kendilerini silmez.", + "searchFleets": "Filoları arayın...", + "noFleets": "Henüz filo yok. Başlamak için bir tane oluşturun.", + "memberCount": "{{count}} sunucu", "memberCount_other": "{{count}} ana makine", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "Üyeleri Yönet", + "manageMembersTitle": "Filo Üyelerini Yönetin", + "manageMembersDescription": "Sunucuları bu filonun statik üyeliğine dahil edin veya çıkarın. Etiket kurallarına göre eşleşen sunucular her zaman dahil edilir.", "searchHosts": "Host ara...", "noHostsFound": "Hiç sunucu bulunamadı", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "Bu filonun henüz üyesi yok. Sunucu ekleyin veya etiket kuralı belirleyin.", + "membersLoadFailed": "Filo üyeleri yüklenemedi.", + "memberUpdateFailed": "Filo üyeliği güncellenemedi.", + "tabRun": "Komutu Çalıştır", + "tabTransfer": "Dosya Aktarımı", + "tabInventory": "Envanter", + "openInventoryTab": "Tam sekmede aç", "tabPackages": "Paketler", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "runOnFleet": "Filoda Çalıştır", + "commandPlaceholder": "çalışma süresi && df -h", + "commandRequired": "Bir komut gereklidir.", + "commandInputsLabel": "Komut girişleri", + "commandSucceeded": "Komut tüm sunucularda başarıyla tamamlandı.", + "commandPartialFailure": "{{failed}} / {{total}} sunucu başarısız oldu", + "commandFailed": "Komut çalıştırma başarısız oldu.", "resultSuccess": "Başarılı", "resultFailed": "Başarısız", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "İtmek", + "pull": "Çekmek", + "remotePathLabel": "Uzak yol", + "remotePathRequired": "Uzak bir yol gereklidir.", "fileLabel": "Dosya", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "Bir dosya gereklidir.", + "pushHint": "Seçilen dosya, filodaki her sunucuda tam olarak bu yola yazılır.", + "pullHint": "Bu yoldaki dosya her sunucudan okunur ve her sunucu için bir klasör olmak üzere tek bir zip dosyası olarak indirilir.", "transferComplete": "Aktarım tamamlandı", "transferFailed": "Aktarım başarısız", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "Envanteri Yenile", + "inventoryLoadFailed": "Envanter yüklenemedi.", + "inventoryRefreshed": "Stok güncellendi", + "inventoryRefreshFailed": "Envanter yenileme işlemi başarısız oldu.", + "inventoryNoData": "Henüz envanter verisi yok - verileri toplamak için sayfayı yenileyin.", "inventoryHost": "Ana Bilgisayar", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} toplandı", "inventoryOs": "İşletim Sistemi", "inventoryKernel": "Çekirdek", - "inventoryArch": "Arch", + "inventoryArch": "Kemer", "inventoryUptime": "Çalışma Süresi", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "Paket yöneticisi", + "inventoryCollectedAt": "Toplandı", "packageActionLabel": "İşlem", - "packageInstall": "Install", + "packageInstall": "Düzenlemek", "packageRemove": "Kaldır", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Tüm paketleri yükseltin", + "packageNameLabel": "Paket adı", + "packageNameRequired": "Paket adı gereklidir.", + "packageHint": "Her sunucu için yönetim düzeyinde erişim gerektirir ve sunucunun kayıtlı sudo şifresi kullanılarak yetki yükseltilir.", + "shareFleet": "Filo Paylaşımı", + "shareFleetTitle": "Paylaş \"{{name}}\"", + "shareFleetDescription": "Bu filonun mevcut üye sunucularını seçilen kullanıcılar veya rollerle paylaşır. Filoya daha sonra eklenen sunucular otomatik olarak paylaşılmaz; bunları dahil etmek için tekrar paylaşın.", + "shareSelectionRequired": "En az bir kullanıcı veya rol seçin.", + "fleetSharedSuccessfully": "Bu filodaki {{total}} ana bilgisayarın paylaşılan {{shared}} 'ı", + "failedToShareFleet": "Filo paylaşımı başarısız oldu.", + "noMembersToShare": "Bu filonun henüz paylaşabileceği üye sunucusu yok." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Filolar" }, "hosts": { "docsLink": "Dokümanları görüntüle", @@ -131,7 +131,7 @@ }, "edit": { "label": "Düzenle", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Kimlik doğrulaması gerektirmeyen sunucu ayarlarını görüntüleyin ve değiştirin. Sahibin SSH kimlik doğrulaması gizli kalır ve yalnızca sahibine özeldir." }, "manage": { "label": "Yönet", diff --git a/plugins/fleets/locales/translated/uk_UA.json b/plugins/fleets/locales/translated/uk_UA.json index 18ffb4fa6..29399defa 100644 --- a/plugins/fleets/locales/translated/uk_UA.json +++ b/plugins/fleets/locales/translated/uk_UA.json @@ -1,150 +1,150 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Переглянути автопарки", + "description": "Перегляньте автопарки, їхніх членів та інвентар." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Керування автопарками", + "description": "Створюйте, редагуйте та видаляйте автопарки, змінюйте членство та діліться автопарками з іншими користувачами або ролями." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Виконання дій з флотом", + "description": "Виконуйте команди та дії з пакетування в усьому парку пристроїв, а також передайте файли на хости-члени та з них." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "colorLabel": "Color", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", - "memberCount_other": "{{count}} hosts", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", - "searchHosts": "Search hosts...", - "noHostsFound": "No hosts found", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", - "tabPackages": "Packages", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", - "resultSuccess": "Success", - "resultFailed": "Failed", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", - "fileLabel": "File", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", - "transferComplete": "Transfer complete", - "transferFailed": "Transfer failed", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", - "inventoryHost": "Host", - "inventoryCollectedCount": "{{count}}/{{total}} collected", - "inventoryOs": "OS", - "inventoryKernel": "Kernel", - "inventoryArch": "Arch", - "inventoryUptime": "Uptime", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", - "packageActionLabel": "Action", - "packageInstall": "Install", - "packageRemove": "Remove", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "title": "Флоти", + "createFleet": "Створити флот", + "createFleetTitle": "Створити флот", + "editFleetTitle": "Редагувати флот", + "createFleetDescription": "Флот — це іменована група хостів, проти яких можна виконувати дії як проти єдиного цілого.", + "nameLabel": "Ім'я", + "namePlaceholder": "наприклад, веб-сервери", + "nameRequired": "Потрібно вказати назву флоту", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Додатковий опис", + "colorLabel": "Колір", + "tagRulesLabel": "Правила тегів", + "tagRulesPlaceholder": "prod-web, край", + "tagRulesHint": "Хости з будь-яким із цих тегів додаються автоматично, окрім хостів, доданих вручну.", + "fleetCreated": "Створено флот", + "fleetUpdated": "Оновлено автопарк", + "fleetDeleted": "Флот видалено", + "saveFailed": "Не вдалося зберегти флот", + "deleteFailed": "Не вдалося видалити автопарк", + "loadFailed": "Не вдалося завантажити автопарки", + "deleteFleetTitle": "Видалити автопарк", + "deleteFleetDescription": "Ви впевнені, що хочете видалити \"{{name}}\"? Це не видаляє самі хости-учасники.", + "searchFleets": "Пошук автопарків...", + "noFleets": "Поки що немає автопарків. Створіть його, щоб розпочати.", + "memberCount": "{{count}} хост", + "memberCount_other": "{{count}} хости", + "manageMembers": "Керування учасниками", + "manageMembersTitle": "Керування членами автопарку", + "manageMembersDescription": "Вмикати або вимикати хости зі списку статичного членства цього флоту. Хости, що відповідають правилам тегів, завжди враховуються.", + "searchHosts": "Пошук хостів...", + "noHostsFound": "Хости не знайдено", + "noMembers": "Цей флот ще не має учасників. Додайте хостів або встановіть правило тегу.", + "membersLoadFailed": "Не вдалося завантажити учасників автопарку", + "memberUpdateFailed": "Не вдалося оновити членство в автопарку", + "tabRun": "Виконати команду", + "tabTransfer": "Передача файлів", + "tabInventory": "Інвентаризація", + "openInventoryTab": "Відкрити у повній вкладці", + "tabPackages": "Пакети", + "runOnFleet": "Запустити флот", + "commandPlaceholder": "час безперебійної роботи && df -h", + "commandRequired": "Потрібна команда", + "commandInputsLabel": "Вхідні команди", + "commandSucceeded": "Команда успішно виконана на всіх хостах", + "commandPartialFailure": "{{failed}} з {{total}} хостів не вдалося", + "commandFailed": "Не вдалося виконати команду", + "resultSuccess": "Успіх", + "resultFailed": "Не вдалося", + "push": "Натисніть", + "pull": "Тягнути", + "remotePathLabel": "Віддалений шлях", + "remotePathRequired": "Потрібен віддалений шлях", + "fileLabel": "Файл", + "fileRequired": "Потрібен файл", + "pushHint": "Вибраний файл записується саме за цим шляхом на кожному хості парку.", + "pullHint": "Файл за цим шляхом зчитується з кожного хоста та завантажується як один zip-архів, одна папка на хост.", + "transferComplete": "Перенесення завершено", + "transferFailed": "Передача не вдалася", + "refreshInventory": "Оновити інвентар", + "inventoryLoadFailed": "Не вдалося завантажити інвентар", + "inventoryRefreshed": "Інвентар оновлено", + "inventoryRefreshFailed": "Не вдалося оновити інвентар", + "inventoryNoData": "Даних про інвентаризацію ще немає – оновіть сторінку, щоб зібрати їх.", + "inventoryHost": "Хост", + "inventoryCollectedCount": "{{count}}/{{total}} зібрано", + "inventoryOs": "ОС", + "inventoryKernel": "Ядро", + "inventoryArch": "Арка", + "inventoryUptime": "Час безвідмовної роботи", + "inventoryPackageManager": "Менеджер пакетів", + "inventoryCollectedAt": "Зібрано", + "packageActionLabel": "Дія", + "packageInstall": "Встановити", + "packageRemove": "Видалити", + "packageUpgradeAll": "Оновіть усі пакети", + "packageNameLabel": "Назва пакета", + "packageNameRequired": "Потрібна назва пакета", + "packageHint": "Потрібен доступ на рівні керування для кожного хоста та підвищення прав за допомогою збереженого пароля sudo хоста.", + "shareFleet": "Поділитися автопарком", + "shareFleetTitle": "Поділитися «{{name}}»", + "shareFleetDescription": "Надає доступ до хостів-членів цього флоту вибраним користувачам або ролям. Хости, додані до флоту пізніше, не надаються автоматично – надішліть їх ще раз, щоб включити їх.", + "shareSelectionRequired": "Виберіть принаймні одного користувача або роль", + "fleetSharedSuccessfully": "Спільні {{shared}} з {{total}} хост(ів) у цьому флоті", + "failedToShareFleet": "Не вдалося поділитися автопарком", + "noMembersToShare": "Цей флот ще не має хостів-учасників для спільного використання." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Флоти" }, "hosts": { - "docsLink": "View docs", + "docsLink": "Переглянути документи", "sharing": { - "customHoursPlaceholder": "Hours until access expires", + "customHoursPlaceholder": "Години до закінчення терміну дії доступу", "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Ніколи", + "oneHour": "1 година", + "oneDay": "24 години", + "sevenDays": "7 днів", + "thirtyDays": "30 днів", + "custom": "Користувацька" }, - "expiryLabel": "Access expiry", + "expiryLabel": "Термін дії доступу", "levels": { "connect": { - "label": "Connect", - "description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." + "label": "Підключитися", + "description": "Тільки відкриті сеанси: термінал, віддалений робочий стіл, файловий менеджер, тунелі та Docker. Без доступу до конфігурації хоста." }, "view": { - "label": "View", - "description": "Connect, plus see the host configuration. Secrets are never shown." + "label": "Переглянути", + "description": "Підключитися, а також переглянути конфігурацію хоста. Секрети ніколи не відображаються." }, "edit": { - "label": "Edit", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "label": "Редагувати", + "description": "Переглядайте та змінюйте налаштування хоста без автентифікації. SSH-автентифікація власника залишається приватною та доступною лише для власника." }, "manage": { - "label": "Manage", - "description": "Edit, plus share the host with others, change permission levels and revoke access." + "label": "Керувати", + "description": "Редагувати, а також ділитися хостом з іншими, змінювати рівні дозволів та скасовувати доступ." } }, - "noMatches": "No matches found", - "permissionLevelLabel": "Permission level", - "rolesTab": "Roles", - "searchPlaceholder": "Search users or roles...", - "shareButton": "Share", - "shareWithCount": "Share ({{count}})", - "usersTab": "Users" + "noMatches": "Збігів не знайдено", + "permissionLevelLabel": "Рівень дозволів", + "rolesTab": "Ролі", + "searchPlaceholder": "Пошук користувачів або ролей...", + "shareButton": "Поділитися", + "shareWithCount": "Поділитися ({{count}})", + "usersTab": "Користувачі" } } } diff --git a/plugins/fleets/locales/translated/vi_VN.json b/plugins/fleets/locales/translated/vi_VN.json index 8445f108e..cb76e3c9d 100644 --- a/plugins/fleets/locales/translated/vi_VN.json +++ b/plugins/fleets/locales/translated/vi_VN.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "Xem đội xe", + "description": "Xem thông tin về các đội tàu, thành viên và trang thiết bị." }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "Quản lý đội xe", + "description": "Tạo, chỉnh sửa và xóa đội tàu, thay đổi thành viên và chia sẻ đội tàu với người dùng hoặc vai trò khác." }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "Thực hiện các hoạt động của hạm đội", + "description": "Chạy các lệnh và thực hiện các hành động gói trên toàn bộ hệ thống máy chủ, cũng như truyền tải các tập tin đến và từ các máy chủ thành viên." } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "Hạm đội", + "createFleet": "Tạo đội tàu", + "createFleetTitle": "Tạo đội tàu", + "editFleetTitle": "Chỉnh sửa đội xe", + "createFleetDescription": "Hạm đội là một nhóm máy chủ được đặt tên mà bạn có thể thực hiện các hành động chống lại chúng như một đơn vị.", "nameLabel": "Tên", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "Ví dụ: Máy chủ web", + "nameRequired": "Tên đội xe là bắt buộc", "descriptionLabel": "Mô tả", "descriptionPlaceholder": "Mô tả tùy chọn", "colorLabel": "Màu sắc", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesLabel": "Quy tắc gắn thẻ", + "tagRulesPlaceholder": "web sản xuất, cạnh", + "tagRulesHint": "Các máy chủ có bất kỳ thẻ nào trong số này sẽ tự động được thêm vào, bên cạnh các máy chủ được thêm thủ công.", + "fleetCreated": "Hạm đội đã tạo ra", + "fleetUpdated": "Đội tàu được cập nhật", + "fleetDeleted": "Hạm đội đã bị xóa", + "saveFailed": "Không thể cứu hạm đội.", + "deleteFailed": "Không thể xóa đội tàu", + "loadFailed": "Không thể tải đội xe", + "deleteFleetTitle": "Xóa hạm đội", + "deleteFleetDescription": "Bạn có chắc chắn muốn xóa \"{{name}}\" không? Thao tác này không xóa các máy chủ thành viên.", + "searchFleets": "Các hạm đội tìm kiếm...", + "noFleets": "Chưa có hạm đội nào. Hãy tạo một hạm đội để bắt đầu.", + "memberCount": "{{count}} máy chủ", "memberCount_other": "{{count}} máy chủ", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "Quản lý thành viên", + "manageMembersTitle": "Quản lý thành viên đội xe", + "manageMembersDescription": "Cho phép thêm hoặc xóa các máy chủ khỏi tư cách thành viên cố định của nhóm này. Các máy chủ phù hợp với quy tắc gắn thẻ luôn được bao gồm.", "searchHosts": "Tìm kiếm máy chủ...", "noHostsFound": "Không tìm thấy máy chủ", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "Hạm đội này chưa có thành viên nào. Thêm máy chủ hoặc thiết lập quy tắc gắn thẻ.", + "membersLoadFailed": "Không thể tải thông tin thành viên đội xe", + "memberUpdateFailed": "Không thể cập nhật thông tin thành viên đội tàu", + "tabRun": "Chạy lệnh", + "tabTransfer": "Chuyển tập tin", + "tabInventory": "Hàng tồn kho", + "openInventoryTab": "Mở ở chế độ toàn màn hình", "tabPackages": "Gói", - "runOnFleet": "Run on Fleet", - "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "runOnFleet": "Chạy trên Fleet", + "commandPlaceholder": "thời gian hoạt động && df -h", + "commandRequired": "Cần có lệnh", + "commandInputsLabel": "Đầu vào lệnh", + "commandSucceeded": "Lệnh đã được thực thi thành công trên tất cả các máy chủ.", + "commandPartialFailure": "{{failed}} trong số {{total}} máy chủ đã bị lỗi", + "commandFailed": "Không thể chạy lệnh.", "resultSuccess": "Thành công", "resultFailed": "Thất bại", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "Xô", + "pull": "Sự lôi kéo", + "remotePathLabel": "Đường dẫn từ xa", + "remotePathRequired": "Cần có một đường dẫn từ xa.", "fileLabel": "Tệp", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "Cần có một tập tin.", + "pushHint": "Tệp đã chọn sẽ được ghi vào đúng đường dẫn này trên mọi máy chủ trong hệ thống.", + "pullHint": "Tệp tại đường dẫn này được đọc từ mọi máy chủ và tải xuống dưới dạng một tệp zip duy nhất, mỗi máy chủ một thư mục.", "transferComplete": "Truyền tải hoàn tất", "transferFailed": "Truyền tải thất bại", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "Làm mới kho hàng", + "inventoryLoadFailed": "Không thể tải kho hàng", + "inventoryRefreshed": "Hàng tồn kho được cập nhật", + "inventoryRefreshFailed": "Không thể làm mới kho hàng", + "inventoryNoData": "Chưa có dữ liệu tồn kho - hãy làm mới trang để thu thập dữ liệu.", "inventoryHost": "Máy chủ", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} đã thu thập", "inventoryOs": "Hệ điều hành", "inventoryKernel": "Nhân", - "inventoryArch": "Arch", + "inventoryArch": "Vòm", "inventoryUptime": "Thời gian hoạt động", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "Trình quản lý gói", + "inventoryCollectedAt": "Đã thu thập", "packageActionLabel": "Hành động", - "packageInstall": "Install", + "packageInstall": "Cài đặt", "packageRemove": "Xóa", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "Nâng cấp tất cả các gói", + "packageNameLabel": "Tên gói", + "packageNameRequired": "Cần phải có tên gói.", + "packageHint": "Yêu cầu quyền truy cập cấp quản trị cho mỗi máy chủ và nâng quyền bằng mật khẩu sudo được lưu trữ trên máy chủ đó.", + "shareFleet": "Chia sẻ đội xe", + "shareFleetTitle": "Chia sẻ \"{{name}}\"", + "shareFleetDescription": "Chia sẻ các máy chủ thành viên hiện tại của nhóm này với những người dùng hoặc vai trò đã chọn. Các máy chủ được thêm vào nhóm sau này sẽ không được chia sẻ tự động - hãy chia sẻ lại để bao gồm chúng.", + "shareSelectionRequired": "Chọn ít nhất một người dùng hoặc vai trò", + "fleetSharedSuccessfully": "Chia sẻ {{shared}} trong số {{total}} máy chủ trong hạm đội này", + "failedToShareFleet": "Không thể chia sẻ đội xe", + "noMembersToShare": "Hạm đội này hiện chưa có máy chủ thành viên nào để chia sẻ." } } }, "nav": { - "fleets": "Fleets" + "fleets": "Hạm đội" }, "hosts": { "docsLink": "Xem tài liệu", @@ -131,7 +131,7 @@ }, "edit": { "label": "Chỉnh sửa", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "Xem và chỉnh sửa cài đặt máy chủ không yêu cầu xác thực. Thông tin xác thực SSH của chủ sở hữu vẫn được giữ kín và chỉ dành riêng cho chủ sở hữu." }, "manage": { "label": "Quản lý", diff --git a/plugins/fleets/locales/translated/zh_CN.json b/plugins/fleets/locales/translated/zh_CN.json index 738686f00..2ccd3f2d7 100644 --- a/plugins/fleets/locales/translated/zh_CN.json +++ b/plugins/fleets/locales/translated/zh_CN.json @@ -1,25 +1,25 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "查看舰队", + "description": "查看船队、其成员和库存。" }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "管理车队", + "description": "创建、编辑和删除舰队,更改成员资格,并与其他用户或角色共享舰队。" }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "运行舰队行动", + "description": "在整个集群中运行命令和打包操作,并在其成员主机之间传输文件。" } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", + "title": "舰队", + "createFleet": "创建舰队", + "createFleetTitle": "创建舰队", + "editFleetTitle": "编辑舰队", "createFleetDescription": "舰队是一个命名的主机组,你可以将其作为一个整体来执行操作。", "nameLabel": "名称", "namePlaceholder": "例如:Web 服务器", @@ -27,51 +27,51 @@ "descriptionLabel": "描述", "descriptionPlaceholder": "可选描述", "colorLabel": "颜色", - "tagRulesLabel": "Tag rules", + "tagRulesLabel": "标签规则", "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", + "tagRulesHint": "带有这些标签的主机将自动包含在内,此外还可以手动添加主机。", "fleetCreated": "舰队已创建", "fleetUpdated": "舰队已更新", - "fleetDeleted": "Fleet deleted", + "fleetDeleted": "舰队已删除", "saveFailed": "保存舰队失败", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", + "deleteFailed": "删除舰队失败", + "loadFailed": "舰队加载失败", + "deleteFleetTitle": "删除舰队", + "deleteFleetDescription": "您确定要删除“{{name}}”吗?此操作不会删除成员主机本身。", + "searchFleets": "搜索舰队……", + "noFleets": "暂无舰队。创建舰队即可开始。", "memberCount": "{{count}} 台主机", "memberCount_other": "{{count}} 台主机", - "manageMembers": "Manage Members", + "manageMembers": "管理成员", "manageMembersTitle": "管理舰队成员", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembersDescription": "切换主机是否加入此舰队的静态成员列表。符合标签规则的主机始终包含在内。", "searchHosts": "搜索主机...", "noHostsFound": "未找到主机", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", + "noMembers": "此舰队目前尚无成员。请添加主机或设置标签规则。", + "membersLoadFailed": "加载舰队成员失败", + "memberUpdateFailed": "舰队成员信息更新失败", + "tabRun": "运行命令", + "tabTransfer": "传输文件", "tabInventory": "清单", - "openInventoryTab": "Open in full tab", + "openInventoryTab": "在新标签页中打开", "tabPackages": "软件包", "runOnFleet": "在舰队上运行", "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", + "commandRequired": "需要一条命令", + "commandInputsLabel": "命令输入", + "commandSucceeded": "命令在所有主机上均已成功执行。", "commandPartialFailure": "{{total}} 台主机中有 {{failed}} 台失败", - "commandFailed": "Failed to run command", + "commandFailed": "命令运行失败", "resultSuccess": "成功", "resultFailed": "失败", "push": "推送", "pull": "拉取", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "remotePathLabel": "远程路径", + "remotePathRequired": "需要远程路径", "fileLabel": "文件", "fileRequired": "需要选择文件", "pushHint": "选定的文件将被写入舰队中每台主机上的指定路径。", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "pullHint": "从每个主机读取此路径下的文件,并将其下载为单个 zip 文件,每个主机一个文件夹。", "transferComplete": "传输完成", "transferFailed": "传输失败", "refreshInventory": "刷新清单", @@ -85,27 +85,27 @@ "inventoryKernel": "内核", "inventoryArch": "架构", "inventoryUptime": "运行时间", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "软件包管理器", + "inventoryCollectedAt": "集", "packageActionLabel": "操作", - "packageInstall": "Install", + "packageInstall": "安装", "packageRemove": "移除", "packageUpgradeAll": "升级所有软件包", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageNameLabel": "软件包名称", + "packageNameRequired": "必须提供软件包名称。", + "packageHint": "需要对每台主机具有管理级别的访问权限,并使用主机存储的 sudo 密码提升权限。", + "shareFleet": "共享车队", + "shareFleetTitle": "分享“{{name}}", + "shareFleetDescription": "将此集群的当前成员主机与选定的用户或角色共享。之后添加到集群的主机不会自动共享,请再次共享以将其包含在内。", + "shareSelectionRequired": "至少选择一个用户或角色", + "fleetSharedSuccessfully": "此舰队中共享的 {{shared}} 个主机 {{total}}。", + "failedToShareFleet": "未能共享舰队", + "noMembersToShare": "该船队目前还没有成员主机可供共享。" } } }, "nav": { - "fleets": "Fleets" + "fleets": "舰队" }, "hosts": { "docsLink": "查看文档", @@ -131,7 +131,7 @@ }, "edit": { "label": "编辑", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "查看并修改无需身份验证的主机设置。所有者的 SSH 身份验证信息将保持私密,仅限所有者本人查看。" }, "manage": { "label": "管理", diff --git a/plugins/fleets/locales/translated/zh_TW.json b/plugins/fleets/locales/translated/zh_TW.json index c07f11aa1..34488b37f 100644 --- a/plugins/fleets/locales/translated/zh_TW.json +++ b/plugins/fleets/locales/translated/zh_TW.json @@ -1,111 +1,111 @@ { "permissions": { "view": { - "title": "View fleets", - "description": "See fleets, their members and inventory." + "title": "查看艦隊", + "description": "查看船隊、其成員和庫存。" }, "manage": { - "title": "Manage fleets", - "description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." + "title": "管理車隊", + "description": "建立、編輯和刪除艦隊,更改成員資格,並與其他使用者或角色共用艦隊。" }, "execute": { - "title": "Run fleet actions", - "description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." + "title": "運行艦隊行動", + "description": "在整個叢集中運行命令和打包操作,並在其成員主機之間傳輸檔案。" } }, "newUi": { "sidebar": { "fleets": { - "title": "Fleets", - "createFleet": "Create Fleet", - "createFleetTitle": "Create Fleet", - "editFleetTitle": "Edit Fleet", - "createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", + "title": "艦隊", + "createFleet": "創建艦隊", + "createFleetTitle": "創建艦隊", + "editFleetTitle": "編輯艦隊", + "createFleetDescription": "艦隊是指你可以作為一個整體對一組主機執行操作的指定名稱的主機群組。", "nameLabel": "名稱", - "namePlaceholder": "e.g., Web Servers", - "nameRequired": "Fleet name is required", + "namePlaceholder": "例如,Web伺服器", + "nameRequired": "必須填寫艦隊名稱。", "descriptionLabel": "說明", "descriptionPlaceholder": "選用說明", "colorLabel": "顏色", - "tagRulesLabel": "Tag rules", - "tagRulesPlaceholder": "prod-web, edge", - "tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", - "fleetCreated": "Fleet created", - "fleetUpdated": "Fleet updated", - "fleetDeleted": "Fleet deleted", - "saveFailed": "Failed to save fleet", - "deleteFailed": "Failed to delete fleet", - "loadFailed": "Failed to load fleets", - "deleteFleetTitle": "Delete Fleet", - "deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", - "searchFleets": "Search fleets...", - "noFleets": "No fleets yet. Create one to get started.", - "memberCount": "{{count}} host", + "tagRulesLabel": "標籤規則", + "tagRulesPlaceholder": "生產網絡,邊緣", + "tagRulesHint": "帶有這些標籤的主機將自動包含在內,此外還可以手動新增主機。", + "fleetCreated": "艦隊創建", + "fleetUpdated": "艦隊更新", + "fleetDeleted": "艦隊已刪除", + "saveFailed": "未能拯救艦隊", + "deleteFailed": "刪除艦隊失敗", + "loadFailed": "艦隊載入失敗", + "deleteFleetTitle": "刪除艦隊", + "deleteFleetDescription": "您確定要刪除「{{name}}」嗎?此操作不會刪除成員主機本身。", + "searchFleets": "搜索艦隊…", + "noFleets": "暫無艦隊。創建艦隊即可開始。", + "memberCount": "{{count}} 主機", "memberCount_other": "{{count}} 台主機", - "manageMembers": "Manage Members", - "manageMembersTitle": "Manage Fleet Members", - "manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", + "manageMembers": "管理成員", + "manageMembersTitle": "管理車隊成員", + "manageMembersDescription": "切換主機是否加入此艦隊的靜態成員清單。符合標籤規則的主機始終包含在內。", "searchHosts": "搜尋主機...", "noHostsFound": "找不到主機", - "noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", - "membersLoadFailed": "Failed to load fleet members", - "memberUpdateFailed": "Failed to update fleet membership", - "tabRun": "Run Command", - "tabTransfer": "Transfer Files", - "tabInventory": "Inventory", - "openInventoryTab": "Open in full tab", + "noMembers": "此艦隊目前尚無成員。請新增主機或設定標籤規則。", + "membersLoadFailed": "載入艦隊成員失敗", + "memberUpdateFailed": "艦隊成員資訊更新失敗", + "tabRun": "運行命令", + "tabTransfer": "傳輸檔案", + "tabInventory": "存貨", + "openInventoryTab": "在新分頁中開啟", "tabPackages": "套件", - "runOnFleet": "Run on Fleet", + "runOnFleet": "艦隊運行", "commandPlaceholder": "uptime && df -h", - "commandRequired": "A command is required", - "commandInputsLabel": "Command inputs", - "commandSucceeded": "Command succeeded on all hosts", - "commandPartialFailure": "{{failed}} of {{total}} hosts failed", - "commandFailed": "Failed to run command", + "commandRequired": "需要一條命令", + "commandInputsLabel": "命令輸入", + "commandSucceeded": "指令在所有主機上均已成功執行。", + "commandPartialFailure": "{{failed}} 中的 {{total}} 台主機失敗", + "commandFailed": "命令運行失敗", "resultSuccess": "成功", "resultFailed": "失敗", - "push": "Push", - "pull": "Pull", - "remotePathLabel": "Remote path", - "remotePathRequired": "A remote path is required", + "push": "推", + "pull": "拉", + "remotePathLabel": "遠端路徑", + "remotePathRequired": "需要遠端路徑", "fileLabel": "檔案", - "fileRequired": "A file is required", - "pushHint": "The selected file is written to this exact path on every host in the fleet.", - "pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", + "fileRequired": "需要提交文件", + "pushHint": "選定的檔案將被寫入叢集中每台主機上的指定路徑。", + "pullHint": "從每個主機讀取此路徑下的文件,並將其下載為單一 zip 文件,每個主機一個資料夾。", "transferComplete": "傳送完成", "transferFailed": "傳送失敗", - "refreshInventory": "Refresh Inventory", - "inventoryLoadFailed": "Failed to load inventory", - "inventoryRefreshed": "Inventory refreshed", - "inventoryRefreshFailed": "Failed to refresh inventory", - "inventoryNoData": "No inventory data yet - refresh to collect it.", + "refreshInventory": "刷新庫存", + "inventoryLoadFailed": "載入庫存失敗", + "inventoryRefreshed": "庫存已刷新", + "inventoryRefreshFailed": "刷新庫存失敗", + "inventoryNoData": "暫無庫存資料 - 請重新整理頁面以取得資料。", "inventoryHost": "主機", - "inventoryCollectedCount": "{{count}}/{{total}} collected", + "inventoryCollectedCount": "{{count}}/{{total}} 收集", "inventoryOs": "作業系統", "inventoryKernel": "核心", - "inventoryArch": "Arch", + "inventoryArch": "拱", "inventoryUptime": "運行時間", - "inventoryPackageManager": "Package manager", - "inventoryCollectedAt": "Collected", + "inventoryPackageManager": "軟體套件管理器", + "inventoryCollectedAt": "集", "packageActionLabel": "動作", - "packageInstall": "Install", + "packageInstall": "安裝", "packageRemove": "移除", - "packageUpgradeAll": "Upgrade all packages", - "packageNameLabel": "Package name", - "packageNameRequired": "A package name is required", - "packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", - "shareFleet": "Share Fleet", - "shareFleetTitle": "Share \"{{name}}\"", - "shareFleetDescription": "Shares this fleet's current member hosts with the selected users or roles. Hosts added to the fleet later are not shared automatically - share again to include them.", - "shareSelectionRequired": "Select at least one user or role", - "fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", - "failedToShareFleet": "Failed to share fleet", - "noMembersToShare": "This fleet has no member hosts to share yet." + "packageUpgradeAll": "升級所有套餐", + "packageNameLabel": "軟體包名稱", + "packageNameRequired": "必須提供軟體包名稱。", + "packageHint": "需要對每台主機具有管理層級的存取權限,並使用主機儲存的 sudo 密碼提升權限。", + "shareFleet": "共享車隊", + "shareFleetTitle": "分享「{{name}}", + "shareFleetDescription": "將此叢集的目前成員主機與選定的使用者或角色共用。之後新增至叢集的主機不會自動共用,請再次共用以將其包含在內。", + "shareSelectionRequired": "至少選擇一個使用者或角色", + "fleetSharedSuccessfully": "此艦隊中共享的 {{shared}} 個主機 {{total}}。", + "failedToShareFleet": "未能共享艦隊", + "noMembersToShare": "該船隊目前還沒有成員主機可供共享。" } } }, "nav": { - "fleets": "Fleets" + "fleets": "艦隊" }, "hosts": { "docsLink": "檢視文件", @@ -131,7 +131,7 @@ }, "edit": { "label": "編輯", - "description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." + "description": "查看並修改無需身份驗證的主機設定。所有者的 SSH 身份驗證資訊將保持私密,僅限所有者本人查看。" }, "manage": { "label": "管理", diff --git a/plugins/homepage/locales/translated/bn_BD.json b/plugins/homepage/locales/translated/bn_BD.json index 760b3a445..f3a53a786 100644 --- a/plugins/homepage/locales/translated/bn_BD.json +++ b/plugins/homepage/locales/translated/bn_BD.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "হোমপেজ" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "পরিষেবা লিঙ্ক", + "homepagePreview": "হোমপেজ প্রিভিউ" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksTitle": "পরিষেবা লিঙ্ক", + "serviceLinksEmpty": "এখনও কোন পরিষেবা লিঙ্ক নেই", + "serviceLinksAdd": "যোগ করুন", + "serviceLinksLabelPlaceholder": "আমার পরিষেবা", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "একটি বৈধ ওয়েব ঠিকানা লিখুন", + "serviceLinksAddFailed": "পরিষেবা লিঙ্ক যোগ করতে ব্যর্থ হয়েছে" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", - "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", - "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", - "metricCpu": "CPU", - "metricMemory": "Memory", - "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", - "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", - "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", - "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "title": "হোমপেজ", + "addWidget": "উইজেট যোগ করুন", + "noWidgetsInCategory": "এই বিভাগে কোনো উইজেট নেই", + "editWidget": "উইজেট সম্পাদনা করুন", + "zoomIn": "জুম ইন", + "zoomOut": "জুম আউট", + "resetView": "দৃশ্য রিসেট করুন", + "lockLayout": "লক লেআউট", + "unlockLayout": "লেআউট আনলক করুন", + "noWidgets": "আপনার প্রথম উইজেট যোগ করতে ডান-ক্লিক করুন অথবা + এ ক্লিক করুন।", + "openFullView": "সম্পূর্ণ দৃশ্য খুলুন", + "previewTitle": "হোমপেজ প্রিভিউ", + "cancel": "বাতিল করুন", + "save": "সংরক্ষণ করুন", + "title_label": "শিরোনাম", + "widgetTitlePlaceholder": "উইজেটের শিরোনাম (ঐচ্ছিক)", + "url": "ইউআরএল", + "imageUrl": "কাস্টম ইমেজ ইউআরএল", + "imageUrlHint": "সাইটের ফেভিকন স্বয়ংক্রিয়ভাবে ব্যবহার করতে খালি রাখুন।", + "showImage": "ছবি দেখান", + "description": "বর্ণনা", + "color": "রঙ", + "timezone": "সময় অঞ্চল", + "invalidTimezone": "অবৈধ টাইমজোন। America/New_York-এর মতো একটি IANA নাম ব্যবহার করুন।", + "showSeconds": "সেকেন্ড দেখান", + "format12h": "১২ ঘন্টা", + "content": "বিষয়বস্তু", + "backgroundColor": "পটভূমির রঙ", + "links": "লিঙ্ক", + "addLink": "লিঙ্ক যোগ করুন", + "linkLabel": "লেবেল", + "categoryLinks": "লিঙ্ক", + "categoryInfo": "তথ্য", + "categorySystem": "সিস্টেম", + "copyLink": "লিঙ্ক কপি করুন", + "linkCopied": "লিঙ্ক কপি করা হয়েছে!", + "location": "অবস্থান", + "temperatureUnit": "তাপমাত্রা ইউনিট", + "showForecast": "তিন দিনের পূর্বাভাস দেখান", + "scrolling": "স্ক্রোল করার অনুমতি দিন", + "feedUrl": "ফিড ইউআরএল", + "maxItems": "সর্বোচ্চ আইটেম", + "showDescription": "বিবরণ দেখান", + "widgetRssName": "আরএসএস ফিড", + "rssNoFeedUrl": "উইজেট সেটিংসে একটি ফিড ইউআরএল কনফিগার করুন।", + "rssLoadError": "ফিড লোড করা যায়নি", + "rssNoItems": "কোন আইটেম নেই", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "displayedMetrics": "প্রদর্শিত মেট্রিক্স", + "metricCpu": "সিপিইউ", + "metricMemory": "স্মৃতি", + "metricDisk": "ডিস্ক", + "metricUptime": "আপটাইম", + "metricSystem": "সিস্টেম", + "metricNetwork": "নেটওয়ার্ক", + "metricProcesses": "প্রক্রিয়া", + "categoryMonitoring": "পর্যবেক্ষণ", + "noPingUrls": "কোন URL কনফিগার করা নেই", + "pingLabel": "লেবেল", + "addPingUrl": "URL যোগ করুন", + "showLatency": "লেটেন্সি দেখান", + "refreshInterval": "রিফ্রেশ ব্যবধান", + "seconds": "সেকেন্ড", + "filterActivityTypes": "ফিল্টারের প্রকারভেদ", + "filterTypesHint": "সবগুলো দেখাতে খালি রাখুন", + "showTimestamp": "টাইমস্ট্যাম্প দেখান", + "uptimeUnavailable": "আপটাইম অনুপলব্ধ", + "uptimeLabel": "আপটাইম", + "overviewVersion": "সংস্করণ", + "overviewUpdateLabel": "আপডেট", + "overviewUpdateAvailable": "আপডেট উপলব্ধ", + "overviewDatabase": "ডাটাবেস", + "overviewUptime": "আপটাইম", + "noHosts": "কোন হোস্ট কনফিগার করা নেই", + "hostGridHosts": "হোস্টরা", + "hostGridAllHint": "সমস্ত হোস্ট দেখানোর জন্য খালি রাখুন", + "columns": "কলাম", + "showIp": "আইপি ঠিকানা দেখান", + "layout": "লেআউট", + "showStatus": "অবস্থা দেখান", + "noActivity": "কোন কার্যকলাপ নেই", + "widgetPingStatusName": "পিং স্ট্যাটাস", + "widgetRecentActivityName": "সাম্প্রতিক কার্যকলাপ", + "sshTerminalNoHost": "কোন হোস্ট কনফিগার করা নেই", + "sshTerminalConnect": "সংযোগ করুন", + "sshTerminalAutoConnect": "লোড হলে স্বয়ংক্রিয়ভাবে সংযোগ স্থাপন", + "connectionTypes": "সংযোগের প্রকারভেদ", + "calMon": "মো", + "calTue": "তু", + "calWed": "আমরা", + "calThu": "থ", + "calFri": "ফ্র", + "calSat": "সা", + "calSun": "সু", + "startOnMonday": "সোমবার থেকে সপ্তাহ শুরু করুন", + "countdownNoDate": "কোনো নির্দিষ্ট তারিখ নির্ধারণ করা হয়নি।", + "countdownPast": "অনুষ্ঠানটি শেষ হয়ে গেছে।", + "countdownDays": "দিন", + "countdownHours": "ঘন্টা", + "countdownMinutes": "মিনিট", + "countdownSeconds": "সেকেন্ড", + "countdownLabel": "লেবেল", + "countdownLabelPlaceholder": "যেমন লঞ্চের দিন", + "countdownShowDays": "শো ডেজ", + "countdownShowHours": "শো আওয়ার্স", + "targetDate": "লক্ষ্য তারিখ", + "searchEngine": "সার্চ ইঞ্জিন", + "customSearchUrl": "কাস্টম সার্চ ইউআরএল", + "searchPlaceholder": "অনুসন্ধান করুন...", + "searchGo": "যান", + "searchPlaceholderLabel": "স্থানধারক পাঠ্য", + "searchPlaceholderHint": "সার্চ ইনপুটের ভিতরে দেখানো টেক্সট", + "openInNewTab": "নতুন ট্যাবে খুলুন", + "searchQueryPlaceholder": "প্রশ্ন লিখুন...", + "noSearchShortcuts": "কোন শর্টকাট কনফিগার করা নেই", + "addSearchShortcut": "শর্টকাট যোগ করুন", + "fontSize": "ফন্ট সাইজ", + "textAlign": "টেক্সট অ্যালাইন", + "fontWeight": "ফন্ট ওজন", + "clearColor": "পরিষ্কার রঙ", + "imageFit": "ইমেজ ফিট", + "imageLinkUrl": "লিঙ্ক ইউআরএল", + "noImage": "কোন ছবির ইউআরএল সেট করা হয়নি", + "altText": "বিকল্প পাঠ্য", + "altTextPlaceholder": "ছবিটি বর্ণনা করুন", + "renderMarkdown": "রেন্ডার মার্কডাউন", + "displayMode": "ডিসপ্লে মোড", + "displayField": "ডিসপ্লে ফিল্ড", + "jsonPath": "JSON পাথ", + "customApiLabel": "লেবেল", + "customApiLabelPlaceholder": "যেমন তাপমাত্রা", + "customApiUnit": "ইউনিট", + "customApiNoUrl": "কোন API URL কনফিগার করা নেই", + "customApiError": "আনতে ব্যর্থ হয়েছে", + "customApiNotArray": "প্রতিক্রিয়া একটি অ্যারে নয়", + "addService": "পরিষেবা যোগ করুন", + "showLabels": "লেবেল দেখান", + "iconSize": "আইকনের আকার", + "noDashboardLinks": "কোন ড্যাশবোর্ড লিঙ্ক কনফিগার করা নেই", + "noLimit": "কোনো সীমা নেই", + "sectionHeading": "বিভাগ শিরোনাম", + "addSection": "বিভাগ যোগ করুন", + "compactMode": "কমপ্যাক্ট মোড", + "selectHosts": "হোস্ট নির্বাচন করুন", + "listLayout": "তালিকা", + "gridLayout": "গ্রিড", + "configureUrl": "উইজেট সেটিংসে একটি URL সেট করুন।", + "embeddedContent": "এমবেডেড কন্টেন্ট", + "noBookmarks": "কোন বুকমার্ক নেই", + "noSections": "কোন বিভাগ তৈরি করা হয়নি", + "noServices": "কোন পরিষেবা সেট আপ করা হয়নি", + "configureLocation": "উইজেট সেটিংসে একটি অবস্থান নির্ধারণ করুন।", + "bannerTextPlaceholder": "ব্যানার টেক্সট", + "serviceNamePlaceholder": "আমার পরিষেবা" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "হোমপেজ ব্যবহার করুন", + "description": "হোমপেজ ক্যানভাস এবং ড্যাশবোর্ড সার্ভিস লিঙ্কগুলো দেখুন ও সম্পাদনা করুন।" } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "ব্যক্তিগত হোস্টদের অনুমতি দেওয়া হয়েছে", + "description": "পিং স্ট্যাটাস এবং কাস্টম এপিআই উইজেটগুলির জন্য সঠিক প্রাইভেট বা লুপব্যাক হোস্টনেম/আইপি। এন্ট্রিগুলিকে কমা বা নিউলাইন দিয়ে আলাদা করুন; স্কিম, পোর্ট এবং পাথ বাদ দিন। খালি ব্লকগুলি প্রাইভেট গন্তব্য।" }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "বেসরকারি শংসাপত্র কর্তৃপক্ষ (পিইএম)", + "description": "অনুমোদিত হোস্টগুলির জন্য ঐচ্ছিক বিশ্বস্ত CA বান্ডেল। সার্টিফিকেট যাচাইকরণ সক্রিয় থাকবে। সিস্টেম ট্রাস্ট স্টোর ব্যবহার করতে এটি খালি রাখুন।" } } } diff --git a/plugins/homepage/locales/translated/hi_IN.json b/plugins/homepage/locales/translated/hi_IN.json index 8e1e88ce8..6d018d789 100644 --- a/plugins/homepage/locales/translated/hi_IN.json +++ b/plugins/homepage/locales/translated/hi_IN.json @@ -18,7 +18,7 @@ "homepage": { "title": "होमपेज", "addWidget": "विजेट जोड़ें", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "इस श्रेणी में कोई विजेट नहीं हैं", "editWidget": "विजेट संपादित करें", "zoomIn": "ज़ूम इन", "zoomOut": "ज़ूम आउट", @@ -39,7 +39,7 @@ "description": "विवरण", "color": "रंग", "timezone": "समय क्षेत्र", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "समय क्षेत्र अमान्य है। कृपया IANA नाम का उपयोग करें, जैसे कि America/New_York", "showSeconds": "सेकंड दिखाएँ", "format12h": "12-घंटे", "content": "सामग्री", @@ -60,9 +60,9 @@ "maxItems": "अधिकतम आइटम", "showDescription": "विवरण दिखाएं", "widgetRssName": "RSS फ़ीड", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "विजेट सेटिंग में फ़ीड URL कॉन्फ़िगर करें", + "rssLoadError": "फ़ीड लोड नहीं हो सका", + "rssNoItems": "कोई आइटम नहीं", "noHostSelected": "कोई होस्ट चयनित नहीं", "displayedMetrics": "प्रदर्शित मेट्रिक्स", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "होस्ट चुनें", "listLayout": "सूची", "gridLayout": "ग्रिड", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "विजेट सेटिंग में एक URL सेट करें", + "embeddedContent": "अंतर्निहित सामग्री", + "noBookmarks": "कोई बुकमार्क नहीं", + "noSections": "कोई अनुभाग स्थापित नहीं किया गया है", + "noServices": "कोई सेवा स्थापित नहीं की गई", + "configureLocation": "विजेट सेटिंग में स्थान निर्धारित करें", + "bannerTextPlaceholder": "बैनर पाठ", + "serviceNamePlaceholder": "मेरी सेवा" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "होमपेज का उपयोग करें", + "description": "होमपेज कैनवास और डैशबोर्ड सेवा लिंक देखें और संपादित करें।" } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "निजी होस्ट की अनुमति है", + "description": "पिंग स्टेटस और कस्टम API विजेट के लिए सटीक निजी या लूपबैक होस्टनाम/IP पते। प्रविष्टियों को अल्पविराम या नई लाइन से अलग करें; स्कीम, पोर्ट और पथ को छोड़ दें। खाली ब्लॉक निजी गंतव्यों के लिए हैं।" }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "निजी प्रमाणपत्र प्राधिकरण (पीईएम)", + "description": "अनुमत होस्टों के लिए वैकल्पिक विश्वसनीय CA बंडल। प्रमाणपत्र सत्यापन सक्षम रहता है। सिस्टम ट्रस्ट स्टोर का उपयोग करने के लिए इसे खाली छोड़ दें।" } } } diff --git a/plugins/homepage/locales/translated/id_ID.json b/plugins/homepage/locales/translated/id_ID.json index 760b3a445..64880d4a9 100644 --- a/plugins/homepage/locales/translated/id_ID.json +++ b/plugins/homepage/locales/translated/id_ID.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Beranda" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Tautan Layanan", + "homepagePreview": "Pratinjau Halaman Utama" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksTitle": "Tautan Layanan", + "serviceLinksEmpty": "Belum ada tautan layanan.", + "serviceLinksAdd": "Menambahkan", + "serviceLinksLabelPlaceholder": "Layanan Saya", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "Masukkan alamat web yang valid", + "serviceLinksAddFailed": "Gagal menambahkan tautan layanan" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", + "title": "Beranda", + "addWidget": "Tambahkan Widget", + "noWidgetsInCategory": "Tidak ada widget dalam kategori ini", "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", + "zoomIn": "Perbesar", + "zoomOut": "Perkecil tampilan", + "resetView": "Atur Ulang Tampilan", + "lockLayout": "Tata Letak Kunci", + "unlockLayout": "Buka Tata Letak", + "noWidgets": "Klik kanan atau klik + untuk menambahkan widget pertama Anda.", + "openFullView": "Buka Tampilan Penuh", + "previewTitle": "Pratinjau Halaman Utama", + "cancel": "Membatalkan", + "save": "Menyimpan", + "title_label": "Judul", + "widgetTitlePlaceholder": "Judul widget (opsional)", "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", + "imageUrl": "URL Gambar Kustom", + "imageUrlHint": "Biarkan kosong untuk menggunakan favicon situs secara otomatis.", + "showImage": "Tampilkan Gambar", + "description": "Keterangan", + "color": "Warna", + "timezone": "Zona waktu", + "invalidTimezone": "Zona waktu tidak valid. Gunakan nama IANA seperti America/New_York.", + "showSeconds": "Tampilkan detik", + "format12h": "12 jam", + "content": "Isi", + "backgroundColor": "Warna Latar Belakang", + "links": "Tautan", + "addLink": "Tambahkan Tautan", "linkLabel": "Label", - "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", + "categoryLinks": "Tautan", + "categoryInfo": "Informasi", + "categorySystem": "Sistem", + "copyLink": "Salin Tautan", + "linkCopied": "Tautan berhasil disalin!", + "location": "Lokasi", + "temperatureUnit": "Satuan Suhu", + "showForecast": "Tampilkan ramalan cuaca 3 hari ke depan", + "scrolling": "Izinkan Pengguliran", + "feedUrl": "URL Umpan", + "maxItems": "Jumlah Item Maksimum", + "showDescription": "Tampilkan Deskripsi", + "widgetRssName": "Umpan RSS", + "rssNoFeedUrl": "Konfigurasikan URL feed di pengaturan widget.", + "rssLoadError": "Tidak dapat memuat umpan", + "rssNoItems": "Tidak ada barang", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "displayedMetrics": "Metrik yang Ditampilkan", "metricCpu": "CPU", - "metricMemory": "Memory", + "metricMemory": "Ingatan", "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", + "metricUptime": "Waktu aktif", + "metricSystem": "Sistem", + "metricNetwork": "Jaringan", + "metricProcesses": "Proses", + "categoryMonitoring": "Pemantauan", + "noPingUrls": "Tidak ada URL yang dikonfigurasi", "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", + "addPingUrl": "Tambahkan URL", + "showLatency": "Tampilkan Latensi", + "refreshInterval": "Interval Penyegaran", + "seconds": "detik", + "filterActivityTypes": "Jenis Filter", + "filterTypesHint": "Biarkan kosong untuk menampilkan semua", + "showTimestamp": "Tampilkan Cap Waktu", + "uptimeUnavailable": "Waktu aktif tidak tersedia", + "uptimeLabel": "Waktu aktif", + "overviewVersion": "Versi", + "overviewUpdateLabel": "Memperbarui", + "overviewUpdateAvailable": "Pembaruan tersedia", + "overviewDatabase": "Basis data", + "overviewUptime": "Waktu aktif", + "noHosts": "Tidak ada host yang dikonfigurasi.", + "hostGridHosts": "Tuan rumah", + "hostGridAllHint": "Biarkan kosong untuk menampilkan semua host", + "columns": "Kolom", + "showIp": "Tampilkan Alamat IP", + "layout": "Tata Letak", + "showStatus": "Tampilkan Status", + "noActivity": "Tidak ada kegiatan", + "widgetPingStatusName": "Status Ping", + "widgetRecentActivityName": "Aktivitas Terkini", + "sshTerminalNoHost": "Tidak ada host yang dikonfigurasi.", + "sshTerminalConnect": "Menghubungkan", + "sshTerminalAutoConnect": "Terhubung otomatis saat dimuat", + "connectionTypes": "Jenis Koneksi", "calMon": "Mo", "calTue": "Tu", - "calWed": "We", + "calWed": "Kami", "calThu": "Th", "calFri": "Fr", "calSat": "Sa", "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", - "countdownMinutes": "min", - "countdownSeconds": "sec", + "startOnMonday": "Minggu dimulai pada hari Senin.", + "countdownNoDate": "Tidak ada tanggal target yang ditetapkan.", + "countdownPast": "Acara telah berlalu", + "countdownDays": "hari", + "countdownHours": "jam", + "countdownMinutes": "menit", + "countdownSeconds": "detik", "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", + "countdownLabelPlaceholder": "misalnya Hari Peluncuran", + "countdownShowDays": "Hari Pertunjukan", + "countdownShowHours": "Jam Pertunjukan", + "targetDate": "Tanggal Target", + "searchEngine": "Mesin Pencari", + "customSearchUrl": "URL Pencarian Kustom", + "searchPlaceholder": "Mencari...", + "searchGo": "Pergi", + "searchPlaceholderLabel": "Teks Placeholder", + "searchPlaceholderHint": "Teks yang ditampilkan di dalam kolom pencarian", + "openInNewTab": "Buka di Tab Baru", + "searchQueryPlaceholder": "Masukkan pertanyaan...", + "noSearchShortcuts": "Tidak ada pintasan yang dikonfigurasi.", + "addSearchShortcut": "Tambahkan Pintasan", + "fontSize": "Ukuran Huruf", + "textAlign": "Perataan Teks", + "fontWeight": "Ketebalan Huruf", + "clearColor": "Warna Bening", + "imageFit": "Pencocokan Gambar", + "imageLinkUrl": "Tautan URL", + "noImage": "Tidak ada URL gambar yang ditetapkan.", + "altText": "Teks Alternatif", + "altTextPlaceholder": "Jelaskan gambar tersebut", "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", + "displayMode": "Mode Tampilan", + "displayField": "Bidang Tampilan", + "jsonPath": "Jalur JSON", "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "customApiLabelPlaceholder": "misalnya Suhu", + "customApiUnit": "Satuan", + "customApiNoUrl": "Tidak ada URL API yang dikonfigurasi.", + "customApiError": "Gagal mengambil", + "customApiNotArray": "Respons bukanlah sebuah array.", + "addService": "Tambahkan Layanan", + "showLabels": "Tampilkan Label", + "iconSize": "Ukuran Ikon", + "noDashboardLinks": "Tidak ada tautan dasbor yang dikonfigurasi.", + "noLimit": "Tidak ada batasan", + "sectionHeading": "Judul Bagian", + "addSection": "Tambahkan Bagian", + "compactMode": "Mode Ringkas", + "selectHosts": "Pilih Host", + "listLayout": "Daftar", + "gridLayout": "Jaringan", + "configureUrl": "Tetapkan URL di pengaturan widget.", + "embeddedContent": "Konten tersemat", + "noBookmarks": "Tidak ada bookmark", + "noSections": "Tidak ada bagian yang disiapkan", + "noServices": "Tidak ada layanan yang disiapkan.", + "configureLocation": "Tetapkan lokasi di pengaturan widget.", + "bannerTextPlaceholder": "Teks spanduk", + "serviceNamePlaceholder": "Layanan saya" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Gunakan halaman beranda", + "description": "Lihat dan edit kanvas halaman beranda dan tautan layanan dasbor." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Host pribadi yang diizinkan", + "description": "Nama host/IP privat atau loopback yang tepat untuk widget Status Ping dan API Kustom. Pisahkan entri dengan koma atau baris baru; hilangkan skema, port, dan jalur. Blok kosong untuk tujuan privat." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Lembaga sertifikasi swasta (PEM)", + "description": "Bundel CA tepercaya opsional untuk host yang diizinkan. Verifikasi sertifikat tetap diaktifkan. Biarkan kosong untuk menggunakan penyimpanan tepercaya sistem." } } } diff --git a/plugins/homepage/locales/translated/no_NO.json b/plugins/homepage/locales/translated/no_NO.json index f6883a6e7..c828520eb 100644 --- a/plugins/homepage/locales/translated/no_NO.json +++ b/plugins/homepage/locales/translated/no_NO.json @@ -1,70 +1,70 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Hjemmeside" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Tjenestelenker", + "homepagePreview": "Forhåndsvisning av hjemmeside" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", + "serviceLinksTitle": "Tjenestelenker", + "serviceLinksEmpty": "Ingen tjenestelenker ennå", "serviceLinksAdd": "Legg til", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksLabelPlaceholder": "Min tjeneste", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "Skriv inn en gyldig nettadresse", + "serviceLinksAddFailed": "Kunne ikke legge til tjenestelenke" }, "homepage": { - "title": "Homepage", + "title": "Hjemmeside", "addWidget": "Legg til widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", + "noWidgetsInCategory": "Ingen widgeter i denne kategorien", + "editWidget": "Rediger widget", "zoomIn": "Zoom inn", "zoomOut": "Zoom ut", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", + "resetView": "Tilbakestill visning", + "lockLayout": "Låseoppsett", + "unlockLayout": "Lås opp oppsett", + "noWidgets": "Høyreklikk eller klikk på + for å legge til din første widget", + "openFullView": "Åpne full visning", + "previewTitle": "Forhåndsvisning av hjemmeside", "cancel": "Avbryt", "save": "Lagre", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", - "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", + "title_label": "Tittel", + "widgetTitlePlaceholder": "Widgettittel (valgfritt)", + "url": "URL-adresse", + "imageUrl": "Tilpasset bilde-URL", + "imageUrlHint": "La feltet stå tomt for å bruke nettstedets favicon automatisk", + "showImage": "Vis bilde", "description": "Beskrivelse", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", + "color": "Farge", + "timezone": "Tidssone", + "invalidTimezone": "Ugyldig tidssone. Bruk et IANA-navn, for eksempel America/New_York.", + "showSeconds": "Vis sekunder", + "format12h": "12-timers", + "content": "Innhold", + "backgroundColor": "Bakgrunnsfarge", "links": "Lenker", - "addLink": "Add Link", - "linkLabel": "Label", + "addLink": "Legg til lenke", + "linkLabel": "Merkelapp", "categoryLinks": "Lenker", "categoryInfo": "Info", "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "copyLink": "Kopier lenke", + "linkCopied": "Lenken er kopiert!", + "location": "Sted", + "temperatureUnit": "Temperaturenhet", + "showForecast": "Vis 3-dagers værmelding", + "scrolling": "Tillat rulling", + "feedUrl": "Nettadresse for feeden", + "maxItems": "Maksimalt antall varer", + "showDescription": "Vis beskrivelse", + "widgetRssName": "RSS-feed", + "rssNoFeedUrl": "Konfigurer en feed-URL i widget-innstillingene", + "rssLoadError": "Kunne ikke laste inn feeden", + "rssNoItems": "Ingen varer", "noHostSelected": "Ingen vert valgt", - "displayedMetrics": "Displayed Metrics", + "displayedMetrics": "Viste målinger", "metricCpu": "CPU", "metricMemory": "Minne", "metricDisk": "Disk", @@ -72,119 +72,119 @@ "metricSystem": "System", "metricNetwork": "Nettverk", "metricProcesses": "Prosesser", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", + "categoryMonitoring": "Overvåking", + "noPingUrls": "Ingen nettadresser konfigurert", + "pingLabel": "Merkelapp", + "addPingUrl": "Legg til nettadresse", + "showLatency": "Vis latens", + "refreshInterval": "Oppdateringsintervall", "seconds": "sekunder", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", + "filterActivityTypes": "Filtertyper", + "filterTypesHint": "La stå tomt for å vise alle", + "showTimestamp": "Vis tidsstempel", + "uptimeUnavailable": "Oppetid utilgjengelig", "uptimeLabel": "Oppetid", "overviewVersion": "Versjon", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", + "overviewUpdateLabel": "Oppdatering", + "overviewUpdateAvailable": "Oppdatering tilgjengelig", "overviewDatabase": "Database", "overviewUptime": "Oppetid", - "noHosts": "No hosts configured", + "noHosts": "Ingen verter konfigurert", "hostGridHosts": "Verter", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", + "hostGridAllHint": "La stå tomt for å vise alle verter", + "columns": "Kolonner", + "showIp": "Vis IP-adresse", + "layout": "Oppsett", + "showStatus": "Vis status", + "noActivity": "Ingen aktivitet", + "widgetPingStatusName": "Ping-status", "widgetRecentActivityName": "Nylig aktivitet", - "sshTerminalNoHost": "No host configured", + "sshTerminalNoHost": "Ingen vert konfigurert", "sshTerminalConnect": "Koble til", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", + "sshTerminalAutoConnect": "Automatisk tilkobling ved lasting", + "connectionTypes": "Tilkoblingstyper", "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", + "calTue": "Ti", + "calWed": "Vi", + "calThu": "To", "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", + "calSat": "Lø", + "calSun": "Søn", + "startOnMonday": "Start uken på mandag", + "countdownNoDate": "Ingen måldato angitt", + "countdownPast": "Arrangementet har gått", + "countdownDays": "dager", + "countdownHours": "timer", "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", + "countdownSeconds": "sek", + "countdownLabel": "Merkelapp", + "countdownLabelPlaceholder": "f.eks. lanseringsdag", + "countdownShowDays": "Vis dager", + "countdownShowHours": "Åpningstider", + "targetDate": "Måldato", + "searchEngine": "Søkemotor", + "customSearchUrl": "Tilpasset søke-URL", + "searchPlaceholder": "Søk...", + "searchGo": "Gå", + "searchPlaceholderLabel": "Plassholdertekst", + "searchPlaceholderHint": "Tekst vist i søkefeltet", + "openInNewTab": "Åpne i ny fane", + "searchQueryPlaceholder": "Skriv inn spørring...", + "noSearchShortcuts": "Ingen snarveier konfigurert", + "addSearchShortcut": "Legg til snarvei", "fontSize": "Skriftstørrelse", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", + "textAlign": "Tekstjustering", + "fontWeight": "Skriftvekt", + "clearColor": "Klar farge", + "imageFit": "Bildetilpasning", + "imageLinkUrl": "Lenke-URL", + "noImage": "Ingen bilde-URL angitt", + "altText": "Alternativ tekst", + "altTextPlaceholder": "Beskriv bildet", + "renderMarkdown": "Gjengivelsesmarkering", + "displayMode": "Visningsmodus", + "displayField": "Visningsfelt", + "jsonPath": "JSON-sti", + "customApiLabel": "Merkelapp", + "customApiLabelPlaceholder": "f.eks. Temperatur", + "customApiUnit": "Enhet", + "customApiNoUrl": "Ingen API-URL konfigurert", + "customApiError": "Kunne ikke hente", + "customApiNotArray": "Responsen er ikke en matrise", + "addService": "Legg til tjeneste", + "showLabels": "Vis etiketter", + "iconSize": "Ikonstørrelse", + "noDashboardLinks": "Ingen dashbordlenker konfigurert", + "noLimit": "Ingen grense", + "sectionHeading": "Seksjonsoverskrift", + "addSection": "Legg til seksjon", + "compactMode": "Kompakt modus", + "selectHosts": "Velg verter", "listLayout": "Liste", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "gridLayout": "Rutenett", + "configureUrl": "Angi en URL i widgetinnstillingene", + "embeddedContent": "Innebygd innhold", + "noBookmarks": "Ingen bokmerker", + "noSections": "Ingen seksjoner er satt opp", + "noServices": "Ingen tjenester konfigurert", + "configureLocation": "Angi en plassering i widgetinnstillingene", + "bannerTextPlaceholder": "Bannertekst", + "serviceNamePlaceholder": "Min tjeneste" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Bruk hjemmesiden", + "description": "Vis og rediger lenkene til startsidens lerret og dashbordtjenesten." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Tillatte private verter", + "description": "Nøyaktige private eller loopback-vertsnavn/IP-adresser for Ping-status og tilpassede API-widgeter. Skill oppføringer med komma eller linjeskift; utelat skjemaer, porter og stier. Tøm blokkering av private destinasjoner." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Privat sertifikatmyndighet (PEM)", + "description": "Valgfri pakke med klarert CA for verter på tillatelseslisten. Sertifikatverifisering forblir aktivert. La stå tomt for å bruke systemets klareringslager." } } } diff --git a/plugins/homepage/locales/translated/pl_PL.json b/plugins/homepage/locales/translated/pl_PL.json index df69b4d43..ac081e41b 100644 --- a/plugins/homepage/locales/translated/pl_PL.json +++ b/plugins/homepage/locales/translated/pl_PL.json @@ -18,7 +18,7 @@ "homepage": { "title": "Strona główna", "addWidget": "Dodaj widżet", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "Brak widgetów w tej kategorii", "editWidget": "Edytuj widżet", "zoomIn": "Powiększ", "zoomOut": "Oddal", @@ -39,7 +39,7 @@ "description": "Opis", "color": "Kolor", "timezone": "Strefa czasowa", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "Nieprawidłowa strefa czasowa. Użyj nazwy IANA, takiej jak America/New_York", "showSeconds": "Pokaż sekundy", "format12h": "12-godzinny", "content": "Treść", @@ -60,9 +60,9 @@ "maxItems": "Maksymalna liczba elementów", "showDescription": "Pokaż opis", "widgetRssName": "Kanał RSS", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "Skonfiguruj adres URL kanału w ustawieniach widżetu", + "rssLoadError": "Nie można załadować kanału", + "rssNoItems": "Brak pozycji", "noHostSelected": "Nie wybrano hosta", "displayedMetrics": "Wyświetlane metryki", "metricCpu": "Procesor", @@ -162,29 +162,29 @@ "selectHosts": "Wybierz hosty", "listLayout": "Lista", "gridLayout": "Siatka", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "Ustaw adres URL w ustawieniach widżetu", + "embeddedContent": "Osadzona treść", + "noBookmarks": "Brak zakładek", + "noSections": "Nie utworzono żadnych sekcji", + "noServices": "Brak skonfigurowanych usług", + "configureLocation": "Ustaw lokalizację w ustawieniach widżetu", + "bannerTextPlaceholder": "Tekst banera", + "serviceNamePlaceholder": "Moja usługa" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Użyj strony głównej", + "description": "Przeglądaj i edytuj płótno strony głównej oraz łącza do usług pulpitu nawigacyjnego." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Dozwolone prywatne hosty", + "description": "Dokładne prywatne lub pętli zwrotnej nazwy hostów/adresy IP dla statusu pingowania i widżetów niestandardowego API. Oddziel wpisy przecinkami lub znakami nowej linii; pomiń schematy, porty i ścieżki. Puste bloki prywatnych miejsc docelowych." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Prywatny urząd certyfikacji (PEM)", + "description": "Opcjonalny pakiet zaufanego urzędu certyfikacji dla hostów z listy dozwolonych. Weryfikacja certyfikatu pozostaje włączona. Pozostaw puste, aby korzystać z systemowego magazynu zaufanych certyfikatów." } } } diff --git a/plugins/homepage/locales/translated/pt_BR.json b/plugins/homepage/locales/translated/pt_BR.json index 5ec42844c..f865b8481 100644 --- a/plugins/homepage/locales/translated/pt_BR.json +++ b/plugins/homepage/locales/translated/pt_BR.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Página inicial" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Links de serviço", + "homepagePreview": "Pré-visualização da página inicial" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", + "serviceLinksTitle": "Links de serviço", + "serviceLinksEmpty": "Ainda não há links de serviço.", "serviceLinksAdd": "Adicionar", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksLabelPlaceholder": "Meu Serviço", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "Insira um endereço web válido.", + "serviceLinksAddFailed": "Falha ao adicionar o link de serviço" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", + "title": "Página inicial", + "addWidget": "Adicionar widget", + "noWidgetsInCategory": "Não há widgets nesta categoria.", + "editWidget": "Widget de edição", + "zoomIn": "Ampliar", + "zoomOut": "Diminuir o zoom", + "resetView": "Redefinir visualização", + "lockLayout": "Configuração de fechadura", + "unlockLayout": "Desbloquear layout", + "noWidgets": "Clique com o botão direito do mouse ou clique em + para adicionar seu primeiro widget.", + "openFullView": "Abrir visualização completa", + "previewTitle": "Pré-visualização da página inicial", "cancel": "Cancelar", "save": "Salvar", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", + "title_label": "Título", + "widgetTitlePlaceholder": "Título do widget (opcional)", "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", + "imageUrl": "URL da imagem personalizada", + "imageUrlHint": "Deixe em branco para usar o favicon do site automaticamente.", + "showImage": "Mostrar imagem", + "description": "Descrição", + "color": "Cor", + "timezone": "Fuso horário", + "invalidTimezone": "Fuso horário inválido. Use um nome IANA, como America/New_York.", + "showSeconds": "Mostrar segundos", + "format12h": "12 horas", + "content": "Contente", + "backgroundColor": "Cor de fundo", "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", + "addLink": "Adicionar link", + "linkLabel": "Rótulo", "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", + "categoryInfo": "Informações", + "categorySystem": "Sistema", + "copyLink": "Copiar link", + "linkCopied": "Link copiado!", + "location": "Localização", + "temperatureUnit": "Unidade de temperatura", + "showForecast": "Mostrar previsão para 3 dias", + "scrolling": "Permitir rolagem", + "feedUrl": "URL do feed", + "maxItems": "Número máximo de itens", + "showDescription": "Descrição do programa", + "widgetRssName": "Feed RSS", + "rssNoFeedUrl": "Configure um URL de feed nas configurações do widget.", + "rssLoadError": "Não foi possível carregar o feed.", + "rssNoItems": "Nenhum item", + "noHostSelected": "Nenhum host selecionado", + "displayedMetrics": "Métricas exibidas", "metricCpu": "CPU", - "metricMemory": "Memory", - "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", + "metricMemory": "Memória", + "metricDisk": "Disco", + "metricUptime": "Tempo de atividade", + "metricSystem": "Sistema", + "metricNetwork": "Rede", + "metricProcesses": "Processos", + "categoryMonitoring": "Monitoramento", + "noPingUrls": "Nenhuma URL configurada", + "pingLabel": "Rótulo", + "addPingUrl": "Adicionar URL", + "showLatency": "Mostrar latência", + "refreshInterval": "Intervalo de atualização", + "seconds": "segundos", + "filterActivityTypes": "Tipos de filtro", + "filterTypesHint": "Deixe em branco para mostrar tudo", + "showTimestamp": "Mostrar carimbo de data/hora", + "uptimeUnavailable": "Tempo de atividade indisponível", + "uptimeLabel": "Tempo de atividade", + "overviewVersion": "Versão", "overviewUpdateLabel": "Atualizar", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", + "overviewUpdateAvailable": "Atualização disponível", + "overviewDatabase": "Banco de dados", + "overviewUptime": "Tempo de atividade", + "noHosts": "Nenhum host configurado", "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", + "hostGridAllHint": "Deixe em branco para mostrar todos os hosts.", + "columns": "Colunas", + "showIp": "Mostrar endereço IP", "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", + "showStatus": "Mostrar status", + "noActivity": "Nenhuma atividade", + "widgetPingStatusName": "Status do ping", + "widgetRecentActivityName": "Atividade recente", + "sshTerminalNoHost": "Nenhum host configurado", "sshTerminalConnect": "Conectar", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", + "sshTerminalAutoConnect": "Conexão automática sob carga", + "connectionTypes": "Tipos de conexão", "calMon": "Mo", "calTue": "Tu", - "calWed": "We", - "calThu": "Th", - "calFri": "Fr", + "calWed": "Nós", + "calThu": "O", + "calFri": "Padre", "calSat": "Sa", "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", + "startOnMonday": "Comece a semana na segunda-feira", + "countdownNoDate": "Nenhuma data-alvo definida.", + "countdownPast": "O evento já aconteceu.", + "countdownDays": "dias", + "countdownHours": "horas", "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", + "countdownSeconds": "seg", + "countdownLabel": "Rótulo", + "countdownLabelPlaceholder": "Exemplo: Dia do Lançamento", + "countdownShowDays": "Dias de exibição", + "countdownShowHours": "Horário de funcionamento", + "targetDate": "Data alvo", + "searchEngine": "Mecanismo de busca", + "customSearchUrl": "URL de pesquisa personalizada", + "searchPlaceholder": "Procurar...", + "searchGo": "Ir", + "searchPlaceholderLabel": "Texto de espaço reservado", + "searchPlaceholderHint": "Texto exibido dentro do campo de pesquisa", "openInNewTab": "Abrir em Nova Aba", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", + "searchQueryPlaceholder": "Digite a consulta...", + "noSearchShortcuts": "Nenhum atalho configurado", + "addSearchShortcut": "Adicionar atalho", "fontSize": "Tamanho da Fonte", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "textAlign": "Alinhamento de texto", + "fontWeight": "Peso da fonte", + "clearColor": "Cor transparente", + "imageFit": "Ajuste de imagem", + "imageLinkUrl": "URL do link", + "noImage": "Nenhuma URL de imagem definida.", + "altText": "Texto alternativo", + "altTextPlaceholder": "Descreva a imagem", + "renderMarkdown": "Renderizar Markdown", + "displayMode": "Modo de exibição", + "displayField": "Campo de exibição", + "jsonPath": "Caminho JSON", + "customApiLabel": "Rótulo", + "customApiLabelPlaceholder": "Exemplo: Temperatura", + "customApiUnit": "Unidade", + "customApiNoUrl": "Nenhuma URL de API configurada", + "customApiError": "Falha ao buscar", + "customApiNotArray": "A resposta não é uma matriz.", + "addService": "Adicionar serviço", + "showLabels": "Mostrar rótulos", + "iconSize": "Tamanho do ícone", + "noDashboardLinks": "Nenhum link para o painel de controle configurado", + "noLimit": "Sem limite", + "sectionHeading": "Título da seção", + "addSection": "Adicionar seção", + "compactMode": "Modo compacto", + "selectHosts": "Selecionar anfitriões", + "listLayout": "Lista", + "gridLayout": "Grade", + "configureUrl": "Defina um URL nas configurações do widget.", + "embeddedContent": "Conteúdo incorporado", + "noBookmarks": "Sem favoritos", + "noSections": "Nenhuma seção configurada", + "noServices": "Nenhum serviço configurado", + "configureLocation": "Defina uma localização nas configurações do widget.", + "bannerTextPlaceholder": "Texto do banner", + "serviceNamePlaceholder": "Meu serviço" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Use a página inicial", + "description": "Visualize e edite os links de serviço da página inicial e do painel de controle." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Hosts privados permitidos", + "description": "Insira os nomes de host/IPs exatos, privados ou de loopback, para os widgets de Status de Ping e API Personalizada. Separe as entradas com vírgulas ou novas linhas; omita esquemas, portas e caminhos. Deixe os blocos vazios para destinos privados." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Autoridade de certificação privada (PEM)", + "description": "Pacote opcional de CAs confiáveis para hosts na lista de permissões. A verificação de certificados permanece ativada. Deixe em branco para usar o repositório de certificados confiáveis do sistema." } } } diff --git a/plugins/homepage/locales/translated/pt_PT.json b/plugins/homepage/locales/translated/pt_PT.json index effbb6df2..e5a8d8f34 100644 --- a/plugins/homepage/locales/translated/pt_PT.json +++ b/plugins/homepage/locales/translated/pt_PT.json @@ -18,7 +18,7 @@ "homepage": { "title": "Página Inicial", "addWidget": "Adicionar widget", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "Não existem widgets nesta categoria.", "editWidget": "Editar widget", "zoomIn": "Ampliar", "zoomOut": "Reduzir", @@ -39,7 +39,7 @@ "description": "Descrição", "color": "Cor", "timezone": "Fuso Horário", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "Fuso horário inválido. Utilize um nome IANA, como America/New_York.", "showSeconds": "Mostrar segundos", "format12h": "12 horas", "content": "Conteúdo", @@ -60,9 +60,9 @@ "maxItems": "Itens máx.", "showDescription": "Mostrar descrição", "widgetRssName": "Feed RSS", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "Configure um URL de feed nas definições do widget.", + "rssLoadError": "Não foi possível carregar o feed.", + "rssNoItems": "Nenhum item", "noHostSelected": "Nenhum anfitrião selecionado", "displayedMetrics": "Métricas Exibidas", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "Selecionar Hosts", "listLayout": "Lista", "gridLayout": "Grelha", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "Defina um URL nas definições do widget.", + "embeddedContent": "Conteúdo incorporado", + "noBookmarks": "Sem favoritos", + "noSections": "Nenhuma secção configurada", + "noServices": "Nenhum serviço configurado", + "configureLocation": "Defina uma localização nas definições do widget.", + "bannerTextPlaceholder": "Texto do banner", + "serviceNamePlaceholder": "O meu serviço" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Utilize a página inicial", + "description": "Visualize e edite os links de serviço da página inicial e do painel de controlo." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Hosts privados permitidos", + "description": "Introduza os nomes de host/IPs exatos, privados ou de loopback, para os widgets Ping Status e Custom API. Separe as entradas com vírgulas ou novas linhas; omita esquemas, portas e caminhos. Deixe os blocos vazios para destinos privados." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Autoridade de certificação privada (PEM)", + "description": "Pacote opcional de CAs fidedignas para hosts na lista de permissões. A verificação de certificados permanece ativada. Deixe em branco para utilizar o repositório de certificados fidedignos do sistema." } } } diff --git a/plugins/homepage/locales/translated/ru_RU.json b/plugins/homepage/locales/translated/ru_RU.json index b1f1c03b8..e72dceee1 100644 --- a/plugins/homepage/locales/translated/ru_RU.json +++ b/plugins/homepage/locales/translated/ru_RU.json @@ -18,7 +18,7 @@ "homepage": { "title": "Главная страница", "addWidget": "Добавить виджет", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "В этой категории нет виджетов.", "editWidget": "Изменить виджет", "zoomIn": "Приблизить", "zoomOut": "Отдалить", @@ -39,7 +39,7 @@ "description": "Описание", "color": "Цвет", "timezone": "Часовой пояс", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "Неверный часовой пояс. Используйте название IANA, например, America/New_York.", "showSeconds": "Показывать секунды", "format12h": "12-часовой", "content": "Содержимое", @@ -60,9 +60,9 @@ "maxItems": "Макс. элементов", "showDescription": "Показывать описание", "widgetRssName": "RSS-лента", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "Настройте URL-адрес ленты в параметрах виджета.", + "rssLoadError": "Не удалось загрузить подачу.", + "rssNoItems": "Нет товаров", "noHostSelected": "Хост не выбран", "displayedMetrics": "Отображаемые метрики", "metricCpu": "ЦП", @@ -162,29 +162,29 @@ "selectHosts": "Выбрать хосты", "listLayout": "Список", "gridLayout": "Сетка", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "Укажите URL-адрес в настройках виджета.", + "embeddedContent": "Встроенный контент", + "noBookmarks": "Закладок нет", + "noSections": "Разделы не настроены", + "noServices": "Сервисы не настроены", + "configureLocation": "Укажите местоположение в настройках виджета.", + "bannerTextPlaceholder": "Текст баннера", + "serviceNamePlaceholder": "Моя услуга" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Воспользуйтесь главной страницей", + "description": "Просматривайте и редактируйте ссылки на холст главной страницы и панель управления." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Разрешены частные хосты", + "description": "Точные частные или зацикленные имена хостов/IP-адреса для виджетов Ping Status и Custom API. Разделяйте записи запятыми или символами новой строки; схемы, порты и пути опускайте. Пустые блоки указывают частные адреса назначения." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Частный центр сертификации (PEM)", + "description": "Дополнительный пакет доверенных центров сертификации для хостов из списка разрешенных. Проверка сертификатов остается включенной. Оставьте поле пустым, чтобы использовать системное хранилище доверенных сертификатов." } } } diff --git a/plugins/homepage/locales/translated/sr_SP.json b/plugins/homepage/locales/translated/sr_SP.json index 760b3a445..3370bd4c5 100644 --- a/plugins/homepage/locales/translated/sr_SP.json +++ b/plugins/homepage/locales/translated/sr_SP.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Почетна страница" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Линкови услуга", + "homepagePreview": "Преглед почетне странице" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", - "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksTitle": "Линкови услуга", + "serviceLinksEmpty": "Још нема линкова за услуге", + "serviceLinksAdd": "Додај", + "serviceLinksLabelPlaceholder": "Моја услуга", + "serviceLinksUrlPlaceholder": "хттп://192.168.1.10:8080", + "serviceLinksInvalidUrl": "Унесите важећу веб адресу", + "serviceLinksAddFailed": "Додавање линка услуге није успело" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", + "title": "Почетна страница", + "addWidget": "Додај виџет", + "noWidgetsInCategory": "Нема виџета у овој категорији", + "editWidget": "Измени виџет", + "zoomIn": "Увећај", + "zoomOut": "Умањи", + "resetView": "Ресетуј приказ", + "lockLayout": "Закључај распоред", + "unlockLayout": "Откључај распоред", + "noWidgets": "Кликните десним тастером миша или кликните на + да бисте додали свој први виџет", + "openFullView": "Отвори цео приказ", + "previewTitle": "Преглед почетне странице", + "cancel": "Откажи", + "save": "Сачувај", + "title_label": "Наслов", + "widgetTitlePlaceholder": "Наслов виџета (опционо)", "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", - "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", - "metricCpu": "CPU", - "metricMemory": "Memory", - "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", - "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", - "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", - "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "imageUrl": "Прилагођени URL слике", + "imageUrlHint": "Оставите празно да бисте аутоматски користили фавикон сајта", + "showImage": "Прикажи слику", + "description": "Опис", + "color": "Боја", + "timezone": "Временска зона", + "invalidTimezone": "Неважећа временска зона. Користите IANA назив као што је Америка/Њујорк", + "showSeconds": "Прикажи секунде", + "format12h": "12 сати", + "content": "Садржај", + "backgroundColor": "Боја позадине", + "links": "Линкови", + "addLink": "Додај линк", + "linkLabel": "Ознака", + "categoryLinks": "Линкови", + "categoryInfo": "Информације", + "categorySystem": "Систем", + "copyLink": "Копирај линк", + "linkCopied": "Линк копиран!", + "location": "Локација", + "temperatureUnit": "Јединица за температуру", + "showForecast": "Прикажи тродневну прогнозу", + "scrolling": "Дозволи скроловање", + "feedUrl": "URL фида", + "maxItems": "Максималан број ставки", + "showDescription": "Прикажи опис", + "widgetRssName": "RSS фид", + "rssNoFeedUrl": "Конфигуришите URL фида у подешавањима виџета", + "rssLoadError": "Није могуће учитати фид", + "rssNoItems": "Нема артикала", + "noHostSelected": "Није изабран домаћин", + "displayedMetrics": "Приказане метрике", + "metricCpu": "Процесор", + "metricMemory": "Памћење", + "metricDisk": "Диск", + "metricUptime": "Време непрекидног рада", + "metricSystem": "Систем", + "metricNetwork": "Мрежа", + "metricProcesses": "Процеси", + "categoryMonitoring": "Праћење", + "noPingUrls": "Није конфигурисан ниједан URL", + "pingLabel": "Ознака", + "addPingUrl": "Додај URL", + "showLatency": "Прикажи латенцију", + "refreshInterval": "Интервал освежавања", + "seconds": "секунде", + "filterActivityTypes": "Типови филтера", + "filterTypesHint": "Оставите празно да бисте видели све", + "showTimestamp": "Прикажи временску ознаку", + "uptimeUnavailable": "Време непрекидног рада није доступно", + "uptimeLabel": "Време непрекидног рада", + "overviewVersion": "Верзија", + "overviewUpdateLabel": "Ажурирање", + "overviewUpdateAvailable": "Ажурирање је доступно", + "overviewDatabase": "База података", + "overviewUptime": "Време непрекидног рада", + "noHosts": "Ниједан хост није конфигурисан", + "hostGridHosts": "Домаћини", + "hostGridAllHint": "Оставите празно да бисте приказали све хостове", + "columns": "Колоне", + "showIp": "Прикажи ИП адресу", + "layout": "Распоред", + "showStatus": "Прикажи статус", + "noActivity": "Нема активности", + "widgetPingStatusName": "Статус пинга", + "widgetRecentActivityName": "Недавне активности", + "sshTerminalNoHost": "Није конфигурисан хост", + "sshTerminalConnect": "Повежи се", + "sshTerminalAutoConnect": "Аутоматско повезивање при учитавању", + "connectionTypes": "Типови повезивања", + "calMon": "Мо", + "calTue": "Уто", + "calWed": "Ми", + "calThu": "Чет", + "calFri": "Пет", + "calSat": "Са", + "calSun": "Су", + "startOnMonday": "Почетак недеље у понедељак", + "countdownNoDate": "Није одређен циљни датум", + "countdownPast": "Догађај је прошао", + "countdownDays": "дана", + "countdownHours": "сати", + "countdownMinutes": "мин", + "countdownSeconds": "сек", + "countdownLabel": "Ознака", + "countdownLabelPlaceholder": "нпр. Дан лансирања", + "countdownShowDays": "Дани емисије", + "countdownShowHours": "Радно време емисије", + "targetDate": "Циљни датум", + "searchEngine": "Претраживач", + "customSearchUrl": "URL прилагођене претраге", + "searchPlaceholder": "Претрага...", + "searchGo": "Иди", + "searchPlaceholderLabel": "Текст резервисаног места", + "searchPlaceholderHint": "Текст приказан унутар поља за претрагу", + "openInNewTab": "Отвори у новој картици", + "searchQueryPlaceholder": "Унесите упит...", + "noSearchShortcuts": "Ниједна пречица није конфигурисана", + "addSearchShortcut": "Додај пречицу", + "fontSize": "Величина фонта", + "textAlign": "Поравнање текста", + "fontWeight": "Дебљина фонта", + "clearColor": "Чиста боја", + "imageFit": "Уклапање слике", + "imageLinkUrl": "URL линка", + "noImage": "Није подешен URL слике", + "altText": "Алтернативни текст", + "altTextPlaceholder": "Опишите слику", + "renderMarkdown": "Рендеровање маркдауна", + "displayMode": "Режим приказа", + "displayField": "Поље за приказ", + "jsonPath": "JSON путања", + "customApiLabel": "Ознака", + "customApiLabelPlaceholder": "нпр. Температура", + "customApiUnit": "Јединица", + "customApiNoUrl": "Није конфигурисан API URL", + "customApiError": "Преузимање није успело", + "customApiNotArray": "Одговор није низ", + "addService": "Додај услугу", + "showLabels": "Прикажи ознаке", + "iconSize": "Величина иконе", + "noDashboardLinks": "Није конфигурисан ниједан линк до контролне табле", + "noLimit": "Без ограничења", + "sectionHeading": "Наслов одељка", + "addSection": "Додај одељак", + "compactMode": "Компактни режим", + "selectHosts": "Изаберите хостове", + "listLayout": "Листа", + "gridLayout": "Мрежа", + "configureUrl": "Подесите URL у подешавањима виџета", + "embeddedContent": "Уграђени садржај", + "noBookmarks": "Нема обележивача", + "noSections": "Није подешен ниједан одељак", + "noServices": "Није подешена ниједна услуга", + "configureLocation": "Подесите локацију у подешавањима виџета", + "bannerTextPlaceholder": "Текст банера", + "serviceNamePlaceholder": "Моја услуга" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Користите почетну страницу", + "description": "Прегледајте и уредите линкове за услуге на почетној страници и контролној табли." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Дозвољени приватни хостови", + "description": "Тачна приватна или повратна имена/ИП адресе хостова за Ping Status и Custom API виџете. Одвојите уносе зарезима или новим редовима; изоставите шеме, портове и путање. Празно блокира приватне дестинације." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Приватни ауторитет за сертификате (PEM)", + "description": "Опциони пакет поузданих CA сертификата за хостове са дозвољене листе. Верификација сертификата остаје омогућена. Оставите празно да бисте користили складиште поузданих сертификата система." } } } diff --git a/plugins/homepage/locales/translated/sv_SE.json b/plugins/homepage/locales/translated/sv_SE.json index 760b3a445..988f61672 100644 --- a/plugins/homepage/locales/translated/sv_SE.json +++ b/plugins/homepage/locales/translated/sv_SE.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Hemsida" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Servicelänkar", + "homepagePreview": "Förhandsvisning av startsidan" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksTitle": "Servicelänkar", + "serviceLinksEmpty": "Inga tjänstelänkar ännu", + "serviceLinksAdd": "Tillägga", + "serviceLinksLabelPlaceholder": "Min tjänst", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "Ange en giltig webbadress", + "serviceLinksAddFailed": "Misslyckades med att lägga till tjänstelänk" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", + "title": "Hemsida", + "addWidget": "Lägg till widget", + "noWidgetsInCategory": "Inga widgetar i den här kategorin", + "editWidget": "Redigera widget", + "zoomIn": "Zooma in", + "zoomOut": "Zooma ut", + "resetView": "Återställ vy", + "lockLayout": "Låslayout", + "unlockLayout": "Lås upp layouten", + "noWidgets": "Högerklicka eller klicka på + för att lägga till din första widget", + "openFullView": "Öppna helvy", + "previewTitle": "Förhandsvisning av startsidan", + "cancel": "Avboka", + "save": "Spara", + "title_label": "Titel", + "widgetTitlePlaceholder": "Widgettitel (valfritt)", "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", - "categoryLinks": "Links", + "imageUrl": "Anpassad bild-URL", + "imageUrlHint": "Lämna tomt för att använda webbplatsens favicon automatiskt", + "showImage": "Visa bild", + "description": "Beskrivning", + "color": "Färg", + "timezone": "Tidszon", + "invalidTimezone": "Ogiltig tidszon. Använd ett IANA-namn som America/New_York", + "showSeconds": "Visa sekunder", + "format12h": "12-timmars", + "content": "Innehåll", + "backgroundColor": "Bakgrundsfärg", + "links": "Länkar", + "addLink": "Lägg till länk", + "linkLabel": "Märka", + "categoryLinks": "Länkar", "categoryInfo": "Info", "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", + "copyLink": "Kopiera länk", + "linkCopied": "Länk kopierad!", + "location": "Plats", + "temperatureUnit": "Temperaturenhet", + "showForecast": "Visa 3-dagarsprognos", + "scrolling": "Tillåt rullning", + "feedUrl": "Flödes-URL", + "maxItems": "Max antal artiklar", + "showDescription": "Visa beskrivning", + "widgetRssName": "RSS-flöde", + "rssNoFeedUrl": "Konfigurera en flödes-URL i widgetinställningarna", + "rssLoadError": "Kunde inte läsa in flödet", + "rssNoItems": "Inga artiklar", + "noHostSelected": "Ingen värd vald", + "displayedMetrics": "Visade mätvärden", "metricCpu": "CPU", - "metricMemory": "Memory", + "metricMemory": "Minne", "metricDisk": "Disk", - "metricUptime": "Uptime", + "metricUptime": "Drifttid", "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", + "metricNetwork": "Nätverk", + "metricProcesses": "Processer", + "categoryMonitoring": "Övervakning", + "noPingUrls": "Inga webbadresser konfigurerade", + "pingLabel": "Märka", + "addPingUrl": "Lägg till URL", + "showLatency": "Visa latens", + "refreshInterval": "Uppdateringsintervall", + "seconds": "sekunder", + "filterActivityTypes": "Filtertyper", + "filterTypesHint": "Lämna tomt för att visa alla", + "showTimestamp": "Visa tidsstämpel", + "uptimeUnavailable": "Drifttid otillgänglig", + "uptimeLabel": "Drifttid", "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", + "overviewUpdateLabel": "Uppdatera", + "overviewUpdateAvailable": "Uppdatering tillgänglig", + "overviewDatabase": "Databas", + "overviewUptime": "Drifttid", + "noHosts": "Inga värdar konfigurerade", + "hostGridHosts": "Värdar", + "hostGridAllHint": "Lämna tomt för att visa alla värdar", + "columns": "Kolumner", + "showIp": "Visa IP-adress", "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", - "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", + "showStatus": "Visa status", + "noActivity": "Ingen aktivitet", + "widgetPingStatusName": "Pingstatus", + "widgetRecentActivityName": "Senaste aktivitet", + "sshTerminalNoHost": "Ingen värd konfigurerad", + "sshTerminalConnect": "Ansluta", + "sshTerminalAutoConnect": "Automatisk anslutning vid laddning", + "connectionTypes": "Anslutningstyper", + "calMon": "Må", + "calTue": "Tis", + "calWed": "Vi", + "calThu": "To", "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", + "calSat": "Lör", + "calSun": "Sö", + "startOnMonday": "Börja veckan på måndag", + "countdownNoDate": "Inget måldatum angivet", + "countdownPast": "Händelsen har passerat", + "countdownDays": "dagar", + "countdownHours": "timmar", "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "countdownSeconds": "sek", + "countdownLabel": "Märka", + "countdownLabelPlaceholder": "t.ex. lanseringsdagen", + "countdownShowDays": "Visa dagar", + "countdownShowHours": "Visa öppettider", + "targetDate": "Måldatum", + "searchEngine": "Sökmotor", + "customSearchUrl": "Anpassad sök-URL", + "searchPlaceholder": "Söka...", + "searchGo": "Gå", + "searchPlaceholderLabel": "Platshållartext", + "searchPlaceholderHint": "Text som visas inuti sökinmatningen", + "openInNewTab": "Öppna i ny flik", + "searchQueryPlaceholder": "Ange fråga...", + "noSearchShortcuts": "Inga genvägar konfigurerade", + "addSearchShortcut": "Lägg till genväg", + "fontSize": "Fontstorlek", + "textAlign": "Textjustering", + "fontWeight": "Teckensnittsvikt", + "clearColor": "Klar färg", + "imageFit": "Bildanpassning", + "imageLinkUrl": "Länk-URL", + "noImage": "Ingen bild-URL angiven", + "altText": "Alternativtext", + "altTextPlaceholder": "Beskriv bilden", + "renderMarkdown": "Rendera Markdown", + "displayMode": "Visningsläge", + "displayField": "Visningsfält", + "jsonPath": "JSON-sökväg", + "customApiLabel": "Märka", + "customApiLabelPlaceholder": "t.ex. temperatur", + "customApiUnit": "Enhet", + "customApiNoUrl": "Ingen API-URL konfigurerad", + "customApiError": "Misslyckades med att hämta", + "customApiNotArray": "Svaret är inte en array", + "addService": "Lägg till tjänst", + "showLabels": "Visa etiketter", + "iconSize": "Ikonstorlek", + "noDashboardLinks": "Inga länkar till instrumentpanelen konfigurerade", + "noLimit": "Ingen gräns", + "sectionHeading": "Avsnittsrubrik", + "addSection": "Lägg till avsnitt", + "compactMode": "Kompaktläge", + "selectHosts": "Välj värdar", + "listLayout": "Lista", + "gridLayout": "Rutnät", + "configureUrl": "Ange en URL i widgetinställningarna", + "embeddedContent": "Inbäddat innehåll", + "noBookmarks": "Inga bokmärken", + "noSections": "Inga sektioner har konfigurerats", + "noServices": "Inga tjänster konfigurerade", + "configureLocation": "Ange en plats i widgetinställningarna", + "bannerTextPlaceholder": "Bannertext", + "serviceNamePlaceholder": "Min tjänst" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Använd startsidan", + "description": "Visa och redigera länkarna till startsidans arbetsyta och instrumentpanelstjänsten." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Tillåtna privata värdar", + "description": "Exakta privata eller loopback-värdnamn/IP-adresser för Pingstatus och anpassade API-widgetar. Separera poster med kommatecken eller radbrytning; uteslut scheman, portar och sökvägar. Tomma block för privata destinationer." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Privat certifikatutfärdare (PEM)", + "description": "Valfritt paket med betrodda certifikatutfärdare för godkända värdar. Certifikatverifiering förblir aktiverad. Lämna tomt för att använda systemets förtroendearkiv." } } } diff --git a/plugins/homepage/locales/translated/th_TH.json b/plugins/homepage/locales/translated/th_TH.json index 760b3a445..c391ab2d2 100644 --- a/plugins/homepage/locales/translated/th_TH.json +++ b/plugins/homepage/locales/translated/th_TH.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "หน้าแรก" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "ลิงก์บริการ", + "homepagePreview": "ตัวอย่างหน้าแรก" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksTitle": "ลิงก์บริการ", + "serviceLinksEmpty": "ยังไม่มีลิงก์บริการ", + "serviceLinksAdd": "เพิ่ม", + "serviceLinksLabelPlaceholder": "บริการของฉัน", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "ป้อนที่อยู่เว็บที่ถูกต้อง", + "serviceLinksAddFailed": "ไม่สามารถเพิ่มลิงก์บริการได้" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", + "title": "หน้าแรก", + "addWidget": "เพิ่มวิดเจ็ต", + "noWidgetsInCategory": "ไม่มีวิดเจ็ตในหมวดหมู่นี้", + "editWidget": "แก้ไขวิดเจ็ต", + "zoomIn": "ซูมเข้า", + "zoomOut": "ซูมออก", + "resetView": "รีเซ็ตมุมมอง", + "lockLayout": "การจัดวางล็อค", + "unlockLayout": "ปลดล็อกเค้าโครง", + "noWidgets": "คลิกขวาหรือคลิก + เพื่อเพิ่มวิดเจ็ตแรกของคุณ", + "openFullView": "เปิดดูแบบเต็มหน้าจอ", + "previewTitle": "ตัวอย่างหน้าแรก", + "cancel": "ยกเลิก", + "save": "บันทึก", + "title_label": "ชื่อ", + "widgetTitlePlaceholder": "ชื่อวิดเจ็ต (ไม่บังคับ)", "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", - "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", - "metricCpu": "CPU", - "metricMemory": "Memory", - "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", - "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", - "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", - "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "imageUrl": "URL รูปภาพแบบกำหนดเอง", + "imageUrlHint": "เว้นว่างไว้เพื่อใช้ไอคอนเว็บไซต์โดยอัตโนมัติ", + "showImage": "แสดงภาพ", + "description": "คำอธิบาย", + "color": "สี", + "timezone": "เขตเวลา", + "invalidTimezone": "เขตเวลาไม่ถูกต้อง กรุณาใช้ชื่อ IANA เช่น America/New_York", + "showSeconds": "แสดงวินาที", + "format12h": "12 ชั่วโมง", + "content": "เนื้อหา", + "backgroundColor": "สีพื้นหลัง", + "links": "ลิงก์", + "addLink": "เพิ่มลิงก์", + "linkLabel": "ฉลาก", + "categoryLinks": "ลิงก์", + "categoryInfo": "ข้อมูล", + "categorySystem": "ระบบ", + "copyLink": "คัดลอกลิงก์", + "linkCopied": "คัดลอกลิงก์เรียบร้อยแล้ว!", + "location": "ที่ตั้ง", + "temperatureUnit": "หน่วยอุณหภูมิ", + "showForecast": "แสดงพยากรณ์อากาศ 3 วัน", + "scrolling": "อนุญาตให้เลื่อน", + "feedUrl": "URL ฟีด", + "maxItems": "ไอเทมสูงสุด", + "showDescription": "แสดงคำอธิบาย", + "widgetRssName": "ฟีด RSS", + "rssNoFeedUrl": "กำหนดค่า URL ของฟีดในการตั้งค่าวิดเจ็ต", + "rssLoadError": "ไม่สามารถโหลดฟีดได้", + "rssNoItems": "ไม่มีรายการ", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "displayedMetrics": "ตัวชี้วัดที่แสดงผล", + "metricCpu": "ซีพียู", + "metricMemory": "หน่วยความจำ", + "metricDisk": "ดิสก์", + "metricUptime": "เวลาใช้งาน", + "metricSystem": "ระบบ", + "metricNetwork": "เครือข่าย", + "metricProcesses": "กระบวนการ", + "categoryMonitoring": "การตรวจสอบ", + "noPingUrls": "ไม่มีการกำหนดค่า URL", + "pingLabel": "ฉลาก", + "addPingUrl": "เพิ่ม URL", + "showLatency": "แสดงค่าความหน่วง", + "refreshInterval": "ช่วงเวลาการรีเฟรช", + "seconds": "วินาที", + "filterActivityTypes": "ประเภทตัวกรอง", + "filterTypesHint": "เว้นว่างไว้เพื่อแสดงทั้งหมด", + "showTimestamp": "แสดงเวลา", + "uptimeUnavailable": "ไม่สามารถระบุเวลาใช้งานได้", + "uptimeLabel": "เวลาใช้งาน", + "overviewVersion": "เวอร์ชั่น", + "overviewUpdateLabel": "อัปเดต", + "overviewUpdateAvailable": "มีการอัปเดตแล้ว", + "overviewDatabase": "ฐานข้อมูล", + "overviewUptime": "เวลาใช้งาน", + "noHosts": "ไม่มีการกำหนดค่าโฮสต์", + "hostGridHosts": "โฮสต์", + "hostGridAllHint": "เว้นว่างไว้เพื่อแสดงโฮสต์ทั้งหมด", + "columns": "คอลัมน์", + "showIp": "แสดงที่อยู่ IP", + "layout": "เค้าโครง", + "showStatus": "แสดงสถานะ", + "noActivity": "ไม่มีกิจกรรม", + "widgetPingStatusName": "สถานะการปิง", + "widgetRecentActivityName": "กิจกรรมล่าสุด", + "sshTerminalNoHost": "ไม่มีการกำหนดค่าโฮสต์", + "sshTerminalConnect": "เชื่อมต่อ", + "sshTerminalAutoConnect": "เชื่อมต่ออัตโนมัติเมื่อโหลดเสร็จ", + "connectionTypes": "ประเภทการเชื่อมต่อ", + "calMon": "โม", + "calTue": "ตู", + "calWed": "เรา", + "calThu": "ไทย", + "calFri": "ฟร", + "calSat": "ซา", + "calSun": "ซู", + "startOnMonday": "เริ่มต้นสัปดาห์ในวันจันทร์", + "countdownNoDate": "ยังไม่ได้กำหนดวันเป้าหมาย", + "countdownPast": "กิจกรรมได้จบลงแล้ว", + "countdownDays": "วัน", + "countdownHours": "ชั่วโมง", + "countdownMinutes": "นาที", + "countdownSeconds": "วินาที", + "countdownLabel": "ฉลาก", + "countdownLabelPlaceholder": "เช่น วันเปิดตัว", + "countdownShowDays": "วันแสดง", + "countdownShowHours": "เวลาทำการ", + "targetDate": "วันที่เป้าหมาย", + "searchEngine": "เครื่องมือค้นหา", + "customSearchUrl": "URL ค้นหาแบบกำหนดเอง", + "searchPlaceholder": "ค้นหา...", + "searchGo": "ไป", + "searchPlaceholderLabel": "ข้อความตัวอย่าง", + "searchPlaceholderHint": "ข้อความที่แสดงอยู่ภายในช่องค้นหา", + "openInNewTab": "เปิดในแท็บใหม่", + "searchQueryPlaceholder": "ป้อนคำค้นหา...", + "noSearchShortcuts": "ไม่ได้ตั้งค่าทางลัดใดๆ", + "addSearchShortcut": "เพิ่มทางลัด", + "fontSize": "ขนาดตัวอักษร", + "textAlign": "จัดแนวข้อความ", + "fontWeight": "น้ำหนักตัวอักษร", + "clearColor": "สีใส", + "imageFit": "เหมาะสมกับรูปภาพ", + "imageLinkUrl": "ลิงก์ URL", + "noImage": "ไม่ได้ตั้งค่า URL รูปภาพ", + "altText": "ข้อความแสดงแทน (Alt Text)", + "altTextPlaceholder": "อธิบายภาพ", + "renderMarkdown": "แสดงผลมาร์คดาวน์", + "displayMode": "โหมดการแสดงผล", + "displayField": "ช่องแสดงผล", + "jsonPath": "เส้นทาง JSON", + "customApiLabel": "ฉลาก", + "customApiLabelPlaceholder": "เช่น อุณหภูมิ", + "customApiUnit": "หน่วย", + "customApiNoUrl": "ไม่ได้กำหนดค่า URL API ไว้", + "customApiError": "ไม่สามารถดึงข้อมูลได้", + "customApiNotArray": "คำตอบไม่ใช่อาร์เรย์", + "addService": "เพิ่มบริการ", + "showLabels": "แสดงป้ายกำกับ", + "iconSize": "ขนาดไอคอน", + "noDashboardLinks": "ไม่มีการกำหนดค่าลิงก์แดชบอร์ด", + "noLimit": "ไม่มีขีดจำกัด", + "sectionHeading": "หัวข้อส่วน", + "addSection": "เพิ่มส่วน", + "compactMode": "โหมดกะทัดรัด", + "selectHosts": "เลือกโฮสต์", + "listLayout": "รายการ", + "gridLayout": "ตาราง", + "configureUrl": "ตั้งค่า URL ในการตั้งค่าวิดเจ็ต", + "embeddedContent": "เนื้อหาที่ฝังอยู่", + "noBookmarks": "ไม่มีบุ๊กมาร์ก", + "noSections": "ไม่มีการตั้งค่าส่วนใด ๆ", + "noServices": "ไม่มีการตั้งค่าบริการใดๆ", + "configureLocation": "ตั้งค่าตำแหน่งที่ตั้งในการตั้งค่าวิดเจ็ต", + "bannerTextPlaceholder": "ข้อความแบนเนอร์", + "serviceNamePlaceholder": "บริการของฉัน" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "ใช้หน้าแรก", + "description": "ดูและแก้ไขลิงก์บริการบนหน้าแรกและแดชบอร์ด" } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "อนุญาตให้โฮสต์ส่วนตัวใช้งานได้", + "description": "ระบุชื่อโฮสต์/IP ส่วนตัวหรือแบบ loopback ที่แน่นอนสำหรับวิดเจ็ต Ping Status และ Custom API คั่นรายการด้วยเครื่องหมายจุลภาคหรือขึ้นบรรทัดใหม่ ไม่ต้องระบุ schemes, ports และ paths เว้นช่องว่างสำหรับปลายทางส่วนตัว" }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "หน่วยงานออกใบรับรองเอกชน (PEM)", + "description": "ชุดใบรับรอง CA ที่เชื่อถือได้สำหรับโฮสต์ที่อนุญาต (ไม่บังคับ) การตรวจสอบใบรับรองยังคงเปิดใช้งานอยู่ เว้นว่างไว้เพื่อใช้ที่เก็บใบรับรองที่เชื่อถือได้ของระบบ" } } } diff --git a/plugins/homepage/locales/translated/tr_TR.json b/plugins/homepage/locales/translated/tr_TR.json index f58ea49d8..e73419f4a 100644 --- a/plugins/homepage/locales/translated/tr_TR.json +++ b/plugins/homepage/locales/translated/tr_TR.json @@ -18,7 +18,7 @@ "homepage": { "title": "Ana Sayfa", "addWidget": "Bileşen Ekle", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "Bu kategoride hiçbir widget yok.", "editWidget": "Bileşeni Düzenle", "zoomIn": "Yakınlaştır", "zoomOut": "Uzaklaştır", @@ -39,7 +39,7 @@ "description": "Açıklama", "color": "Renk", "timezone": "Zaman Dilimi", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "Geçersiz saat dilimi. Lütfen America/New_York gibi bir IANA adı kullanın.", "showSeconds": "Saniyeleri göster", "format12h": "12 saatlik", "content": "İçerik", @@ -60,9 +60,9 @@ "maxItems": "Maksimum Öğe Sayısı", "showDescription": "Açıklamayı Göster", "widgetRssName": "RSS Akışı", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "Widget ayarlarında bir besleme URL'si yapılandırın.", + "rssLoadError": "Besleme yüklenemedi.", + "rssNoItems": "Hiçbir ürün yok", "noHostSelected": "Sunucu seçilmedi", "displayedMetrics": "Gösterilen Metrikler", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "Sunucuları Seç", "listLayout": "Liste", "gridLayout": "Izgara", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "Widget ayarlarında bir URL belirleyin.", + "embeddedContent": "Gömülü içerik", + "noBookmarks": "Yer imi yok", + "noSections": "Hiçbir bölüm oluşturulmadı.", + "noServices": "Hiçbir hizmet kurulmadı.", + "configureLocation": "Widget ayarlarında bir konum belirleyin.", + "bannerTextPlaceholder": "Afiş metni", + "serviceNamePlaceholder": "Hizmetim" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Ana sayfayı kullanın", + "description": "Ana sayfa tuvalini ve kontrol paneli hizmet bağlantılarını görüntüleyin ve düzenleyin." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Özel ev sahiplerine izin verilir.", + "description": "Ping Durumu ve Özel API widget'ları için tam özel veya geri döngü ana bilgisayar adları/IP adresleri. Girişleri virgül veya yeni satırlarla ayırın; şemaları, bağlantı noktalarını ve yolları atlayın. Boş bloklar özel hedefleri belirtir." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Özel sertifika yetkilisi (PEM)", + "description": "İzin verilen sunucular için isteğe bağlı güvenilir CA paketi. Sertifika doğrulaması etkin kalır. Sistem güven deposunu kullanmak için boş bırakın." } } } diff --git a/plugins/homepage/locales/translated/uk_UA.json b/plugins/homepage/locales/translated/uk_UA.json index 760b3a445..242782be5 100644 --- a/plugins/homepage/locales/translated/uk_UA.json +++ b/plugins/homepage/locales/translated/uk_UA.json @@ -1,190 +1,190 @@ { "nav": { - "homepage": "Homepage" + "homepage": "Домашня сторінка" }, "dashboard": { - "serviceLinks": "Service Links", - "homepagePreview": "Homepage Preview" + "serviceLinks": "Посилання на сервіси", + "homepagePreview": "Попередній перегляд головної сторінки" }, "dashboardTab": { - "serviceLinksTitle": "Service Links", - "serviceLinksEmpty": "No service links yet", - "serviceLinksAdd": "Add", - "serviceLinksLabelPlaceholder": "My Service", + "serviceLinksTitle": "Посилання на сервіси", + "serviceLinksEmpty": "Поки що немає посилань на сервіси", + "serviceLinksAdd": "Додати", + "serviceLinksLabelPlaceholder": "Моя послуга", "serviceLinksUrlPlaceholder": "http://192.168.1.10:8080", - "serviceLinksInvalidUrl": "Enter a valid web address", - "serviceLinksAddFailed": "Failed to add service link" + "serviceLinksInvalidUrl": "Введіть дійсну веб-адресу", + "serviceLinksAddFailed": "Не вдалося додати посилання на послугу" }, "homepage": { - "title": "Homepage", - "addWidget": "Add Widget", - "noWidgetsInCategory": "No widgets in this category", - "editWidget": "Edit Widget", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "lockLayout": "Lock Layout", - "unlockLayout": "Unlock Layout", - "noWidgets": "Right-click or click + to add your first widget", - "openFullView": "Open Full View", - "previewTitle": "Homepage Preview", - "cancel": "Cancel", - "save": "Save", - "title_label": "Title", - "widgetTitlePlaceholder": "Widget title (optional)", - "url": "URL", - "imageUrl": "Custom Image URL", - "imageUrlHint": "Leave blank to use the site favicon automatically", - "showImage": "Show Image", - "description": "Description", - "color": "Color", - "timezone": "Timezone", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", - "showSeconds": "Show seconds", - "format12h": "12-hour", - "content": "Content", - "backgroundColor": "Background Color", - "links": "Links", - "addLink": "Add Link", - "linkLabel": "Label", - "categoryLinks": "Links", - "categoryInfo": "Info", - "categorySystem": "System", - "copyLink": "Copy Link", - "linkCopied": "Link copied!", - "location": "Location", - "temperatureUnit": "Temperature Unit", - "showForecast": "Show 3-day forecast", - "scrolling": "Allow Scrolling", - "feedUrl": "Feed URL", - "maxItems": "Max Items", - "showDescription": "Show Description", - "widgetRssName": "RSS Feed", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", - "noHostSelected": "No host selected", - "displayedMetrics": "Displayed Metrics", - "metricCpu": "CPU", - "metricMemory": "Memory", - "metricDisk": "Disk", - "metricUptime": "Uptime", - "metricSystem": "System", - "metricNetwork": "Network", - "metricProcesses": "Processes", - "categoryMonitoring": "Monitoring", - "noPingUrls": "No URLs configured", - "pingLabel": "Label", - "addPingUrl": "Add URL", - "showLatency": "Show Latency", - "refreshInterval": "Refresh Interval", - "seconds": "seconds", - "filterActivityTypes": "Filter Types", - "filterTypesHint": "Leave empty to show all", - "showTimestamp": "Show Timestamp", - "uptimeUnavailable": "Uptime unavailable", - "uptimeLabel": "Uptime", - "overviewVersion": "Version", - "overviewUpdateLabel": "Update", - "overviewUpdateAvailable": "Update available", - "overviewDatabase": "Database", - "overviewUptime": "Uptime", - "noHosts": "No hosts configured", - "hostGridHosts": "Hosts", - "hostGridAllHint": "Leave empty to show all hosts", - "columns": "Columns", - "showIp": "Show IP Address", - "layout": "Layout", - "showStatus": "Show Status", - "noActivity": "No activity", - "widgetPingStatusName": "Ping Status", - "widgetRecentActivityName": "Recent Activity", - "sshTerminalNoHost": "No host configured", - "sshTerminalConnect": "Connect", - "sshTerminalAutoConnect": "Auto-connect on load", - "connectionTypes": "Connection Types", - "calMon": "Mo", - "calTue": "Tu", - "calWed": "We", - "calThu": "Th", - "calFri": "Fr", - "calSat": "Sa", - "calSun": "Su", - "startOnMonday": "Start week on Monday", - "countdownNoDate": "No target date set", - "countdownPast": "Event has passed", - "countdownDays": "days", - "countdownHours": "hrs", - "countdownMinutes": "min", - "countdownSeconds": "sec", - "countdownLabel": "Label", - "countdownLabelPlaceholder": "e.g. Launch Day", - "countdownShowDays": "Show Days", - "countdownShowHours": "Show Hours", - "targetDate": "Target Date", - "searchEngine": "Search Engine", - "customSearchUrl": "Custom Search URL", - "searchPlaceholder": "Search...", - "searchGo": "Go", - "searchPlaceholderLabel": "Placeholder Text", - "searchPlaceholderHint": "Text shown inside the search input", - "openInNewTab": "Open in New Tab", - "searchQueryPlaceholder": "Enter query...", - "noSearchShortcuts": "No shortcuts configured", - "addSearchShortcut": "Add Shortcut", - "fontSize": "Font Size", - "textAlign": "Text Align", - "fontWeight": "Font Weight", - "clearColor": "Clear Color", - "imageFit": "Image Fit", - "imageLinkUrl": "Link URL", - "noImage": "No image URL set", - "altText": "Alt Text", - "altTextPlaceholder": "Describe the image", - "renderMarkdown": "Render Markdown", - "displayMode": "Display Mode", - "displayField": "Display Field", - "jsonPath": "JSON Path", - "customApiLabel": "Label", - "customApiLabelPlaceholder": "e.g. Temperature", - "customApiUnit": "Unit", - "customApiNoUrl": "No API URL configured", - "customApiError": "Failed to fetch", - "customApiNotArray": "Response is not an array", - "addService": "Add Service", - "showLabels": "Show Labels", - "iconSize": "Icon Size", - "noDashboardLinks": "No dashboard links configured", - "noLimit": "No limit", - "sectionHeading": "Section Heading", - "addSection": "Add Section", - "compactMode": "Compact Mode", - "selectHosts": "Select Hosts", - "listLayout": "List", - "gridLayout": "Grid", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "title": "Домашня сторінка", + "addWidget": "Додати віджет", + "noWidgetsInCategory": "У цій категорії немає віджетів", + "editWidget": "Редагувати віджет", + "zoomIn": "Збільшити масштаб", + "zoomOut": "Зменшити масштаб", + "resetView": "Скинути вигляд", + "lockLayout": "Макет замка", + "unlockLayout": "Розблокувати макет", + "noWidgets": "Клацніть правою кнопкою миші або натисніть кнопку +, щоб додати свій перший віджет", + "openFullView": "Відкрити повний перегляд", + "previewTitle": "Попередній перегляд головної сторінки", + "cancel": "Скасувати", + "save": "Зберегти", + "title_label": "Назва", + "widgetTitlePlaceholder": "Назва віджета (необов'язково)", + "url": "URL-адреса", + "imageUrl": "URL-адреса користувацького зображення", + "imageUrlHint": "Залиште поле порожнім, щоб автоматично використовувати фавіконку сайту", + "showImage": "Показати зображення", + "description": "Опис", + "color": "Колір", + "timezone": "Часовий пояс", + "invalidTimezone": "Недійсний часовий пояс. Використайте назву IANA, наприклад, America/New_York.", + "showSeconds": "Показати секунди", + "format12h": "12-годинний", + "content": "Зміст", + "backgroundColor": "Колір фону", + "links": "Посилання", + "addLink": "Додати посилання", + "linkLabel": "Мітка", + "categoryLinks": "Посилання", + "categoryInfo": "Інформація", + "categorySystem": "Система", + "copyLink": "Копіювати посилання", + "linkCopied": "Посилання скопійовано!", + "location": "Розташування", + "temperatureUnit": "Одиниця вимірювання температури", + "showForecast": "Показати 3-денний прогноз", + "scrolling": "Дозволити прокручування", + "feedUrl": "URL-адреса стрічки", + "maxItems": "Макс. кількість елементів", + "showDescription": "Показати опис", + "widgetRssName": "RSS-канал", + "rssNoFeedUrl": "Налаштуйте URL-адресу стрічки в налаштуваннях віджета", + "rssLoadError": "Не вдалося завантажити стрічку", + "rssNoItems": "Немає товарів", + "noHostSelected": "Хост не вибрано", + "displayedMetrics": "Відображені показники", + "metricCpu": "Процесор", + "metricMemory": "Пам'ять", + "metricDisk": "Диск", + "metricUptime": "Час безвідмовної роботи", + "metricSystem": "Система", + "metricNetwork": "Мережа", + "metricProcesses": "Процеси", + "categoryMonitoring": "Моніторинг", + "noPingUrls": "URL-адреси не налаштовано", + "pingLabel": "Мітка", + "addPingUrl": "Додати URL-адресу", + "showLatency": "Показати затримку", + "refreshInterval": "Інтервал оновлення", + "seconds": "секунди", + "filterActivityTypes": "Типи фільтрів", + "filterTypesHint": "Залиште порожнім, щоб показати всі", + "showTimestamp": "Показати позначку часу", + "uptimeUnavailable": "Час безперебійної роботи недоступний", + "uptimeLabel": "Час безвідмовної роботи", + "overviewVersion": "Версія", + "overviewUpdateLabel": "Оновлення", + "overviewUpdateAvailable": "Доступне оновлення", + "overviewDatabase": "База даних", + "overviewUptime": "Час безвідмовної роботи", + "noHosts": "Немає налаштованих хостів", + "hostGridHosts": "Хости", + "hostGridAllHint": "Залиште порожнім, щоб показати всіх хостів", + "columns": "Колонки", + "showIp": "Показати IP-адресу", + "layout": "Макет", + "showStatus": "Показати статус", + "noActivity": "Немає активності", + "widgetPingStatusName": "Стан пінгу", + "widgetRecentActivityName": "Нещодавня активність", + "sshTerminalNoHost": "Хост не налаштовано", + "sshTerminalConnect": "Підключитися", + "sshTerminalAutoConnect": "Автоматичне підключення під час завантаження", + "connectionTypes": "Типи з'єднань", + "calMon": "Мо", + "calTue": "Вт", + "calWed": "Ми", + "calThu": "Чт", + "calFri": "Пт", + "calSat": "Сб", + "calSun": "Су", + "startOnMonday": "Початок тижня в понеділок", + "countdownNoDate": "Цільова дата не встановлена", + "countdownPast": "Подія пройшла", + "countdownDays": "дні", + "countdownHours": "год.", + "countdownMinutes": "хв", + "countdownSeconds": "сек", + "countdownLabel": "Мітка", + "countdownLabelPlaceholder": "наприклад, день запуску", + "countdownShowDays": "Дні показу", + "countdownShowHours": "Години роботи шоу", + "targetDate": "Цільова дата", + "searchEngine": "Пошукова система", + "customSearchUrl": "URL-адреса користувацького пошуку", + "searchPlaceholder": "Пошук...", + "searchGo": "Іти", + "searchPlaceholderLabel": "Текст-заповнювач", + "searchPlaceholderHint": "Текст, що відображається всередині пошукового поля", + "openInNewTab": "Відкрити в новій вкладці", + "searchQueryPlaceholder": "Введіть запит...", + "noSearchShortcuts": "Немає налаштованих комбінацій клавіш", + "addSearchShortcut": "Додати ярлик", + "fontSize": "Розмір шрифту", + "textAlign": "Вирівнювання тексту", + "fontWeight": "Вага шрифту", + "clearColor": "Чіткий колір", + "imageFit": "Розмір зображення", + "imageLinkUrl": "URL-адреса посилання", + "noImage": "URL-адреса зображення не встановлена", + "altText": "Альтернативний текст", + "altTextPlaceholder": "Опишіть зображення", + "renderMarkdown": "Рендеринг Markdown", + "displayMode": "Режим відображення", + "displayField": "Поле відображення", + "jsonPath": "Шлях JSON", + "customApiLabel": "Мітка", + "customApiLabelPlaceholder": "наприклад, температура", + "customApiUnit": "Одиниця", + "customApiNoUrl": "URL-адреса API не налаштована", + "customApiError": "Не вдалося отримати", + "customApiNotArray": "Відповідь не є масивом", + "addService": "Додати послугу", + "showLabels": "Показати мітки", + "iconSize": "Розмір значка", + "noDashboardLinks": "Посилання на інформаційну панель не налаштовано", + "noLimit": "Без обмежень", + "sectionHeading": "Заголовок розділу", + "addSection": "Додати розділ", + "compactMode": "Компактний режим", + "selectHosts": "Виберіть хости", + "listLayout": "Список", + "gridLayout": "Сітка", + "configureUrl": "Встановіть URL-адресу в налаштуваннях віджета", + "embeddedContent": "Вбудований контент", + "noBookmarks": "Без закладок", + "noSections": "Розділи не налаштовано", + "noServices": "Жодних послуг не налаштовано", + "configureLocation": "Встановіть місцезнаходження в налаштуваннях віджета", + "bannerTextPlaceholder": "Текст банера", + "serviceNamePlaceholder": "Моя послуга" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Використовуйте головну сторінку", + "description": "Переглядайте та редагуйте посилання на сервіси на головній сторінці та панелі інструментів." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Дозволені приватні хости", + "description": "Точні приватні або зворотні імена хостів/IP-адреси для віджетів Ping Status та Custom API. Розділяйте записи комами або символами нового рядка; пропускайте схеми, порти та шляхи. Порожні блоки блокують приватні пункти призначення." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Приватний центр сертифікації (PEM)", + "description": "Додатковий пакет довірених ЦС для хостів із білого списку. Перевірка сертифікатів залишається ввімкненою. Залиште поле порожнім, щоб використовувати системне сховище довірених сертифікатів." } } } diff --git a/plugins/homepage/locales/translated/vi_VN.json b/plugins/homepage/locales/translated/vi_VN.json index c4fa125f1..87558ba1e 100644 --- a/plugins/homepage/locales/translated/vi_VN.json +++ b/plugins/homepage/locales/translated/vi_VN.json @@ -18,7 +18,7 @@ "homepage": { "title": "Trang chủ", "addWidget": "Thêm widget", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "Không có tiện ích nào trong danh mục này.", "editWidget": "Sửa widget", "zoomIn": "Phóng to", "zoomOut": "Thu nhỏ", @@ -39,7 +39,7 @@ "description": "Mô tả", "color": "Màu sắc", "timezone": "Múi giờ", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "Múi giờ không hợp lệ. Hãy sử dụng tên IANA như America/New_York.", "showSeconds": "Hiển thị giây", "format12h": "12 giờ", "content": "Nội dung", @@ -60,9 +60,9 @@ "maxItems": "Số mục tối đa", "showDescription": "Hiển thị mô tả", "widgetRssName": "Nguồn RSS", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "Cấu hình URL nguồn cấp dữ liệu trong cài đặt tiện ích.", + "rssLoadError": "Không thể tải nguồn cấp dữ liệu", + "rssNoItems": "Không có mặt hàng nào", "noHostSelected": "Chưa chọn máy chủ", "displayedMetrics": "Chỉ số hiển thị", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "Chọn máy chủ", "listLayout": "Danh sách", "gridLayout": "Lưới", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "Đặt URL trong cài đặt tiện ích.", + "embeddedContent": "Nội dung nhúng", + "noBookmarks": "Không có dấu trang", + "noSections": "Chưa có phần nào được thiết lập.", + "noServices": "Chưa có dịch vụ nào được thiết lập.", + "configureLocation": "Chọn vị trí trong cài đặt tiện ích.", + "bannerTextPlaceholder": "Văn bản biểu ngữ", + "serviceNamePlaceholder": "Dịch vụ của tôi" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "Sử dụng trang chủ", + "description": "Xem và chỉnh sửa giao diện trang chủ và các liên kết dịch vụ trên bảng điều khiển." } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "Cho phép chủ nhà riêng", + "description": "Nhập chính xác tên máy chủ/địa chỉ IP riêng hoặc loopback cho tiện ích Ping Status và Custom API. Phân tách các mục bằng dấu phẩy hoặc xuống dòng; bỏ qua lược đồ, cổng và đường dẫn. Để trống các mục đích riêng tư." }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "Cơ quan cấp chứng chỉ tư nhân (PEM)", + "description": "Gói CA đáng tin cậy tùy chọn cho các máy chủ được phép. Quá trình xác minh chứng chỉ vẫn được bật. Để trống để sử dụng kho lưu trữ chứng chỉ tin cậy của hệ thống." } } } diff --git a/plugins/homepage/locales/translated/zh_CN.json b/plugins/homepage/locales/translated/zh_CN.json index 749418b96..e99d2a743 100644 --- a/plugins/homepage/locales/translated/zh_CN.json +++ b/plugins/homepage/locales/translated/zh_CN.json @@ -18,7 +18,7 @@ "homepage": { "title": "主页", "addWidget": "添加小部件", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "此类别中没有小部件", "editWidget": "编辑小部件", "zoomIn": "放大", "zoomOut": "缩小", @@ -39,7 +39,7 @@ "description": "描述", "color": "颜色", "timezone": "时区", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "时区无效。请使用 IANA 名称,例如 America/New_York。", "showSeconds": "显示秒", "format12h": "12 小时制", "content": "内容", @@ -60,9 +60,9 @@ "maxItems": "最大条目数", "showDescription": "显示描述", "widgetRssName": "RSS 订阅源", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "在小部件设置中配置信息源 URL", + "rssLoadError": "无法加载饲料", + "rssNoItems": "无商品", "noHostSelected": "未选择主机", "displayedMetrics": "显示指标", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "选择主机", "listLayout": "列表", "gridLayout": "网格", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "在小部件设置中设置 URL", + "embeddedContent": "嵌入式内容", + "noBookmarks": "没有书签", + "noSections": "未设置任何部分。", + "noServices": "未设置任何服务。", + "configureLocation": "在小部件设置中设置位置", + "bannerTextPlaceholder": "横幅文字", + "serviceNamePlaceholder": "我的服务" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "使用主页", + "description": "查看和编辑首页画布和仪表盘服务链接。" } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "允许私人主机", + "description": "用于 Ping 状态和自定义 API 小部件的精确私有或环回主机名/IP 地址。条目之间用逗号或换行符分隔;省略协议、端口和路径。空值会阻止私有目标地址。" }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "私有证书颁发机构(PEM)", + "description": "可选的受信任 CA 证书包,适用于已列入允许列表的主机。证书验证功能仍然启用。留空则使用系统信任存储。" } } } diff --git a/plugins/homepage/locales/translated/zh_TW.json b/plugins/homepage/locales/translated/zh_TW.json index 127fd17a5..d262a3d7c 100644 --- a/plugins/homepage/locales/translated/zh_TW.json +++ b/plugins/homepage/locales/translated/zh_TW.json @@ -18,7 +18,7 @@ "homepage": { "title": "首頁", "addWidget": "新增小工具", - "noWidgetsInCategory": "No widgets in this category", + "noWidgetsInCategory": "此類別中沒有小工具", "editWidget": "編輯小工具", "zoomIn": "放大", "zoomOut": "縮小", @@ -39,7 +39,7 @@ "description": "描述", "color": "顏色", "timezone": "時區", - "invalidTimezone": "Invalid timezone. Use an IANA name such as America/New_York", + "invalidTimezone": "時區無效。請使用 IANA 名稱,例如 America/New_York。", "showSeconds": "顯示秒數", "format12h": "12 小時制", "content": "內容", @@ -60,9 +60,9 @@ "maxItems": "最大項目數", "showDescription": "顯示描述", "widgetRssName": "RSS 摘要", - "rssNoFeedUrl": "Configure a feed URL in widget settings", - "rssLoadError": "Could not load feed", - "rssNoItems": "No items", + "rssNoFeedUrl": "在小工具設定中設定資訊來源 URL", + "rssLoadError": "無法載飼料", + "rssNoItems": "無商品", "noHostSelected": "未選取主機", "displayedMetrics": "顯示的指標", "metricCpu": "CPU", @@ -162,29 +162,29 @@ "selectHosts": "選取主機", "listLayout": "清單", "gridLayout": "格線", - "configureUrl": "Set a URL in the widget settings", - "embeddedContent": "Embedded content", - "noBookmarks": "No bookmarks", - "noSections": "No sections set up", - "noServices": "No services set up", - "configureLocation": "Set a location in the widget settings", - "bannerTextPlaceholder": "Banner text", - "serviceNamePlaceholder": "My service" + "configureUrl": "在小工具設定中設定 URL", + "embeddedContent": "嵌入式內容", + "noBookmarks": "沒有書籤", + "noSections": "未設定任何部分。", + "noServices": "未設定任何服務。", + "configureLocation": "在小部件設定中設定位置", + "bannerTextPlaceholder": "橫幅文字", + "serviceNamePlaceholder": "我的服務" }, "permissions": { "use": { - "title": "Use the homepage", - "description": "View and edit the homepage canvas and dashboard service links." + "title": "使用主頁", + "description": "查看和編輯首頁畫布和儀錶板服務連結。" } }, "settings": { "privateEndpoints": { - "label": "Allowed private hosts", - "description": "Exact private or loopback hostnames/IPs for Ping Status and Custom API widgets. Separate entries with commas or newlines; omit schemes, ports and paths. Empty blocks private destinations." + "label": "允許的私人主機", + "description": "用於 Ping 狀態和自訂 API 小工具的精確私有或環回主機名稱/IP 位址。條目之間以逗號或換行符號分隔;省略協定、連接埠和路徑。空值會封鎖私有目標位址。" }, "privateCertificateAuthority": { - "label": "Private certificate authority (PEM)", - "description": "Optional trusted CA bundle for allowlisted hosts. Certificate verification remains enabled. Leave empty to use the system trust store." + "label": "私有憑證授權單位(PEM)", + "description": "可選的受信任 CA 憑證包,適用於已列入允許清單的主機。憑證驗證功能仍然啟用。留空則使用系統信任儲存。" } } } diff --git a/plugins/host-metrics/locales/translated/bn_BD.json b/plugins/host-metrics/locales/translated/bn_BD.json index fc32b9c85..aa7cc3348 100644 --- a/plugins/host-metrics/locales/translated/bn_BD.json +++ b/plugins/host-metrics/locales/translated/bn_BD.json @@ -1,311 +1,311 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "হোস্ট মেট্রিক্স" }, "hostMetrics": { - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "cpu": "সিপিইউ", + "memory": "স্মৃতি", + "disk": "ডিস্ক", + "network": "নেটওয়ার্ক", + "uptime": "আপটাইম", + "processes": "প্রক্রিয়া", + "available": "উপলব্ধ", + "free": "বিনামূল্যে", + "connecting": "সংযোগ স্থাপন...", + "connectionFailed": "সার্ভারের সাথে সংযোগ করতে ব্যর্থ হয়েছে", + "naCpus": "প্রযোজ্য নয় সিপিইউ(গুলি)", + "cpuCores_one": "{{count}} কোর", + "cpuCores_other": "{{count}} কোর", + "cpuUsage": "সিপিইউ ব্যবহার", + "memoryUsage": "মেমরি ব্যবহার", + "diskUsage": "ডিস্ক ব্যবহার", + "selectFilesystem": "ফাইলসিস্টেম নির্বাচন করুন", + "temperature": "তাপমাত্রা", + "highestTemperature": "সর্বোচ্চ তাপমাত্রা", + "primaryTemperatureSensor": "প্রাথমিক সেন্সর", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "title": "জিপিইউ", + "noDevice": "কোন NVIDIA GPU সনাক্ত করা যায়নি। GPU মেট্রিক্স দেখতে NVIDIA ড্রাইভারটি (যা nvidia-smi প্রদান করে) ইনস্টল করুন।", + "driver": "চালক {{version}}", + "utilization": "ব্যবহার", "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "temperature": "তাপমাত্রা", + "power": "শক্তি", + "fan": "ভক্ত", + "processes": "জিপিইউ প্রক্রিয়া", + "noProcesses": "কোনো প্রসেসই GPU ব্যবহার করছে না।" }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", - "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "failedToFetchHostConfig": "হোস্ট কনফিগারেশন আনতে ব্যর্থ হয়েছে", + "serverOffline": "সার্ভার অফলাইন", + "cannotFetchMetrics": "অফলাইন সার্ভার থেকে মেট্রিক্স সংগ্রহ করা যাচ্ছে না", + "totpFailed": "TOTP যাচাইকরণ ব্যর্থ হয়েছে", + "noneAuthNotSupported": "হোস্ট মেট্রিক্স 'none' অথেনটিকেশন টাইপ সমর্থন করে না।", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "load": "লোড", + "systemInfo": "সিস্টেমের তথ্য", + "hostname": "হোস্টনাম", + "operatingSystem": "অপারেটিং সিস্টেম", + "kernel": "কার্নেল", + "seconds": "সেকেন্ড", + "networkInterfaces": "নেটওয়ার্ক ইন্টারফেস", + "noInterfacesFound": "কোন নেটওয়ার্ক ইন্টারফেস খুঁজে পাওয়া যায়নি", + "noProcessesFound": "কোন প্রক্রিয়া খুঁজে পাওয়া যায়নি", + "processesTotal": "মোট", + "processesRunning": "দৌড়ানো", + "loginStats": "SSH লগইন পরিসংখ্যান", + "noRecentLoginData": "সাম্প্রতিক কোনো লগইন ডেটা নেই", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "লিসেনিং পোর্ট", + "protocol": "প্রোটোকল", + "port": "বন্দর", + "address": "ঠিকানা", + "process": "প্রক্রিয়া", + "search": "পোর্ট অনুসন্ধান করুন...", + "allProtocols": "সব", + "noData": "কোন লিসেনিং পোর্ট ডেটা নেই" }, "firewall": { - "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", - "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "title": "ফায়ারওয়াল", + "inactive": "নিষ্ক্রিয়", + "policy": "নীতি", + "rules": "নিয়ম", + "noRules": "এই শৃঙ্খলে কোনো নিয়ম নেই", + "noData": "কোন ফায়ারওয়াল ডেটা উপলব্ধ নেই", + "action": "পদক্ষেপ", + "protocol": "প্রোটো", + "port": "বন্দর", + "source": "উৎস", + "anywhere": "যেকোনো জায়গায়", + "chains": "শৃঙ্খল" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "গড় লোড", + "swap": "অদলবদল", + "architecture": "স্থাপত্য", + "refresh": "রিফ্রেশ", + "retry": "পুনরায় চেষ্টা করুন", + "customize": "লেআউট কাস্টমাইজ করুন", + "reset": "রিসেট", + "tabLive": "সরাসরি", + "editModeInstructions": "কার্ডগুলো পুনর্বিন্যাস করতে টেনে আনুন, আকার পরিবর্তন করতে নিচের কিনারা টেনে আনুন এবং কার্ডের বিস্তার বদলাতে প্রস্থ বোতামটি ব্যবহার করুন। নিচে কার্ড যোগ বা অপসারণ করুন।", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", + "services": "পরিষেবা", + "processInspector": "প্রক্রিয়া পরিদর্শক", + "logViewer": "লগ ভিউয়ার", + "cron": "ক্রন জবস", + "packages": "প্যাকেজ", + "ssl": "SSL সার্টিফিকেট", + "firewall": "ফায়ারওয়াল", + "users": "ব্যবহারকারী ও অনুমতি", + "healthCheck": "স্বাস্থ্য পরীক্ষা", + "diskBreakdown": "ডিস্ক ব্রেকডাউন", + "systemdTimers": "টাইমার", + "topMemory": "স্মৃতি দ্বারা শীর্ষে", + "noData": "কোন ডেটা নেই", + "sudoHint": "বিশেষাধিকারপ্রাপ্ত কাজগুলো সক্ষম করতে হোস্ট এডিটরে এই হোস্টের জন্য একটি sudo পাসওয়ার্ড সেট করুন।", + "filter": "ফিল্টার...", + "start": "শুরু করুন", + "stop": "থামুন", + "restart": "পুনরায় চালু করুন", + "actionDone": "{{name}} আপডেট করা হয়েছে", + "actionFailed": "পদক্ষেপ ব্যর্থ হয়েছে", + "signalSent": "PID {{pid}}-তে সংকেত পাঠানো হয়েছে", + "killHint": "ক্লিক: বন্ধ করুন (SIGTERM)। ডান-ক্লিক: জোরপূর্বক বন্ধ করুন (SIGKILL)।", + "working": "কাজ চলছে...", + "update": "আপডেট", + "upgradeAll": "সব আপগ্রেড করুন", + "allUpToDate": "সবকিছু হালনাগাদ আছে", + "save": "সংরক্ষণ করুন", + "command": "আদেশ", + "enabled": "সক্ষম করা হয়েছে", + "cronSaved": "ক্রনট্যাব আপডেট করা হয়েছে", + "clients": "ক্লায়েন্টরা", + "dryRun": "ড্রাই রান", + "renew": "পুনর্নবীকরণ করুন", + "noAcmeClient": "এই হোস্টে কোনো ACME ক্লায়েন্ট (certbot বা acme.sh) খুঁজে পাওয়া যায়নি।", + "addInputRule": "ইনপুট নিয়ম যোগ করুন", + "firewallWarning": "স্থায়ী না হওয়া পর্যন্ত পরিবর্তনগুলো শুধুমাত্র রানটাইমে কার্যকর থাকে। সতর্ক থাকুন, যাতে আপনি নিজে লক আউট না হয়ে যান।", + "ruleApplied": "নিয়ম প্রয়োগ করা হয়েছে", + "invalidPort": "একটি বৈধ পোর্ট প্রবেশ করান (1-65535)", + "newUsername": "নতুন ব্যবহারকারীর নাম", + "addUser": "যোগ করুন", + "deleteUser": "ব্যবহারকারীকে মুছে ফেলুন", + "noHealthChecks": "এখনো কোনো স্বাস্থ্য পরীক্ষা কনফিগার করা হয়নি।", + "follow": "অনুসরণ করুন", + "noLogData": "কোনো লগ আউটপুট নেই।", + "tree": "গাছ", + "enableDisable": "বুট করার সময় সক্ষম / অক্ষম করুন", "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", + "revokeSudo": "sudo প্রত্যাহার করুন", + "sslIssueCert": "সার্টিফিকেট প্রদান করুন", + "sslExpired": "মেয়াদোত্তীর্ণ", + "sslInDays": "{{days}}d-তে", + "sslNeedDomain": "অন্তত একটি ডোমেইন প্রবেশ করান", + "sslIssued": "সার্টিফিকেট ইস্যু করা হয়েছে", "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", - "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", - "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "sslHttpStandalone": "HTTP (স্বতন্ত্র)", + "sslHttpWebroot": "HTTP (ওয়েবরুট)", + "sslDns": "ডিএনএস", + "sslDnsProvider": "ডিএনএস প্রদানকারী (যেমন ক্লাউডফ্লেয়ার)", + "sslIssueHint": "হোস্টে ডিএনএস প্রদানকারীর ক্রেডেনশিয়াল অবশ্যই আগে থেকে কনফিগার করা থাকতে হবে।", + "sslRevoke": "সার্টিফিকেট বাতিল করুন", + "sslRevoked": "সার্টিফিকেট বাতিল করা হয়েছে", + "sslRevokeConfirm": "সার্টিফিকেট \"{{name}}\" বাতিল এবং অপসারণ করবেন? এটি পূর্বাবস্থায় ফেরানো যাবে না।", + "healthRun": "দৌড়", + "healthName": "নাম", + "healthTarget": "হোস্ট / ঠিকানা", + "healthAddCheck": "চেক যোগ করুন", + "healthSaved": "স্বাস্থ্য পরীক্ষা সংরক্ষিত", + "healthMissingFields": "প্রতিটি চেকের একটি নাম এবং লক্ষ্য থাকা প্রয়োজন।", + "logFile": "ফাইল", + "logUnit": "ইউনিট", + "logCustomPath": "/var/log-এর অধীনে নিজস্ব পথ (ঐচ্ছিক)", + "logGrep": "ফিল্টার লাইন...", + "firewallPersist": "অধ্যবসায় নিয়ম", + "firewallPersisted": "ফায়ারওয়াল নিয়মগুলি অব্যাহত ছিল", + "wireguard": "ওয়্যারগার্ড", + "wgNotInstalled": "এই হোস্টে WireGuard ইনস্টল করা নেই", + "wgNoInterfaces": "কোন WireGuard ইন্টারফেস কনফিগার করা নেই", + "wgInterfaceUp": "উত্থাপন করুন", + "wgInterfaceDown": "নামিয়ে আনুন", + "wgBringingUp": "{{name}} উপরে তুলে আনা...", + "wgBringingDown": "{{name}} কে নিচে নামিয়ে আনা হচ্ছে...", + "wgInterfaceUpDone": "{{name}} উপরে আছে", + "wgInterfaceDownDone": "{{name}} নিচে আছে", + "wgListenPort": "বন্দর", + "wgPublicKey": "পাবলিক কী", + "wgEndpoint": "এন্ডপয়েন্ট", + "wgAllowedIPs": "অনুমোদিত আইপি", + "wgLastHandshake": "শেষ করমর্দন", + "wgHandshakeNever": "কখনো না", + "wgTransfer": "স্থানান্তর", + "wgNoPeers": "কোনো সমকক্ষ নেই" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", - "download": "RX", - "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "title": "মেট্রিক্সের ইতিহাস", + "historySuffix": "ইতিহাস", + "cpuMemoryDisk": "সিপিইউ / মেমরি / ডিস্ক", + "network": "নেটওয়ার্ক", + "download": "আরএক্স", + "upload": "টেক্সাস", + "noData": "এই সময়সীমার জন্য কোনো ঐতিহাসিক তথ্য উপলব্ধ নেই।", + "custom": "কাস্টম", + "to": "থেকে", + "apply": "আবেদন করুন", + "viewHistory": "ইতিহাস দেখুন" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "হোস্ট মেট্রিক্স", + "metricsCollectionLabel": "মেট্রিক্স সংগ্রহ", + "enableMetricsLabel": "মেট্রিক্স সক্ষম করুন", + "enableMetricsDesc": "এই হোস্ট থেকে সিপিইউ, র‍্যাম, ডিস্ক এবং অন্যান্য মেট্রিক সংগ্রহ করুন।", + "useGlobalMetrics": "গ্লোবাল ইন্টারভাল ব্যবহার করুন", + "useGlobalMetricsDesc": "সার্ভার-ব্যাপী মেট্রিক্স ব্যবধান দিয়ে ওভাররাইড করুন", + "metricsIntervalS": "মেট্রিক্স ব্যবধান (সেকেন্ড)", + "metricsIntervalDesc2": "মেট্রিক স্ন্যাপশটগুলির মধ্যে সেকেন্ডের ব্যবধান", + "excludedMountsLabel": "বাদ দেওয়া মাউন্টগুলি", + "monitoredMountsLabel": "কাস্টম পর্যবেক্ষণ করা পথ", + "monitoredMountsDesc": "এমন পাথ যোগ করুন যা আলাদা মাউন্ট হিসাবে উন্মুক্ত নয়, যার মধ্যে /config-এর মতো বাইন্ড-মাউন্টেড Home Assistant পাথও অন্তর্ভুক্ত।", + "monitoredMountPathPlaceholder": "পাথ (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "লেবেল (ঐচ্ছিক)", + "addMonitoredMount": "পথ যোগ করুন", + "excludedMountsDesc": "এই হোস্টের জন্য ডিস্ক ব্যবহার এবং সতর্কতা থেকে নির্দিষ্ট মাউন্ট পয়েন্ট বা ফাইলসিস্টেমের ধরণ (যেমন nfs, cifs) লুকান।", + "excludedMountsPlaceholder": "মাউন্ট পাথ (/mnt/nas) অথবা ফাইলসিস্টেমের ধরণ (nfs, cifs)", + "excludedMountsEmpty": "কোনো মাউন্ট বাদ দেওয়া হয়নি। শনাক্তকৃত সকল ফাইলসিস্টেম দেখানো হয়েছে।", + "addExcludedMount": "যোগ করুন", + "visibleWidgets": "দৃশ্যমান উইজেট", + "widgetsMovedToHostMetrics": "এখন কার্ডগুলি সরাসরি হোস্ট মেট্রিক্স ট্যাবে যোগ, সাজানো এবং আকার পরিবর্তন করা যায়। এই হোস্টের জন্য হোস্ট মেট্রিক্স খুলুন এবং কোন কার্ডগুলি দেখানো হবে তা বেছে নিতে কাস্টমাইজ ব্যবহার করুন।", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "loadingHost": "হোস্ট লোড হচ্ছে..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "মেট্রিক্স এবং সতর্কতা", + "feature_metrics_desc": "সময়ের সাথে সাথে সিপিইউ, মেমরি এবং ডিস্কের অবস্থা পর্যবেক্ষণ করুন এবং সেগুলি বিকল হয়ে গেলে সতর্কবার্তা পান।" }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "মেট্রিক্সের ইতিহাস সংরক্ষণ", + "metricsHistoryRetentionRange": "১ থেকে ৯০ দিন", + "days": "দিন" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", - "metricCpu": "CPU", - "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", - "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "noData": "কোন ডেটা উপলব্ধ নেই", + "showCurrentValue": "বর্তমান মান দেখান", + "chartMetric": "মেট্রিক", + "metricRange": "পরিসর", + "host": "হোস্ট", + "loading": "লোড হচ্ছে...", + "metricCpu": "সিপিইউ", + "metricDisk": "ডিস্ক", + "metricHostname": "হোস্টনাম", + "metricKernel": "কার্নেল", + "metricMemory": "স্মৃতি", + "metricNetwork": "নেটওয়ার্ক", + "metricOs": "ওএস", + "metricProcesses": "প্রক্রিয়া", + "metricProcessesRunning": "দৌড়ানো", + "metricProcessesTotal": "মোট", + "metricUptime": "আপটাইম", + "metricsNotAvailable": "মেট্রিক্স উপলব্ধ নেই", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "selectHost": "একজন হোস্ট নির্বাচন করুন..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "সরাসরি পরিসংখ্যান অনুপলব্ধ" }, "dashboard": { - "cpu": "CPU", - "ram": "RAM" + "cpu": "সিপিইউ", + "ram": "রাম" }, "dashboardTab": { - "disk": "Disk" + "disk": "ডিস্ক" }, "terminal": { - "connected": "Connected" + "connected": "সংযুক্ত" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "হোস্ট মেট্রিক্স ব্যবহার করুন", + "description": "আপনার নাগালের মধ্যে থাকা হোস্টগুলোর মেট্রিক্স দেখুন এবং হোস্ট ম্যানেজার (সার্ভিস, প্যাকেজ, ফায়ারওয়াল এবং আরও অনেক কিছু) ব্যবহার করুন।" } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "মেট্রিক্স ব্যবধান (সেকেন্ড)", + "description": "যদি না হোস্ট তার নিজস্ব ব্যবধান নির্ধারণ করে, তবে দেখা হচ্ছে এমন হোস্টকে কত ঘন ঘন নমুনা হিসেবে নেওয়া হবে।" }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "ইতিহাস সংরক্ষণ (দিন)", + "description": "হিস্ট্রি চার্টের জন্য মেট্রিক্স স্যাম্পলগুলো কত সময় ধরে রাখা হয়।" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "নতুন হোস্টদের জন্য মেট্রিক্স চালু আছে", + "description": "নতুন হোস্টগুলো মেট্রিক্স সংগ্রহ চালু থাকা অবস্থায় শুরু হয় কিনা।" } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "তাপমাত্রা ইউনিট", + "description": "হোস্ট মেট্রিক্সে তাপমাত্রা কীভাবে দেখানো হয়", + "celsius": "সেলসিয়াস", + "fahrenheit": "ফারেনহাইট" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "মেট্রিক সংগ্রহ করুন" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "মেট্রিক্স ব্যবধান (সেকেন্ড)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "সক্রিয় উইজেট" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "বাদ দেওয়া মাউন্টগুলি" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "পর্যবেক্ষণ করা পথ" } } } diff --git a/plugins/host-metrics/locales/translated/hi_IN.json b/plugins/host-metrics/locales/translated/hi_IN.json index 7980896d5..bdc1648d7 100644 --- a/plugins/host-metrics/locales/translated/hi_IN.json +++ b/plugins/host-metrics/locales/translated/hi_IN.json @@ -19,21 +19,21 @@ "cpuUsage": "CPU उपयोग", "memoryUsage": "मेमोरी उपयोग", "diskUsage": "डिस्क उपयोग", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "फ़ाइल सिस्टम का चयन करें", "temperature": "तापमान", "highestTemperature": "उच्चतम तापमान", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "प्राथमिक सेंसर", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "title": "जीपीयू", + "noDevice": "कोई NVIDIA GPU नहीं मिला। GPU मेट्रिक्स देखने के लिए NVIDIA ड्राइवर (जो nvidia-smi प्रदान करता है) इंस्टॉल करें।", + "driver": "ड्राइवर {{version}}", + "utilization": "उपयोग", + "memory": "वीआरएएम", + "temperature": "अस्थायी", + "power": "शक्ति", + "fan": "पंखा", + "processes": "जीपीयू प्रक्रियाएँ", + "noProcesses": "कोई भी प्रक्रिया जीपीयू का उपयोग नहीं कर रही है।" }, "failedToFetchHostConfig": "होस्ट कॉन्फ़िगरेशन प्राप्त करने में विफल", "serverOffline": "सर्वर ऑफ़लाइन", @@ -178,7 +178,7 @@ "wgLastHandshake": "अंतिम हैंडशेक", "wgHandshakeNever": "कभी नहीं", "wgTransfer": "ट्रांसफर", - "wgNoPeers": "No peers" + "wgNoPeers": "कोई समकक्ष नहीं" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "सर्वर-व्यापी मेट्रिक्स अंतराल से ओवरराइड करें", "metricsIntervalS": "मेट्रिक्स अंतराल (सेकंड)", "metricsIntervalDesc2": "मेट्रिक स्नैपशॉट के बीच सेकंड", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "बहिष्कृत पर्वत", + "monitoredMountsLabel": "कस्टम मॉनिटर किए गए पथ", + "monitoredMountsDesc": "उन पथों को जोड़ें जो अलग-अलग माउंट के रूप में उजागर नहीं होते हैं, जिनमें बाइंड-माउंटेड होम असिस्टेंट पथ जैसे कि /config शामिल हैं।", + "monitoredMountPathPlaceholder": "पथ (/config, /mnt/data)", "monitoredMountLabelPlaceholder": "लेबल (वैकल्पिक)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "पथ जोड़ें", + "excludedMountsDesc": "इस होस्ट के लिए डिस्क उपयोग और अलर्ट से विशिष्ट माउंट पॉइंट या फ़ाइल सिस्टम प्रकार (जैसे nfs, cifs) को छिपाएँ।", + "excludedMountsPlaceholder": "माउंट पथ (/mnt/nas) या फ़ाइल सिस्टम प्रकार (nfs, cifs)", + "excludedMountsEmpty": "कोई भी माउंट बाहर नहीं रखा गया है। सभी पहचाने गए फ़ाइल सिस्टम दिखाए गए हैं।", "addExcludedMount": "जोड़ें", "visibleWidgets": "दृश्यमान विजेट्स", "widgetsMovedToHostMetrics": "कार्ड अब सीधे होस्ट मेट्रिक्स टैब में जोड़े, व्यवस्थित और आकार बदले जा सकते हैं। इस होस्ट के लिए होस्ट मेट्रिक्स खोलें और यह चुनने के लिए कस्टमाइज़ का उपयोग करें कि कौन से कार्ड दिखाए जाएँ।", @@ -219,8 +219,8 @@ "loadingHost": "होस्ट लोड हो रहा है..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "मैट्रिक्स और अलर्ट", + "feature_metrics_desc": "समय के साथ सीपीयू, मेमोरी और डिस्क की स्थिति पर नज़र रखें और उनके खराब होने पर अलर्ट प्राप्त करें।" }, "admin": { "metricsHistoryRetention": "मेट्रिक्स इतिहास प्रतिधारण", @@ -250,7 +250,7 @@ "selectHost": "होस्ट चुनें..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "लाइव आंकड़े उपलब्ध नहीं हैं" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "होस्ट मेट्रिक्स का उपयोग करें", + "description": "आप जिन होस्ट तक पहुंच सकते हैं, उन पर होस्ट मेट्रिक्स देखें और होस्ट मैनेजर (सेवाएं, पैकेज, फ़ायरवॉल आदि) का उपयोग करें।" } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "मैट्रिक्स अंतराल (सेकंड)", + "description": "किसी होस्ट को कितनी बार देखा जा रहा है, इसकी गणना की जाती है, जब तक कि होस्ट स्वयं अपना अंतराल निर्धारित न कर ले।" }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "इतिहास प्रतिधारण (दिनों में)", + "description": "हिस्ट्री चार्ट के लिए मैट्रिक्स सैंपल कितने समय तक रखे जाते हैं?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "नए होस्ट के लिए मेट्रिक्स चालू हैं", + "description": "क्या नए होस्ट मेट्रिक्स संग्रह चालू होने के साथ शुरू होते हैं?" } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "तापमान इकाई", + "description": "होस्ट मेट्रिक्स में तापमान कैसे प्रदर्शित किया जाता है।", + "celsius": "सेल्सीयस", + "fahrenheit": "फ़ारेनहाइट" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "मैट्रिक्स एकत्र करें" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "मैट्रिक्स अंतराल (सेकंड)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "सक्षम विजेट" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "वर्जित माउंट" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "निगरानी किए गए पथ" } } } diff --git a/plugins/host-metrics/locales/translated/id_ID.json b/plugins/host-metrics/locales/translated/id_ID.json index fc32b9c85..d326edc35 100644 --- a/plugins/host-metrics/locales/translated/id_ID.json +++ b/plugins/host-metrics/locales/translated/id_ID.json @@ -1,256 +1,256 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "Metrik Host" }, "hostMetrics": { "cpu": "CPU", - "memory": "Memory", + "memory": "Ingatan", "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "network": "Jaringan", + "uptime": "Waktu aktif", + "processes": "Proses", + "available": "Tersedia", + "free": "Bebas", + "connecting": "Menghubungkan...", + "connectionFailed": "Gagal terhubung ke server", + "naCpus": "CPU tidak tersedia", + "cpuCores_one": "{{count}} Inti", + "cpuCores_other": "{{count}} Inti", + "cpuUsage": "Penggunaan CPU", + "memoryUsage": "Penggunaan Memori", + "diskUsage": "Penggunaan Disk", + "selectFilesystem": "Pilih sistem file", + "temperature": "Suhu", + "highestTemperature": "Suhu tertinggi", + "primaryTemperatureSensor": "Sensor utama", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "GPU NVIDIA tidak terdeteksi. Instal driver NVIDIA (yang menyediakan nvidia-smi) untuk melihat metrik GPU.", + "driver": "Pengemudi {{version}}", + "utilization": "Pemanfaatan", "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "temperature": "Suhu", + "power": "Kekuatan", + "fan": "Penggemar", + "processes": "Proses GPU", + "noProcesses": "Tidak ada proses yang menggunakan GPU." }, - "failedToFetchHostConfig": "Failed to fetch host configuration", + "failedToFetchHostConfig": "Gagal mengambil konfigurasi host", "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", + "cannotFetchMetrics": "Tidak dapat mengambil metrik dari server offline.", + "totpFailed": "Verifikasi TOTP gagal", + "noneAuthNotSupported": "Host Metrics tidak mendukung tipe otentikasi 'none'.", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "load": "Memuat", + "systemInfo": "Informasi Sistem", + "hostname": "Nama host", + "operatingSystem": "Sistem Operasi", + "kernel": "Inti", + "seconds": "detik", + "networkInterfaces": "Antarmuka Jaringan", + "noInterfacesFound": "Tidak ditemukan antarmuka jaringan.", + "noProcessesFound": "Tidak ada proses yang ditemukan.", "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "processesRunning": "berlari", + "loginStats": "Statistik Login SSH", + "noRecentLoginData": "Tidak ada data login terbaru.", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "Port Pendengaran", + "protocol": "Protokol", + "port": "Pelabuhan", + "address": "Alamat", + "process": "Proses", + "search": "Cari pelabuhan...", + "allProtocols": "Semua", + "noData": "Tidak ada data port yang mendengarkan." }, "firewall": { "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", + "inactive": "Tidak aktif", + "policy": "Kebijakan", + "rules": "aturan", + "noRules": "Tidak ada aturan dalam rantai ini", + "noData": "Tidak ada data firewall yang tersedia.", + "action": "Tindakan", "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "port": "Pelabuhan", + "source": "Sumber", + "anywhere": "Di mana saja", + "chains": "rantai" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "Beban Rata-rata", + "swap": "Menukar", + "architecture": "Arsitektur", + "refresh": "Menyegarkan", + "retry": "Mencoba kembali", + "customize": "Sesuaikan tata letak", + "reset": "Mengatur ulang", + "tabLive": "Hidup", + "editModeInstructions": "Seret kartu untuk mengatur ulang, seret tepi bawah untuk mengubah ukurannya, dan gunakan tombol lebar untuk mengubah rentang kartu. Tambahkan atau hapus kartu di bawah ini.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", + "services": "Layanan", + "processInspector": "Inspektur Proses", + "logViewer": "Penampil Log", + "cron": "Tugas Cron", + "packages": "Paket", + "ssl": "Sertifikat SSL", "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", + "users": "Pengguna & Izin", + "healthCheck": "Pemeriksaan Kesehatan", + "diskBreakdown": "Kerusakan Disk", + "systemdTimers": "Pengatur waktu", + "topMemory": "Atas oleh Memory", + "noData": "Tidak ada data", + "sudoHint": "Tetapkan kata sandi sudo untuk host ini di editor host untuk mengaktifkan tindakan istimewa.", + "filter": "Menyaring...", + "start": "Awal", + "stop": "Berhenti", + "restart": "Mulai ulang", + "actionDone": "{{name}} diperbarui", + "actionFailed": "Tindakan gagal", + "signalSent": "Sinyal dikirim ke PID {{pid}}", + "killHint": "Klik: akhiri (SIGTERM). Klik kanan: paksa matikan (SIGKILL).", + "working": "Bekerja...", + "update": "Memperbarui", + "upgradeAll": "Tingkatkan semuanya", + "allUpToDate": "Semuanya sudah diperbarui", + "save": "Menyimpan", + "command": "Memerintah", + "enabled": "Diaktifkan", + "cronSaved": "Crontab diperbarui", + "clients": "Klien", + "dryRun": "Simulasi", + "renew": "Memperbarui", + "noAcmeClient": "Tidak ditemukan klien ACME (certbot atau acme.sh) pada host ini.", + "addInputRule": "Tambahkan aturan INPUT", + "firewallWarning": "Perubahan hanya berlaku saat runtime hingga disimpan. Berhati-hatilah agar tidak mengunci akses Anda sendiri.", + "ruleApplied": "Aturan diterapkan", + "invalidPort": "Masukkan port yang valid (1-65535)", + "newUsername": "Nama pengguna baru", + "addUser": "Menambahkan", + "deleteUser": "Hapus pengguna", + "noHealthChecks": "Belum ada pemeriksaan kesehatan yang dikonfigurasi.", + "follow": "Mengikuti", + "noLogData": "Tidak ada output log.", + "tree": "Pohon", + "enableDisable": "Aktifkan/nonaktifkan saat booting", + "grantSudo": "Berikan sudo", + "revokeSudo": "Cabut sudo", + "sslIssueCert": "Menerbitkan sertifikat", + "sslExpired": "Kedaluwarsa", + "sslInDays": "di {{days}}d", + "sslNeedDomain": "Masukkan setidaknya satu domain", + "sslIssued": "Sertifikat diterbitkan", "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", + "sslHttpStandalone": "HTTP (mandiri)", "sslHttpWebroot": "HTTP (webroot)", "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", - "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", + "sslDnsProvider": "Penyedia DNS (misalnya Cloudflare)", + "sslIssueHint": "Kredensial penyedia DNS harus sudah dikonfigurasi pada host.", + "sslRevoke": "Cabut sertifikat", + "sslRevoked": "Sertifikat dicabut", + "sslRevokeConfirm": "Cabut dan hapus sertifikat \"{{name}}\"? Ini tidak dapat dibatalkan.", + "healthRun": "Berlari", + "healthName": "Nama", + "healthTarget": "Host / alamat", + "healthAddCheck": "Tambahkan pemeriksaan", + "healthSaved": "Pemeriksaan kesehatan tersimpan", + "healthMissingFields": "Setiap cek memerlukan nama dan target.", + "logFile": "Mengajukan", + "logUnit": "Satuan", + "logCustomPath": "Jalur khusus di bawah /var/log (opsional)", + "logGrep": "Garis filter...", + "firewallPersist": "Pertahankan aturan", + "firewallPersisted": "Aturan firewall tetap berlaku.", + "wireguard": "Pelindung Kawat", + "wgNotInstalled": "WireGuard tidak terpasang pada host ini.", + "wgNoInterfaces": "Tidak ada antarmuka WireGuard yang dikonfigurasi.", + "wgInterfaceUp": "Membesarkan", + "wgInterfaceDown": "Menurunkan", + "wgBringingUp": "Membawa {{name}} ke atas...", + "wgBringingDown": "Menurunkan {{name}}...", + "wgInterfaceUpDone": "{{name}} sudah aktif", + "wgInterfaceDownDone": "{{name}} sedang down", + "wgListenPort": "Pelabuhan", + "wgPublicKey": "Kunci publik", + "wgEndpoint": "Titik akhir", + "wgAllowedIPs": "IP yang Diizinkan", + "wgLastHandshake": "Jabat tangan terakhir", + "wgHandshakeNever": "Tidak pernah", "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNoPeers": "Tidak ada tandingan" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", + "title": "Riwayat Metrik", + "historySuffix": "Sejarah", + "cpuMemoryDisk": "CPU / Memori / Disk", + "network": "Jaringan", "download": "RX", "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "noData": "Tidak ada data riwayat yang tersedia untuk rentang waktu ini.", + "custom": "Kebiasaan", + "to": "ke", + "apply": "Menerapkan", + "viewHistory": "Lihat Riwayat" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "Metrik Host", + "metricsCollectionLabel": "Pengumpulan Metrik", + "enableMetricsLabel": "Aktifkan Metrik", + "enableMetricsDesc": "Kumpulkan data CPU, RAM, disk, dan metrik lainnya dari host ini.", + "useGlobalMetrics": "Gunakan Interval Global", + "useGlobalMetricsDesc": "Ganti dengan interval metrik di seluruh server.", + "metricsIntervalS": "Interval Metrik (detik)", + "metricsIntervalDesc2": "Detik antara pengambilan snapshot metrik", + "excludedMountsLabel": "Dudukan yang Dikecualikan", + "monitoredMountsLabel": "Jalur yang dipantau secara khusus", + "monitoredMountsDesc": "Tambahkan jalur yang tidak terekspos sebagai mount terpisah, termasuk jalur Home Assistant yang dipasang secara bind-mount seperti /config.", + "monitoredMountPathPlaceholder": "Jalur (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Label (opsional)", + "addMonitoredMount": "Tambahkan jalur", + "excludedMountsDesc": "Sembunyikan titik pemasangan atau jenis sistem file tertentu (misalnya nfs, cifs) dari penggunaan disk dan peringatan untuk host ini.", + "excludedMountsPlaceholder": "Jalur pemasangan (/mnt/nas) atau tipe sistem file (nfs, cifs)", + "excludedMountsEmpty": "Tidak ada mount yang dikecualikan. Semua sistem file yang terdeteksi ditampilkan.", + "addExcludedMount": "Menambahkan", + "visibleWidgets": "Widget yang Terlihat", + "widgetsMovedToHostMetrics": "Kartu sekarang ditambahkan, diatur, dan diubah ukurannya langsung di tab Metrik Host. Buka Metrik Host untuk host ini dan gunakan Sesuaikan untuk memilih kartu mana yang akan ditampilkan.", + "hostNotFound": "Host tidak ditemukan", + "loadingHost": "Memuat host..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Metrik dan peringatan", + "feature_metrics_desc": "Pantau CPU, memori, dan disk dari waktu ke waktu, dan dapatkan peringatan saat terjadi kerusakan." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Retensi Riwayat Metrik", + "metricsHistoryRetentionRange": "1 hingga 90 hari", + "days": "hari" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", + "noData": "Tidak ada data yang tersedia", + "showCurrentValue": "Tampilkan Nilai Saat Ini", + "chartMetric": "Metrik", + "metricRange": "Jangkauan", + "host": "Tuan rumah", + "loading": "Memuat...", "metricCpu": "CPU", "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", + "metricHostname": "Nama host", + "metricKernel": "Inti", + "metricMemory": "Ingatan", + "metricNetwork": "Jaringan", + "metricOs": "Sistem Operasi", + "metricProcesses": "Proses", + "metricProcessesRunning": "berlari", "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "metricUptime": "Waktu aktif", + "metricsNotAvailable": "Metrik tidak tersedia", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "selectHost": "Pilih tuan rumah..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Statistik langsung tidak tersedia" }, "dashboard": { "cpu": "CPU", @@ -260,52 +260,52 @@ "disk": "Disk" }, "terminal": { - "connected": "Connected" + "connected": "Terhubung" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Gunakan Metrik Host", + "description": "Lihat metrik host dan gunakan pengelola host (layanan, paket, firewall, dan lainnya) pada host yang dapat Anda jangkau." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Interval metrik (detik)", + "description": "Seberapa sering sebuah host yang sedang dilihat diambil sampelnya, kecuali jika host tersebut menetapkan intervalnya sendiri." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Retensi riwayat (hari)", + "description": "Berapa lama sampel metrik disimpan untuk grafik riwayat." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Metrik diaktifkan untuk host baru.", + "description": "Apakah host baru memulai dengan pengumpulan metrik yang diaktifkan." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", + "label": "Satuan suhu", + "description": "Bagaimana suhu ditampilkan di Host Metrics.", "celsius": "Celsius", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Kumpulkan metrik" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Interval metrik (detik)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Widget yang diaktifkan" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Dudukan yang dikecualikan" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Jalur yang dipantau" } } } diff --git a/plugins/host-metrics/locales/translated/no_NO.json b/plugins/host-metrics/locales/translated/no_NO.json index fcc04dca3..b2bf483bb 100644 --- a/plugins/host-metrics/locales/translated/no_NO.json +++ b/plugins/host-metrics/locales/translated/no_NO.json @@ -1,6 +1,6 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "Vertsmålinger" }, "hostMetrics": { "cpu": "CPU", @@ -12,34 +12,34 @@ "available": "Tilgjengelig", "free": "Ledig", "connecting": "Kobler til...", - "connectionFailed": "Failed to connect to server", + "connectionFailed": "Kunne ikke koble til serveren", "naCpus": "N/A CPU(er)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", + "cpuCores_one": "{{count}} Kjerne", + "cpuCores_other": "{{count}} Kjerner", "cpuUsage": "CPU-bruk", "memoryUsage": "Minnebruk", "diskUsage": "Diskbruk", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "selectFilesystem": "Velg filsystem", + "temperature": "Temperatur", + "highestTemperature": "Høyeste temperatur", + "primaryTemperatureSensor": "Primærsensor", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "Ingen NVIDIA GPU funnet. Installer NVIDIA-driveren (den inneholder nvidia-smi) for å se GPU-målinger.", + "driver": "Sjåfør {{version}}", + "utilization": "Utnyttelse", "memory": "VRAM", - "temperature": "Temp", - "power": "Power", + "temperature": "Temp.", + "power": "Makt", "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "processes": "GPU-prosesser", + "noProcesses": "Ingen prosesser bruker GPU-en" }, "failedToFetchHostConfig": "Kunne ikke hente vertskonfigurasjon", "serverOffline": "Server frakoblet", "cannotFetchMetrics": "Kan ikke hente målinger fra frakoblet server", "totpFailed": "TOTP-verifisering mislyktes", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", + "noneAuthNotSupported": "Host Metrics støtter ikke autentiseringstypen «ingen».", "noHostSelected": "Ingen vert valgt", "load": "Last", "systemInfo": "Systeminformasjon", @@ -55,184 +55,184 @@ "loginStats": "SSH-påloggingsstatistikk", "noRecentLoginData": "Ingen nylige påloggingsdata", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "Lytteporter", + "protocol": "Protokoll", + "port": "Havn", + "address": "Adresse", + "process": "Behandle", + "search": "Søk etter porter...", + "allProtocols": "Alle", + "noData": "Ingen data om lytteporter" }, "firewall": { - "title": "Firewall", + "title": "Brannmur", "inactive": "Inaktiv", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", + "policy": "Politikk", + "rules": "regler", + "noRules": "Ingen regler i denne kjeden", + "noData": "Ingen brannmurdata tilgjengelig", + "action": "Handling", "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "port": "Havn", + "source": "Kilde", + "anywhere": "Hvor som helst", + "chains": "kjeder" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", + "loadAvg": "Last inn gjennomsnitt", + "swap": "Bytte", + "architecture": "Arkitektur", "refresh": "Oppdater", "retry": "Prøv igjen", - "customize": "Customize layout", + "customize": "Tilpass oppsettet", "reset": "Tilbakestill", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "tabLive": "Bo", + "editModeInstructions": "Dra kort for å omorganisere, dra i den nederste kanten for å endre størrelsen, og bruk breddeknappen for å endre kortets rekkevidde. Legg til eller fjern kort nedenfor.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", + "services": "Tjenester", + "processInspector": "Prosessinspektør", + "logViewer": "Loggviser", + "cron": "Cron-jobber", + "packages": "Pakker", + "ssl": "SSL-sertifikater", + "firewall": "Brannmur", + "users": "Brukere og tillatelser", + "healthCheck": "Helsesjekker", + "diskBreakdown": "Disknedbrytning", + "systemdTimers": "Tidtakere", + "topMemory": "Topp etter minne", + "noData": "Ingen data", + "sudoHint": "Angi et sudo-passord for denne verten i vertredigeringsprogrammet for å aktivere privilegerte handlinger.", "filter": "Filter...", "start": "Start", "stop": "Stopp", "restart": "Start på nytt", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", + "actionDone": "{{name}} oppdatert", + "actionFailed": "Handlingen mislyktes", + "signalSent": "Signal sendt til PID {{pid}}", + "killHint": "Klikk: avslutt (SIGTERM). Høyreklikk: tvungen avslutning (SIGKILL).", + "working": "Arbeider...", + "update": "Oppdatering", + "upgradeAll": "Oppgrader alle", + "allUpToDate": "Alt er oppdatert", "save": "Lagre", "command": "Kommando", "enabled": "Aktivert", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", + "cronSaved": "Crontab oppdatert", + "clients": "Klienter", + "dryRun": "Tørrløp", + "renew": "Fornye", + "noAcmeClient": "Ingen ACME-klient (certbot eller acme.sh) funnet på denne verten.", + "addInputRule": "Legg til INPUT-regel", + "firewallWarning": "Endringene gjelder kun for kjøring inntil de lagres. Vær forsiktig så du ikke låser deg ute.", + "ruleApplied": "Regel brukt", + "invalidPort": "Skriv inn en gyldig port (1-65535)", + "newUsername": "Nytt brukernavn", "addUser": "Legg til", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", + "deleteUser": "Slett bruker", + "noHealthChecks": "Ingen helsesjekker er konfigurert ennå.", + "follow": "Følge", + "noLogData": "Ingen loggutgang.", + "tree": "Tre", + "enableDisable": "Aktiver/deaktiver ved oppstart", + "grantSudo": "Gi sudo", + "revokeSudo": "Tilbakekalle sudo", + "sslIssueCert": "Utsted sertifikat", "sslExpired": "Utløpt", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", - "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", + "sslInDays": "i {{days}}d", + "sslNeedDomain": "Angi minst ett domene", + "sslIssued": "Sertifikat utstedt", + "sslDomainsPlaceholder": "eksempel.com, www.eksempel.com", + "sslHttpStandalone": "HTTP (frittstående)", + "sslHttpWebroot": "HTTP (nettrot)", "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", + "sslDnsProvider": "DNS-leverandør (f.eks. Cloudflare)", + "sslIssueHint": "DNS-leverandørens påloggingsinformasjon må allerede være konfigurert på verten.", + "sslRevoke": "Tilbakekalle sertifikat", + "sslRevoked": "Sertifikatet er tilbakekalt", + "sslRevokeConfirm": "Tilbakekalle og fjerne sertifikatet «{{name}}»? Dette kan ikke angres.", "healthRun": "Kjør", "healthName": "Navn", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", + "healthTarget": "Vert / adresse", + "healthAddCheck": "Legg til sjekk", + "healthSaved": "Helsesjekker lagret", + "healthMissingFields": "Hver sjekk trenger et navn og et mål", "logFile": "Fil", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", + "logUnit": "Enhet", + "logCustomPath": "Tilpasset sti under /var/log (valgfritt)", + "logGrep": "Filtrer linjer...", + "firewallPersist": "Vedvarende regler", + "firewallPersisted": "Brannmurregler beholdt", "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNotInstalled": "WireGuard er ikke installert på denne verten", + "wgNoInterfaces": "Ingen WireGuard-grensesnitt konfigurert", + "wgInterfaceUp": "Ta opp", + "wgInterfaceDown": "Ta ned", + "wgBringingUp": "Tar opp {{name}}...", + "wgBringingDown": "Å bringe {{name}} ned...", + "wgInterfaceUpDone": "{{name}} er oppe", + "wgInterfaceDownDone": "{{name}} er nede", + "wgListenPort": "Havn", + "wgPublicKey": "Offentlig nøkkel", + "wgEndpoint": "Endepunkt", + "wgAllowedIPs": "Tillatte IP-adresser", + "wgLastHandshake": "Siste håndtrykk", + "wgHandshakeNever": "Aldri", + "wgTransfer": "Overføre", + "wgNoPeers": "Ingen jevnaldrende" } }, "metricsHistory": { - "title": "Metrics History", + "title": "Metrikkhistorikk", "historySuffix": "Historikk", - "cpuMemoryDisk": "CPU / Memory / Disk", + "cpuMemoryDisk": "CPU / Minne / Disk", "network": "Nettverk", "download": "RX", "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "noData": "Ingen historikkdata tilgjengelig for denne tidsperioden.", + "custom": "Skikk", + "to": "til", + "apply": "Søke", + "viewHistory": "Vis historikk" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "tabHostMetrics": "Vertsmålinger", + "metricsCollectionLabel": "Metrikksamling", + "enableMetricsLabel": "Aktiver målinger", + "enableMetricsDesc": "Samle inn CPU-, RAM-, disk- og andre målinger fra denne verten", + "useGlobalMetrics": "Bruk globalt intervall", + "useGlobalMetricsDesc": "Overstyr med det serveromfattende måleintervallet", + "metricsIntervalS": "Måleintervall (s)", + "metricsIntervalDesc2": "Sekunder mellom målebilder", + "excludedMountsLabel": "Ekskluderte fester", + "monitoredMountsLabel": "Tilpassede overvåkede stier", + "monitoredMountsDesc": "Legg til stier som ikke er eksponert som separate monteringer, inkludert bindingsmonterte Home Assistant-stier som /config.", + "monitoredMountPathPlaceholder": "Sti (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Etikett (valgfritt)", + "addMonitoredMount": "Legg til sti", + "excludedMountsDesc": "Skjul spesifikke monteringspunkter eller filsystemtyper (f.eks. nfs, cifs) fra diskbruk og varsler for denne verten.", + "excludedMountsPlaceholder": "Monteringssti (/mnt/nas) eller filsystemtype (nfs, cifs)", + "excludedMountsEmpty": "Ingen monteringer er utelukket. Alle oppdagede filsystemer vises.", "addExcludedMount": "Legg til", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "visibleWidgets": "Synlige widgeter", + "widgetsMovedToHostMetrics": "Kort legges nå til, arrangeres og endres i størrelse direkte i fanen Vertsmålinger. Åpne Vertsmålinger for denne verten og bruk Tilpass for å velge hvilke kort som vises.", + "hostNotFound": "Verten ble ikke funnet", + "loadingHost": "Laster inn vert ..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Målinger og varsler", + "feature_metrics_desc": "Spor CPU, minne og disk over tid, og bli varslet når de blir dårlige." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Oppbevaring av metrikkhistorikk", + "metricsHistoryRetentionRange": "1 til 90 dager", + "days": "dager" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", + "noData": "Ingen data tilgjengelig", + "showCurrentValue": "Vis gjeldende verdi", + "chartMetric": "Metrisk", + "metricRange": "Spekter", + "host": "Vert", "loading": "Laster...", "metricCpu": "CPU", "metricDisk": "Disk", @@ -245,16 +245,16 @@ "metricProcessesRunning": "kjører", "metricProcessesTotal": "totalt", "metricUptime": "Oppetid", - "metricsNotAvailable": "Metrics not available", + "metricsNotAvailable": "Målinger er ikke tilgjengelige", "noHostSelected": "Ingen vert valgt", - "selectHost": "Select a host..." + "selectHost": "Velg en vert..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Livestatistikk er ikke tilgjengelig" }, "dashboard": { "cpu": "CPU", - "ram": "RAM" + "ram": "VÆR" }, "dashboardTab": { "disk": "Disk" @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Bruk vertsmålinger", + "description": "Se vertsmålinger og bruk vertsadministratorene (tjenester, pakker, brannmur og mer) på verter du kan nå." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Måleintervall (sekunder)", + "description": "Hvor ofte en vert som vises samples, med mindre verten angir sitt eget intervall." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Historikklagring (dager)", + "description": "Hvor lenge metrikkprøver oppbevares for historikkdiagrammene." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Målinger på for nye verter", + "description": "Om nye verter starter med innsamling av metrikk aktivert." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", + "label": "Temperaturenhet", + "description": "Hvordan temperaturer vises i Host Metrics.", "celsius": "Celsius", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Samle inn målinger" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Måleintervall (sekunder)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Aktiverte widgeter" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Ekskluderte fester" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Overvåkede stier" } } } diff --git a/plugins/host-metrics/locales/translated/pl_PL.json b/plugins/host-metrics/locales/translated/pl_PL.json index 425d54ff3..2256dc892 100644 --- a/plugins/host-metrics/locales/translated/pl_PL.json +++ b/plugins/host-metrics/locales/translated/pl_PL.json @@ -22,18 +22,18 @@ "selectFilesystem": "Wybierz system plików", "temperature": "Temperatura", "highestTemperature": "Najwyższa temperatura", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "Główny czujnik", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", + "title": "Procesor graficzny", + "noDevice": "Nie wykryto procesora graficznego NVIDIA. Zainstaluj sterownik NVIDIA (zawiera on nvidia-smi), aby wyświetlić dane dotyczące procesora graficznego.", + "driver": "Kierowca {{version}}", + "utilization": "Wykorzystanie", + "memory": "Pamięć VRAM", "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "power": "Moc", + "fan": "Wentylator", + "processes": "Procesy GPU", + "noProcesses": "Żaden proces nie wykorzystuje procesora GPU" }, "failedToFetchHostConfig": "Nie udało się pobrać konfiguracji hosta", "serverOffline": "Serwer offline", @@ -178,7 +178,7 @@ "wgLastHandshake": "Ostatni handshake", "wgHandshakeNever": "Nigdy", "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNoPeers": "Brak rówieśników" } }, "metricsHistory": { @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Użyj metryk hosta", + "description": "Przeglądaj metryki hosta i korzystaj z menedżerów hosta (usług, pakietów, zapory sieciowej i innych) na hostach, do których masz dostęp." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Interwał metryk (sekundy)", + "description": "Częstotliwość próbkowania oglądanego hosta, chyba że host ustawi własny interwał." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Retencja historii (dni)", + "description": "Jak długo przechowywane są próbki metryk na potrzeby wykresów historycznych." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Metryki dla nowych hostów", + "description": "Czy nowi gospodarze rozpoczynają pracę z włączonym zbieraniem danych metrycznych." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "Jednostka temperatury", + "description": "W jaki sposób temperatury są wyświetlane w Host Metrics.", + "celsius": "Celsjusz", + "fahrenheit": "Fahrenheita" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Zbieraj dane metryczne" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Interwał metryk (sekundy)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Włączone widżety" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Wykluczone wierzchowce" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Monitorowane ścieżki" } } } diff --git a/plugins/host-metrics/locales/translated/pt_BR.json b/plugins/host-metrics/locales/translated/pt_BR.json index c39c11378..e12d223fd 100644 --- a/plugins/host-metrics/locales/translated/pt_BR.json +++ b/plugins/host-metrics/locales/translated/pt_BR.json @@ -4,308 +4,308 @@ }, "hostMetrics": { "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", + "memory": "Memória", + "disk": "Disco", + "network": "Rede", + "uptime": "Tempo de atividade", + "processes": "Processos", + "available": "Disponível", + "free": "Livre", "connecting": "Conectando...", - "connectionFailed": "Failed to connect to server", + "connectionFailed": "Falha ao conectar-se ao servidor", "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "cpuCores_one": "{{count}} Núcleo", + "cpuCores_other": "{{count}} Núcleos", + "cpuUsage": "Utilização da CPU", + "memoryUsage": "Uso de memória", + "diskUsage": "Utilização do disco", + "selectFilesystem": "Selecione o sistema de arquivos", + "temperature": "Temperatura", + "highestTemperature": "Temperatura mais alta", + "primaryTemperatureSensor": "Sensor primário", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "Nenhuma GPU NVIDIA detectada. Instale o driver da NVIDIA (que fornece o nvidia-smi) para visualizar as métricas da GPU.", + "driver": "Motorista {{version}}", + "utilization": "Utilização", "memory": "VRAM", "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "power": "Poder", + "fan": "Fã", + "processes": "processos da GPU", + "noProcesses": "Nenhum processo está utilizando a GPU." }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", + "failedToFetchHostConfig": "Falha ao obter a configuração do host", + "serverOffline": "Servidor offline", + "cannotFetchMetrics": "Não foi possível obter métricas do servidor offline.", + "totpFailed": "A verificação TOTP falhou.", + "noneAuthNotSupported": "O Host Metrics não suporta o tipo de autenticação 'nenhum'.", + "noHostSelected": "Nenhum host selecionado", + "load": "Carregar", + "systemInfo": "Informações do sistema", + "hostname": "Nome do host", + "operatingSystem": "Sistema operacional", "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", + "seconds": "segundos", + "networkInterfaces": "Interfaces de rede", + "noInterfacesFound": "Nenhuma interface de rede encontrada", + "noProcessesFound": "Nenhum processo encontrado", "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "processesRunning": "correndo", + "loginStats": "Estatísticas de login SSH", + "noRecentLoginData": "Nenhum dado de login recente", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", + "title": "Portas de escuta", + "protocol": "Protocolo", "port": "Porta", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "address": "Endereço", + "process": "Processo", + "search": "Portas de pesquisa...", + "allProtocols": "Todos", + "noData": "Sem dados de portas de escuta" }, "firewall": { "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", + "inactive": "Inativo", + "policy": "Política", + "rules": "regras", + "noRules": "Não há regras nesta corrente.", + "noData": "Não há dados de firewall disponíveis.", + "action": "Ação", "protocol": "Proto", "port": "Porta", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "source": "Fonte", + "anywhere": "Em qualquer lugar", + "chains": "correntes" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", + "loadAvg": "Carga média", + "swap": "Trocar", + "architecture": "Arquitetura", "refresh": "Atualizar", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "retry": "Tentar novamente", + "customize": "Personalizar layout", + "reset": "Reiniciar", + "tabLive": "Ao vivo", + "editModeInstructions": "Arraste os cartões para reorganizá-los, arraste a borda inferior para redimensioná-los e use o botão de largura para alterar a extensão de um cartão. Adicione ou remova cartões abaixo.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", + "services": "Serviços", + "processInspector": "Inspetor de Processos", + "logViewer": "Visualizador de Logs", + "cron": "Tarefas agendadas", + "packages": "Pacotes", + "ssl": "Certificados SSL", "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", + "users": "Usuários e permissões", + "healthCheck": "Exames de saúde", + "diskBreakdown": "Avaria do disco", + "systemdTimers": "Temporizadores", + "topMemory": "Melhor por memória", + "noData": "Sem dados", + "sudoHint": "Defina uma senha sudo para este host no editor de hosts para habilitar ações privilegiadas.", + "filter": "Filtro...", "start": "Iniciar", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", + "stop": "Parar", + "restart": "Reiniciar", + "actionDone": "{{name}} atualizado", + "actionFailed": "A ação falhou", + "signalSent": "Sinal enviado para PID {{pid}}", + "killHint": "Clique: encerrar (SIGTERM). Clique com o botão direito: forçar o encerramento (SIGKILL).", + "working": "Trabalhando...", "update": "Atualizar", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", + "upgradeAll": "Atualizar tudo", + "allUpToDate": "Tudo está atualizado.", "save": "Salvar", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", + "command": "Comando", + "enabled": "Habilitado", + "cronSaved": "Crontab atualizado", + "clients": "Clientes", + "dryRun": "Ensaio geral", + "renew": "Renovar", + "noAcmeClient": "Nenhum cliente ACME (certbot ou acme.sh) foi encontrado neste host.", + "addInputRule": "Adicionar regra de ENTRADA", + "firewallWarning": "As alterações são válidas apenas em tempo de execução até serem persistidas. Tenha cuidado para não bloquear o seu próprio acesso.", + "ruleApplied": "Regra aplicada", + "invalidPort": "Digite uma porta válida (1-65535)", + "newUsername": "Novo nome de usuário", "addUser": "Adicionar", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", - "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", + "deleteUser": "Excluir usuário", + "noHealthChecks": "Nenhuma verificação de integridade configurada ainda.", + "follow": "Seguir", + "noLogData": "Nenhuma saída de log.", + "tree": "Árvore", + "enableDisable": "Ativar/desativar na inicialização", + "grantSudo": "Conceder sudo", + "revokeSudo": "Revogar sudo", + "sslIssueCert": "Emitir certificado", + "sslExpired": "Expirado", + "sslInDays": "em {{days}}d", + "sslNeedDomain": "Insira pelo menos um domínio.", + "sslIssued": "Certificado emitido", + "sslDomainsPlaceholder": "exemplo.com, www.exemplo.com", + "sslHttpStandalone": "HTTP (autônomo)", + "sslHttpWebroot": "HTTP (raiz da web)", "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", + "sslDnsProvider": "provedor de DNS (ex: Cloudflare)", + "sslIssueHint": "As credenciais do provedor de DNS já devem estar configuradas no host.", + "sslRevoke": "Revogar certificado", + "sslRevoked": "Certificado revogado", + "sslRevokeConfirm": "Revogar e remover o certificado \"{{name}}\"? Isso não pode ser desfeito.", + "healthRun": "Correr", + "healthName": "Nome", + "healthTarget": "Endereço do host", + "healthAddCheck": "Adicionar verificação", + "healthSaved": "Exames de saúde salvos", + "healthMissingFields": "Cada verificação precisa de um nome e um alvo.", + "logFile": "Arquivo", + "logUnit": "Unidade", + "logCustomPath": "Caminho personalizado em /var/log (opcional)", + "logGrep": "Linhas de filtro...", + "firewallPersist": "Regras persistentes", + "firewallPersisted": "As regras do firewall persistiram.", "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", + "wgNotInstalled": "O WireGuard não está instalado neste host.", + "wgNoInterfaces": "Nenhuma interface WireGuard configurada", + "wgInterfaceUp": "Levantar a questão", + "wgInterfaceDown": "Derrubem", + "wgBringingUp": "Trazendo {{name}} para cima...", + "wgBringingDown": "Derrubando {{name}}...", + "wgInterfaceUpDone": "{{name}} está ativo", + "wgInterfaceDownDone": "{{name}} está inativo", "wgListenPort": "Porta", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgPublicKey": "Chave pública", + "wgEndpoint": "Ponto final", + "wgAllowedIPs": "IPs permitidos", + "wgLastHandshake": "Último aperto de mãos", + "wgHandshakeNever": "Nunca", + "wgTransfer": "Transferir", + "wgNoPeers": "Sem pares" } }, "metricsHistory": { - "title": "Metrics History", + "title": "Histórico de métricas", "historySuffix": "Histórico", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", + "cpuMemoryDisk": "CPU / Memória / Disco", + "network": "Rede", "download": "RX", "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "noData": "Não há dados históricos disponíveis para este período.", + "custom": "Personalizado", + "to": "para", + "apply": "Aplicar", + "viewHistory": "Ver histórico" }, "hosts": { "tabHostMetrics": "Métricas do Host", "metricsCollectionLabel": "Coleção de Métricas", "enableMetricsLabel": "Habilitar Métricas", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "enableMetricsDesc": "Coletar métricas de CPU, RAM, disco e outras deste host.", + "useGlobalMetrics": "Usar intervalo global", + "useGlobalMetricsDesc": "Substituir pelo intervalo de métricas de todo o servidor", + "metricsIntervalS": "Intervalo de métricas (s)", + "metricsIntervalDesc2": "Segundos entre instantâneos de métricas", + "excludedMountsLabel": "Suportes excluídos", + "monitoredMountsLabel": "Caminhos monitorados personalizados", + "monitoredMountsDesc": "Adicione caminhos que não estejam expostos como montagens separadas, incluindo caminhos do Home Assistant montados via bind, como /config.", + "monitoredMountPathPlaceholder": "Caminho (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Rótulo (opcional)", + "addMonitoredMount": "Adicionar caminho", + "excludedMountsDesc": "Oculte pontos de montagem ou tipos de sistema de arquivos específicos (por exemplo, NFS, CIFS) do uso de disco e dos alertas para este host.", + "excludedMountsPlaceholder": "Caminho de montagem (/mnt/nas) ou tipo de sistema de arquivos (nfs, cifs)", + "excludedMountsEmpty": "Nenhuma montagem excluída. Todos os sistemas de arquivos detectados são exibidos.", "addExcludedMount": "Adicionar", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "visibleWidgets": "Widgets visíveis", + "widgetsMovedToHostMetrics": "Agora, os cartões podem ser adicionados, organizados e redimensionados diretamente na guia Métricas do Host. Abra as Métricas do Host para este host e use a opção Personalizar para escolher quais cartões serão exibidos.", + "hostNotFound": "Host não encontrado", + "loadingHost": "Carregando host..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Métricas e alertas", + "feature_metrics_desc": "Monitore o uso de CPU, memória e disco ao longo do tempo e receba alertas quando apresentarem problemas." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Retenção do histórico de métricas", + "metricsHistoryRetentionRange": "1 a 90 dias", + "days": "dias" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", + "noData": "Não há dados disponíveis.", + "showCurrentValue": "Mostrar valor atual", + "chartMetric": "Métrica", + "metricRange": "Faixa", + "host": "Hospedar", "loading": "Carregando...", "metricCpu": "CPU", - "metricDisk": "Disk", - "metricHostname": "Hostname", + "metricDisk": "Disco", + "metricHostname": "Nome do host", "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", + "metricMemory": "Memória", + "metricNetwork": "Rede", + "metricOs": "SO", + "metricProcesses": "Processos", + "metricProcessesRunning": "correndo", "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "metricUptime": "Tempo de atividade", + "metricsNotAvailable": "Métricas não disponíveis", + "noHostSelected": "Nenhum host selecionado", + "selectHost": "Selecione um host..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Estatísticas ao vivo indisponíveis" }, "dashboard": { "cpu": "CPU", - "ram": "RAM" + "ram": "BATER" }, "dashboardTab": { - "disk": "Disk" + "disk": "Disco" }, "terminal": { - "connected": "Connected" + "connected": "Conectado" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Usar métricas de host", + "description": "Visualize as métricas do host e utilize os gerenciadores de host (serviços, pacotes, firewall e muito mais) nos hosts aos quais você tem acesso." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Intervalo de métricas (segundos)", + "description": "Com que frequência um host que está sendo visualizado é amostrado, a menos que o host defina seu próprio intervalo." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Retenção do histórico (dias)", + "description": "Por quanto tempo as amostras de métricas são mantidas nos gráficos de histórico?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Métricas ativadas para novos hosts", + "description": "Se os novos hosts forem iniciados com a coleta de métricas ativada." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", + "label": "Unidade de temperatura", + "description": "Como as temperaturas são exibidas nas Métricas do Host.", "celsius": "Celsius", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Coletar métricas" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Intervalo de métricas (segundos)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Widgets ativados" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Suportes excluídos" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Caminhos monitorados" } } } diff --git a/plugins/host-metrics/locales/translated/pt_PT.json b/plugins/host-metrics/locales/translated/pt_PT.json index 23b13f7b1..fbd48ad7a 100644 --- a/plugins/host-metrics/locales/translated/pt_PT.json +++ b/plugins/host-metrics/locales/translated/pt_PT.json @@ -19,21 +19,21 @@ "cpuUsage": "Utilização da CPU", "memoryUsage": "Utilização da memória", "diskUsage": "Utilização do disco", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "Selecione o sistema de ficheiros", "temperature": "Temperatura", "highestTemperature": "Temperatura máxima", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "Sensor primário", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "Nenhuma GPU NVIDIA detetada. Instale o controlador da NVIDIA (que fornece o nvidia-smi) para visualizar as métricas da GPU.", + "driver": "Motorista {{version}}", + "utilization": "Utilização", "memory": "VRAM", "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "power": "Poder", + "fan": "Fã", + "processes": "processos da GPU", + "noProcesses": "Nenhum processo está a utilizar a GPU." }, "failedToFetchHostConfig": "Falha ao obter a configuração do servidor", "serverOffline": "Servidor offline", @@ -178,7 +178,7 @@ "wgLastHandshake": "Último handshake", "wgHandshakeNever": "Nunca", "wgTransfer": "Transferência", - "wgNoPeers": "No peers" + "wgNoPeers": "Sem pares" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "Substituir pelo intervalo de métricas global do servidor", "metricsIntervalS": "Intervalo de Métricas (s)", "metricsIntervalDesc2": "Segundos entre cada registo de métricas", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "Suportes excluídos", + "monitoredMountsLabel": "Caminhos monitorizados personalizados", + "monitoredMountsDesc": "Adicione caminhos que não estejam expostos como montagens separadas, incluindo caminhos do Home Assistant montados através de bind, como /config.", + "monitoredMountPathPlaceholder": "Caminho (/config, /mnt/data)", "monitoredMountLabelPlaceholder": "Etiqueta (opcional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "Adicionar caminho", + "excludedMountsDesc": "Ocultar pontos de montagem ou tipos de sistema de ficheiros específicos (por exemplo, NFS, CIFS) da utilização do disco e dos alertas para este host.", + "excludedMountsPlaceholder": "Caminho de montagem (/mnt/nas) ou tipo de sistema de ficheiros (nfs, cifs)", + "excludedMountsEmpty": "Nenhuma montagem excluída. Todos os sistemas de ficheiros detetados são apresentados.", "addExcludedMount": "Adicionar", "visibleWidgets": "Widgets Visíveis", "widgetsMovedToHostMetrics": "Os cartões são agora adicionados, organizados e redimensionados diretamente no separador Métricas do Host. Abra as Métricas do Host para este host e use Personalizar para escolher quais os cartões a mostrar.", @@ -219,8 +219,8 @@ "loadingHost": "A carregar o host..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Métricas e alertas", + "feature_metrics_desc": "Monitorize a utilização de CPU, memória e disco ao longo do tempo e receba alertas quando apresentam problemas." }, "admin": { "metricsHistoryRetention": "Retenção do histórico de métricas", @@ -250,7 +250,7 @@ "selectHost": "Selecionar um host..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Estatísticas ao vivo indisponíveis" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Usar métricas de host", + "description": "Visualize as métricas do host e utilize os gestores de host (serviços, pacotes, firewall e muito mais) nos hosts aos quais tem acesso." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Intervalo de métricas (segundos)", + "description": "Com que frequência um host que está a ser visualizado é amostrado, a menos que o host defina o seu próprio intervalo." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Retenção do histórico (dias)", + "description": "Durante quanto tempo são mantidas as amostras de métricas nos gráficos de histórico?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Métricas ativadas para novos hosts", + "description": "Se os novos hosts forem iniciados com a recolha de métricas ativada." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", + "label": "Unidade de temperatura", + "description": "Como as temperaturas são apresentadas nas Métricas do Host.", "celsius": "Celsius", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Recolher métricas" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Intervalo de métricas (segundos)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Widgets ativados" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Suportes excluídos" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Caminhos monitorizados" } } } diff --git a/plugins/host-metrics/locales/translated/ru_RU.json b/plugins/host-metrics/locales/translated/ru_RU.json index aa3066298..9390a2ed4 100644 --- a/plugins/host-metrics/locales/translated/ru_RU.json +++ b/plugins/host-metrics/locales/translated/ru_RU.json @@ -19,21 +19,21 @@ "cpuUsage": "Использование ЦП", "memoryUsage": "Использование памяти", "diskUsage": "Использование диска", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "Выберите файловую систему", "temperature": "Температура", "highestTemperature": "Максимальная температура", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "Основной датчик", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "noDevice": "Графический процессор NVIDIA не обнаружен. Установите драйвер NVIDIA (он включает nvidia-smi), чтобы увидеть показатели графического процессора.", + "driver": "Водитель {{version}}", + "utilization": "Использование", + "memory": "ВПМ", + "temperature": "Температура", + "power": "Власть", + "fan": "Вентилятор", + "processes": "процессы графического процессора", + "noProcesses": "Никакие процессы не используют графический процессор." }, "failedToFetchHostConfig": "Не удалось получить конфигурацию хоста", "serverOffline": "Сервер недоступен", @@ -178,7 +178,7 @@ "wgLastHandshake": "Последнее рукопожатие", "wgHandshakeNever": "Никогда", "wgTransfer": "Передано", - "wgNoPeers": "No peers" + "wgNoPeers": "Нет равных" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "Переопределить глобальным интервалом сбора метрик сервера", "metricsIntervalS": "Интервал сбора метрик (с)", "metricsIntervalDesc2": "Секунд между снимками метрик", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "Исключенные крепления", + "monitoredMountsLabel": "Пользовательские контролируемые пути", + "monitoredMountsDesc": "Добавьте пути, которые не отображаются как отдельные точки монтирования, включая пути Home Assistant, смонтированные с помощью bind-mount, например, /config.", + "monitoredMountPathPlaceholder": "Путь (/config, /mnt/data)", "monitoredMountLabelPlaceholder": "Метка (необязательно)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "Добавить путь", + "excludedMountsDesc": "Скрыть определенные точки монтирования или типы файловых систем (например, nfs, cifs) от информации об использовании диска и оповещений для этого хоста.", + "excludedMountsPlaceholder": "Путь монтирования (/mnt/nas) или тип файловой системы (nfs, cifs)", + "excludedMountsEmpty": "Исключены все точки монтирования. Отображаются все обнаруженные файловые системы.", "addExcludedMount": "Добавить", "visibleWidgets": "Видимые виджеты", "widgetsMovedToHostMetrics": "Карточки теперь добавляются, упорядочиваются и изменяются в размере непосредственно на вкладке «Метрики хоста». Откройте метрики для этого хоста и используйте «Настроить», чтобы выбрать отображаемые карточки.", @@ -219,8 +219,8 @@ "loadingHost": "Загрузка хоста..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Метрики и оповещения", + "feature_metrics_desc": "Отслеживайте состояние процессора, памяти и диска с течением времени и получайте оповещения при возникновении неполадок." }, "admin": { "metricsHistoryRetention": "Срок хранения метрик", @@ -250,7 +250,7 @@ "selectHost": "Выберите хост..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Статистика в режиме реального времени недоступна" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Используйте метрики хоста", + "description": "Просматривайте метрики хоста и используйте менеджеры хостов (службы, пакеты, брандмауэр и многое другое) на доступных вам хостах." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Интервал метрик (секунды)", + "description": "Как часто производится выборка данных с просматриваемого хоста, если только хост не устанавливает собственный интервал." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Срок хранения истории болезни (дни)", + "description": "Как долго хранятся выборки метрик для построения исторических графиков?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Для новых хостов включена функция отслеживания метрик.", + "description": "Будет ли сбор метрик включен при запуске новых хостов." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "Единица измерения температуры", + "description": "Как отображается температура в метриках хоста.", + "celsius": "Цельсия", + "fahrenheit": "Фаренгейт" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Собирайте метрики" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Интервал метрик (секунды)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Включенные виджеты" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Крепления не включены" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Контролируемые пути" } } } diff --git a/plugins/host-metrics/locales/translated/sr_SP.json b/plugins/host-metrics/locales/translated/sr_SP.json index fc32b9c85..bf149b58e 100644 --- a/plugins/host-metrics/locales/translated/sr_SP.json +++ b/plugins/host-metrics/locales/translated/sr_SP.json @@ -1,311 +1,311 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "Метрике хоста" }, "hostMetrics": { - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "cpu": "Процесор", + "memory": "Памћење", + "disk": "Диск", + "network": "Мрежа", + "uptime": "Време непрекидног рада", + "processes": "Процеси", + "available": "Доступно", + "free": "Бесплатно", + "connecting": "Повезивање...", + "connectionFailed": "Повезивање са сервером није успело", + "naCpus": "Н/Д процесор(и)", + "cpuCores_one": "{{count}} Језгро", + "cpuCores_other": "{{count}} Језгра", + "cpuUsage": "Искоришћеност процесора", + "memoryUsage": "Коришћење меморије", + "diskUsage": "Искоришћеност диска", + "selectFilesystem": "Изаберите фајл систем", + "temperature": "Температура", + "highestTemperature": "Највиша температура", + "primaryTemperatureSensor": "Примарни сензор", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "title": "ГПУ", + "noDevice": "Није детектована NVIDIA GPU. Инсталирајте NVIDIA драјвер (пружа nvidia-smi) да бисте видели метрике GPU-а.", + "driver": "Возач {{version}}", + "utilization": "Коришћење", + "memory": "Видео меморија", + "temperature": "Температура", + "power": "Моћ", + "fan": "Вентилатор", + "processes": "Процеси графичког процесора (GPU)", + "noProcesses": "Ниједан процес не користи ГПУ" }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", - "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "failedToFetchHostConfig": "Није успело преузимање конфигурације хоста", + "serverOffline": "Сервер ван мреже", + "cannotFetchMetrics": "Није могуће преузети метрике са офлајн сервера", + "totpFailed": "Верификација TOTP-а није успела", + "noneAuthNotSupported": "Метрике хоста не подржавају тип аутентификације „ниједан“.", + "noHostSelected": "Није изабран домаћин", + "load": "Учитај", + "systemInfo": "Системске информације", + "hostname": "Име хоста", + "operatingSystem": "Оперативни систем", + "kernel": "Језгро", + "seconds": "секунде", + "networkInterfaces": "Мрежни интерфејси", + "noInterfacesFound": "Није пронађен ниједан мрежни интерфејс", + "noProcessesFound": "Није пронађен ниједан процес", + "processesTotal": "укупно", + "processesRunning": "трчање", + "loginStats": "Статистика SSH пријава", + "noRecentLoginData": "Нема скорашњих података за пријављивање", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "Портови за слушање", + "protocol": "Протокол", + "port": "Лука", + "address": "Адреса", + "process": "Процес", + "search": "Претражи портове...", + "allProtocols": "Сви", + "noData": "Нема података о портовима за слушање" }, "firewall": { - "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", - "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "title": "Заштитни зид (фајервол)", + "inactive": "Неактивно", + "policy": "Политика", + "rules": "правила", + "noRules": "Нема правила у овом ланцу", + "noData": "Нема доступних података о заштитном зиду", + "action": "Акција", + "protocol": "Прото", + "port": "Лука", + "source": "Извор", + "anywhere": "Било где", + "chains": "ланци" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "Учитај просек", + "swap": "Замена", + "architecture": "Архитектура", + "refresh": "Освежи", + "retry": "Покушај поново", + "customize": "Прилагоди распоред", + "reset": "Ресетуј", + "tabLive": "Уживо", + "editModeInstructions": "Превуците картице да бисте преуредили, превуците доњу ивицу да бисте променили величину и користите дугме за ширину да бисте променили распон картице. Додајте или уклоните картице испод.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", + "services": "Услуге", + "processInspector": "Инспектор процеса", + "logViewer": "Прегледач дневника", + "cron": "Cron послови", + "packages": "Пакети", + "ssl": "SSL сертификати", + "firewall": "Заштитни зид (фајервол)", + "users": "Корисници и дозволе", + "healthCheck": "Здравствени прегледи", + "diskBreakdown": "Распад диска", + "systemdTimers": "Тајмери", + "topMemory": "Најбоље по сећању", + "noData": "Нема података", + "sudoHint": "Поставите sudo лозинку за овај хост у уређивачу хостова да бисте омогућили привилеговане акције.", + "filter": "Филтер...", + "start": "Почетак", + "stop": "Заустави", + "restart": "Поново покрени", + "actionDone": "{{name}} ажурирано", + "actionFailed": "Акција није успела", + "signalSent": "Сигнал послат на ПИД {{pid}}", + "killHint": "Кликните: прекините (SIGTERM). Кликните десним тастером миша: присилно зауставите (SIGKILL).", + "working": "Ради се...", + "update": "Ажурирање", + "upgradeAll": "Надогради све", + "allUpToDate": "Све је ажурирано", + "save": "Сачувај", + "command": "Команда", + "enabled": "Омогућено", + "cronSaved": "Кронтаб је ажуриран", + "clients": "Клијенти", + "dryRun": "Пробни рад", + "renew": "Обнови", + "noAcmeClient": "Није пронађен ACME клијент (certbot или acme.sh) на овом хосту.", + "addInputRule": "Додај INPUT правило", + "firewallWarning": "Промене су само за време извршавања док се не сачувају. Пазите да се не закључате.", + "ruleApplied": "Правило је примењено", + "invalidPort": "Унесите важећи порт (1-65535)", + "newUsername": "Ново корисничко име", + "addUser": "Додај", + "deleteUser": "Обриши корисника", + "noHealthChecks": "Још увек нису конфигурисане провере исправности.", + "follow": "Прати", + "noLogData": "Нема излаза лог-а.", + "tree": "Дрво", + "enableDisable": "Омогући/онемогући при покретању", + "grantSudo": "Додели судо", + "revokeSudo": "Поништи sudo", + "sslIssueCert": "Издај сертификат", + "sslExpired": "Истекло", + "sslInDays": "у {{days}}д", + "sslNeedDomain": "Унесите барем један домен", + "sslIssued": "Издат сертификат", "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", - "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", - "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "sslHttpStandalone": "HTTP (самостални)", + "sslHttpWebroot": "HTTP (вебрут)", + "sslDns": "ДНС", + "sslDnsProvider": "DNS провајдер (нпр. cloudflare)", + "sslIssueHint": "Акредитиви DNS провајдера морају већ бити конфигурисани на хосту.", + "sslRevoke": "Поништи сертификат", + "sslRevoked": "Сертификат опозван", + "sslRevokeConfirm": "Поништити и уклонити сертификат „{{name}}“? Ово се не може поништити.", + "healthRun": "Трчи", + "healthName": "Име", + "healthTarget": "Домаћин / адреса", + "healthAddCheck": "Додај чек", + "healthSaved": "Провере здравственог стања сачуване", + "healthMissingFields": "Свака провера захтева име и циљ", + "logFile": "Датотека", + "logUnit": "Јединица", + "logCustomPath": "Прилагођена путања у /var/log (опционо)", + "logGrep": "Филтерске линије...", + "firewallPersist": "Правила трајања", + "firewallPersisted": "Правила заштитног зида су опстала", + "wireguard": "ВајерГард", + "wgNotInstalled": "WireGuard није инсталиран на овом хосту", + "wgNoInterfaces": "Није конфигурисан ниједан WireGuard интерфејс", + "wgInterfaceUp": "Поведи", + "wgInterfaceDown": "Срушити", + "wgBringingUp": "Доводи се {{name}} горе...", + "wgBringingDown": "Спуштање {{name}}...", + "wgInterfaceUpDone": "{{name}} је горе", + "wgInterfaceDownDone": "{{name}} је неактиван", + "wgListenPort": "Лука", + "wgPublicKey": "Јавни кључ", + "wgEndpoint": "Крајња тачка", + "wgAllowedIPs": "Дозвољене IP адресе", + "wgLastHandshake": "Последње руковање", + "wgHandshakeNever": "Никад", + "wgTransfer": "Пренос", + "wgNoPeers": "Нема вршњака" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", - "download": "RX", - "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "title": "Историја метрика", + "historySuffix": "Историја", + "cpuMemoryDisk": "Процесор / Меморија / Диск", + "network": "Мрежа", + "download": "Рецепт", + "upload": "Тексас", + "noData": "Нема доступних историјских података за овај временски опсег.", + "custom": "Прилагођено", + "to": "до", + "apply": "Примени", + "viewHistory": "Прикажи историју" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "Метрике хоста", + "metricsCollectionLabel": "Колекција метрика", + "enableMetricsLabel": "Омогући метрике", + "enableMetricsDesc": "Прикупљајте метрику процесора, RAM-а, диска и друге показатеље са овог хоста", + "useGlobalMetrics": "Користи глобални интервал", + "useGlobalMetricsDesc": "Замени интервалом метрика на нивоу сервера", + "metricsIntervalS": "Интервал(и) метрика", + "metricsIntervalDesc2": "Секунде између снимака метрика", + "excludedMountsLabel": "Искључени носачи", + "monitoredMountsLabel": "Прилагођене праћене путање", + "monitoredMountsDesc": "Додајте путање које нису изложене као засебне монтиране верзије, укључујући путање за Home Assistant монтиране помоћу повезивања, као што је /config.", + "monitoredMountPathPlaceholder": "Путања (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Ознака (опционо)", + "addMonitoredMount": "Додај путању", + "excludedMountsDesc": "Сакријте одређене тачке монтирања или типове фајл система (нпр. nfs, cifs) од коришћења диска и упозорења за овај хост.", + "excludedMountsPlaceholder": "Путања монтирања (/mnt/nas) или тип фајл система (nfs, cifs)", + "excludedMountsEmpty": "Није искључено ниједно монтирање. Приказани су сви откривени фајл системи.", + "addExcludedMount": "Додај", + "visibleWidgets": "Видљиви виџети", + "widgetsMovedToHostMetrics": "Картице се сада додају, распоређују и мењају им се величина директно на картици „Host Metrics“. Отворите „Host Metrics“ за овог хоста и користите „Customize“ да бисте изабрали које ће картице бити приказане.", + "hostNotFound": "Хост није пронађен", + "loadingHost": "Учитавање хоста..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Метрике и упозорења", + "feature_metrics_desc": "Пратите процесор, меморију и диск током времена и добијајте обавештења када дође до квара." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Чување историје метрика", + "metricsHistoryRetentionRange": "Од 1 до 90 дана", + "days": "дана" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", - "metricCpu": "CPU", - "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", - "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "noData": "Нема доступних података", + "showCurrentValue": "Прикажи тренутну вредност", + "chartMetric": "Метрика", + "metricRange": "Домет", + "host": "Домаћин", + "loading": "Учитавање...", + "metricCpu": "Процесор", + "metricDisk": "Диск", + "metricHostname": "Име хоста", + "metricKernel": "Језгро", + "metricMemory": "Памћење", + "metricNetwork": "Мрежа", + "metricOs": "ОС", + "metricProcesses": "Процеси", + "metricProcessesRunning": "трчање", + "metricProcessesTotal": "укупно", + "metricUptime": "Време непрекидног рада", + "metricsNotAvailable": "Метрике нису доступне", + "noHostSelected": "Није изабран домаћин", + "selectHost": "Изаберите хост..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Статистика уживо није доступна" }, "dashboard": { - "cpu": "CPU", - "ram": "RAM" + "cpu": "Процесор", + "ram": "РАМ меморија" }, "dashboardTab": { - "disk": "Disk" + "disk": "Диск" }, "terminal": { - "connected": "Connected" + "connected": "Повезано" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Користите метрике хоста", + "description": "Погледајте метрике хоста и користите менаџере хоста (сервисе, пакете, заштитни зид и још много тога) на хостовима којима можете приступити." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Интервал метрика (секунде)", + "description": "Колико често се узоркује прегледани хост, осим ако хост не подеси сопствени интервал." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Чување историје (дани)", + "description": "Колико дуго се чувају узорци метрика за графиконе историје." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Метрике су укључене за нове хостове", + "description": "Да ли нови хостови почињу са укљученим прикупљањем метрика." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "Јединица температуре", + "description": "Како се температуре приказују у метрикама хоста.", + "celsius": "Целзијус", + "fahrenheit": "Фаренхајт" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Прикупљајте метрике" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Интервал метрика (секунде)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Омогућени виџети" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Искључени носачи" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Праћене путање" } } } diff --git a/plugins/host-metrics/locales/translated/sv_SE.json b/plugins/host-metrics/locales/translated/sv_SE.json index fc32b9c85..20518decb 100644 --- a/plugins/host-metrics/locales/translated/sv_SE.json +++ b/plugins/host-metrics/locales/translated/sv_SE.json @@ -1,311 +1,311 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "Värdstatistik" }, "hostMetrics": { "cpu": "CPU", - "memory": "Memory", + "memory": "Minne", "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "network": "Nätverk", + "uptime": "Drifttid", + "processes": "Processer", + "available": "Tillgänglig", + "free": "Gratis", + "connecting": "Ansluter...", + "connectionFailed": "Misslyckades med att ansluta till servern", + "naCpus": "Ej tillämpligt CPU(er)", + "cpuCores_one": "{{count}} Kärna", + "cpuCores_other": "{{count}} Kärnor", + "cpuUsage": "CPU-användning", + "memoryUsage": "Minnesanvändning", + "diskUsage": "Diskanvändning", + "selectFilesystem": "Välj filsystem", + "temperature": "Temperatur", + "highestTemperature": "Högsta temperatur", + "primaryTemperatureSensor": "Primär sensor", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "Ingen NVIDIA GPU hittades. Installera NVIDIA-drivrutinen (den tillhandahåller nvidia-smi) för att se GPU-statistik.", + "driver": "Förare {{version}}", + "utilization": "Utnyttjande", "memory": "VRAM", "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "power": "Driva", + "fan": "Fläkt", + "processes": "GPU-processer", + "noProcesses": "Inga processer använder GPU:n" }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", + "failedToFetchHostConfig": "Misslyckades med att hämta värdkonfigurationen", + "serverOffline": "Servern är offline", + "cannotFetchMetrics": "Kan inte hämta mätvärden från offlineservern", + "totpFailed": "TOTP-verifiering misslyckades", + "noneAuthNotSupported": "Host Metrics stöder inte autentiseringstypen 'ingen'.", + "noHostSelected": "Ingen värd vald", + "load": "Ladda", + "systemInfo": "Systeminformation", + "hostname": "Värdnamn", + "operatingSystem": "Operativsystem", + "kernel": "Kärna", + "seconds": "sekunder", + "networkInterfaces": "Nätverksgränssnitt", + "noInterfacesFound": "Inga nätverksgränssnitt hittades", + "noProcessesFound": "Inga processer hittades", "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "processesRunning": "spring", + "loginStats": "SSH-inloggningsstatistik", + "noRecentLoginData": "Inga aktuella inloggningsuppgifter", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "Lyssningsportar", + "protocol": "Protokoll", + "port": "Hamn", + "address": "Adress", + "process": "Behandla", + "search": "Sök portar...", + "allProtocols": "Alla", + "noData": "Inga lyssningsportdata" }, "firewall": { - "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", + "title": "Brandvägg", + "inactive": "Inaktiv", + "policy": "Politik", + "rules": "regler", + "noRules": "Inga regler i den här kedjan", + "noData": "Ingen brandväggsdata tillgänglig", + "action": "Handling", "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "port": "Hamn", + "source": "Källa", + "anywhere": "Någonstans", + "chains": "kedjor" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "Ladda genomsnitt", + "swap": "Byta", + "architecture": "Arkitektur", + "refresh": "Uppdatera", + "retry": "Försöka igen", + "customize": "Anpassa layouten", + "reset": "Återställa", + "tabLive": "Bo", + "editModeInstructions": "Dra kort för att ordna om, dra i den nedre kanten för att ändra storlek och använd breddknappen för att ändra ett korts längd. Lägg till eller ta bort kort nedan.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", + "services": "Tjänster", + "processInspector": "Processinspektör", + "logViewer": "Loggvisare", + "cron": "Cron-jobb", + "packages": "Paket", + "ssl": "SSL-certifikat", + "firewall": "Brandvägg", + "users": "Användare och behörigheter", + "healthCheck": "Hälsokontroller", + "diskBreakdown": "Diskuppdelning", "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", + "topMemory": "Topp av Memory", + "noData": "Inga uppgifter", + "sudoHint": "Ange ett sudo-lösenord för den här värden i värdredigeraren för att aktivera privilegierade åtgärder.", + "filter": "Filtrera...", "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", - "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", + "stop": "Stopp", + "restart": "Starta om", + "actionDone": "{{name}} uppdaterad", + "actionFailed": "Åtgärden misslyckades", + "signalSent": "Signal skickad till PID {{pid}}", + "killHint": "Klicka: avsluta (SIGTERM). Högerklicka: tvinga bort (SIGKILL).", + "working": "Arbetssätt...", + "update": "Uppdatera", + "upgradeAll": "Uppgradera alla", + "allUpToDate": "Allt är uppdaterat", + "save": "Spara", + "command": "Kommando", + "enabled": "Aktiverad", + "cronSaved": "Crontab uppdaterad", + "clients": "klienter", + "dryRun": "Torrkörning", + "renew": "Förnya", + "noAcmeClient": "Ingen ACME-klient (certbot eller acme.sh) hittades på den här värden.", + "addInputRule": "Lägg till INPUT-regel", + "firewallWarning": "Ändringarna gäller endast under körning tills de sparas. Var försiktig så att du inte låser dig ute.", + "ruleApplied": "Regel tillämpad", + "invalidPort": "Ange en giltig port (1-65535)", + "newUsername": "Nytt användarnamn", + "addUser": "Tillägga", + "deleteUser": "Ta bort användare", + "noHealthChecks": "Inga hälsokontroller har konfigurerats ännu.", + "follow": "Följa", + "noLogData": "Ingen loggutgång.", + "tree": "Träd", + "enableDisable": "Aktivera/avaktivera vid start", + "grantSudo": "Bevilja sudo", + "revokeSudo": "Återkalla sudo", + "sslIssueCert": "Utfärdande av certifikat", + "sslExpired": "Utgången", + "sslInDays": "i {{days}}d", + "sslNeedDomain": "Ange minst en domän", + "sslIssued": "Certifikat utfärdat", + "sslDomainsPlaceholder": "exempel.com, www.example.com", + "sslHttpStandalone": "HTTP (fristående)", + "sslHttpWebroot": "HTTP (webbrot)", "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", + "sslDnsProvider": "DNS-leverantör (t.ex. Cloudflare)", + "sslIssueHint": "DNS-leverantörens inloggningsuppgifter måste redan vara konfigurerade på värden.", + "sslRevoke": "Återkalla certifikat", + "sslRevoked": "Certifikat återkallat", + "sslRevokeConfirm": "Återkalla och ta bort certifikatet \"{{name}}\"? Detta kan inte ångras.", + "healthRun": "Sikt", + "healthName": "Namn", + "healthTarget": "Värd / adress", + "healthAddCheck": "Lägg till check", + "healthSaved": "Hälsokontroller sparade", + "healthMissingFields": "Varje kontroll behöver ett namn och ett mål", + "logFile": "Fil", + "logUnit": "Enhet", + "logCustomPath": "Anpassad sökväg under /var/log (valfritt)", + "logGrep": "Filtrera rader...", + "firewallPersist": "Bevara regler", + "firewallPersisted": "Brandväggsreglerna bibehölls", "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNotInstalled": "WireGuard är inte installerat på den här värddatorn", + "wgNoInterfaces": "Inga WireGuard-gränssnitt konfigurerade", + "wgInterfaceUp": "Få upp", + "wgInterfaceDown": "Sänka", + "wgBringingUp": "Tar upp {{name}}...", + "wgBringingDown": "Att fälla {{name}}...", + "wgInterfaceUpDone": "{{name}} är uppe", + "wgInterfaceDownDone": "{{name}} är nere", + "wgListenPort": "Hamn", + "wgPublicKey": "Offentlig nyckel", + "wgEndpoint": "Slutpunkt", + "wgAllowedIPs": "Tillåtna IP-adresser", + "wgLastHandshake": "Sista handskakningen", + "wgHandshakeNever": "Aldrig", + "wgTransfer": "Överföra", + "wgNoPeers": "Inga jämnåriga" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", + "title": "Statistikhistorik", + "historySuffix": "Historia", + "cpuMemoryDisk": "CPU / Minne / Disk", + "network": "Nätverk", "download": "RX", "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "noData": "Ingen historikdata tillgänglig för detta tidsintervall.", + "custom": "Beställnings", + "to": "till", + "apply": "Tillämpas", + "viewHistory": "Visa historik" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "Värdstatistik", + "metricsCollectionLabel": "Metriksamling", + "enableMetricsLabel": "Aktivera mätvärden", + "enableMetricsDesc": "Samla in CPU, RAM, disk och andra mätvärden från den här värden", + "useGlobalMetrics": "Använd globalt intervall", + "useGlobalMetricsDesc": "Åsidosätt med det serveromfattande mätintervallet", + "metricsIntervalS": "Mätintervall (s)", + "metricsIntervalDesc2": "Sekunder mellan mätvärdesbilder", + "excludedMountsLabel": "Undantagna fästen", + "monitoredMountsLabel": "Anpassade övervakade sökvägar", + "monitoredMountsDesc": "Lägg till sökvägar som inte exponeras som separata monteringar, inklusive bindningsmonterade Home Assistant-sökvägar som /config.", + "monitoredMountPathPlaceholder": "Sökväg (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Etikett (valfritt)", + "addMonitoredMount": "Lägg till sökväg", + "excludedMountsDesc": "Dölj specifika monteringspunkter eller filsystemtyper (t.ex. nfs, cifs) från diskanvändning och aviseringar för den här värden.", + "excludedMountsPlaceholder": "Monteringssökväg (/mnt/nas) eller filsystemtyp (nfs, cifs)", + "excludedMountsEmpty": "Inga monteringar är undantagna. Alla upptäckta filsystem visas.", + "addExcludedMount": "Tillägga", + "visibleWidgets": "Synliga widgetar", + "widgetsMovedToHostMetrics": "Kort läggs nu till, ordnas och ändras i storlek direkt på fliken Värdstatistik. Öppna Värdstatistik för den här värden och använd Anpassa för att välja vilka kort som visas.", + "hostNotFound": "Värden hittades inte", + "loadingHost": "Laddar värd..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Mätvärden och varningar", + "feature_metrics_desc": "Spåra CPU, minne och disk över tid och få en avisering när de blir dåliga." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Bevarande av mätvärdenas historik", + "metricsHistoryRetentionRange": "1 till 90 dagar", + "days": "dagar" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", + "noData": "Inga data tillgängliga", + "showCurrentValue": "Visa aktuellt värde", + "chartMetric": "Metrisk", + "metricRange": "Räckvidd", + "host": "Värd", + "loading": "Belastning...", "metricCpu": "CPU", "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", + "metricHostname": "Värdnamn", + "metricKernel": "Kärna", + "metricMemory": "Minne", + "metricNetwork": "Nätverk", + "metricOs": "operativsystem", + "metricProcesses": "Processer", + "metricProcessesRunning": "spring", "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "metricUptime": "Drifttid", + "metricsNotAvailable": "Mätvärden är inte tillgängliga", + "noHostSelected": "Ingen värd vald", + "selectHost": "Välj en värd..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Livestatistik är inte tillgänglig" }, "dashboard": { "cpu": "CPU", - "ram": "RAM" + "ram": "RAM-minne" }, "dashboardTab": { "disk": "Disk" }, "terminal": { - "connected": "Connected" + "connected": "Ansluten" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Använd värdmätvärden", + "description": "Visa värdstatistik och använd värdhanterare (tjänster, paket, brandvägg med mera) på värdar du kan nå." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Mätintervall (sekunder)", + "description": "Hur ofta en värd som visas samplas, såvida inte värden anger sitt eget intervall." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Historiklagring (dagar)", + "description": "Hur länge mätvärden sparas för historikdiagrammen." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Mätvärden aktiverade för nya värdar", + "description": "Om nya värdar börjar med att mätvärdesinsamling är aktiverad." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", + "label": "Temperaturenhet", + "description": "Hur temperaturer visas i Host Metrics.", "celsius": "Celsius", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Samla in mätvärden" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Mätintervall (sekunder)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Aktiverade widgetar" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Undantagna fästen" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Övervakade vägar" } } } diff --git a/plugins/host-metrics/locales/translated/th_TH.json b/plugins/host-metrics/locales/translated/th_TH.json index fc32b9c85..2048133b0 100644 --- a/plugins/host-metrics/locales/translated/th_TH.json +++ b/plugins/host-metrics/locales/translated/th_TH.json @@ -1,311 +1,311 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "เมตริกโฮสต์" }, "hostMetrics": { - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "cpu": "ซีพียู", + "memory": "หน่วยความจำ", + "disk": "ดิสก์", + "network": "เครือข่าย", + "uptime": "เวลาใช้งาน", + "processes": "กระบวนการ", + "available": "มีอยู่", + "free": "ฟรี", + "connecting": "กำลังเชื่อมต่อ...", + "connectionFailed": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้", + "naCpus": "ไม่มีข้อมูล CPU", + "cpuCores_one": "{{count}} แกนหลัก", + "cpuCores_other": "{{count}} คอร์", + "cpuUsage": "การใช้งาน CPU", + "memoryUsage": "การใช้งานหน่วยความจำ", + "diskUsage": "การใช้งานดิสก์", + "selectFilesystem": "เลือกไฟล์ระบบ", + "temperature": "อุณหภูมิ", + "highestTemperature": "อุณหภูมิสูงสุด", + "primaryTemperatureSensor": "เซ็นเซอร์หลัก", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "title": "จีพี", + "noDevice": "ไม่พบการ์ดจอ NVIDIA โปรดติดตั้งไดรเวอร์ NVIDIA (ซึ่งมีโปรแกรม nvidia-smi ให้ใช้งาน) เพื่อดูข้อมูลการทำงานของ GPU", + "driver": "คนขับ {{version}}", + "utilization": "การใช้ประโยชน์", + "memory": "วีแรม", + "temperature": "อุณหภูมิ", + "power": "พลัง", + "fan": "พัดลม", + "processes": "การประมวลผล GPU", + "noProcesses": "ไม่มีกระบวนการใดกำลังใช้งาน GPU อยู่" }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", - "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "failedToFetchHostConfig": "ไม่สามารถดึงข้อมูลการกำหนดค่าโฮสต์ได้", + "serverOffline": "เซิร์ฟเวอร์ออฟไลน์", + "cannotFetchMetrics": "ไม่สามารถดึงข้อมูลเมตริกจากเซิร์ฟเวอร์ออฟไลน์ได้", + "totpFailed": "การตรวจสอบ TOTP ล้มเหลว", + "noneAuthNotSupported": "Host Metrics ไม่รองรับประเภทการตรวจสอบสิทธิ์แบบ 'none'", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "load": "โหลด", + "systemInfo": "ข้อมูลระบบ", + "hostname": "ชื่อโฮสต์", + "operatingSystem": "ระบบปฏิบัติการ", + "kernel": "เคอร์เนล", + "seconds": "วินาที", + "networkInterfaces": "อินเทอร์เฟซเครือข่าย", + "noInterfacesFound": "ไม่พบอินเทอร์เฟซเครือข่าย", + "noProcessesFound": "ไม่พบกระบวนการใดๆ", + "processesTotal": "ทั้งหมด", + "processesRunning": "วิ่ง", + "loginStats": "สถิติการเข้าสู่ระบบ SSH", + "noRecentLoginData": "ไม่มีข้อมูลการเข้าสู่ระบบล่าสุด", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "พอร์ตรับฟัง", + "protocol": "โปรโตคอล", + "port": "ท่าเรือ", + "address": "ที่อยู่", + "process": "กระบวนการ", + "search": "ค้นหาพอร์ต...", + "allProtocols": "ทั้งหมด", + "noData": "ไม่มีข้อมูลพอร์ตการฟัง" }, "firewall": { - "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", - "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "title": "ไฟร์วอลล์", + "inactive": "ไม่ใช้งาน", + "policy": "นโยบาย", + "rules": "กฎ", + "noRules": "ไม่มีกฎเกณฑ์ใดๆ ในห่วงโซ่นี้", + "noData": "ไม่มีข้อมูลไฟร์วอลล์ให้ใช้งาน", + "action": "การกระทำ", + "protocol": "โปรโต", + "port": "ท่าเรือ", + "source": "แหล่งที่มา", + "anywhere": "ทุกที่", + "chains": "โซ่" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "โหลดเฉลี่ย", + "swap": "แลกเปลี่ยน", + "architecture": "สถาปัตยกรรม", + "refresh": "รีเฟรช", + "retry": "ลองใหม่อีกครั้ง", + "customize": "ปรับแต่งเค้าโครง", + "reset": "รีเซ็ต", + "tabLive": "สด", + "editModeInstructions": "ลากการ์ดเพื่อจัดเรียงใหม่ ลากขอบด้านล่างเพื่อปรับขนาด และใช้ปุ่มความกว้างเพื่อเปลี่ยนความกว้างของการ์ด เพิ่มหรือลบการ์ดด้านล่าง", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", + "services": "บริการ", + "processInspector": "ผู้ตรวจสอบกระบวนการ", + "logViewer": "โปรแกรมดูบันทึก", + "cron": "งานครอน", + "packages": "แพ็คเกจ", + "ssl": "ใบรับรอง SSL", + "firewall": "ไฟร์วอลล์", + "users": "ผู้ใช้และสิทธิ์การเข้าถึง", + "healthCheck": "การตรวจสุขภาพ", + "diskBreakdown": "การแยกดิสก์", + "systemdTimers": "ตัวจับเวลา", + "topMemory": "อันดับแรกโดย Memory", + "noData": "ไม่มีข้อมูล", + "sudoHint": "ตั้งรหัสผ่าน sudo สำหรับโฮสต์นี้ในโปรแกรมแก้ไขโฮสต์เพื่อเปิดใช้งานการดำเนินการที่มีสิทธิ์พิเศษ", + "filter": "กรอง...", + "start": "เริ่ม", + "stop": "หยุด", + "restart": "เริ่มใหม่", + "actionDone": "{{name}} อัปเดตแล้ว", + "actionFailed": "การดำเนินการล้มเหลว", + "signalSent": "ส่งสัญญาณไปยัง PID {{pid}}", + "killHint": "คลิก: ยุติการทำงาน (SIGTERM) คลิกขวา: บังคับปิดการทำงาน (SIGKILL)", + "working": "การทำงาน...", + "update": "อัปเดต", + "upgradeAll": "อัปเกรดทั้งหมด", + "allUpToDate": "ทุกอย่างอัปเดตแล้ว", + "save": "บันทึก", + "command": "สั่งการ", + "enabled": "เปิดใช้งาน", + "cronSaved": "อัปเดต Crontab แล้ว", + "clients": "ลูกค้า", + "dryRun": "การทดลองซ้อม", + "renew": "ต่ออายุ", + "noAcmeClient": "ไม่พบไคลเอ็นต์ ACME (certbot หรือ acme.sh) บนโฮสต์นี้", + "addInputRule": "เพิ่มกฎ INPUT", + "firewallWarning": "การเปลี่ยนแปลงจะมีผลเฉพาะขณะรันไทม์จนกว่าจะบันทึกเสร็จสมบูรณ์ โปรดระวังอย่าล็อกตัวเองออกจากระบบ", + "ruleApplied": "กฎที่ใช้", + "invalidPort": "ป้อนหมายเลขพอร์ตที่ถูกต้อง (1-65535)", + "newUsername": "ชื่อผู้ใช้ใหม่", + "addUser": "เพิ่ม", + "deleteUser": "ลบผู้ใช้", + "noHealthChecks": "ยังไม่ได้ตั้งค่าการตรวจสอบสุขภาพใดๆ", + "follow": "ติดตาม", + "noLogData": "ไม่มีการแสดงผลบันทึกใดๆ", + "tree": "ต้นไม้", + "enableDisable": "เปิดใช้งาน/ปิดใช้งานเมื่อบูตเครื่อง", + "grantSudo": "ให้สิทธิ์ sudo", + "revokeSudo": "ยกเลิกสิทธิ์ sudo", + "sslIssueCert": "ออกใบรับรอง", + "sslExpired": "หมดอายุ", + "sslInDays": "ใน {{days}}d", + "sslNeedDomain": "ป้อนโดเมนอย่างน้อยหนึ่งโดเมน", + "sslIssued": "ออกใบรับรองแล้ว", "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", + "sslHttpStandalone": "HTTP (แบบสแตนด์อโลน)", "sslHttpWebroot": "HTTP (webroot)", - "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", - "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "sslDns": "เอ็นเอสดี", + "sslDnsProvider": "ผู้ให้บริการ DNS (เช่น Cloudflare)", + "sslIssueHint": "ต้องตั้งค่าข้อมูลประจำตัวของผู้ให้บริการ DNS บนโฮสต์ไว้แล้ว", + "sslRevoke": "เพิกถอนใบรับรอง", + "sslRevoked": "ใบรับรองถูกเพิกถอน", + "sslRevokeConfirm": "เพิกถอนและลบใบรับรอง \"{{name}}\"? การดำเนินการนี้ไม่สามารถย้อนกลับได้", + "healthRun": "วิ่ง", + "healthName": "ชื่อ", + "healthTarget": "โฮสต์ / ที่อยู่", + "healthAddCheck": "เพิ่มเช็ค", + "healthSaved": "บันทึกการตรวจสุขภาพ", + "healthMissingFields": "เช็คแต่ละใบต้องมีชื่อและเป้าหมาย", + "logFile": "ไฟล์", + "logUnit": "หน่วย", + "logCustomPath": "เส้นทางที่กำหนดเองภายใต้ /var/log (ไม่บังคับ)", + "logGrep": "กรองบรรทัด...", + "firewallPersist": "กฎการคงอยู่", + "firewallPersisted": "กฎไฟร์วอลล์ยังคงอยู่", + "wireguard": "ไวร์การ์ด", + "wgNotInstalled": "WireGuard ไม่ได้ติดตั้งอยู่ในเครื่องนี้", + "wgNoInterfaces": "ไม่มีการกำหนดค่าอินเทอร์เฟซ WireGuard", + "wgInterfaceUp": "นำมา", + "wgInterfaceDown": "นำมาลง", + "wgBringingUp": "กำลังนำ {{name}} ขึ้นมา...", + "wgBringingDown": "ล้มล้าง {{name}}...", + "wgInterfaceUpDone": "{{name}} พร้อมใช้งานแล้ว", + "wgInterfaceDownDone": "{{name}} ใช้งานไม่ได้แล้ว", + "wgListenPort": "ท่าเรือ", + "wgPublicKey": "กุญแจสาธารณะ", + "wgEndpoint": "จุดสิ้นสุด", + "wgAllowedIPs": "ที่อยู่ IP ที่อนุญาต", + "wgLastHandshake": "การจับมือครั้งสุดท้าย", + "wgHandshakeNever": "ไม่เคย", + "wgTransfer": "โอนย้าย", + "wgNoPeers": "ไม่มีเพื่อนร่วมงาน" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", - "download": "RX", - "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "title": "ประวัติการวัดผล", + "historySuffix": "ประวัติศาสตร์", + "cpuMemoryDisk": "ซีพียู / หน่วยความจำ / ดิสก์", + "network": "เครือข่าย", + "download": "อาร์ซี", + "upload": "เท็กซัส", + "noData": "ไม่มีข้อมูลประวัติสำหรับช่วงเวลานี้", + "custom": "กำหนดเอง", + "to": "ถึง", + "apply": "นำมาใช้", + "viewHistory": "ประวัติการดู" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "เมตริกโฮสต์", + "metricsCollectionLabel": "การรวบรวมเมตริก", + "enableMetricsLabel": "เปิดใช้งานเมตริก", + "enableMetricsDesc": "รวบรวมข้อมูลการใช้งาน CPU, RAM, ดิสก์ และข้อมูลอื่นๆ จากโฮสต์นี้", + "useGlobalMetrics": "ใช้ช่วงเวลาทั่วโลก", + "useGlobalMetricsDesc": "แทนที่ด้วยช่วงเวลาการวัดเมตริกทั่วทั้งเซิร์ฟเวอร์", + "metricsIntervalS": "ช่วงเวลาการวัด (วินาที)", + "metricsIntervalDesc2": "จำนวนวินาทีระหว่างการบันทึกภาพเมตริก", + "excludedMountsLabel": "การติดตั้งที่ไม่รวมอยู่ในเงื่อนไข", + "monitoredMountsLabel": "เส้นทางการตรวจสอบแบบกำหนดเอง", + "monitoredMountsDesc": "เพิ่มพาธที่ไม่ถูกเปิดเผยเป็นเมานต์แยกต่างหาก รวมถึงพาธ Home Assistant ที่เชื่อมต่อแบบ bind-mount เช่น /config", + "monitoredMountPathPlaceholder": "เส้นทาง (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "ป้ายกำกับ (ไม่บังคับ)", + "addMonitoredMount": "เพิ่มเส้นทาง", + "excludedMountsDesc": "ซ่อนจุดเชื่อมต่อหรือประเภทระบบไฟล์เฉพาะ (เช่น nfs, cifs) จากการใช้งานดิสก์และการแจ้งเตือนสำหรับโฮสต์นี้", + "excludedMountsPlaceholder": "เส้นทางการเชื่อมต่อ (/mnt/nas) หรือประเภทระบบไฟล์ (nfs, cifs)", + "excludedMountsEmpty": "ไม่มีการยกเว้นการเมานต์ใดๆ ระบบไฟล์ที่ตรวจพบทั้งหมดจะแสดงขึ้น", + "addExcludedMount": "เพิ่ม", + "visibleWidgets": "วิดเจ็ตที่มองเห็นได้", + "widgetsMovedToHostMetrics": "ขณะนี้สามารถเพิ่ม จัดเรียง และปรับขนาดการ์ดได้โดยตรงในแท็บเมตริกโฮสต์ เปิดเมตริกโฮสต์สำหรับโฮสต์นี้แล้วใช้ ปรับแต่ง เพื่อเลือกการ์ดที่จะแสดง", + "hostNotFound": "ไม่พบโฮสต์", + "loadingHost": "กำลังโหลดโฮสต์..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "ตัวชี้วัดและการแจ้งเตือน", + "feature_metrics_desc": "ติดตามการทำงานของ CPU หน่วยความจำ และดิสก์อย่างต่อเนื่อง และรับการแจ้งเตือนเมื่ออุปกรณ์เหล่านั้นเริ่มมีปัญหา" }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "การเก็บรักษาประวัติเมตริก", + "metricsHistoryRetentionRange": "1 ถึง 90 วัน", + "days": "วัน" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", - "metricCpu": "CPU", - "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", - "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "noData": "ไม่มีข้อมูล", + "showCurrentValue": "แสดงมูลค่าปัจจุบัน", + "chartMetric": "เมตริก", + "metricRange": "พิสัย", + "host": "เจ้าภาพ", + "loading": "กำลังโหลด...", + "metricCpu": "ซีพียู", + "metricDisk": "ดิสก์", + "metricHostname": "ชื่อโฮสต์", + "metricKernel": "เคอร์เนล", + "metricMemory": "หน่วยความจำ", + "metricNetwork": "เครือข่าย", + "metricOs": "โอเอส", + "metricProcesses": "กระบวนการ", + "metricProcessesRunning": "วิ่ง", + "metricProcessesTotal": "ทั้งหมด", + "metricUptime": "เวลาใช้งาน", + "metricsNotAvailable": "ข้อมูลตัวชี้วัดไม่พร้อมใช้งาน", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "selectHost": "เลือกโฮสต์..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "ไม่สามารถดูสถิติแบบเรียลไทม์ได้" }, "dashboard": { - "cpu": "CPU", - "ram": "RAM" + "cpu": "ซีพียู", + "ram": "แรม" }, "dashboardTab": { - "disk": "Disk" + "disk": "ดิสก์" }, "terminal": { - "connected": "Connected" + "connected": "เชื่อมต่อแล้ว" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "ใช้เมตริกโฮสต์", + "description": "ดูข้อมูลเมตริกของโฮสต์และใช้ตัวจัดการโฮสต์ (บริการ แพ็กเกจ ไฟร์วอลล์ และอื่นๆ) บนโฮสต์ที่คุณสามารถเข้าถึงได้" } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "ช่วงเวลาการวัด (วินาที)", + "description": "ความถี่ในการสุ่มตัวอย่างโฮสต์ที่กำลังถูกดู เว้นแต่ว่าโฮสต์จะกำหนดช่วงเวลาเอง" }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "ระยะเวลาการเก็บรักษาประวัติ (วัน)", + "description": "ข้อมูลตัวอย่างจะถูกเก็บไว้นานแค่ไหนสำหรับแผนภูมิประวัติ" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "เปิดใช้งานเมตริกสำหรับโฮสต์ใหม่", + "description": "ไม่ว่าโฮสต์ใหม่จะเริ่มต้นด้วยการเปิดใช้งานการรวบรวมข้อมูลเมตริกหรือไม่" } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "หน่วยอุณหภูมิ", + "description": "วิธีการแสดงอุณหภูมิใน Host Metrics", + "celsius": "เซลเซียส", + "fahrenheit": "ฟาเรนไฮต์" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "รวบรวมข้อมูลตัวชี้วัด" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "ช่วงเวลาการวัด (วินาที)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "วิดเจ็ตที่เปิดใช้งาน" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "การติดตั้งที่ไม่รวมอยู่ด้วย" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "เส้นทางที่ได้รับการตรวจสอบ" } } } diff --git a/plugins/host-metrics/locales/translated/tr_TR.json b/plugins/host-metrics/locales/translated/tr_TR.json index 94f79dc54..d1045a269 100644 --- a/plugins/host-metrics/locales/translated/tr_TR.json +++ b/plugins/host-metrics/locales/translated/tr_TR.json @@ -19,21 +19,21 @@ "cpuUsage": "CPU Kullanımı", "memoryUsage": "Bellek Kullanımı", "diskUsage": "Disk Kullanımı", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "Dosya sistemini seçin", "temperature": "Sıcaklık", "highestTemperature": "En yüksek sıcaklık", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "Birincil sensör", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "NVIDIA GPU algılanmadı. GPU ölçümlerini görmek için NVIDIA sürücüsünü (nvidia-smi içerir) yükleyin.", + "driver": "Sürücü {{version}}", + "utilization": "Kullanım", "memory": "VRAM", - "temperature": "Temp", - "power": "Power", + "temperature": "Geçici", + "power": "Güç", "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "processes": "GPU işlemleri", + "noProcesses": "GPU'yu kullanan hiçbir işlem yok." }, "failedToFetchHostConfig": "Host yapılandırması alınamadı", "serverOffline": "Sunucu Çevrimdışı", @@ -178,7 +178,7 @@ "wgLastHandshake": "Son el sıkışma", "wgHandshakeNever": "Hiçbir zaman", "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNoPeers": "Eşi benzeri yok" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "Sunucu geneli metrik aralığını geçersiz kıl", "metricsIntervalS": "Metrik Aralığı (sn)", "metricsIntervalDesc2": "Metrik anlık görüntüleri arasındaki saniye", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "Hariç Tutulan Montajlar", + "monitoredMountsLabel": "Özel olarak izlenen yollar", + "monitoredMountsDesc": "/config gibi Home Assistant'a bağlanan yollar da dahil olmak üzere, ayrı bağlama noktaları olarak gösterilmeyen yolları ekleyin.", + "monitoredMountPathPlaceholder": "Yol (/config, /mnt/data)", "monitoredMountLabelPlaceholder": "Etiket (isteğe bağlı)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "Yol ekle", + "excludedMountsDesc": "Bu sunucu için disk kullanımı ve uyarılarından belirli bağlama noktalarını veya dosya sistemi türlerini (örneğin nfs, cifs) gizleyin.", + "excludedMountsPlaceholder": "Bağlama yolu (/mnt/nas) veya dosya sistemi türü (nfs, cifs)", + "excludedMountsEmpty": "Hiçbir bağlama noktası hariç tutulmadı. Tespit edilen tüm dosya sistemleri gösteriliyor.", "addExcludedMount": "Ekle", "visibleWidgets": "Görünür Widget'lar", "widgetsMovedToHostMetrics": "Kartlar artık doğrudan Sunucu Metrikleri sekmesinde eklenir, düzenlenir ve yeniden boyutlandırılır. Bu sunucu için Sunucu Metrikleri'ni açın ve hangi kartların gösterileceğini seçmek için Özelleştir'i kullanın.", @@ -219,8 +219,8 @@ "loadingHost": "Host yükleniyor..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Ölçümler ve uyarılar", + "feature_metrics_desc": "İşlemci, bellek ve disk performansını zaman içinde takip edin ve arızalandıklarında uyarı alın." }, "admin": { "metricsHistoryRetention": "Metrik Geçmişi Saklama", @@ -250,7 +250,7 @@ "selectHost": "Bir sunucu seçin..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Canlı istatistikler mevcut değil." }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Ana Bilgisayar Metriklerini Kullanın", + "description": "Erişebildiğiniz sunuculardaki sunucu ölçümlerini görüntüleyin ve sunucu yöneticilerini (hizmetler, paketler, güvenlik duvarı ve daha fazlası) kullanın." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Ölçüm aralığı (saniye)", + "description": "Bir sunucunun ne sıklıkla görüntülendiği, sunucu kendi aralığını belirlemediği sürece bu şekilde gösterilir." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Geçmiş verilerin saklanma süresi (gün)", + "description": "Geçmiş grafikler için metrik örneklerinin ne kadar süreyle saklandığı." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Yeni sunucular için ölçümler açık.", + "description": "Yeni sunucuların ölçüm toplama özelliği açık olarak başlatılıp başlatılmadığı." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", + "label": "Sıcaklık birimi", + "description": "Host Metrics'te sıcaklıklar nasıl gösterilir?", + "celsius": "Santigrat", "fahrenheit": "Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Ölçümleri toplayın" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Ölçüm aralığı (saniye)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Etkinleştirilmiş widget'lar" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Hariç tutulan montajlar" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "İzlenen yollar" } } } diff --git a/plugins/host-metrics/locales/translated/uk_UA.json b/plugins/host-metrics/locales/translated/uk_UA.json index fc32b9c85..0e92f805f 100644 --- a/plugins/host-metrics/locales/translated/uk_UA.json +++ b/plugins/host-metrics/locales/translated/uk_UA.json @@ -1,311 +1,311 @@ { "nav": { - "hostMetrics": "Host Metrics" + "hostMetrics": "Метрики хоста" }, "hostMetrics": { - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "processes": "Processes", - "available": "Available", - "free": "Free", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to server", - "naCpus": "N/A CPU(s)", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "selectFilesystem": "Select filesystem", - "temperature": "Temperature", - "highestTemperature": "Highest temperature", - "primaryTemperatureSensor": "Primary sensor", + "cpu": "Процесор", + "memory": "Пам'ять", + "disk": "Диск", + "network": "Мережа", + "uptime": "Час безвідмовної роботи", + "processes": "Процеси", + "available": "Доступно", + "free": "Безкоштовно", + "connecting": "Підключення...", + "connectionFailed": "Не вдалося підключитися до сервера", + "naCpus": "Процесор(и) Немає даних", + "cpuCores_one": "{{count}} Ядро", + "cpuCores_other": "{{count}} Ядра", + "cpuUsage": "Використання процесора", + "memoryUsage": "Використання пам'яті", + "diskUsage": "Використання диска", + "selectFilesystem": "Виберіть файлову систему", + "temperature": "Температура", + "highestTemperature": "Найвища температура", + "primaryTemperatureSensor": "Первинний датчик", "gpu": { - "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "title": "Графічний процесор", + "noDevice": "Графічний процесор NVIDIA не виявлено. Встановіть драйвер NVIDIA (він надає nvidia-smi), щоб переглянути показники графічного процесора.", + "driver": "Водій {{version}}", + "utilization": "Використання", + "memory": "відеопам'ять", + "temperature": "Темп", + "power": "Потужність", + "fan": "Вентилятор", + "processes": "Процеси графічного процесора", + "noProcesses": "Жоден процес не використовує графічний процесор" }, - "failedToFetchHostConfig": "Failed to fetch host configuration", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpFailed": "TOTP verification failed", - "noneAuthNotSupported": "Host Metrics does not support 'none' authentication type.", - "noHostSelected": "No host selected", - "load": "Load", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "noProcessesFound": "No processes found", - "processesTotal": "total", - "processesRunning": "running", - "loginStats": "SSH Login Statistics", - "noRecentLoginData": "No recent login data", + "failedToFetchHostConfig": "Не вдалося отримати конфігурацію хоста", + "serverOffline": "Сервер офлайн", + "cannotFetchMetrics": "Не вдається отримати показники з офлайн-сервера", + "totpFailed": "Не вдалося перевірити TOTP", + "noneAuthNotSupported": "Метрики хоста не підтримують тип автентифікації «немає».", + "noHostSelected": "Хост не вибрано", + "load": "Навантаження", + "systemInfo": "Інформація про систему", + "hostname": "Ім'я хоста", + "operatingSystem": "Операційна система", + "kernel": "Ядро", + "seconds": "секунди", + "networkInterfaces": "Мережеві інтерфейси", + "noInterfacesFound": "Мережевих інтерфейсів не знайдено", + "noProcessesFound": "Процесів не знайдено", + "processesTotal": "загальна сума", + "processesRunning": "біг", + "loginStats": "Статистика входу SSH", + "noRecentLoginData": "Немає останніх даних для входу", "ports": { - "title": "Listening Ports", - "protocol": "Protocol", - "port": "Port", - "address": "Address", - "process": "Process", - "search": "Search ports...", - "allProtocols": "All", - "noData": "No listening ports data" + "title": "Порти прослуховування", + "protocol": "Протокол", + "port": "Порт", + "address": "Адреса", + "process": "Процес", + "search": "Пошук портів...", + "allProtocols": "Усі", + "noData": "Немає даних про порти прослуховування" }, "firewall": { - "title": "Firewall", - "inactive": "Inactive", - "policy": "Policy", - "rules": "rules", - "noRules": "No rules in this chain", - "noData": "No firewall data available", - "action": "Action", - "protocol": "Proto", - "port": "Port", - "source": "Source", - "anywhere": "Anywhere", - "chains": "chains" + "title": "Брандмауер", + "inactive": "Неактивний", + "policy": "Політика", + "rules": "правила", + "noRules": "У цьому ланцюжку немає правил", + "noData": "Дані брандмауера недоступні", + "action": "Дія", + "protocol": "Прото", + "port": "Порт", + "source": "Джерело", + "anywhere": "Будь-де", + "chains": "ланцюги" }, - "loadAvg": "Load Avg", - "swap": "Swap", - "architecture": "Architecture", - "refresh": "Refresh", - "retry": "Retry", - "customize": "Customize layout", - "reset": "Reset", - "tabLive": "Live", - "editModeInstructions": "Drag cards to rearrange, drag the bottom edge to resize, and use the width button to change a card's span. Add or remove cards below.", + "loadAvg": "Середнє навантаження", + "swap": "Обмін", + "architecture": "Архітектура", + "refresh": "Оновити", + "retry": "Повторити спробу", + "customize": "Налаштувати макет", + "reset": "Скинути", + "tabLive": "Живий", + "editModeInstructions": "Перетягуйте картки, щоб змінити порядок, перетягуйте нижній край, щоб змінити розмір, і скористайтеся кнопкою ширини, щоб змінити ширину картки. Додавайте або видаляйте картки нижче.", "managers": { - "services": "Services", - "processInspector": "Process Inspector", - "logViewer": "Log Viewer", - "cron": "Cron Jobs", - "packages": "Packages", - "ssl": "SSL Certificates", - "firewall": "Firewall", - "users": "Users & Permissions", - "healthCheck": "Health Checks", - "diskBreakdown": "Disk Breakdown", - "systemdTimers": "Timers", - "topMemory": "Top by Memory", - "noData": "No data", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "filter": "Filter...", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "actionDone": "{{name}} updated", - "actionFailed": "Action failed", - "signalSent": "Signal sent to PID {{pid}}", - "killHint": "Click: terminate (SIGTERM). Right-click: force kill (SIGKILL).", - "working": "Working...", - "update": "Update", - "upgradeAll": "Upgrade all", - "allUpToDate": "Everything is up to date", - "save": "Save", - "command": "Command", - "enabled": "Enabled", - "cronSaved": "Crontab updated", - "clients": "Clients", - "dryRun": "Dry run", - "renew": "Renew", - "noAcmeClient": "No ACME client (certbot or acme.sh) found on this host.", - "addInputRule": "Add INPUT rule", - "firewallWarning": "Changes are runtime-only until persisted. Be careful not to lock yourself out.", - "ruleApplied": "Rule applied", - "invalidPort": "Enter a valid port (1-65535)", - "newUsername": "New username", - "addUser": "Add", - "deleteUser": "Delete user", - "noHealthChecks": "No health checks configured yet.", - "follow": "Follow", - "noLogData": "No log output.", - "tree": "Tree", - "enableDisable": "Enable / disable at boot", - "grantSudo": "Grant sudo", - "revokeSudo": "Revoke sudo", - "sslIssueCert": "Issue certificate", - "sslExpired": "Expired", - "sslInDays": "in {{days}}d", - "sslNeedDomain": "Enter at least one domain", - "sslIssued": "Certificate issued", + "services": "Послуги", + "processInspector": "Інспектор процесів", + "logViewer": "Переглядач журналів", + "cron": "Cron-завдання", + "packages": "Пакети", + "ssl": "SSL-сертифікати", + "firewall": "Брандмауер", + "users": "Користувачі та дозволи", + "healthCheck": "Перевірки здоров'я", + "diskBreakdown": "Поломка диска", + "systemdTimers": "Таймери", + "topMemory": "Найкраще за пам'яттю", + "noData": "Немає даних", + "sudoHint": "Встановіть пароль sudo для цього хоста в редакторі хостів, щоб увімкнути привілейовані дії.", + "filter": "Фільтр...", + "start": "Початок", + "stop": "СТІЙ", + "restart": "Перезавантажити", + "actionDone": "{{name}} оновлено", + "actionFailed": "Дія не вдалася", + "signalSent": "Сигнал, що надсилається до ПІД-регулятора {{pid}}", + "killHint": "Клацніть: завершити (SIGTERM). Клацніть правою кнопкою миші: примусово завершити (SIGKILL).", + "working": "Працюємо...", + "update": "Оновлення", + "upgradeAll": "Оновити все", + "allUpToDate": "Все актуально", + "save": "Зберегти", + "command": "Команда", + "enabled": "Увімкнено", + "cronSaved": "Кронтаб оновлено", + "clients": "Клієнти", + "dryRun": "Сухий пробіг", + "renew": "Поновити", + "noAcmeClient": "На цьому хості не знайдено клієнта ACME (certbot або acme.sh).", + "addInputRule": "Додати правило INPUT", + "firewallWarning": "Зміни дійсні лише під час виконання, доки не будуть збережені. Будьте обережні, щоб не заблокувати себе.", + "ruleApplied": "Правило застосовано", + "invalidPort": "Введіть дійсний порт (1-65535)", + "newUsername": "Нове ім'я користувача", + "addUser": "Додати", + "deleteUser": "Видалити користувача", + "noHealthChecks": "Перевірки справності ще не налаштовано.", + "follow": "Стежити", + "noLogData": "Немає виводу журналу.", + "tree": "Дерево", + "enableDisable": "Увімкнути/вимкнути під час завантаження", + "grantSudo": "Грант sudo", + "revokeSudo": "Скасувати sudo", + "sslIssueCert": "Випуск сертифіката", + "sslExpired": "Термін дії минув", + "sslInDays": "у {{days}}днях", + "sslNeedDomain": "Введіть принаймні один домен", + "sslIssued": "Сертифікат видано", "sslDomainsPlaceholder": "example.com, www.example.com", - "sslHttpStandalone": "HTTP (standalone)", - "sslHttpWebroot": "HTTP (webroot)", - "sslDns": "DNS", - "sslDnsProvider": "DNS provider (e.g. cloudflare)", - "sslIssueHint": "DNS provider credentials must already be configured on the host.", - "sslRevoke": "Revoke certificate", - "sslRevoked": "Certificate revoked", - "sslRevokeConfirm": "Revoke and remove the certificate \"{{name}}\"? This cannot be undone.", - "healthRun": "Run", - "healthName": "Name", - "healthTarget": "Host / address", - "healthAddCheck": "Add check", - "healthSaved": "Health checks saved", - "healthMissingFields": "Each check needs a name and target", - "logFile": "File", - "logUnit": "Unit", - "logCustomPath": "Custom path under /var/log (optional)", - "logGrep": "Filter lines...", - "firewallPersist": "Persist rules", - "firewallPersisted": "Firewall rules persisted", + "sslHttpStandalone": "HTTP (автономний)", + "sslHttpWebroot": "HTTP (корінь веб-сайту)", + "sslDns": "ДНС", + "sslDnsProvider": "DNS-провайдер (наприклад, cloudflare)", + "sslIssueHint": "Облікові дані постачальника DNS вже мають бути налаштовані на хості.", + "sslRevoke": "Скасувати сертифікат", + "sslRevoked": "Сертифікат анульовано", + "sslRevokeConfirm": "Скасувати та видалити сертифікат \"{{name}}\"? Цю дію неможливо скасувати.", + "healthRun": "Бігти", + "healthName": "Ім'я", + "healthTarget": "Хост / адреса", + "healthAddCheck": "Додати чек", + "healthSaved": "Перевірки стану збережено", + "healthMissingFields": "Кожній перевірці потрібні ім'я та ціль", + "logFile": "Файл", + "logUnit": "Одиниця", + "logCustomPath": "Власний шлях до /var/log (необов'язково)", + "logGrep": "Фільтрувальні лінії...", + "firewallPersist": "Зберегти правила", + "firewallPersisted": "Правила брандмауера збереглися", "wireguard": "WireGuard", - "wgNotInstalled": "WireGuard is not installed on this host", - "wgNoInterfaces": "No WireGuard interfaces configured", - "wgInterfaceUp": "Bring up", - "wgInterfaceDown": "Bring down", - "wgBringingUp": "Bringing {{name}} up...", - "wgBringingDown": "Bringing {{name}} down...", - "wgInterfaceUpDone": "{{name}} is up", - "wgInterfaceDownDone": "{{name}} is down", - "wgListenPort": "Port", - "wgPublicKey": "Public key", - "wgEndpoint": "Endpoint", - "wgAllowedIPs": "Allowed IPs", - "wgLastHandshake": "Last handshake", - "wgHandshakeNever": "Never", - "wgTransfer": "Transfer", - "wgNoPeers": "No peers" + "wgNotInstalled": "WireGuard не встановлено на цьому хості", + "wgNoInterfaces": "Немає налаштованих інтерфейсів WireGuard", + "wgInterfaceUp": "Підніміть", + "wgInterfaceDown": "Збити", + "wgBringingUp": "Викликаємо {{name}}...", + "wgBringingDown": "Зниження {{name}}...", + "wgInterfaceUpDone": "{{name}} активовано", + "wgInterfaceDownDone": "{{name}} не працює", + "wgListenPort": "Порт", + "wgPublicKey": "Відкритий ключ", + "wgEndpoint": "Кінцева точка", + "wgAllowedIPs": "Дозволені IP-адреси", + "wgLastHandshake": "Останнє рукостискання", + "wgHandshakeNever": "Ніколи", + "wgTransfer": "Передача", + "wgNoPeers": "Немає однолітків" } }, "metricsHistory": { - "title": "Metrics History", - "historySuffix": "History", - "cpuMemoryDisk": "CPU / Memory / Disk", - "network": "Network", - "download": "RX", - "upload": "TX", - "noData": "No history data available for this time range.", - "custom": "Custom", - "to": "to", - "apply": "Apply", - "viewHistory": "View History" + "title": "Історія показників", + "historySuffix": "Історія", + "cpuMemoryDisk": "Процесор / Пам'ять / Диск", + "network": "Мережа", + "download": "Рецепт", + "upload": "Техас", + "noData": "Для цього періоду часу немає історичних даних.", + "custom": "Користувацька", + "to": "до", + "apply": "Застосувати", + "viewHistory": "Переглянути історію" }, "hosts": { - "tabHostMetrics": "Host Metrics", - "metricsCollectionLabel": "Metrics Collection", - "enableMetricsLabel": "Enable Metrics", - "enableMetricsDesc": "Collect CPU, RAM, disk, and other metrics from this host", - "useGlobalMetrics": "Use Global Interval", - "useGlobalMetricsDesc": "Override with the server-wide metrics interval", - "metricsIntervalS": "Metrics Interval (s)", - "metricsIntervalDesc2": "Seconds between metric snapshots", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", - "monitoredMountLabelPlaceholder": "Label (optional)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", - "addExcludedMount": "Add", - "visibleWidgets": "Visible Widgets", - "widgetsMovedToHostMetrics": "Cards are now added, arranged, and resized directly in the Host Metrics tab. Open Host Metrics for this host and use Customize to choose which cards are shown.", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tabHostMetrics": "Метрики хоста", + "metricsCollectionLabel": "Колекція показників", + "enableMetricsLabel": "Увімкнути метрики", + "enableMetricsDesc": "Збирати показники процесора, оперативної пам'яті, дискового простору та інші показники з цього хоста", + "useGlobalMetrics": "Використовувати глобальний інтервал", + "useGlobalMetricsDesc": "Перевизначити інтервалом показників на рівні сервера", + "metricsIntervalS": "Інтервал показників (и)", + "metricsIntervalDesc2": "Секунди між знімками показників", + "excludedMountsLabel": "Виключені маунти", + "monitoredMountsLabel": "Користувацькі контрольовані шляхи", + "monitoredMountsDesc": "Додайте шляхи, які не відображаються як окремі монтування, включаючи шляхи Home Assistant, змонтовані за допомогою прив’язки, такі як /config.", + "monitoredMountPathPlaceholder": "Шлях (/config, /mnt/data)", + "monitoredMountLabelPlaceholder": "Мітка (необов'язково)", + "addMonitoredMount": "Додати шлях", + "excludedMountsDesc": "Приховати певні точки монтування або типи файлових систем (наприклад, nfs, cifs) від використання диска та сповіщень для цього хоста.", + "excludedMountsPlaceholder": "Шлях монтування (/mnt/nas) або тип файлової системи (nfs, cifs)", + "excludedMountsEmpty": "Монтування не виключено. Відображаються всі виявлені файлові системи.", + "addExcludedMount": "Додати", + "visibleWidgets": "Видимі віджети", + "widgetsMovedToHostMetrics": "Тепер картки додаються, упорядковуються та змінюються за розміром безпосередньо на вкладці «Метрики хоста». Відкрийте «Метрики хоста» для цього хоста та скористайтеся функцією «Налаштувати», щоб вибрати, які картки відображатимуться.", + "hostNotFound": "Хост не знайдено", + "loadingHost": "Завантаження хоста..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Метрики та сповіщення", + "feature_metrics_desc": "Відстежуйте роботу процесора, пам'яті та диска з плином часу та отримуйте сповіщення, коли вони виходять з ладу." }, "admin": { - "metricsHistoryRetention": "Metrics History Retention", - "metricsHistoryRetentionRange": "1 to 90 days", - "days": "days" + "metricsHistoryRetention": "Збереження історії показників", + "metricsHistoryRetentionRange": "Від 1 до 90 днів", + "days": "дні" }, "homepage": { - "noData": "No data available", - "showCurrentValue": "Show Current Value", - "chartMetric": "Metric", - "metricRange": "Range", - "host": "Host", - "loading": "Loading...", - "metricCpu": "CPU", - "metricDisk": "Disk", - "metricHostname": "Hostname", - "metricKernel": "Kernel", - "metricMemory": "Memory", - "metricNetwork": "Network", - "metricOs": "OS", - "metricProcesses": "Processes", - "metricProcessesRunning": "running", - "metricProcessesTotal": "total", - "metricUptime": "Uptime", - "metricsNotAvailable": "Metrics not available", - "noHostSelected": "No host selected", - "selectHost": "Select a host..." + "noData": "Дані недоступні", + "showCurrentValue": "Показати поточне значення", + "chartMetric": "Метрика", + "metricRange": "Діапазон", + "host": "Хост", + "loading": "Завантаження...", + "metricCpu": "Процесор", + "metricDisk": "Диск", + "metricHostname": "Ім'я хоста", + "metricKernel": "Ядро", + "metricMemory": "Пам'ять", + "metricNetwork": "Мережа", + "metricOs": "ОС", + "metricProcesses": "Процеси", + "metricProcessesRunning": "біг", + "metricProcessesTotal": "загальна сума", + "metricUptime": "Час безвідмовної роботи", + "metricsNotAvailable": "Метрики недоступні", + "noHostSelected": "Хост не вибрано", + "selectHost": "Виберіть хоста..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Статистика в реальному часі недоступна" }, "dashboard": { - "cpu": "CPU", - "ram": "RAM" + "cpu": "Процесор", + "ram": "Оперативна пам'ять" }, "dashboardTab": { - "disk": "Disk" + "disk": "Диск" }, "terminal": { - "connected": "Connected" + "connected": "Підключено" }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Використовуйте метрики хоста", + "description": "Переглядайте показники хоста та використовуйте менеджери хоста (служби, пакети, брандмауер тощо) на хостах, до яких ви маєте доступ." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Інтервал показників (секунди)", + "description": "Як часто переглядається вибірка хоста, якщо хост не встановлює власний інтервал." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Збереження історії (дні)", + "description": "Як довго зберігаються зразки показників для історичних діаграм." }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Метрики для нових хостів", + "description": "Чи нові хости починають роботу з увімкненим збором метрик." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "Одиниця вимірювання температури", + "description": "Як відображаються температури в Host Metrics.", + "celsius": "Цельсій", + "fahrenheit": "Фаренгейт" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Збирати показники" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Інтервал показників (секунди)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Увімкнені віджети" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Виключені кріплення" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Контрольовані шляхи" } } } diff --git a/plugins/host-metrics/locales/translated/vi_VN.json b/plugins/host-metrics/locales/translated/vi_VN.json index e1d0c918a..14032f85a 100644 --- a/plugins/host-metrics/locales/translated/vi_VN.json +++ b/plugins/host-metrics/locales/translated/vi_VN.json @@ -19,21 +19,21 @@ "cpuUsage": "Mức sử dụng CPU", "memoryUsage": "Mức sử dụng bộ nhớ", "diskUsage": "Mức sử dụng ổ đĩa", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "Chọn hệ thống tệp", "temperature": "Nhiệt độ", "highestTemperature": "Nhiệt độ cao nhất", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "Cảm biến chính", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", + "noDevice": "Không phát hiện thấy GPU NVIDIA. Hãy cài đặt trình điều khiển NVIDIA (nó cung cấp lệnh nvidia-smi) để xem các thông số GPU.", + "driver": "Tài xế {{version}}", + "utilization": "Sử dụng", "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "temperature": "Nhiệt độ", + "power": "Quyền lực", + "fan": "Cái quạt", + "processes": "Các quy trình GPU", + "noProcesses": "Hiện không có tiến trình nào đang sử dụng GPU." }, "failedToFetchHostConfig": "Không tải được cấu hình máy chủ", "serverOffline": "Máy chủ ngoại tuyến", @@ -178,7 +178,7 @@ "wgLastHandshake": "Lần bắt tay cuối", "wgHandshakeNever": "Chưa bao giờ", "wgTransfer": "Truyền tải", - "wgNoPeers": "No peers" + "wgNoPeers": "Không có đồng nghiệp" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "Ghi đè bằng khoảng thời gian thu thập số liệu toàn máy chủ", "metricsIntervalS": "Khoảng thu thập số liệu (giây)", "metricsIntervalDesc2": "Số giây giữa các lần chụp số liệu", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "Giá đỡ bị loại trừ", + "monitoredMountsLabel": "Đường dẫn được giám sát tùy chỉnh", + "monitoredMountsDesc": "Thêm các đường dẫn không được hiển thị dưới dạng các điểm gắn kết riêng biệt, bao gồm cả các đường dẫn Home Assistant được gắn kết bằng bind, chẳng hạn như /config.", + "monitoredMountPathPlaceholder": "Đường dẫn (/config, /mnt/data)", "monitoredMountLabelPlaceholder": "Nhãn (tùy chọn)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "Thêm đường dẫn", + "excludedMountsDesc": "Ẩn các điểm gắn kết hoặc loại hệ thống tập tin cụ thể (ví dụ: nfs, cifs) khỏi thông tin sử dụng ổ đĩa và cảnh báo cho máy chủ này.", + "excludedMountsPlaceholder": "Đường dẫn gắn kết (/mnt/nas) hoặc loại hệ thống tệp (nfs, cifs)", + "excludedMountsEmpty": "Không có điểm gắn kết nào bị loại trừ. Tất cả các hệ thống tập tin được phát hiện đều được hiển thị.", "addExcludedMount": "Thêm", "visibleWidgets": "Widget hiển thị", "widgetsMovedToHostMetrics": "Các thẻ hiện được thêm, sắp xếp và thay đổi kích thước trực tiếp trong tab Số liệu máy. Mở Số liệu máy cho máy này và dùng Tùy chỉnh để chọn thẻ hiển thị.", @@ -219,8 +219,8 @@ "loadingHost": "Đang tải máy chủ..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "Số liệu và cảnh báo", + "feature_metrics_desc": "Theo dõi hiệu năng CPU, bộ nhớ và ổ đĩa theo thời gian, và nhận cảnh báo khi chúng gặp sự cố." }, "admin": { "metricsHistoryRetention": "Thời gian lưu trữ lịch sử số liệu", @@ -250,7 +250,7 @@ "selectHost": "Chọn máy chủ..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "Số liệu thống kê trực tiếp không khả dụng" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "Sử dụng số liệu máy chủ", + "description": "Xem số liệu thống kê của máy chủ và sử dụng trình quản lý máy chủ (dịch vụ, gói phần mềm, tường lửa, v.v.) trên các máy chủ mà bạn có thể truy cập." } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "Khoảng thời gian đo (giây)", + "description": "Tần suất lấy mẫu của một máy chủ đang được xem, trừ khi máy chủ đó tự thiết lập khoảng thời gian lấy mẫu riêng." }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "Thời gian lưu trữ lịch sử (ngày)", + "description": "Thời gian lưu giữ mẫu số liệu cho biểu đồ lịch sử là bao lâu?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "Số liệu thống kê dành cho máy chủ mới", + "description": "Liệu các máy chủ mới có bắt đầu với tính năng thu thập số liệu được bật hay không." } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "Đơn vị nhiệt độ", + "description": "Cách hiển thị nhiệt độ trong Host Metrics.", + "celsius": "Độ C", + "fahrenheit": "Độ Fahrenheit" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "Thu thập số liệu" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "Khoảng thời gian đo (giây)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "Các tiện ích đã được bật" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "Các giá đỡ bị loại trừ" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "Các tuyến đường được giám sát" } } } diff --git a/plugins/host-metrics/locales/translated/zh_CN.json b/plugins/host-metrics/locales/translated/zh_CN.json index 79f0af809..3016e315d 100644 --- a/plugins/host-metrics/locales/translated/zh_CN.json +++ b/plugins/host-metrics/locales/translated/zh_CN.json @@ -19,21 +19,21 @@ "cpuUsage": "CPU 使用率", "memoryUsage": "内存使用率", "diskUsage": "磁盘使用率", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "选择文件系统", "temperature": "温度", "highestTemperature": "最高温度", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "主传感器", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "noDevice": "未检测到NVIDIA GPU。请安装NVIDIA驱动程序(它提供nvidia-smi)以查看GPU指标。", + "driver": "司机 {{version}}", + "utilization": "利用率", + "memory": "显存", + "temperature": "温度", + "power": "力量", + "fan": "扇子", + "processes": "GPU 进程", + "noProcesses": "没有进程正在使用 GPU" }, "failedToFetchHostConfig": "获取主机配置失败", "serverOffline": "服务器离线", @@ -178,7 +178,7 @@ "wgLastHandshake": "上次握手", "wgHandshakeNever": "从未", "wgTransfer": "传输", - "wgNoPeers": "No peers" + "wgNoPeers": "没有对手" } }, "metricsHistory": { @@ -204,14 +204,14 @@ "metricsIntervalS": "指标间隔(秒)", "metricsIntervalDesc2": "指标快照之间的秒数", "excludedMountsLabel": "排除的挂载点", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "monitoredMountsLabel": "自定义监控路径", + "monitoredMountsDesc": "添加未作为单独挂载点公开的路径,包括绑定挂载的 Home Assistant 路径,例如 /config。", + "monitoredMountPathPlaceholder": "路径(/config,/mnt/data)", "monitoredMountLabelPlaceholder": "标签(可选)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "添加路径", + "excludedMountsDesc": "隐藏此主机磁盘使用情况和警报中的特定挂载点或文件系统类型(例如 nfs、cifs)。", + "excludedMountsPlaceholder": "挂载路径(/mnt/nas)或文件系统类型(nfs、cifs)", + "excludedMountsEmpty": "未排除任何挂载点。显示所有检测到的文件系统。", "addExcludedMount": "添加", "visibleWidgets": "可见小部件", "widgetsMovedToHostMetrics": "卡片现在可在“主机指标”选项卡中直接添加、排列和调整大小。打开此主机的“主机指标”,使用“自定义”选择要显示的卡片。", @@ -250,7 +250,7 @@ "selectHost": "选择主机..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "实时统计数据不可用" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "使用主机指标", + "description": "查看主机指标并使用您可以访问的主机上的主机管理器(服务、软件包、防火墙等)。" } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "指标间隔(秒)", + "description": "除非主机自行设置间隔,否则将对正在查看的主机进行采样的频率。" }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "历史数据保留时间(天)", + "description": "历史图表中的指标样本保留多长时间?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "新主机指标", + "description": "新主机是否默认开启指标收集功能。" } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "温度单位", + "description": "主机指标中如何显示温度。", + "celsius": "摄氏度", + "fahrenheit": "华氏度" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "收集指标" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "指标间隔(秒)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "已启用的小部件" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "排除的安装点" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "监控路径" } } } diff --git a/plugins/host-metrics/locales/translated/zh_TW.json b/plugins/host-metrics/locales/translated/zh_TW.json index 13f292bf0..42e0b10cc 100644 --- a/plugins/host-metrics/locales/translated/zh_TW.json +++ b/plugins/host-metrics/locales/translated/zh_TW.json @@ -19,21 +19,21 @@ "cpuUsage": "CPU 使用率", "memoryUsage": "記憶體使用率", "diskUsage": "磁碟使用率", - "selectFilesystem": "Select filesystem", + "selectFilesystem": "選擇檔案系統", "temperature": "溫度", "highestTemperature": "最高溫度", - "primaryTemperatureSensor": "Primary sensor", + "primaryTemperatureSensor": "主感應器", "gpu": { "title": "GPU", - "noDevice": "No NVIDIA GPU detected. Install the NVIDIA driver (it provides nvidia-smi) to see GPU metrics.", - "driver": "Driver {{version}}", - "utilization": "Utilization", - "memory": "VRAM", - "temperature": "Temp", - "power": "Power", - "fan": "Fan", - "processes": "GPU processes", - "noProcesses": "No processes are using the GPU" + "noDevice": "未偵測到NVIDIA GPU。請安裝NVIDIA驅動程式(它提供nvidia-smi)以查看GPU指標。", + "driver": "司機 {{version}}", + "utilization": "使用率", + "memory": "顯存", + "temperature": "溫度", + "power": "力量", + "fan": "扇子", + "processes": "GPU 行程", + "noProcesses": "沒有進程正在使用 GPU" }, "failedToFetchHostConfig": "無法取得主機設定", "serverOffline": "伺服器離線", @@ -178,7 +178,7 @@ "wgLastHandshake": "上次交握", "wgHandshakeNever": "從未", "wgTransfer": "傳輸", - "wgNoPeers": "No peers" + "wgNoPeers": "沒有對手" } }, "metricsHistory": { @@ -203,15 +203,15 @@ "useGlobalMetricsDesc": "以伺服器範圍的指標間隔覆寫", "metricsIntervalS": "指標間隔(秒)", "metricsIntervalDesc2": "每次指標快照之間的秒數", - "excludedMountsLabel": "Excluded Mounts", - "monitoredMountsLabel": "Custom monitored paths", - "monitoredMountsDesc": "Add paths that are not exposed as separate mounts, including bind-mounted Home Assistant paths such as /config.", - "monitoredMountPathPlaceholder": "Path (/config, /mnt/data)", + "excludedMountsLabel": "排除的安裝", + "monitoredMountsLabel": "自訂監控路徑", + "monitoredMountsDesc": "新增未以單獨掛載點公開的路徑,包括綁定掛載的 Home Assistant 路徑,例如 /config。", + "monitoredMountPathPlaceholder": "路徑(/config,/mnt/data)", "monitoredMountLabelPlaceholder": "標籤(選填)", - "addMonitoredMount": "Add path", - "excludedMountsDesc": "Hide specific mount points or filesystem types (e.g. nfs, cifs) from disk usage and alerts for this host.", - "excludedMountsPlaceholder": "Mount path (/mnt/nas) or filesystem type (nfs, cifs)", - "excludedMountsEmpty": "No mounts excluded. All detected filesystems are shown.", + "addMonitoredMount": "新增路徑", + "excludedMountsDesc": "隱藏此主機磁碟使用情況和警報中的特定掛載點或檔案系統類型(例如 nfs、cifs)。", + "excludedMountsPlaceholder": "掛載路徑(/mnt/nas)或檔案系統類型(nfs、cifs)", + "excludedMountsEmpty": "未排除任何掛載點。顯示所有偵測到的檔案系統。", "addExcludedMount": "新增", "visibleWidgets": "可見的小工具", "widgetsMovedToHostMetrics": "現在卡片可直接在主機指標分頁中新增、排列和調整大小。開啟此主機的主機指標,然後使用自訂功能選擇要顯示的卡片。", @@ -219,8 +219,8 @@ "loadingHost": "正在載入主機..." }, "onboarding": { - "feature_metrics": "Metrics and alerts", - "feature_metrics_desc": "Track CPU, memory and disk over time, and get alerted when they go bad." + "feature_metrics": "指標和警報", + "feature_metrics_desc": "追蹤 CPU、記憶體和磁碟的運作情況,並在它們出現故障時發出警報。" }, "admin": { "metricsHistoryRetention": "指標歷史保留", @@ -250,7 +250,7 @@ "selectHost": "選擇主機..." }, "terminalStatus": { - "unavailable": "Live stats unavailable" + "unavailable": "即時統計數據不可用" }, "dashboard": { "cpu": "CPU", @@ -264,48 +264,48 @@ }, "permissions": { "use": { - "title": "Use Host Metrics", - "description": "View host metrics and use the host managers (services, packages, firewall and more) on hosts you can reach." + "title": "使用主機指標", + "description": "查看主機指標並使用您可以存取的主機上的主機管理器(服務、軟體包、防火牆等)。" } }, "settings": { "admin": { "metricsInterval": { - "label": "Metrics interval (seconds)", - "description": "How often a host being viewed is sampled, unless the host sets its own interval." + "label": "指標間隔(秒)", + "description": "除非主機自行設定間隔,否則將對正在查看的主機進行取樣的頻率。" }, "historyRetentionDays": { - "label": "History retention (days)", - "description": "How long metrics samples are kept for the history charts." + "label": "歷史資料保留時間(天)", + "description": "歷史圖表中的指標樣本保留多久?" }, "enabledForNewHosts": { - "label": "Metrics on for new hosts", - "description": "Whether new hosts start with metrics collection turned on." + "label": "新主機指標", + "description": "新主機是否預設開啟指標收集功能。" } }, "user": { "temperatureUnit": { - "label": "Temperature unit", - "description": "How temperatures are shown in Host Metrics.", - "celsius": "Celsius", - "fahrenheit": "Fahrenheit" + "label": "溫度單位", + "description": "主機指標中如何顯示溫度。", + "celsius": "攝氏度", + "fahrenheit": "華氏度" } }, "host": { "metricsEnabled": { - "label": "Collect metrics" + "label": "收集指標" }, "metricsInterval": { - "label": "Metrics interval (seconds)" + "label": "指標間隔(秒)" }, "enabledWidgets": { - "label": "Enabled widgets" + "label": "已啟用的小工具" }, "excludedMounts": { - "label": "Excluded mounts" + "label": "排除的安裝點" }, "monitoredMounts": { - "label": "Monitored paths" + "label": "監控路徑" } } } diff --git a/plugins/ldap/locales/translated/bn_BD.json b/plugins/ldap/locales/translated/bn_BD.json index cf754c641..d37c62aeb 100644 --- a/plugins/ldap/locales/translated/bn_BD.json +++ b/plugins/ldap/locales/translated/bn_BD.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "LDAP দিয়ে সাইন ইন করুন", + "loginWithProvider": "{{name}} দিয়ে লগইন করুন", + "loading": "লোড হচ্ছে...", + "requiredField": "এই ক্ষেত্রটি আবশ্যক", + "username": "LDAP ব্যবহারকারীর নাম", + "password": "এলডিএপি পাসওয়ার্ড", + "signIn": "সাইন ইন করুন", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "LDAP ডিরেক্টরিগুলি পরিচালনা করুন", + "description": "ব্যবহারকারীরা যে LDAP ডিরেক্টরিগুলো দিয়ে সাইন ইন করতে পারবেন, সেগুলো যোগ করুন, পরিবর্তন করুন এবং মুছে ফেলুন।" } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "নথি দেখুন", + "none": "কোনো LDAP ডিরেক্টরি কনফিগার করা নেই।", + "add": "ডিরেক্টরি যোগ করুন", + "edit": "ডিরেক্টরি সম্পাদনা করুন", + "delete": "ডিরেক্টরি মুছুন", + "deleteConfirm": "এই ডিরেক্টরিটি মুছে ফেললে, যারা এটি দিয়ে সাইন ইন করবেন তারা আর লগ ইন করতে পারবেন না।", + "name": "প্রদর্শনের নাম", + "namePlaceholder": "কোম্পানির ডিরেক্টরি", + "nameRequired": "একটি প্রদর্শনের নাম প্রয়োজন", + "enabled": "সক্ষম করা হয়েছে", + "save": "ডিরেক্টরি সংরক্ষণ করুন", + "saving": "সঞ্চয়...", + "saved": "সংরক্ষিত", + "saveFailed": "সংরক্ষণ করতে ব্যর্থ হয়েছে", + "deleted": "মুছে ফেলা হয়েছে", + "deleteFailed": "মুছে ফেলতে ব্যর্থ হয়েছে", + "loadFailed": "LDAP ডিরেক্টরি লোড করতে ব্যর্থ হয়েছে", + "cancel": "বাতিল করুন" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "host": "এলডিএপি হোস্ট", + "port": "বন্দর", + "useTls": "TLS (LDAPS) ব্যবহার করুন", + "bindDn": "ডিএনকে আবদ্ধ করুন", + "bindPassword": "পাসওয়ার্ড সংযুক্ত করুন", + "secretKeep": "একটি পাসওয়ার্ড সংরক্ষিত হয়েছে। এটি রাখতে চাইলে এই স্থানটি খালি রাখুন।", + "userSearchBase": "ব্যবহারকারী অনুসন্ধান ভিত্তি", + "userSearchFilter": "ব্যবহারকারী অনুসন্ধান ফিল্টার", + "usernameAttr": "ব্যবহারকারীর নাম অ্যাট্রিবিউট", + "displayNameAttr": "ডিসপ্লে নেম অ্যাট্রিবিউট", + "groupSearchBase": "গ্রুপ অনুসন্ধান ভিত্তি", + "adminGroup": "অ্যাডমিন গ্রুপ", + "allowedUsers": "অনুমোদিত ব্যবহারকারী" } } diff --git a/plugins/ldap/locales/translated/hi_IN.json b/plugins/ldap/locales/translated/hi_IN.json index 2b88319e6..09522f1df 100644 --- a/plugins/ldap/locales/translated/hi_IN.json +++ b/plugins/ldap/locales/translated/hi_IN.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "LDAP के साथ साइन इन करें", "loginWithProvider": "{{name}} से लॉगिन करें", "loading": "लोड हो रहा है...", "requiredField": "यह फ़ील्ड आवश्यक है", @@ -8,28 +8,28 @@ "signIn": "साइन इन करें", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "LDAP निर्देशिकाओं का प्रबंधन करें", + "description": "उन LDAP डायरेक्टरी को जोड़ें, बदलें और हटाएं जिनका उपयोग लोग साइन इन करने के लिए कर सकते हैं।" } }, "providers": { "docsLink": "दस्तावेज़ देखें", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "कोई LDAP डायरेक्टरी कॉन्फ़िगर नहीं की गई है।", + "add": "निर्देशिका जोड़ें", + "edit": "निर्देशिका संपादित करें", + "delete": "निर्देशिका हटाएं", + "deleteConfirm": "क्या इस डायरेक्टरी को हटा दें? इसके माध्यम से साइन इन करने वाले उपयोगकर्ता लॉग इन नहीं कर पाएंगे।", "name": "प्रदर्शन नाम", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "कंपनी निर्देशिका", + "nameRequired": "एक डिस्प्ले नाम आवश्यक है", "enabled": "सक्षम", - "save": "Save Directory", + "save": "निर्देशिका सहेजें", "saving": "सहेजा जा रहा है...", "saved": "सहेजा गया", "saveFailed": "सहेजने में विफल", "deleted": "हटाया गया", "deleteFailed": "हटाने में विफल", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "LDAP निर्देशिकाओं को लोड करने में विफल", "cancel": "रद्द करें" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "TLS (LDAPS) का उपयोग करें", "bindDn": "Bind DN", "bindPassword": "Bind पासवर्ड", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "पासवर्ड सेव हो गया है। इसे सेव रखने के लिए इसे खाली छोड़ दें।", "userSearchBase": "उपयोगकर्ता खोज आधार", "userSearchFilter": "उपयोगकर्ता खोज फ़िल्टर", "usernameAttr": "उपयोगकर्ता नाम विशेषता", diff --git a/plugins/ldap/locales/translated/id_ID.json b/plugins/ldap/locales/translated/id_ID.json index cf754c641..f3aa8104d 100644 --- a/plugins/ldap/locales/translated/id_ID.json +++ b/plugins/ldap/locales/translated/id_ID.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "Masuk menggunakan LDAP", + "loginWithProvider": "Masuk dengan {{name}}", + "loading": "Memuat...", + "requiredField": "Kolom ini wajib diisi.", + "username": "Nama Pengguna LDAP", + "password": "Kata Sandi LDAP", + "signIn": "Masuk", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Kelola direktori LDAP", + "description": "Menambah, mengubah, dan menghapus direktori LDAP yang dapat digunakan orang untuk masuk." } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "Lihat dokumen", + "none": "Tidak ada direktori LDAP yang dikonfigurasi.", + "add": "Tambahkan Direktori", + "edit": "Edit Direktori", + "delete": "Hapus Direktori", + "deleteConfirm": "Hapus direktori ini? Pengguna yang masuk melalui direktori ini tidak akan dapat masuk.", + "name": "Nama Tampilan", + "namePlaceholder": "Direktori perusahaan", + "nameRequired": "Nama tampilan wajib diisi.", + "enabled": "Diaktifkan", + "save": "Simpan Direktori", + "saving": "Penghematan...", + "saved": "Tersimpan", + "saveFailed": "Gagal menyimpan", + "deleted": "Dihapus", + "deleteFailed": "Gagal menghapus", + "loadFailed": "Gagal memuat direktori LDAP", + "cancel": "Membatalkan" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "host": "Host LDAP", + "port": "Pelabuhan", + "useTls": "Gunakan TLS (LDAPS)", + "bindDn": "Ikat DN", + "bindPassword": "Kata Sandi Terikat", + "secretKeep": "Kata sandi telah tersimpan. Biarkan kosong untuk menyimpannya.", + "userSearchBase": "Basis Pencarian Pengguna", + "userSearchFilter": "Filter Pencarian Pengguna", + "usernameAttr": "Atribut Nama Pengguna", + "displayNameAttr": "Atribut Nama Tampilan", + "groupSearchBase": "Basis Pencarian Grup", + "adminGroup": "Grup Admin", + "allowedUsers": "Pengguna yang Diizinkan" } } diff --git a/plugins/ldap/locales/translated/no_NO.json b/plugins/ldap/locales/translated/no_NO.json index 5106f94b4..dbd212c0b 100644 --- a/plugins/ldap/locales/translated/no_NO.json +++ b/plugins/ldap/locales/translated/no_NO.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", + "loginWithLdap": "Logg inn med LDAP", + "loginWithProvider": "Logg inn med {{name}}", "loading": "Laster...", "requiredField": "Dette feltet er obligatorisk", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "username": "LDAP-brukernavn", + "password": "LDAP-passord", + "signIn": "Logg inn", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Administrer LDAP-kataloger", + "description": "Legg til, endre og fjern LDAP-katalogene som folk kan logge på med." } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "docsLink": "Vis dokumenter", + "none": "Ingen LDAP-kataloger er konfigurert.", + "add": "Legg til katalog", + "edit": "Rediger katalog", + "delete": "Slett katalog", + "deleteConfirm": "Vil du slette denne katalogen? Brukere som logger på med den, vil ikke kunne logge på.", + "name": "Visningsnavn", + "namePlaceholder": "Firmakatalog", + "nameRequired": "Et visningsnavn er obligatorisk", "enabled": "Aktivert", - "save": "Save Directory", + "save": "Lagre katalog", "saving": "Lagrer...", - "saved": "Saved", + "saved": "Lagret", "saveFailed": "Kunne ikke lagre", - "deleted": "Deleted", + "deleted": "Slettet", "deleteFailed": "Kunne ikke slette", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Kunne ikke laste inn LDAP-kataloger", "cancel": "Avbryt" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", + "host": "LDAP-vert", + "port": "Havn", + "useTls": "Bruk TLS (LDAPS)", "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "bindPassword": "Bind passord", + "secretKeep": "Et passord er lagret. La dette feltet stå tomt for å beholde det.", + "userSearchBase": "Brukersøkbase", + "userSearchFilter": "Brukersøkfilter", + "usernameAttr": "Brukernavnattributt", + "displayNameAttr": "Visningsnavnattributt", + "groupSearchBase": "Gruppesøkbase", + "adminGroup": "Admingruppe", + "allowedUsers": "Tillatte brukere" } } diff --git a/plugins/ldap/locales/translated/pl_PL.json b/plugins/ldap/locales/translated/pl_PL.json index 7f3dbb736..a07f4825d 100644 --- a/plugins/ldap/locales/translated/pl_PL.json +++ b/plugins/ldap/locales/translated/pl_PL.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "Zaloguj się za pomocą LDAP", "loginWithProvider": "Zaloguj się za pomocą {{name}}", "loading": "Ładowanie...", "requiredField": "To pole jest wymagane", @@ -8,28 +8,28 @@ "signIn": "Zaloguj się", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Zarządzaj katalogami LDAP", + "description": "Dodawaj, zmieniaj i usuwaj katalogi LDAP, do których użytkownicy mogą się logować." } }, "providers": { "docsLink": "Zobacz dokumentację", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "Nie skonfigurowano żadnych katalogów LDAP.", + "add": "Dodaj katalog", + "edit": "Edytuj katalog", + "delete": "Usuń katalog", + "deleteConfirm": "Usunąć ten katalog? Użytkownicy, którzy się do niego zalogują, nie będą mogli się zalogować.", "name": "Nazwa wyświetlana", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "Katalog firm", + "nameRequired": "Wymagana jest nazwa wyświetlana", "enabled": "Włączona", - "save": "Save Directory", + "save": "Zapisz katalog", "saving": "Zapisywanie...", "saved": "Zapisano", "saveFailed": "Nie udało się zapisać", "deleted": "Usunięto", "deleteFailed": "Nie udało się usunąć", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Nie udało się załadować katalogów LDAP", "cancel": "Anuluj" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "Użyj TLS (LDAPS)", "bindDn": "Bind DN", "bindPassword": "Hasło Bind", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "Hasło zostało zapisane. Pozostaw to pole puste, aby je zachować.", "userSearchBase": "Baza wyszukiwania użytkowników", "userSearchFilter": "Filtr wyszukiwania użytkownika", "usernameAttr": "Atrybut nazwy użytkownika", diff --git a/plugins/ldap/locales/translated/pt_BR.json b/plugins/ldap/locales/translated/pt_BR.json index 6f15f231d..fcd307dac 100644 --- a/plugins/ldap/locales/translated/pt_BR.json +++ b/plugins/ldap/locales/translated/pt_BR.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", + "loginWithLdap": "Entrar com LDAP", + "loginWithProvider": "Faça login com {{name}}", "loading": "Carregando...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "requiredField": "Este campo é obrigatório", + "username": "Nome de usuário LDAP", + "password": "Senha LDAP", + "signIn": "Entrar", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Gerenciar diretórios LDAP", + "description": "Adicione, altere e remova os diretórios LDAP com os quais as pessoas podem fazer login." } }, "providers": { "docsLink": "Documentação", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", + "none": "Nenhum diretório LDAP configurado.", + "add": "Adicionar diretório", + "edit": "Editar diretório", + "delete": "Excluir diretório", + "deleteConfirm": "Excluir este diretório? Os usuários que fizerem login com ele não poderão mais acessar sua conta.", + "name": "Nome de exibição", + "namePlaceholder": "Diretório de empresas", + "nameRequired": "É necessário um nome de exibição.", + "enabled": "Habilitado", + "save": "Salvar diretório", "saving": "Salvando...", "saved": "Salvo", "saveFailed": "Falha ao salvar", "deleted": "Apagado", "deleteFailed": "Falha ao apagar", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Falha ao carregar os diretórios LDAP.", "cancel": "Cancelar" }, "fields": { - "host": "LDAP Host", + "host": "Host LDAP", "port": "Porta", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "useTls": "Usar TLS (LDAPS)", + "bindDn": "Vincular DN", + "bindPassword": "Senha de vinculação", + "secretKeep": "Uma senha foi salva. Deixe este campo em branco para mantê-la.", + "userSearchBase": "Base de pesquisa de usuários", + "userSearchFilter": "Filtro de pesquisa do usuário", + "usernameAttr": "Atributo de nome de usuário", + "displayNameAttr": "Atributo de nome de exibição", + "groupSearchBase": "Base de pesquisa de grupo", + "adminGroup": "Grupo de Administração", + "allowedUsers": "Usuários autorizados" } } diff --git a/plugins/ldap/locales/translated/pt_PT.json b/plugins/ldap/locales/translated/pt_PT.json index 95374c91d..ec94c7b04 100644 --- a/plugins/ldap/locales/translated/pt_PT.json +++ b/plugins/ldap/locales/translated/pt_PT.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "Entrar com LDAP", "loginWithProvider": "Iniciar sessão com {{name}}", "loading": "A carregar...", "requiredField": "Este campo é obrigatório", @@ -8,28 +8,28 @@ "signIn": "Iniciar sessão", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Gerir diretórios LDAP", + "description": "Adicione, altere e remova os diretórios LDAP com os quais as pessoas podem iniciar sessão." } }, "providers": { "docsLink": "Ver docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "Nenhum diretório LDAP configurado.", + "add": "Adicionar diretório", + "edit": "Editar diretório", + "delete": "Apagar diretório", + "deleteConfirm": "Apagar este diretório? Os utilizadores que fizerem login com ele já não poderão aceder à sua conta.", "name": "Nome de exibição", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "Diretório de empresas", + "nameRequired": "É necessário um nome de utilizador.", "enabled": "Ativado", - "save": "Save Directory", + "save": "Guardar diretório", "saving": "A guardar...", "saved": "Guardado", "saveFailed": "Falha ao guardar", "deleted": "Eliminado", "deleteFailed": "Falha ao eliminar", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Falha ao carregar os diretórios LDAP.", "cancel": "Cancelar" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "Usar TLS (LDAPS)", "bindDn": "Bind DN", "bindPassword": "Palavra-passe de Bind", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "Uma palavra-passe foi guardada. Deixe este campo em branco para a manter.", "userSearchBase": "Base de pesquisa de utilizadores", "userSearchFilter": "Filtro de pesquisa de utilizadores", "usernameAttr": "Atributo de nome de utilizador", diff --git a/plugins/ldap/locales/translated/ru_RU.json b/plugins/ldap/locales/translated/ru_RU.json index 757ba6537..31ff90cdd 100644 --- a/plugins/ldap/locales/translated/ru_RU.json +++ b/plugins/ldap/locales/translated/ru_RU.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "Вход через LDAP", "loginWithProvider": "Войти через {{name}}", "loading": "Загрузка...", "requiredField": "Обязательное поле", @@ -8,28 +8,28 @@ "signIn": "Войти", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Управление каталогами LDAP", + "description": "Добавляйте, изменяйте и удаляйте каталоги LDAP, через которые пользователи могут входить в систему." } }, "providers": { "docsLink": "Документация", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "Каталоги LDAP не настроены.", + "add": "Добавить каталог", + "edit": "Редактировать каталог", + "delete": "Удалить каталог", + "deleteConfirm": "Удалить этот каталог? Пользователи, которые войдут в систему с его помощью, не смогут авторизоваться.", "name": "Отображаемое имя", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "Справочник компаний", + "nameRequired": "Необходимо указать отображаемое имя.", "enabled": "Включено", - "save": "Save Directory", + "save": "Сохранить каталог", "saving": "Сохранение…", "saved": "Сохранено", "saveFailed": "Не удалось сохранить", "deleted": "Удалено", "deleteFailed": "Не удалось удалить", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Не удалось загрузить каталоги LDAP.", "cancel": "Отмена" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "Использовать TLS (LDAPS)", "bindDn": "Bind DN", "bindPassword": "Пароль привязки", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "Пароль сохранен. Оставьте это поле пустым, чтобы сохранить его.", "userSearchBase": "База поиска пользователей", "userSearchFilter": "Фильтр поиска пользователей", "usernameAttr": "Атрибут имени пользователя", diff --git a/plugins/ldap/locales/translated/sr_SP.json b/plugins/ldap/locales/translated/sr_SP.json index cf754c641..550b31152 100644 --- a/plugins/ldap/locales/translated/sr_SP.json +++ b/plugins/ldap/locales/translated/sr_SP.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "Пријавите се помоћу LDAP-а", + "loginWithProvider": "Пријавите се са {{name}}", + "loading": "Учитавање...", + "requiredField": "Ово поље је обавезно", + "username": "LDAP корисничко име", + "password": "LDAP лозинка", + "signIn": "Пријавите се", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Управљање LDAP директоријумима", + "description": "Додајте, промените и уклоните LDAP директоријуме помоћу којих се људи могу пријавити." } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "Прикажи документе", + "none": "Није конфигурисан ниједан LDAP директоријум.", + "add": "Додај директоријум", + "edit": "Уреди директоријум", + "delete": "Обриши директоријум", + "deleteConfirm": "Да ли желите да обришете овај директоријум? Корисници који се пријаве помоћу њега неће моћи да се пријаве.", + "name": "Приказано име", + "namePlaceholder": "Именик компанија", + "nameRequired": "Потребно је приказано име", + "enabled": "Омогућено", + "save": "Сачувај директоријум", + "saving": "Чување...", + "saved": "Сачувано", + "saveFailed": "Чување није успело", + "deleted": "Избрисано", + "deleteFailed": "Брисање није успело", + "loadFailed": "Учитавање LDAP директоријума није успело", + "cancel": "Откажи" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "host": "LDAP хост", + "port": "Лука", + "useTls": "Користите TLS (LDAPS)", + "bindDn": "Повезивање DN-а", + "bindPassword": "Повезивање лозинке", + "secretKeep": "Лозинка је сачувана. Оставите ово празно да бисте је задржали.", + "userSearchBase": "База претраге корисника", + "userSearchFilter": "Филтер за претрагу корисника", + "usernameAttr": "Атрибут корисничког имена", + "displayNameAttr": "Атрибут приказаног имена", + "groupSearchBase": "База групне претраге", + "adminGroup": "Администраторска група", + "allowedUsers": "Дозвољени корисници" } } diff --git a/plugins/ldap/locales/translated/sv_SE.json b/plugins/ldap/locales/translated/sv_SE.json index cf754c641..e7d66c6d1 100644 --- a/plugins/ldap/locales/translated/sv_SE.json +++ b/plugins/ldap/locales/translated/sv_SE.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "Logga in med LDAP", + "loginWithProvider": "Logga in med {{name}}", + "loading": "Belastning...", + "requiredField": "Detta fält är obligatoriskt", + "username": "LDAP-användarnamn", + "password": "LDAP-lösenord", + "signIn": "Logga in", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Hantera LDAP-kataloger", + "description": "Lägg till, ändra och ta bort LDAP-kataloger som personer kan logga in med." } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "Visa dokument", + "none": "Inga LDAP-kataloger har konfigurerats.", + "add": "Lägg till katalog", + "edit": "Redigera katalog", + "delete": "Ta bort katalog", + "deleteConfirm": "Vill du ta bort den här katalogen? Användare som loggar in med den kommer inte att kunna logga in.", + "name": "Visningsnamn", + "namePlaceholder": "Företagskatalog", + "nameRequired": "Ett visningsnamn krävs", + "enabled": "Aktiverad", + "save": "Spara katalog", + "saving": "Sparande...", + "saved": "Sparad", + "saveFailed": "Misslyckades med att spara", + "deleted": "Borttagen", + "deleteFailed": "Misslyckades med att radera", + "loadFailed": "Misslyckades med att läsa in LDAP-kataloger", + "cancel": "Avboka" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", + "host": "LDAP-värd", + "port": "Hamn", + "useTls": "Använd TLS (LDAPS)", "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "bindPassword": "Bind lösenord", + "secretKeep": "Ett lösenord har sparats. Lämna detta tomt för att behålla det.", + "userSearchBase": "Användarsökningsbas", + "userSearchFilter": "Användarsökningsfilter", + "usernameAttr": "Användarnamnsattribut", + "displayNameAttr": "Attribut för visningsnamn", + "groupSearchBase": "Gruppsökningsbas", + "adminGroup": "Administratörsgrupp", + "allowedUsers": "Tillåtna användare" } } diff --git a/plugins/ldap/locales/translated/th_TH.json b/plugins/ldap/locales/translated/th_TH.json index cf754c641..25e82d75b 100644 --- a/plugins/ldap/locales/translated/th_TH.json +++ b/plugins/ldap/locales/translated/th_TH.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "ลงชื่อเข้าใช้ด้วย LDAP", + "loginWithProvider": "เข้าสู่ระบบด้วย {{name}}", + "loading": "กำลังโหลด...", + "requiredField": "ช่องนี้จำเป็นต้องกรอก", + "username": "ชื่อผู้ใช้ LDAP", + "password": "รหัสผ่าน LDAP", + "signIn": "เข้าสู่ระบบ", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "จัดการไดเร็กทอรี LDAP", + "description": "เพิ่ม เปลี่ยนแปลง และลบไดเร็กทอรี LDAP ที่ผู้ใช้สามารถลงชื่อเข้าใช้ได้" } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "ดูเอกสาร", + "none": "ไม่มีการกำหนดค่าไดเร็กทอรี LDAP ไว้", + "add": "เพิ่มไดเร็กทอรี", + "edit": "แก้ไขไดเร็กทอรี", + "delete": "ลบไดเร็กทอรี", + "deleteConfirm": "ลบไดเร็กทอรีนี้หรือไม่? ผู้ใช้ที่ลงชื่อเข้าใช้ด้วยไดเร็กทอรีนี้จะไม่สามารถเข้าสู่ระบบได้", + "name": "ชื่อที่แสดง", + "namePlaceholder": "รายชื่อบริษัท", + "nameRequired": "จำเป็นต้องระบุชื่อที่แสดง", + "enabled": "เปิดใช้งาน", + "save": "บันทึกไดเร็กทอรี", + "saving": "ประหยัด...", + "saved": "บันทึกแล้ว", + "saveFailed": "บันทึกไม่สำเร็จ", + "deleted": "ลบแล้ว", + "deleteFailed": "ลบไม่สำเร็จ", + "loadFailed": "ไม่สามารถโหลดไดเร็กทอรี LDAP ได้", + "cancel": "ยกเลิก" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "host": "โฮสต์ LDAP", + "port": "ท่าเรือ", + "useTls": "ใช้ TLS (LDAPS)", + "bindDn": "ผูก DN", + "bindPassword": "รหัสผ่านผูกมัด", + "secretKeep": "รหัสผ่านถูกบันทึกไว้แล้ว หากต้องการบันทึกรหัสผ่าน ให้เว้นช่องนี้ว่างไว้", + "userSearchBase": "ฐานการค้นหาผู้ใช้", + "userSearchFilter": "ตัวกรองการค้นหาผู้ใช้", + "usernameAttr": "คุณลักษณะชื่อผู้ใช้", + "displayNameAttr": "คุณลักษณะชื่อที่แสดง", + "groupSearchBase": "ฐานการค้นหากลุ่ม", + "adminGroup": "กลุ่มผู้ดูแลระบบ", + "allowedUsers": "ผู้ใช้ที่ได้รับอนุญาต" } } diff --git a/plugins/ldap/locales/translated/tr_TR.json b/plugins/ldap/locales/translated/tr_TR.json index 2b321e105..6957bfff3 100644 --- a/plugins/ldap/locales/translated/tr_TR.json +++ b/plugins/ldap/locales/translated/tr_TR.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "LDAP ile giriş yap", "loginWithProvider": "{{name}} ile giriş yap", "loading": "Yükleniyor...", "requiredField": "Bu alan zorunludur", @@ -8,28 +8,28 @@ "signIn": "Oturum Aç", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "LDAP dizinlerini yönetin", + "description": "Kullanıcıların oturum açabileceği LDAP dizinlerini ekleyin, değiştirin ve kaldırın." } }, "providers": { "docsLink": "Belgelere bak", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "Hiçbir LDAP dizini yapılandırılmamış.", + "add": "Dizin Ekle", + "edit": "Dizin Düzenle", + "delete": "Dizini Sil", + "deleteConfirm": "Bu dizini silmek ister misiniz? Bu dizinle giriş yapan kullanıcılar artık giriş yapamayacaklar.", "name": "Görünen Ad", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "Şirket dizini", + "nameRequired": "Görünen ad gereklidir.", "enabled": "Etkin", - "save": "Save Directory", + "save": "Kaydet", "saving": "Kaydediliyor...", "saved": "Kaydedildi", "saveFailed": "Kaydedilemedi", "deleted": "Silindi", "deleteFailed": "Silinemedi", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "LDAP dizinleri yüklenemedi.", "cancel": "İptal" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "TLS Kullan (LDAPS)", "bindDn": "Bind DN", "bindPassword": "Bind Parolası", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "Parola kaydedildi. Parolayı saklamak için bu alanı boş bırakın.", "userSearchBase": "Kullanıcı Arama Tabanı", "userSearchFilter": "Kullanıcı Arama Süzgeci", "usernameAttr": "Kullanıcı Adı Özniteliği", diff --git a/plugins/ldap/locales/translated/uk_UA.json b/plugins/ldap/locales/translated/uk_UA.json index cf754c641..4f3d4ce03 100644 --- a/plugins/ldap/locales/translated/uk_UA.json +++ b/plugins/ldap/locales/translated/uk_UA.json @@ -1,50 +1,50 @@ { - "loginWithLdap": "Sign in with LDAP", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", - "requiredField": "This field is required", - "username": "LDAP Username", - "password": "LDAP Password", - "signIn": "Sign In", + "loginWithLdap": "Увійти за допомогою LDAP", + "loginWithProvider": "Увійти за допомогою {{name}}", + "loading": "Завантаження...", + "requiredField": "Це поле обов'язкове", + "username": "Ім'я користувача LDAP", + "password": "Пароль LDAP", + "signIn": "Увійти", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Керування каталогами LDAP", + "description": "Додавайте, змінюйте та видаляйте каталоги LDAP, за допомогою яких користувачі можуть входити в систему." } }, "providers": { - "docsLink": "View docs", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", - "name": "Display Name", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", - "enabled": "Enabled", - "save": "Save Directory", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load LDAP directories", - "cancel": "Cancel" + "docsLink": "Переглянути документи", + "none": "Не налаштовано жодних каталогів LDAP.", + "add": "Додати каталог", + "edit": "Редагувати каталог", + "delete": "Видалити каталог", + "deleteConfirm": "Видалити цей каталог? Користувачі, які ввійдуть за його допомогою, не зможуть увійти.", + "name": "Відображуване ім'я", + "namePlaceholder": "Довідник компаній", + "nameRequired": "Потрібне відображуване ім'я", + "enabled": "Увімкнено", + "save": "Зберегти каталог", + "saving": "Збереження...", + "saved": "Збережено", + "saveFailed": "Не вдалося зберегти", + "deleted": "Видалено", + "deleteFailed": "Не вдалося видалити", + "loadFailed": "Не вдалося завантажити каталоги LDAP", + "cancel": "Скасувати" }, "fields": { - "host": "LDAP Host", - "port": "Port", - "useTls": "Use TLS (LDAPS)", - "bindDn": "Bind DN", - "bindPassword": "Bind Password", - "secretKeep": "A password is saved. Leave this empty to keep it.", - "userSearchBase": "User Search Base", - "userSearchFilter": "User Search Filter", - "usernameAttr": "Username Attribute", - "displayNameAttr": "Display Name Attribute", - "groupSearchBase": "Group Search Base", - "adminGroup": "Admin Group", - "allowedUsers": "Allowed Users" + "host": "Хост LDAP", + "port": "Порт", + "useTls": "Використовувати TLS (LDAPS)", + "bindDn": "Прив'язане DN", + "bindPassword": "Прив’язати пароль", + "secretKeep": "Пароль збережено. Залиште це поле порожнім, щоб зберегти його.", + "userSearchBase": "База пошуку користувачів", + "userSearchFilter": "Фільтр пошуку користувачів", + "usernameAttr": "Атрибут імені користувача", + "displayNameAttr": "Атрибут відображуваного імені", + "groupSearchBase": "База групового пошуку", + "adminGroup": "Група адміністраторів", + "allowedUsers": "Дозволені користувачі" } } diff --git a/plugins/ldap/locales/translated/vi_VN.json b/plugins/ldap/locales/translated/vi_VN.json index 5476e1d9a..d4e872fce 100644 --- a/plugins/ldap/locales/translated/vi_VN.json +++ b/plugins/ldap/locales/translated/vi_VN.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "Đăng nhập bằng LDAP", "loginWithProvider": "Đăng nhập bằng {{name}}", "loading": "Đang tải...", "requiredField": "Trường này là bắt buộc", @@ -8,28 +8,28 @@ "signIn": "Đăng nhập", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "Quản lý thư mục LDAP", + "description": "Thêm, thay đổi và xóa các thư mục LDAP mà người dùng có thể sử dụng để đăng nhập." } }, "providers": { "docsLink": "Xem tài liệu", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "Chưa có thư mục LDAP nào được cấu hình.", + "add": "Thêm thư mục", + "edit": "Chỉnh sửa thư mục", + "delete": "Xóa thư mục", + "deleteConfirm": "Xóa thư mục này? Người dùng đăng nhập bằng thư mục này sẽ không thể đăng nhập được nữa.", "name": "Tên hiển thị", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "Danh bạ công ty", + "nameRequired": "Tên hiển thị là bắt buộc", "enabled": "Đã bật", - "save": "Save Directory", + "save": "Lưu thư mục", "saving": "Đang lưu...", "saved": "Đã lưu", "saveFailed": "Không thể lưu", "deleted": "Đã xóa", "deleteFailed": "Không thể xóa", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "Không thể tải thư mục LDAP.", "cancel": "Hủy" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "Dùng TLS (LDAPS)", "bindDn": "Bind DN", "bindPassword": "Mật khẩu Bind", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "Mật khẩu đã được lưu. Hãy để trống phần này để giữ nguyên.", "userSearchBase": "Cơ sở tìm kiếm người dùng", "userSearchFilter": "Bộ lọc tìm kiếm người dùng", "usernameAttr": "Thuộc tính tên người dùng", diff --git a/plugins/ldap/locales/translated/zh_CN.json b/plugins/ldap/locales/translated/zh_CN.json index 2724d8745..33c50672e 100644 --- a/plugins/ldap/locales/translated/zh_CN.json +++ b/plugins/ldap/locales/translated/zh_CN.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "使用 LDAP 登录", "loginWithProvider": "使用{{name}}登录", "loading": "加载中...", "requiredField": "此字段为必填项", @@ -8,28 +8,28 @@ "signIn": "登录", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "管理 LDAP 目录", + "description": "添加、更改和删除用户可用于登录的 LDAP 目录。" } }, "providers": { "docsLink": "查看文档", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "未配置 LDAP 目录。", + "add": "添加目录", + "edit": "编辑目录", + "delete": "删除目录", + "deleteConfirm": "删除此目录?使用此目录登录的用户将无法登录。", "name": "显示名称", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "公司名录", + "nameRequired": "必须填写显示名称。", "enabled": "已启用", - "save": "Save Directory", + "save": "保存目录", "saving": "保存中...", "saved": "已保存", "saveFailed": "保存失败", "deleted": "已删除", "deleteFailed": "删除失败", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "LDAP 目录加载失败", "cancel": "取消" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "使用 TLS (LDAPS)", "bindDn": "绑定 DN", "bindPassword": "绑定密码", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "密码已保存。留空则不保存。", "userSearchBase": "用户搜索基准", "userSearchFilter": "用户搜索过滤器", "usernameAttr": "用户名属性", diff --git a/plugins/ldap/locales/translated/zh_TW.json b/plugins/ldap/locales/translated/zh_TW.json index 15564c31b..1c7cd4e52 100644 --- a/plugins/ldap/locales/translated/zh_TW.json +++ b/plugins/ldap/locales/translated/zh_TW.json @@ -1,5 +1,5 @@ { - "loginWithLdap": "Sign in with LDAP", + "loginWithLdap": "使用 LDAP 登入", "loginWithProvider": "使用 {{name}} 登入", "loading": "載入中...", "requiredField": "此欄位為必填", @@ -8,28 +8,28 @@ "signIn": "登入", "permissions": { "manage": { - "title": "Manage LDAP directories", - "description": "Add, change and remove the LDAP directories people can sign in with." + "title": "管理 LDAP 目錄", + "description": "新增、變更和刪除使用者可用於登入的 LDAP 目錄。" } }, "providers": { "docsLink": "檢視文件", - "none": "No LDAP directories configured.", - "add": "Add Directory", - "edit": "Edit Directory", - "delete": "Delete Directory", - "deleteConfirm": "Delete this directory? Users who sign in with it will not be able to log in.", + "none": "未配置 LDAP 目錄。", + "add": "新增目錄", + "edit": "編輯目錄", + "delete": "刪除目錄", + "deleteConfirm": "刪除此目錄?使用此目錄登入的使用者將無法登入。", "name": "顯示名稱", - "namePlaceholder": "Company directory", - "nameRequired": "A display name is required", + "namePlaceholder": "公司名錄", + "nameRequired": "必須填寫顯示名稱。", "enabled": "已啟用", - "save": "Save Directory", + "save": "儲存目錄", "saving": "儲存中…", "saved": "已儲存", "saveFailed": "儲存失敗", "deleted": "已刪除", "deleteFailed": "刪除失敗", - "loadFailed": "Failed to load LDAP directories", + "loadFailed": "LDAP 目錄載入失敗", "cancel": "取消" }, "fields": { @@ -38,7 +38,7 @@ "useTls": "使用 TLS (LDAPS)", "bindDn": "綁定 DN", "bindPassword": "綁定密碼", - "secretKeep": "A password is saved. Leave this empty to keep it.", + "secretKeep": "密碼已儲存。留空則不保存。", "userSearchBase": "使用者搜尋基底", "userSearchFilter": "使用者搜尋篩選器", "usernameAttr": "使用者名稱屬性", diff --git a/plugins/network-topology/locales/translated/bn_BD.json b/plugins/network-topology/locales/translated/bn_BD.json index a27badca9..b7310d59a 100644 --- a/plugins/network-topology/locales/translated/bn_BD.json +++ b/plugins/network-topology/locales/translated/bn_BD.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", - "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "addHost": "হোস্ট যোগ করুন", + "addGroup": "গ্রুপ যোগ করুন", + "addLink": "লিঙ্ক যোগ করুন", + "zoomIn": "জুম ইন", + "zoomOut": "জুম আউট", + "resetView": "দৃশ্য রিসেট করুন", + "selectHost": "হোস্ট নির্বাচন করুন", + "chooseHost": "একজন হোস্ট বেছে নিন...", + "parentGroup": "অভিভাবক গোষ্ঠী", + "noGroup": "কোন গ্রুপ নেই", + "groupName": "গ্রুপের নাম", + "color": "রঙ", + "source": "উৎস", + "target": "লক্ষ্য", + "moveToGroup": "গ্রুপে যান", + "selectGroup": "দল নির্বাচন করুন...", + "addConnection": "সংযোগ যোগ করুন", + "hostDetails": "হোস্টের বিবরণ", + "removeFromGroup": "গ্রুপ থেকে অপসারণ করুন", + "addHostHere": "এখানে হোস্ট যোগ করুন", + "editGroup": "সম্পাদনা গ্রুপ", + "delete": "মুছে ফেলুন", + "add": "যোগ করুন", + "create": "তৈরি করুন", + "move": "স্থানান্তর", + "connect": "সংযোগ করুন", + "createGroup": "গ্রুপ তৈরি করুন", + "selectSourcePlaceholder": "উৎস নির্বাচন করুন...", + "selectTargetPlaceholder": "লক্ষ্য নির্বাচন করুন...", + "invalidFile": "অবৈধ ফাইল", + "hostAlreadyExists": "হোস্ট ইতিমধ্যে টপোলজিতে আছে", + "connectionExists": "সংযোগটি ইতিমধ্যেই বিদ্যমান আছে", + "unknown": "অজানা", + "name": "নাম", + "ip": "আইপি", + "status": "অবস্থা", + "failedToAddNode": "নোড যোগ করতে ব্যর্থ হয়েছে", + "sourceDifferentFromTarget": "উৎস এবং লক্ষ্য অবশ্যই ভিন্ন হতে হবে", + "exportJSON": "JSON রপ্তানি করুন", + "importJSON": "JSON আমদানি করুন", + "serverStats": "হোস্ট মেট্রিক্স", + "noNodes": "এখনো কোনো নোড নেই" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "নেটওয়ার্ক গ্রাফ" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "নেটওয়ার্ক গ্রাফ" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} নোড" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "নেটওয়ার্ক গ্রাফ ব্যবহার করুন", + "description": "নেটওয়ার্ক টপোলজি গ্রাফটি দেখুন এবং সম্পাদনা করুন।" } }, "hosts": { - "docsLink": "View docs" + "docsLink": "নথি দেখুন" } } diff --git a/plugins/network-topology/locales/translated/hi_IN.json b/plugins/network-topology/locales/translated/hi_IN.json index d00d90f24..96735ea3c 100644 --- a/plugins/network-topology/locales/translated/hi_IN.json +++ b/plugins/network-topology/locales/translated/hi_IN.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "नेटवर्क ग्राफ़ का उपयोग करें", + "description": "नेटवर्क टोपोलॉजी ग्राफ को देखें और संपादित करें।" } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/id_ID.json b/plugins/network-topology/locales/translated/id_ID.json index a27badca9..9fbeb332c 100644 --- a/plugins/network-topology/locales/translated/id_ID.json +++ b/plugins/network-topology/locales/translated/id_ID.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", + "addHost": "Tambahkan Host", + "addGroup": "Tambahkan Grup", + "addLink": "Tambahkan Tautan", + "zoomIn": "Perbesar", + "zoomOut": "Perkecil tampilan", + "resetView": "Atur Ulang Tampilan", + "selectHost": "Pilih Host", + "chooseHost": "Pilih tuan rumah...", + "parentGroup": "Kelompok Orang Tua", + "noGroup": "Tidak Ada Grup", + "groupName": "Nama Grup", + "color": "Warna", + "source": "Sumber", "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", + "moveToGroup": "Pindah ke Grup", + "selectGroup": "Pilih grup...", + "addConnection": "Tambahkan Koneksi", + "hostDetails": "Detail Tuan Rumah", + "removeFromGroup": "Hapus dari Grup", + "addHostHere": "Tambahkan Host di Sini", + "editGroup": "Grup Pengeditan", + "delete": "Menghapus", + "add": "Menambahkan", + "create": "Membuat", + "move": "Bergerak", + "connect": "Menghubungkan", + "createGroup": "Buat Grup", + "selectSourcePlaceholder": "Pilih Sumber...", + "selectTargetPlaceholder": "Pilih Target...", + "invalidFile": "Berkas tidak valid", + "hostAlreadyExists": "Host sudah ada dalam topologi.", + "connectionExists": "Koneksi sudah ada.", + "unknown": "Tidak dikenal", + "name": "Nama", + "ip": "AKU P", "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "failedToAddNode": "Gagal menambahkan node", + "sourceDifferentFromTarget": "Sumber dan target harus berbeda.", + "exportJSON": "Ekspor JSON", + "importJSON": "Impor JSON", + "serverStats": "Metrik Host", + "noNodes": "Belum ada node" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "Grafik Jaringan" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "Grafik Jaringan" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} node" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Gunakan grafik jaringan.", + "description": "Lihat dan edit grafik topologi jaringan." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Lihat dokumen" } } diff --git a/plugins/network-topology/locales/translated/no_NO.json b/plugins/network-topology/locales/translated/no_NO.json index 6eda87c20..f61368d1c 100644 --- a/plugins/network-topology/locales/translated/no_NO.json +++ b/plugins/network-topology/locales/translated/no_NO.json @@ -1,64 +1,64 @@ { "networkGraph": { "addHost": "Legg til vert", - "addGroup": "Add Group", - "addLink": "Add Link", + "addGroup": "Legg til gruppe", + "addLink": "Legg til lenke", "zoomIn": "Zoom inn", "zoomOut": "Zoom ut", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", + "resetView": "Tilbakestill visning", + "selectHost": "Velg vert", + "chooseHost": "Velg en vert...", + "parentGroup": "Foreldregruppe", + "noGroup": "Ingen gruppe", + "groupName": "Gruppenavn", + "color": "Farge", + "source": "Kilde", + "target": "Mål", + "moveToGroup": "Flytt til gruppe", + "selectGroup": "Velg gruppe...", + "addConnection": "Legg til tilkobling", + "hostDetails": "Vertsdetaljer", + "removeFromGroup": "Fjern fra gruppen", + "addHostHere": "Legg til vert her", + "editGroup": "Rediger gruppe", "delete": "Slett", "add": "Legg til", - "create": "Create", + "create": "Skape", "move": "Flytt", "connect": "Koble til", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", + "createGroup": "Opprett gruppe", + "selectSourcePlaceholder": "Velg kilde...", + "selectTargetPlaceholder": "Velg mål...", + "invalidFile": "Ugyldig fil", + "hostAlreadyExists": "Verten er allerede i topologien", + "connectionExists": "Tilkoblingen finnes allerede", "unknown": "Ukjent", "name": "Navn", - "ip": "IP", + "ip": "IP-adresse", "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", + "failedToAddNode": "Kunne ikke legge til node", + "sourceDifferentFromTarget": "Kilde og mål må være forskjellige", + "exportJSON": "Eksporter JSON", "importJSON": "Importer JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "serverStats": "Vertsmålinger", + "noNodes": "Ingen noder ennå" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "Nettverksgraf" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "Nettverksgraf" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} noder" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Bruk nettverksgrafen", + "description": "Vis og rediger nettverkstopologigrafen." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Vis dokumenter" } } diff --git a/plugins/network-topology/locales/translated/pl_PL.json b/plugins/network-topology/locales/translated/pl_PL.json index 2168ab1bb..1bc589f61 100644 --- a/plugins/network-topology/locales/translated/pl_PL.json +++ b/plugins/network-topology/locales/translated/pl_PL.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Użyj grafu sieciowego", + "description": "Przeglądaj i edytuj wykres topologii sieci." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/pt_BR.json b/plugins/network-topology/locales/translated/pt_BR.json index 6f7d9ddb7..901385a26 100644 --- a/plugins/network-topology/locales/translated/pt_BR.json +++ b/plugins/network-topology/locales/translated/pt_BR.json @@ -1,47 +1,47 @@ { "networkGraph": { "addHost": "Adicionar host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", + "addGroup": "Adicionar grupo", + "addLink": "Adicionar link", + "zoomIn": "Ampliar", + "zoomOut": "Diminuir o zoom", + "resetView": "Redefinir visualização", + "selectHost": "Selecione o host", + "chooseHost": "Escolha um anfitrião...", + "parentGroup": "Grupo de Pais", + "noGroup": "Nenhum grupo", + "groupName": "Nome do grupo", + "color": "Cor", + "source": "Fonte", + "target": "Alvo", + "moveToGroup": "Mover para o grupo", + "selectGroup": "Selecione o grupo...", + "addConnection": "Adicionar conexão", + "hostDetails": "Detalhes do anfitrião", + "removeFromGroup": "Remover do grupo", + "addHostHere": "Adicione o host aqui", + "editGroup": "Editar grupo", "delete": "Apagar", "add": "Adicionar", "create": "Criar", - "move": "Move", + "move": "Mover", "connect": "Conectar", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", + "createGroup": "Criar grupo", + "selectSourcePlaceholder": "Selecione a fonte...", + "selectTargetPlaceholder": "Selecione o alvo...", + "invalidFile": "Arquivo inválido", + "hostAlreadyExists": "O host já está na topologia.", + "connectionExists": "A conexão já existe.", + "unknown": "Desconhecido", + "name": "Nome", "ip": "IP", "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", + "failedToAddNode": "Falha ao adicionar nó", + "sourceDifferentFromTarget": "A origem e o destino devem ser diferentes.", + "exportJSON": "Exportar JSON", + "importJSON": "Importar JSON", "serverStats": "Métricas do Host", - "noNodes": "No nodes yet" + "noNodes": "Ainda não há nós." }, "nav": { "networkGraph": "Gráfico da Rede" @@ -50,12 +50,12 @@ "networkGraph": "Gráfico da Rede" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} nós" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Utilize o gráfico de rede.", + "description": "Visualize e edite o gráfico da topologia da rede." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/pt_PT.json b/plugins/network-topology/locales/translated/pt_PT.json index bcfe9f01d..fc6065c68 100644 --- a/plugins/network-topology/locales/translated/pt_PT.json +++ b/plugins/network-topology/locales/translated/pt_PT.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Utilize o gráfico de rede.", + "description": "Visualize e edite o gráfico da topologia da rede." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/ru_RU.json b/plugins/network-topology/locales/translated/ru_RU.json index 7d4ece1b8..20b040c27 100644 --- a/plugins/network-topology/locales/translated/ru_RU.json +++ b/plugins/network-topology/locales/translated/ru_RU.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Используйте сетевой граф", + "description": "Просмотр и редактирование графа топологии сети." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/sr_SP.json b/plugins/network-topology/locales/translated/sr_SP.json index a27badca9..8599d450a 100644 --- a/plugins/network-topology/locales/translated/sr_SP.json +++ b/plugins/network-topology/locales/translated/sr_SP.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", - "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "addHost": "Додај хоста", + "addGroup": "Додај групу", + "addLink": "Додај линк", + "zoomIn": "Увећај", + "zoomOut": "Умањи", + "resetView": "Ресетуј приказ", + "selectHost": "Изаберите хост", + "chooseHost": "Изаберите домаћина...", + "parentGroup": "Матична група", + "noGroup": "Нема групе", + "groupName": "Назив групе", + "color": "Боја", + "source": "Извор", + "target": "Циљ", + "moveToGroup": "Премести у групу", + "selectGroup": "Изаберите групу...", + "addConnection": "Додај везу", + "hostDetails": "Детаљи домаћина", + "removeFromGroup": "Уклони из групе", + "addHostHere": "Додај хост овде", + "editGroup": "Уреди групу", + "delete": "Обриши", + "add": "Додај", + "create": "Креирај", + "move": "Помери", + "connect": "Повежи се", + "createGroup": "Направи групу", + "selectSourcePlaceholder": "Изаберите извор...", + "selectTargetPlaceholder": "Изаберите циљ...", + "invalidFile": "Неважећа датотека", + "hostAlreadyExists": "Хост је већ у топологији", + "connectionExists": "Веза већ постоји", + "unknown": "Непознато", + "name": "Име", + "ip": "ИП", + "status": "Статус", + "failedToAddNode": "Додавање чвора није успело", + "sourceDifferentFromTarget": "Извор и циљ морају бити различити", + "exportJSON": "Извези JSON", + "importJSON": "Увези JSON", + "serverStats": "Метрике хоста", + "noNodes": "Још нема чворова" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "Мрежни графикон" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "Мрежни графикон" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} чворова" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Користите мрежни графикон", + "description": "Прегледајте и уредите графикон топологије мреже." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Прикажи документе" } } diff --git a/plugins/network-topology/locales/translated/sv_SE.json b/plugins/network-topology/locales/translated/sv_SE.json index a27badca9..072efe105 100644 --- a/plugins/network-topology/locales/translated/sv_SE.json +++ b/plugins/network-topology/locales/translated/sv_SE.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", + "addHost": "Lägg till värd", + "addGroup": "Lägg till grupp", + "addLink": "Lägg till länk", + "zoomIn": "Zooma in", + "zoomOut": "Zooma ut", + "resetView": "Återställ vy", + "selectHost": "Välj värd", + "chooseHost": "Välj en värd...", + "parentGroup": "Föräldragrupp", + "noGroup": "Ingen grupp", + "groupName": "Gruppnamn", + "color": "Färg", + "source": "Källa", + "target": "Mål", + "moveToGroup": "Flytta till grupp", + "selectGroup": "Välj grupp...", + "addConnection": "Lägg till anslutning", + "hostDetails": "Värduppgifter", + "removeFromGroup": "Ta bort från gruppen", + "addHostHere": "Lägg till värd här", + "editGroup": "Redigera grupp", + "delete": "Radera", + "add": "Tillägga", + "create": "Skapa", + "move": "Flytta", + "connect": "Ansluta", + "createGroup": "Skapa grupp", + "selectSourcePlaceholder": "Välj källa...", + "selectTargetPlaceholder": "Välj mål...", + "invalidFile": "Ogiltig fil", + "hostAlreadyExists": "Värden finns redan i topologin", + "connectionExists": "Anslutningen finns redan", + "unknown": "Okänd", + "name": "Namn", + "ip": "IP-adress", "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "failedToAddNode": "Misslyckades med att lägga till nod", + "sourceDifferentFromTarget": "Källa och mål måste vara olika", + "exportJSON": "Exportera JSON", + "importJSON": "Importera JSON", + "serverStats": "Värdstatistik", + "noNodes": "Inga noder ännu" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "Nätverksgraf" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "Nätverksgraf" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} noder" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Använd nätverksgraf", + "description": "Visa och redigera nätverkstopologigrafen." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Visa dokument" } } diff --git a/plugins/network-topology/locales/translated/th_TH.json b/plugins/network-topology/locales/translated/th_TH.json index a27badca9..7950f67d4 100644 --- a/plugins/network-topology/locales/translated/th_TH.json +++ b/plugins/network-topology/locales/translated/th_TH.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", - "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "addHost": "เพิ่มโฮสต์", + "addGroup": "เพิ่มกลุ่ม", + "addLink": "เพิ่มลิงก์", + "zoomIn": "ซูมเข้า", + "zoomOut": "ซูมออก", + "resetView": "รีเซ็ตมุมมอง", + "selectHost": "เลือกโฮสต์", + "chooseHost": "เลือกเจ้าภาพ...", + "parentGroup": "กลุ่มผู้ปกครอง", + "noGroup": "ไม่มีกลุ่ม", + "groupName": "ชื่อกลุ่ม", + "color": "สี", + "source": "แหล่งที่มา", + "target": "เป้า", + "moveToGroup": "ย้ายไปยังกลุ่ม", + "selectGroup": "เลือกกลุ่ม...", + "addConnection": "เพิ่มการเชื่อมต่อ", + "hostDetails": "รายละเอียดโฮสต์", + "removeFromGroup": "ลบออกจากกลุ่ม", + "addHostHere": "เพิ่มโฮสต์ที่นี่", + "editGroup": "แก้ไขกลุ่ม", + "delete": "ลบ", + "add": "เพิ่ม", + "create": "สร้าง", + "move": "เคลื่อนไหว", + "connect": "เชื่อมต่อ", + "createGroup": "สร้างกลุ่ม", + "selectSourcePlaceholder": "เลือกแหล่งที่มา...", + "selectTargetPlaceholder": "เลือกเป้าหมาย...", + "invalidFile": "ไฟล์ไม่ถูกต้อง", + "hostAlreadyExists": "โฮสต์อยู่ในโทโพโลยีแล้ว", + "connectionExists": "การเชื่อมต่อมีอยู่แล้ว", + "unknown": "ไม่ทราบ", + "name": "ชื่อ", + "ip": "ไอพี", + "status": "สถานะ", + "failedToAddNode": "ไม่สามารถเพิ่มโหนดได้", + "sourceDifferentFromTarget": "แหล่งที่มาและเป้าหมายต้องแตกต่างกัน", + "exportJSON": "ส่งออก JSON", + "importJSON": "นำเข้า JSON", + "serverStats": "เมตริกโฮสต์", + "noNodes": "ยังไม่มีโหนด" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "กราฟเครือข่าย" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "กราฟเครือข่าย" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "โหนด {{count}}" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "ใช้กราฟเครือข่าย", + "description": "ดูและแก้ไขแผนผังโครงสร้างเครือข่าย" } }, "hosts": { - "docsLink": "View docs" + "docsLink": "ดูเอกสาร" } } diff --git a/plugins/network-topology/locales/translated/tr_TR.json b/plugins/network-topology/locales/translated/tr_TR.json index 8da964fc2..e4c9fe86c 100644 --- a/plugins/network-topology/locales/translated/tr_TR.json +++ b/plugins/network-topology/locales/translated/tr_TR.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Ağ grafiği kullanın.", + "description": "Ağ topolojisi grafiğini görüntüleyin ve düzenleyin." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/uk_UA.json b/plugins/network-topology/locales/translated/uk_UA.json index a27badca9..4d429f71a 100644 --- a/plugins/network-topology/locales/translated/uk_UA.json +++ b/plugins/network-topology/locales/translated/uk_UA.json @@ -1,64 +1,64 @@ { "networkGraph": { - "addHost": "Add Host", - "addGroup": "Add Group", - "addLink": "Add Link", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "resetView": "Reset View", - "selectHost": "Select Host", - "chooseHost": "Choose a host...", - "parentGroup": "Parent Group", - "noGroup": "No Group", - "groupName": "Group Name", - "color": "Color", - "source": "Source", - "target": "Target", - "moveToGroup": "Move to Group", - "selectGroup": "Select group...", - "addConnection": "Add Connection", - "hostDetails": "Host Details", - "removeFromGroup": "Remove from Group", - "addHostHere": "Add Host Here", - "editGroup": "Edit Group", - "delete": "Delete", - "add": "Add", - "create": "Create", - "move": "Move", - "connect": "Connect", - "createGroup": "Create Group", - "selectSourcePlaceholder": "Select Source...", - "selectTargetPlaceholder": "Select Target...", - "invalidFile": "Invalid File", - "hostAlreadyExists": "Host is already in the topology", - "connectionExists": "Connection already exists", - "unknown": "Unknown", - "name": "Name", - "ip": "IP", - "status": "Status", - "failedToAddNode": "Failed to add node", - "sourceDifferentFromTarget": "Source and target must be different", - "exportJSON": "Export JSON", - "importJSON": "Import JSON", - "serverStats": "Host Metrics", - "noNodes": "No nodes yet" + "addHost": "Додати хоста", + "addGroup": "Додати групу", + "addLink": "Додати посилання", + "zoomIn": "Збільшити масштаб", + "zoomOut": "Зменшити масштаб", + "resetView": "Скинути вигляд", + "selectHost": "Виберіть хоста", + "chooseHost": "Виберіть хоста...", + "parentGroup": "Батьківська група", + "noGroup": "Без групи", + "groupName": "Назва групи", + "color": "Колір", + "source": "Джерело", + "target": "Ціль", + "moveToGroup": "Перемістити до групи", + "selectGroup": "Виберіть групу...", + "addConnection": "Додати підключення", + "hostDetails": "Деталі хоста", + "removeFromGroup": "Видалити з групи", + "addHostHere": "Додати хост тут", + "editGroup": "Редагувати групу", + "delete": "Видалити", + "add": "Додати", + "create": "Створити", + "move": "Перемістити", + "connect": "Підключитися", + "createGroup": "Створити групу", + "selectSourcePlaceholder": "Виберіть джерело...", + "selectTargetPlaceholder": "Виберіть ціль...", + "invalidFile": "Недійсний файл", + "hostAlreadyExists": "Хост вже є в топології", + "connectionExists": "З'єднання вже існує", + "unknown": "Невідомо", + "name": "Ім'я", + "ip": "ІП", + "status": "Статус", + "failedToAddNode": "Не вдалося додати вузол", + "sourceDifferentFromTarget": "Джерело та ціль мають бути різними", + "exportJSON": "Експорт JSON", + "importJSON": "Імпорт JSON", + "serverStats": "Метрики хоста", + "noNodes": "Поки що немає вузлів" }, "nav": { - "networkGraph": "Network Graph" + "networkGraph": "Мережевий графік" }, "dashboard": { - "networkGraph": "Network Graph" + "networkGraph": "Мережевий графік" }, "dashboardTab": { - "nodes": "{{count}} nodes" + "nodes": "{{count}} вузлів" }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Використовуйте мережевий графік", + "description": "Перегляд та редагування графа топології мережі." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Переглянути документи" } } diff --git a/plugins/network-topology/locales/translated/vi_VN.json b/plugins/network-topology/locales/translated/vi_VN.json index 7b7e5bdc8..a5820af16 100644 --- a/plugins/network-topology/locales/translated/vi_VN.json +++ b/plugins/network-topology/locales/translated/vi_VN.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "Sử dụng đồ thị mạng", + "description": "Xem và chỉnh sửa đồ thị cấu trúc mạng." } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/zh_CN.json b/plugins/network-topology/locales/translated/zh_CN.json index 37091d4a4..01306482c 100644 --- a/plugins/network-topology/locales/translated/zh_CN.json +++ b/plugins/network-topology/locales/translated/zh_CN.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "使用网络图", + "description": "查看和编辑网络拓扑图。" } }, "hosts": { diff --git a/plugins/network-topology/locales/translated/zh_TW.json b/plugins/network-topology/locales/translated/zh_TW.json index 9657f5ea7..fdf13aff9 100644 --- a/plugins/network-topology/locales/translated/zh_TW.json +++ b/plugins/network-topology/locales/translated/zh_TW.json @@ -54,8 +54,8 @@ }, "permissions": { "use": { - "title": "Use network graph", - "description": "View and edit the network topology graph." + "title": "使用網路圖", + "description": "查看和編輯網路拓撲圖。" } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/bn_BD.json b/plugins/opkssh/locales/translated/bn_BD.json index ff2307890..c04a63a2a 100644 --- a/plugins/opkssh/locales/translated/bn_BD.json +++ b/plugins/opkssh/locales/translated/bn_BD.json @@ -1,29 +1,29 @@ { "editor": { "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "description": "পাসওয়ার্ড বা কী-এর পরিবর্তে আপনার আইডেন্টিটি প্রোভাইডার ব্যবহার করে এই হোস্টে সাইন ইন করুন। এর জন্য সার্ভারে OPKSSH সেট আপ করা আবশ্যক।", + "docs": "নথি দেখুন" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "OPKSSH প্রমাণীকরণ আবশ্যক", + "description": "চালিয়ে যাওয়ার জন্য আপনার ব্রাউজারে প্রমাণীকরণ সম্পন্ন করুন। এই সেশনটি ২৪ ঘণ্টার জন্য বৈধ থাকবে।", + "openBrowser": "প্রমাণীকরণের জন্য ব্রাউজার খুলুন", + "waiting": "ব্রাউজারে প্রমাণীকরণের জন্য অপেক্ষা করা হচ্ছে...", + "authenticating": "প্রমাণীকরণ প্রক্রিয়া চলছে...", + "signInWith": "{{provider}} দিয়ে সাইন ইন করুন" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "প্রমাণীকরণ ব্যর্থ হয়েছে। অনুগ্রহ করে আপনার পরিচয়পত্র যাচাই করে আবার চেষ্টা করুন।", + "timeout": "প্রমাণীকরণের সময়সীমা শেষ হয়ে গেছে। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "পুনঃনির্দেশ URI", + "description": "আপনার OPKSSH কনফিগে প্রতিটি আইডেন্টিটি প্রোভাইডারের কাছে এই URL-টিকে একটি অনুমোদিত রিডাইরেক্ট URI হিসেবে নিবন্ধন করুন।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "পুরানো রিডাইরেক্ট ইউআরআই ব্যবহার করুন", + "description": "/host/opkssh-callback পাঠানো চালিয়ে যান, যেটি ২.৯ এর আগে ব্যবহৃত রিডাইরেক্ট ইউআরআই ছিল। আপনার আইডেন্টিটি প্রোভাইডাররা নতুনটি অনুমোদন করলে এটি বন্ধ করে দিন।" } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/hi_IN.json b/plugins/opkssh/locales/translated/hi_IN.json index 777ef3ace..3b63a66e9 100644 --- a/plugins/opkssh/locales/translated/hi_IN.json +++ b/plugins/opkssh/locales/translated/hi_IN.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "रीडायरेक्ट यूआरआई", + "description": "इस URL को अपने OPKSSH कॉन्फ़िगरेशन में प्रत्येक पहचान प्रदाता के साथ एक अनुमत रीडायरेक्ट URI के रूप में पंजीकृत करें।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "पुराने रीडायरेक्ट यूआरआई का उपयोग करें", + "description": "पहले 2.9 से पहले इस्तेमाल होने वाली रीडायरेक्ट यूआरआई /host/opkssh-callback भेजते रहें। जब आपके आइडेंटिटी प्रोवाइडर नई यूआरआई की अनुमति दे दें, तो इसे बंद कर दें।" } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/id_ID.json b/plugins/opkssh/locales/translated/id_ID.json index 7aabc7c7e..3e9c0e681 100644 --- a/plugins/opkssh/locales/translated/id_ID.json +++ b/plugins/opkssh/locales/translated/id_ID.json @@ -1,29 +1,29 @@ { "editor": { "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "description": "Masuk ke host ini menggunakan penyedia identitas Anda, bukan kata sandi atau kunci. Membutuhkan OPKSSH yang terpasang di server.", + "docs": "Lihat dokumen" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", + "title": "Otentikasi OPKSSH Diperlukan", + "description": "Lakukan otentikasi di browser Anda untuk melanjutkan. Sesi ini akan tetap berlaku selama 24 jam.", + "openBrowser": "Buka Browser untuk Melakukan Otentikasi", + "waiting": "Menunggu otentikasi di browser...", + "authenticating": "Memproses otentikasi...", "signInWith": "Masuk dengan {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentikasi gagal. Silakan periksa kredensial Anda dan coba lagi.", + "timeout": "Autentikasi habis waktu. Silakan coba lagi." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI Pengalihan", + "description": "Daftarkan URL ini sebagai URI pengalihan yang diizinkan dengan setiap penyedia identitas di konfigurasi OPKSSH Anda." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Gunakan URI pengalihan lama.", + "description": "Tetap kirimkan /host/opkssh-callback, URI pengalihan yang digunakan sebelum versi 2.9. Matikan ini setelah penyedia identitas Anda mengizinkan yang baru." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/no_NO.json b/plugins/opkssh/locales/translated/no_NO.json index ff2307890..b677233d0 100644 --- a/plugins/opkssh/locales/translated/no_NO.json +++ b/plugins/opkssh/locales/translated/no_NO.json @@ -1,29 +1,29 @@ { "editor": { "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "description": "Logg på denne verten med identitetsleverandøren din i stedet for et passord eller en nøkkel. Krever at OPKSSH er konfigurert på serveren.", + "docs": "Vis dokumenter" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "OPKSSH-autentisering kreves", + "description": "Fullfør autentiseringen i nettleseren din for å fortsette. Denne økten vil være gyldig i 24 timer.", + "openBrowser": "Åpne nettleseren for å autentisere", + "waiting": "Venter på autentisering i nettleseren...", + "authenticating": "Behandler autentisering ...", + "signInWith": "Logg inn med {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentiseringen mislyktes. Sjekk legitimasjonen din og prøv på nytt.", + "timeout": "Autentiseringen ble tidsavbrutt. Prøv på nytt." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "Omdirigerings-URI", + "description": "Registrer denne URL-en som en tillatt omdirigerings-URI hos alle identitetsleverandører i OPKSSH-konfigurasjonen din." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Bruk den gamle omdirigerings-URI-en", + "description": "Fortsett å sende /host/opkssh-callback, omdirigerings-URI-en som ble brukt før 2.9. Slå av dette når identitetsleverandørene dine tillater den nye." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/pl_PL.json b/plugins/opkssh/locales/translated/pl_PL.json index a5aca6618..12d96bb14 100644 --- a/plugins/opkssh/locales/translated/pl_PL.json +++ b/plugins/opkssh/locales/translated/pl_PL.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "Przekieruj URI", + "description": "Zarejestruj ten adres URL jako dozwolony adres przekierowania URI u każdego dostawcy tożsamości w konfiguracji OPKSSH." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Użyj starego adresu URI przekierowania", + "description": "Nadal wysyłaj /host/opkssh-callback, czyli przekierowanie URI używane przed wersją 2.9. Wyłącz tę opcję, gdy Twoi dostawcy tożsamości zezwolą na nową." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/pt_BR.json b/plugins/opkssh/locales/translated/pt_BR.json index 28efaa46f..699021782 100644 --- a/plugins/opkssh/locales/translated/pt_BR.json +++ b/plugins/opkssh/locales/translated/pt_BR.json @@ -5,25 +5,25 @@ "docs": "Documentação" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "Autenticação OPKSSH necessária", + "description": "Para continuar, complete a autenticação no seu navegador. Esta sessão permanecerá válida por 24 horas.", + "openBrowser": "Abra o navegador para autenticar.", + "waiting": "Aguardando autenticação no navegador...", + "authenticating": "Processando autenticação...", + "signInWith": "Faça login com {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "A autenticação falhou. Verifique suas credenciais e tente novamente.", + "timeout": "A autenticação expirou. Tente novamente." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI de redirecionamento", + "description": "Registre este URL como um URI de redirecionamento permitido com cada provedor de identidade em sua configuração OPKSSH." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Use o URI de redirecionamento antigo", + "description": "Continue enviando /host/opkssh-callback, o URI de redirecionamento usado antes da versão 2.9. Desative-o assim que seus provedores de identidade permitirem o novo URI." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/pt_PT.json b/plugins/opkssh/locales/translated/pt_PT.json index 34a19e6f7..ccf184208 100644 --- a/plugins/opkssh/locales/translated/pt_PT.json +++ b/plugins/opkssh/locales/translated/pt_PT.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI de redireccionamento", + "description": "Registe este URL como um URI de redireccionamento permitido com cada fornecedor de identidade na sua configuração OPKSSH." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Utilize o URI de redirecionamento antigo", + "description": "Continue a enviar /host/opkssh-callback, o URI de redireccionamento utilizado antes da versão 2.9. Desative-o assim que os seus fornecedores de identidade permitirem o novo URI." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/ru_RU.json b/plugins/opkssh/locales/translated/ru_RU.json index 5d6f1f5f9..cb500ad7a 100644 --- a/plugins/opkssh/locales/translated/ru_RU.json +++ b/plugins/opkssh/locales/translated/ru_RU.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI перенаправления", + "description": "Зарегистрируйте этот URL-адрес в качестве разрешенного URI перенаправления у каждого поставщика идентификации в конфигурации OPKSSH." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Используйте старый URI перенаправления.", + "description": "Продолжайте отправлять /host/opkssh-callback, URI перенаправления, использовавшийся до версии 2.9. Отключите эту функцию, как только ваши поставщики идентификации разрешат использовать новый URI." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/sr_SP.json b/plugins/opkssh/locales/translated/sr_SP.json index ff2307890..df832f6a8 100644 --- a/plugins/opkssh/locales/translated/sr_SP.json +++ b/plugins/opkssh/locales/translated/sr_SP.json @@ -1,32 +1,32 @@ { "editor": { - "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "label": "ОПКШ", + "description": "Пријавите се на овај хост користећи свог добављача идентитета уместо лозинке или кључа. Потребно је подешавање OPKSSH-а на серверу.", + "docs": "Прикажи документе" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "Потребна је аутентификација OPKSSH", + "description": "Завршите аутентификацију у прегледачу да бисте наставили. Ова сесија ће остати важећа 24 сата.", + "openBrowser": "Отворите прегледач за аутентификацију", + "waiting": "Чекање аутентификације у прегледачу...", + "authenticating": "Обрада аутентификације...", + "signInWith": "Пријавите се са {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Аутентификација није успела. Проверите своје акредитиве и покушајте поново.", + "timeout": "Временско ограничење за аутентификацију је истекло. Молимо покушајте поново." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI за преусмеравање", + "description": "Региструјте овај URL као дозвољени URI за преусмеравање код сваког добављача идентитета у вашој OPKSSH конфигурацији." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Користите стари URI за преусмеравање", + "description": "Наставите да шаљете /host/opkssh-callback, URI за преусмеравање који је коришћен пре верзије 2.9. Искључите ово када ваши добављачи идентитета дозволе нови." } }, "hosts": { - "filterAuthOpkssh": "OPKSSH" + "filterAuthOpkssh": "ОПКШ" } } diff --git a/plugins/opkssh/locales/translated/sv_SE.json b/plugins/opkssh/locales/translated/sv_SE.json index ff2307890..9bcdfc38f 100644 --- a/plugins/opkssh/locales/translated/sv_SE.json +++ b/plugins/opkssh/locales/translated/sv_SE.json @@ -1,29 +1,29 @@ { "editor": { "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "description": "Logga in på den här värden med din identitetsleverantör istället för ett lösenord eller en nyckel. Kräver att OPKSSH är konfigurerat på servern.", + "docs": "Visa dokument" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "OPKSSH-autentisering krävs", + "description": "Slutför autentiseringen i din webbläsare för att fortsätta. Denna session kommer att vara giltig i 24 timmar.", + "openBrowser": "Öppna webbläsaren för att autentisera", + "waiting": "Väntar på autentisering i webbläsaren...", + "authenticating": "Bearbetar autentisering...", + "signInWith": "Logga in med {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentiseringen misslyckades. Kontrollera dina inloggningsuppgifter och försök igen.", + "timeout": "Autentiseringen har gått ut. Försök igen." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "Omdirigerings-URI", + "description": "Registrera denna URL som en tillåten omdirigerings-URI hos varje identitetsleverantör i din OPKSSH-konfiguration." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Använd den gamla omdirigerings-URI:n", + "description": "Fortsätt skicka /host/opkssh-callback, den omdirigerings-URI som användes före version 2.9. Stäng av detta när dina identitetsleverantörer tillåter den nya." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/th_TH.json b/plugins/opkssh/locales/translated/th_TH.json index ff2307890..5392137f7 100644 --- a/plugins/opkssh/locales/translated/th_TH.json +++ b/plugins/opkssh/locales/translated/th_TH.json @@ -1,32 +1,32 @@ { "editor": { - "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "label": "โอพีเคเอสเอช", + "description": "เข้าสู่ระบบโฮสต์นี้โดยใช้ผู้ให้บริการยืนยันตัวตนของคุณแทนรหัสผ่านหรือคีย์ จำเป็นต้องตั้งค่า OPKSSH บนเซิร์ฟเวอร์ก่อน", + "docs": "ดูเอกสาร" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "ต้องใช้การตรวจสอบสิทธิ์ OPKSSH", + "description": "โปรดยืนยันตัวตนในเบราว์เซอร์ของคุณเพื่อดำเนินการต่อ เซสชันนี้จะมีอายุใช้งาน 24 ชั่วโมง", + "openBrowser": "เปิดเบราว์เซอร์เพื่อยืนยันตัวตน", + "waiting": "กำลังรอการยืนยันตัวตนในเบราว์เซอร์...", + "authenticating": "กำลังตรวจสอบสิทธิ์...", + "signInWith": "ลงชื่อเข้าใช้ด้วย {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "การตรวจสอบสิทธิ์ล้มเหลว โปรดตรวจสอบข้อมูลประจำตัวของคุณและลองอีกครั้ง", + "timeout": "การตรวจสอบสิทธิ์หมดเวลา โปรดลองอีกครั้ง" }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI การเปลี่ยนเส้นทาง", + "description": "ลงทะเบียน URL นี้เป็น URI ที่อนุญาตให้เปลี่ยนเส้นทางได้กับผู้ให้บริการยืนยันตัวตนทุกรายในไฟล์การกำหนดค่า OPKSSH ของคุณ" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "ใช้ URI การเปลี่ยนเส้นทางแบบเดิม", + "description": "ส่ง /host/opkssh-callback ต่อไป ซึ่งเป็น URI สำหรับการเปลี่ยนเส้นทางที่ใช้ก่อนเวอร์ชัน 2.9 ปิดใช้งานเมื่อผู้ให้บริการยืนยันตัวตนของคุณอนุญาตให้ใช้ URI ใหม่แล้ว" } }, "hosts": { - "filterAuthOpkssh": "OPKSSH" + "filterAuthOpkssh": "โอพีเคเอสเอช" } } diff --git a/plugins/opkssh/locales/translated/tr_TR.json b/plugins/opkssh/locales/translated/tr_TR.json index bb12b9a18..1ef71ab6b 100644 --- a/plugins/opkssh/locales/translated/tr_TR.json +++ b/plugins/opkssh/locales/translated/tr_TR.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "Yönlendirme URI'si", + "description": "OPKSSH yapılandırmanızda bu URL'yi her kimlik sağlayıcısında izin verilen yönlendirme URI'si olarak kaydedin." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Eski yönlendirme URI'sini kullanın.", + "description": "2.9 öncesinde kullanılan yönlendirme URI'si olan /host/opkssh-callback'i göndermeye devam edin. Kimlik sağlayıcılarınız yenisine izin verdiğinde bunu kapatın." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/uk_UA.json b/plugins/opkssh/locales/translated/uk_UA.json index ff2307890..95600e1f3 100644 --- a/plugins/opkssh/locales/translated/uk_UA.json +++ b/plugins/opkssh/locales/translated/uk_UA.json @@ -1,32 +1,32 @@ { "editor": { - "label": "OPKSSH", - "description": "Sign in to this host using your identity provider instead of a password or key. Requires OPKSSH set up on the server.", - "docs": "View docs" + "label": "ОПКШ", + "description": "Увійдіть на цей хост, використовуючи свого постачальника ідентифікаційних даних замість пароля чи ключа. Потрібно налаштувати OPKSSH на сервері.", + "docs": "Переглянути документи" }, "dialog": { - "title": "OPKSSH Authentication Required", - "description": "Complete authentication in your browser to continue. This session will remain valid for 24 hours.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication...", - "signInWith": "Sign in with {{provider}}" + "title": "Потрібна автентифікація OPKSSH", + "description": "Щоб продовжити, завершіть автентифікацію у вашому браузері. Цей сеанс залишатиметься дійсним протягом 24 годин.", + "openBrowser": "Відкрийте браузер для автентифікації", + "waiting": "Очікування автентифікації у браузері...", + "authenticating": "Обробка автентифікації...", + "signInWith": "Увійти за допомогою {{provider}}" }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Помилка автентифікації. Перевірте свої облікові дані та спробуйте ще раз.", + "timeout": "Час очікування автентифікації минув. Спробуйте ще раз." }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI перенаправлення", + "description": "Зареєструйте цю URL-адресу як дозволений URI перенаправлення у кожного постачальника ідентифікаційних даних у вашій конфігурації OPKSSH." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Використовувати старий URI перенаправлення", + "description": "Продовжуйте надсилати /host/opkssh-callback, URI перенаправлення, який використовувався до версії 2.9. Вимкніть цю функцію, щойно ваші постачальники ідентифікації дозволять новий." } }, "hosts": { - "filterAuthOpkssh": "OPKSSH" + "filterAuthOpkssh": "ОПКШ" } } diff --git a/plugins/opkssh/locales/translated/vi_VN.json b/plugins/opkssh/locales/translated/vi_VN.json index 8d9b1f45f..24fe01e7e 100644 --- a/plugins/opkssh/locales/translated/vi_VN.json +++ b/plugins/opkssh/locales/translated/vi_VN.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "URI chuyển hướng", + "description": "Hãy đăng ký URL này như một URI chuyển hướng được cho phép với mọi nhà cung cấp danh tính trong cấu hình OPKSSH của bạn." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "Sử dụng URI chuyển hướng cũ.", + "description": "Tiếp tục gửi /host/opkssh-callback, URI chuyển hướng được sử dụng trước phiên bản 2.9. Tắt chức năng này khi nhà cung cấp danh tính của bạn cho phép sử dụng URI mới." } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/zh_CN.json b/plugins/opkssh/locales/translated/zh_CN.json index ed3786a71..ca2036e16 100644 --- a/plugins/opkssh/locales/translated/zh_CN.json +++ b/plugins/opkssh/locales/translated/zh_CN.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "重定向 URI", + "description": "将此 URL 注册为 OPKSSH 配置中每个身份提供程序允许的重定向 URI。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "使用旧的重定向 URI", + "description": "继续发送 /host/opkssh-callback,这是 2.9 版本之前使用的重定向 URI。一旦您的身份提供商允许使用新的重定向 URI,就关闭此功能。" } }, "hosts": { diff --git a/plugins/opkssh/locales/translated/zh_TW.json b/plugins/opkssh/locales/translated/zh_TW.json index 39c70ba58..e4af2921f 100644 --- a/plugins/opkssh/locales/translated/zh_TW.json +++ b/plugins/opkssh/locales/translated/zh_TW.json @@ -18,12 +18,12 @@ }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with every identity provider in your OPKSSH config." + "label": "重定向 URI", + "description": "將此 URL 註冊為 OPKSSH 組態中每個身分識別提供者允許的重定向 URI。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/opkssh-callback, the redirect URI used before 2.9. Turn this off once your identity providers allow the new one." + "label": "使用舊的重定向 URI", + "description": "繼續發送 /host/opkssh-callback,這是 2.9 版本之前使用的重定向 URI。一旦您的身分提供者允許使用新的重定向 URI,就關閉此功能。" } }, "hosts": { diff --git a/plugins/proxmox/locales/translated/bn_BD.json b/plugins/proxmox/locales/translated/bn_BD.json index b4f5d48be..9863a1c62 100644 --- a/plugins/proxmox/locales/translated/bn_BD.json +++ b/plugins/proxmox/locales/translated/bn_BD.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "প্রক্সমক্স পরিসংখ্যান" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", - "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", - "status": "Status", - "type": "Type", - "cpu": "CPU", - "mem": "Mem", - "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", - "nodeOnline": "Online", - "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", - "filterVm": "VM", - "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "tabTitle": "প্রক্সমক্স পরিসংখ্যান", + "cpuUsage": "সিপিইউ ব্যবহার", + "memoryUsage": "মেমরি ব্যবহার", + "diskUsage": "ডিস্ক ব্যবহার", + "networkInterfaces": "নেটওয়ার্ক ইন্টারফেস", + "uptime": "আপটাইম", + "systemInfo": "সিস্টেমের তথ্য", + "guestsSummary": "অতিথিরা", + "storagePools": "স্টোরেজ পুল", + "clusterHealth": "ক্লাস্টার স্বাস্থ্য", + "cpuCores_one": "{{count}} কোর", + "cpuCores_other": "{{count}} কোর", + "used": "ব্যবহৃত", + "total": "মোট", + "hostname": "হোস্টনাম", + "kernel": "কার্নেল", + "pveVersion": "PVE সংস্করণ", + "name": "নাম", + "status": "অবস্থা", + "type": "প্রকার", + "cpu": "সিপিইউ", + "mem": "মেম", + "disk": "ডিস্ক", + "running": "দৌড়ানো", + "stopped": "থামানো হয়েছে", + "guestCounts": "{{running}}/{{total}} চলমান", + "inactive": "নিষ্ক্রিয়", + "notClustered": "স্বতন্ত্র নোড (ক্লাস্টারের অংশ নয়)", + "quorate": "কোরাট", + "notQuorate": "কোরাম পূর্ণ নয়", + "nodeOnline": "অনলাইন", + "nodeOffline": "অফলাইন", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "pveshNotFound": "pvesh খুঁজে পাওয়া যায়নি - এটি কি একটি Proxmox নোড?", + "nodeDetectionFailed": "একটি বৈধ Proxmox নোডের নাম নির্ধারণ করা সম্ভব হয়নি।", + "connecting": "সংযোগ স্থাপন...", + "connectionFailed": "Proxmox নোডের সাথে সংযোগ করতে ব্যর্থ হয়েছে", + "refresh": "রিফ্রেশ", + "searchGuests": "অতিথিদের অনুসন্ধান করুন...", + "filterAll": "সব", + "filterVm": "ভিএম", + "filterLxc": "এলএক্সসি", + "noGuests": "এই নোডে কোনো ভিএম বা এলএক্সসি কন্টেইনার খুঁজে পাওয়া যায়নি।", + "noGuestsMatch": "বর্তমান ফিল্টারগুলোর সাথে কোনো অতিথি মেলে না।" }, "hosts": { - "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", + "tabProxmox": "প্রক্সমক্স", + "enableProxmoxStats": "Proxmox Stats সক্রিয় করুন", + "enableProxmoxStatsDesc": "এই হোস্টের জন্য একটি Proxmox Stats ট্যাব দেখান, যেখানে SSH-এর মাধ্যমে সংগৃহীত লাইভ নোড, গেস্ট, স্টোরেজ এবং ক্লাস্টারের পরিসংখ্যান থাকবে।", + "proxmoxStatsPollInterval": "ভোটের ব্যবধান (সেকেন্ড)", + "proxmoxStatsPollIntervalDesc": "সর্বনিম্ন ১৫ সেকেন্ড। কত ঘন ঘন প্রক্সমক্স নোড স্ট্যাটস রিফ্রেশ করতে হবে।", + "proxmoxStatsNodeOverride": "নোডের নাম ওভাররাইড", + "proxmoxStatsNodeOverrideDesc": "প্রক্সমক্স নোডের নামের স্বয়ংক্রিয় সনাক্তকরণকে অগ্রাহ্য করুন (যা ডিফল্টরূপে হোস্টনেমের মাধ্যমে সনাক্ত করা হয়)।", + "proxmoxStatsNodeOverridePlaceholder": "হোস্টনেম থেকে স্বয়ংক্রিয়ভাবে শনাক্ত করা হয়েছে", + "authTypeStepca": "স্টেপ সিএ", + "proxmoxIntegration": "প্রক্সমক্স ইন্টিগ্রেশন", + "enableProxmox": "প্রক্সমক্স সক্রিয় করুন", + "enableProxmoxDesc": "এই হোস্টটিকে একটি প্রক্সমক্স নোড হিসেবে চিহ্নিত করুন। এর ফলে সরাসরি এই হোস্ট থেকে গেস্ট ডিসকভারি এবং ইম্পোর্ট করা যায়।", + "proxmoxDefaultAuthType": "ডিফল্ট প্রমাণীকরণ ধরণ", + "proxmoxDefaultAuthTypeDesc": "আমদানিকৃত গেস্ট হোস্টদের জন্য প্রযোজ্য প্রমাণীকরণ পদ্ধতি। আপনি আপনার গেস্টদের সাথে যেভাবে সংযোগ স্থাপন করেন, তার সাথে মেলে এমন প্রমাণীকরণের ধরণটি বেছে নিন।", + "authTypePassword": "পাসওয়ার্ড", + "authTypeKey": "SSH কী", + "authTypeCredential": "শংসাপত্র", "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "authTypeNone": "কোনোটিই না", + "proxmoxDefaultCredential": "ডিফল্ট পরিচয়পত্র", + "proxmoxDefaultCredentialDesc": "যখন অথোরাইজেশন টাইপ 'ক্রেডেনশিয়াল' হিসেবে সেট করা থাকে, তখন ইম্পোর্ট করা গেস্ট হোস্টগুলির জন্য ব্যবহৃত ক্রেডেনশিয়াল।", + "proxmoxWindowsDetection": "উইন্ডোজ / আরডিপি সনাক্তকরণ", + "proxmoxWindowsDetectionDesc": "কমা দ্বারা পৃথক করা নামের প্যাটার্ন যা SSH-এর পরিবর্তে RDP চালু করে (কেস-ইনসেনসিটিভ)", + "proxmoxDockerDetection": "ডকার সনাক্তকরণ", + "proxmoxDockerDetectionDesc": "কমা দ্বারা পৃথক করা নামের প্যাটার্ন যা ডকারকে গেস্টদের মেলানোর জন্য সক্ষম করে", + "proxmoxPreferredRanges": "পছন্দের আইপি রেঞ্জ", + "proxmoxPreferredRangesDesc": "যখন কোনো গেস্টের একাধিক ইন্টারফেস থাকে, তখন আইপি নির্বাচনের জন্য অগ্রাধিকার ক্রমে কমা দ্বারা পৃথক করা প্রিফিক্সগুলো ব্যবহৃত হয়।", + "proxmoxAutoSync": "অতিথিদের স্বয়ংক্রিয়ভাবে সিঙ্ক করুন", + "proxmoxAutoSyncDesc": "আপনার সেশন আনলক থাকা অবস্থায় পর্যায়ক্রমে এই প্রক্সমক্স নোডটি আবিষ্কার করুন এবং ইম্পোর্ট করা গেস্ট হোস্টগুলি তৈরি বা আপডেট করুন।", + "proxmoxSyncInterval": "সিঙ্ক ব্যবধান (মিনিট)", + "proxmoxSyncIntervalDesc": "সর্বনিম্ন ৫ মিনিট। শিডিউলারটি লক করা ব্যবহারকারীর সেশনগুলো এড়িয়ে যায়।", + "proxmoxMarkMissing": "অনুপস্থিত অতিথিদের চিহ্নিত করুন", + "proxmoxMarkMissingDesc": "পূর্বে ইম্পোর্ট করা কোনো গেস্ট অদৃশ্য হয়ে গেলে, সেটিকে ডিলিট না করে একটি proxmox-missing ট্যাগ যোগ করুন।", + "proxmoxLastSync": "শেষ সিঙ্ক", + "proxmoxLastSyncNever": "এখনো সিঙ্ক হয়নি", + "proxmoxLastSyncNoResult": "ফলাফলের কোনো বিবরণ নেই", + "proxmoxLastSyncSummary": "{{created}} তৈরি করা হয়েছে, {{updated}} আপডেট করা হয়েছে, {{markedMissing}} অনুপস্থিত, {{skipped}} বাদ দেওয়া হয়েছে", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "ব্যর্থ", + "pending": "বিচারাধীন", + "success": "সাফল্য" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "Proxmox গেস্টদের আবিষ্কার ও আমদানি করুন", + "proxmoxImportTitle": "প্রক্সমক্স থেকে আমদানি করুন", + "proxmoxSelectHost": "একটি প্রক্সমক্স হোস্ট নির্বাচন করুন…", + "proxmoxDiscover": "আবিষ্কার করুন", + "proxmoxDiscovering": "… আবিষ্কার করা", + "proxmoxDiscoverGuests": "অতিথিদের আবিষ্কার করুন", + "proxmoxSelectAll": "সবগুলো নির্বাচন করুন", + "proxmoxDeselectAll": "সবগুলো নির্বাচন বাতিল করুন", + "proxmoxNoGuests": "এই প্রক্সমক্স নোডে কোনো অতিথি পাওয়া যায়নি।", + "proxmoxResultImported": "{{count}} আমদানি করা হয়েছে", + "proxmoxResultUpdated": "{{count}} আপডেট করা হয়েছে", + "proxmoxResultFailed": "{{count}} ব্যর্থ হয়েছে", + "proxmoxImportComplete": "প্রক্সমক্স আমদানি সম্পন্ন: {{summary}}", + "proxmoxDiscoveryFailed": "আবিষ্কার ব্যর্থ হয়েছে", + "proxmoxImportFailed": "আমদানি ব্যর্থ হয়েছে", + "docsLink": "নথি দেখুন", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "loadingHost": "হোস্ট লোড হচ্ছে...", + "none": "কোনোটিই না", + "proxmoxGuestsSelected_one": "{{count}} অতিথি, {{selected}} নির্বাচিত", + "proxmoxGuestsSelected_other": "{{count}} জন অতিথি, {{selected}} জন নির্বাচিত", + "proxmoxImportButton_one": "{{count}} হোস্ট আমদানি করুন", + "proxmoxImportButton_other": "{{count}} হোস্ট আমদানি করুন" }, "terminal": { - "connected": "Connected" + "connected": "সংযুক্ত" } } diff --git a/plugins/proxmox/locales/translated/hi_IN.json b/plugins/proxmox/locales/translated/hi_IN.json index 3e4ad41e9..47af863f0 100644 --- a/plugins/proxmox/locales/translated/hi_IN.json +++ b/plugins/proxmox/locales/translated/hi_IN.json @@ -1,63 +1,63 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "प्रॉक्समॉक्स आँकड़े" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "प्रॉक्समॉक्स आँकड़े", "cpuUsage": "CPU उपयोग", "memoryUsage": "मेमोरी उपयोग", "diskUsage": "डिस्क उपयोग", "networkInterfaces": "नेटवर्क इंटरफ़ेस", "uptime": "अपटाइम", "systemInfo": "सिस्टम जानकारी", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", + "guestsSummary": "अतिथियों", + "storagePools": "भंडारण पूल", + "clusterHealth": "क्लस्टर स्वास्थ्य", "cpuCores_one": "{{count}} कोर", "cpuCores_other": "{{count}} कोर", "used": "प्रयुक्त", - "total": "Total", + "total": "कुल", "hostname": "होस्टनाम", "kernel": "कर्नेल", - "pveVersion": "PVE Version", + "pveVersion": "PVE संस्करण", "name": "नाम", "status": "स्थिति", "type": "प्रकार", "cpu": "CPU", - "mem": "Mem", + "mem": "मेम", "disk": "डिस्क", "running": "चालू", "stopped": "बंद", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} चल रहा है", "inactive": "निष्क्रिय", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "notClustered": "स्टैंडअलोन नोड (क्लस्टर का हिस्सा नहीं)", + "quorate": "कोरेट", + "notQuorate": "निर्धारित संख्या पूरी नहीं हुई", "nodeOnline": "ऑनलाइन", "nodeOffline": "ऑफलाइन", "noHostSelected": "कोई होस्ट चयनित नहीं है", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "pvesh नहीं मिला - क्या यह Proxmox नोड है?", + "nodeDetectionFailed": "वैध प्रोक्समॉक्स नोड नाम निर्धारित करने में असमर्थ", "connecting": "कनेक्ट हो रहा है...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Proxmox नोड से कनेक्ट करने में विफल", "refresh": "ताज़ा करें", - "searchGuests": "Search guests...", + "searchGuests": "अतिथियों को खोजें...", "filterAll": "सभी", - "filterVm": "VM", - "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "filterVm": "वीएम", + "filterLxc": "एलएक्ससी", + "noGuests": "इस नोड पर कोई वीएम या एलएक्ससी कंटेनर नहीं मिला।", + "noGuestsMatch": "वर्तमान फ़िल्टरों से कोई अतिथि मेल नहीं खाता।" }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "Proxmox सांख्यिकी सक्षम करें", + "enableProxmoxStatsDesc": "इस होस्ट के लिए एक प्रोक्समॉक्स स्टैट्स टैब दिखाएं जिसमें एसएसएच के माध्यम से एकत्रित किए गए लाइव नोड, गेस्ट, स्टोरेज और क्लस्टर स्टैट्स शामिल हों।", + "proxmoxStatsPollInterval": "मतदान अंतराल (सेकंड)", + "proxmoxStatsPollIntervalDesc": "कम से कम 15 सेकंड। प्रोक्समॉक्स नोड के आंकड़ों को कितनी बार रीफ्रेश करना है?", + "proxmoxStatsNodeOverride": "नोड नाम ओवरराइड", + "proxmoxStatsNodeOverrideDesc": "Proxmox नोड नाम की स्वतः पहचान को ओवरराइड करें (जो डिफ़ॉल्ट रूप से होस्टनाम के माध्यम से पता लगाया जाता है)।", + "proxmoxStatsNodeOverridePlaceholder": "होस्टनाम से स्वतः पता लगाया गया", + "authTypeStepca": "स्टेप सीए", "proxmoxIntegration": "Proxmox एकीकरण", "enableProxmox": "Proxmox सक्षम करें", "enableProxmoxDesc": "इस होस्ट को Proxmox नोड के रूप में चिह्नित करें। इस होस्ट से सीधे अतिथि खोज और आयात सक्षम करता है।", @@ -110,8 +110,8 @@ "hostNotFound": "होस्ट नहीं मिला", "loadingHost": "होस्ट लोड हो रहा है...", "none": "कोई नहीं", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} अतिथि, {{selected}} चयनित", + "proxmoxGuestsSelected_other": "{{count}} अतिथि, {{selected}} चयनित", "proxmoxImportButton_one": "{{count}} होस्ट आयात करें", "proxmoxImportButton_other": "{{count}} होस्ट आयात करें" }, diff --git a/plugins/proxmox/locales/translated/id_ID.json b/plugins/proxmox/locales/translated/id_ID.json index b4f5d48be..1a2d6a7d4 100644 --- a/plugins/proxmox/locales/translated/id_ID.json +++ b/plugins/proxmox/locales/translated/id_ID.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Statistik Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", + "tabTitle": "Statistik Proxmox", + "cpuUsage": "Penggunaan CPU", + "memoryUsage": "Penggunaan Memori", + "diskUsage": "Penggunaan Disk", + "networkInterfaces": "Antarmuka Jaringan", + "uptime": "Waktu aktif", + "systemInfo": "Informasi Sistem", + "guestsSummary": "Tamu", + "storagePools": "Kolam Penyimpanan", + "clusterHealth": "Kesehatan Klaster", + "cpuCores_one": "{{count}} Inti", + "cpuCores_other": "{{count}} Inti", + "used": "Digunakan", "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", + "hostname": "Nama host", + "kernel": "Inti", + "pveVersion": "Versi PVE", + "name": "Nama", "status": "Status", - "type": "Type", + "type": "Jenis", "cpu": "CPU", "mem": "Mem", "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", - "nodeOnline": "Online", + "running": "Berlari", + "stopped": "Berhenti", + "guestCounts": "{{running}}/{{total}} berjalan", + "inactive": "Tidak aktif", + "notClustered": "Node mandiri (bukan bagian dari klaster)", + "quorate": "Kutipan", + "notQuorate": "Tidak memenuhi kuorum", + "nodeOnline": "On line", "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", - "filterVm": "VM", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "pveshNotFound": "pvesh tidak ditemukan - apakah ini node Proxmox?", + "nodeDetectionFailed": "Tidak dapat menentukan nama node Proxmox yang valid.", + "connecting": "Menghubungkan...", + "connectionFailed": "Gagal terhubung ke node Proxmox", + "refresh": "Menyegarkan", + "searchGuests": "Mencari tamu...", + "filterAll": "Semua", + "filterVm": "Mesin virtual", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Tidak ditemukan VM atau kontainer LXC pada node ini.", + "noGuestsMatch": "Tidak ada tamu yang sesuai dengan filter saat ini." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", + "enableProxmoxStats": "Aktifkan Statistik Proxmox", + "enableProxmoxStatsDesc": "Tampilkan tab Statistik Proxmox untuk host ini dengan statistik node, guest, penyimpanan, dan cluster secara langsung yang dikumpulkan melalui SSH.", + "proxmoxStatsPollInterval": "Interval polling (detik)", + "proxmoxStatsPollIntervalDesc": "Minimal 15 detik. Seberapa sering statistik node Proxmox diperbarui.", + "proxmoxStatsNodeOverride": "Penggantian nama node", + "proxmoxStatsNodeOverrideDesc": "Ganti deteksi otomatis nama node Proxmox (yang secara default dideteksi melalui nama host).", + "proxmoxStatsNodeOverridePlaceholder": "Terdeteksi secara otomatis dari nama host", + "authTypeStepca": "Langkah CA", + "proxmoxIntegration": "Integrasi Proxmox", + "enableProxmox": "Aktifkan Proxmox", + "enableProxmoxDesc": "Tandai host ini sebagai node Proxmox. Memungkinkan penemuan dan impor guest langsung dari host ini.", + "proxmoxDefaultAuthType": "Jenis Otentikasi Default", + "proxmoxDefaultAuthTypeDesc": "Metode otentikasi yang diterapkan pada host tamu yang diimpor. Pilih jenis otentikasi yang sesuai dengan cara Anda terhubung dengan tamu Anda.", + "authTypePassword": "Kata sandi", + "authTypeKey": "Kunci SSH", + "authTypeCredential": "Mandat", "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "authTypeNone": "Tidak ada", + "proxmoxDefaultCredential": "Kredensial Default", + "proxmoxDefaultCredentialDesc": "Kredensial yang digunakan untuk host tamu yang diimpor ketika tipe otentikasi diatur ke Kredensial.", + "proxmoxWindowsDetection": "Deteksi Windows / RDP", + "proxmoxWindowsDetectionDesc": "Pola nama yang dipisahkan koma yang memicu RDP alih-alih SSH (tidak peka huruf besar/kecil)", + "proxmoxDockerDetection": "Deteksi Docker", + "proxmoxDockerDetectionDesc": "Pola nama yang dipisahkan koma yang memungkinkan Docker untuk mencocokkan mesin virtual.", + "proxmoxPreferredRanges": "Rentang IP yang disukai", + "proxmoxPreferredRangesDesc": "Awalan yang dipisahkan koma dalam urutan prioritas untuk pemilihan IP ketika tamu memiliki beberapa antarmuka.", + "proxmoxAutoSync": "Sinkronisasi otomatis tamu", + "proxmoxAutoSyncDesc": "Secara berkala, temukan node Proxmox ini dan buat atau perbarui host tamu yang diimpor saat sesi Anda tidak terkunci.", + "proxmoxSyncInterval": "Interval sinkronisasi (menit)", + "proxmoxSyncIntervalDesc": "Minimal 5 menit. Penjadwal akan melewati sesi pengguna yang terkunci.", + "proxmoxMarkMissing": "Tandai tamu yang hilang", + "proxmoxMarkMissingDesc": "Tambahkan tag proxmox-missing ketika tamu yang sebelumnya diimpor menghilang, alih-alih menghapusnya.", + "proxmoxLastSync": "Sinkronisasi terakhir", + "proxmoxLastSyncNever": "Belum disinkronkan", + "proxmoxLastSyncNoResult": "Tidak ada detail hasil.", + "proxmoxLastSyncSummary": "{{created}} dibuat, {{updated}} diperbarui, {{markedMissing}} hilang, {{skipped}} dilewati", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "Gagal", + "pending": "Tertunda", + "success": "Kesuksesan" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "Temukan & impor tamu Proxmox", + "proxmoxImportTitle": "Impor dari Proxmox", + "proxmoxSelectHost": "Pilih host Proxmox…", + "proxmoxDiscover": "Menemukan", + "proxmoxDiscovering": "Menemukan…", + "proxmoxDiscoverGuests": "Temukan tamu", + "proxmoxSelectAll": "Pilih semua", + "proxmoxDeselectAll": "Batalkan pilihan semua", + "proxmoxNoGuests": "Tidak ada tamu yang ditemukan di node Proxmox ini.", + "proxmoxResultImported": "{{count}} diimpor", + "proxmoxResultUpdated": "{{count}} diperbarui", + "proxmoxResultFailed": "{{count}} gagal", + "proxmoxImportComplete": "Impor Proxmox selesai: {{summary}}", + "proxmoxDiscoveryFailed": "Penemuan gagal", + "proxmoxImportFailed": "Impor gagal", + "docsLink": "Lihat dokumen", + "hostNotFound": "Host tidak ditemukan", + "loadingHost": "Memuat host...", + "none": "Tidak ada", + "proxmoxGuestsSelected_one": "{{count}} tamu, {{selected}} terpilih", + "proxmoxGuestsSelected_other": "{{count}} tamu, {{selected}} terpilih", + "proxmoxImportButton_one": "Impor {{count}} host", + "proxmoxImportButton_other": "Impor {{count}} host" }, "terminal": { - "connected": "Connected" + "connected": "Terhubung" } } diff --git a/plugins/proxmox/locales/translated/no_NO.json b/plugins/proxmox/locales/translated/no_NO.json index 337976633..f15c3a0c0 100644 --- a/plugins/proxmox/locales/translated/no_NO.json +++ b/plugins/proxmox/locales/translated/no_NO.json @@ -1,119 +1,119 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox-statistikk" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Proxmox-statistikk", "cpuUsage": "CPU-bruk", "memoryUsage": "Minnebruk", "diskUsage": "Diskbruk", "networkInterfaces": "Nettverksgrensesnitt", "uptime": "Oppetid", "systemInfo": "Systeminformasjon", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", + "guestsSummary": "Gjester", + "storagePools": "Lagringsbassenger", + "clusterHealth": "Klyngehelse", + "cpuCores_one": "{{count}} Kjerne", + "cpuCores_other": "{{count}} Kjerner", "used": "Brukt", "total": "Totalt", "hostname": "Vertsnavn", "kernel": "Kjerne", - "pveVersion": "PVE Version", + "pveVersion": "PVE-versjon", "name": "Navn", "status": "Status", "type": "Type", "cpu": "CPU", - "mem": "Mem", + "mem": "Minne", "disk": "Disk", "running": "Kjører", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", + "stopped": "Stoppet", + "guestCounts": "{{running}}/{{total}} løping", "inactive": "Inaktiv", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "notClustered": "Frittstående node (ikke en del av en klynge)", + "quorate": "Kvorat", + "notQuorate": "Ikke beslutningsdyktig", "nodeOnline": "Tilkoblet", "nodeOffline": "Frakoblet", "noHostSelected": "Ingen vert valgt", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "pvesh ikke funnet – er dette en Proxmox-node?", + "nodeDetectionFailed": "Kan ikke bestemme et gyldig Proxmox-nodenavn", "connecting": "Kobler til...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Kunne ikke koble til Proxmox-noden", "refresh": "Oppdater", - "searchGuests": "Search guests...", - "filterAll": "All", + "searchGuests": "Søk etter gjester...", + "filterAll": "Alle", "filterVm": "VM", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Ingen virtuelle maskiner eller LXC-containere funnet på denne noden.", + "noGuestsMatch": "Ingen gjester samsvarer med de gjeldende filtrene." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", + "enableProxmoxStats": "Aktiver Proxmox-statistikk", + "enableProxmoxStatsDesc": "Vis en Proxmox-statistikkfane for denne verten med live node-, gjeste-, lagrings- og klyngestatistikk samlet inn via SSH.", + "proxmoxStatsPollInterval": "Avstemningsintervall (sekunder)", + "proxmoxStatsPollIntervalDesc": "Minimum 15 sekunder. Hvor ofte Proxmox-nodestatistikken skal oppdateres.", + "proxmoxStatsNodeOverride": "Overstyring av nodenavn", + "proxmoxStatsNodeOverrideDesc": "Overstyr automatisk deteksjon av Proxmox-nodenavnet (detekteres via vertsnavn som standard).", + "proxmoxStatsNodeOverridePlaceholder": "Automatisk oppdaget fra vertsnavn", + "authTypeStepca": "Trinn CA", + "proxmoxIntegration": "Proxmox-integrasjon", + "enableProxmox": "Aktiver Proxmox", + "enableProxmoxDesc": "Merk denne verten som en Proxmox-node. Aktiverer gjesteoppdagelse og import direkte fra denne verten.", + "proxmoxDefaultAuthType": "Standard autentiseringstype", + "proxmoxDefaultAuthTypeDesc": "Autentiseringsmetode brukt på importerte gjesteverter. Velg autentiseringstypen som samsvarer med hvordan du kobler til gjestene dine.", "authTypePassword": "Passord", "authTypeKey": "SSH-nøkkel", "authTypeCredential": "Legitimasjon", "authTypeOpkssh": "OPKSSH", "authTypeNone": "Ingen", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "proxmoxDefaultCredential": "Standard legitimasjon", + "proxmoxDefaultCredentialDesc": "Legitimasjon som brukes for importerte gjesteverter når godkjenningstypen er satt til Legitimasjon.", + "proxmoxWindowsDetection": "Windows / RDP-deteksjon", + "proxmoxWindowsDetectionDesc": "Kommaseparerte navnemønstre som utløser RDP i stedet for SSH (ikke-skillende mellom store og små bokstaver)", + "proxmoxDockerDetection": "Docker-deteksjon", + "proxmoxDockerDetectionDesc": "Kommaseparerte navnemønstre som gjør det mulig for Docker å matche gjester", + "proxmoxPreferredRanges": "Foretrukne IP-områder", + "proxmoxPreferredRangesDesc": "Kommaseparerte prefikser i prioritert rekkefølge for IP-valg når en gjest har flere grensesnitt", + "proxmoxAutoSync": "Automatisk synkronisering av gjester", + "proxmoxAutoSyncDesc": "Oppdag denne Proxmox-noden med jevne mellomrom og opprett eller oppdater importerte gjesteverter mens økten din er ulåst.", + "proxmoxSyncInterval": "Synkroniseringsintervall (minutter)", + "proxmoxSyncIntervalDesc": "Minimum 5 minutter. Planleggeren hopper over låste brukerøkter.", + "proxmoxMarkMissing": "Merk manglende gjester", + "proxmoxMarkMissingDesc": "Legg til en proxmox-missing-tag når en tidligere importert gjest forsvinner i stedet for å slette den.", + "proxmoxLastSync": "Siste synkronisering", + "proxmoxLastSyncNever": "Ikke synkronisert ennå", + "proxmoxLastSyncNoResult": "Ingen resultatdetaljer", + "proxmoxLastSyncSummary": "{{created}} opprettet, {{updated}} oppdatert, {{markedMissing}} mangler, {{skipped}} hoppet over", "proxmoxLastSyncStatus": { "error": "Mislyktes", - "pending": "Pending", + "pending": "I påvente av", "success": "Suksess" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", + "proxmoxDiscoverAction": "Oppdag og importer Proxmox-gjester", + "proxmoxImportTitle": "Importer fra Proxmox", + "proxmoxSelectHost": "Velg en Proxmox-vert…", + "proxmoxDiscover": "Oppdage", + "proxmoxDiscovering": "Oppdager…", + "proxmoxDiscoverGuests": "Oppdag gjester", + "proxmoxSelectAll": "Velg alle", + "proxmoxDeselectAll": "Fjern merkingen av alt", + "proxmoxNoGuests": "Ingen gjester funnet på denne Proxmox-noden.", + "proxmoxResultImported": "{{count}} importert", + "proxmoxResultUpdated": "{{count}} oppdatert", "proxmoxResultFailed": "{{count}} mislyktes", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", + "proxmoxImportComplete": "Proxmox-import fullført: {{summary}}", + "proxmoxDiscoveryFailed": "Oppdagelsen mislyktes", "proxmoxImportFailed": "Import mislyktes", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", + "docsLink": "Vis dokumenter", + "hostNotFound": "Verten ble ikke funnet", + "loadingHost": "Laster inn vert ...", "none": "Ingen", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxGuestsSelected_one": "{{count}} gjest, {{selected}} valgt", + "proxmoxGuestsSelected_other": "{{count}} gjester, {{selected}} valgt", + "proxmoxImportButton_one": "Importer {{count}} vert", + "proxmoxImportButton_other": "Importer {{count}} verter" }, "terminal": { "connected": "Tilkoblet" diff --git a/plugins/proxmox/locales/translated/pl_PL.json b/plugins/proxmox/locales/translated/pl_PL.json index 5e6f21490..1dd4fa94a 100644 --- a/plugins/proxmox/locales/translated/pl_PL.json +++ b/plugins/proxmox/locales/translated/pl_PL.json @@ -57,7 +57,7 @@ "proxmoxStatsNodeOverride": "Nadpisanie nazwy węzła", "proxmoxStatsNodeOverrideDesc": "Zastąp automatyczne wykrywanie nazwy węzła Proxmox (domyślnie wykrywane za pomocą nazwy hosta).", "proxmoxStatsNodeOverridePlaceholder": "Automatycznie wykryto na podstawie nazwy hosta", - "authTypeStepca": "Step CA", + "authTypeStepca": "Krok CA", "proxmoxIntegration": "Integracja Proxmox", "enableProxmox": "Włącz Proxmox", "enableProxmoxDesc": "Oznacz ten host jako węzeł Proxmox. Umożliwia wykrywanie gości i importowanie bezpośrednio z tego hosta.", @@ -110,8 +110,8 @@ "hostNotFound": "Nie znaleziono hosta", "loadingHost": "Ładowanie hosta...", "none": "Brak", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} gość, {{selected}} wybrano", + "proxmoxGuestsSelected_other": "{{count}} gości, {{selected}} wybranych", "proxmoxImportButton_one": "Importuj {{count}} host", "proxmoxImportButton_other": "Importuj {{count}} hostów" }, diff --git a/plugins/proxmox/locales/translated/pt_BR.json b/plugins/proxmox/locales/translated/pt_BR.json index 4a16111d0..58e0a53c4 100644 --- a/plugins/proxmox/locales/translated/pt_BR.json +++ b/plugins/proxmox/locales/translated/pt_BR.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Estatísticas do Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", + "tabTitle": "Estatísticas do Proxmox", + "cpuUsage": "Utilização da CPU", + "memoryUsage": "Uso de memória", + "diskUsage": "Utilização do disco", + "networkInterfaces": "Interfaces de rede", + "uptime": "Tempo de atividade", + "systemInfo": "Informações do sistema", + "guestsSummary": "Convidados", + "storagePools": "Piscinas de armazenamento", "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", + "cpuCores_one": "{{count}} Núcleo", + "cpuCores_other": "{{count}} Núcleos", + "used": "Usado", "total": "Total", - "hostname": "Hostname", + "hostname": "Nome do host", "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", + "pveVersion": "Versão PvE", + "name": "Nome", "status": "Status", "type": "Tipo", "cpu": "CPU", - "mem": "Mem", - "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", + "mem": "Membro", + "disk": "Disco", + "running": "Correndo", + "stopped": "Parou", + "guestCounts": "{{running}}/{{total}} em execução", + "inactive": "Inativo", + "notClustered": "Nó independente (não faz parte de um cluster)", "quorate": "Quorate", - "notQuorate": "Not quorate", + "notQuorate": "Sem quórum", "nodeOnline": "Online", "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "noHostSelected": "Nenhum host selecionado", + "pveshNotFound": "pvesh não encontrado - este é um nó Proxmox?", + "nodeDetectionFailed": "Não foi possível determinar um nome de nó Proxmox válido.", "connecting": "Conectando...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Falha ao conectar-se ao nó Proxmox", "refresh": "Atualizar", - "searchGuests": "Search guests...", - "filterAll": "All", + "searchGuests": "Pesquisar hóspedes...", + "filterAll": "Todos", "filterVm": "VM", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Nenhuma máquina virtual ou contêiner LXC foi encontrado neste nó.", + "noGuestsMatch": "Nenhum hóspede corresponde aos filtros atuais." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", + "enableProxmoxStats": "Ativar estatísticas do Proxmox", + "enableProxmoxStatsDesc": "Exibe a aba de Estatísticas do Proxmox para este host com estatísticas em tempo real de nós, máquinas virtuais, armazenamento e cluster, coletadas via SSH.", + "proxmoxStatsPollInterval": "Intervalo de sondagem (segundos)", + "proxmoxStatsPollIntervalDesc": "Mínimo de 15 segundos. Com que frequência as estatísticas do nó Proxmox devem ser atualizadas.", + "proxmoxStatsNodeOverride": "Substituição do nome do nó", + "proxmoxStatsNodeOverrideDesc": "Substituir a detecção automática do nome do nó Proxmox (detectado por padrão através do nome do host).", + "proxmoxStatsNodeOverridePlaceholder": "Detectado automaticamente a partir do nome do host", + "authTypeStepca": "Etapa CA", + "proxmoxIntegration": "Integração Proxmox", + "enableProxmox": "Ativar Proxmox", + "enableProxmoxDesc": "Marque este host como um nó Proxmox. Isso permite a descoberta e importação de máquinas virtuais diretamente deste host.", + "proxmoxDefaultAuthType": "Tipo de autenticação padrão", + "proxmoxDefaultAuthTypeDesc": "Método de autenticação aplicado aos hosts convidados importados. Escolha o tipo de autenticação que corresponde à forma como você se conecta aos seus convidados.", "authTypePassword": "Senha", "authTypeKey": "Chave SSH", "authTypeCredential": "Credencial", "authTypeOpkssh": "OPKSSH", "authTypeNone": "Nenhum", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "proxmoxDefaultCredential": "Credencial padrão", + "proxmoxDefaultCredentialDesc": "Credencial usada para hosts convidados importados quando o tipo de autenticação está definido como Credencial.", + "proxmoxWindowsDetection": "Detecção de Windows/RDP", + "proxmoxWindowsDetectionDesc": "Padrões de nomes separados por vírgulas que acionam o RDP em vez do SSH (sem distinção entre maiúsculas e minúsculas)", + "proxmoxDockerDetection": "Detecção de Docker", + "proxmoxDockerDetectionDesc": "Padrões de nomes separados por vírgulas que permitem ao Docker identificar máquinas virtuais.", + "proxmoxPreferredRanges": "Faixas de IP preferenciais", + "proxmoxPreferredRangesDesc": "Prefixos separados por vírgula em ordem de prioridade para seleção de IP quando um convidado possui múltiplas interfaces.", + "proxmoxAutoSync": "Sincronização automática de convidados", + "proxmoxAutoSyncDesc": "Descubra periodicamente este nó Proxmox e crie ou atualize hosts convidados importados enquanto sua sessão estiver desbloqueada.", + "proxmoxSyncInterval": "Intervalo de sincronização (minutos)", + "proxmoxSyncIntervalDesc": "Tempo mínimo de 5 minutos. O agendador ignora sessões de usuário bloqueadas.", + "proxmoxMarkMissing": "Marque os hóspedes ausentes", + "proxmoxMarkMissingDesc": "Adicione a tag proxmox-missing quando uma máquina virtual previamente importada desaparecer, em vez de excluí-la.", + "proxmoxLastSync": "Última sincronização", + "proxmoxLastSyncNever": "Ainda não sincronizado", + "proxmoxLastSyncNoResult": "Nenhum detalhe do resultado", + "proxmoxLastSyncSummary": "{{created}} criado, {{updated}} atualizado, {{markedMissing}} ausente, {{skipped}} ignorado", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "Fracassado", + "pending": "Pendente", + "success": "Sucesso" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", + "proxmoxDiscoverAction": "Descubra e importe hóspedes do Proxmox", + "proxmoxImportTitle": "Importar do Proxmox", + "proxmoxSelectHost": "Selecione um host Proxmox…", + "proxmoxDiscover": "Descobrir", + "proxmoxDiscovering": "Descobrindo…", + "proxmoxDiscoverGuests": "Descubra os hóspedes", + "proxmoxSelectAll": "Selecionar tudo", + "proxmoxDeselectAll": "Desmarque tudo", + "proxmoxNoGuests": "Nenhum convidado encontrado neste nó Proxmox.", + "proxmoxResultImported": "{{count}} importado", + "proxmoxResultUpdated": "{{count}} atualizado", + "proxmoxResultFailed": "{{count}} falhou", + "proxmoxImportComplete": "Importação do Proxmox concluída: {{summary}}", + "proxmoxDiscoveryFailed": "A descoberta falhou", + "proxmoxImportFailed": "A importação falhou", "docsLink": "Documentação", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", + "hostNotFound": "Host não encontrado", + "loadingHost": "Carregando host...", "none": "Nenhum", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxGuestsSelected_one": "{{count}} convidado, {{selected}} selecionado", + "proxmoxGuestsSelected_other": "{{count}} convidados, {{selected}} selecionados", + "proxmoxImportButton_one": "Importar {{count}} host", + "proxmoxImportButton_other": "Importar {{count}} hosts" }, "terminal": { - "connected": "Connected" + "connected": "Conectado" } } diff --git a/plugins/proxmox/locales/translated/pt_PT.json b/plugins/proxmox/locales/translated/pt_PT.json index 7c5569f4d..d71843ab4 100644 --- a/plugins/proxmox/locales/translated/pt_PT.json +++ b/plugins/proxmox/locales/translated/pt_PT.json @@ -1,63 +1,63 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Estatísticas do Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Estatísticas do Proxmox", "cpuUsage": "Utilização da CPU", "memoryUsage": "Utilização da memória", "diskUsage": "Utilização do disco", "networkInterfaces": "Interfaces de Rede", "uptime": "Tempo de Atividade", "systemInfo": "Informação do Sistema", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", + "guestsSummary": "Convidados", + "storagePools": "Piscinas de armazenamento", + "clusterHealth": "Saúde em grupo", "cpuCores_one": "{{count}} Núcleo", "cpuCores_other": "{{count}} Núcleos", "used": "Utilizado", "total": "Total", "hostname": "Nome do host", "kernel": "Kernel", - "pveVersion": "PVE Version", + "pveVersion": "Versão PvE", "name": "Nome", "status": "Estado", "type": "Tipo", "cpu": "CPU", - "mem": "Mem", + "mem": "Membro", "disk": "Disco", "running": "Em execução", "stopped": "Parado", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} em execução", "inactive": "Inativo", - "notClustered": "Standalone node (not part of a cluster)", + "notClustered": "Nó independente (não faz parte de um cluster)", "quorate": "Quorate", - "notQuorate": "Not quorate", + "notQuorate": "Sem quórum", "nodeOnline": "Online", "nodeOffline": "Offline", "noHostSelected": "Nenhum anfitrião selecionado", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "pvesh não encontrado - este é um nó Proxmox?", + "nodeDetectionFailed": "Não foi possível determinar um nome de nó Proxmox válido.", "connecting": "A ligar...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Falha ao ligar ao nó Proxmox", "refresh": "Atualizar", - "searchGuests": "Search guests...", + "searchGuests": "Pesquisar hóspedes...", "filterAll": "Todas", "filterVm": "VM", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Nenhuma máquina virtual ou contentor LXC foi encontrado neste nó.", + "noGuestsMatch": "Nenhum hóspede corresponde aos filtros atuais." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "Ativar estatísticas do Proxmox", + "enableProxmoxStatsDesc": "Apresenta o separador de Estatísticas do Proxmox para este host com estatísticas em tempo real dos nós, máquinas virtuais, armazenamento e cluster, recolhidas via SSH.", + "proxmoxStatsPollInterval": "Intervalo de sondagem (segundos)", + "proxmoxStatsPollIntervalDesc": "Mínimo de 15 segundos. Com que frequência as estatísticas do nó Proxmox devem ser atualizadas.", + "proxmoxStatsNodeOverride": "Substituição do nome do nó", + "proxmoxStatsNodeOverrideDesc": "Substituir a deteção automática do nome do nó Proxmox (detetado por defeito através do nome do host).", + "proxmoxStatsNodeOverridePlaceholder": "Detetado automaticamente a partir do nome do host", + "authTypeStepca": "Etapa CA", "proxmoxIntegration": "Integração com Proxmox", "enableProxmox": "Ativar Proxmox", "enableProxmoxDesc": "Marcar este host como um nó Proxmox. Permite a descoberta e importação de convidados diretamente a partir deste host.", @@ -110,8 +110,8 @@ "hostNotFound": "Host não encontrado", "loadingHost": "A carregar o host...", "none": "Nenhum", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} convidado, {{selected}} selecionado", + "proxmoxGuestsSelected_other": "{{count}} convidados, {{selected}} selecionados", "proxmoxImportButton_one": "Importar {{count}} host", "proxmoxImportButton_other": "Importar {{count}} hosts" }, diff --git a/plugins/proxmox/locales/translated/ru_RU.json b/plugins/proxmox/locales/translated/ru_RU.json index 8c5ba3aaf..9955b8966 100644 --- a/plugins/proxmox/locales/translated/ru_RU.json +++ b/plugins/proxmox/locales/translated/ru_RU.json @@ -1,63 +1,63 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Статистика Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Статистика Proxmox", "cpuUsage": "Использование ЦП", "memoryUsage": "Использование памяти", "diskUsage": "Использование диска", "networkInterfaces": "Сетевые интерфейсы", "uptime": "Время работы", "systemInfo": "Информация о системе", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", + "guestsSummary": "Гости", + "storagePools": "Бассейны для хранения", + "clusterHealth": "Здоровье кластера", "cpuCores_one": "{{count}} ядро", "cpuCores_other": "{{count}} ядер", "used": "Занято", - "total": "Total", + "total": "Общий", "hostname": "Имя хоста", "kernel": "Ядро", - "pveVersion": "PVE Version", + "pveVersion": "Версия для PVE", "name": "Название", "status": "Статус", "type": "Тип", "cpu": "CPU", - "mem": "Mem", + "mem": "Мем", "disk": "Диск", "running": "Запущен", "stopped": "Остановлен", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} бежит", "inactive": "Неактивен", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "notClustered": "Автономный узел (не входящий в кластер)", + "quorate": "Цитата", + "notQuorate": "Кворум не соблюден", "nodeOnline": "Онлайн", "nodeOffline": "Офлайн", "noHostSelected": "Хост не выбран", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "pvesh не найден — это узел Proxmox?", + "nodeDetectionFailed": "Не удалось определить допустимое имя узла Proxmox.", "connecting": "Подключение...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Не удалось подключиться к узлу Proxmox.", "refresh": "Обновить", - "searchGuests": "Search guests...", + "searchGuests": "Поиск гостей...", "filterAll": "Все", "filterVm": "VM", - "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "filterLxc": "ЛХС", + "noGuests": "На этом узле не обнаружено виртуальных машин или контейнеров LXC.", + "noGuestsMatch": "Ни один из гостей не соответствует текущим фильтрам." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "Включить статистику Proxmox", + "enableProxmoxStatsDesc": "Отобразить вкладку Proxmox Stats для этого хоста с актуальными статистическими данными по узлам, гостевым системам, хранилищу и кластеру, собранными по SSH.", + "proxmoxStatsPollInterval": "Интервал опроса (секунды)", + "proxmoxStatsPollIntervalDesc": "Минимум 15 секунд. Как часто обновлять статистику узлов Proxmox.", + "proxmoxStatsNodeOverride": "Переопределение имени узла", + "proxmoxStatsNodeOverrideDesc": "Отключить автоматическое определение имени узла Proxmox (по умолчанию определяется по имени хоста).", + "proxmoxStatsNodeOverridePlaceholder": "Автоматически определено по имени хоста", + "authTypeStepca": "Шаг CA", "proxmoxIntegration": "Интеграция Proxmox", "enableProxmox": "Включить Proxmox", "enableProxmoxDesc": "Пометить этот хост как узел Proxmox. Включает обнаружение и импорт гостевых систем непосредственно с этого хоста.", @@ -110,8 +110,8 @@ "hostNotFound": "Хост не найден", "loadingHost": "Загрузка хоста...", "none": "Нет", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} гость, {{selected}} выбран", + "proxmoxGuestsSelected_other": "{{count}} гостей, {{selected}} выбраны", "proxmoxImportButton_one": "Импортировать {{count}} хост", "proxmoxImportButton_other": "Импортировать {{count}} хостов" }, diff --git a/plugins/proxmox/locales/translated/sr_SP.json b/plugins/proxmox/locales/translated/sr_SP.json index b4f5d48be..7f1173bdf 100644 --- a/plugins/proxmox/locales/translated/sr_SP.json +++ b/plugins/proxmox/locales/translated/sr_SP.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox статистика" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", - "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", - "status": "Status", - "type": "Type", - "cpu": "CPU", - "mem": "Mem", - "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", - "nodeOnline": "Online", - "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", - "filterVm": "VM", + "tabTitle": "Proxmox статистика", + "cpuUsage": "Искоришћеност процесора", + "memoryUsage": "Коришћење меморије", + "diskUsage": "Искоришћеност диска", + "networkInterfaces": "Мрежни интерфејси", + "uptime": "Време непрекидног рада", + "systemInfo": "Системске информације", + "guestsSummary": "Гости", + "storagePools": "Складишни базени", + "clusterHealth": "Здравље кластера", + "cpuCores_one": "{{count}} Језгро", + "cpuCores_other": "{{count}} Језгра", + "used": "Коришћено", + "total": "Укупно", + "hostname": "Име хоста", + "kernel": "Језгро", + "pveVersion": "ПВЕ верзија", + "name": "Име", + "status": "Статус", + "type": "Тип", + "cpu": "Процесор", + "mem": "Мем", + "disk": "Диск", + "running": "Трчање", + "stopped": "Заустављено", + "guestCounts": "{{running}}/{{total}} трчи", + "inactive": "Неактивно", + "notClustered": "Самостални чвор (није део кластера)", + "quorate": "Кворат", + "notQuorate": "Није кворум", + "nodeOnline": "Онлајн", + "nodeOffline": "Офлајн", + "noHostSelected": "Није изабран домаћин", + "pveshNotFound": "pvesh није пронађен - да ли је ово Proxmox чвор?", + "nodeDetectionFailed": "Није могуће утврдити важеће име Proxmox чвора", + "connecting": "Повезивање...", + "connectionFailed": "Повезивање са Proxmox чвором није успело", + "refresh": "Освежи", + "searchGuests": "Претражи госте...", + "filterAll": "Сви", + "filterVm": "Виртуелна машина", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "На овом чвору нису пронађене виртуелне машине или LXC контејнери.", + "noGuestsMatch": "Ниједан гост не одговара тренутним филтерима." }, "hosts": { - "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", - "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "tabProxmox": "Проксмокс", + "enableProxmoxStats": "Омогући Proxmox статистику", + "enableProxmoxStatsDesc": "Прикажи картицу Proxmox Stats за овај хост са статистикама уживо чвора, госта, складишта и кластера прикупљеним преко SSH-а.", + "proxmoxStatsPollInterval": "Интервал анкете (секунде)", + "proxmoxStatsPollIntervalDesc": "Минимум 15 секунди. Колико често освежавати статистику Proxmox чвора.", + "proxmoxStatsNodeOverride": "Замена имена чвора", + "proxmoxStatsNodeOverrideDesc": "Поништи аутоматско откривање имена Proxmox чвора (подразумевано се открива преко имена хоста).", + "proxmoxStatsNodeOverridePlaceholder": "Аутоматски детектовано на основу имена хоста", + "authTypeStepca": "Корак CA", + "proxmoxIntegration": "Интеграција са Proxmox-ом", + "enableProxmox": "Омогући Proxmox", + "enableProxmoxDesc": "Означи овај хост као Proxmox чвор. Омогућава откривање госта и увоз директно са овог хоста.", + "proxmoxDefaultAuthType": "Подразумевани тип овлашћења", + "proxmoxDefaultAuthTypeDesc": "Метод аутентификације примењен на увезене гостујуће хостове. Изаберите тип аутентификације који одговара начину на који се повезујете са гостима.", + "authTypePassword": "Лозинка", + "authTypeKey": "SSH кључ", + "authTypeCredential": "Акредитив", + "authTypeOpkssh": "ОПКШ", + "authTypeNone": "Ниједан", + "proxmoxDefaultCredential": "Подразумевани акредитив", + "proxmoxDefaultCredentialDesc": "Акредитив који се користи за увезене гостујуће хостове када је тип овлашћења подешен на Акредитив.", + "proxmoxWindowsDetection": "Детекција Windows-а / RDP-а", + "proxmoxWindowsDetectionDesc": "Обрасци имена раздвојени зарезима који покрећу RDP уместо SSH (не разликују велика и мала слова)", + "proxmoxDockerDetection": "Детекција Докера", + "proxmoxDockerDetectionDesc": "Шаблони имена одвојени зарезима који омогућавају Докеру да упари госте", + "proxmoxPreferredRanges": "Жељени IP опсези", + "proxmoxPreferredRangesDesc": "Префикси одвојени зарезима по редоследу приоритета за избор IP адресе када гост има више интерфејса", + "proxmoxAutoSync": "Аутоматска синхронизација гостију", + "proxmoxAutoSyncDesc": "Периодично откривајте овај Proxmox чвор и креирајте или ажурирајте увезене гостујуће хостове док је ваша сесија откључана.", + "proxmoxSyncInterval": "Интервал синхронизације (минути)", + "proxmoxSyncIntervalDesc": "Минимум 5 минута. Планер прескаче закључане корисничке сесије.", + "proxmoxMarkMissing": "Означи госте који недостају", + "proxmoxMarkMissingDesc": "Додајте ознаку proxmox-missing када претходно увезени гост нестане уместо да га избришете.", + "proxmoxLastSync": "Последња синхронизација", + "proxmoxLastSyncNever": "Још није синхронизовано", + "proxmoxLastSyncNoResult": "Нема детаља о резултатима", + "proxmoxLastSyncSummary": "{{created}} креирано, {{updated}} ажурирано, {{markedMissing}} недостаје, {{skipped}} прескочено", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "Неуспешно", + "pending": "На чекању", + "success": "Успех" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "Откријте и увезите госте Proxmox-а", + "proxmoxImportTitle": "Увоз из Proxmox-а", + "proxmoxSelectHost": "Изаберите Proxmox хост…", + "proxmoxDiscover": "Откријте", + "proxmoxDiscovering": "Откривање…", + "proxmoxDiscoverGuests": "Откријте госте", + "proxmoxSelectAll": "Изабери све", + "proxmoxDeselectAll": "Поништи избор свих", + "proxmoxNoGuests": "Није пронађен ниједан гост на овом Proxmox чвору.", + "proxmoxResultImported": "{{count}} увезено", + "proxmoxResultUpdated": "{{count}} ажурирано", + "proxmoxResultFailed": "{{count}} није успело", + "proxmoxImportComplete": "Увоз Proxmox-а завршен: {{summary}}", + "proxmoxDiscoveryFailed": "Откривање није успело", + "proxmoxImportFailed": "Увоз није успео", + "docsLink": "Прикажи документе", + "hostNotFound": "Хост није пронађен", + "loadingHost": "Учитавање хоста...", + "none": "Ниједан", + "proxmoxGuestsSelected_one": "{{count}} гост, {{selected}} изабрано", + "proxmoxGuestsSelected_other": "{{count}} гостију, {{selected}} изабрано", + "proxmoxImportButton_one": "Увоз {{count}} хоста", + "proxmoxImportButton_other": "Увези {{count}} хостова" }, "terminal": { - "connected": "Connected" + "connected": "Повезано" } } diff --git a/plugins/proxmox/locales/translated/sv_SE.json b/plugins/proxmox/locales/translated/sv_SE.json index b4f5d48be..cafab0bbe 100644 --- a/plugins/proxmox/locales/translated/sv_SE.json +++ b/plugins/proxmox/locales/translated/sv_SE.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox-statistik" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", + "tabTitle": "Proxmox-statistik", + "cpuUsage": "CPU-användning", + "memoryUsage": "Minnesanvändning", + "diskUsage": "Diskanvändning", + "networkInterfaces": "Nätverksgränssnitt", + "uptime": "Drifttid", + "systemInfo": "Systeminformation", + "guestsSummary": "Gäster", + "storagePools": "Lagringspooler", + "clusterHealth": "Klusterhälsa", + "cpuCores_one": "{{count}} Kärna", + "cpuCores_other": "{{count}} Kärnor", + "used": "Begagnad", "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", + "hostname": "Värdnamn", + "kernel": "Kärna", + "pveVersion": "PVE-version", + "name": "Namn", "status": "Status", - "type": "Type", + "type": "Typ", "cpu": "CPU", "mem": "Mem", "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "running": "Spring", + "stopped": "Stoppad", + "guestCounts": "{{running}}/{{total}} springer", + "inactive": "Inaktiv", + "notClustered": "Fristående nod (inte en del av ett kluster)", + "quorate": "Kvorat", + "notQuorate": "Inte kvoriöst", "nodeOnline": "Online", - "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", + "nodeOffline": "Off-line", + "noHostSelected": "Ingen värd vald", + "pveshNotFound": "pvesh hittades inte - är detta en Proxmox-nod?", + "nodeDetectionFailed": "Det gick inte att fastställa ett giltigt Proxmox-nodnamn", + "connecting": "Ansluter...", + "connectionFailed": "Misslyckades med att ansluta till Proxmox-noden", + "refresh": "Uppdatera", + "searchGuests": "Sök gäster...", + "filterAll": "Alla", "filterVm": "VM", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Inga virtuella maskiner eller LXC-behållare hittades på den här noden.", + "noGuestsMatch": "Inga gäster matchar de aktuella filtren." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", + "enableProxmoxStats": "Aktivera Proxmox-statistik", + "enableProxmoxStatsDesc": "Visa en Proxmox-statistikflik för den här värden med statistik för livenoder, gäster, lagring och kluster insamlad via SSH.", + "proxmoxStatsPollInterval": "Undersökningsintervall (sekunder)", + "proxmoxStatsPollIntervalDesc": "Minst 15 sekunder. Hur ofta Proxmox-nodstatistik ska uppdateras.", + "proxmoxStatsNodeOverride": "Åsidosättning av nodnamn", + "proxmoxStatsNodeOverrideDesc": "Åsidosätt automatisk detektering av Proxmox-nodnamnet (detekteras via värdnamn som standard).", + "proxmoxStatsNodeOverridePlaceholder": "Automatiskt identifierad från värdnamn", + "authTypeStepca": "Steg CA", + "proxmoxIntegration": "Proxmox-integration", + "enableProxmox": "Aktivera Proxmox", + "enableProxmoxDesc": "Markera denna värd som en Proxmox-nod. Aktiverar gästidentifiering och import direkt från denna värd.", + "proxmoxDefaultAuthType": "Standardautentiseringstyp", + "proxmoxDefaultAuthTypeDesc": "Autentiseringsmetod tillämpad på importerade gästvärdar. Välj den autentiseringstyp som matchar hur du ansluter till dina gäster.", + "authTypePassword": "Lösenord", + "authTypeKey": "SSH-nyckel", + "authTypeCredential": "Referenser", "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "authTypeNone": "Ingen", + "proxmoxDefaultCredential": "Standardautentiseringsuppgifter", + "proxmoxDefaultCredentialDesc": "Autentiseringsuppgifter som används för importerade gästvärdar när autentiseringstypen är inställd på Autentiseringsuppgifter.", + "proxmoxWindowsDetection": "Windows/RDP-detektering", + "proxmoxWindowsDetectionDesc": "Kommaavgränsade namnmönster som utlöser RDP istället för SSH (skiftlägeskänsliga)", + "proxmoxDockerDetection": "Docker-detektering", + "proxmoxDockerDetectionDesc": "Kommaavgränsade namnmönster som gör det möjligt för Docker att matcha gäster", + "proxmoxPreferredRanges": "Föredragna IP-intervall", + "proxmoxPreferredRangesDesc": "Kommaavgränsade prefix i prioritetsordning för IP-val när en gäst har flera gränssnitt", + "proxmoxAutoSync": "Synkronisera gäster automatiskt", + "proxmoxAutoSyncDesc": "Upptäck regelbundet denna Proxmox-nod och skapa eller uppdatera importerade gästvärdar medan din session är upplåst.", + "proxmoxSyncInterval": "Synkroniseringsintervall (minuter)", + "proxmoxSyncIntervalDesc": "Minst 5 minuter. Schemaläggaren hoppar över låsta användarsessioner.", + "proxmoxMarkMissing": "Markera saknade gäster", + "proxmoxMarkMissingDesc": "Lägg till en proxmox-missing-tagg när en tidigare importerad gäst försvinner istället för att ta bort den.", + "proxmoxLastSync": "Senaste synkronisering", + "proxmoxLastSyncNever": "Inte synkroniserad än", + "proxmoxLastSyncNoResult": "Inga resultatdetaljer", + "proxmoxLastSyncSummary": "{{created}} skapad, {{updated}} uppdaterad, {{markedMissing}} saknas, {{skipped}} hoppad över", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "Misslyckades", + "pending": "I avvaktan på", + "success": "Framgång" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "Upptäck och importera Proxmox-gäster", + "proxmoxImportTitle": "Importera från Proxmox", + "proxmoxSelectHost": "Välj en Proxmox-värd…", + "proxmoxDiscover": "Upptäcka", + "proxmoxDiscovering": "Upptäcker…", + "proxmoxDiscoverGuests": "Upptäck gäster", + "proxmoxSelectAll": "Markera alla", + "proxmoxDeselectAll": "Avmarkera alla", + "proxmoxNoGuests": "Inga gäster hittades på denna Proxmox-nod.", + "proxmoxResultImported": "{{count}} importerad", + "proxmoxResultUpdated": "{{count}} uppdaterad", + "proxmoxResultFailed": "{{count}} misslyckades", + "proxmoxImportComplete": "Proxmox-import klar: {{summary}}", + "proxmoxDiscoveryFailed": "Upptäckten misslyckades", + "proxmoxImportFailed": "Importen misslyckades", + "docsLink": "Visa dokument", + "hostNotFound": "Värden hittades inte", + "loadingHost": "Laddar värd...", + "none": "Ingen", + "proxmoxGuestsSelected_one": "{{count}} gäst, {{selected}} vald", + "proxmoxGuestsSelected_other": "{{count}} gäster, {{selected}} vald", + "proxmoxImportButton_one": "Importera {{count}} värd", + "proxmoxImportButton_other": "Importera {{count}} värdar" }, "terminal": { - "connected": "Connected" + "connected": "Ansluten" } } diff --git a/plugins/proxmox/locales/translated/th_TH.json b/plugins/proxmox/locales/translated/th_TH.json index b4f5d48be..686cc0f2a 100644 --- a/plugins/proxmox/locales/translated/th_TH.json +++ b/plugins/proxmox/locales/translated/th_TH.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "สถิติ Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", - "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", - "status": "Status", - "type": "Type", - "cpu": "CPU", - "mem": "Mem", - "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", - "nodeOnline": "Online", - "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", - "filterVm": "VM", + "tabTitle": "สถิติ Proxmox", + "cpuUsage": "การใช้งาน CPU", + "memoryUsage": "การใช้งานหน่วยความจำ", + "diskUsage": "การใช้งานดิสก์", + "networkInterfaces": "อินเทอร์เฟซเครือข่าย", + "uptime": "เวลาใช้งาน", + "systemInfo": "ข้อมูลระบบ", + "guestsSummary": "แขก", + "storagePools": "สระเก็บน้ำ", + "clusterHealth": "สุขภาพคลัสเตอร์", + "cpuCores_one": "{{count}} แกนหลัก", + "cpuCores_other": "{{count}} คอร์", + "used": "ใช้แล้ว", + "total": "ทั้งหมด", + "hostname": "ชื่อโฮสต์", + "kernel": "เคอร์เนล", + "pveVersion": "เวอร์ชัน PVE", + "name": "ชื่อ", + "status": "สถานะ", + "type": "พิมพ์", + "cpu": "ซีพียู", + "mem": "เมม", + "disk": "ดิสก์", + "running": "วิ่ง", + "stopped": "หยุด", + "guestCounts": "{{running}}/{{total}} กำลังทำงาน", + "inactive": "ไม่ใช้งาน", + "notClustered": "โหนดแบบสแตนด์อโลน (ไม่ได้เป็นส่วนหนึ่งของคลัสเตอร์)", + "quorate": "ควอต", + "notQuorate": "องค์ประชุมไม่ครบ", + "nodeOnline": "ออนไลน์", + "nodeOffline": "ออฟไลน์", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "pveshNotFound": "ไม่พบ pvesh - นี่เป็นโหนด Proxmox หรือไม่?", + "nodeDetectionFailed": "ไม่สามารถระบุชื่อโหนด Proxmox ที่ถูกต้องได้", + "connecting": "กำลังเชื่อมต่อ...", + "connectionFailed": "ไม่สามารถเชื่อมต่อกับโหนด Proxmox ได้", + "refresh": "รีเฟรช", + "searchGuests": "ค้นหาผู้เข้าพัก...", + "filterAll": "ทั้งหมด", + "filterVm": "วีเอ็ม", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "ไม่พบเครื่องเสมือน (VM) หรือคอนเทนเนอร์ LXC บนโหนดนี้", + "noGuestsMatch": "ไม่มีแขกท่านใดตรงกับตัวกรองที่มีอยู่ในขณะนี้" }, "hosts": { - "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", - "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "tabProxmox": "โปรกซ์ม็อกซ์", + "enableProxmoxStats": "เปิดใช้งานสถิติ Proxmox", + "enableProxmoxStatsDesc": "แสดงแท็บสถิติ Proxmox สำหรับโฮสต์นี้ พร้อมสถิติแบบเรียลไทม์ของโหนด เกสต์ พื้นที่จัดเก็บ และคลัสเตอร์ที่รวบรวมผ่าน SSH", + "proxmoxStatsPollInterval": "ช่วงเวลาการสำรวจ (วินาที)", + "proxmoxStatsPollIntervalDesc": "อย่างน้อย 15 วินาที ความถี่ในการอัปเดตสถิติโหนด Proxmox", + "proxmoxStatsNodeOverride": "การแทนที่ชื่อโหนด", + "proxmoxStatsNodeOverrideDesc": "ยกเลิกการตรวจจับชื่อโหนด Proxmox อัตโนมัติ (โดยค่าเริ่มต้นจะตรวจจับผ่านชื่อโฮสต์)", + "proxmoxStatsNodeOverridePlaceholder": "ตรวจจับอัตโนมัติจากชื่อโฮสต์", + "authTypeStepca": "ขั้นตอน CA", + "proxmoxIntegration": "การผสานรวม Proxmox", + "enableProxmox": "เปิดใช้งาน Proxmox", + "enableProxmoxDesc": "กำหนดให้โฮสต์นี้เป็นโหนด Proxmox เพื่อเปิดใช้งานการค้นหาและนำเข้าเครื่องเสมือนโดยตรงจากโฮสต์นี้", + "proxmoxDefaultAuthType": "ประเภทการตรวจสอบสิทธิ์เริ่มต้น", + "proxmoxDefaultAuthTypeDesc": "วิธีการตรวจสอบสิทธิ์ที่ใช้กับโฮสต์แขกที่นำเข้า เลือกประเภทการตรวจสอบสิทธิ์ที่ตรงกับวิธีการที่คุณเชื่อมต่อกับแขกของคุณ", + "authTypePassword": "รหัสผ่าน", + "authTypeKey": "คีย์ SSH", + "authTypeCredential": "ใบรับรอง", + "authTypeOpkssh": "โอพีเคเอสเอช", + "authTypeNone": "ไม่มี", + "proxmoxDefaultCredential": "ข้อมูลประจำตัวเริ่มต้น", + "proxmoxDefaultCredentialDesc": "ข้อมูลประจำตัวที่ใช้สำหรับโฮสต์แขกที่นำเข้าเมื่อตั้งค่าประเภทการตรวจสอบสิทธิ์เป็นข้อมูลประจำตัว (Credential)", + "proxmoxWindowsDetection": "การตรวจจับ Windows / RDP", + "proxmoxWindowsDetectionDesc": "รูปแบบชื่อที่คั่นด้วยเครื่องหมายจุลภาคซึ่งจะเรียกใช้งาน RDP แทน SSH (ไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก)", + "proxmoxDockerDetection": "การตรวจจับ Docker", + "proxmoxDockerDetectionDesc": "รูปแบบชื่อที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งช่วยให้ Docker สามารถจับคู่กับเครื่องเสมือนได้", + "proxmoxPreferredRanges": "ช่วง IP ที่ต้องการ", + "proxmoxPreferredRangesDesc": "คำนำหน้า IP ที่คั่นด้วยเครื่องหมายจุลภาคเรียงตามลำดับความสำคัญสำหรับการเลือก IP เมื่อผู้ใช้งานมีอินเทอร์เฟซหลายตัว", + "proxmoxAutoSync": "ซิงค์ข้อมูลแขกโดยอัตโนมัติ", + "proxmoxAutoSyncDesc": "ตรวจสอบโหนด Proxmox นี้เป็นระยะ และสร้างหรืออัปเดตโฮสต์แขกที่นำเข้าในขณะที่เซสชันของคุณไม่ได้ล็อกอยู่", + "proxmoxSyncInterval": "ช่วงเวลาการซิงค์ (นาที)", + "proxmoxSyncIntervalDesc": "อย่างน้อย 5 นาที ระบบกำหนดเวลาจะข้ามเซสชันของผู้ใช้ที่ถูกล็อกไว้", + "proxmoxMarkMissing": "ทำเครื่องหมายแขกที่ขาดหายไป", + "proxmoxMarkMissingDesc": "เพิ่มแท็ก proxmox-missing เมื่อเครื่องเสมือนที่นำเข้าก่อนหน้านี้หายไป แทนที่จะลบออก", + "proxmoxLastSync": "การซิงค์ครั้งล่าสุด", + "proxmoxLastSyncNever": "ยังไม่ได้ซิงค์ข้อมูล", + "proxmoxLastSyncNoResult": "ไม่มีรายละเอียดผลลัพธ์", + "proxmoxLastSyncSummary": "{{created}} ถูกสร้างขึ้น, {{updated}} อัปเดตแล้ว, {{markedMissing}} หายไป, {{skipped}} ข้ามไป", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "ล้มเหลว", + "pending": "รอดำเนินการ", + "success": "ความสำเร็จ" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "ค้นหาและนำเข้าแขกของ Proxmox", + "proxmoxImportTitle": "นำเข้าจาก Proxmox", + "proxmoxSelectHost": "เลือกโฮสต์ Proxmox…", + "proxmoxDiscover": "ค้นพบ", + "proxmoxDiscovering": "การค้นพบ…", + "proxmoxDiscoverGuests": "ค้นพบแขก", + "proxmoxSelectAll": "เลือกทั้งหมด", + "proxmoxDeselectAll": "ยกเลิกการเลือกทั้งหมด", + "proxmoxNoGuests": "ไม่พบผู้ใช้งานในโหนด Proxmox นี้", + "proxmoxResultImported": "{{count}} นำเข้าแล้ว", + "proxmoxResultUpdated": "{{count}} อัปเดตแล้ว", + "proxmoxResultFailed": "{{count}} ล้มเหลว", + "proxmoxImportComplete": "การนำเข้า Proxmox เสร็จสมบูรณ์: {{summary}}", + "proxmoxDiscoveryFailed": "การค้นพบล้มเหลว", + "proxmoxImportFailed": "การนำเข้าล้มเหลว", + "docsLink": "ดูเอกสาร", + "hostNotFound": "ไม่พบโฮสต์", + "loadingHost": "กำลังโหลดโฮสต์...", + "none": "ไม่มี", + "proxmoxGuestsSelected_one": "{{count}} แขก, {{selected}} ผู้ถูกเลือก", + "proxmoxGuestsSelected_other": "แขก {{count}} คน, เลือก {{selected}} คน", + "proxmoxImportButton_one": "นำเข้าโฮสต์ {{count}}", + "proxmoxImportButton_other": "นำเข้าโฮสต์ {{count}}" }, "terminal": { - "connected": "Connected" + "connected": "เชื่อมต่อแล้ว" } } diff --git a/plugins/proxmox/locales/translated/tr_TR.json b/plugins/proxmox/locales/translated/tr_TR.json index ba59dcc08..765f2d44d 100644 --- a/plugins/proxmox/locales/translated/tr_TR.json +++ b/plugins/proxmox/locales/translated/tr_TR.json @@ -1,25 +1,25 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox İstatistikleri" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Proxmox İstatistikleri", "cpuUsage": "CPU Kullanımı", "memoryUsage": "Bellek Kullanımı", "diskUsage": "Disk Kullanımı", "networkInterfaces": "Ağ Arayüzleri", "uptime": "Çalışma Süresi", "systemInfo": "Sistem Bilgisi", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", + "guestsSummary": "Misafirler", + "storagePools": "Depolama Havuzları", + "clusterHealth": "Küme Sağlığı", "cpuCores_one": "{{count}} Çekirdek", "cpuCores_other": "{{count}} Çekirdek", "used": "Kullanılan", - "total": "Total", + "total": "Toplam", "hostname": "Ana bilgisayar adı", "kernel": "Çekirdek", - "pveVersion": "PVE Version", + "pveVersion": "PVE Sürümü", "name": "Ad", "status": "Durum", "type": "Tür", @@ -28,36 +28,36 @@ "disk": "Disk", "running": "Çalışıyor", "stopped": "Durduruldu", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} çalışıyor", "inactive": "Etkin Değil", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "notClustered": "Bağımsız düğüm (kümenin parçası olmayan)", + "quorate": "Quora", + "notQuorate": "Yeterli çoğunluğa sahip değil", "nodeOnline": "çevrimiçi", "nodeOffline": "Çevrimdışı", "noHostSelected": "Sunucu seçilmedi", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "pvesh bulunamadı - bu bir Proxmox düğümü mü?", + "nodeDetectionFailed": "Geçerli bir Proxmox düğüm adı belirlenemedi.", "connecting": "Bağlanıyor...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Proxmox düğümüne bağlanılamadı.", "refresh": "Yenile", - "searchGuests": "Search guests...", + "searchGuests": "Misafirleri ara...", "filterAll": "Tümü", - "filterVm": "VM", + "filterVm": "Sanal makine", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Bu düğümde hiçbir sanal makine veya LXC kapsayıcısı bulunamadı.", + "noGuestsMatch": "Mevcut filtrelere uyan konuk bulunamadı." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "Proxmox İstatistiklerini Etkinleştir", + "enableProxmoxStatsDesc": "Bu sunucu için, SSH üzerinden toplanan canlı düğüm, sanal makine, depolama ve küme istatistiklerini içeren bir Proxmox İstatistikleri sekmesi gösterin.", + "proxmoxStatsPollInterval": "Anket aralığı (saniye)", + "proxmoxStatsPollIntervalDesc": "En az 15 saniye. Proxmox düğüm istatistiklerinin ne sıklıkla yenilenmesi gerektiği.", + "proxmoxStatsNodeOverride": "Düğüm adı geçersiz kılma", + "proxmoxStatsNodeOverrideDesc": "Proxmox düğüm adının otomatik olarak algılanmasını (varsayılan olarak ana bilgisayar adı üzerinden algılanır) geçersiz kılın.", + "proxmoxStatsNodeOverridePlaceholder": "Ana bilgisayar adından otomatik olarak algılandı", + "authTypeStepca": "Adım CA", "proxmoxIntegration": "Proxmox Entegrasyonu", "enableProxmox": "Proxmox'u Etkinleştir", "enableProxmoxDesc": "Bu ana bilgisayarı bir Proxmox düğümü olarak işaretle. Bu ana bilgisayardan doğrudan konuk keşfi ve içe aktarmayı etkinleştirir.", @@ -110,8 +110,8 @@ "hostNotFound": "Host bulunamadı", "loadingHost": "Host yükleniyor...", "none": "Hiçbiri", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} misafir, {{selected}} seçildi", + "proxmoxGuestsSelected_other": "{{count}} misafir, {{selected}} seçildi", "proxmoxImportButton_one": "{{count}} ana makineyi içe aktar", "proxmoxImportButton_other": "{{count}} sunucuyu içe aktar" }, diff --git a/plugins/proxmox/locales/translated/uk_UA.json b/plugins/proxmox/locales/translated/uk_UA.json index b4f5d48be..fb10a9a8b 100644 --- a/plugins/proxmox/locales/translated/uk_UA.json +++ b/plugins/proxmox/locales/translated/uk_UA.json @@ -1,121 +1,121 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Статистика Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "networkInterfaces": "Network Interfaces", - "uptime": "Uptime", - "systemInfo": "System Information", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", - "cpuCores_one": "{{count}} Core", - "cpuCores_other": "{{count}} Cores", - "used": "Used", - "total": "Total", - "hostname": "Hostname", - "kernel": "Kernel", - "pveVersion": "PVE Version", - "name": "Name", - "status": "Status", - "type": "Type", - "cpu": "CPU", - "mem": "Mem", - "disk": "Disk", - "running": "Running", - "stopped": "Stopped", - "guestCounts": "{{running}}/{{total}} running", - "inactive": "Inactive", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", - "nodeOnline": "Online", - "nodeOffline": "Offline", - "noHostSelected": "No host selected", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", - "connecting": "Connecting...", - "connectionFailed": "Failed to connect to Proxmox node", - "refresh": "Refresh", - "searchGuests": "Search guests...", - "filterAll": "All", - "filterVm": "VM", + "tabTitle": "Статистика Proxmox", + "cpuUsage": "Використання процесора", + "memoryUsage": "Використання пам'яті", + "diskUsage": "Використання диска", + "networkInterfaces": "Мережеві інтерфейси", + "uptime": "Час безвідмовної роботи", + "systemInfo": "Інформація про систему", + "guestsSummary": "Гості", + "storagePools": "Пули зберігання", + "clusterHealth": "Кластерне здоров'я", + "cpuCores_one": "{{count}} Ядро", + "cpuCores_other": "{{count}} Ядра", + "used": "Використано", + "total": "Всього", + "hostname": "Ім'я хоста", + "kernel": "Ядро", + "pveVersion": "ПВЕ-версія", + "name": "Ім'я", + "status": "Статус", + "type": "Тип", + "cpu": "Процесор", + "mem": "Мем", + "disk": "Диск", + "running": "Біг", + "stopped": "Зупинено", + "guestCounts": "{{running}}/{{total}} бігає", + "inactive": "Неактивний", + "notClustered": "Автономний вузол (не є частиною кластера)", + "quorate": "Кворат", + "notQuorate": "Не має кворуму", + "nodeOnline": "Онлайн", + "nodeOffline": "Офлайн", + "noHostSelected": "Хост не вибрано", + "pveshNotFound": "pvesh не знайдено - це вузол Proxmox?", + "nodeDetectionFailed": "Не вдається визначити дійсну назву вузла Proxmox", + "connecting": "Підключення...", + "connectionFailed": "Не вдалося підключитися до вузла Proxmox", + "refresh": "Оновити", + "searchGuests": "Пошук гостей...", + "filterAll": "Усі", + "filterVm": "ВМ", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "На цьому вузлі не знайдено віртуальних машин або контейнерів LXC.", + "noGuestsMatch": "Немає гостей, які відповідають поточним фільтрам." }, "hosts": { - "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", - "proxmoxIntegration": "Proxmox Integration", - "enableProxmox": "Enable Proxmox", - "enableProxmoxDesc": "Mark this host as a Proxmox node. Enables guest discovery and import directly from this host.", - "proxmoxDefaultAuthType": "Default Auth Type", - "proxmoxDefaultAuthTypeDesc": "Authentication method applied to imported guest hosts. Choose the auth type that matches how you connect to your guests.", - "authTypePassword": "Password", - "authTypeKey": "SSH Key", - "authTypeCredential": "Credential", - "authTypeOpkssh": "OPKSSH", - "authTypeNone": "None", - "proxmoxDefaultCredential": "Default Credential", - "proxmoxDefaultCredentialDesc": "Credential used for imported guest hosts when auth type is set to Credential.", - "proxmoxWindowsDetection": "Windows / RDP detection", - "proxmoxWindowsDetectionDesc": "Comma-separated name patterns that trigger RDP instead of SSH (case-insensitive)", - "proxmoxDockerDetection": "Docker detection", - "proxmoxDockerDetectionDesc": "Comma-separated name patterns that enable Docker for matching guests", - "proxmoxPreferredRanges": "Preferred IP ranges", - "proxmoxPreferredRangesDesc": "Comma-separated prefixes in priority order for IP selection when a guest has multiple interfaces", - "proxmoxAutoSync": "Auto sync guests", - "proxmoxAutoSyncDesc": "Periodically discover this Proxmox node and create or update imported guest hosts while your session is unlocked.", - "proxmoxSyncInterval": "Sync interval (minutes)", - "proxmoxSyncIntervalDesc": "Minimum 5 minutes. The scheduler skips locked user sessions.", - "proxmoxMarkMissing": "Mark missing guests", - "proxmoxMarkMissingDesc": "Add a proxmox-missing tag when a previously imported guest disappears instead of deleting it.", - "proxmoxLastSync": "Last sync", - "proxmoxLastSyncNever": "Not synced yet", - "proxmoxLastSyncNoResult": "No result details", - "proxmoxLastSyncSummary": "{{created}} created, {{updated}} updated, {{markedMissing}} missing, {{skipped}} skipped", + "tabProxmox": "Проксмокс", + "enableProxmoxStats": "Увімкнути статистику Proxmox", + "enableProxmoxStatsDesc": "Показати вкладку статистики Proxmox для цього хоста зі статистикою вузла, гостя, сховища та кластера, зібраною через SSH.", + "proxmoxStatsPollInterval": "Інтервал опитування (секунди)", + "proxmoxStatsPollIntervalDesc": "Мінімум 15 секунд. Як часто оновлювати статистику вузла Proxmox.", + "proxmoxStatsNodeOverride": "Перевизначення назви вузла", + "proxmoxStatsNodeOverrideDesc": "Перевизначити автоматичне визначення імені вузла Proxmox (за замовчуванням визначається через ім'я хоста).", + "proxmoxStatsNodeOverridePlaceholder": "Автоматично визначено за назвою хоста", + "authTypeStepca": "Крок CA", + "proxmoxIntegration": "Інтеграція з Proxmox", + "enableProxmox": "Увімкнути Proxmox", + "enableProxmoxDesc": "Позначити цей хост як вузол Proxmox. Дозволяє виявлення гостьових систем та імпорт безпосередньо з цього хоста.", + "proxmoxDefaultAuthType": "Тип автентифікації за замовчуванням", + "proxmoxDefaultAuthTypeDesc": "Метод автентифікації, застосований до імпортованих гостьових хостів. Виберіть тип автентифікації, який відповідає способу підключення до ваших гостей.", + "authTypePassword": "Пароль", + "authTypeKey": "SSH-ключ", + "authTypeCredential": "Посвідчення", + "authTypeOpkssh": "ОПКШ", + "authTypeNone": "Жоден", + "proxmoxDefaultCredential": "Облікові дані за замовчуванням", + "proxmoxDefaultCredentialDesc": "Облікові дані, що використовуються для імпортованих гостьових хостів, коли для типу автентифікації встановлено значення \"Облікові дані\".", + "proxmoxWindowsDetection": "Виявлення Windows / RDP", + "proxmoxWindowsDetectionDesc": "Шаблони імен, розділені комами, які запускають RDP замість SSH (без урахування регістру)", + "proxmoxDockerDetection": "Виявлення Docker", + "proxmoxDockerDetectionDesc": "Шаблони імен, розділені комами, що дозволяють Docker знаходити гостьові файли в відповідниках", + "proxmoxPreferredRanges": "Бажані діапазони IP-адрес", + "proxmoxPreferredRangesDesc": "Префікси, розділені комами, у порядку пріоритетності для вибору IP-адреси, коли гость має кілька інтерфейсів", + "proxmoxAutoSync": "Автоматична синхронізація гостей", + "proxmoxAutoSyncDesc": "Періодично виявляйте цей вузол Proxmox та створюйте або оновлюйте імпортовані гостьові хости, поки ваш сеанс розблоковано.", + "proxmoxSyncInterval": "Інтервал синхронізації (хвилини)", + "proxmoxSyncIntervalDesc": "Мінімум 5 хвилин. Планувальник пропускає заблоковані сеанси користувачів.", + "proxmoxMarkMissing": "Позначте відсутніх гостей", + "proxmoxMarkMissingDesc": "Додати тег proxmox-missing, коли раніше імпортований гостьовий сервер зникає, замість його видалення.", + "proxmoxLastSync": "Остання синхронізація", + "proxmoxLastSyncNever": "Ще не синхронізовано", + "proxmoxLastSyncNoResult": "Немає деталей результату", + "proxmoxLastSyncSummary": "{{created}} створено, {{updated}} оновлено, {{markedMissing}} відсутнє, {{skipped}} пропущено", "proxmoxLastSyncStatus": { - "error": "Failed", - "pending": "Pending", - "success": "Success" + "error": "Не вдалося", + "pending": "Очікує на розгляд", + "success": "Успіх" }, - "proxmoxDiscoverAction": "Discover & import Proxmox guests", - "proxmoxImportTitle": "Import from Proxmox", - "proxmoxSelectHost": "Select a Proxmox host…", - "proxmoxDiscover": "Discover", - "proxmoxDiscovering": "Discovering…", - "proxmoxDiscoverGuests": "Discover guests", - "proxmoxSelectAll": "Select all", - "proxmoxDeselectAll": "Deselect all", - "proxmoxNoGuests": "No guests found on this Proxmox node.", - "proxmoxResultImported": "{{count}} imported", - "proxmoxResultUpdated": "{{count}} updated", - "proxmoxResultFailed": "{{count}} failed", - "proxmoxImportComplete": "Proxmox import complete: {{summary}}", - "proxmoxDiscoveryFailed": "Discovery failed", - "proxmoxImportFailed": "Import failed", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host...", - "none": "None", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", - "proxmoxImportButton_one": "Import {{count}} host", - "proxmoxImportButton_other": "Import {{count}} hosts" + "proxmoxDiscoverAction": "Пошук та імпорт гостьових систем Proxmox", + "proxmoxImportTitle": "Імпорт з Proxmox", + "proxmoxSelectHost": "Виберіть хост Proxmox…", + "proxmoxDiscover": "Відкрийте", + "proxmoxDiscovering": "Відкриття…", + "proxmoxDiscoverGuests": "Відкрийте для себе гостей", + "proxmoxSelectAll": "Вибрати все", + "proxmoxDeselectAll": "Зняти вибір усіх", + "proxmoxNoGuests": "На цьому вузлі Proxmox не знайдено гостей.", + "proxmoxResultImported": "{{count}} імпортовано", + "proxmoxResultUpdated": "{{count}} оновлено", + "proxmoxResultFailed": "{{count}} не вдалося", + "proxmoxImportComplete": "Імпорт Proxmox завершено: {{summary}}", + "proxmoxDiscoveryFailed": "Не вдалося знайти", + "proxmoxImportFailed": "Імпорт не вдалося", + "docsLink": "Переглянути документи", + "hostNotFound": "Хост не знайдено", + "loadingHost": "Завантаження хоста...", + "none": "Жоден", + "proxmoxGuestsSelected_one": "{{count}} гість, {{selected}} вибрано", + "proxmoxGuestsSelected_other": "{{count}} гостей, {{selected}} вибрано", + "proxmoxImportButton_one": "Імпортувати хост {{count}}", + "proxmoxImportButton_other": "Імпортувати {{count}} хостів" }, "terminal": { - "connected": "Connected" + "connected": "Підключено" } } diff --git a/plugins/proxmox/locales/translated/vi_VN.json b/plugins/proxmox/locales/translated/vi_VN.json index 42c0d1128..16f5a4c14 100644 --- a/plugins/proxmox/locales/translated/vi_VN.json +++ b/plugins/proxmox/locales/translated/vi_VN.json @@ -1,25 +1,25 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Thống kê Proxmox" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Thống kê Proxmox", "cpuUsage": "Sử dụng CPU", "memoryUsage": "Sử dụng bộ nhớ", "diskUsage": "Mức sử dụng ổ đĩa", "networkInterfaces": "Giao diện mạng", "uptime": "Thời gian hoạt động", "systemInfo": "Thông tin hệ thống", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", + "guestsSummary": "Khách", + "storagePools": "Các bể chứa", "clusterHealth": "Cluster Health", "cpuCores_one": "{{count}} Lõi", "cpuCores_other": "{{count}} Lõi", "used": "Đã dùng", - "total": "Total", + "total": "Tổng cộng", "hostname": "Tên máy chủ", "kernel": "Nhân", - "pveVersion": "PVE Version", + "pveVersion": "Phiên bản PVE", "name": "Tên", "status": "Trạng thái", "type": "Loại", @@ -28,36 +28,36 @@ "disk": "Ổ đĩa", "running": "Đang chạy", "stopped": "Đã dừng", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} đang chạy", "inactive": "Không hoạt động", - "notClustered": "Standalone node (not part of a cluster)", + "notClustered": "Nút độc lập (không thuộc cụm máy chủ)", "quorate": "Quorate", - "notQuorate": "Not quorate", + "notQuorate": "Không đủ số lượng", "nodeOnline": "Trực tuyến", "nodeOffline": "Ngoại tuyến", "noHostSelected": "Chưa chọn máy chủ", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "Không tìm thấy pvesh - đây có phải là một node Proxmox không?", + "nodeDetectionFailed": "Không thể xác định tên nút Proxmox hợp lệ.", "connecting": "Đang kết nối...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "Không thể kết nối đến nút Proxmox.", "refresh": "Làm mới", - "searchGuests": "Search guests...", + "searchGuests": "Tìm kiếm khách...", "filterAll": "Tất cả", - "filterVm": "VM", + "filterVm": "Máy ảo", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "Không tìm thấy máy ảo hoặc vùng chứa LXC nào trên nút này.", + "noGuestsMatch": "Hiện không có khách nào phù hợp với bộ lọc hiện tại." }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "Bật thống kê Proxmox", + "enableProxmoxStatsDesc": "Hiển thị tab Thống kê Proxmox cho máy chủ này với các số liệu thống kê trực tiếp về nút, máy ảo, bộ nhớ và cụm được thu thập qua SSH.", + "proxmoxStatsPollInterval": "Khoảng thời gian thăm dò (giây)", + "proxmoxStatsPollIntervalDesc": "Tối thiểu 15 giây. Tần suất làm mới số liệu thống kê của node Proxmox.", + "proxmoxStatsNodeOverride": "Ghi đè tên nút", + "proxmoxStatsNodeOverrideDesc": "Ghi đè tính năng tự động phát hiện tên nút Proxmox (mặc định được phát hiện thông qua tên máy chủ).", + "proxmoxStatsNodeOverridePlaceholder": "Tự động nhận diện từ tên máy chủ", + "authTypeStepca": "Bước CA", "proxmoxIntegration": "Tích hợp Proxmox", "enableProxmox": "Bật Proxmox", "enableProxmoxDesc": "Đánh dấu máy chủ này là một node Proxmox. Cho phép khám phá và nhập khách trực tiếp từ máy chủ này.", @@ -110,8 +110,8 @@ "hostNotFound": "Không tìm thấy máy chủ", "loadingHost": "Đang tải máy chủ...", "none": "Không có", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} khách, {{selected}} được chọn", + "proxmoxGuestsSelected_other": "{{count}} khách, {{selected}} người được chọn", "proxmoxImportButton_one": "Nhập {{count}} máy chủ", "proxmoxImportButton_other": "Nhập {{count}} máy chủ" }, diff --git a/plugins/proxmox/locales/translated/zh_CN.json b/plugins/proxmox/locales/translated/zh_CN.json index a5b828a85..b9fcac1e7 100644 --- a/plugins/proxmox/locales/translated/zh_CN.json +++ b/plugins/proxmox/locales/translated/zh_CN.json @@ -1,9 +1,9 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox 统计数据" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Proxmox 统计数据", "cpuUsage": "CPU 使用率", "memoryUsage": "内存使用量", "diskUsage": "磁盘使用率", @@ -12,14 +12,14 @@ "systemInfo": "系统信息", "guestsSummary": "客户主机", "storagePools": "存储池", - "clusterHealth": "Cluster Health", + "clusterHealth": "集群健康", "cpuCores_one": "{{count}} 核", "cpuCores_other": "{{count}} 核", "used": "已用", "total": "总计", "hostname": "主机名", "kernel": "内核", - "pveVersion": "PVE Version", + "pveVersion": "PVE 版本", "name": "名称", "status": "状态", "type": "类型", @@ -28,36 +28,36 @@ "disk": "磁盘", "running": "运行中", "stopped": "已停止", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} 运行中", "inactive": "未激活", - "notClustered": "Standalone node (not part of a cluster)", + "notClustered": "独立节点(非集群的一部分)", "quorate": "达到法定节点数量", "notQuorate": "未达到法定节点数量", "nodeOnline": "在线", "nodeOffline": "离线", "noHostSelected": "未选择主机", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "未找到 pvesh - 这是 Proxmox 节点吗?", + "nodeDetectionFailed": "无法确定有效的 Proxmox 节点名称", "connecting": "连接中...", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "连接到 Proxmox 节点失败", "refresh": "刷新", "searchGuests": "搜索客户主机...", "filterAll": "全部", - "filterVm": "VM", + "filterVm": "虚拟机", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", + "noGuests": "此节点上未发现虚拟机或 LXC 容器。", "noGuestsMatch": "没有符合当前筛选条件的客户主机。" }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", + "enableProxmoxStats": "启用 Proxmox 统计信息", "enableProxmoxStatsDesc": "显示此主机的 Proxmox 统计信息标签页,其中包含通过 SSH 收集的实时节点、客户机、存储和集群统计信息。", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", + "proxmoxStatsPollInterval": "轮询间隔(秒)", + "proxmoxStatsPollIntervalDesc": "最短间隔 15 秒。Proxmox 节点统计信息刷新频率。", "proxmoxStatsNodeOverride": "覆盖节点名称", "proxmoxStatsNodeOverrideDesc": "覆盖自动检测的 Proxmox 节点名称(默认情况下通过主机名检测)。", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "proxmoxStatsNodeOverridePlaceholder": "从主机名自动检测", + "authTypeStepca": "步骤 CA", "proxmoxIntegration": "Proxmox 集成", "enableProxmox": "启用 Proxmox", "enableProxmoxDesc": "将此主机标记为 Proxmox 节点。启用从此主机直接进行客户机发现和导入。", @@ -110,8 +110,8 @@ "hostNotFound": "未找到主机", "loadingHost": "正在加载主机...", "none": "无", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} 访客, {{selected}} 已选", + "proxmoxGuestsSelected_other": "{{count}} 位客人, {{selected}} 位已选客人", "proxmoxImportButton_one": "导入 {{count}} 个主机", "proxmoxImportButton_other": "导入 {{count}} 个主机" }, diff --git a/plugins/proxmox/locales/translated/zh_TW.json b/plugins/proxmox/locales/translated/zh_TW.json index 2885db608..f01e786a1 100644 --- a/plugins/proxmox/locales/translated/zh_TW.json +++ b/plugins/proxmox/locales/translated/zh_TW.json @@ -1,63 +1,63 @@ { "nav": { - "proxmoxStats": "Proxmox Stats" + "proxmoxStats": "Proxmox 統計數據" }, "proxmoxStats": { - "tabTitle": "Proxmox Stats", + "tabTitle": "Proxmox 統計數據", "cpuUsage": "CPU 使用率", "memoryUsage": "記憶體使用量", "diskUsage": "磁碟使用率", "networkInterfaces": "網路介面", "uptime": "運行時間", "systemInfo": "系統資訊", - "guestsSummary": "Guests", - "storagePools": "Storage Pools", - "clusterHealth": "Cluster Health", + "guestsSummary": "賓客", + "storagePools": "儲水池", + "clusterHealth": "集群健康", "cpuCores_one": "{{count}} 核心", "cpuCores_other": "{{count}} 核心", "used": "已使用", - "total": "Total", + "total": "全部的", "hostname": "主機名稱", "kernel": "核心", - "pveVersion": "PVE Version", + "pveVersion": "PVE 版本", "name": "名稱", "status": "狀態", "type": "類型", "cpu": "CPU", - "mem": "Mem", + "mem": "記憶", "disk": "磁碟", "running": "執行中", "stopped": "已停止", - "guestCounts": "{{running}}/{{total}} running", + "guestCounts": "{{running}}/{{total}} 運作中", "inactive": "未啟用", - "notClustered": "Standalone node (not part of a cluster)", - "quorate": "Quorate", - "notQuorate": "Not quorate", + "notClustered": "獨立節點(非叢集的一部分)", + "quorate": "法定人數", + "notQuorate": "未達法定人數", "nodeOnline": "在線", "nodeOffline": "離線", "noHostSelected": "未選擇主機", - "pveshNotFound": "pvesh not found - is this a Proxmox node?", - "nodeDetectionFailed": "Unable to determine a valid Proxmox node name", + "pveshNotFound": "找不到 pvesh - 這是 Proxmox 節點嗎?", + "nodeDetectionFailed": "無法確定有效的 Proxmox 節點名稱", "connecting": "連線中…", - "connectionFailed": "Failed to connect to Proxmox node", + "connectionFailed": "連線到 Proxmox 節點失敗", "refresh": "重新整理", - "searchGuests": "Search guests...", + "searchGuests": "搜尋賓客...", "filterAll": "全選", - "filterVm": "VM", + "filterVm": "虛擬機", "filterLxc": "LXC", - "noGuests": "No VMs or LXC containers found on this node.", - "noGuestsMatch": "No guests match the current filters." + "noGuests": "此節點上未發現虛擬機器或 LXC 容器。", + "noGuestsMatch": "沒有符合目前篩選條件的客人。" }, "hosts": { "tabProxmox": "Proxmox", - "enableProxmoxStats": "Enable Proxmox Stats", - "enableProxmoxStatsDesc": "Show a Proxmox Stats tab for this host with live node, guest, storage, and cluster stats collected over SSH.", - "proxmoxStatsPollInterval": "Poll interval (seconds)", - "proxmoxStatsPollIntervalDesc": "Minimum 15 seconds. How often to refresh Proxmox node stats.", - "proxmoxStatsNodeOverride": "Node name override", - "proxmoxStatsNodeOverrideDesc": "Override auto-detection of the Proxmox node name (detected via hostname by default).", - "proxmoxStatsNodeOverridePlaceholder": "Auto-detected from hostname", - "authTypeStepca": "Step CA", + "enableProxmoxStats": "啟用 Proxmox 統計訊息", + "enableProxmoxStatsDesc": "顯示此主機的 Proxmox 統計資料標籤,其中包含透過 SSH 收集的即時節點、虛擬機器、儲存和叢集統計資訊。", + "proxmoxStatsPollInterval": "輪詢間隔(秒)", + "proxmoxStatsPollIntervalDesc": "最短間隔 15 秒。 Proxmox 節點統計資訊的刷新頻率。", + "proxmoxStatsNodeOverride": "節點名稱覆蓋", + "proxmoxStatsNodeOverrideDesc": "覆蓋 Proxmox 節點名稱的自動偵測(預設透過主機名稱偵測)。", + "proxmoxStatsNodeOverridePlaceholder": "從主機名稱自動偵測", + "authTypeStepca": "步驟 CA", "proxmoxIntegration": "Proxmox 整合", "enableProxmox": "啟用 Proxmox", "enableProxmoxDesc": "將此主機標記為 Proxmox 節點。啟用直接從此主機探索及匯入客體的功能。", @@ -110,8 +110,8 @@ "hostNotFound": "找不到主機", "loadingHost": "正在載入主機...", "none": "無", - "proxmoxGuestsSelected_one": "{{count}} guest, {{selected}} selected", - "proxmoxGuestsSelected_other": "{{count}} guests, {{selected}} selected", + "proxmoxGuestsSelected_one": "{{count}} 訪客, {{selected}} 已選", + "proxmoxGuestsSelected_other": "{{count}} 位客人, {{selected}} 位已選客人", "proxmoxImportButton_one": "匯入 {{count}} 台主機", "proxmoxImportButton_other": "匯入 {{count}} 台主機" }, diff --git a/plugins/remote-desktop/locales/translated/bn_BD.json b/plugins/remote-desktop/locales/translated/bn_BD.json index 306981f08..5b858e1da 100644 --- a/plugins/remote-desktop/locales/translated/bn_BD.json +++ b/plugins/remote-desktop/locales/translated/bn_BD.json @@ -1,350 +1,350 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "{{type}} সেশনে সংযোগ স্থাপন করা হচ্ছে...", + "checkingGuacd": "রিমোট ডেস্কটপ পরিষেবা পরীক্ষা করা হচ্ছে...", + "requestingToken": "{{type}} সংযোগ টোকেনের জন্য অনুরোধ করা হচ্ছে...", + "openingSession": "{{type}} সেশন শুরু হচ্ছে...", + "negotiating": "{{type}} করমর্দন নিয়ে আলোচনা চলছে...", + "sessionReady": "{{type}} সেশন প্রস্তুত", + "connectionError": "সংযোগ ত্রুটি", + "connectionFailed": "সংযোগ ব্যর্থ হয়েছে", + "failedToConnect": "সংযোগ টোকেন পেতে ব্যর্থ হয়েছে", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "reconnect": "পুনরায় সংযোগ করুন", + "retry": "পুনরায় চেষ্টা করুন", + "guacdUnavailable": "রিমোট ডেস্কটপ সার্ভিস (guacd) উপলব্ধ নেই। অনুগ্রহ করে নিশ্চিত করুন যে guacd চালু ও অ্যাক্সেসযোগ্য আছে এবং অ্যাডমিন সেটিংসে সঠিকভাবে কনফিগার করা আছে।", + "credentialPromptTitle": "RDP পরিচয়পত্র প্রবেশ করান", + "credentialPromptDescription": "এই হোস্টটি সংযোগের সময় ক্রেডেনশিয়াল চাওয়ার জন্য সেট করা আছে। এগুলি শুধুমাত্র এই সেশনের জন্য ব্যবহৃত হয় এবং সংরক্ষিত হয় না।", + "connect": "সংযোগ করুন", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "ড্রাইভ ফাইল", + "parent": "অভিভাবক ডিরেক্টরি", + "refresh": "রিফ্রেশ", + "empty": "এই ফোল্ডারটি খালি", + "listFailed": "এই ফোল্ডারটি পড়তে ব্যর্থ হয়েছে", + "download": "ডাউনলোড করুন", + "downloadFailed": "{{name}} ডাউনলোড করতে ব্যর্থ হয়েছে", + "upload": "ফাইল আপলোড করুন", + "uploading": "{{name}} আপলোড হচ্ছে ...", + "uploaded": "আপলোড করা হয়েছে {{name}}", + "uploadFailed": "{{name}} আপলোড করতে ব্যর্থ হয়েছে", + "uploadDisabled": "এই সংযোগের জন্য আপলোড নিষ্ক্রিয় করা হয়েছে।", + "driveUnavailable": "ফাইল আপলোড করার আগে RDP ড্রাইভ রিডাইরেকশন সক্রিয় করুন।", + "driveNotWritable": "guacd ড্রাইভ ফোল্ডারে লিখতে পারছে না। GUACD_DRIVE_PATH (অথবা হোস্টের ড্রাইভ পাথ) এবং এর অনুমতিগুলো পরীক্ষা করুন।", + "dropToUpload": "আপলোড করতে ফাইলগুলো ড্রপ করুন" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "winL": "উইন+এল (লক স্ক্রিন)", + "winKey": "উইন্ডোজ কী", + "superL": "সুপার+এল (লক স্ক্রিন)", + "superKey": "সুপার কী", + "super": "সুপার", + "cmdL": "Cmd+L (লক স্ক্রিন)", + "cmdKey": "কমান্ড কী", + "cmd": "কমান্ডার", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "alt": "বিকল্প", + "shift": "শিফট", + "win": "জয়", + "stickyActive": "{{key}} (আটকানো - খুলতে ক্লিক করুন)", + "stickyInactive": "{{key}} (আটকাতে ক্লিক করুন)", + "esc": "পালানো", + "tab": "ট্যাব", + "home": "হোম", + "end": "শেষ", + "pageUp": "পৃষ্ঠা উপরে", + "pageDown": "পৃষ্ঠা নিচে", + "arrowUp": "তীর ঊর্ধ্বমুখী", + "arrowDown": "অ্যারো ডাউন", + "arrowLeft": "বাম তীর", + "arrowRight": "ডান তীরচিহ্ন", + "fnToggle": "ফাংশন কী", + "reconnect": "পুনরায় সংযোগ সেশন", + "collapse": "টুলবার সংকুচিত করুন", + "expand": "টুলবার প্রসারিত করুন", + "dragHandle": "অবস্থান পরিবর্তন করতে টেনে আনুন", + "hide": "এই সেশনের জন্য লুকান। এটিকে স্থায়ীভাবে নিষ্ক্রিয় করতে, হোস্ট সেটিংস → সাধারণ → সংযোগ টুলবার খুলুন।", + "zoomIn": "জুম ইন", + "zoomOut": "জুম আউট", + "resetZoom": "জুম রিসেট করুন", + "fitToScreen": "স্ক্রিনের সাথে মানানসই", + "switchToTrackpad": "ট্র্যাকপ্যাড মোডে যান (কার্সার সরাতে ড্র্যাগ করুন, ক্লিক করতে ট্যাপ করুন)", + "switchToTouch": "টাচ মোডে যান (যেখানে ক্লিক করতে চান সেখানে সরাসরি ট্যাপ করুন)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "রিমোট ডেস্কটপ বন্ধ করা আছে। একজন অ্যাডমিন সেটিংস থেকে এটি চালু করতে পারেন।" }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "উইন্ডোজ রিমোট ডেস্কটপে খোলা হয়েছে", + "nativeRdpFailed": "উইন্ডোজ রিমোট ডেস্কটপ খুলতে ব্যর্থ হয়েছে", + "openNativeRdp": "উইন্ডোজ রিমোট ডেস্কটপে খুলুন", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", - "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", - "username": "Username", - "password": "Password", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", - "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", - "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", - "driveNamePlaceholder": "Termix Drive" + "toolbar": "টুলবার", + "connection": "সংযোগ", + "authentication": "প্রমাণীকরণ", + "storedCredential": "সংরক্ষিত পরিচয়পত্র", + "authMethod": "প্রমাণীকরণ পদ্ধতি", + "authTypeDirect": "সরাসরি", + "authTypeCredential": "শংসাপত্র", + "authTypeNone": "কোনোটিই না", + "authTypeNoneDesc": "কোনো পরিচয়পত্র সংরক্ষিত থাকে না। প্রতিবার সংযোগ করার সময় আপনাকে একটি ইউজারনেম এবং পাসওয়ার্ড দিতে বলা হবে; সেগুলি সংরক্ষণ করা হয় না।", + "selectCredential": "একটি শংসাপত্র নির্বাচন করুন...", + "connectionSettings": "সংযোগ সেটিংস", + "displaySettings": "ডিসপ্লে সেটিংস", + "audioSettings": "অডিও সেটিংস", + "rdpPerformance": "আরডিপি পারফরম্যান্স", + "deviceRedirection": "ডিভাইস পুনঃনির্দেশনা", + "session": "অধিবেশন", + "gateway": "গেটওয়ে", + "remoteApp": "রিমোটঅ্যাপ", + "clipboard": "ক্লিপবোর্ড", + "sessionRecording": "সেশন রেকর্ডিং", + "wakeOnLan": "ওয়েক-অন-ল্যান", + "vncSettings": "VNC সেটিংস", + "terminalSettings": "টার্মিনাল সেটিংস", + "rdpPort": "আরডিপি পোর্ট", + "username": "ব্যবহারকারীর নাম", + "password": "পাসওয়ার্ড", + "passwordSaved": "পাসওয়ার্ড সংরক্ষিত আছে, পরিবর্তন করতে টাইপ করুন", + "domain": "ডোমেইন", + "securityMode": "নিরাপত্তা মোড", + "width": "প্রস্থ", + "height": "উচ্চতা", + "dpi": "ডিপিআই", + "clientName": "ক্লায়েন্টের নাম", + "initialProgram": "প্রাথমিক প্রোগ্রাম", + "serverLayout": "সার্ভার লেআউট", + "timezone": "সময় অঞ্চল", + "loadBalanceInfo": "লোড ব্যালেন্স তথ্য / কুকি", + "loadBalanceInfoDesc": "RDS ফার্ম লোড ব্যালান্সিংয়ের জন্য RD কানেকশন ব্রোকার কুকি (যেমন tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "গুয়াকড প্রক্সি", + "guacdHostname": "গুয়াকড হোস্ট", + "guacdHostnamePlaceholder": "গ্লোবাল ডিফল্ট", + "guacdPort": "গুয়াকড পোর্ট", + "guacdProxyDesc": "এই সংযোগের জন্য গ্লোবাল guacd ইনস্ট্যান্সটি ওভাররাইড করুন। বিশ্বব্যাপী কনফিগার করা guacd ব্যবহার করতে এটি খালি রাখুন।", + "gatewayHostname": "গেটওয়ে হোস্টনাম", + "gatewayPort": "গেটওয়ে পোর্ট", + "gatewayUsername": "গেটওয়ে ব্যবহারকারীর নাম", + "gatewayPassword": "গেটওয়ে পাসওয়ার্ড", + "gatewayDomain": "গেটওয়ে ডোমেইন", + "remoteAppProgram": "রিমোটঅ্যাপ প্রোগ্রাম", + "workingDirectory": "কর্ম ডিরেক্টরি", + "arguments": "যুক্তি", + "normalizeLineEndings": "লাইনের শেষাংশ স্বাভাবিক করুন", + "macAddress": "MAC ঠিকানা", + "broadcastAddress": "সম্প্রচার ঠিকানা", + "udpPort": "ইউডিপি পোর্ট", + "waitTimeS": "অপেক্ষার সময় (সেকেন্ড)", + "driveName": "ড্রাইভের নাম", + "drivePath": "ড্রাইভ পাথ", + "ignoreCertificate": "সার্টিফিকেট উপেক্ষা করুন", + "ignoreCertificateDesc": "সেলফ-সাইনড সার্টিফিকেটযুক্ত হোস্টগুলিতে সংযোগের অনুমতি দিন", + "forceLossless": "বল ক্ষয়হীন", + "forceLosslessDesc": "লসলেস ইমেজ এনকোডিং বাধ্যতামূলক করুন (উচ্চতর গুণমান, বেশি ব্যান্ডউইথ)", + "disableAudio": "অডিও নিষ্ক্রিয় করুন", + "disableAudioDesc": "রিমোট সেশন থেকে সমস্ত অডিও মিউট করুন", + "enableAudioInput": "অডিও ইনপুট (মাইক্রোফোন) সক্রিয় করুন", + "enableAudioInputDesc": "স্থানীয় মাইক্রোফোনটি রিমোট সেশনে ফরোয়ার্ড করুন", + "wallpaper": "ওয়ালপেপার", + "wallpaperDesc": "ডেস্কটপ ওয়ালপেপার দেখান (এটি বন্ধ করলে পারফরম্যান্স উন্নত হয়)", + "theming": "থিমিং", + "themingDesc": "ভিজ্যুয়াল থিম এবং স্টাইল সক্রিয় করুন", + "fontSmoothing": "ফন্ট মসৃণকরণ", + "fontSmoothingDesc": "ক্লিয়ারটাইপ ফন্ট রেন্ডারিং সক্ষম করুন", + "fullWindowDrag": "সম্পূর্ণ উইন্ডো ড্র্যাগ", + "fullWindowDragDesc": "ড্র্যাগ করার সময় উইন্ডোর বিষয়বস্তু দেখান", + "desktopComposition": "ডেস্কটপ কম্পোজিশন", + "desktopCompositionDesc": "এরো গ্লাস এফেক্টস সক্রিয় করুন", + "menuAnimations": "মেনু অ্যানিমেশন", + "menuAnimationsDesc": "মেনু ফেড এবং স্লাইড অ্যানিমেশন সক্রিয় করুন", + "disableBitmapCaching": "বিটম্যাপ ক্যাশিং নিষ্ক্রিয় করুন", + "disableBitmapCachingDesc": "বিটম্যাপ ক্যাশে বন্ধ করুন (এটি গ্লিচ কমাতে সাহায্য করতে পারে)।", + "disableOffscreenCaching": "অফস্ক্রিন ক্যাশিং নিষ্ক্রিয় করুন", + "disableOffscreenCachingDesc": "অফস্ক্রিন ক্যাশে বন্ধ করুন", + "disableGlyphCaching": "গ্লিফ ক্যাশিং নিষ্ক্রিয় করুন", + "disableGlyphCachingDesc": "গ্লিফ ক্যাশে বন্ধ করুন", + "enableGfx": "GFX সক্ষম করুন", + "enableGfxDesc": "RemoteFX গ্রাফিক্স পাইপলাইন ব্যবহার করুন", + "enablePrinting": "প্রিন্টিং সক্ষম করুন", + "enablePrintingDesc": "স্থানীয় প্রিন্টারগুলিকে রিমোট সেশনে পুনঃনির্দেশিত করুন", + "enableDriveRedirection": "ড্রাইভ পুনঃনির্দেশনা সক্ষম করুন", + "enableDriveRedirectionDesc": "রিমোট সেশনে একটি স্থানীয় ফোল্ডারকে ড্রাইভ হিসেবে ম্যাপ করুন।", + "createDrivePath": "ড্রাইভ পাথ তৈরি করুন", + "createDrivePathDesc": "ফোল্ডারটি বিদ্যমান না থাকলে স্বয়ংক্রিয়ভাবে তৈরি করুন।", + "disableDownload": "ডাউনলোড নিষ্ক্রিয় করুন", + "disableDownloadDesc": "রিমোট সেশন থেকে ফাইল ডাউনলোড প্রতিরোধ করুন", + "disableUpload": "আপলোড নিষ্ক্রিয় করুন", + "disableUploadDesc": "রিমোট সেশনে ফাইল আপলোড করা প্রতিরোধ করুন", + "enableTouch": "টাচ সক্ষম করুন", + "enableTouchDesc": "টাচ ইনপুট ফরওয়ার্ডিং সক্ষম করুন", + "consoleSession": "কনসোল সেশন", + "consoleSessionDesc": "নতুন সেশন শুরু করার পরিবর্তে কনসোলে (সেশন ০) সংযোগ করুন।", + "sendWolPacket": "WOL প্যাকেট পাঠান", + "sendWolPacketDesc": "সংযোগ করার আগে এই হোস্টকে জাগিয়ে তুলতে একটি ম্যাজিক প্যাকেট পাঠান।", + "disableCopy": "কপি নিষ্ক্রিয় করুন", + "disableCopyDesc": "রিমোট সেশন থেকে টেক্সট কপি করা প্রতিরোধ করুন", + "disablePaste": "পেস্ট নিষ্ক্রিয় করুন", + "disablePasteDesc": "রিমোট সেশনে টেক্সট পেস্ট করা প্রতিরোধ করুন", + "createPathIfMissing": "অনুপস্থিত থাকলে পাথ তৈরি করুন", + "createPathIfMissingDesc": "স্বয়ংক্রিয়ভাবে রেকর্ডিং ডিরেক্টরি তৈরি করুন", + "excludeOutput": "আউটপুট বাদ দিন", + "excludeOutputDesc": "স্ক্রিন আউটপুট রেকর্ড করবেন না (শুধুমাত্র মেটাডেটা)", + "excludeMouse": "মাউস বাদ দিন", + "excludeMouseDesc": "মাউসের নড়াচড়া রেকর্ড করবেন না।", + "includeKeystrokes": "কীস্ট্রোক অন্তর্ভুক্ত করুন", + "includeKeystrokesDesc": "স্ক্রিন আউটপুটের পাশাপাশি সরাসরি কীস্ট্রোক রেকর্ড করুন।", + "vncPort": "ভিএনসি পোর্ট", + "vncPassword": "VNC পাসওয়ার্ড", + "vncUsernameOptional": "ব্যবহারকারীর নাম (ঐচ্ছিক)", + "vncLeaveBlank": "প্রয়োজন না হলে খালি রাখুন", + "cursorMode": "কার্সার মোড", + "swapRedBlue": "লাল/নীল অদলবদল করুন", + "swapRedBlueDesc": "লাল এবং নীল রঙের চ্যানেলগুলি অদলবদল করুন (কিছু রঙের সমস্যা সমাধান করে)", + "readOnly": "শুধুমাত্র পঠনযোগ্য", + "readOnlyDesc": "কোনো ইনপুট না পাঠিয়ে রিমোট স্ক্রিন দেখুন।", + "telnetPort": "টেলনেট পোর্ট", + "terminalType": "টার্মিনাল টাইপ", + "fontName": "ফন্টের নাম", + "fontSize": "ফন্ট সাইজ", + "colorScheme": "রঙের পরিকল্পনা", + "backspaceKey": "ব্যাকস্পেস কী", + "colorDepth": "রঙের গভীরতা", + "resizeMethod": "আকার পরিবর্তন পদ্ধতি", + "driveNamePlaceholder": "টারমিক্স ড্রাইভ" }, - "remoteDesktop": "Remote Desktop", - "tabRdp": "RDP", - "tabVnc": "VNC", - "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "remoteDesktop": "রিমোট ডেস্কটপ", + "tabRdp": "আরডিপি", + "tabVnc": "ভিএনসি", + "tabTelnet": "টেলনেট", + "virtualNetwork": "ভার্চুয়াল নেটওয়ার্ক", + "unencryptedShell": "এনক্রিপ্টবিহীন শেল", + "remoteDesktopNotes": "নোট", + "userDefaultsNote": "আপনি যে সেটিংস অপরিবর্তিত রাখবেন, তা আপনার হোস্টের ডিফল্ট অনুযায়ী নির্ধারিত হবে।", + "connectionOriginNote": "ডেস্কটপ অ্যাপে, RDP, VNC এবং Telnet রিমোট সার্ভার ব্যবহার করে, যদি না হোস্টটি 'এই ডিভাইস' (This device) হিসেবে সেট করা থাকে। এর জন্য এমন একটি guacd প্রয়োজন, যা এই মেশিনের নাগালের মধ্যে থাকে। রিমোট ডেস্কটপ সেটিংসে অথবা প্রতিটি হোস্টের জন্য guacd প্রক্সির অধীনে এটি সেট করুন।", + "docsLink": "নথি দেখুন", + "connectionOriginGuacamoleNote": "RDP, VNC এবং Telnet রিমোট সার্ভার ব্যবহার করে, যদি না আপনি \"এই ডিভাইস\" বিকল্পটি বেছে নেন, যার জন্য এমন একটি guacd প্রয়োজন যা এই মেশিনের নাগালের মধ্যে থাকে। guacd URL সেটিংসে, অথবা প্রতিটি হোস্টের জন্য guacd Proxy-এর অধীনে এটি সেট করুন।" }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "রিমোট ডেস্কটপ", + "feature_desktop_desc": "SSH-এর মতোই একটি ট্যাবে RDP, VNC এবং Telnet সেশন খুলুন।" }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "রঙের গভীরতা", + "description": "যেসব RDP হোস্ট তাদের ডিফল্ট সেটিংসে রাখে, তাদের জন্য ব্যবহৃত হয়।" }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "আকার পরিবর্তন পদ্ধতি", + "description": "রিমোট স্ক্রিনটি কীভাবে উইন্ডোর আকার অনুসরণ করে" }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "ডিসপ্লে আপডেট", + "resizeReconnect": "পুনরায় সংযোগ করুন", + "inherit": "উত্তরাধিকার সূত্রে", + "on": "চালু", + "off": "বন্ধ", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "বল ক্ষয়হীন", + "description": "লসলেস ইমেজ এনকোডিং বাধ্যতামূলক করুন (উচ্চতর গুণমান, বেশি ব্যান্ডউইথ)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "ওয়ালপেপার", + "description": "ডেস্কটপ ওয়ালপেপার দেখান (এটি বন্ধ করলে পারফরম্যান্স উন্নত হয়)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "ফন্ট মসৃণকরণ", + "description": "ক্লিয়ারটাইপ ফন্ট রেন্ডারিং সক্ষম করুন" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "ডেস্কটপ কম্পোজিশন", + "description": "এরো গ্লাস এফেক্টস সক্রিয় করুন" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "অডিও নিষ্ক্রিয় করুন", + "description": "রিমোট সেশন থেকে সমস্ত অডিও মিউট করুন" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "প্রিন্টিং সক্ষম করুন", + "description": "স্থানীয় প্রিন্টারগুলিকে রিমোট সেশনে পুনঃনির্দেশিত করুন" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "ড্রাইভ পুনঃনির্দেশনা সক্ষম করুন", + "description": "রিমোট সেশনে একটি স্থানীয় ফোল্ডারকে ড্রাইভ হিসেবে ম্যাপ করুন।" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "কপি নিষ্ক্রিয় করুন", + "description": "রিমোট সেশন থেকে টেক্সট কপি করা প্রতিরোধ করুন" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "পেস্ট নিষ্ক্রিয় করুন", + "description": "রিমোট সেশনে টেক্সট পেস্ট করা প্রতিরোধ করুন" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "রিমোট ডেস্কটপ ডিফল্ট", + "colorDepth16": "১৬-বিট", + "colorDepth24": "২৪-বিট", + "colorDepth32": "৩২-বিট" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "রিমোট ডেস্কটপ সক্ষম করুন", + "description": "guacd-এর মাধ্যমে RDP, VNC এবং Telnet সংযোগের অনুমতি দিন।" }, "guacdUrl": { "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", - "placeholder": "guacd:4822" + "description": "guacd কোথায় শোনে, তা হোস্ট:পোর্ট হিসেবে নির্ধারিত হয়। GUACD_URL, GUACD_HOST এবং GUACD_PORT এনভায়রনমেন্ট ভেরিয়েবলগুলো এটিকে ওভাররাইড করে।", + "placeholder": "গুয়াকডি:৪৮২২" } }, "host": { "enableRdp": { - "label": "RDP" + "label": "আরডিপি" }, "enableVnc": { - "label": "VNC" + "label": "ভিএনসি" }, "enableTelnet": { - "label": "Telnet" + "label": "টেলনেট" }, "rdpPort": { - "label": "RDP port" + "label": "আরডিপি পোর্ট" }, "vncPort": { - "label": "VNC port" + "label": "VNC পোর্ট" }, "telnetPort": { - "label": "Telnet port" + "label": "টেলনেট পোর্ট" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "আরডিপি নিরাপত্তা মোড" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "সার্টিফিকেটের ত্রুটি উপেক্ষা করুন" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd সেটিংস" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "রিমোট ডেস্কটপ টুলবার", + "description": "RDP, VNC এবং Telnet সেশনে টুলবারটি দেখান।" }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "প্রদর্শন", + "displayDefaultsTab": "রিমোট ডেস্কটপ" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "RDP-এর সাথে সংযোগ করুন", + "connectVnc": "VNC দিয়ে সংযোগ করুন", + "connectTelnet": "টেলনেটের সাথে সংযোগ করুন" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "রিমোট ডেস্কটপ সেশন শেয়ার করুন", + "description": "সেশন শেয়ারিং এবং কোলাব রুমগুলোকে এই ব্যবহারকারীর RDP, VNC এবং Telnet সেশনগুলো অন্যদের কাছে দেখানোর অনুমতি দিন।" } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "রিমোট সার্ভার প্রয়োজন। এই সংযোগের ধরণটি ব্যবহার করতে সেটিংস-এ একটি রিমোট সার্ভার সংযুক্ত করুন।" } } diff --git a/plugins/remote-desktop/locales/translated/hi_IN.json b/plugins/remote-desktop/locales/translated/hi_IN.json index e7e1e51d1..f07ef0d6c 100644 --- a/plugins/remote-desktop/locales/translated/hi_IN.json +++ b/plugins/remote-desktop/locales/translated/hi_IN.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "{{type}} सत्र से कनेक्ट हो रहा है...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", + "checkingGuacd": "रिमोट डेस्कटॉप सेवा की जाँच की जा रही है...", + "requestingToken": "{{type}} कनेक्शन टोकन का अनुरोध किया जा रहा है...", "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "negotiating": "बातचीत चल रही है {{type}} हाथ मिलाना...", + "sessionReady": "{{type}} सत्र तैयार है", "connectionError": "कनेक्शन त्रुटि", "connectionFailed": "कनेक्शन विफल", "failedToConnect": "कनेक्शन टोकन प्राप्त करने में विफल", @@ -14,37 +14,37 @@ "reconnect": "पुनः कनेक्ट करें", "retry": "पुनः प्रयास करें", "guacdUnavailable": "रिमोट डेस्कटॉप सेवा (guacd) उपलब्ध नहीं है। कृपया सुनिश्चित करें कि guacd चल रहा है और पहुंच योग्य है और एडमिन सेटिंग्स में ठीक से कॉन्फ़िगर किया गया है।", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "आरडीपी क्रेडेंशियल दर्ज करें", + "credentialPromptDescription": "इस होस्ट पर कनेक्ट होने पर क्रेडेंशियल मांगे जाएंगे। ये क्रेडेंशियल केवल इसी सेशन के लिए उपयोग किए जाएंगे और सेव नहीं किए जाएंगे।", "connect": "कनेक्ट", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "ड्राइव फ़ाइलें", + "parent": "मूल निर्देशिका", "refresh": "ताज़ा करें", "empty": "यह फ़ोल्डर खाली है", - "listFailed": "Failed to read this folder", + "listFailed": "इस फ़ोल्डर को पढ़ने में विफल रहा", "download": "डाउनलोड", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "डाउनलोड करने में विफल {{name}}", + "upload": "फाइलें अपलोड करें", "uploading": "{{name}} अपलोड हो रहा है...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "अपलोड किया गया {{name}}", + "uploadFailed": "अपलोड करने में विफल {{name}}", + "uploadDisabled": "इस कनेक्शन के लिए अपलोड अक्षम हैं।", + "driveUnavailable": "फ़ाइलें अपलोड करने से पहले RDP ड्राइव रीडायरेक्शन को सक्षम करें", + "driveNotWritable": "GUACD ड्राइव फ़ोल्डर में लिख नहीं सकता। कृपया GUACD_DRIVE_PATH (या होस्ट का ड्राइव पाथ) और उसकी अनुमतियाँ जाँचें।", + "dropToUpload": "अपलोड करने के लिए फ़ाइलें ड्रॉप करें" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (लॉक स्क्रीन)", "winKey": "विंडोज की", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "सुपर+एल (लॉक स्क्रीन)", + "superKey": "सुपर कुंजी", + "super": "बहुत अच्छा", + "cmdL": "Cmd+L (लॉक स्क्रीन)", + "cmdKey": "कमांड कुंजी", + "cmd": "अध्यक्ष एवं प्रबंध निदेशक", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "टूलबार समेटें", "expand": "टूलबार विस्तारित करें", "dragHandle": "स्थान बदलने के लिए खींचें", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "इस सत्र के लिए इसे छुपाएं। इसे स्थायी रूप से अक्षम करने के लिए, होस्ट सेटिंग्स → सामान्य → कनेक्शन टूलबार खोलें।", + "zoomIn": "ज़ूम इन", + "zoomOut": "ज़ूम आउट", + "resetZoom": "ज़ूम रीसेट करें", + "fitToScreen": "स्क्रीनिंग के लिए उपयुक्त", + "switchToTrackpad": "ट्रैकपैड मोड पर स्विच करें (कर्सर को स्थानांतरित करने के लिए ड्रैग करें, क्लिक करने के लिए टैप करें)", + "switchToTouch": "टच मोड पर स्विच करें (जहां क्लिक करना चाहते हैं वहां सीधे टैप करें)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "रिमोट डेस्कटॉप बंद है। व्यवस्थापक सेटिंग्स में जाकर इसे चालू कर सकते हैं।" }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "विंडोज़ रिमोट डेस्कटॉप में खोला गया", + "nativeRdpFailed": "विंडोज़ रिमोट डेस्कटॉप खोलने में विफल", + "openNativeRdp": "विंडोज़ रिमोट डेस्कटॉप में खोलें", "guac": { - "toolbar": "Toolbar", + "toolbar": "उपकरण पट्टी", "connection": "कनेक्शन", "authentication": "प्रमाणीकरण", "storedCredential": "संग्रहीत क्रेडेंशियल", @@ -89,7 +89,7 @@ "authTypeDirect": "सीधा", "authTypeCredential": "क्रेडेंशियल", "authTypeNone": "कोई नहीं", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "कोई भी क्रेडेंशियल स्टोर नहीं किए जाते हैं। हर बार कनेक्ट करते समय आपसे उपयोगकर्ता नाम और पासवर्ड मांगा जाएगा; वे सहेजे नहीं जाते हैं।", "selectCredential": "एक क्रेडेंशियल चुनें...", "connectionSettings": "कनेक्शन सेटिंग्स", "displaySettings": "प्रदर्शन सेटिंग्स", @@ -107,7 +107,7 @@ "rdpPort": "RDP पोर्ट", "username": "उपयोगकर्ता नाम", "password": "पासवर्ड", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "पासवर्ड सहेज लिया गया है, बदलने के लिए टाइप करें", "domain": "डोमेन", "securityMode": "सुरक्षा मोड", "width": "चौड़ाई", @@ -212,7 +212,7 @@ "backspaceKey": "बैकस्पेस कुंजी", "colorDepth": "रंग गहराई", "resizeMethod": "रीसाइज़ विधि", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "टर्मिक्स ड्राइव" }, "remoteDesktop": "दूरस्थ डेस्कटॉप", "tabRdp": "RDP", @@ -221,28 +221,28 @@ "virtualNetwork": "वर्चुअल नेटवर्क", "unencryptedShell": "अनएन्क्रिप्टेड शेल", "remoteDesktopNotes": "नोट्स", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "जिन सेटिंग्स को आप अपरिवर्तित छोड़ते हैं, वे आपके होस्ट की डिफ़ॉल्ट सेटिंग्स का पालन करती हैं।", + "connectionOriginNote": "डेस्कटॉप ऐप पर, RDP, VNC और Telnet रिमोट सर्वर का उपयोग करते हैं, जब तक कि होस्ट को \"यह डिवाइस\" पर सेट न किया गया हो। इसके लिए एक GUACD प्रॉक्सी की आवश्यकता होती है जिस तक यह मशीन पहुंच सके। इसे रिमोट डेस्कटॉप सेटिंग्स में या GUACD प्रॉक्सी के अंतर्गत प्रति होस्ट सेट करें।", "docsLink": "दस्तावेज़ देखें", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC और Telnet रिमोट सर्वर का उपयोग करते हैं, जब तक कि आप \"यह डिवाइस\" का चयन न करें, जिसके लिए एक guacd की आवश्यकता होती है जिस तक यह मशीन पहुंच सके। इसे guacd URL सेटिंग में या guacd प्रॉक्सी के अंतर्गत प्रति होस्ट सेट करें।" }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "दूरवर्ती डेस्कटॉप", + "feature_desktop_desc": "RDP, VNC और Telnet सेशन को SSH की तरह ही एक टैब में खोलें।" }, "settings": { "user": { "colorDepth": { "label": "रंग गहराई", - "description": "Used for RDP hosts that leave it on their default." + "description": "इसका उपयोग उन आरडीपी होस्ट के लिए किया जाता है जो इसे डिफ़ॉल्ट सेटिंग पर छोड़ देते हैं।" }, "resizeMethod": { "label": "रीसाइज़ विधि", - "description": "How the remote screen follows the window size." + "description": "रिमोट स्क्रीन विंडो के आकार का अनुसरण कैसे करती है।" }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "डिस्प्ले अपडेट", "resizeReconnect": "पुनः कनेक्ट करें", - "inherit": "Inherit", + "inherit": "इनहेरिट", "on": "चालू", "off": "बंद", "forceLossless": { @@ -281,20 +281,20 @@ "label": "पेस्ट अक्षम करें", "description": "रिमोट सत्र में टेक्स्ट पेस्ट करना रोकें" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "रिमोट डेस्कटॉप डिफ़ॉल्ट", + "colorDepth16": "16-बिट", + "colorDepth24": "24-बिट", + "colorDepth32": "32-बिट" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "रिमोट डेस्कटॉप सक्षम करें", + "description": "guacd के माध्यम से RDP, VNC और Telnet कनेक्शन की अनुमति दें।" }, "guacdUrl": { "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", - "placeholder": "guacd:4822" + "description": "जहां guacd होस्ट:पोर्ट के रूप में सुनता है। GUACD_URL, GUACD_HOST और GUACD_PORT पर्यावरण चर इसे ओवरराइड करते हैं।", + "placeholder": "गुआकडी:4822" } }, "host": { @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "आरडीपी पोर्ट" }, "vncPort": { - "label": "VNC port" + "label": "वीएनसी पोर्ट" }, "telnetPort": { - "label": "Telnet port" + "label": "टेलनेट पोर्ट" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "आरडीपी सुरक्षा मोड" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "प्रमाणपत्र त्रुटियों को अनदेखा करें" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "गुआकडी सेटिंग्स" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "रिमोट डेस्कटॉप टूलबार", + "description": "RDP, VNC और Telnet सत्रों में टूलबार दिखाएँ।" }, - "displayGroup": "Display", + "displayGroup": "प्रदर्शन", "displayDefaultsTab": "दूरस्थ डेस्कटॉप" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "आरडीपी से जुड़ें", + "connectVnc": "VNC से कनेक्ट करें", + "connectTelnet": "टेलनेट के माध्यम से कनेक्ट करें" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "रिमोट डेस्कटॉप सेशन साझा करें", + "description": "सेशन शेयरिंग और कोलैब रूम को इस उपयोगकर्ता के RDP, VNC और Telnet सेशन दूसरों को दिखाने की अनुमति दें।" } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "रिमोट सर्वर आवश्यक है। इस कनेक्शन प्रकार का उपयोग करने के लिए सेटिंग्स में जाकर रिमोट सर्वर कनेक्ट करें।" } } diff --git a/plugins/remote-desktop/locales/translated/id_ID.json b/plugins/remote-desktop/locales/translated/id_ID.json index 8030c519e..e7998aab1 100644 --- a/plugins/remote-desktop/locales/translated/id_ID.json +++ b/plugins/remote-desktop/locales/translated/id_ID.json @@ -1,299 +1,299 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "Menghubungkan ke sesi {{type}}...", + "checkingGuacd": "Memeriksa layanan desktop jarak jauh...", + "requestingToken": "Meminta token koneksi {{type}}...", + "openingSession": "Membuka sesi {{type}}...", + "negotiating": "Bernegosiasi {{type}} jabat tangan...", + "sessionReady": "{{type}} sesi siap", + "connectionError": "Kesalahan koneksi", + "connectionFailed": "Koneksi gagal", + "failedToConnect": "Gagal mendapatkan token koneksi.", + "hostNotFound": "Host tidak ditemukan", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "reconnect": "Terhubung kembali", + "retry": "Mencoba kembali", + "guacdUnavailable": "Layanan desktop jarak jauh (guacd) tidak tersedia. Pastikan guacd berjalan, dapat diakses, dan dikonfigurasi dengan benar di pengaturan admin.", + "credentialPromptTitle": "Masukkan Kredensial RDP", + "credentialPromptDescription": "Host ini diatur untuk meminta kredensial saat terhubung. Kredensial tersebut hanya digunakan untuk sesi ini dan tidak disimpan.", + "connect": "Menghubungkan", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "File Drive", + "parent": "Direktori induk", + "refresh": "Menyegarkan", + "empty": "Folder ini kosong", + "listFailed": "Gagal membaca folder ini", + "download": "Unduh", + "downloadFailed": "Gagal mengunduh {{name}}", + "upload": "Unggah file", + "uploading": "Mengunggah {{name}}...", + "uploaded": "Diunggah {{name}}", + "uploadFailed": "Gagal mengunggah {{name}}", + "uploadDisabled": "Unggahan dinonaktifkan untuk koneksi ini.", + "driveUnavailable": "Aktifkan pengalihan drive RDP sebelum mengunggah file.", + "driveNotWritable": "guacd tidak dapat menulis ke folder drive. Periksa GUACD_DRIVE_PATH (atau Drive Path host) dan izinnya.", + "dropToUpload": "Seret file untuk diunggah" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "winL": "Win+L (Kunci Layar)", + "winKey": "Kunci Windows", + "superL": "Super+L (Layar Kunci)", + "superKey": "Kunci Super", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (Kunci Layar)", + "cmdKey": "Tombol Perintah", + "cmd": "Perintah", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", + "alt": "Alternatif", + "shift": "Menggeser", + "win": "Menang", + "stickyActive": "{{key}} (terkunci - klik untuk membuka)", + "stickyInactive": "{{key}} (klik untuk mengunci)", + "esc": "Melarikan diri", "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "home": "Rumah", + "end": "Akhir", + "pageUp": "Halaman Atas", + "pageDown": "Halaman ke Bawah", + "arrowUp": "Panah Atas", + "arrowDown": "Panah ke Bawah", + "arrowLeft": "Panah Kiri", + "arrowRight": "Panah Kanan", + "fnToggle": "Tombol Fungsi", + "reconnect": "Sesi Terhubung Kembali", + "collapse": "Ciutkan bilah alat", + "expand": "Perluas bilah alat", + "dragHandle": "Seret untuk mengubah posisi", + "hide": "Sembunyikan untuk sesi ini. Untuk menonaktifkannya secara permanen, buka Pengaturan Host → Umum → Bilah Alat Koneksi.", + "zoomIn": "Perbesar", + "zoomOut": "Perbesar tampilan", + "resetZoom": "Atur ulang zoom", + "fitToScreen": "Sesuaikan dengan layar", + "switchToTrackpad": "Beralih ke mode trackpad (seret untuk memindahkan kursor, ketuk untuk mengklik)", + "switchToTouch": "Beralih ke mode sentuh (ketuk langsung di tempat yang ingin Anda klik)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Akses Desktop Jarak Jauh dimatikan. Administrator dapat mengaktifkannya di Pengaturan." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Dibuka di Windows Remote Desktop", + "nativeRdpFailed": "Gagal membuka Windows Remote Desktop", + "openNativeRdp": "Buka di Windows Remote Desktop", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", + "toolbar": "Bilah alat", + "connection": "Koneksi", + "authentication": "Autentikasi", + "storedCredential": "Kredensial Tersimpan", + "authMethod": "Metode Otentikasi", + "authTypeDirect": "Langsung", + "authTypeCredential": "Mandat", + "authTypeNone": "Tidak ada", + "authTypeNoneDesc": "Tidak ada kredensial yang disimpan. Anda akan diminta memasukkan nama pengguna dan kata sandi setiap kali Anda terhubung; informasi tersebut tidak disimpan.", + "selectCredential": "Pilih kredensial...", + "connectionSettings": "Pengaturan Koneksi", + "displaySettings": "Pengaturan Tampilan", + "audioSettings": "Pengaturan Audio", + "rdpPerformance": "Kinerja RDP", + "deviceRedirection": "Pengalihan Perangkat", + "session": "Sidang", + "gateway": "Gerbang", "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "clipboard": "Papan klip", + "sessionRecording": "Rekaman Sesi", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", + "vncSettings": "Pengaturan VNC", + "terminalSettings": "Pengaturan Terminal", + "rdpPort": "Port RDP", "username": "Nama pengguna", - "password": "Password", - "passwordSaved": "Password saved, type to change", + "password": "Kata sandi", + "passwordSaved": "Kata sandi tersimpan, ketik untuk mengubahnya", "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "securityMode": "Mode Keamanan", + "width": "Lebar", + "height": "Tinggi", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", + "clientName": "Nama Klien", + "initialProgram": "Program Awal", + "serverLayout": "Tata Letak Server", + "timezone": "Zona waktu", + "loadBalanceInfo": "Informasi Saldo Beban / Cookie", + "loadBalanceInfoDesc": "Cookie RD Connection Broker untuk penyeimbangan beban farm RDS (misalnya tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "Proksi guacd", "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", + "guacdHostnamePlaceholder": "Pengaturan default global", "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", + "guacdProxyDesc": "Ganti instance guacd global untuk koneksi ini. Biarkan kosong untuk menggunakan guacd yang dikonfigurasi secara global.", + "gatewayHostname": "Nama Host Gateway", + "gatewayPort": "Port Gerbang", + "gatewayUsername": "Nama Pengguna Gateway", + "gatewayPassword": "Kata Sandi Gerbang", + "gatewayDomain": "Domain Gerbang", + "remoteAppProgram": "Program RemoteApp", + "workingDirectory": "Direktori Kerja", + "arguments": "Argumen", + "normalizeLineEndings": "Normalisasi Akhiran Baris", "macAddress": "Alamat MAC", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", + "broadcastAddress": "Pidato Siaran", + "udpPort": "Port UDP", + "waitTimeS": "Waktu Tunggu (detik)", + "driveName": "Nama Drive", + "drivePath": "Jalur Berkendara", + "ignoreCertificate": "Abaikan Sertifikat", + "ignoreCertificateDesc": "Izinkan koneksi ke host dengan sertifikat yang ditandatangani sendiri.", + "forceLossless": "Paksa Tanpa Kehilangan", + "forceLosslessDesc": "Paksa pengkodean gambar tanpa kehilangan data (kualitas lebih tinggi, bandwidth lebih besar)", + "disableAudio": "Nonaktifkan Audio", + "disableAudioDesc": "Nonaktifkan semua audio dari sesi jarak jauh.", + "enableAudioInput": "Aktifkan Input Audio (Mikrofon)", + "enableAudioInputDesc": "Teruskan mikrofon lokal ke sesi jarak jauh.", "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", + "wallpaperDesc": "Tampilkan wallpaper desktop (menonaktifkannya akan meningkatkan kinerja)", + "theming": "Tema", + "themingDesc": "Aktifkan tema dan gaya visual.", + "fontSmoothing": "Penghalusan Font", + "fontSmoothingDesc": "Aktifkan rendering font ClearType", + "fullWindowDrag": "Geser Jendela Penuh", + "fullWindowDragDesc": "Tampilkan isi jendela saat menyeret", + "desktopComposition": "Komposisi Desktop", + "desktopCompositionDesc": "Aktifkan efek kaca Aero", + "menuAnimations": "Animasi Menu", + "menuAnimationsDesc": "Aktifkan animasi pudar dan geser menu", + "disableBitmapCaching": "Nonaktifkan Cache Bitmap", + "disableBitmapCachingDesc": "Matikan cache bitmap (dapat membantu mengatasi gangguan)", + "disableOffscreenCaching": "Nonaktifkan Cache di Luar Layar", + "disableOffscreenCachingDesc": "Matikan cache di luar layar.", + "disableGlyphCaching": "Nonaktifkan Cache Glif", + "disableGlyphCachingDesc": "Matikan cache glif", + "enableGfx": "Aktifkan GFX", + "enableGfxDesc": "Gunakan pipeline grafis RemoteFX.", + "enablePrinting": "Aktifkan Pencetakan", + "enablePrintingDesc": "Alihkan printer lokal ke sesi jarak jauh.", + "enableDriveRedirection": "Aktifkan Pengalihan Drive", + "enableDriveRedirectionDesc": "Petakan folder lokal sebagai drive di sesi jarak jauh.", + "createDrivePath": "Buat Jalur Mengemudi", + "createDrivePathDesc": "Buat folder secara otomatis jika belum ada.", + "disableDownload": "Nonaktifkan Unduhan", + "disableDownloadDesc": "Mencegah pengunduhan file dari sesi jarak jauh", + "disableUpload": "Nonaktifkan Unggahan", + "disableUploadDesc": "Mencegah pengunggahan file ke sesi jarak jauh", + "enableTouch": "Aktifkan Sentuhan", + "enableTouchDesc": "Aktifkan penerusan input sentuh", + "consoleSession": "Sesi Konsol", + "consoleSessionDesc": "Hubungkan ke konsol (sesi 0) alih-alih sesi baru.", + "sendWolPacket": "Kirim Paket WOL", + "sendWolPacketDesc": "Kirim paket ajaib untuk membangunkan host ini sebelum terhubung.", + "disableCopy": "Nonaktifkan Salin", + "disableCopyDesc": "Mencegah penyalinan teks dari sesi jarak jauh", + "disablePaste": "Nonaktifkan Tempel", + "disablePasteDesc": "Mencegah penyisipan teks ke dalam sesi jarak jauh", + "createPathIfMissing": "Buat Jalur jika Belum Ada", + "createPathIfMissingDesc": "Membuat direktori rekaman secara otomatis.", + "excludeOutput": "Kecualikan Output", + "excludeOutputDesc": "Jangan merekam output layar (hanya metadata)", + "excludeMouse": "Kecualikan Tikus", + "excludeMouseDesc": "Jangan merekam pergerakan mouse.", + "includeKeystrokes": "Sertakan Penekanan Tombol", + "includeKeystrokesDesc": "Rekam setiap ketukan keyboard mentah selain output layar.", + "vncPort": "Port VNC", + "vncPassword": "Kata Sandi VNC", + "vncUsernameOptional": "Nama pengguna (opsional)", + "vncLeaveBlank": "Kosongkan jika tidak diperlukan", + "cursorMode": "Mode Kursor", + "swapRedBlue": "Tukar Merah/Biru", + "swapRedBlueDesc": "Tukar saluran warna merah dan biru (memperbaiki beberapa masalah warna)", + "readOnly": "Hanya baca", + "readOnlyDesc": "Lihat layar jarak jauh tanpa mengirimkan input apa pun.", + "telnetPort": "Port Telnet", + "terminalType": "Jenis Terminal", + "fontName": "Nama Font", + "fontSize": "Ukuran Huruf", + "colorScheme": "Skema Warna", + "backspaceKey": "Tombol Backspace", + "colorDepth": "Kedalaman Warna", + "resizeMethod": "Metode Pengubahan Ukuran", "driveNamePlaceholder": "Termix Drive" }, - "remoteDesktop": "Remote Desktop", + "remoteDesktop": "Desktop Jarak Jauh", "tabRdp": "RDP", "tabVnc": "VNC", "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "virtualNetwork": "Jaringan Virtual", + "unencryptedShell": "Shell yang tidak terenkripsi", + "remoteDesktopNotes": "Catatan", + "userDefaultsNote": "Pengaturan yang Anda biarkan tidak berubah akan mengikuti pengaturan default host Anda.", + "connectionOriginNote": "Pada aplikasi desktop, RDP, VNC, dan Telnet menggunakan server jarak jauh kecuali jika host diatur ke Perangkat ini, yang memerlukan guacd yang dapat dijangkau oleh mesin ini. Atur satu di pengaturan Remote Desktop, atau per host di bawah guacd Proxy.", + "docsLink": "Lihat dokumen", + "connectionOriginGuacamoleNote": "RDP, VNC, dan Telnet menggunakan server jarak jauh kecuali Anda memilih \"Perangkat ini\", yang membutuhkan guacd yang dapat dijangkau oleh mesin ini. Tetapkan satu di pengaturan URL guacd, atau per host di bawah Proksi guacd." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Desktop jarak jauh", + "feature_desktop_desc": "Buka sesi RDP, VNC, dan Telnet dalam satu tab, sama seperti SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Kedalaman Warna", + "description": "Digunakan untuk host RDP yang membiarkan pengaturan tersebut pada nilai default." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Metode Pengubahan Ukuran", + "description": "Bagaimana tampilan jarak jauh mengikuti ukuran jendela." }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "Pembaruan Tampilan", + "resizeReconnect": "Terhubung kembali", + "inherit": "Mewarisi", + "on": "Pada", + "off": "Mati", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Paksa Tanpa Kehilangan", + "description": "Paksa pengkodean gambar tanpa kehilangan data (kualitas lebih tinggi, bandwidth lebih besar)" }, "enableWallpaper": { "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "description": "Tampilkan wallpaper desktop (menonaktifkannya akan meningkatkan kinerja)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Penghalusan Font", + "description": "Aktifkan rendering font ClearType" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Komposisi Desktop", + "description": "Aktifkan efek kaca Aero" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Nonaktifkan Audio", + "description": "Nonaktifkan semua audio dari sesi jarak jauh." }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Aktifkan Pencetakan", + "description": "Alihkan printer lokal ke sesi jarak jauh." }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Aktifkan Pengalihan Drive", + "description": "Petakan folder lokal sebagai drive di sesi jarak jauh." }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Nonaktifkan Salin", + "description": "Mencegah penyalinan teks dari sesi jarak jauh" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Nonaktifkan Tempel", + "description": "Mencegah penyisipan teks ke dalam sesi jarak jauh" }, - "group": "Remote Desktop defaults", + "group": "Pengaturan default Remote Desktop", "colorDepth16": "16-bit", "colorDepth24": "24-bit", "colorDepth32": "32-bit" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Aktifkan Remote Desktop", + "description": "Izinkan koneksi RDP, VNC, dan Telnet melalui guacd." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "URL guacd", + "description": "Guacd mendengarkan di mana, sebagai host:port. Variabel lingkungan GUACD_URL, GUACD_HOST, dan GUACD_PORT akan menimpa pengaturan ini.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "Port RDP" }, "vncPort": { - "label": "VNC port" + "label": "Port VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "Port Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Mode keamanan RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Abaikan kesalahan sertifikat" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "pengaturan guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Toolbar desktop jarak jauh", + "description": "Tampilkan bilah alat di sesi RDP, VNC, dan Telnet." }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "Menampilkan", + "displayDefaultsTab": "Desktop Jarak Jauh" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Terhubung dengan RDP", + "connectVnc": "Terhubung dengan VNC", + "connectTelnet": "Terhubung dengan Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Berbagi sesi desktop jarak jauh", + "description": "Izinkan fitur berbagi sesi dan ruang kolaborasi untuk menampilkan sesi RDP, VNC, dan Telnet pengguna ini kepada pengguna lain." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Diperlukan server jarak jauh. Hubungkan server jarak jauh di Pengaturan untuk menggunakan jenis koneksi ini." } } diff --git a/plugins/remote-desktop/locales/translated/no_NO.json b/plugins/remote-desktop/locales/translated/no_NO.json index 2b1355d28..bd7406579 100644 --- a/plugins/remote-desktop/locales/translated/no_NO.json +++ b/plugins/remote-desktop/locales/translated/no_NO.json @@ -1,299 +1,299 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", + "connecting": "Kobler til {{type}} økt...", + "checkingGuacd": "Sjekker tjenesten for eksternt skrivebord...", + "requestingToken": "Ber om {{type}} tilkoblingstoken...", + "openingSession": "Åpner {{type}} økt...", + "negotiating": "Forhandler {{type}} håndtrykk...", + "sessionReady": "{{type}} økt klar", + "connectionError": "Tilkoblingsfeil", "connectionFailed": "Tilkobling mislyktes", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", + "failedToConnect": "Kunne ikke hente tilkoblingstoken", + "hostNotFound": "Verten ble ikke funnet", "noHostSelected": "Ingen vert valgt", "reconnect": "Koble til på nytt", "retry": "Prøv igjen", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "guacdUnavailable": "Ekstern skrivebordstjeneste (guacd) er ikke tilgjengelig. Sørg for at guacd kjører, er tilgjengelig og riktig konfigurert i administratorinnstillingene.", + "credentialPromptTitle": "Skriv inn RDP-legitimasjon", + "credentialPromptDescription": "Denne verten er satt til å be om påloggingsinformasjon ved tilkobling. Disse brukes kun for denne økten og lagres ikke.", "connect": "Koble til", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Disk-filer", + "parent": "Foreldrekatalog", "refresh": "Oppdater", "empty": "Denne mappen er tom", - "listFailed": "Failed to read this folder", + "listFailed": "Kunne ikke lese denne mappen", "download": "Last ned", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "Kunne ikke laste ned {{name}}", + "upload": "Last opp filer", "uploading": "Laster opp {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "Lastet opp {{name}}", + "uploadFailed": "Kunne ikke laste opp {{name}}", + "uploadDisabled": "Opplastinger er deaktivert for denne tilkoblingen", + "driveUnavailable": "Aktiver omdirigering av RDP-stasjoner før du laster opp filer", + "driveNotWritable": "guacd kan ikke skrive til stasjonsmappen. Sjekk GUACD_DRIVE_PATH (eller vertens stasjonsbane) og dens tillatelser.", + "dropToUpload": "Slipp filer for å laste opp" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "winL": "Win+L (Låseskjerm)", + "winKey": "Windows-nøkkel", + "superL": "Super+L (Låseskjerm)", + "superKey": "Supernøkkel", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (Låseskjerm)", + "cmdKey": "Kommandotast", + "cmd": "Kommando", "ctrl": "Ctrl", "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", + "shift": "Skifte", + "win": "Vinne", + "stickyActive": "{{key}} (låst – klikk for å slippe)", + "stickyInactive": "{{key}} (klikk for å låse)", + "esc": "Flykte", + "tab": "Fane", "home": "Hjem", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "end": "Slutt", + "pageUp": "Side opp", + "pageDown": "Side ned", + "arrowUp": "Pil opp", + "arrowDown": "Pil ned", + "arrowLeft": "Pil venstre", + "arrowRight": "Pil høyre", + "fnToggle": "Funksjonstaster", + "reconnect": "Koble til økten på nytt", + "collapse": "Skjul verktøylinjen", + "expand": "Utvid verktøylinjen", + "dragHandle": "Dra for å flytte", + "hide": "Skjul for denne økten. For å deaktivere den permanent, åpne Vertsinnstillinger → Generelt → Tilkoblingsverktøylinje.", + "zoomIn": "Zoom inn", + "zoomOut": "Zoom ut", + "resetZoom": "Tilbakestill zoom", + "fitToScreen": "Tilpass til skjerm", + "switchToTrackpad": "Bytt til styreflatemodus (dra for å flytte markøren, trykk for å klikke)", + "switchToTouch": "Bytt til berøringsmodus (trykk direkte der du vil klikke)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Eksternt skrivebord er slått av. En administrator kan slå det på i Innstillinger." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Åpnet i Windows Eksternt skrivebord", + "nativeRdpFailed": "Kunne ikke åpne Windows Eksternt skrivebord", + "openNativeRdp": "Åpne i Windows Eksternt skrivebord", "guac": { - "toolbar": "Toolbar", + "toolbar": "Verktøylinjen", "connection": "Tilkobling", "authentication": "Autentisering", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", + "storedCredential": "Lagret legitimasjon", + "authMethod": "Autorisasjonsmetode", + "authTypeDirect": "Direkte", "authTypeCredential": "Legitimasjon", "authTypeNone": "Ingen", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "authTypeNoneDesc": "Ingen påloggingsinformasjon lagres. Du blir bedt om å oppgi brukernavn og passord hver gang du kobler til; de lagres ikke.", + "selectCredential": "Velg en legitimasjon...", + "connectionSettings": "Tilkoblingsinnstillinger", + "displaySettings": "Skjerminnstillinger", + "audioSettings": "Lydinnstillinger", + "rdpPerformance": "RDP-ytelse", + "deviceRedirection": "Enhetsomdirigering", + "session": "Økt", + "gateway": "Inngangsport", + "remoteApp": "Fjernapp", + "clipboard": "Utklippstavlen", + "sessionRecording": "Øktopptak", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", + "vncSettings": "VNC-innstillinger", + "terminalSettings": "Terminalinnstillinger", + "rdpPort": "RDP-port", "username": "Brukernavn", "password": "Passord", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "passwordSaved": "Passord lagret, skriv inn for å endre", + "domain": "Domene", + "securityMode": "Sikkerhetsmodus", + "width": "Bredde", + "height": "Høyde", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", - "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", + "clientName": "Klientnavn", + "initialProgram": "Innledende program", + "serverLayout": "Serveroppsett", + "timezone": "Tidssone", + "loadBalanceInfo": "Informasjon om lastbalanse / informasjonskapsler", + "loadBalanceInfoDesc": "RD Connection Broker-informasjonskapsel for lastbalansering på RDS-farm (f.eks. tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "guacd-proxy", + "guacdHostname": "guacd-vert", + "guacdHostnamePlaceholder": "Global standard", + "guacdPort": "guacd-porten", + "guacdProxyDesc": "Overstyr den globale guacd-forekomsten for denne tilkoblingen. La stå tomt for å bruke den globalt konfigurerte guacd-en.", + "gatewayHostname": "Gateway-vertsnavn", + "gatewayPort": "Gateway-porten", + "gatewayUsername": "Gateway-brukernavn", + "gatewayPassword": "Gateway-passord", + "gatewayDomain": "Gateway-domene", + "remoteAppProgram": "RemoteApp-programmet", + "workingDirectory": "Arbeidskatalog", + "arguments": "Argumenter", + "normalizeLineEndings": "Normaliser linjeavslutninger", + "macAddress": "MAC-adresse", + "broadcastAddress": "Kringkastingsadresse", + "udpPort": "UDP-port", + "waitTimeS": "Ventetid (s)", + "driveName": "Stasjonsnavn", + "drivePath": "Kjøresti", + "ignoreCertificate": "Ignorer sertifikat", + "ignoreCertificateDesc": "Tillat tilkoblinger til verter med selvsignerte sertifikater", + "forceLossless": "Tving tapsfri", + "forceLosslessDesc": "Tving frem tapsfri bildekoding (høyere kvalitet, mer båndbredde)", + "disableAudio": "Deaktiver lyd", + "disableAudioDesc": "Demp all lyd fra den eksterne økten", + "enableAudioInput": "Aktiver lydinngang (mikrofon)", + "enableAudioInputDesc": "Videresend den lokale mikrofonen til den eksterne økten", + "wallpaper": "Bakgrunn", + "wallpaperDesc": "Vis skrivebordsbakgrunn (deaktivering forbedrer ytelsen)", + "theming": "Temaer", + "themingDesc": "Aktiver visuelle temaer og stiler", + "fontSmoothing": "Skriftutjevning", + "fontSmoothingDesc": "Aktiver gjengivelse av ClearType-skrifttyper", + "fullWindowDrag": "Dra i hele vinduet", + "fullWindowDragDesc": "Vis vindusinnhold mens du drar", + "desktopComposition": "Skrivebordskomposisjon", + "desktopCompositionDesc": "Aktiver Aero Glass-effekter", + "menuAnimations": "Menyanimasjoner", + "menuAnimationsDesc": "Aktiver menyuttoning og lysbildeanimasjoner", + "disableBitmapCaching": "Deaktiver punktmap-hurtigbufring", + "disableBitmapCachingDesc": "Slå av bitmap-hurtigbufferen (kan hjelpe med feil)", + "disableOffscreenCaching": "Deaktiver mellomlagring utenfor skjermen", + "disableOffscreenCachingDesc": "Slå av hurtigbuffer utenfor skjermen", + "disableGlyphCaching": "Deaktiver glyff-caching", + "disableGlyphCachingDesc": "Slå av glyph-cache", + "enableGfx": "Aktiver GFX", + "enableGfxDesc": "Bruk RemoteFX-grafikkpipeline", + "enablePrinting": "Aktiver utskrift", + "enablePrintingDesc": "Omdiriger lokale skrivere til den eksterne økten", + "enableDriveRedirection": "Aktiver omdirigering av stasjoner", + "enableDriveRedirectionDesc": "Tilordne en lokal mappe som en stasjon i den eksterne økten", + "createDrivePath": "Opprett stasjonssti", + "createDrivePathDesc": "Opprett mappen automatisk hvis den ikke finnes", + "disableDownload": "Deaktiver nedlasting", + "disableDownloadDesc": "Forhindre nedlasting av filer fra den eksterne økten", + "disableUpload": "Deaktiver opplasting", + "disableUploadDesc": "Forhindre opplasting av filer til den eksterne økten", + "enableTouch": "Aktiver berøring", + "enableTouchDesc": "Aktiver videresending av berøringsinndata", + "consoleSession": "Konsolløkt", + "consoleSessionDesc": "Koble til konsollen (økt 0) i stedet for en ny økt", + "sendWolPacket": "Send WOL-pakke", + "sendWolPacketDesc": "Send en magisk pakke for å vekke denne verten før du kobler til", + "disableCopy": "Deaktiver kopiering", + "disableCopyDesc": "Forhindre kopiering av tekst fra den eksterne økten", + "disablePaste": "Deaktiver liming", + "disablePasteDesc": "Forhindre innliming av tekst i den eksterne økten", + "createPathIfMissing": "Opprett sti hvis den mangler", + "createPathIfMissingDesc": "Opprett opptaksmappen automatisk", + "excludeOutput": "Ekskluder utdata", + "excludeOutputDesc": "Ikke ta opp skjermutdata (kun metadata)", + "excludeMouse": "Utelukk mus", + "excludeMouseDesc": "Ikke opptak musebevegelser", + "includeKeystrokes": "Inkluder tastetrykk", + "includeKeystrokesDesc": "Ta opp rå tastetrykk i tillegg til skjermutdata", + "vncPort": "VNC-port", + "vncPassword": "VNC-passord", + "vncUsernameOptional": "Brukernavn (valgfritt)", + "vncLeaveBlank": "La stå tomt hvis det ikke er nødvendig", + "cursorMode": "Markørmodus", + "swapRedBlue": "Bytt rød/blå", + "swapRedBlueDesc": "Bytt om de røde og blå fargekanalene (rettar opp nokre fargeproblem)", + "readOnly": "Skrivebeskyttet", + "readOnlyDesc": "Vis fjernskjermen uten å sende noen input", + "telnetPort": "Telnet-port", + "terminalType": "Terminaltype", + "fontName": "Skriftnavn", "fontSize": "Skriftstørrelse", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", + "colorScheme": "Fargeskjema", + "backspaceKey": "Tilbaketast", + "colorDepth": "Fargedybde", + "resizeMethod": "Endre størrelse-metoden", "driveNamePlaceholder": "Termix Drive" }, - "remoteDesktop": "Remote Desktop", + "remoteDesktop": "Eksternt skrivebord", "tabRdp": "RDP", "tabVnc": "VNC", "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "virtualNetwork": "Virtuelt nettverk", + "unencryptedShell": "Ukryptert skall", + "remoteDesktopNotes": "Notater", + "userDefaultsNote": "Innstillinger du lar være uendret følger vertens standardinnstillinger.", + "connectionOriginNote": "I skrivebordsappen bruker RDP, VNC og Telnet den eksterne serveren med mindre verten er satt til Denne enheten, som trenger en GUACD som denne maskinen kan nå. Angi én i innstillingene for eksternt skrivebord, eller per vert under GUACD Proxy.", + "docsLink": "Vis dokumenter", + "connectionOriginGuacamoleNote": "RDP, VNC og Telnet bruker den eksterne serveren med mindre du velger «Denne enheten», som trenger en GUACD som denne maskinen kan nå. Angi én i GUACD URL-innstillingen, eller per vert under GUACD Proxy." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Eksternt skrivebord", + "feature_desktop_desc": "Åpne RDP-, VNC- og Telnet-økter i en fane, på samme måte som SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Fargedybde", + "description": "Brukes for RDP-verter som lar den være på standardverdi." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Endre størrelse-metoden", + "description": "Hvordan den eksterne skjermen følger vindusstørrelsen." }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "Oppdatering av skjerm", "resizeReconnect": "Koble til på nytt", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "inherit": "Arve", + "on": "På", + "off": "Av", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Tving tapsfri", + "description": "Tving frem tapsfri bildekoding (høyere kvalitet, mer båndbredde)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "Bakgrunn", + "description": "Vis skrivebordsbakgrunn (deaktivering forbedrer ytelsen)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Skriftutjevning", + "description": "Aktiver gjengivelse av ClearType-skrifttyper" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Skrivebordskomposisjon", + "description": "Aktiver Aero-glasseffekter" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Deaktiver lyd", + "description": "Demp all lyd fra den eksterne økten" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Aktiver utskrift", + "description": "Omdiriger lokale skrivere til den eksterne økten" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Aktiver omdirigering av stasjoner", + "description": "Tilordne en lokal mappe som en stasjon i den eksterne økten" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Deaktiver kopiering", + "description": "Forhindre kopiering av tekst fra den eksterne økten" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Deaktiver liming", + "description": "Forhindre innliming av tekst i den eksterne økten" }, - "group": "Remote Desktop defaults", + "group": "Standardinnstillinger for eksternt skrivebord", "colorDepth16": "16-bit", "colorDepth24": "24-bit", "colorDepth32": "32-bit" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Aktiver eksternt skrivebord", + "description": "Tillat RDP-, VNC- og Telnet-tilkoblinger gjennom guacd." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "guacd-URL", + "description": "Der guacd lytter som host:port. Miljøvariablene GUACD_URL, GUACD_HOST og GUACD_PORT overstyrer dette.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "RDP-port" }, "vncPort": { - "label": "VNC port" + "label": "VNC-port" }, "telnetPort": { - "label": "Telnet port" + "label": "Telnet-port" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP-sikkerhetsmodus" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ignorer sertifikatfeil" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd-innstillinger" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Verktøylinjen for eksternt skrivebord", + "description": "Vis verktøylinjen i RDP-, VNC- og Telnet-økter." }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "Utstilling", + "displayDefaultsTab": "Eksternt skrivebord" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Koble til RDP", + "connectVnc": "Koble til VNC", + "connectTelnet": "Koble til med Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Del eksterne skrivebordsøkter", + "description": "La øktdeling og samarbeidsrom vise denne brukerens RDP-, VNC- og Telnet-økter til andre." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Ekstern server kreves. Koble til en ekstern server i Innstillinger for å bruke denne tilkoblingstypen." } } diff --git a/plugins/remote-desktop/locales/translated/pl_PL.json b/plugins/remote-desktop/locales/translated/pl_PL.json index 620068239..79cdc9092 100644 --- a/plugins/remote-desktop/locales/translated/pl_PL.json +++ b/plugins/remote-desktop/locales/translated/pl_PL.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "Łączenie z sesją {{type}}...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "checkingGuacd": "Sprawdzanie usługi pulpitu zdalnego...", + "requestingToken": "Żądanie tokena połączenia {{type}}...", + "openingSession": "Otwieranie sesji {{type}}...", + "negotiating": "Negocjowanie {{type}} uścisku dłoni...", + "sessionReady": "{{type}} sesja gotowa", "connectionError": "Błąd połączenia", "connectionFailed": "Połączenie nieudane", "failedToConnect": "Nie udało się uzyskać tokena połączenia", @@ -32,19 +32,19 @@ "uploadFailed": "Nie udało się przesłać {{name}}", "uploadDisabled": "Przesyłanie plików jest wyłączone dla tego połączenia", "driveUnavailable": "Włącz przekierowanie dysku RDP przed przesłaniem plików", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", + "driveNotWritable": "guacd nie może zapisać do folderu dysku. Sprawdź zmienną GUACD_DRIVE_PATH (lub ścieżkę do dysku hosta) i jej uprawnienia.", "dropToUpload": "Upuść pliki, aby je przesłać" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (zablokuj ekran)", "winKey": "Klawisz Windows", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "superL": "Super+L (ekran blokady)", + "superKey": "Super klucz", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (ekran blokady)", + "cmdKey": "Klawisz polecenia", + "cmd": "Polecenie", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "Zwiń pasek narzędzi", "expand": "Rozwiń pasek narzędzi", "dragHandle": "Przeciągnij, aby zmienić położenie", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", + "hide": "Ukryj na czas tej sesji. Aby trwale wyłączyć tę opcję, otwórz Ustawienia hosta → Ogólne → Pasek narzędzi połączenia.", + "zoomIn": "Powiększ", + "zoomOut": "Oddal", + "resetZoom": "Zresetuj powiększenie", + "fitToScreen": "Dopasuj do ekranu", "switchToTrackpad": "Przełącz na tryb gładzika (przeciągnij, aby przesunąć kursor, dotknij, aby kliknąć)", "switchToTouch": "Przełącz na tryb dotykowy (dotknij bezpośrednio miejsca, w którym chcesz kliknąć)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Pulpit zdalny jest wyłączony. Administrator może go włączyć w Ustawieniach." }, "hosts": { "nativeRdpOpened": "Otwarto w Pulpicie zdalnym systemu Windows", "nativeRdpFailed": "Nie udało się otworzyć pulpitu zdalnego systemu Windows", "openNativeRdp": "Otwórz w Pulpicie zdalnym systemu Windows", "guac": { - "toolbar": "Toolbar", + "toolbar": "Pasek narzędzi", "connection": "Połączenie", "authentication": "Uwierzytelnianie", "storedCredential": "Zapisane poświadczenie", @@ -212,7 +212,7 @@ "backspaceKey": "Klawisz Backspace", "colorDepth": "Głębia koloru", "resizeMethod": "Metoda zmiany rozmiaru", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "Napęd Termix" }, "remoteDesktop": "Pulpit zdalny", "tabRdp": "RDP", @@ -221,10 +221,10 @@ "virtualNetwork": "Sieć wirtualna", "unencryptedShell": "Niezaszyfrowana powłoka", "remoteDesktopNotes": "Notatki", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "Ustawienia, które pozostawisz bez zmian, będą zgodne z ustawieniami domyślnymi Twojego hosta.", + "connectionOriginNote": "W aplikacji desktopowej RDP, VNC i Telnet korzystają ze zdalnego serwera, chyba że host jest ustawiony na „To urządzenie”, co wymaga identyfikatora GUACD, z którym ten komputer może się połączyć. Ustaw go w ustawieniach pulpitu zdalnego lub dla każdego hosta w sekcji Serwer proxy GUACD.", "docsLink": "Zobacz dokumentację", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC i Telnet korzystają ze zdalnego serwera, chyba że wybierzesz opcję „To urządzenie”, co wymaga identyfikatora GUACD, z którym ten komputer może się połączyć. Ustaw go w ustawieniu adresu URL GUACD lub dla każdego hosta w sekcji Serwer proxy GUACD." }, "onboarding": { "feature_desktop": "Zdalny pulpit", @@ -234,11 +234,11 @@ "user": { "colorDepth": { "label": "Głębia koloru", - "description": "Used for RDP hosts that leave it on their default." + "description": "Używane w przypadku hostów RDP, które pozostawiają tę wartość domyślną." }, "resizeMethod": { "label": "Metoda zmiany rozmiaru", - "description": "How the remote screen follows the window size." + "description": "W jaki sposób zdalny ekran dostosowuje się do rozmiaru okna." }, "resizeDisplayUpdate": "Aktualizacja ekranu", "resizeReconnect": "Połącz ponownie", @@ -281,19 +281,19 @@ "label": "Wyłącz wklejanie", "description": "Zapobiegaj wklejaniu tekstu do sesji zdalnej" }, - "group": "Remote Desktop defaults", + "group": "Domyślne ustawienia pulpitu zdalnego", "colorDepth16": "16-bit", "colorDepth24": "24-bit", "colorDepth32": "32-bit" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Włącz pulpit zdalny", + "description": "Zezwalaj na połączenia RDP, VNC i Telnet przez guacd." }, "guacdUrl": { "label": "Adres URL guacd", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "Miejsce, w którym nasłuchuje GUACD, jako host:port. Zmienne środowiskowe GUACD_URL, GUACD_HOST i GUACD_PORT zastępują to ustawienie.", "placeholder": "guacd:4822" } }, @@ -308,40 +308,40 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "Port RDP" }, "vncPort": { - "label": "VNC port" + "label": "Port VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "Port Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Tryb bezpieczeństwa RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ignoruj błędy certyfikatu" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "ustawienia GUACD" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Pasek narzędzi pulpitu zdalnego", + "description": "Wyświetla pasek narzędzi w sesjach RDP, VNC i Telnet." }, "displayGroup": "Wyświetlanie", "displayDefaultsTab": "Pulpit zdalny" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Połącz się z RDP", + "connectVnc": "Połącz się z VNC", + "connectTelnet": "Połącz się przez Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Udostępniaj sesje pulpitu zdalnego", + "description": "Zezwól na udostępnianie sesji i współpracę w pokojach, aby sesje RDP, VNC i Telnet tego użytkownika były widoczne dla innych użytkowników." } }, "errors": { diff --git a/plugins/remote-desktop/locales/translated/pt_BR.json b/plugins/remote-desktop/locales/translated/pt_BR.json index 2398be355..70f499742 100644 --- a/plugins/remote-desktop/locales/translated/pt_BR.json +++ b/plugins/remote-desktop/locales/translated/pt_BR.json @@ -1,217 +1,217 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", + "connecting": "Conectando à sessão {{type}}...", + "checkingGuacd": "Verificando o serviço de área de trabalho remota...", + "requestingToken": "Solicitando token de conexão {{type}}...", + "openingSession": "Abrindo {{type}} sessão...", "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "sessionReady": "{{type}} sessão pronta", + "connectionError": "Erro de conexão", + "connectionFailed": "Falha na conexão", + "failedToConnect": "Falha ao obter o token de conexão", + "hostNotFound": "Host não encontrado", + "noHostSelected": "Nenhum host selecionado", + "reconnect": "Reconectar", + "retry": "Tentar novamente", + "guacdUnavailable": "O serviço de área de trabalho remota (guacd) não está disponível. Certifique-se de que o guacd esteja em execução, acessível e configurado corretamente nas configurações de administrador.", + "credentialPromptTitle": "Insira as credenciais RDP", + "credentialPromptDescription": "Este host está configurado para solicitar credenciais ao conectar. Elas são usadas apenas para esta sessão e não são salvas.", "connect": "Conectar", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Arquivos do Drive", + "parent": "Diretório pai", "refresh": "Atualizar", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", + "empty": "Esta pasta está vazia", + "listFailed": "Não foi possível ler esta pasta.", "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "downloadFailed": "Falha ao baixar {{name}}", + "upload": "Carregar arquivos", + "uploading": "Carregando {{name}}...", + "uploaded": "Enviado {{name}}", + "uploadFailed": "Falha ao carregar {{name}}", + "uploadDisabled": "Os uploads estão desativados para esta conexão.", + "driveUnavailable": "Ative o redirecionamento de unidade RDP antes de enviar arquivos.", + "driveNotWritable": "O guacd não consegue gravar na pasta da unidade. Verifique a variável de ambiente GUACD_DRIVE_PATH (ou o caminho da unidade do host) e suas permissões.", + "dropToUpload": "Arraste e solte os arquivos para fazer o upload." }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "winL": "Win+L (Bloquear tela)", + "winKey": "Tecla do Windows", + "superL": "Super+L (Tela de bloqueio)", + "superKey": "Super Chave", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (Bloquear tela)", + "cmdKey": "Tecla de comando", + "cmd": "Comando", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", + "alt": "Alternativa", + "shift": "Mudança", + "win": "Ganhar", + "stickyActive": "{{key}} (travado - clique para liberar)", + "stickyInactive": "{{key}} (clique para travar)", + "esc": "Escapar", + "tab": "Aba", "home": "Inicio", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "end": "Fim", + "pageUp": "Página acima", + "pageDown": "Página abaixo", + "arrowUp": "Seta para cima", + "arrowDown": "Seta para baixo", + "arrowLeft": "Seta para a esquerda", + "arrowRight": "Seta para a direita", + "fnToggle": "Teclas de função", + "reconnect": "Sessão de reconexão", + "collapse": "Recolher barra de ferramentas", + "expand": "Expandir barra de ferramentas", + "dragHandle": "Arraste para reposicionar", + "hide": "Ocultar para esta sessão. Para desativá-lo permanentemente, abra Configurações do Host → Geral → Barra de Ferramentas de Conexão.", + "zoomIn": "Ampliar", + "zoomOut": "Diminuir o zoom", + "resetZoom": "Redefinir zoom", + "fitToScreen": "Ajustar à tela", + "switchToTrackpad": "Alternar para o modo trackpad (arraste para mover o cursor, toque para clicar)", + "switchToTouch": "Mude para o modo de toque (toque diretamente onde deseja clicar)." }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "A Área de Trabalho Remota está desativada. Um administrador pode ativá-la nas Configurações." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Aberto na Área de Trabalho Remota do Windows", + "nativeRdpFailed": "Falha ao abrir a Área de Trabalho Remota do Windows", + "openNativeRdp": "Abrir no Windows Remote Desktop", "guac": { - "toolbar": "Toolbar", + "toolbar": "Barra de ferramentas", "connection": "Conexão", "authentication": "Autenticação", "storedCredential": "Credencial Armazenado", "authMethod": "Método de Autenticação", - "authTypeDirect": "Direct", + "authTypeDirect": "Direto", "authTypeCredential": "Credencial", "authTypeNone": "Nenhum", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "Nenhuma credencial é armazenada. Você será solicitado a inserir um nome de usuário e uma senha sempre que se conectar; eles não são salvos.", "selectCredential": "Selecione uma credencial...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "connectionSettings": "Configurações de conexão", + "displaySettings": "Configurações de exibição", + "audioSettings": "Configurações de áudio", + "rdpPerformance": "Desempenho do RDP", + "deviceRedirection": "Redirecionamento de Dispositivos", + "session": "Sessão", + "gateway": "Portal", + "remoteApp": "Aplicativo remoto", + "clipboard": "Área de transferência", + "sessionRecording": "Gravação da sessão", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", + "vncSettings": "Configurações VNC", + "terminalSettings": "Configurações do terminal", + "rdpPort": "Porta RDP", "username": "Nome de usuário", "password": "Senha", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "passwordSaved": "Senha salva, digite para alterar", + "domain": "Domínio", + "securityMode": "Modo de segurança", + "width": "Largura", + "height": "Altura", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", + "clientName": "Nome do cliente", + "initialProgram": "Programa Inicial", + "serverLayout": "Layout do servidor", + "timezone": "Fuso horário", + "loadBalanceInfo": "Informações de balanceamento de carga / Cookies", + "loadBalanceInfoDesc": "Cookie do agente de conexão RD para balanceamento de carga do farm RDS (ex: tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "Proxy guacd", "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", + "guacdHostnamePlaceholder": "Padrão global", + "guacdPort": "Porto guacd", + "guacdProxyDesc": "Substitua a instância global do guacd para esta conexão. Deixe em branco para usar o guacd configurado globalmente.", + "gatewayHostname": "Nome do host do gateway", + "gatewayPort": "Porta de entrada", + "gatewayUsername": "Nome de usuário do gateway", + "gatewayPassword": "Senha do Gateway", + "gatewayDomain": "Domínio de entrada", + "remoteAppProgram": "Programa RemoteApp", + "workingDirectory": "Diretório de Trabalho", + "arguments": "Argumentos", + "normalizeLineEndings": "Normalizar as quebras de linha", "macAddress": "Endereço MAC", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", + "broadcastAddress": "Discurso de transmissão", + "udpPort": "Porta UDP", + "waitTimeS": "Tempo de espera (s)", + "driveName": "Nome da unidade", + "drivePath": "Percurso de condução", + "ignoreCertificate": "Ignorar certificado", + "ignoreCertificateDesc": "Permitir conexões a hosts com certificados autoassinados", + "forceLossless": "Força sem perdas", + "forceLosslessDesc": "Forçar codificação de imagem sem perdas (maior qualidade, mais largura de banda)", + "disableAudio": "Desativar áudio", + "disableAudioDesc": "Silenciar todo o áudio da sessão remota.", + "enableAudioInput": "Ativar entrada de áudio (microfone)", + "enableAudioInputDesc": "Encaminhar o microfone local para a sessão remota.", + "wallpaper": "Papel de parede", + "wallpaperDesc": "Exibir papel de parede da área de trabalho (desativar melhora o desempenho)", + "theming": "Tematização", + "themingDesc": "Ativar temas e estilos visuais", + "fontSmoothing": "Suavização de fontes", + "fontSmoothingDesc": "Ativar renderização de fontes ClearType", + "fullWindowDrag": "Arrastar janela inteira", + "fullWindowDragDesc": "Exibir o conteúdo da janela enquanto arrasta", + "desktopComposition": "Composição de mesa", + "desktopCompositionDesc": "Ative os efeitos de vidro Aero", + "menuAnimations": "Animações de menu", + "menuAnimationsDesc": "Ativar animações de transição e deslizamento do menu", + "disableBitmapCaching": "Desativar o cache de bitmaps", + "disableBitmapCachingDesc": "Desative o cache de bitmaps (pode ajudar a resolver problemas técnicos).", + "disableOffscreenCaching": "Desativar o cache fora da tela", + "disableOffscreenCachingDesc": "Desative o cache fora da tela", + "disableGlyphCaching": "Desativar o cache de glifos", + "disableGlyphCachingDesc": "Desative o cache de glifos", + "enableGfx": "Ativar GFX", + "enableGfxDesc": "Utilize o pipeline gráfico RemoteFX", + "enablePrinting": "Habilitar impressão", + "enablePrintingDesc": "Redirecionar impressoras locais para a sessão remota.", + "enableDriveRedirection": "Ativar o redirecionamento de unidades", + "enableDriveRedirectionDesc": "Mapear uma pasta local como uma unidade na sessão remota.", + "createDrivePath": "Criar caminho de unidade", + "createDrivePathDesc": "Criar automaticamente a pasta caso ela não exista.", + "disableDownload": "Desativar download", + "disableDownloadDesc": "Impedir o download de arquivos da sessão remota.", + "disableUpload": "Desativar o upload", + "disableUploadDesc": "Impedir o envio de arquivos para a sessão remota.", + "enableTouch": "Ativar toque", + "enableTouchDesc": "Ativar o encaminhamento de entrada por toque", + "consoleSession": "Sessão do console", + "consoleSessionDesc": "Conecte-se ao console (sessão 0) em vez de uma nova sessão.", + "sendWolPacket": "Enviar pacote WOL", + "sendWolPacketDesc": "Envie um pacote mágico para ativar este host antes de se conectar.", + "disableCopy": "Desativar cópia", + "disableCopyDesc": "Impedir a cópia de texto da sessão remota", + "disablePaste": "Desativar colagem", + "disablePasteDesc": "Impedir a colagem de texto na sessão remota.", + "createPathIfMissing": "Criar caminho se estiver faltando", + "createPathIfMissingDesc": "Criar automaticamente o diretório de gravação", + "excludeOutput": "Excluir saída", + "excludeOutputDesc": "Não gravar a saída da tela (apenas metadados).", + "excludeMouse": "Excluir o rato", + "excludeMouseDesc": "Não grave movimentos do mouse", + "includeKeystrokes": "Incluir teclas pressionadas", + "includeKeystrokesDesc": "Registre as teclas digitadas em sua forma original, além da saída na tela.", + "vncPort": "Porta VNC", + "vncPassword": "Senha VNC", + "vncUsernameOptional": "Nome de usuário (opcional)", + "vncLeaveBlank": "Deixe em branco se não for necessário.", + "cursorMode": "Modo Cursor", + "swapRedBlue": "Trocar Vermelho/Azul", + "swapRedBlueDesc": "Trocar os canais de cor vermelho e azul resolve alguns problemas de cor.", + "readOnly": "Somente leitura", + "readOnlyDesc": "Visualize a tela remota sem enviar nenhum comando.", + "telnetPort": "Porta Telnet", + "terminalType": "Tipo de terminal", + "fontName": "Nome da fonte", "fontSize": "Tamanho da Fonte", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", + "colorScheme": "Esquema de cores", + "backspaceKey": "Tecla Backspace", + "colorDepth": "Profundidade de cor", + "resizeMethod": "Método de redimensionamento", "driveNamePlaceholder": "Termix Drive" }, "remoteDesktop": "Área de trabalho remota", @@ -220,80 +220,80 @@ "tabTelnet": "Telnet", "virtualNetwork": "Rede Virtual", "unencryptedShell": "Shell não criptografado", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "remoteDesktopNotes": "Notas", + "userDefaultsNote": "As configurações que você deixar inalteradas seguirão as configurações padrão do seu host.", + "connectionOriginNote": "No aplicativo para desktop, RDP, VNC e Telnet usam o servidor remoto, a menos que o host esteja configurado como \"Este dispositivo\", o que requer um proxy guacd que esta máquina possa acessar. Defina um nas configurações da Área de Trabalho Remota ou por host em \"Proxy guacd\".", "docsLink": "Documentação", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC e Telnet usam o servidor remoto, a menos que você selecione \"Este dispositivo\", que requer um guacd que esta máquina possa acessar. Defina um nas configurações de URL do guacd ou por host em Proxy do guacd." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Área de trabalho remota", + "feature_desktop_desc": "Abra sessões RDP, VNC e Telnet em uma aba, da mesma forma que o SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Profundidade de cor", + "description": "Usado para hosts RDP que o deixam na configuração padrão." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Método de redimensionamento", + "description": "Como a tela remota acompanha o tamanho da janela." }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "Atualização de exibição", + "resizeReconnect": "Reconectar", + "inherit": "Herdar", + "on": "Sobre", + "off": "Desligado", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Força sem perdas", + "description": "Forçar codificação de imagem sem perdas (maior qualidade, mais largura de banda)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "Papel de parede", + "description": "Exibir papel de parede da área de trabalho (desativar melhora o desempenho)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Suavização de fontes", + "description": "Ativar renderização de fontes ClearType" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Composição de mesa", + "description": "Ative os efeitos de vidro Aero" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Desativar áudio", + "description": "Silenciar todo o áudio da sessão remota." }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Habilitar impressão", + "description": "Redirecionar impressoras locais para a sessão remota." }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Ativar o redirecionamento de unidades", + "description": "Mapear uma pasta local como uma unidade na sessão remota." }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Desativar cópia", + "description": "Impedir a cópia de texto da sessão remota" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Desativar colagem", + "description": "Impedir a colagem de texto na sessão remota." }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Configurações padrão da Área de Trabalho Remota", + "colorDepth16": "16 bits", + "colorDepth24": "24 bits", + "colorDepth32": "32 bits" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Habilitar Área de Trabalho Remota", + "description": "Permitir conexões RDP, VNC e Telnet através do guacd." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "URL do guacd", + "description": "O local onde o guacd está escutando é definido como host:porta. As variáveis de ambiente GUACD_URL, GUACD_HOST e GUACD_PORT têm precedência sobre isso.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "Porta RDP" }, "vncPort": { - "label": "VNC port" + "label": "Porta VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "porta Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Modo de segurança RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ignorar erros de certificado" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "configurações do guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Barra de ferramentas da área de trabalho remota", + "description": "Exibir a barra de ferramentas em sessões RDP, VNC e Telnet." }, - "displayGroup": "Display", + "displayGroup": "Mostrar", "displayDefaultsTab": "Área de trabalho remota" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Conectar com RDP", + "connectVnc": "Conecte-se com VNC", + "connectTelnet": "Conecte-se com Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Compartilhar sessões de área de trabalho remota", + "description": "Permitir que o compartilhamento de sessões e as salas de colaboração mostrem as sessões RDP, VNC e Telnet deste usuário para outros usuários." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Conecte um servidor remoto nas Configurações para usar este tipo de conexão." } } diff --git a/plugins/remote-desktop/locales/translated/pt_PT.json b/plugins/remote-desktop/locales/translated/pt_PT.json index e1ccdcac8..1216b4873 100644 --- a/plugins/remote-desktop/locales/translated/pt_PT.json +++ b/plugins/remote-desktop/locales/translated/pt_PT.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "A ligar à sessão {{type}}...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", + "checkingGuacd": "Verificação do serviço de ambiente de trabalho remoto...", + "requestingToken": "A solicitar token de ligação {{type}}...", + "openingSession": "Abertura {{type}} sessão...", "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "sessionReady": "{{type}} sessão pronta", "connectionError": "Erro de ligação", "connectionFailed": "Falha na ligação", "failedToConnect": "Falha ao obter o token de ligação", @@ -14,37 +14,37 @@ "reconnect": "Reconectar", "retry": "Repetir", "guacdUnavailable": "O serviço de ambiente de trabalho remoto (guacd) não está disponível. Certifique-se de que o guacd está em execução, acessível e devidamente configurado nas definições de administração.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "Introduza as credenciais RDP", + "credentialPromptDescription": "Este host está configurado para solicitar credenciais ao ligar. São utilizadas apenas para esta sessão e não são guardadas.", "connect": "Ligar", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Arquivos do Drive", + "parent": "Diretório pai", "refresh": "Atualizar", "empty": "Esta pasta está vazia", - "listFailed": "Failed to read this folder", + "listFailed": "Não foi possível ler esta pasta.", "download": "Descarregar", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "Falha ao descarregar {{name}}", + "upload": "Carregar ficheiros", "uploading": "A enviar {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "Enviado {{name}}", + "uploadFailed": "Falha ao carregar {{name}}", + "uploadDisabled": "Os uploads estão desativados para esta ligação.", + "driveUnavailable": "Ative o redireccionamento da unidade RDP antes de enviar ficheiros.", + "driveNotWritable": "O guacd não consegue escrever na pasta da unidade. Verifique a variável de ambiente GUACD_DRIVE_PATH (ou o caminho da unidade do host) e as suas permissões.", + "dropToUpload": "Arraste e largue os ficheiros para fazer o upload." }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (Bloquear ecrã)", "winKey": "Tecla Windows", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "superL": "Super+L (Ecrã de bloqueio)", + "superKey": "Super Chave", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (Bloquear ecrã)", + "cmdKey": "Tecla de comando", + "cmd": "Comando", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "Recolher barra", "expand": "Expandir barra", "dragHandle": "Arraste para reposicionar", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "Ocultar para esta sessão. Para o desativar permanentemente, abra as Definições do Host → Geral → Barra de Ferramentas de Ligação.", + "zoomIn": "Ampliar", + "zoomOut": "Diminuir o zoom", + "resetZoom": "Redefinir zoom", + "fitToScreen": "Ajustar ao ecrã", + "switchToTrackpad": "Mudar para o modo trackpad (arraste para mover o cursor, toque para clicar)", + "switchToTouch": "Mude para o modo de toque (toque diretamente onde pretende clicar)." }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "A Área de Trabalho Remota está desativada. Um administrador pode ativá-la nas Definições." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Aberto na Área de Trabalho Remota do Windows", + "nativeRdpFailed": "Falha ao abrir a Área de Trabalho Remota do Windows", + "openNativeRdp": "Abrir no Windows Remote Desktop", "guac": { - "toolbar": "Toolbar", + "toolbar": "Barra de ferramentas", "connection": "Ligação", "authentication": "Autenticação", "storedCredential": "Credencial Armazenada", @@ -89,7 +89,7 @@ "authTypeDirect": "Direta", "authTypeCredential": "Credencial", "authTypeNone": "Nenhuma", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "Nenhuma credencial é armazenada. Ser-lhe-á pedido que insira um nome de utilizador e uma senha sempre que se conectar; não são salvos.", "selectCredential": "Selecionar uma credencial...", "connectionSettings": "Definições de Ligação", "displaySettings": "Definições de Ecrã", @@ -107,7 +107,7 @@ "rdpPort": "Porta RDP", "username": "Nome de utilizador", "password": "Palavra-passe", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "Palavra-passe guardada, digite para alterar", "domain": "Domínio", "securityMode": "Modo de segurança", "width": "Largura", @@ -221,28 +221,28 @@ "virtualNetwork": "Rede Virtual", "unencryptedShell": "Shell não encriptado", "remoteDesktopNotes": "Notas", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "As definições que deixar inalteradas seguirão as definições padrão do seu host.", + "connectionOriginNote": "Na aplicação para desktop, o RDP, o VNC e o Telnet utilizam o servidor remoto, a menos que o host esteja configurado como \"Este dispositivo\", o que requer um proxy guacd a que esta máquina possa aceder. Defina um nas definições da Área de Trabalho Remota ou por host em \"Proxy guacd\".", "docsLink": "Ver documentação", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "O RDP, o VNC e o Telnet utilizam o servidor remoto, a menos que seleccione \"Este dispositivo\", que requer um guacd a que esta máquina possa aceder. Defina um nas definições de URL do guacd ou por host em Proxy do guacd." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Área de trabalho remota", + "feature_desktop_desc": "Abra as sessões RDP, VNC e Telnet num separador, da mesma forma que o SSH." }, "settings": { "user": { "colorDepth": { "label": "Profundidade de cor", - "description": "Used for RDP hosts that leave it on their default." + "description": "Utilizado para hosts RDP que o deixam na configuração padrão." }, "resizeMethod": { "label": "Método de redimensionamento", - "description": "How the remote screen follows the window size." + "description": "Como o ecrã remoto acompanha o tamanho da janela." }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "Atualização de visualização", "resizeReconnect": "Reconectar", - "inherit": "Inherit", + "inherit": "Herdar", "on": "Ativado", "off": "Desativado", "forceLossless": { @@ -281,19 +281,19 @@ "label": "Desativar Colagem", "description": "Impedir a colagem de texto na sessão remota" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Configurações padrão da Área de Trabalho Remota", + "colorDepth16": "16 bits", + "colorDepth24": "24 bits", + "colorDepth32": "32 bits" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Ativar Área de Trabalho Remota", + "description": "Permitir ligações RDP, VNC e Telnet através do guacd." }, "guacdUrl": { "label": "URL do guacd", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "O local onde o guacd está a escutar é definido como host:porta. As variáveis de ambiente GUACD_URL, GUACD_HOST e GUACD_PORT têm precedência sobre isto.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "Porta RDP" }, "vncPort": { - "label": "VNC port" + "label": "Porta VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "porta Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Modo de segurança RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ignorar erros de certificado" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "configurações do guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Barra de ferramentas da área de trabalho remota", + "description": "Visualizar a barra de ferramentas nas sessões RDP, VNC e Telnet." }, - "displayGroup": "Display", + "displayGroup": "Ecrã", "displayDefaultsTab": "Ambiente de trabalho remoto" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Ligar com RDP", + "connectVnc": "Ligue-se com VNC", + "connectTelnet": "Ligue-se com Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Partilhar sessões de ambiente de trabalho remoto", + "description": "Permitir que a partilha de sessões e as salas de colaboração mostrem as sessões RDP, VNC e Telnet deste utilizador a outros utilizadores." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Ligue um servidor remoto nas Definições para utilizar este tipo de ligação." } } diff --git a/plugins/remote-desktop/locales/translated/ru_RU.json b/plugins/remote-desktop/locales/translated/ru_RU.json index 8cb5dd588..ec16a4515 100644 --- a/plugins/remote-desktop/locales/translated/ru_RU.json +++ b/plugins/remote-desktop/locales/translated/ru_RU.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "Подключение к сессии {{type}}...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "checkingGuacd": "Проверка службы удаленного рабочего стола...", + "requestingToken": "Запрос токена подключения {{type}}...", + "openingSession": "Открытие сессии {{type}}...", + "negotiating": "Переговоры {{type}} рукопожатие...", + "sessionReady": "{{type}} сессия готова", "connectionError": "Ошибка подключения", "connectionFailed": "Ошибка подключения", "failedToConnect": "Не удалось получить токен подключения", @@ -14,37 +14,37 @@ "reconnect": "Переподключиться", "retry": "Повторить", "guacdUnavailable": "Служба удалённого рабочего стола (guacd) недоступна. Убедитесь, что guacd запущен, доступен и правильно настроен в настройках администратора.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "Введите учетные данные RDP.", + "credentialPromptDescription": "На этом хосте настроен запрос учетных данных при подключении. Они используются только в течение этой сессии и не сохраняются.", "connect": "Соединить", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Файлы диска", + "parent": "Родительский каталог", "refresh": "Обновить", "empty": "Эта папка пуста", - "listFailed": "Failed to read this folder", + "listFailed": "Не удалось прочитать эту папку.", "download": "Скачать", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "Не удалось загрузить {{name}}", + "upload": "Загрузка файлов", "uploading": "Загрузка {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "Загружено {{name}}", + "uploadFailed": "Не удалось загрузить {{name}}", + "uploadDisabled": "Загрузка файлов для этого соединения отключена.", + "driveUnavailable": "Включите перенаправление дисков RDP перед загрузкой файлов.", + "driveNotWritable": "guacd не может записывать данные в папку на диске. Проверьте переменную GUACD_DRIVE_PATH (или путь к диску на хосте) и ее права доступа.", + "dropToUpload": "Перетащите файлы для загрузки" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (Блокировка экрана)", "winKey": "Клавиша Windows", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "Super+L (экран блокировки)", + "superKey": "Суперклавиша", + "super": "Супер", + "cmdL": "Cmd+L (Блокировка экрана)", + "cmdKey": "Клавиша Command", + "cmd": "Команда", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "Свернуть панель", "expand": "Развернуть панель", "dragHandle": "Перетащите для перемещения", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "Скрыть на время текущей сессии. Чтобы отключить эту функцию навсегда, откройте «Настройки хоста» → «Общие» → «Панель подключения».", + "zoomIn": "Увеличить масштаб", + "zoomOut": "Отдалиться", + "resetZoom": "Сбросить масштаб", + "fitToScreen": "Подогнать под экран", + "switchToTrackpad": "Переключитесь в режим трекпада (перетащите для перемещения курсора, коснитесь для щелчка).", + "switchToTouch": "Переключитесь в сенсорный режим (коснитесь непосредственно того места, куда хотите нажать)." }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Функция удаленного рабочего стола отключена. Администратор может включить ее в настройках." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Открыто в Windows Remote Desktop", + "nativeRdpFailed": "Не удалось открыть удаленный рабочий стол Windows.", + "openNativeRdp": "Открыть в удаленном рабочем столе Windows", "guac": { - "toolbar": "Toolbar", + "toolbar": "Панель инструментов", "connection": "Подключение", "authentication": "Аутентификация", "storedCredential": "Сохраненные учетные данные", @@ -89,7 +89,7 @@ "authTypeDirect": "Прямой", "authTypeCredential": "Учетные данные", "authTypeNone": "Ни одного", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "Учетные данные не сохраняются. При каждом подключении вам будет предлагаться ввести имя пользователя и пароль; они не сохраняются.", "selectCredential": "Выберите учетные данные...", "connectionSettings": "Параметры подключения", "displaySettings": "Параметры отображения", @@ -107,7 +107,7 @@ "rdpPort": "Порт RDP", "username": "Имя пользователя", "password": "Пароль", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "Пароль сохранен, введите для изменения.", "domain": "Домен", "securityMode": "Режим безопасности", "width": "Ширина", @@ -212,7 +212,7 @@ "backspaceKey": "Клавиша Backspace", "colorDepth": "Глубина цвета", "resizeMethod": "Метод изменения размера", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "Термикс Драйв" }, "remoteDesktop": "Удаленный рабочий стол", "tabRdp": "RDP", @@ -221,28 +221,28 @@ "virtualNetwork": "Виртуальная сеть", "unencryptedShell": "Незашифрованная оболочка", "remoteDesktopNotes": "Заметки", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "Настройки, которые вы оставляете без изменений, соответствуют настройкам по умолчанию вашего хоста.", + "connectionOriginNote": "В настольном приложении RDP, VNC и Telnet используют удаленный сервер, если только для хоста не установлен параметр «Это устройство», для которого требуется guacd, к которому может подключиться эта машина. Задайте его в настройках удаленного рабочего стола или для каждого хоста в разделе guacd Proxy.", "docsLink": "Документация", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC и Telnet используют удаленный сервер, если вы не выберете «Это устройство», для которого требуется guacd, к которому может подключиться эта машина. Задайте его в настройках URL-адреса guacd или для каждого хоста в разделе «Прокси guacd»." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Удаленный рабочий стол", + "feature_desktop_desc": "Открывайте сеансы RDP, VNC и Telnet во вкладке, как и SSH." }, "settings": { "user": { "colorDepth": { "label": "Глубина цвета", - "description": "Used for RDP hosts that leave it on their default." + "description": "Используется для RDP-хостов, которые оставляют этот параметр по умолчанию." }, "resizeMethod": { "label": "Метод изменения размера", - "description": "How the remote screen follows the window size." + "description": "Как удаленный экран подстраивается под размер окна." }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "Обновление дисплея", "resizeReconnect": "Переподключиться", - "inherit": "Inherit", + "inherit": "Наследовать", "on": "Включено", "off": "Отключено", "forceLossless": { @@ -281,19 +281,19 @@ "label": "Отключить вставку", "description": "Запретить вставку текста в удаленный сеанс" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Настройки удаленного рабочего стола по умолчанию", + "colorDepth16": "16-бит", + "colorDepth24": "24-бит", + "colorDepth32": "32-битный" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Включить удалённый рабочий стол", + "description": "Разрешите подключения RDP, VNC и Telnet через guacd." }, "guacdUrl": { "label": "URL guacd", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "guacd прослушивает порты и хосты. Переменные окружения GUACD_URL, GUACD_HOST и GUACD_PORT переопределяют это.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "порт RDP" }, "vncPort": { - "label": "VNC port" + "label": "порт VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "порт Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "режим безопасности RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Игнорировать ошибки сертификатов" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "настройки guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Панель инструментов удаленного рабочего стола", + "description": "Отображение панели инструментов в сеансах RDP, VNC и Telnet." }, - "displayGroup": "Display", + "displayGroup": "Отображать", "displayDefaultsTab": "Удаленный рабочий стол" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Подключитесь к RDP", + "connectVnc": "Подключитесь к VNC", + "connectTelnet": "Подключитесь через Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Совместное использование сеансов удалённого рабочего стола", + "description": "Разрешите совместное использование сессий и комнаты для совместной работы отображать сессии этого пользователя по протоколам RDP, VNC и Telnet другим пользователям." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Требуется удаленный сервер. Для использования этого типа подключения подключите удаленный сервер в настройках." } } diff --git a/plugins/remote-desktop/locales/translated/sr_SP.json b/plugins/remote-desktop/locales/translated/sr_SP.json index 306981f08..3d7f9d5fe 100644 --- a/plugins/remote-desktop/locales/translated/sr_SP.json +++ b/plugins/remote-desktop/locales/translated/sr_SP.json @@ -1,350 +1,350 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "Повезивање са {{type}} сесијом...", + "checkingGuacd": "Провера услуге удаљене радне површине...", + "requestingToken": "Захтева се {{type}} токен за повезивање...", + "openingSession": "Отварање {{type}} сесије...", + "negotiating": "Преговарање {{type}} руковање...", + "sessionReady": "{{type}} сесија спремна", + "connectionError": "Грешка у повезивању", + "connectionFailed": "Повезивање није успело", + "failedToConnect": "Није успело добијање токена за повезивање", + "hostNotFound": "Хост није пронађен", + "noHostSelected": "Није изабран домаћин", + "reconnect": "Поново се повежите", + "retry": "Покушај поново", + "guacdUnavailable": "Услуга удаљеног рачунара (guacd) није доступна. Молимо вас да се уверите да је guacd покренут, доступан и правилно конфигурисан у администраторским подешавањима.", + "credentialPromptTitle": "Унесите RDP акредитиве", + "credentialPromptDescription": "Овај хост је подешен да тражи акредитиве при повезивању. Они се користе само за ову сесију и не чувају се.", + "connect": "Повежи се", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "Датотеке на Диску", + "parent": "Надређени директоријум", + "refresh": "Освежи", + "empty": "Ова фасцикла је празна", + "listFailed": "Није успело читање ове фасцикле", + "download": "Преузми", + "downloadFailed": "Преузимање није успело {{name}}", + "upload": "Отпреми датотеке", + "uploading": "Отпремање {{name}}...", + "uploaded": "Отпремљено {{name}}", + "uploadFailed": "Није успело отпремање {{name}}", + "uploadDisabled": "Отпремања су онемогућена за ову везу", + "driveUnavailable": "Омогућите преусмеравање RDP диска пре отпремања датотека", + "driveNotWritable": "guacd не може да пише у фасциклу диска. Проверите GUACD_DRIVE_PATH (или путању диска хоста) и његове дозволе.", + "dropToUpload": "Отпустите датотеке да бисте их отпремили" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "winL": "Win+L (Закључавање екрана)", + "winKey": "Windows тастер", + "superL": "Супер+Л (Закључани екран)", + "superKey": "Супер кључ", + "super": "Супер", + "cmdL": "Cmd+L (Закључани екран)", + "cmdKey": "Командни тастер", + "cmd": "Команда", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "alt": "Алтернативно", + "shift": "Померање", + "win": "Победа", + "stickyActive": "{{key}} (закључано - кликните да бисте отпустили)", + "stickyInactive": "{{key}} (кликните да бисте закључали)", + "esc": "Бег", + "tab": "Таб", + "home": "Дом", + "end": "Крај", + "pageUp": "Страница нагоре", + "pageDown": "Страница надоле", + "arrowUp": "Стрелица нагоре", + "arrowDown": "Стрелица надоле", + "arrowLeft": "Стрелица лево", + "arrowRight": "Стрелица десно", + "fnToggle": "Функцијски тастери", + "reconnect": "Поновно повезивање сесије", + "collapse": "Савиј траку са алаткама", + "expand": "Прошири траку са алаткама", + "dragHandle": "Превуците да бисте променили положај", + "hide": "Сакриј за ову сесију. Да бисте га трајно онемогућили, отворите Подешавања хоста → Опште → Трака са алаткама за повезивање.", + "zoomIn": "Увећај", + "zoomOut": "Умањи", + "resetZoom": "Ресетуј зумирање", + "fitToScreen": "Прилагоди екрану", + "switchToTrackpad": "Пребаците се у режим додирне табле (превуците да бисте померили курсор, додирните да бисте кликнули)", + "switchToTouch": "Пребаците се на режим додира (додирните директно место где желите да кликнете)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Удаљена радна површина је искључена. Администратор је може укључити у подешавањима." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Отворено у Windows удаљеној радној површини", + "nativeRdpFailed": "Није успело отварање Windows удаљене радне површине", + "openNativeRdp": "Отвори у Windows удаљеној радној површини", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "toolbar": "Трака са алаткама", + "connection": "Веза", + "authentication": "Аутентификација", + "storedCredential": "Сачувани акредитив", + "authMethod": "Метода овлашћења", + "authTypeDirect": "Директно", + "authTypeCredential": "Акредитив", + "authTypeNone": "Ниједан", + "authTypeNoneDesc": "Акредитиви се не чувају. Сваки пут када се повежете, биће вам затражено корисничко име и лозинка; они се не чувају.", + "selectCredential": "Изаберите акредитив...", + "connectionSettings": "Подешавања везе", + "displaySettings": "Подешавања екрана", + "audioSettings": "Подешавања звука", + "rdpPerformance": "Перформансе РДП-а", + "deviceRedirection": "Преусмеравање уређаја", + "session": "Сесија", + "gateway": "Капија", + "remoteApp": "Удаљена апликација", + "clipboard": "Међуспремник", + "sessionRecording": "Снимање сесије", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", - "username": "Username", - "password": "Password", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "vncSettings": "VNC подешавања", + "terminalSettings": "Подешавања терминала", + "rdpPort": "РДП порт", + "username": "Корисничко име", + "password": "Лозинка", + "passwordSaved": "Лозинка сачувана, унесите текст да бисте је променили", + "domain": "Домен", + "securityMode": "Безбедносни режим", + "width": "Ширина", + "height": "Висина", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", - "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", - "driveNamePlaceholder": "Termix Drive" + "clientName": "Име клијента", + "initialProgram": "Почетни програм", + "serverLayout": "Распоред сервера", + "timezone": "Временска зона", + "loadBalanceInfo": "Информације о балансу оптерећења / колачић", + "loadBalanceInfoDesc": "Колачић RD Connection Broker-а за балансирање оптерећења RDS фарме (нпр. tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "guacd прокси", + "guacdHostname": "guacd хост", + "guacdHostnamePlaceholder": "Глобално подразумевано", + "guacdPort": "ГУАЦД порт", + "guacdProxyDesc": "Замените глобалну инстанцу guacd-а за ову везу. Оставите празно да бисте користили глобално конфигурисани guacd.", + "gatewayHostname": "Име хоста мрежног пролаза", + "gatewayPort": "Порт за пролаз", + "gatewayUsername": "Корисничко име на гејтвеју", + "gatewayPassword": "Лозинка за пролаз", + "gatewayDomain": "Домен капије", + "remoteAppProgram": "Програм RemoteApp", + "workingDirectory": "Радни директоријум", + "arguments": "Аргументи", + "normalizeLineEndings": "Нормализуј завршетке линија", + "macAddress": "MAC адреса", + "broadcastAddress": "Адреса за емитовање", + "udpPort": "UDP порт", + "waitTimeS": "Време чекања (s)", + "driveName": "Назив диска", + "drivePath": "Путања диска", + "ignoreCertificate": "Игнориши сертификат", + "ignoreCertificateDesc": "Дозволи везе са хостовима са самопотписаним сертификатима", + "forceLossless": "Присилно без губитака", + "forceLosslessDesc": "Присилно кодирање слике без губитака (виши квалитет, већи пропусни опсег)", + "disableAudio": "Онемогући звук", + "disableAudioDesc": "Искључите сав звук из удаљене сесије", + "enableAudioInput": "Омогући аудио улаз (микрофон)", + "enableAudioInputDesc": "Прослеђивање локалног микрофона на удаљену сесију", + "wallpaper": "Позадина", + "wallpaperDesc": "Прикажи позадину радне површине (онемогућавање побољшава перформансе)", + "theming": "Темирање", + "themingDesc": "Омогући визуелне теме и стилове", + "fontSmoothing": "Изглађивање фонта", + "fontSmoothingDesc": "Омогући приказивање ClearType фонта", + "fullWindowDrag": "Превлачење преко целог прозора", + "fullWindowDragDesc": "Приказ садржаја прозора током превлачења", + "desktopComposition": "Композиција на радној површини", + "desktopCompositionDesc": "Омогући ефекте Aero Glass-а", + "menuAnimations": "Анимације менија", + "menuAnimationsDesc": "Омогући анимације постепеног постепеног померања менија и слајдова", + "disableBitmapCaching": "Онемогући кеширање битмапа", + "disableBitmapCachingDesc": "Искључите кеш битмапа (може помоћи код грешака)", + "disableOffscreenCaching": "Онемогући кеширање ван екрана", + "disableOffscreenCachingDesc": "Искључите кеш меморију ван екрана", + "disableGlyphCaching": "Онемогући кеширање глифова", + "disableGlyphCachingDesc": "Искључите кеш глифова", + "enableGfx": "Омогући графичке ефекте", + "enableGfxDesc": "Користите графички цевовод RemoteFX", + "enablePrinting": "Омогући штампање", + "enablePrintingDesc": "Преусмерите локалне штампаче на удаљену сесију", + "enableDriveRedirection": "Омогући преусмеравање диска", + "enableDriveRedirectionDesc": "Мапирајте локалну фасциклу као диск у удаљеној сесији", + "createDrivePath": "Креирај путању диска", + "createDrivePathDesc": "Аутоматски креирај фасциклу ако не постоји", + "disableDownload": "Онемогући преузимање", + "disableDownloadDesc": "Спречите преузимање датотека са удаљене сесије", + "disableUpload": "Онемогући отпремање", + "disableUploadDesc": "Спречите отпремање датотека на удаљену сесију", + "enableTouch": "Омогући додир", + "enableTouchDesc": "Омогући преусмеравање уноса додиром", + "consoleSession": "Конзолна сесија", + "consoleSessionDesc": "Повежите се са конзолом (сесија 0) уместо нове сесије", + "sendWolPacket": "Пошаљи WOL пакет", + "sendWolPacketDesc": "Пошаљите магични пакет да пробудите овај хост пре повезивања", + "disableCopy": "Онемогући копирање", + "disableCopyDesc": "Спречите копирање текста из удаљене сесије", + "disablePaste": "Онемогући лепљење", + "disablePasteDesc": "Спречите лепљење текста у удаљену сесију", + "createPathIfMissing": "Креирај путању ако недостаје", + "createPathIfMissingDesc": "Аутоматски креирајте директоријум за снимање", + "excludeOutput": "Искључи излаз", + "excludeOutputDesc": "Не снимај излаз екрана (само метаподаци)", + "excludeMouse": "Искључи миш", + "excludeMouseDesc": "Не снимај покрете миша", + "includeKeystrokes": "Укључи притиске на тастатури", + "includeKeystrokesDesc": "Снимање сирових притиска тастера поред излаза на екран", + "vncPort": "VNC порт", + "vncPassword": "VNC лозинка", + "vncUsernameOptional": "Корисничко име (опционо)", + "vncLeaveBlank": "Оставите празно ако није потребно", + "cursorMode": "Режим курсора", + "swapRedBlue": "Замена црвене/плаве", + "swapRedBlueDesc": "Замена црвених и плавих канала боја (решава неке проблеме са бојама)", + "readOnly": "Само за читање", + "readOnlyDesc": "Погледајте удаљени екран без слања било каквог уноса", + "telnetPort": "Телнет порт", + "terminalType": "Тип терминала", + "fontName": "Назив фонта", + "fontSize": "Величина фонта", + "colorScheme": "Шема боја", + "backspaceKey": "Тастер Backspace", + "colorDepth": "Дубина боје", + "resizeMethod": "Метод промене величине", + "driveNamePlaceholder": "Термикс Драјв" }, - "remoteDesktop": "Remote Desktop", - "tabRdp": "RDP", + "remoteDesktop": "Удаљена радна површина", + "tabRdp": "РДП", "tabVnc": "VNC", - "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "tabTelnet": "Телнет", + "virtualNetwork": "Виртуелна мрежа", + "unencryptedShell": "Нешифрована љуска", + "remoteDesktopNotes": "Белешке", + "userDefaultsNote": "Подешавања која оставите непромењена прате подразумеване вредности вашег хоста.", + "connectionOriginNote": "У десктоп апликацији, RDP, VNC и Telnet користе удаљени сервер осим ако хост није подешен на „Овај уређај“, чему је потребан guacd који ова машина може да досегне. Подесите га у подешавањима удаљене радне површине или по хосту под guacd прокси.", + "docsLink": "Прикажи документе", + "connectionOriginGuacamoleNote": "RDP, VNC и Telnet користе удаљени сервер осим ако не изаберете „Овај уређај“, за шта је потребан guacd који ова машина може да досегне. Подесите га у подешавању guacd URL-а или по хосту под guacd прокси." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Удаљена радна површина", + "feature_desktop_desc": "Отворите RDP, VNC и Telnet сесије у картици, исто као и SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Дубина боје", + "description": "Користи се за RDP хостове који га остављају на подразумеваним подешавањима." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Метод промене величине", + "description": "Како удаљени екран прати величину прозора." }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "Ажурирање екрана", + "resizeReconnect": "Поново се повежите", + "inherit": "Наследи", + "on": "Укључено", + "off": "Искључено", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Присилно без губитака", + "description": "Присилно кодирање слике без губитака (виши квалитет, већи пропусни опсег)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "Позадина", + "description": "Прикажи позадину радне површине (онемогућавање побољшава перформансе)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Изглађивање фонта", + "description": "Омогући приказивање ClearType фонта" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Композиција на радној површини", + "description": "Омогући ефекте Aero Glass-а" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Онемогући звук", + "description": "Искључите сав звук из удаљене сесије" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Омогући штампање", + "description": "Преусмерите локалне штампаче на удаљену сесију" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Омогући преусмеравање диска", + "description": "Мапирајте локалну фасциклу као диск у удаљеној сесији" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Онемогући копирање", + "description": "Спречите копирање текста из удаљене сесије" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Онемогући лепљење", + "description": "Спречите лепљење текста у удаљену сесију" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Подразумевана подешавања удаљене радне површине", + "colorDepth16": "16-битни", + "colorDepth24": "24-битни", + "colorDepth32": "32-битни" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Омогући удаљену радну површину", + "description": "Дозволите RDP, VNC и Telnet везе путем guacd-а." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", - "placeholder": "guacd:4822" + "label": "URL адреса guacd-а", + "description": "Где guacd слуша, као host:port. Променљиве окружења GUACD_URL, GUACD_HOST и GUACD_PORT ово поништавају.", + "placeholder": "гуацд:4822" } }, "host": { "enableRdp": { - "label": "RDP" + "label": "РДП" }, "enableVnc": { "label": "VNC" }, "enableTelnet": { - "label": "Telnet" + "label": "Телнет" }, "rdpPort": { - "label": "RDP port" + "label": "РДП порт" }, "vncPort": { - "label": "VNC port" + "label": "VNC порт" }, "telnetPort": { - "label": "Telnet port" + "label": "Телнет порт" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP безбедносни режим" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Игноришите грешке сертификата" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "подешавања GUACD-а" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Трака са алаткама за удаљену радну површину", + "description": "Прикажи траку са алаткама у RDP, VNC и Telnet сесијама." }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "Приказ", + "displayDefaultsTab": "Удаљена радна површина" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Повежите се са RDP-ом", + "connectVnc": "Повежите се са VNC-ом", + "connectTelnet": "Повежите се са Телнетом" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Делите сесије удаљене радне површине", + "description": "Дозволите дељењу сесија и собама за сарадњу да приказују RDP, VNC и Telnet сесије овог корисника другима." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потребан је удаљени сервер. Повежите се са удаљеним сервером у Подешавањима да бисте користили овај тип везе." } } diff --git a/plugins/remote-desktop/locales/translated/sv_SE.json b/plugins/remote-desktop/locales/translated/sv_SE.json index 306981f08..d7f4a893f 100644 --- a/plugins/remote-desktop/locales/translated/sv_SE.json +++ b/plugins/remote-desktop/locales/translated/sv_SE.json @@ -1,305 +1,305 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "Ansluter till {{type}} session...", + "checkingGuacd": "Kontrollerar fjärrskrivbordstjänsten...", + "requestingToken": "Begär {{type}} anslutningstoken...", + "openingSession": "Öppnar {{type}} session...", + "negotiating": "Förhandlar {{type}} handslag...", + "sessionReady": "{{type}} session klar", + "connectionError": "Anslutningsfel", + "connectionFailed": "Anslutningen misslyckades", + "failedToConnect": "Misslyckades med att hämta anslutningstoken", + "hostNotFound": "Värden hittades inte", + "noHostSelected": "Ingen värd vald", + "reconnect": "Återanslut", + "retry": "Försöka igen", + "guacdUnavailable": "Fjärrskrivbordstjänsten (guacd) är inte tillgänglig. Se till att guacd körs, är tillgängligt och korrekt konfigurerat i administratörsinställningarna.", + "credentialPromptTitle": "Ange RDP-inloggningsuppgifter", + "credentialPromptDescription": "Den här värden är inställd på att be om inloggningsuppgifter vid anslutning. De används endast för den här sessionen och sparas inte.", + "connect": "Ansluta", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "Drive-filer", + "parent": "Föräldrakatalog", + "refresh": "Uppdatera", + "empty": "Den här mappen är tom", + "listFailed": "Kunde inte läsa den här mappen", + "download": "Ladda ner", + "downloadFailed": "Misslyckades med att ladda ner {{name}}", + "upload": "Ladda upp filer", + "uploading": "Laddar upp {{name}}...", + "uploaded": "Uppladdad {{name}}", + "uploadFailed": "Misslyckades med att ladda upp {{name}}", + "uploadDisabled": "Uppladdningar är inaktiverade för den här anslutningen", + "driveUnavailable": "Aktivera omdirigering av RDP-enheter innan du laddar upp filer", + "driveNotWritable": "guacd kan inte skriva till enhetsmappen. Kontrollera GUACD_DRIVE_PATH (eller värdens sökväg för enhet) och dess behörigheter.", + "dropToUpload": "Släpp filer för att ladda upp" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", + "winL": "Win+L (Låsskärm)", + "winKey": "Windows-tangenten", + "superL": "Super+L (Låsskärm)", + "superKey": "Supernyckel", "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "cmdL": "Cmd+L (Låsskärm)", + "cmdKey": "Kommandotangent", + "cmd": "Kommando", "ctrl": "Ctrl", "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "shift": "Flytta", + "win": "Vinna", + "stickyActive": "{{key}} (låst – klicka för att släppa)", + "stickyInactive": "{{key}} (klicka för att låsa)", + "esc": "Fly", + "tab": "Flik", + "home": "Hem", + "end": "Avsluta", + "pageUp": "Sida upp", + "pageDown": "Sida ner", + "arrowUp": "Pil upp", + "arrowDown": "Pil nedåt", + "arrowLeft": "Pil vänster", + "arrowRight": "Pil höger", + "fnToggle": "Funktionstangenter", + "reconnect": "Återanslut sessionen", + "collapse": "Komprimera verktygsfältet", + "expand": "Expandera verktygsfältet", + "dragHandle": "Dra för att flytta", + "hide": "Dölj för den här sessionen. För att inaktivera det permanent, öppna Värdinställningar → Allmänt → Anslutningsverktygsfält.", + "zoomIn": "Zooma in", + "zoomOut": "Zooma ut", + "resetZoom": "Återställ zoom", + "fitToScreen": "Anpassa till skärmen", + "switchToTrackpad": "Växla till styrplatteläge (dra för att flytta markören, tryck för att klicka)", + "switchToTouch": "Växla till pekläge (tryck direkt där du vill klicka)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Fjärrskrivbord är avstängt. En administratör kan aktivera det i Inställningar." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Öppnad i Windows Fjärrskrivbord", + "nativeRdpFailed": "Misslyckades med att öppna Windows Fjärrskrivbord", + "openNativeRdp": "Öppna i Windows Fjärrskrivbord", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", + "toolbar": "Verktygsfält", + "connection": "Förbindelse", + "authentication": "Autentisering", + "storedCredential": "Lagrade autentiseringsuppgifter", + "authMethod": "Autentiseringsmetod", + "authTypeDirect": "Direkt", + "authTypeCredential": "Referenser", + "authTypeNone": "Ingen", + "authTypeNoneDesc": "Inga inloggningsuppgifter lagras. Du kommer att bli ombedd att ange ett användarnamn och lösenord varje gång du ansluter; de sparas inte.", + "selectCredential": "Välj en behörighetsinloggning...", + "connectionSettings": "Anslutningsinställningar", + "displaySettings": "Skärminställningar", + "audioSettings": "Ljudinställningar", + "rdpPerformance": "RDP-prestanda", + "deviceRedirection": "Omdirigering av enhet", "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "gateway": "Inkörsport", + "remoteApp": "Fjärrapp", + "clipboard": "Urklipp", + "sessionRecording": "Sessionsinspelning", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", - "username": "Username", - "password": "Password", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "vncSettings": "VNC-inställningar", + "terminalSettings": "Terminalinställningar", + "rdpPort": "RDP-port", + "username": "Användarnamn", + "password": "Lösenord", + "passwordSaved": "Lösenordet sparats, skriv för att ändra", + "domain": "Domän", + "securityMode": "Säkerhetsläge", + "width": "Bredd", + "height": "Höjd", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", - "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", + "clientName": "Klientnamn", + "initialProgram": "Inledande program", + "serverLayout": "Serverlayout", + "timezone": "Tidszon", + "loadBalanceInfo": "Information om belastningsbalans / Cookie", + "loadBalanceInfoDesc": "RD Connection Broker-cookie för lastbalansering av RDS-farm (t.ex. tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "guacd-proxy", + "guacdHostname": "guacd-värd", + "guacdHostnamePlaceholder": "Global standard", + "guacdPort": "guacd-porten", + "guacdProxyDesc": "Åsidosätt den globala guacd-instansen för den här anslutningen. Lämna tomt om du vill använda den globalt konfigurerade guacd-instansen.", + "gatewayHostname": "Gateway-värdnamn", + "gatewayPort": "Gateway-porten", + "gatewayUsername": "Gateway-användarnamn", + "gatewayPassword": "Gateway-lösenord", + "gatewayDomain": "Gateway-domän", + "remoteAppProgram": "RemoteApp-programmet", + "workingDirectory": "Arbetskatalog", + "arguments": "Argument", + "normalizeLineEndings": "Normalisera radavslutningar", + "macAddress": "MAC-adress", + "broadcastAddress": "Sändningsadress", + "udpPort": "UDP-port", + "waitTimeS": "Väntetid (s)", + "driveName": "Enhetsnamn", + "drivePath": "Körväg", + "ignoreCertificate": "Ignorera certifikat", + "ignoreCertificateDesc": "Tillåt anslutningar till värdar med självsignerade certifikat", + "forceLossless": "Tvinga förlustfri", + "forceLosslessDesc": "Tvinga fram förlustfri bildkodning (högre kvalitet, mer bandbredd)", + "disableAudio": "Inaktivera ljud", + "disableAudioDesc": "Stäng av allt ljud från fjärrsessionen", + "enableAudioInput": "Aktivera ljudingång (mikrofon)", + "enableAudioInputDesc": "Vidarebefordra den lokala mikrofonen till fjärrsessionen", + "wallpaper": "Tapet", + "wallpaperDesc": "Visa skrivbordsbakgrund (inaktivering förbättrar prestandan)", + "theming": "Teman", + "themingDesc": "Aktivera visuella teman och stilar", + "fontSmoothing": "Utjämning av teckensnitt", + "fontSmoothingDesc": "Aktivera rendering av ClearType-teckensnitt", + "fullWindowDrag": "Drag i hela fönstret", + "fullWindowDragDesc": "Visa fönsterinnehållet när du drar", + "desktopComposition": "Skrivbordskomposition", + "desktopCompositionDesc": "Aktivera Aero Glass-effekter", + "menuAnimations": "Menyanimationer", + "menuAnimationsDesc": "Aktivera menytoning och glidande animationer", + "disableBitmapCaching": "Inaktivera bitmappscachning", + "disableBitmapCachingDesc": "Stäng av bitmappscachen (kan hjälpa till med problem)", + "disableOffscreenCaching": "Inaktivera cachelagring utanför skärmen", + "disableOffscreenCachingDesc": "Stäng av cache utanför skärmen", + "disableGlyphCaching": "Inaktivera glyf-cachning", + "disableGlyphCachingDesc": "Stäng av glyph-cache", + "enableGfx": "Aktivera GFX", + "enableGfxDesc": "Använd RemoteFX-grafikpipeline", + "enablePrinting": "Aktivera utskrift", + "enablePrintingDesc": "Omdirigera lokala skrivare till fjärrsessionen", + "enableDriveRedirection": "Aktivera omdirigering av kördata", + "enableDriveRedirectionDesc": "Mappa en lokal mapp som en enhet i fjärrsessionen", + "createDrivePath": "Skapa drivväg", + "createDrivePathDesc": "Skapa mappen automatiskt om den inte finns", + "disableDownload": "Inaktivera nedladdning", + "disableDownloadDesc": "Förhindra nedladdning av filer från fjärrsessionen", + "disableUpload": "Inaktivera uppladdning", + "disableUploadDesc": "Förhindra uppladdning av filer till fjärrsessionen", + "enableTouch": "Aktivera pekskärm", + "enableTouchDesc": "Aktivera vidarebefordran av pekinmatning", + "consoleSession": "Konsolsession", + "consoleSessionDesc": "Anslut till konsolen (session 0) istället för en ny session", + "sendWolPacket": "Skicka WOL-paket", + "sendWolPacketDesc": "Skicka ett magiskt paket för att väcka den här värden innan anslutning", + "disableCopy": "Inaktivera kopiering", + "disableCopyDesc": "Förhindra kopiering av text från fjärrsessionen", + "disablePaste": "Inaktivera inklistring", + "disablePasteDesc": "Förhindra att text klistras in i fjärrsessionen", + "createPathIfMissing": "Skapa sökväg om den saknas", + "createPathIfMissingDesc": "Skapa inspelningskatalogen automatiskt", + "excludeOutput": "Exkludera utdata", + "excludeOutputDesc": "Spela inte in skärmutdata (endast metadata)", + "excludeMouse": "Uteslut mus", + "excludeMouseDesc": "Spela inte in musrörelser", + "includeKeystrokes": "Inkludera tangenttryckningar", + "includeKeystrokesDesc": "Spela in råa tangenttryckningar utöver skärmutdata", + "vncPort": "VNC-port", + "vncPassword": "VNC-lösenord", + "vncUsernameOptional": "Användarnamn (valfritt)", + "vncLeaveBlank": "Lämna tomt om det inte behövs", + "cursorMode": "Markörläge", + "swapRedBlue": "Byt röd/blå", + "swapRedBlueDesc": "Byt ut de röda och blå färgkanalerna (åtgärdar vissa färgproblem)", + "readOnly": "Skrivskyddad", + "readOnlyDesc": "Visa fjärrskärmen utan att skicka någon inmatning", + "telnetPort": "Telnet-port", + "terminalType": "Terminaltyp", + "fontName": "Typsnittsnamn", + "fontSize": "Fontstorlek", + "colorScheme": "Färgschema", + "backspaceKey": "Backstegstangenten", + "colorDepth": "Färgdjup", + "resizeMethod": "Ändra storleksmetod", "driveNamePlaceholder": "Termix Drive" }, - "remoteDesktop": "Remote Desktop", - "tabRdp": "RDP", + "remoteDesktop": "Fjärrskrivbord", + "tabRdp": "Landsbygdsutveckling", "tabVnc": "VNC", "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "virtualNetwork": "Virtuellt nätverk", + "unencryptedShell": "Okrypterat skal", + "remoteDesktopNotes": "Anteckningar", + "userDefaultsNote": "Inställningar som du lämnar oförändrade följer dina standardinställningar.", + "connectionOriginNote": "I skrivbordsappen använder RDP, VNC och Telnet fjärrservern om inte värden är inställd på Den här enheten, vilket kräver en guacd som den här maskinen kan nå. Ställ in en i inställningarna för fjärrskrivbord, eller per värd under guacd Proxy.", + "docsLink": "Visa dokument", + "connectionOriginGuacamoleNote": "RDP, VNC och Telnet använder fjärrservern om du inte väljer \"Den här enheten\", vilket kräver en guacd som den här maskinen kan nå. Ange en i guacd URL-inställningen, eller per värd under guacd Proxy." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Fjärrskrivbord", + "feature_desktop_desc": "Öppna RDP-, VNC- och Telnet-sessioner i en flik, samma som med SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Färgdjup", + "description": "Används för RDP-värdar som lämnar den på standardvärdet." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Ändra storleksmetod", + "description": "Hur fjärrskärmen följer fönsterstorleken." }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "Uppdatering av displayen", + "resizeReconnect": "Återanslut", + "inherit": "Ärva", + "on": "På", + "off": "Av", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Tvinga förlustfri", + "description": "Tvinga fram förlustfri bildkodning (högre kvalitet, mer bandbredd)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "Tapet", + "description": "Visa skrivbordsbakgrund (inaktivering förbättrar prestandan)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Utjämning av teckensnitt", + "description": "Aktivera rendering av ClearType-teckensnitt" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Skrivbordskomposition", + "description": "Aktivera Aero Glass-effekter" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Inaktivera ljud", + "description": "Stäng av allt ljud från fjärrsessionen" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Aktivera utskrift", + "description": "Omdirigera lokala skrivare till fjärrsessionen" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Aktivera omdirigering av kördata", + "description": "Mappa en lokal mapp som en enhet i fjärrsessionen" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Inaktivera kopiering", + "description": "Förhindra kopiering av text från fjärrsessionen" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Inaktivera inklistring", + "description": "Förhindra att text klistras in i fjärrsessionen" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Standardinställningar för fjärrskrivbord", + "colorDepth16": "16-bitars", + "colorDepth24": "24-bitars", + "colorDepth32": "32-bitars" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Aktivera fjärrskrivbord", + "description": "Tillåt RDP-, VNC- och Telnet-anslutningar via guacd." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "guacd-URL", + "description": "Där guacd lyssnar som host:port. Miljövariablerna GUACD_URL, GUACD_HOST och GUACD_PORT åsidosätter detta.", "placeholder": "guacd:4822" } }, "host": { "enableRdp": { - "label": "RDP" + "label": "Landsbygdsutveckling" }, "enableVnc": { "label": "VNC" @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "RDP-port" }, "vncPort": { - "label": "VNC port" + "label": "VNC-port" }, "telnetPort": { - "label": "Telnet port" + "label": "Telnet-port" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP-säkerhetsläge" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ignorera certifikatfel" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd-inställningar" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Verktygsfält för fjärrskrivbord", + "description": "Visa verktygsfältet i RDP-, VNC- och Telnet-sessioner." }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "Visa", + "displayDefaultsTab": "Fjärrskrivbord" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Anslut med RDP", + "connectVnc": "Anslut med VNC", + "connectTelnet": "Anslut med Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Dela fjärrskrivbordssessioner", + "description": "Låt sessionsdelning och samarbetsrum visa den här användarens RDP-, VNC- och Telnet-sessioner för andra." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Fjärrserver krävs. Anslut en fjärrserver i Inställningar för att använda den här anslutningstypen." } } diff --git a/plugins/remote-desktop/locales/translated/th_TH.json b/plugins/remote-desktop/locales/translated/th_TH.json index 306981f08..3364f7951 100644 --- a/plugins/remote-desktop/locales/translated/th_TH.json +++ b/plugins/remote-desktop/locales/translated/th_TH.json @@ -1,350 +1,350 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "กำลังเชื่อมต่อกับเซสชัน {{type}}...", + "checkingGuacd": "กำลังตรวจสอบบริการเดสก์ท็อประยะไกล...", + "requestingToken": "กำลังขอโทเค็นการเชื่อมต่อ {{type}}...", + "openingSession": "กำลังเปิดเซสชั่น {{type}}...", + "negotiating": "กำลังเจรจาต่อรองด้วยการจับมือ {{type}}...", + "sessionReady": "{{type}} เซสชั่นพร้อมใช้งาน", + "connectionError": "ข้อผิดพลาดในการเชื่อมต่อ", + "connectionFailed": "การเชื่อมต่อล้มเหลว", + "failedToConnect": "ไม่สามารถรับโทเค็นการเชื่อมต่อได้", + "hostNotFound": "ไม่พบโฮสต์", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "reconnect": "เชื่อมต่อใหม่", + "retry": "ลองใหม่อีกครั้ง", + "guacdUnavailable": "บริการเดสก์ท็อประยะไกล (guacd) ไม่พร้อมใช้งาน โปรดตรวจสอบให้แน่ใจว่า guacd กำลังทำงาน สามารถเข้าถึงได้ และกำหนดค่าอย่างถูกต้องในการตั้งค่าผู้ดูแลระบบ", + "credentialPromptTitle": "ป้อนข้อมูลรับรอง RDP", + "credentialPromptDescription": "โฮสต์นี้ตั้งค่าให้ขอข้อมูลรับรองเมื่อเชื่อมต่อ ข้อมูลเหล่านี้จะใช้สำหรับเซสชันนี้เท่านั้นและจะไม่ถูกบันทึกไว้", + "connect": "เชื่อมต่อ", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "ไฟล์ไดรฟ์", + "parent": "ไดเร็กทอรีผู้ปกครอง", + "refresh": "รีเฟรช", + "empty": "โฟลเดอร์นี้ว่างเปล่า", + "listFailed": "ไม่สามารถอ่านโฟลเดอร์นี้ได้", + "download": "ดาวน์โหลด", + "downloadFailed": "ไม่สามารถดาวน์โหลด {{name}} ได้", + "upload": "อัปโหลดไฟล์", + "uploading": "กำลังอัปโหลด {{name}}...", + "uploaded": "อัปโหลดแล้ว {{name}}", + "uploadFailed": "การอัปโหลดล้มเหลว {{name}}", + "uploadDisabled": "การอัปโหลดถูกปิดใช้งานสำหรับการเชื่อมต่อนี้", + "driveUnavailable": "เปิดใช้งานการส่งต่อไดรฟ์ RDP ก่อนอัปโหลดไฟล์", + "driveNotWritable": "guacd ไม่สามารถเขียนลงในโฟลเดอร์ไดรฟ์ได้ โปรดตรวจสอบ GUACD_DRIVE_PATH (หรือเส้นทางไดรฟ์ของโฮสต์) และสิทธิ์การเข้าถึง", + "dropToUpload": "ลากไฟล์เพื่ออัปโหลด" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "winL": "Win+L (หน้าจอล็อก)", + "winKey": "ปุ่ม Windows", + "superL": "Super+L (หน้าจอล็อก)", + "superKey": "ซูเปอร์คีย์", + "super": "สุดยอด", + "cmdL": "กด Cmd+L (หน้าจอล็อก)", + "cmdKey": "ปุ่มคำสั่ง", + "cmd": "ผู้บัญชาการ", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "alt": "อัลท์", + "shift": "กะ", + "win": "ชนะ", + "stickyActive": "{{key}} (ล็อคอยู่ - คลิกเพื่อปลดล็อค)", + "stickyInactive": "{{key}} (คลิกเพื่อล็อค)", + "esc": "หนี", + "tab": "แท็บ", + "home": "บ้าน", + "end": "จบ", + "pageUp": "เลื่อนขึ้น", + "pageDown": "เลื่อนลง", + "arrowUp": "ลูกศรขึ้น", + "arrowDown": "ลูกศรลง", + "arrowLeft": "ลูกศรซ้าย", + "arrowRight": "ลูกศรขวา", + "fnToggle": "ปุ่มฟังก์ชัน", + "reconnect": "เซสชั่นเชื่อมต่อใหม่", + "collapse": "ยุบแถบเครื่องมือ", + "expand": "ขยายแถบเครื่องมือ", + "dragHandle": "ลากเพื่อจัดตำแหน่งใหม่", + "hide": "ซ่อนไว้สำหรับการใช้งานในครั้งนี้ หากต้องการปิดใช้งานอย่างถาวร ให้เปิด การตั้งค่าโฮสต์ → ทั่วไป → แถบเครื่องมือการเชื่อมต่อ", + "zoomIn": "ซูมเข้า", + "zoomOut": "ซูมออก", + "resetZoom": "รีเซ็ตการซูม", + "fitToScreen": "พอดีกับหน้าจอ", + "switchToTrackpad": "เปลี่ยนไปใช้โหมดแทร็กแพด (ลากเพื่อเลื่อนเคอร์เซอร์ แตะเพื่อคลิก)", + "switchToTouch": "เปลี่ยนเป็นโหมดสัมผัส (แตะตรงจุดที่คุณต้องการคลิก)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "ฟังก์ชันการเข้าถึงระยะไกล (Remote Desktop) ถูกปิดใช้งานอยู่ ผู้ดูแลระบบสามารถเปิดใช้งานได้ในการตั้งค่า" }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "เปิดใช้งานใน Windows Remote Desktop", + "nativeRdpFailed": "ไม่สามารถเปิด Windows Remote Desktop ได้", + "openNativeRdp": "เปิดใน Windows Remote Desktop", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", - "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", - "username": "Username", - "password": "Password", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", - "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", + "toolbar": "แถบเครื่องมือ", + "connection": "การเชื่อมต่อ", + "authentication": "การตรวจสอบสิทธิ์", + "storedCredential": "ข้อมูลประจำตัวที่บันทึกไว้", + "authMethod": "วิธีการตรวจสอบสิทธิ์", + "authTypeDirect": "โดยตรง", + "authTypeCredential": "ใบรับรอง", + "authTypeNone": "ไม่มี", + "authTypeNoneDesc": "ไม่มีการจัดเก็บข้อมูลประจำตัวใดๆ คุณจะต้องป้อนชื่อผู้ใช้และรหัสผ่านทุกครั้งที่เชื่อมต่อ ซึ่งจะไม่ถูกบันทึกไว้", + "selectCredential": "เลือกข้อมูลประจำตัว...", + "connectionSettings": "การตั้งค่าการเชื่อมต่อ", + "displaySettings": "การตั้งค่าการแสดงผล", + "audioSettings": "การตั้งค่าเสียง", + "rdpPerformance": "ประสิทธิภาพ RDP", + "deviceRedirection": "การเปลี่ยนเส้นทางอุปกรณ์", + "session": "การประชุม", + "gateway": "เกตเวย์", + "remoteApp": "รีโมทแอป", + "clipboard": "คลิปบอร์ด", + "sessionRecording": "การบันทึกการประชุม", + "wakeOnLan": "ปลุกเครื่องผ่าน LAN", + "vncSettings": "การตั้งค่า VNC", + "terminalSettings": "การตั้งค่าเทอร์มินัล", + "rdpPort": "พอร์ต RDP", + "username": "ชื่อผู้ใช้", + "password": "รหัสผ่าน", + "passwordSaved": "บันทึกรหัสผ่านแล้ว กรุณาพิมพ์เพื่อเปลี่ยนรหัสผ่าน", + "domain": "โดเมน", + "securityMode": "โหมดความปลอดภัย", + "width": "ความกว้าง", + "height": "ความสูง", + "dpi": "ดีพีไอ", + "clientName": "ชื่อลูกค้า", + "initialProgram": "โปรแกรมเริ่มต้น", + "serverLayout": "เค้าโครงเซิร์ฟเวอร์", + "timezone": "เขตเวลา", + "loadBalanceInfo": "ข้อมูลการปรับสมดุลโหลด / คุกกี้", + "loadBalanceInfoDesc": "คุกกี้ RD Connection Broker สำหรับการปรับสมดุลโหลดของฟาร์ม RDS (เช่น tsv://MS Terminal Services Plugin.1.CollectionName)", "guacdProxy": "guacd Proxy", "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", + "guacdHostnamePlaceholder": "ค่าเริ่มต้นทั่วโลก", "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", - "driveNamePlaceholder": "Termix Drive" + "guacdProxyDesc": "แทนที่อินสแตนซ์ guacd ทั่วโลกสำหรับการเชื่อมต่อนี้ หากต้องการใช้ guacd ที่กำหนดค่าไว้ทั่วโลก ให้เว้นว่างไว้", + "gatewayHostname": "ชื่อโฮสต์เกตเวย์", + "gatewayPort": "พอร์ตเกตเวย์", + "gatewayUsername": "ชื่อผู้ใช้เกตเวย์", + "gatewayPassword": "รหัสผ่านเกตเวย์", + "gatewayDomain": "โดเมนเกตเวย์", + "remoteAppProgram": "โปรแกรม RemoteApp", + "workingDirectory": "ไดเร็กทอรีการทำงาน", + "arguments": "ข้อโต้แย้ง", + "normalizeLineEndings": "ปรับความยาวบรรทัดให้เป็นมาตรฐาน", + "macAddress": "ที่อยู่ MAC", + "broadcastAddress": "ที่อยู่กระจายเสียง", + "udpPort": "พอร์ต UDP", + "waitTimeS": "ระยะเวลารอคอย (วินาที)", + "driveName": "ชื่อไดรฟ์", + "drivePath": "เส้นทางขับรถ", + "ignoreCertificate": "ละเว้นใบรับรอง", + "ignoreCertificateDesc": "อนุญาตการเชื่อมต่อกับโฮสต์ที่มีใบรับรองที่ลงนามด้วยตนเอง", + "forceLossless": "บังคับการสูญเสีย", + "forceLosslessDesc": "บังคับใช้การเข้ารหัสภาพแบบไม่สูญเสียคุณภาพ (คุณภาพสูงกว่า ใช้แบนด์วิดท์มากกว่า)", + "disableAudio": "ปิดใช้งานเสียง", + "disableAudioDesc": "ปิดเสียงทั้งหมดจากการเชื่อมต่อระยะไกล", + "enableAudioInput": "เปิดใช้งานการรับเสียง (ไมโครโฟน)", + "enableAudioInputDesc": "ส่งต่อไมโครโฟนในเครื่องไปยังเซสชันระยะไกล", + "wallpaper": "วอลเปเปอร์", + "wallpaperDesc": "แสดงภาพพื้นหลังเดสก์ท็อป (การปิดใช้งานจะช่วยเพิ่มประสิทธิภาพ)", + "theming": "ธีม", + "themingDesc": "เปิดใช้งานธีมและสไตล์ภาพ", + "fontSmoothing": "การปรับความเรียบของแบบอักษร", + "fontSmoothingDesc": "เปิดใช้งานการแสดงผลฟอนต์ ClearType", + "fullWindowDrag": "ลากแบบเต็มหน้าต่าง", + "fullWindowDragDesc": "แสดงเนื้อหาในหน้าต่างขณะลาก", + "desktopComposition": "การจัดองค์ประกอบเดสก์ท็อป", + "desktopCompositionDesc": "เปิดใช้งานเอฟเฟกต์กระจก Aero", + "menuAnimations": "แอนิเมชันเมนู", + "menuAnimationsDesc": "เปิดใช้งานแอนิเมชั่นเฟดและสไลด์ของเมนู", + "disableBitmapCaching": "ปิดใช้งานการแคชภาพบิตแมป", + "disableBitmapCachingDesc": "ปิดใช้งานแคชภาพบิตแมป (อาจช่วยลดปัญหาภาพกระตุกได้)", + "disableOffscreenCaching": "ปิดใช้งานการแคชแบบออฟสกรีน", + "disableOffscreenCachingDesc": "ปิดใช้งานแคชแบบออฟไลน์", + "disableGlyphCaching": "ปิดใช้งานการแคชสัญลักษณ์", + "disableGlyphCachingDesc": "ปิดใช้งานแคชสัญลักษณ์", + "enableGfx": "เปิดใช้งาน GFX", + "enableGfxDesc": "ใช้ไปป์ไลน์กราฟิก RemoteFX", + "enablePrinting": "เปิดใช้งานการพิมพ์", + "enablePrintingDesc": "โอนย้ายเครื่องพิมพ์ในเครื่องไปยังเซสชันระยะไกล", + "enableDriveRedirection": "เปิดใช้งานการเปลี่ยนเส้นทางไดรฟ์", + "enableDriveRedirectionDesc": "แมปโฟลเดอร์ในเครื่องเป็นไดรฟ์ในเซสชันระยะไกล", + "createDrivePath": "สร้างเส้นทางไดรฟ์", + "createDrivePathDesc": "สร้างโฟลเดอร์โดยอัตโนมัติหากยังไม่มีอยู่", + "disableDownload": "ปิดใช้งานการดาวน์โหลด", + "disableDownloadDesc": "ป้องกันการดาวน์โหลดไฟล์จากการเชื่อมต่อระยะไกล", + "disableUpload": "ปิดใช้งานการอัปโหลด", + "disableUploadDesc": "ป้องกันการอัปโหลดไฟล์ไปยังเซสชันระยะไกล", + "enableTouch": "เปิดใช้งานระบบสัมผัส", + "enableTouchDesc": "เปิดใช้งานการส่งต่อข้อมูลการสัมผัส", + "consoleSession": "เซสชันคอนโซล", + "consoleSessionDesc": "เชื่อมต่อกับคอนโซล (เซสชัน 0) แทนที่จะสร้างเซสชันใหม่", + "sendWolPacket": "ส่งแพ็กเก็ต WOL", + "sendWolPacketDesc": "ส่งแพ็กเก็ตเวทมนตร์เพื่อปลุกโฮสต์นี้ก่อนเชื่อมต่อ", + "disableCopy": "ปิดใช้งานการคัดลอก", + "disableCopyDesc": "ป้องกันการคัดลอกข้อความจากเซสชันระยะไกล", + "disablePaste": "ปิดใช้งานการวาง", + "disablePasteDesc": "ป้องกันการวางข้อความลงในเซสชันระยะไกล", + "createPathIfMissing": "สร้างเส้นทางหากยังไม่มีอยู่", + "createPathIfMissingDesc": "สร้างไดเร็กทอรีสำหรับการบันทึกโดยอัตโนมัติ", + "excludeOutput": "ไม่รวมผลลัพธ์", + "excludeOutputDesc": "ห้ามบันทึกข้อมูลที่แสดงบนหน้าจอ (บันทึกเฉพาะข้อมูลเมตาเท่านั้น)", + "excludeMouse": "ไม่รวมเมาส์", + "excludeMouseDesc": "ห้ามบันทึกการเคลื่อนไหวของเมาส์", + "includeKeystrokes": "รวมการกดแป้นพิมพ์", + "includeKeystrokesDesc": "บันทึกการกดแป้นพิมพ์ดิบนอกเหนือจากข้อมูลที่แสดงผลบนหน้าจอ", + "vncPort": "พอร์ต VNC", + "vncPassword": "รหัสผ่าน VNC", + "vncUsernameOptional": "ชื่อผู้ใช้ (ไม่บังคับ)", + "vncLeaveBlank": "เว้นว่างไว้หากไม่ต้องการใช้", + "cursorMode": "โหมดเคอร์เซอร์", + "swapRedBlue": "สลับสีแดง/น้ำเงิน", + "swapRedBlueDesc": "สลับช่องสีแดงและสีน้ำเงิน (แก้ไขปัญหาเรื่องสีบางอย่าง)", + "readOnly": "อ่านอย่างเดียว", + "readOnlyDesc": "ดูหน้าจอระยะไกลโดยไม่ต้องส่งข้อมูลใดๆ", + "telnetPort": "พอร์ตเทลเน็ต", + "terminalType": "ประเภทเทอร์มินัล", + "fontName": "ชื่อแบบอักษร", + "fontSize": "ขนาดตัวอักษร", + "colorScheme": "โทนสี", + "backspaceKey": "ปุ่มลบ", + "colorDepth": "ความลึกของสี", + "resizeMethod": "วิธีการปรับขนาด", + "driveNamePlaceholder": "เทอร์มิกซ์ไดรฟ์" }, - "remoteDesktop": "Remote Desktop", - "tabRdp": "RDP", - "tabVnc": "VNC", - "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "remoteDesktop": "รีโมทเดสก์ท็อป", + "tabRdp": "อาร์ดีพี", + "tabVnc": "วีเอ็นซี", + "tabTelnet": "เทลเน็ต", + "virtualNetwork": "เครือข่ายเสมือน", + "unencryptedShell": "เชลล์ที่ไม่ได้เข้ารหัส", + "remoteDesktopNotes": "หมายเหตุ", + "userDefaultsNote": "การตั้งค่าที่คุณไม่ได้เปลี่ยนแปลงจะใช้ค่าเริ่มต้นของโฮสต์ของคุณ", + "connectionOriginNote": "ในแอปพลิเคชันบนเดสก์ท็อป RDP, VNC และ Telnet จะใช้เซิร์ฟเวอร์ระยะไกล เว้นแต่ว่าโฮสต์จะถูกตั้งค่าเป็น \"อุปกรณ์นี้\" ซึ่งจำเป็นต้องมี guacd ที่เครื่องนี้สามารถเข้าถึงได้ ตั้งค่าได้ในการตั้งค่าเดสก์ท็อประยะไกล หรือต่อโฮสต์ภายใต้ guacd Proxy", + "docsLink": "ดูเอกสาร", + "connectionOriginGuacamoleNote": "RDP, VNC และ Telnet จะใช้เซิร์ฟเวอร์ระยะไกล เว้นแต่คุณจะเลือก \"อุปกรณ์นี้\" ซึ่งจำเป็นต้องมี guacd ที่เครื่องนี้สามารถเข้าถึงได้ ตั้งค่าได้ในการตั้งค่า URL ของ guacd หรือต่อโฮสต์ภายใต้พร็อกซีของ guacd" }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "การเข้าถึงเดสก์ท็อประยะไกล", + "feature_desktop_desc": "เปิดเซสชัน RDP, VNC และ Telnet ในแท็บเดียวกัน เหมือนกับการเปิด SSH" }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "ความลึกของสี", + "description": "ใช้สำหรับโฮสต์ RDP ที่ตั้งค่าไว้เป็นค่าเริ่มต้น" }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "วิธีการปรับขนาด", + "description": "หน้าจอระยะไกลจะปรับขนาดตามขนาดหน้าต่างอย่างไร" }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "อัปเดตการแสดงผล", + "resizeReconnect": "เชื่อมต่อใหม่", + "inherit": "สืบทอด", + "on": "บน", + "off": "ปิด", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "บังคับการสูญเสีย", + "description": "บังคับใช้การเข้ารหัสภาพแบบไม่สูญเสียคุณภาพ (คุณภาพสูงกว่า ใช้แบนด์วิดท์มากกว่า)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "วอลเปเปอร์", + "description": "แสดงภาพพื้นหลังเดสก์ท็อป (การปิดใช้งานจะช่วยเพิ่มประสิทธิภาพ)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "การปรับความเรียบของแบบอักษร", + "description": "เปิดใช้งานการแสดงผลฟอนต์ ClearType" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "การจัดองค์ประกอบเดสก์ท็อป", + "description": "เปิดใช้งานเอฟเฟกต์กระจก Aero" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "ปิดใช้งานเสียง", + "description": "ปิดเสียงทั้งหมดจากการเชื่อมต่อระยะไกล" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "เปิดใช้งานการพิมพ์", + "description": "โอนย้ายเครื่องพิมพ์ในเครื่องไปยังเซสชันระยะไกล" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "เปิดใช้งานการเปลี่ยนเส้นทางไดรฟ์", + "description": "แมปโฟลเดอร์ในเครื่องเป็นไดรฟ์ในเซสชันระยะไกล" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "ปิดใช้งานการคัดลอก", + "description": "ป้องกันการคัดลอกข้อความจากเซสชันระยะไกล" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "ปิดใช้งานการวาง", + "description": "ป้องกันการวางข้อความลงในเซสชันระยะไกล" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "ค่าเริ่มต้นของการเข้าถึงเดสก์ท็อประยะไกล", + "colorDepth16": "16 บิต", + "colorDepth24": "24 บิต", + "colorDepth32": "32 บิต" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "เปิดใช้งานเดสก์ท็อประยะไกล", + "description": "อนุญาตการเชื่อมต่อ RDP, VNC และ Telnet ผ่าน guacd" }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "URL guacd", + "description": "ตำแหน่งที่ guacd รับฟังข้อมูล จะแสดงเป็น host:port ตัวแปรสภาพแวดล้อม GUACD_URL, GUACD_HOST และ GUACD_PORT จะแทนที่ค่านี้", "placeholder": "guacd:4822" } }, "host": { "enableRdp": { - "label": "RDP" + "label": "อาร์ดีพี" }, "enableVnc": { - "label": "VNC" + "label": "วีเอ็นซี" }, "enableTelnet": { - "label": "Telnet" + "label": "เทลเน็ต" }, "rdpPort": { - "label": "RDP port" + "label": "พอร์ต RDP" }, "vncPort": { - "label": "VNC port" + "label": "พอร์ต VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "พอร์ตเทลเน็ต" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "โหมดความปลอดภัย RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "ละเว้นข้อผิดพลาดเกี่ยวกับใบรับรอง" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "การตั้งค่า guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "แถบเครื่องมือเดสก์ท็อประยะไกล", + "description": "แสดงแถบเครื่องมือในเซสชัน RDP, VNC และ Telnet" }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "แสดง", + "displayDefaultsTab": "รีโมทเดสก์ท็อป" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "เชื่อมต่อด้วย RDP", + "connectVnc": "เชื่อมต่อกับ VNC", + "connectTelnet": "เชื่อมต่อด้วย Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "แชร์เซสชันเดสก์ท็อประยะไกล", + "description": "อนุญาตให้การแชร์เซสชันและห้องทำงานร่วมกันแสดงเซสชัน RDP, VNC และ Telnet ของผู้ใช้รายนี้แก่ผู้อื่น" } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "จำเป็นต้องใช้เซิร์ฟเวอร์ระยะไกล เชื่อมต่อเซิร์ฟเวอร์ระยะไกลในการตั้งค่าเพื่อใช้ประเภทการเชื่อมต่อนี้" } } diff --git a/plugins/remote-desktop/locales/translated/tr_TR.json b/plugins/remote-desktop/locales/translated/tr_TR.json index ed8d27378..bd1d243eb 100644 --- a/plugins/remote-desktop/locales/translated/tr_TR.json +++ b/plugins/remote-desktop/locales/translated/tr_TR.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "{{type}} oturumuna bağlanılıyor...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "checkingGuacd": "Uzaktan masaüstü hizmeti kontrol ediliyor...", + "requestingToken": "{{type}} bağlantı belirteci isteniyor...", + "openingSession": "{{type}} oturumu açılıyor...", + "negotiating": "{{type}} el sıkışması üzerinde pazarlık yapılıyor...", + "sessionReady": "{{type}} oturum hazır", "connectionError": "Bağlantı hatası", "connectionFailed": "Bağlantı başarısız", "failedToConnect": "Bağlantı belirteci alınamadı", @@ -14,37 +14,37 @@ "reconnect": "Yeniden Bağlan", "retry": "Yeniden dene", "guacdUnavailable": "Uzak masaüstü hizmeti (guacd) kullanılamıyor. Lütfen guacd'nin çalıştığından, erişilebilir olduğundan ve yönetici ayarlarında düzgün yapılandırıldığından emin olun.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "RDP Kimlik Bilgilerini Girin", + "credentialPromptDescription": "Bu sunucu, bağlantı kurulurken kimlik bilgilerini isteyecek şekilde ayarlanmıştır. Bu bilgiler yalnızca bu oturum için kullanılır ve kaydedilmez.", "connect": "Bağlan", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Sürücü Dosyaları", + "parent": "Üst dizin", "refresh": "Yenile", "empty": "Bu klasör boş", - "listFailed": "Failed to read this folder", + "listFailed": "Bu klasör okunamadı.", "download": "İndir", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "{{name}} indirme işlemi başarısız oldu.", + "upload": "Dosyaları yükle", "uploading": "{{name}} yükleniyor...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "Yüklenen {{name}}", + "uploadFailed": "{{name}} yüklenemedi.", + "uploadDisabled": "Bu bağlantı için yüklemeler devre dışı bırakıldı.", + "driveUnavailable": "Dosyaları yüklemeden önce RDP sürücü yönlendirmesini etkinleştirin.", + "driveNotWritable": "guacd sürücü klasörüne yazamıyor. GUACD_DRIVE_PATH (veya ana bilgisayarın Sürücü Yolu) ve izinlerini kontrol edin.", + "dropToUpload": "Yüklemek için dosyaları sürükleyip bırakın." }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (Ekranı Kilitle)", "winKey": "Windows Tuşu", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "Süper+L (Kilit Ekranı)", + "superKey": "Süper Anahtar", + "super": "Süper", + "cmdL": "Cmd+L (Kilit Ekranı)", + "cmdKey": "Komut Tuşu", + "cmd": "Komut", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "Araç çubuğunu daralt", "expand": "Araç çubuğunu genişlet", "dragHandle": "Yeniden konumlandırmak için sürükle", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "Bu oturum için gizle. Kalıcı olarak devre dışı bırakmak için Sunucu Ayarları → Genel → Bağlantı Araç Çubuğu'nu açın.", + "zoomIn": "Yakınlaştır", + "zoomOut": "Uzaklaştır", + "resetZoom": "Yakınlaştırmayı sıfırla", + "fitToScreen": "Ekrana uygun", + "switchToTrackpad": "İzleme dörtlüsü moduna geçin (imleci hareket ettirmek için sürükleyin, tıklamak için dokunun)", + "switchToTouch": "Dokunmatik moda geçin (tıklamak istediğiniz yere doğrudan dokunun)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Uzaktan Masaüstü özelliği kapalı. Yönetici, Ayarlar bölümünden bu özelliği açabilir." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Windows Uzaktan Masaüstü'nde açıldı", + "nativeRdpFailed": "Windows Uzaktan Masaüstü açılamadı.", + "openNativeRdp": "Windows Uzaktan Masaüstü'nde aç", "guac": { - "toolbar": "Toolbar", + "toolbar": "Araç Çubuğu", "connection": "Bağlantı", "authentication": "Kimlik doğrulama", "storedCredential": "Kayıtlı kimlik bilgisi", @@ -89,7 +89,7 @@ "authTypeDirect": "Doğrudan", "authTypeCredential": "Kimlik bilgisi", "authTypeNone": "Yok", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "Hiçbir kimlik bilgisi saklanmaz. Her bağlantı kurduğunuzda sizden kullanıcı adı ve şifre istenecektir; bunlar kaydedilmez.", "selectCredential": "Bir kimlik bilgisi seçin...", "connectionSettings": "Bağlantı ayarları", "displaySettings": "Görüntü ayarları", @@ -107,7 +107,7 @@ "rdpPort": "RDP Portu", "username": "Kullanıcı Adı", "password": "Parola", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "Parola kaydedildi, değiştirmek için tuşlayın.", "domain": "Etki Alanı", "securityMode": "Güvenlik Modu", "width": "Genişlik", @@ -221,28 +221,28 @@ "virtualNetwork": "Sanal Ağ", "unencryptedShell": "Şifrelenmemiş Shell", "remoteDesktopNotes": "Notlar", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "Değiştirmediğiniz ayarlar, sunucunuzun varsayılan ayarlarını takip eder.", + "connectionOriginNote": "Masaüstü uygulamasında, RDP, VNC ve Telnet, ana bilgisayar \"Bu cihaz\" olarak ayarlanmadığı sürece uzak sunucuyu kullanır; bu ayar, bu makinenin erişebileceği bir guacd gerektirir. Bunu Uzak Masaüstü ayarlarında veya her ana bilgisayar için guacd Proxy altında ayarlayın.", "docsLink": "Dokümanları görüntüle", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC ve Telnet, \"Bu cihaz\" seçeneğini seçmediğiniz sürece uzak sunucuyu kullanır; bu seçenek için makinenin erişebileceği bir guacd adresine ihtiyaç vardır. Bunu guacd URL ayarında veya her ana bilgisayar için guacd Proxy altında belirleyebilirsiniz." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Uzaktan masaüstü", + "feature_desktop_desc": "SSH'de olduğu gibi, RDP, VNC ve Telnet oturumlarını da bir sekmede açın." }, "settings": { "user": { "colorDepth": { "label": "Renk Derinliği", - "description": "Used for RDP hosts that leave it on their default." + "description": "Varsayılan ayarlarında bırakılan RDP sunucuları için kullanılır." }, "resizeMethod": { "label": "Yeniden Boyutlandırma Yöntemi", - "description": "How the remote screen follows the window size." + "description": "Uzaktan kumanda ekranının pencere boyutunu nasıl takip ettiği." }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "Ekran Güncellemesi", "resizeReconnect": "Yeniden Bağlan", - "inherit": "Inherit", + "inherit": "Miras almak", "on": "Açık", "off": "Kapalı", "forceLossless": { @@ -281,19 +281,19 @@ "label": "Yapıştırmayı Devre Dışı Bırak", "description": "Uzak oturuma metin yapıştırmayı engelle" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Uzak Masaüstü varsayılan ayarları", + "colorDepth16": "16 bit", + "colorDepth24": "24 bit", + "colorDepth32": "32 bit" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Uzaktan Masaüstünü Etkinleştir", + "description": "guacd üzerinden RDP, VNC ve Telnet bağlantılarına izin verin." }, "guacdUrl": { "label": "guacd URL'si", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "Guacd'nin dinlediği yer, host:port şeklindedir. GUACD_URL, GUACD_HOST ve GUACD_PORT ortam değişkenleri bunu geçersiz kılar.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "RDP bağlantı noktası" }, "vncPort": { - "label": "VNC port" + "label": "VNC bağlantı noktası" }, "telnetPort": { - "label": "Telnet port" + "label": "Telnet bağlantı noktası" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP güvenlik modu" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Sertifika hatalarını göz ardı edin" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd ayarları" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Uzak masaüstü araç çubuğu", + "description": "RDP, VNC ve Telnet oturumlarında araç çubuğunu göster." }, - "displayGroup": "Display", + "displayGroup": "Görüntülemek", "displayDefaultsTab": "Uzak Masaüstü" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "RDP ile bağlantı kurun", + "connectVnc": "VNC ile bağlantı kurun", + "connectTelnet": "Telnet ile bağlantı kurun" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Uzak masaüstü oturumlarını paylaşın", + "description": "Oturum paylaşımı ve iş birliği odalarının bu kullanıcının RDP, VNC ve Telnet oturumlarını diğer kullanıcılara göstermesine izin verin." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Uzak sunucu gereklidir. Bu bağlantı türünü kullanmak için Ayarlar'dan bir uzak sunucu bağlayın." } } diff --git a/plugins/remote-desktop/locales/translated/uk_UA.json b/plugins/remote-desktop/locales/translated/uk_UA.json index 306981f08..1ec399677 100644 --- a/plugins/remote-desktop/locales/translated/uk_UA.json +++ b/plugins/remote-desktop/locales/translated/uk_UA.json @@ -1,350 +1,350 @@ { "remoteDesktop": { - "connecting": "Connecting to {{type}} session...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", - "connectionError": "Connection error", - "connectionFailed": "Connection failed", - "failedToConnect": "Failed to get connection token", - "hostNotFound": "Host not found", - "noHostSelected": "No host selected", - "reconnect": "Reconnect", - "retry": "Retry", - "guacdUnavailable": "Remote desktop service (guacd) is not available. Please ensure guacd is running and accessible and configured properly in admin settings.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", - "connect": "Connect", + "connecting": "Підключення до сеансу {{type}}...", + "checkingGuacd": "Перевірка служби віддаленого робочого столу...", + "requestingToken": "Запитується токен з’єднання {{type}}...", + "openingSession": "Відкриття сеансу {{type}}...", + "negotiating": "Переговори {{type}} рукостискання...", + "sessionReady": "{{type}} сеанс готовий", + "connectionError": "Помилка підключення", + "connectionFailed": "Помилка підключення", + "failedToConnect": "Не вдалося отримати токен з'єднання", + "hostNotFound": "Хост не знайдено", + "noHostSelected": "Хост не вибрано", + "reconnect": "Знову підключитися", + "retry": "Повторити спробу", + "guacdUnavailable": "Служба віддаленого робочого столу (guacd) недоступна. Переконайтеся, що guacd запущено, доступно та правильно налаштовано в налаштуваннях адміністратора.", + "credentialPromptTitle": "Введіть облікові дані RDP", + "credentialPromptDescription": "Цей хост налаштовано на запит облікових даних під час підключення. Вони використовуються лише для цього сеансу та не зберігаються.", + "connect": "Підключитися", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", - "refresh": "Refresh", - "empty": "This folder is empty", - "listFailed": "Failed to read this folder", - "download": "Download", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", - "uploading": "Uploading {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "title": "Файли Диска", + "parent": "Батьківський каталог", + "refresh": "Оновити", + "empty": "Ця папка порожня", + "listFailed": "Не вдалося прочитати цю папку", + "download": "Завантажити", + "downloadFailed": "Не вдалося завантажити {{name}}", + "upload": "Завантажити файли", + "uploading": "Завантаження {{name}}...", + "uploaded": "Завантажено {{name}}", + "uploadFailed": "Не вдалося завантажити {{name}}", + "uploadDisabled": "Завантаження для цього з’єднання вимкнено", + "driveUnavailable": "Увімкніть перенаправлення диска RDP перед завантаженням файлів", + "driveNotWritable": "guacd не може записувати дані в папку диска. Перевірте GUACD_DRIVE_PATH (або шлях до диска хоста) та його дозволи.", + "dropToUpload": "Перетягніть файли для завантаження" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", - "winL": "Win+L (Lock Screen)", - "winKey": "Windows Key", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "winL": "Win+L (Екран блокування)", + "winKey": "Клавіша Windows", + "superL": "Супер+L (Екран блокування)", + "superKey": "Супер ключ", + "super": "Супер", + "cmdL": "Cmd+L (Екран блокування)", + "cmdKey": "Клавіша команди", + "cmd": "Команда", "ctrl": "Ctrl", - "alt": "Alt", - "shift": "Shift", - "win": "Win", - "stickyActive": "{{key}} (latched - click to release)", - "stickyInactive": "{{key}} (click to latch)", - "esc": "Escape", - "tab": "Tab", - "home": "Home", - "end": "End", - "pageUp": "Page Up", - "pageDown": "Page Down", - "arrowUp": "Arrow Up", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "fnToggle": "Function Keys", - "reconnect": "Reconnect Session", - "collapse": "Collapse toolbar", - "expand": "Expand toolbar", - "dragHandle": "Drag to reposition", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "alt": "Альтернативний", + "shift": "Зсув", + "win": "Виграй", + "stickyActive": "{{key}} (зафіксовано - натисніть, щоб відпустити)", + "stickyInactive": "{{key}} (натисніть, щоб зафіксувати)", + "esc": "Втеча", + "tab": "Вкладка", + "home": "Дім", + "end": "Кінець", + "pageUp": "Сторінка вгору", + "pageDown": "Сторінка вниз", + "arrowUp": "Стрілка вгору", + "arrowDown": "Стрілка вниз", + "arrowLeft": "Стрілка ліворуч", + "arrowRight": "Стрілка праворуч", + "fnToggle": "Функціональні клавіші", + "reconnect": "Сеанс повторного підключення", + "collapse": "Згорнути панель інструментів", + "expand": "Розгорнути панель інструментів", + "dragHandle": "Перетягніть, щоб змінити положення", + "hide": "Приховати для цього сеансу. Щоб вимкнути його назавжди, відкрийте Параметри хоста → Загальні → Панель інструментів підключення.", + "zoomIn": "Збільшити масштаб", + "zoomOut": "Зменшити масштаб", + "resetZoom": "Скинути масштаб", + "fitToScreen": "Припасувати до екрана", + "switchToTrackpad": "Перехід у режим трекпада (перетягування для переміщення курсора, торкання для клацання)", + "switchToTouch": "Перемикання в сенсорний режим (торкайтеся безпосередньо там, де потрібно клацнути)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Віддалений робочий стіл вимкнено. Адміністратор може ввімкнути його в налаштуваннях." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Відкрито у віддаленому робочому столі Windows", + "nativeRdpFailed": "Не вдалося відкрити віддалений робочий стіл Windows", + "openNativeRdp": "Відкрити у віддаленому робочому столі Windows", "guac": { - "toolbar": "Toolbar", - "connection": "Connection", - "authentication": "Authentication", - "storedCredential": "Stored Credential", - "authMethod": "Auth Method", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", - "selectCredential": "Select a credential...", - "connectionSettings": "Connection Settings", - "displaySettings": "Display Settings", - "audioSettings": "Audio Settings", - "rdpPerformance": "RDP Performance", - "deviceRedirection": "Device Redirection", - "session": "Session", - "gateway": "Gateway", - "remoteApp": "RemoteApp", - "clipboard": "Clipboard", - "sessionRecording": "Session Recording", + "toolbar": "Панель інструментів", + "connection": "З'єднання", + "authentication": "Автентифікація", + "storedCredential": "Збережені облікові дані", + "authMethod": "Метод автентифікації", + "authTypeDirect": "Прямий", + "authTypeCredential": "Посвідчення", + "authTypeNone": "Жоден", + "authTypeNoneDesc": "Облікові дані не зберігаються. Вам буде запропоновано ввести ім’я користувача та пароль щоразу під час підключення; вони не зберігаються.", + "selectCredential": "Виберіть облікові дані...", + "connectionSettings": "Налаштування підключення", + "displaySettings": "Налаштування дисплея", + "audioSettings": "Налаштування аудіо", + "rdpPerformance": "Продуктивність RDP", + "deviceRedirection": "Перенаправлення пристрою", + "session": "Сесія", + "gateway": "Шлюз", + "remoteApp": "Віддалена програма", + "clipboard": "Буфер обміну", + "sessionRecording": "Запис сеансу", "wakeOnLan": "Wake-on-LAN", - "vncSettings": "VNC Settings", - "terminalSettings": "Terminal Settings", - "rdpPort": "RDP Port", - "username": "Username", - "password": "Password", - "passwordSaved": "Password saved, type to change", - "domain": "Domain", - "securityMode": "Security Mode", - "width": "Width", - "height": "Height", + "vncSettings": "Налаштування VNC", + "terminalSettings": "Налаштування терміналу", + "rdpPort": "RDP-порт", + "username": "Ім'я користувача", + "password": "Пароль", + "passwordSaved": "Пароль збережено, введіть, щоб змінити", + "domain": "Домен", + "securityMode": "Режим безпеки", + "width": "Ширина", + "height": "Висота", "dpi": "DPI", - "clientName": "Client Name", - "initialProgram": "Initial Program", - "serverLayout": "Server Layout", - "timezone": "Timezone", - "loadBalanceInfo": "Load Balance Info / Cookie", - "loadBalanceInfoDesc": "RD Connection Broker cookie for RDS farm load balancing (e.g. tsv://MS Terminal Services Plugin.1.CollectionName)", - "guacdProxy": "guacd Proxy", - "guacdHostname": "guacd Host", - "guacdHostnamePlaceholder": "Global default", - "guacdPort": "guacd Port", - "guacdProxyDesc": "Override the global guacd instance for this connection. Leave blank to use the globally configured guacd.", - "gatewayHostname": "Gateway Hostname", - "gatewayPort": "Gateway Port", - "gatewayUsername": "Gateway Username", - "gatewayPassword": "Gateway Password", - "gatewayDomain": "Gateway Domain", - "remoteAppProgram": "RemoteApp Program", - "workingDirectory": "Working Directory", - "arguments": "Arguments", - "normalizeLineEndings": "Normalize Line Endings", - "macAddress": "MAC Address", - "broadcastAddress": "Broadcast Address", - "udpPort": "UDP Port", - "waitTimeS": "Wait Time (s)", - "driveName": "Drive Name", - "drivePath": "Drive Path", - "ignoreCertificate": "Ignore Certificate", - "ignoreCertificateDesc": "Allow connections to hosts with self-signed certificates", - "forceLossless": "Force Lossless", - "forceLosslessDesc": "Force lossless image encoding (higher quality, more bandwidth)", - "disableAudio": "Disable Audio", - "disableAudioDesc": "Mute all audio from the remote session", - "enableAudioInput": "Enable Audio Input (Microphone)", - "enableAudioInputDesc": "Forward local microphone to the remote session", - "wallpaper": "Wallpaper", - "wallpaperDesc": "Show desktop wallpaper (disabling improves performance)", - "theming": "Theming", - "themingDesc": "Enable visual themes and styles", - "fontSmoothing": "Font Smoothing", - "fontSmoothingDesc": "Enable ClearType font rendering", - "fullWindowDrag": "Full Window Drag", - "fullWindowDragDesc": "Show window contents while dragging", - "desktopComposition": "Desktop Composition", - "desktopCompositionDesc": "Enable Aero glass effects", - "menuAnimations": "Menu Animations", - "menuAnimationsDesc": "Enable menu fade and slide animations", - "disableBitmapCaching": "Disable Bitmap Caching", - "disableBitmapCachingDesc": "Turn off bitmap cache (may help with glitches)", - "disableOffscreenCaching": "Disable Offscreen Caching", - "disableOffscreenCachingDesc": "Turn off offscreen cache", - "disableGlyphCaching": "Disable Glyph Caching", - "disableGlyphCachingDesc": "Turn off glyph cache", - "enableGfx": "Enable GFX", - "enableGfxDesc": "Use RemoteFX graphics pipeline", - "enablePrinting": "Enable Printing", - "enablePrintingDesc": "Redirect local printers to the remote session", - "enableDriveRedirection": "Enable Drive Redirection", - "enableDriveRedirectionDesc": "Map a local folder as a drive in the remote session", - "createDrivePath": "Create Drive Path", - "createDrivePathDesc": "Automatically create the folder if it does not exist", - "disableDownload": "Disable Download", - "disableDownloadDesc": "Prevent downloading files from the remote session", - "disableUpload": "Disable Upload", - "disableUploadDesc": "Prevent uploading files to the remote session", - "enableTouch": "Enable Touch", - "enableTouchDesc": "Enable touch input forwarding", - "consoleSession": "Console Session", - "consoleSessionDesc": "Connect to the console (session 0) instead of a new session", - "sendWolPacket": "Send WOL Packet", - "sendWolPacketDesc": "Send a magic packet to wake this host before connecting", - "disableCopy": "Disable Copy", - "disableCopyDesc": "Prevent copying text from the remote session", - "disablePaste": "Disable Paste", - "disablePasteDesc": "Prevent pasting text into the remote session", - "createPathIfMissing": "Create Path if Missing", - "createPathIfMissingDesc": "Automatically create the recording directory", - "excludeOutput": "Exclude Output", - "excludeOutputDesc": "Do not record screen output (metadata only)", - "excludeMouse": "Exclude Mouse", - "excludeMouseDesc": "Do not record mouse movements", - "includeKeystrokes": "Include Keystrokes", - "includeKeystrokesDesc": "Record raw keystrokes in addition to screen output", - "vncPort": "VNC Port", - "vncPassword": "VNC Password", - "vncUsernameOptional": "Username (optional)", - "vncLeaveBlank": "Leave blank if not required", - "cursorMode": "Cursor Mode", - "swapRedBlue": "Swap Red/Blue", - "swapRedBlueDesc": "Swap the red and blue color channels (fixes some colour issues)", - "readOnly": "Read-only", - "readOnlyDesc": "View the remote screen without sending any input", - "telnetPort": "Telnet Port", - "terminalType": "Terminal Type", - "fontName": "Font Name", - "fontSize": "Font Size", - "colorScheme": "Color Scheme", - "backspaceKey": "Backspace Key", - "colorDepth": "Color Depth", - "resizeMethod": "Resize Method", - "driveNamePlaceholder": "Termix Drive" + "clientName": "Ім'я клієнта", + "initialProgram": "Початкова програма", + "serverLayout": "Макет сервера", + "timezone": "Часовий пояс", + "loadBalanceInfo": "Інформація про балансування навантаження / файли cookie", + "loadBalanceInfoDesc": "Файл cookie брокера підключень до робочого столу для балансування навантаження ферми RDS (наприклад, tsv://MS Terminal Services Plugin.1.CollectionName)", + "guacdProxy": "Проксі-сервер guacd", + "guacdHostname": "Хост guacd", + "guacdHostnamePlaceholder": "Глобальний за замовчуванням", + "guacdPort": "Порт GUACD", + "guacdProxyDesc": "Перевизначте глобальний екземпляр guacd для цього з’єднання. Залиште поле порожнім, щоб використовувати глобально налаштований guacd.", + "gatewayHostname": "Ім'я хоста шлюзу", + "gatewayPort": "Порт шлюзу", + "gatewayUsername": "Ім'я користувача шлюзу", + "gatewayPassword": "Пароль шлюзу", + "gatewayDomain": "Домен шлюзу", + "remoteAppProgram": "Програма віддалених додатків", + "workingDirectory": "Робочий каталог", + "arguments": "Аргументи", + "normalizeLineEndings": "Нормалізувати закінчення рядків", + "macAddress": "MAC-адреса", + "broadcastAddress": "Адреса розсилки", + "udpPort": "UDP-порт", + "waitTimeS": "Час очікування (с)", + "driveName": "Назва диска", + "drivePath": "Шлях диска", + "ignoreCertificate": "Ігнорувати сертифікат", + "ignoreCertificateDesc": "Дозволити підключення до хостів із самопідписаними сертифікатами", + "forceLossless": "Примусово без втрат", + "forceLosslessDesc": "Примусове кодування зображень без втрат (вища якість, більша пропускна здатність)", + "disableAudio": "Вимкнути аудіо", + "disableAudioDesc": "Вимкнути весь звук під час віддаленого сеансу", + "enableAudioInput": "Увімкнути аудіовхід (мікрофон)", + "enableAudioInputDesc": "Переадресація локального мікрофона на віддалений сеанс", + "wallpaper": "Шпалери", + "wallpaperDesc": "Показувати шпалери робочого столу (вимикання покращує продуктивність)", + "theming": "Тематизація", + "themingDesc": "Увімкнути візуальні теми та стилі", + "fontSmoothing": "Згладжування шрифтів", + "fontSmoothingDesc": "Увімкнути рендеринг шрифтів ClearType", + "fullWindowDrag": "Повне перетягування вікна", + "fullWindowDragDesc": "Відображати вміст вікна під час перетягування", + "desktopComposition": "Композиція робочого столу", + "desktopCompositionDesc": "Увімкнути ефекти Aero Glass", + "menuAnimations": "Анімації меню", + "menuAnimationsDesc": "Увімкнути анімацію згасання меню та слайдів", + "disableBitmapCaching": "Вимкнути кешування растрових зображень", + "disableBitmapCachingDesc": "Вимкніть кеш растрових зображень (може допомогти з глюками)", + "disableOffscreenCaching": "Вимкнути кешування поза екраном", + "disableOffscreenCachingDesc": "Вимкнути кеш поза екраном", + "disableGlyphCaching": "Вимкнути кешування гліфів", + "disableGlyphCachingDesc": "Вимкнути кеш гліфів", + "enableGfx": "Увімкнути графічні ефекти", + "enableGfxDesc": "Використовуйте графічний конвеєр RemoteFX", + "enablePrinting": "Увімкнути друк", + "enablePrintingDesc": "Перенаправити локальні принтери на віддалений сеанс", + "enableDriveRedirection": "Увімкнути перенаправлення диска", + "enableDriveRedirectionDesc": "Призначення локальної папки як диска у віддаленому сеансі", + "createDrivePath": "Створити шлях до диска", + "createDrivePathDesc": "Автоматично створювати папку, якщо її не існує", + "disableDownload": "Вимкнути завантаження", + "disableDownloadDesc": "Заборонити завантаження файлів з віддаленого сеансу", + "disableUpload": "Вимкнути завантаження", + "disableUploadDesc": "Заборонити завантаження файлів у віддалений сеанс", + "enableTouch": "Увімкнути сенсорний режим", + "enableTouchDesc": "Увімкнути переадресацію сенсорного введення", + "consoleSession": "Сеанс консолі", + "consoleSessionDesc": "Підключення до консолі (сеанс 0) замість нового сеансу", + "sendWolPacket": "Надіслати пакет WOL", + "sendWolPacketDesc": "Надіслати магічний пакет, щоб розбудити цей хост перед підключенням", + "disableCopy": "Вимкнути копіювання", + "disableCopyDesc": "Запобігти копіюванню тексту з віддаленого сеансу", + "disablePaste": "Вимкнути вставку", + "disablePasteDesc": "Запобігти вставці тексту у віддалений сеанс", + "createPathIfMissing": "Створити шлях, якщо він відсутній", + "createPathIfMissingDesc": "Автоматично створити каталог записів", + "excludeOutput": "Виключити вивід", + "excludeOutputDesc": "Не записувати вивід екрана (лише метадані)", + "excludeMouse": "Виключити мишу", + "excludeMouseDesc": "Не записувати рухи миші", + "includeKeystrokes": "Включити натискання клавіш", + "includeKeystrokesDesc": "Записуйте необроблені натискання клавіш на додаток до виводу на екран", + "vncPort": "VNC-порт", + "vncPassword": "Пароль VNC", + "vncUsernameOptional": "Ім'я користувача (необов'язково)", + "vncLeaveBlank": "Залиште порожнім, якщо не потрібно", + "cursorMode": "Режим курсора", + "swapRedBlue": "Поміняйте місцями червоний/синій", + "swapRedBlueDesc": "Поміняти місцями червоний та синій кольорові канали (виправляє деякі проблеми з кольором)", + "readOnly": "Тільки для читання", + "readOnlyDesc": "Перегляд віддаленого екрана без надсилання будь-яких вхідних даних", + "telnetPort": "Порт Telnet", + "terminalType": "Тип терміналу", + "fontName": "Назва шрифту", + "fontSize": "Розмір шрифту", + "colorScheme": "Колірна схема", + "backspaceKey": "Клавіша Backspace", + "colorDepth": "Глибина кольору", + "resizeMethod": "Метод зміни розміру", + "driveNamePlaceholder": "Термікс Драйв" }, - "remoteDesktop": "Remote Desktop", - "tabRdp": "RDP", + "remoteDesktop": "Віддалений робочий стіл", + "tabRdp": "ПРП", "tabVnc": "VNC", - "tabTelnet": "Telnet", - "virtualNetwork": "Virtual Network", - "unencryptedShell": "Unencrypted shell", - "remoteDesktopNotes": "Notes", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", - "docsLink": "View docs", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "tabTelnet": "Телнет", + "virtualNetwork": "Віртуальна мережа", + "unencryptedShell": "Незашифрована оболонка", + "remoteDesktopNotes": "Нотатки", + "userDefaultsNote": "Налаштування, які ви залишаєте без змін, відповідають налаштуванням вашого хоста за замовчуванням.", + "connectionOriginNote": "У настільному застосунку RDP, VNC та Telnet використовують віддалений сервер, якщо для хоста не налаштовано значення «Цей пристрій», для якого потрібен GUACD, до якого може отримати доступ ця машина. Встановіть його в налаштуваннях віддаленого робочого столу або для кожного хоста в розділі GUACD Proxy.", + "docsLink": "Переглянути документи", + "connectionOriginGuacamoleNote": "RDP, VNC та Telnet використовують віддалений сервер, якщо ви не виберете \"Цей пристрій\", для якого потрібен GUACD, до якого може отримати доступ ця машина. Встановіть його в налаштуваннях URL-адреси GUACD або для кожного хоста в розділі \"Проксі-сервер GUACD\"." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Віддалений робочий стіл", + "feature_desktop_desc": "Відкривати сеанси RDP, VNC та Telnet у вкладці, так само, як SSH." }, "settings": { "user": { "colorDepth": { - "label": "Color Depth", - "description": "Used for RDP hosts that leave it on their default." + "label": "Глибина кольору", + "description": "Використовується для хостів RDP, які залишають його за замовчуванням." }, "resizeMethod": { - "label": "Resize Method", - "description": "How the remote screen follows the window size." + "label": "Метод зміни розміру", + "description": "Як віддалений екран відповідає розміру вікна." }, - "resizeDisplayUpdate": "Display Update", - "resizeReconnect": "Reconnect", - "inherit": "Inherit", - "on": "On", - "off": "Off", + "resizeDisplayUpdate": "Оновлення дисплея", + "resizeReconnect": "Знову підключитися", + "inherit": "Успадкувати", + "on": "Увімкнено", + "off": "Вимкнено", "forceLossless": { - "label": "Force Lossless", - "description": "Force lossless image encoding (higher quality, more bandwidth)" + "label": "Примусово без втрат", + "description": "Примусове кодування зображень без втрат (вища якість, більша пропускна здатність)" }, "enableWallpaper": { - "label": "Wallpaper", - "description": "Show desktop wallpaper (disabling improves performance)" + "label": "Шпалери", + "description": "Показувати шпалери робочого столу (вимикання покращує продуктивність)" }, "enableFontSmoothing": { - "label": "Font Smoothing", - "description": "Enable ClearType font rendering" + "label": "Згладжування шрифтів", + "description": "Увімкнути рендеринг шрифтів ClearType" }, "enableDesktopComposition": { - "label": "Desktop Composition", - "description": "Enable Aero glass effects" + "label": "Композиція робочого столу", + "description": "Увімкнути ефекти Aero Glass" }, "disableAudio": { - "label": "Disable Audio", - "description": "Mute all audio from the remote session" + "label": "Вимкнути аудіо", + "description": "Вимкнути весь звук під час віддаленого сеансу" }, "enablePrinting": { - "label": "Enable Printing", - "description": "Redirect local printers to the remote session" + "label": "Увімкнути друк", + "description": "Перенаправити локальні принтери на віддалений сеанс" }, "enableDrive": { - "label": "Enable Drive Redirection", - "description": "Map a local folder as a drive in the remote session" + "label": "Увімкнути перенаправлення диска", + "description": "Призначення локальної папки як диска у віддаленому сеансі" }, "disableCopy": { - "label": "Disable Copy", - "description": "Prevent copying text from the remote session" + "label": "Вимкнути копіювання", + "description": "Запобігти копіюванню тексту з віддаленого сеансу" }, "disablePaste": { - "label": "Disable Paste", - "description": "Prevent pasting text into the remote session" + "label": "Вимкнути вставку", + "description": "Запобігти вставці тексту у віддалений сеанс" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "Налаштування віддаленого робочого столу за замовчуванням", + "colorDepth16": "16-бітний", + "colorDepth24": "24-бітний", + "colorDepth32": "32-бітний" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Увімкнути віддалений робочий стіл", + "description": "Дозволити з'єднання RDP, VNC та Telnet через guacd." }, "guacdUrl": { - "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "label": "URL-адреса GUACD", + "description": "Де guacd прослуховує, як host:port. Змінні середовища GUACD_URL, GUACD_HOST та GUACD_PORT перевизначають це.", "placeholder": "guacd:4822" } }, "host": { "enableRdp": { - "label": "RDP" + "label": "ПРП" }, "enableVnc": { "label": "VNC" }, "enableTelnet": { - "label": "Telnet" + "label": "Телнет" }, "rdpPort": { - "label": "RDP port" + "label": "RDP-порт" }, "vncPort": { - "label": "VNC port" + "label": "VNC-порт" }, "telnetPort": { - "label": "Telnet port" + "label": "Порт Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Режим безпеки RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Ігнорувати помилки сертифіката" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "налаштування GUACD" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "Панель інструментів віддаленого робочого столу", + "description": "Показувати панель інструментів у сеансах RDP, VNC та Telnet." }, - "displayGroup": "Display", - "displayDefaultsTab": "Remote Desktop" + "displayGroup": "Дисплей", + "displayDefaultsTab": "Віддалений робочий стіл" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Зв'язок з RDP", + "connectVnc": "Зв'яжіться з VNC", + "connectTelnet": "З’єднання за допомогою Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Спільний доступ до сеансів віддаленого робочого столу", + "description": "Дозволити спільний доступ до сеансів та кімнати для співпраці показувати сеанси RDP, VNC та Telnet цього користувача іншим." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потрібен віддалений сервер. Підключіться до віддаленого сервера в налаштуваннях, щоб використовувати цей тип підключення." } } diff --git a/plugins/remote-desktop/locales/translated/vi_VN.json b/plugins/remote-desktop/locales/translated/vi_VN.json index 44da1cfb0..43973ecd7 100644 --- a/plugins/remote-desktop/locales/translated/vi_VN.json +++ b/plugins/remote-desktop/locales/translated/vi_VN.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "Đang kết nối đến phiên {{type}}...", - "checkingGuacd": "Checking remote desktop service...", - "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", - "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "checkingGuacd": "Kiểm tra dịch vụ máy tính từ xa...", + "requestingToken": "Yêu cầu mã thông báo kết nối {{type}}...", + "openingSession": "Khai mạc phiên {{type}}...", + "negotiating": "Đàm phán bằng cái bắt tay {{type}}...", + "sessionReady": "{{type}} phiên đã sẵn sàng", "connectionError": "Lỗi kết nối", "connectionFailed": "Kết nối thất bại", "failedToConnect": "Không lấy được mã token kết nối", @@ -14,37 +14,37 @@ "reconnect": "Kết nối lại", "retry": "Thử lại", "guacdUnavailable": "Dịch vụ máy tính từ xa (guacd) không khả dụng. Vui lòng đảm bảo guacd đang chạy, có thể truy cập và được cấu hình đúng trong cài đặt quản trị.", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "Nhập thông tin đăng nhập RDP", + "credentialPromptDescription": "Máy chủ này được thiết lập để yêu cầu thông tin đăng nhập khi kết nối. Thông tin này chỉ được sử dụng cho phiên này và không được lưu lại.", "connect": "Kết nối", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "Tệp ổ đĩa", + "parent": "Thư mục cha", "refresh": "Làm mới", "empty": "Thư mục này trống", - "listFailed": "Failed to read this folder", + "listFailed": "Không thể đọc thư mục này.", "download": "Tải xuống", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "Tải xuống không thành công {{name}}", + "upload": "Tải lên tệp", "uploading": "Đang tải lên {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "Đã tải lên {{name}}", + "uploadFailed": "Tải lên không thành công {{name}}", + "uploadDisabled": "Chức năng tải lên đã bị vô hiệu hóa cho kết nối này.", + "driveUnavailable": "Hãy bật tính năng chuyển hướng ổ đĩa RDP trước khi tải lên tệp.", + "driveNotWritable": "guacd không thể ghi vào thư mục ổ đĩa. Hãy kiểm tra GUACD_DRIVE_PATH (hoặc Đường dẫn ổ đĩa của máy chủ) và quyền truy cập của nó.", + "dropToUpload": "Kéo thả tệp để tải lên" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (Khóa màn hình)", "winKey": "Phím Windows", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "Super+L (Màn hình khóa)", + "superKey": "Siêu chìa khóa", + "super": "Siêu", + "cmdL": "Cmd+L (Khóa màn hình)", + "cmdKey": "Phím lệnh", + "cmd": "Lệnh", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "Thu gọn thanh công cụ", "expand": "Mở rộng thanh công cụ", "dragHandle": "Kéo để di chuyển", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "Ẩn tùy chọn này trong phiên làm việc hiện tại. Để tắt vĩnh viễn, hãy mở Cài đặt máy chủ → Chung → Thanh công cụ kết nối.", + "zoomIn": "Phóng to", + "zoomOut": "Thu nhỏ", + "resetZoom": "Đặt lại thu phóng", + "fitToScreen": "Vừa với màn hình", + "switchToTrackpad": "Chuyển sang chế độ bàn di chuột (kéo để di chuyển con trỏ, chạm để nhấp chuột)", + "switchToTouch": "Chuyển sang chế độ cảm ứng (chạm trực tiếp vào vị trí bạn muốn nhấp chuột)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "Chức năng Truy cập Máy tính Từ xa (Remote Desktop) đã bị tắt. Quản trị viên có thể bật chức năng này trong phần Cài đặt." }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "Đã mở bằng Windows Remote Desktop", + "nativeRdpFailed": "Không thể mở Windows Remote Desktop", + "openNativeRdp": "Mở bằng Windows Remote Desktop", "guac": { - "toolbar": "Toolbar", + "toolbar": "Thanh công cụ", "connection": "Kết nối", "authentication": "Xác thực", "storedCredential": "Thông tin xác thực đã lưu", @@ -89,7 +89,7 @@ "authTypeDirect": "Trực tiếp", "authTypeCredential": "Thông tin xác thực", "authTypeNone": "Không chọn", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "Thông tin đăng nhập của bạn không được lưu trữ. Bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu mỗi khi kết nối; chúng không được lưu lại.", "selectCredential": "Chọn thông tin xác thực...", "connectionSettings": "Cài đặt kết nối", "displaySettings": "Cài đặt hiển thị", @@ -107,7 +107,7 @@ "rdpPort": "Cổng RDP", "username": "Tên người dùng", "password": "Mật khẩu", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "Mật khẩu đã được lưu, nhập để thay đổi", "domain": "Miền", "securityMode": "Chế độ bảo mật", "width": "Chiều rộng", @@ -212,7 +212,7 @@ "backspaceKey": "Phím Backspace", "colorDepth": "Độ sâu màu", "resizeMethod": "Phương thức thay đổi kích thước", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "Đường Termix" }, "remoteDesktop": "Máy tính từ xa", "tabRdp": "RDP", @@ -221,28 +221,28 @@ "virtualNetwork": "Mạng ảo", "unencryptedShell": "Shell không mã hóa", "remoteDesktopNotes": "Ghi chú", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "Các thiết lập bạn giữ nguyên sẽ tuân theo cài đặt mặc định của máy chủ.", + "connectionOriginNote": "Trên ứng dụng máy tính để bàn, RDP, VNC và Telnet sử dụng máy chủ từ xa trừ khi máy chủ được đặt thành Thiết bị này, điều này yêu cầu một máy ảo mà guacd này có thể truy cập được. Hãy thiết lập một máy ảo trong cài đặt Máy tính từ xa hoặc cho từng máy chủ trong guacd Proxy.", "docsLink": "Xem tài liệu", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP, VNC và Telnet sử dụng máy chủ từ xa trừ khi bạn chọn \"Thiết bị này\", tùy chọn này yêu cầu máy ảo guacd mà máy này có thể truy cập được. Hãy thiết lập máy ảo này trong cài đặt URL của guacd hoặc cho từng máy chủ trong phần Proxy của guacd." }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "Máy tính từ xa", + "feature_desktop_desc": "Mở các phiên RDP, VNC và Telnet trong cùng một tab, tương tự như SSH." }, "settings": { "user": { "colorDepth": { "label": "Độ sâu màu", - "description": "Used for RDP hosts that leave it on their default." + "description": "Được sử dụng cho các máy chủ RDP để chế độ mặc định." }, "resizeMethod": { "label": "Phương thức thay đổi kích thước", - "description": "How the remote screen follows the window size." + "description": "Màn hình điều khiển từ xa tự động điều chỉnh theo kích thước cửa sổ." }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "Cập nhật hiển thị", "resizeReconnect": "Kết nối lại", - "inherit": "Inherit", + "inherit": "Kế thừa", "on": "Bật", "off": "Tắt", "forceLossless": { @@ -281,19 +281,19 @@ "label": "Tắt dán", "description": "Ngăn dán văn bản vào phiên từ xa" }, - "group": "Remote Desktop defaults", + "group": "Cài đặt mặc định của Remote Desktop", "colorDepth16": "16-bit", - "colorDepth24": "24-bit", + "colorDepth24": "24 bit", "colorDepth32": "32-bit" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "Bật tính năng truy cập máy tính từ xa", + "description": "Cho phép các kết nối RDP, VNC và Telnet thông qua guacd." }, "guacdUrl": { "label": "URL guacd", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "Nơi guacd lắng nghe, được định dạng là host:port. Các biến môi trường GUACD_URL, GUACD_HOST và GUACD_PORT sẽ ghi đè lên định dạng này.", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "Cổng RDP" }, "vncPort": { - "label": "VNC port" + "label": "Cổng VNC" }, "telnetPort": { - "label": "Telnet port" + "label": "Cổng Telnet" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "Chế độ bảo mật RDP" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "Bỏ qua lỗi chứng chỉ" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "cài đặt guacd" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "thanh công cụ máy tính từ xa", + "description": "Hiển thị thanh công cụ trong các phiên RDP, VNC và Telnet." }, - "displayGroup": "Display", + "displayGroup": "Trưng bày", "displayDefaultsTab": "Máy tính từ xa" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "Kết nối với RDP", + "connectVnc": "Kết nối với VNC", + "connectTelnet": "Kết nối bằng Telnet" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "Chia sẻ phiên làm việc từ xa", + "description": "Cho phép chia sẻ phiên và phòng cộng tác hiển thị các phiên RDP, VNC và Telnet của người dùng này cho những người khác." } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Cần có máy chủ từ xa. Kết nối máy chủ từ xa trong Cài đặt để sử dụng loại kết nối này." } } diff --git a/plugins/remote-desktop/locales/translated/zh_CN.json b/plugins/remote-desktop/locales/translated/zh_CN.json index 2e80e2e22..52413db65 100644 --- a/plugins/remote-desktop/locales/translated/zh_CN.json +++ b/plugins/remote-desktop/locales/translated/zh_CN.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "正在连接到 {{type}} 会话...", - "checkingGuacd": "Checking remote desktop service...", + "checkingGuacd": "正在检查远程桌面服务...", "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", + "openingSession": "正在开启 {{type}} 会话...", "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "sessionReady": "{{type}} 会话已准备就绪", "connectionError": "连接错误", "connectionFailed": "连接失败", "failedToConnect": "获取连接令牌失败", @@ -14,37 +14,37 @@ "reconnect": "重新连接", "retry": "重试", "guacdUnavailable": "远程桌面服务 (guacd) 不可用。请确保 guacd 正在运行并可访问,且在管理设置中正确配置。", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "输入 RDP 凭据", + "credentialPromptDescription": "此主机设置为在连接时提示输入凭据。这些凭据仅用于当前会话,不会被保存。", "connect": "连接", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "驱动器文件", + "parent": "父目录", "refresh": "刷新", "empty": "此文件夹为空", - "listFailed": "Failed to read this folder", + "listFailed": "读取此文件夹失败", "download": "下载", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "下载失败 {{name}}", + "upload": "上传文件", "uploading": "正在上传 {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "已上传 {{name}}", + "uploadFailed": "上传失败 {{name}}", + "uploadDisabled": "此连接已禁用上传功能", + "driveUnavailable": "上传文件前启用 RDP 驱动器重定向", + "driveNotWritable": "guacd 无法写入驱动器文件夹。请检查 GUACD_DRIVE_PATH(或主机驱动器路径)及其权限。", + "dropToUpload": "拖放文件即可上传" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (锁定屏幕)", "winKey": "Windows 键", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "Super+L(锁屏)", + "superKey": "超级密钥", + "super": "极好的", + "cmdL": "Cmd+L(锁屏)", + "cmdKey": "命令键", + "cmd": "命令", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "折叠工具栏", "expand": "展开工具栏", "dragHandle": "拖动以重新定位", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", + "hide": "本次会话期间隐藏。要永久禁用,请打开“主机设置”→“常规”→“连接工具栏”。", + "zoomIn": "放大", + "zoomOut": "缩小", + "resetZoom": "重置缩放", + "fitToScreen": "适应屏幕", "switchToTrackpad": "切换到触控板模式(拖动移动光标,轻点进行点击)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "switchToTouch": "切换到触摸模式(直接点击你想点击的地方)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "远程桌面已关闭。管理员可以在“设置”中启用它。" }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "在 Windows 远程桌面中打开", + "nativeRdpFailed": "无法打开 Windows 远程桌面", + "openNativeRdp": "在 Windows 远程桌面中打开", "guac": { - "toolbar": "Toolbar", + "toolbar": "工具栏", "connection": "连接", "authentication": "认证", "storedCredential": "已存储凭据", @@ -89,7 +89,7 @@ "authTypeDirect": "直接", "authTypeCredential": "凭据", "authTypeNone": "无", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "不会存储任何凭据。每次连接时,系统都会提示您输入用户名和密码;这些信息不会被保存。", "selectCredential": "选择凭据...", "connectionSettings": "连接设置", "displaySettings": "显示设置", @@ -107,7 +107,7 @@ "rdpPort": "RDP 端口", "username": "用户名", "password": "密码", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "密码已保存,输入即可更改", "domain": "域", "securityMode": "安全模式", "width": "宽度", @@ -212,7 +212,7 @@ "backspaceKey": "退格键", "colorDepth": "颜色深度", "resizeMethod": "调整大小方法", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "特米克斯大道" }, "remoteDesktop": "远程桌面", "tabRdp": "RDP", @@ -221,28 +221,28 @@ "virtualNetwork": "虚拟网络", "unencryptedShell": "未加密 Shell", "remoteDesktopNotes": "笔记", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "如果您的设置保持不变,则遵循主机默认设置。", + "connectionOriginNote": "在桌面应用程序中,RDP、VNC 和 Telnet 会使用远程服务器,除非主机设置为“此设备”。“此设备”需要 guacd 代理,即此计算机可以访问的代理。您可以在远程桌面设置中设置 guacd 代理,也可以为每个主机单独设置。", "docsLink": "查看文档", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP、VNC 和 Telnet 默认使用远程服务器,除非您选择“此设备”,这需要一台机器可以访问的 guacd 服务器。您可以在 guacd URL 设置中设置,也可以在 guacd 代理中为每个主机单独设置。" }, "onboarding": { - "feature_desktop": "Remote desktop", + "feature_desktop": "远程桌面", "feature_desktop_desc": "像 SSH 一样,在标签页中直接打开 RDP、VNC 和 Telnet 会话。" }, "settings": { "user": { "colorDepth": { "label": "颜色深度", - "description": "Used for RDP hosts that leave it on their default." + "description": "用于那些保留默认设置的 RDP 主机。" }, "resizeMethod": { "label": "调整大小方法", - "description": "How the remote screen follows the window size." + "description": "远程屏幕如何跟随窗口大小变化。" }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "显示更新", "resizeReconnect": "重新连接", - "inherit": "Inherit", + "inherit": "继承", "on": "开启", "off": "关闭", "forceLossless": { @@ -281,19 +281,19 @@ "label": "禁用粘贴", "description": "禁止粘贴文本到远程会话" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "远程桌面默认设置", + "colorDepth16": "16 位", + "colorDepth24": "24 位", + "colorDepth32": "32 位" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "启用远程桌面", + "description": "允许通过 guacd 连接 RDP、VNC 和 Telnet。" }, "guacdUrl": { "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "guacd 监听的位置,格式为 host:port。GUACD_URL、GUACD_HOST 和 GUACD_PORT 环境变量会覆盖此设置。", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "RDP端口" }, "vncPort": { - "label": "VNC port" + "label": "VNC端口" }, "telnetPort": { - "label": "Telnet port" + "label": "Telnet端口" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP 安全模式" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "忽略证书错误" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd 设置" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "远程桌面工具栏", + "description": "在 RDP、VNC 和 Telnet 会话中显示工具栏。" }, - "displayGroup": "Display", + "displayGroup": "展示", "displayDefaultsTab": "远程桌面" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "使用 RDP 连接", + "connectVnc": "通过 VNC 连接", + "connectTelnet": "使用 Telnet 连接" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "共享远程桌面会话", + "description": "允许会话共享和协作房间向其他人显示此用户的 RDP、VNC 和 Telnet 会话。" } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要远程服务器。请在“设置”中连接远程服务器以使用此连接类型。" } } diff --git a/plugins/remote-desktop/locales/translated/zh_TW.json b/plugins/remote-desktop/locales/translated/zh_TW.json index 54f7c22fc..d97f968b0 100644 --- a/plugins/remote-desktop/locales/translated/zh_TW.json +++ b/plugins/remote-desktop/locales/translated/zh_TW.json @@ -1,11 +1,11 @@ { "remoteDesktop": { "connecting": "正在連線至 {{type}} 工作階段…", - "checkingGuacd": "Checking remote desktop service...", + "checkingGuacd": "正在檢查遠端桌面服務...", "requestingToken": "Requesting {{type}} connection token...", - "openingSession": "Opening {{type}} session...", + "openingSession": "正在開啟 {{type}} 會話...", "negotiating": "Negotiating {{type}} handshake...", - "sessionReady": "{{type}} session ready", + "sessionReady": "{{type}} 會話已準備就緒", "connectionError": "連線錯誤", "connectionFailed": "連線失敗", "failedToConnect": "無法取得連線權杖", @@ -14,37 +14,37 @@ "reconnect": "重新連線", "retry": "重試", "guacdUnavailable": "遠端桌面服務 (guacd) 無法使用。請確保 guacd 正在執行且可存取,並已在管理員設定中正確設定。", - "credentialPromptTitle": "Enter RDP Credentials", - "credentialPromptDescription": "This host is set to prompt for credentials on connect. They are used for this session only and are not saved.", + "credentialPromptTitle": "輸入 RDP 憑證", + "credentialPromptDescription": "此主機設定為在連線時提示輸入憑證。這些憑證僅用於當前會話,不會被儲存。", "connect": "連線", "ctrlAltDel": "Ctrl+Alt+Del", "files": { - "title": "Drive Files", - "parent": "Parent directory", + "title": "磁碟機檔案", + "parent": "父目錄", "refresh": "重新整理", "empty": "此資料夾為空", - "listFailed": "Failed to read this folder", + "listFailed": "讀取此資料夾失敗", "download": "下載", - "downloadFailed": "Failed to download {{name}}", - "upload": "Upload files", + "downloadFailed": "下載失敗 {{name}}", + "upload": "上傳文件", "uploading": "正在上傳 {{name}}...", - "uploaded": "Uploaded {{name}}", - "uploadFailed": "Failed to upload {{name}}", - "uploadDisabled": "Uploads are disabled for this connection", - "driveUnavailable": "Enable RDP drive redirection before uploading files", - "driveNotWritable": "guacd cannot write to the drive folder. Check GUACD_DRIVE_PATH (or the host's Drive Path) and its permissions.", - "dropToUpload": "Drop files to upload" + "uploaded": "已上傳 {{name}}", + "uploadFailed": "上傳失敗 {{name}}", + "uploadDisabled": "此連線已停用上傳功能", + "driveUnavailable": "上傳檔案前啟用 RDP 磁碟機重定向", + "driveNotWritable": "guacd 無法寫入磁碟機資料夾。請檢查 GUACD_DRIVE_PATH(或主機磁碟機路徑)及其權限。", + "dropToUpload": "拖放檔案即可上傳" }, "toolbar": { "ctrlAltDel": "Ctrl+Alt+Del", "winL": "Win+L (鎖定螢幕)", "winKey": "Windows 鍵", - "superL": "Super+L (Lock Screen)", - "superKey": "Super Key", - "super": "Super", - "cmdL": "Cmd+L (Lock Screen)", - "cmdKey": "Command Key", - "cmd": "Cmd", + "superL": "Super+L(鎖定畫面)", + "superKey": "超級鑰匙", + "super": "極佳的", + "cmdL": "Cmd+L(鎖定畫面)", + "cmdKey": "命令鍵", + "cmd": "命令", "ctrl": "Ctrl", "alt": "Alt", "shift": "Shift", @@ -66,22 +66,22 @@ "collapse": "收合工具列", "expand": "展開工具列", "dragHandle": "拖曳以重新定位", - "hide": "Hide for this session. To disable it permanently, open Host Settings → General → Connection Toolbar.", - "zoomIn": "Zoom in", - "zoomOut": "Zoom out", - "resetZoom": "Reset zoom", - "fitToScreen": "Fit to screen", - "switchToTrackpad": "Switch to trackpad mode (drag to move cursor, tap to click)", - "switchToTouch": "Switch to touch mode (tap directly where you want to click)" + "hide": "本次會話期間隱藏。若要永久停用,請開啟「主機設定」→「一般」→「連線工具列」。", + "zoomIn": "放大", + "zoomOut": "縮小", + "resetZoom": "重置縮放", + "fitToScreen": "適應螢幕", + "switchToTrackpad": "切換到觸控板模式(拖曳移動遊標,點擊點擊)", + "switchToTouch": "切換到觸控模式(直接點擊你想點擊的地方)" }, - "disabled": "Remote Desktop is turned off. An admin can turn it on in Settings." + "disabled": "遠端桌面已關閉。管理員可以在“設定”中啟用它。" }, "hosts": { - "nativeRdpOpened": "Opened in Windows Remote Desktop", - "nativeRdpFailed": "Failed to open Windows Remote Desktop", - "openNativeRdp": "Open in Windows Remote Desktop", + "nativeRdpOpened": "在 Windows 遠端桌面中開啟", + "nativeRdpFailed": "無法開啟 Windows 遠端桌面", + "openNativeRdp": "在 Windows 遠端桌面中開啟", "guac": { - "toolbar": "Toolbar", + "toolbar": "工具列", "connection": "連線", "authentication": "驗證", "storedCredential": "已儲存的憑證", @@ -89,7 +89,7 @@ "authTypeDirect": "直接", "authTypeCredential": "憑證", "authTypeNone": "取消全選", - "authTypeNoneDesc": "No credentials are stored. You'll be prompted for a username and password each time you connect; they are not saved.", + "authTypeNoneDesc": "不會儲存任何憑證。每次連線時,系統都會提示您輸入使用者名稱和密碼;這些資訊不會被儲存。", "selectCredential": "選取憑證…", "connectionSettings": "連線設定", "displaySettings": "顯示設定", @@ -107,7 +107,7 @@ "rdpPort": "RDP 連接埠", "username": "使用者名稱", "password": "密碼", - "passwordSaved": "Password saved, type to change", + "passwordSaved": "密碼已儲存,輸入即可更改", "domain": "網域", "securityMode": "安全模式", "width": "寬度", @@ -212,7 +212,7 @@ "backspaceKey": "退格鍵", "colorDepth": "色彩深度", "resizeMethod": "調整尺寸方法", - "driveNamePlaceholder": "Termix Drive" + "driveNamePlaceholder": "特米克斯大道" }, "remoteDesktop": "遠端桌面", "tabRdp": "RDP", @@ -221,28 +221,28 @@ "virtualNetwork": "虛擬網路", "unencryptedShell": "未加密殼層", "remoteDesktopNotes": "筆記", - "userDefaultsNote": "Settings you leave unchanged follow your host defaults.", - "connectionOriginNote": "On the desktop app, RDP, VNC and Telnet use the remote server unless the host is set to This device, which needs a guacd this machine can reach. Set one in the Remote Desktop settings, or per host under guacd Proxy.", + "userDefaultsNote": "如果您的設定保持不變,請遵循主機預設設定。", + "connectionOriginNote": "在桌面應用程式中,RDP、VNC 和 Telnet 會使用遠端伺服器,除非主機設定為「此設備」。 「此設備」需要 guacd 代理,即此電腦可以存取的代理。您可以在遠端桌面設定中設定 guacd 代理,也可以為每個主機單獨設定。", "docsLink": "檢視文件", - "connectionOriginGuacamoleNote": "RDP, VNC and Telnet use the remote server unless you pick \"This device\", which needs a guacd this machine can reach. Set one in the guacd URL setting, or per host under guacd Proxy." + "connectionOriginGuacamoleNote": "RDP、VNC 和 Telnet 預設使用遠端伺服器,除非您選擇“此設備”,這需要一台機器可以存取的 guacd 伺服器。您可以在 guacd URL 設定中設置,也可以在 guacd 代理中為每個主機單獨設定。" }, "onboarding": { - "feature_desktop": "Remote desktop", - "feature_desktop_desc": "Open RDP, VNC and Telnet sessions in a tab, same as SSH." + "feature_desktop": "遠端桌面", + "feature_desktop_desc": "像 SSH 一樣,在同一個標籤頁中開啟 RDP、VNC 和 Telnet 會話。" }, "settings": { "user": { "colorDepth": { "label": "色彩深度", - "description": "Used for RDP hosts that leave it on their default." + "description": "用於那些保留預設設定的 RDP 主機。" }, "resizeMethod": { "label": "調整尺寸方法", - "description": "How the remote screen follows the window size." + "description": "遠端螢幕如何跟隨視窗大小變化。" }, - "resizeDisplayUpdate": "Display Update", + "resizeDisplayUpdate": "顯示更新", "resizeReconnect": "重新連線", - "inherit": "Inherit", + "inherit": "繼承", "on": "開啟", "off": "關閉", "forceLossless": { @@ -281,19 +281,19 @@ "label": "停用貼上", "description": "防止將文字貼上至遠端工作階段" }, - "group": "Remote Desktop defaults", - "colorDepth16": "16-bit", - "colorDepth24": "24-bit", - "colorDepth32": "32-bit" + "group": "遠端桌面預設設定", + "colorDepth16": "16 位元", + "colorDepth24": "24 位元", + "colorDepth32": "32 位元" }, "admin": { "enabled": { - "label": "Enable Remote Desktop", - "description": "Allow RDP, VNC and Telnet connections through guacd." + "label": "啟用遠端桌面", + "description": "允許透過 guacd 連接 RDP、VNC 和 Telnet。" }, "guacdUrl": { "label": "guacd URL", - "description": "Where guacd listens, as host:port. The GUACD_URL, GUACD_HOST and GUACD_PORT environment variables override this.", + "description": "guacd 監聽的位置,格式為 host:port。 GUACD_URL、GUACD_HOST 和 GUACD_PORT 環境變數會覆寫此設定。", "placeholder": "guacd:4822" } }, @@ -308,43 +308,43 @@ "label": "Telnet" }, "rdpPort": { - "label": "RDP port" + "label": "RDP埠" }, "vncPort": { - "label": "VNC port" + "label": "VNC埠" }, "telnetPort": { - "label": "Telnet port" + "label": "Telnet連接埠" }, "rdpSecurity": { - "label": "RDP security mode" + "label": "RDP 安全模式" }, "rdpIgnoreCert": { - "label": "Ignore certificate errors" + "label": "忽略證書錯誤" }, "guacamoleConfig": { - "label": "guacd settings" + "label": "guacd 設定" }, "enableToolbar": { - "label": "Remote desktop toolbar", - "description": "Show the toolbar in RDP, VNC and Telnet sessions." + "label": "遠端桌面工具列", + "description": "在 RDP、VNC 和 Telnet 會話中顯示工具列。" }, - "displayGroup": "Display", + "displayGroup": "展示", "displayDefaultsTab": "遠端桌面" } }, "palette": { - "connectRdp": "Connect with RDP", - "connectVnc": "Connect with VNC", - "connectTelnet": "Connect with Telnet" + "connectRdp": "使用 RDP 連接", + "connectVnc": "透過 VNC 連接", + "connectTelnet": "使用 Telnet 連接" }, "permissions": { "sessions": { - "title": "Share remote desktop sessions", - "description": "Let session sharing and collab rooms show this user's RDP, VNC and Telnet sessions to others." + "title": "共用遠端桌面會話", + "description": "允許會話共用和協作房間向其他人顯示此使用者的 RDP、VNC 和 Telnet 會話。" } }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要遠端伺服器。請在「設定」中連接遠端伺服器以使用此連線類型。" } } diff --git a/plugins/secret-sources/locales/translated/bn_BD.json b/plugins/secret-sources/locales/translated/bn_BD.json index 1edf5e93f..b7e42dda8 100644 --- a/plugins/secret-sources/locales/translated/bn_BD.json +++ b/plugins/secret-sources/locales/translated/bn_BD.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "আপনি সিক্রেটের পরিবর্তে একটি 1Password রেফারেন্স (op://vault/item/field) পেস্ট করতে পারেন। সংযোগ করার সময় এটি আপনার সিক্রেট সোর্স থেকে সংগ্রহ করা হয়।", + "manage": "গোপন উৎস পরিচালনা করুন", + "title": "গোপন সূত্র", + "description": "এক্সটার্নাল পাসওয়ার্ড ম্যানেজার Termix কানেক্ট করার সময় সিক্রেট ডেটা পড়ে নেয়। বর্তমানে ব্যবহৃত হয় 1Password Connect (সেলফ-হোস্টেড)। অ্যাক্সেস টোকেনটি আপনার ডেটা কী দিয়ে এনক্রিপ্ট করে সংরক্ষণ করা হয়।", + "new": "নতুন উৎস", + "nameLabel": "বন্ধুত্বপূর্ণ নাম", + "urlLabel": "সার্ভার URL সংযোগ করুন", + "tokenLabel": "অ্যাক্সেস টোকেন সংযুক্ত করুন", + "tokenKeep": "বর্তমান টোকেনটি রাখতে খালি রাখুন।", + "sharedLabel": "সকল ব্যবহারকারীর সাথে শেয়ার করুন (শুধুমাত্র অ্যাডমিনদের জন্য, আপনি সাইন ইন থাকা অবস্থায় কার্যকর হবে)", "shared": "ভাগ করা হয়েছে", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "test": "পরীক্ষা", + "testOk": "সংযুক্ত, {{count}} টি ভল্ট দৃশ্যমান", + "testFailed": "সংযোগ পরীক্ষা ব্যর্থ হয়েছে", + "required": "নাম, সার্ভার ইউআরএল এবং টোকেন প্রয়োজন।", + "saved": "গোপন উৎস সংরক্ষিত", + "deleted": "গোপন সূত্র মুছে ফেলা হয়েছে", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "ব্যক্তিগত এন্ডপয়েন্ট অনুমোদিত তালিকা", + "description": "একটি গোপন উৎস যেসব প্রাইভেট বা লুপব্যাক হোস্টে পৌঁছাতে পারে, প্রতি লাইনে একটি করে। একটি সেলফ-হোস্টেড 1Password Connect সার্ভারের জন্য সাধারণত এখানে তার নিজস্ব ঠিকানা তালিকাভুক্ত করার প্রয়োজন হয়।" } } } diff --git a/plugins/secret-sources/locales/translated/hi_IN.json b/plugins/secret-sources/locales/translated/hi_IN.json index 973b29843..4d668dd87 100644 --- a/plugins/secret-sources/locales/translated/hi_IN.json +++ b/plugins/secret-sources/locales/translated/hi_IN.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "आप गुप्त पासवर्ड के स्थान पर 1Password संदर्भ (op://vault/item/field) पेस्ट कर सकते हैं। कनेक्ट करते समय यह आपके गुप्त पासवर्ड स्रोत से प्राप्त किया जाता है।", + "manage": "गुप्त स्रोतों का प्रबंधन करें", + "title": "गुप्त सूत्रों", + "description": "टर्मिक्स कनेक्ट होने के समय बाहरी पासवर्ड मैनेजर से गुप्त जानकारी पढ़ता है। वर्तमान में 1Password Connect (स्वयं-होस्टेड) का उपयोग किया जा रहा है। एक्सेस टोकन आपके डेटा कुंजी के साथ एन्क्रिप्टेड रूप में संग्रहीत किया जाता है।", + "new": "नए स्रोत", + "nameLabel": "दोस्ताना नाम", + "urlLabel": "सर्वर यूआरएल से कनेक्ट करें", + "tokenLabel": "एक्सेस टोकन कनेक्ट करें", + "tokenKeep": "वर्तमान टोकन को बनाए रखने के लिए इसे खाली छोड़ दें", + "sharedLabel": "सभी उपयोगकर्ताओं के साथ साझा करें (केवल व्यवस्थापकों के लिए, आपके लॉग इन होने पर ही समस्या का समाधान हो जाएगा)", "shared": "साझा", "test": "परीक्षण", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "कनेक्टेड, {{count}} वॉल्ट दिखाई दे रहे हैं", + "testFailed": "कनेक्शन परीक्षण विफल रहा", + "required": "नाम, सर्वर यूआरएल और टोकन आवश्यक हैं।", + "saved": "गुप्त स्रोत सुरक्षित", + "deleted": "गुप्त सूत्र हटा दिया गया", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "निजी एंडपॉइंट अनुमति सूची", + "description": "निजी या लूपबैक होस्ट तक एक गुप्त स्रोत पहुंच सकता है, प्रति पंक्ति एक। एक स्व-होस्टेड 1Password Connect सर्वर को आमतौर पर यहां अपना पता सूचीबद्ध करने की आवश्यकता होती है।" } } } diff --git a/plugins/secret-sources/locales/translated/id_ID.json b/plugins/secret-sources/locales/translated/id_ID.json index fc9b0f9be..f031bd733 100644 --- a/plugins/secret-sources/locales/translated/id_ID.json +++ b/plugins/secret-sources/locales/translated/id_ID.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Anda dapat menempelkan referensi 1Password (op://vault/item/field) sebagai pengganti rahasia. Referensi tersebut akan diambil dari sumber rahasia Anda saat terhubung.", + "manage": "Mengelola sumber rahasia", + "title": "Sumber rahasia", + "description": "Termix membaca rahasia dari pengelola kata sandi eksternal pada saat koneksi. Saat ini menggunakan 1Password Connect (yang dihosting sendiri). Token akses disimpan dalam bentuk terenkripsi dengan kunci data Anda.", + "new": "Sumber baru", + "nameLabel": "Nama yang ramah", + "urlLabel": "Hubungkan URL server", + "tokenLabel": "Hubungkan token akses", + "tokenKeep": "Biarkan kosong untuk mempertahankan token saat ini.", + "sharedLabel": "Bagikan dengan semua pengguna (hanya admin, akan aktif saat Anda masuk)", "shared": "dibagikan", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "test": "Tes", + "testOk": "Terhubung, {{count}} brankas terlihat", + "testFailed": "Pengujian koneksi gagal", + "required": "Nama, URL server, dan token wajib diisi.", + "saved": "Sumber rahasia tersimpan", + "deleted": "Sumber rahasia telah dihapus.", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Daftar izin titik akhir privat", + "description": "Host privat atau loopback yang dapat dijangkau oleh sumber rahasia, satu per baris. Server 1Password Connect yang dihosting sendiri biasanya memerlukan alamatnya sendiri yang tercantum di sini." } } } diff --git a/plugins/secret-sources/locales/translated/no_NO.json b/plugins/secret-sources/locales/translated/no_NO.json index e76b1abc3..375cb9cfe 100644 --- a/plugins/secret-sources/locales/translated/no_NO.json +++ b/plugins/secret-sources/locales/translated/no_NO.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", + "hint": "Du kan lime inn en 1Password-referanse (op://vault/item/field) i stedet for hemmeligheten. Den hentes fra hemmelighetskilden din når du kobler til.", + "manage": "Administrer hemmelige kilder", + "title": "Hemmelige kilder", + "description": "Eksterne passordbehandlere Termix leser hemmeligheter fra ved tilkobling. For tiden 1Password Connect (selvhostet). Tilgangstokenet lagres kryptert med datanøkkelen din.", + "new": "Ny kilde", + "nameLabel": "Vennlig navn", + "urlLabel": "URL-adresse for tilkobling av server", + "tokenLabel": "Koble til tilgangstoken", + "tokenKeep": "La stå tomt for å beholde gjeldende token", + "sharedLabel": "Del med alle brukere (kun administratorer, løses mens du er logget på)", + "shared": "delt", "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Tilkoblet, {{count}} hvelv synlig(e)", + "testFailed": "Tilkoblingstesten mislyktes", + "required": "Navn, server-URL og token er obligatorisk", + "saved": "Hemmelig kilde lagret", + "deleted": "Hemmelig kilde slettet", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Tillatelsesliste for privat endepunkt", + "description": "Private verter eller loopback-verter en hemmelig kilde kan nå, én per linje. En selvhostet 1Password Connect-server trenger vanligvis sin egen adresse oppført her." } } } diff --git a/plugins/secret-sources/locales/translated/pl_PL.json b/plugins/secret-sources/locales/translated/pl_PL.json index 88f480685..549aa7b31 100644 --- a/plugins/secret-sources/locales/translated/pl_PL.json +++ b/plugins/secret-sources/locales/translated/pl_PL.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Zamiast klucza tajnego możesz wkleić odnośnik do 1Password (op://vault/item/field). Zostanie on pobrany ze źródła klucza tajnego podczas łączenia.", + "manage": "Zarządzaj tajnymi źródłami", + "title": "Tajne źródła", + "description": "Zewnętrzny menedżer haseł Termix odczytuje sekrety w momencie połączenia. Obecnie 1Password Connect (hostowany samodzielnie). Token dostępu jest przechowywany w postaci zaszyfrowanej z Twoim kluczem danych.", + "new": "Nowe źródło", + "nameLabel": "Przyjazna nazwa", + "urlLabel": "Połącz adres URL serwera", + "tokenLabel": "Połącz token dostępu", + "tokenKeep": "Pozostaw puste, aby zachować bieżący token", + "sharedLabel": "Udostępnij wszystkim użytkownikom (tylko administratorzy, rozwiązuje się, gdy jesteś zalogowany)", "shared": "współdzielony", "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Połączono, {{count}} widocznych skarbców", + "testFailed": "Test połączenia nie powiódł się", + "required": "Wymagane są nazwa, adres URL serwera i token", + "saved": "Tajne źródło uratowane", + "deleted": "Usunięto tajne źródło", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Prywatna lista dozwolonych punktów końcowych", + "description": "Prywatne lub zwrotne hosty, do których może dotrzeć tajne źródło, po jednym na linię. Samodzielnie hostowany serwer 1Password Connect zazwyczaj wymaga podania tutaj własnego adresu." } } } diff --git a/plugins/secret-sources/locales/translated/pt_BR.json b/plugins/secret-sources/locales/translated/pt_BR.json index e76b1abc3..fb078ed53 100644 --- a/plugins/secret-sources/locales/translated/pt_BR.json +++ b/plugins/secret-sources/locales/translated/pt_BR.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "hint": "Você pode colar uma referência do 1Password (op://vault/item/field) em vez do segredo. Ela é obtida da sua fonte de segredos ao conectar.", + "manage": "Gerenciar fontes secretas", + "title": "Fontes secretas", + "description": "O Termix lê os segredos de gerenciadores de senhas externos no momento da conexão. Atualmente, utiliza o 1Password Connect (hospedado localmente). O token de acesso é armazenado criptografado com sua chave de dados.", + "new": "Nova fonte", + "nameLabel": "Nome amigável", + "urlLabel": "URL de conexão do servidor", + "tokenLabel": "Token de acesso Connect", + "tokenKeep": "Deixe em branco para manter o token atual.", + "sharedLabel": "Compartilhar com todos os usuários (somente administradores, funciona enquanto você estiver conectado)", + "shared": "compartilhado", + "test": "Teste", + "testOk": "Conectado, {{count}} cofre(s) visível(is)", + "testFailed": "Teste de conexão falhou", + "required": "Nome, URL do servidor e token são obrigatórios.", + "saved": "Fonte secreta salva", + "deleted": "Fonte secreta excluída", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "lista de permissões de endpoints privados", + "description": "Hosts privados ou de loopback que uma fonte secreta pode acessar, um por linha. Um servidor 1Password Connect autohospedado geralmente precisa ter seu próprio endereço listado aqui." } } } diff --git a/plugins/secret-sources/locales/translated/pt_PT.json b/plugins/secret-sources/locales/translated/pt_PT.json index ea5c08446..b959d2b44 100644 --- a/plugins/secret-sources/locales/translated/pt_PT.json +++ b/plugins/secret-sources/locales/translated/pt_PT.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Pode colar uma referência do 1Password (op://vault/item/field) em vez do segredo. É obtida a partir da sua fonte de segredos ao conectar.", + "manage": "Gerir fontes secretas", + "title": "Fontes secretas", + "description": "O Termix lê os segredos dos gestores de palavras-passe externos no momento da ligação. Atualmente utiliza o 1Password Connect (alojado localmente). O token de acesso é armazenado encriptado com a sua chave de dados.", + "new": "Nova fonte", + "nameLabel": "Nome amigável", + "urlLabel": "URL de ligação do servidor", + "tokenLabel": "Token de acesso Connect", + "tokenKeep": "Deixe em branco para manter o token atual.", + "sharedLabel": "Partilhar com todos os utilizadores (apenas administradores, funciona enquanto estiver ligado)", "shared": "partilhado", "test": "Testar", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Ligado, {{count}} cofre(s) visível(is)", + "testFailed": "Teste de ligação falhou", + "required": "Nome, URL do servidor e token são obrigatórios.", + "saved": "Fonte secreta guardada", + "deleted": "Fonte secreta excluída", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "lista de permissões de endpoints privados", + "description": "Hosts privados ou de loopback a que uma fonte secreta pode aceder, um por linha. Um servidor 1Password Connect auto-hospedado precisa geralmente de ter o seu próprio endereço listado aqui." } } } diff --git a/plugins/secret-sources/locales/translated/ru_RU.json b/plugins/secret-sources/locales/translated/ru_RU.json index b318e1ea3..3f43473f8 100644 --- a/plugins/secret-sources/locales/translated/ru_RU.json +++ b/plugins/secret-sources/locales/translated/ru_RU.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Вместо секретного ключа можно вставить ссылку на 1Password (op://vault/item/field). Она будет получена из вашего источника секретных ключей при подключении.", + "manage": "Управление секретными источниками", + "title": "Секретные источники", + "description": "Внешние менеджеры паролей Termix считывают секретные ключи во время подключения. В настоящее время используется 1Password Connect (самостоятельно размещенный). Токен доступа хранится в зашифрованном виде с помощью вашего ключа данных.", + "new": "Новый источник", + "nameLabel": "Дружелюбное имя", + "urlLabel": "URL-адрес сервера подключения", + "tokenLabel": "Токен доступа для подключения", + "tokenKeep": "Оставьте поле пустым, чтобы сохранить текущий токен.", + "sharedLabel": "Предоставить доступ всем пользователям (только администраторам, проблема решается при авторизации).", "shared": "общий", "test": "Проверить", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Подключено, {{count}} хранилище(я) видны", + "testFailed": "Проверка соединения не удалась.", + "required": "Необходимо указать имя, URL-адрес сервера и токен.", + "saved": "Секретный источник сохранен", + "deleted": "Секретный источник удален", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Список разрешенных частных конечных точек", + "description": "Доступ к секретному источнику может осуществляться через частные или замыкающие хосты, по одному на строку. Самостоятельно размещенному серверу 1Password Connect обычно требуется собственный адрес, указанный здесь." } } } diff --git a/plugins/secret-sources/locales/translated/sr_SP.json b/plugins/secret-sources/locales/translated/sr_SP.json index e76b1abc3..649db3885 100644 --- a/plugins/secret-sources/locales/translated/sr_SP.json +++ b/plugins/secret-sources/locales/translated/sr_SP.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "hint": "Можете да налепите референцу 1Password (op://vault/item/field) уместо тајне лозинке. Она се преузима из вашег тајног извора приликом повезивања.", + "manage": "Управљајте тајним изворима", + "title": "Тајни извори", + "description": "Спољни менаџери лозинки Termix чита тајне податке у време повезивања. Тренутно 1Password Connect (самостални хост). Приступни токен се чува шифровано помоћу вашег кључа података.", + "new": "Нови извор", + "nameLabel": "Пријатељско име", + "urlLabel": "URL адреса сервера за повезивање", + "tokenLabel": "Токен за приступ повезивању", + "tokenKeep": "Оставите празно да бисте задржали тренутни токен", + "sharedLabel": "Дели са свим корисницима (само за администраторе, решава се док сте пријављени)", + "shared": "дељено", + "test": "Тест", + "testOk": "Повезано, видљивих {{count}} трезора", + "testFailed": "Тест везе није успео", + "required": "Потребно је име, URL сервера и токен", + "saved": "Тајни извор сачуван", + "deleted": "Тајни извор је обрисан", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Листа дозвољених приватних крајњих тачака", + "description": "Приватни или loopback хостови које тајни извор може досегнути, по један у сваком реду. Самостално хостовани 1Password Connect сервер обично захтева сопствену адресу наведену овде." } } } diff --git a/plugins/secret-sources/locales/translated/sv_SE.json b/plugins/secret-sources/locales/translated/sv_SE.json index e76b1abc3..ec6df70f7 100644 --- a/plugins/secret-sources/locales/translated/sv_SE.json +++ b/plugins/secret-sources/locales/translated/sv_SE.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "hint": "Du kan klistra in en 1Password-referens (op://vault/item/field) istället för hemligheten. Den hämtas från din hemliga källa när du ansluter.", + "manage": "Hantera hemliga källor", + "title": "Hemliga källor", + "description": "Externa lösenordshanterare Termix läser hemligheter från vid anslutningstillfället. För närvarande 1Password Connect (egenhostad). Åtkomsttoken lagras krypterad med din datanyckel.", + "new": "Ny källa", + "nameLabel": "Vänligt namn", + "urlLabel": "Anslut server-URL", + "tokenLabel": "Anslut åtkomsttoken", + "tokenKeep": "Lämna tomt för att behålla den aktuella token", + "sharedLabel": "Dela med alla användare (endast administratörer, löses medan du är inloggad)", + "shared": "delad", + "test": "Testa", + "testOk": "Ansluten, {{count}} valv synliga", + "testFailed": "Anslutningstestet misslyckades", + "required": "Namn, server-URL och token krävs", + "saved": "Hemlig källa sparad", + "deleted": "Hemlig källa raderad", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Tillåtelselista för privat slutpunkt", + "description": "Privata eller loopback-värdar som en hemlig källa kan nå, en per rad. En självhostad 1Password Connect-server behöver vanligtvis sin egen adress listad här." } } } diff --git a/plugins/secret-sources/locales/translated/th_TH.json b/plugins/secret-sources/locales/translated/th_TH.json index e76b1abc3..3a43d63b6 100644 --- a/plugins/secret-sources/locales/translated/th_TH.json +++ b/plugins/secret-sources/locales/translated/th_TH.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "hint": "คุณสามารถวางข้อมูลอ้างอิง 1Password (op://vault/item/field) แทนรหัสลับได้ ระบบจะดึงข้อมูลนี้จากแหล่งข้อมูลลับของคุณเมื่อเชื่อมต่อ", + "manage": "จัดการแหล่งข้อมูลลับ", + "title": "แหล่งข่าวลับ", + "description": "โปรแกรมจัดการรหัสผ่านภายนอก Termix จะอ่านข้อมูลลับจากอุปกรณ์เมื่อเชื่อมต่อ ปัจจุบันคือ 1Password Connect (แบบติดตั้งเอง) โทเค็นการเข้าถึงจะถูกจัดเก็บในรูปแบบเข้ารหัสพร้อมกับคีย์ข้อมูลของคุณ", + "new": "แหล่งข้อมูลใหม่", + "nameLabel": "ชื่อที่เป็นมิตร", + "urlLabel": "เชื่อมต่อ URL ของเซิร์ฟเวอร์", + "tokenLabel": "เชื่อมต่อโทเค็นการเข้าถึง", + "tokenKeep": "เว้นว่างไว้เพื่อคงโทเค็นปัจจุบันไว้", + "sharedLabel": "แชร์กับผู้ใช้ทั้งหมด (เฉพาะผู้ดูแลระบบเท่านั้น ใช้งานได้เฉพาะเมื่อคุณเข้าสู่ระบบอยู่)", + "shared": "แชร์", + "test": "ทดสอบ", + "testOk": "เชื่อมต่อแล้ว, มองเห็นห้องนิรภัย {{count}} ห้อง", + "testFailed": "การทดสอบการเชื่อมต่อล้มเหลว", + "required": "จำเป็นต้องระบุชื่อ ที่อยู่ URL ของเซิร์ฟเวอร์ และโทเค็น", + "saved": "แหล่งข่าวลับถูกบันทึกไว้แล้ว", + "deleted": "แหล่งข่าวลับถูกลบแล้ว", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "รายการอนุญาตปลายทางส่วนตัว", + "description": "โฮสต์ส่วนตัวหรือโฮสต์แบบลูปแบ็กที่แหล่งข้อมูลลับสามารถเข้าถึงได้ หนึ่งโฮสต์ต่อบรรทัด โดยปกติแล้วเซิร์ฟเวอร์ 1Password Connect ที่ติดตั้งเองจะต้องมีที่อยู่ของตัวเองระบุไว้ที่นี่" } } } diff --git a/plugins/secret-sources/locales/translated/tr_TR.json b/plugins/secret-sources/locales/translated/tr_TR.json index b211bc68a..4157eb910 100644 --- a/plugins/secret-sources/locales/translated/tr_TR.json +++ b/plugins/secret-sources/locales/translated/tr_TR.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Gizli anahtar yerine 1Password referansını (op://vault/item/field) yapıştırabilirsiniz. Bağlantı kurulurken gizli anahtar kaynağınızdan alınır.", + "manage": "Gizli kaynakları yönetin", + "title": "Gizli kaynaklar", + "description": "Termix, bağlantı kurulduğunda harici parola yöneticilerinden gizli bilgileri okur. Şu anda 1Password Connect (kendi sunucunuzda barındırılan) kullanılmaktadır. Erişim belirteci, veri anahtarınızla şifrelenmiş olarak saklanır.", + "new": "Yeni kaynak", + "nameLabel": "Dostça isim", + "urlLabel": "Sunucu URL'sine bağlanın", + "tokenLabel": "Bağlantı erişim belirteci", + "tokenKeep": "Geçerli belirteci korumak için boş bırakın.", + "sharedLabel": "Tüm kullanıcılarla paylaş (yalnızca yöneticiler, oturumunuz açıkken çözümlenir)", "shared": "paylaşılan", "test": "Test Et", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Bağlı, {{count}} kasa görünür durumda", + "testFailed": "Bağlantı testi başarısız oldu.", + "required": "İsim, sunucu URL'si ve belirteç (token) gereklidir.", + "saved": "Gizli kaynak kaydedildi.", + "deleted": "Gizli kaynak silindi", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Özel uç nokta izin listesi", + "description": "Gizli bir kaynağın erişebileceği özel veya geri döngü sunucuları, her satıra bir tane. Kendi kendine barındırılan bir 1Password Connect sunucusunun genellikle burada listelenen kendi adresine ihtiyacı vardır." } } } diff --git a/plugins/secret-sources/locales/translated/uk_UA.json b/plugins/secret-sources/locales/translated/uk_UA.json index e76b1abc3..5e309d67e 100644 --- a/plugins/secret-sources/locales/translated/uk_UA.json +++ b/plugins/secret-sources/locales/translated/uk_UA.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", - "shared": "shared", - "test": "Test", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "hint": "Ви можете вставити посилання на 1Password (op://vault/item/field) замість секретного коду. Воно отримується з вашого секретного джерела під час підключення.", + "manage": "Керування секретними джерелами", + "title": "Секретні джерела", + "description": "Зовнішні менеджери паролів Termix зчитують секрети під час підключення. Наразі це 1Password Connect (власний хостинг). Токен доступу зберігається в зашифрованому вигляді з вашим ключем даних.", + "new": "Нове джерело", + "nameLabel": "Зрозуміле ім'я", + "urlLabel": "URL-адреса сервера підключення", + "tokenLabel": "Підключити токен доступу", + "tokenKeep": "Залиште поле порожнім, щоб зберегти поточний токен", + "sharedLabel": "Поділитися з усіма користувачами (лише для адміністраторів, вирішується, коли ви ввійшли в систему)", + "shared": "спільний", + "test": "Тест", + "testOk": "Підключено, видимих сховищ {{count}}", + "testFailed": "Перевірка з'єднання не вдалася", + "required": "Ім'я, URL-адреса сервера та токен обов'язкові", + "saved": "Секретне джерело збережено", + "deleted": "Секретне джерело видалено", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Список дозволених приватних кінцевих точок", + "description": "Приватні або петлеві хости, до яких може звернутися секретне джерело, по одному на рядок. Власному серверу 1Password Connect зазвичай потрібна власна адреса, вказана тут." } } } diff --git a/plugins/secret-sources/locales/translated/vi_VN.json b/plugins/secret-sources/locales/translated/vi_VN.json index c4ad29c15..46be68356 100644 --- a/plugins/secret-sources/locales/translated/vi_VN.json +++ b/plugins/secret-sources/locales/translated/vi_VN.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "Bạn có thể dán mã tham chiếu 1Password (op://vault/item/field) thay cho mã bí mật. Mã này sẽ được lấy từ nguồn mã bí mật của bạn khi kết nối.", + "manage": "Quản lý các nguồn tin mật", + "title": "Nguồn tin bí mật", + "description": "Termix đọc các mã bí mật từ các trình quản lý mật khẩu bên ngoài khi kết nối. Hiện tại là 1Password Connect (tự lưu trữ). Mã truy cập được lưu trữ dưới dạng mã hóa cùng với khóa dữ liệu của bạn.", + "new": "Nguồn tin mới", + "nameLabel": "Tên thân thiện", + "urlLabel": "URL kết nối máy chủ", + "tokenLabel": "Mã truy cập kết nối", + "tokenKeep": "Để trống nếu muốn giữ nguyên mã thông báo hiện tại.", + "sharedLabel": "Chia sẻ với tất cả người dùng (chỉ quản trị viên, thao tác này sẽ được thực hiện khi bạn đang đăng nhập)", "shared": "được chia sẻ", "test": "Kiểm tra", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "Đã kết nối, {{count}} kho lưu trữ đang hiển thị", + "testFailed": "Kiểm tra kết nối thất bại", + "required": "Tên người dùng, URL máy chủ và mã thông báo là bắt buộc.", + "saved": "Nguồn bí mật đã được lưu", + "deleted": "Nguồn tin bí mật đã bị xóa.", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "Danh sách cho phép điểm cuối riêng tư", + "description": "Các máy chủ riêng tư hoặc máy chủ vòng lặp mà nguồn bí mật có thể truy cập được, mỗi dòng một máy chủ. Máy chủ 1Password Connect tự lưu trữ thường cần có địa chỉ riêng được liệt kê ở đây." } } } diff --git a/plugins/secret-sources/locales/translated/zh_CN.json b/plugins/secret-sources/locales/translated/zh_CN.json index 3d3c06f8c..09b294a57 100644 --- a/plugins/secret-sources/locales/translated/zh_CN.json +++ b/plugins/secret-sources/locales/translated/zh_CN.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "您可以粘贴 1Password 引用(op://vault/item/field)而不是密钥。连接时,系统会从您的密钥源中获取该引用。", + "manage": "管理秘密来源", + "title": "秘密消息来源", + "description": "外部密码管理器 Termix 会在连接时读取密钥。目前支持 1Password Connect(自托管)。访问令牌会使用您的数据密钥进行加密存储。", + "new": "新来源", + "nameLabel": "友好名称", + "urlLabel": "连接服务器 URL", + "tokenLabel": "连接访问令牌", + "tokenKeep": "留空以保留当前令牌", + "sharedLabel": "共享给所有用户(仅限管理员,登录后生效)", "shared": "已共享", "test": "测试", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "已连接, {{count}} 保险库可见", + "testFailed": "连接测试失败", + "required": "需要提供名称、服务器 URL 和令牌。", + "saved": "秘密来源已保存", + "deleted": "秘密来源已删除", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "私有端点允许列表", + "description": "私有或回环地址,秘密来源可以访问,每行一个。自托管的 1Password Connect 服务器通常需要在此处列出其自己的地址。" } } } diff --git a/plugins/secret-sources/locales/translated/zh_TW.json b/plugins/secret-sources/locales/translated/zh_TW.json index 26195b90c..7716e824e 100644 --- a/plugins/secret-sources/locales/translated/zh_TW.json +++ b/plugins/secret-sources/locales/translated/zh_TW.json @@ -1,26 +1,26 @@ { - "hint": "You can paste a 1Password reference (op://vault/item/field) instead of the secret. It is fetched from your secret source when connecting.", - "manage": "Manage secret sources", - "title": "Secret sources", - "description": "External password managers Termix reads secrets from at connect time. Currently 1Password Connect (self-hosted). The access token is stored encrypted with your data key.", - "new": "New source", - "nameLabel": "Friendly name", - "urlLabel": "Connect server URL", - "tokenLabel": "Connect access token", - "tokenKeep": "Leave empty to keep the current token", - "sharedLabel": "Share with all users (admins only, resolves while you are signed in)", + "hint": "您可以貼上 1Password 引用(op://vault/item/field)而不是金鑰。連線時,系統會從您的金鑰來源取得該引用。", + "manage": "管理秘密來源", + "title": "秘密消息來源", + "description": "外部密碼管理器 Termix 會在連線時讀取金鑰。目前支援 1Password Connect(自架)。存取令牌會使用您的資料密鑰進行加密儲存。", + "new": "新來源", + "nameLabel": "友善名稱", + "urlLabel": "連接伺服器 URL", + "tokenLabel": "連接訪問令牌", + "tokenKeep": "留空以保留當前令牌", + "sharedLabel": "分享給所有使用者(僅限管理員,登入後生效)", "shared": "已共用", "test": "測試", - "testOk": "Connected, {{count}} vault(s) visible", - "testFailed": "Connection test failed", - "required": "Name, server URL and token are required", - "saved": "Secret source saved", - "deleted": "Secret source deleted", + "testOk": "已連接, {{count}} 保險庫可見", + "testFailed": "連線測試失敗", + "required": "需要提供名稱、伺服器 URL 和令牌。", + "saved": "秘密來源已儲存", + "deleted": "秘密來源已刪除", "settings": { "admin": { "privateEndpoints": { - "label": "Private endpoint allowlist", - "description": "Private or loopback hosts a secret source may reach, one per line. A self-hosted 1Password Connect server usually needs its own address listed here." + "label": "私有端點允許列表", + "description": "私有或回環位址,秘密來源可以訪問,每行一個。自託管的 1Password Connect 伺服器通常需要在此列出自己的位址。" } } } diff --git a/plugins/serial/locales/translated/bn_BD.json b/plugins/serial/locales/translated/bn_BD.json index bf4b7de0c..d739155e9 100644 --- a/plugins/serial/locales/translated/bn_BD.json +++ b/plugins/serial/locales/translated/bn_BD.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "সিরিয়াল" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", - "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "title": "সিরিয়াল", + "portLabel": "বন্দর", + "portPlaceholder": "/dev/ttyUSB0 অথবা COM3", + "baudRateLabel": "বড রেট", + "dataBitsLabel": "ডেটা", + "stopBitsLabel": "থামুন", + "parityLabel": "সমতা", + "parityNone": "কোনোটিই না", + "parityEven": "এমনকি", + "parityOdd": "অদ্ভুত", + "connect": "সিরিয়ালের সাথে সংযোগ করুন", + "disconnect": "সংযোগ বিচ্ছিন্ন করুন", + "refreshPorts": "পোর্টগুলি রিফ্রেশ করুন", + "connected": "{{path}} এর সাথে {{baud}} বাউডে সংযুক্ত।", + "disconnected": "সিরিয়াল পোর্ট সংযোগ বিচ্ছিন্ন", + "connectionError": "সিরিয়াল পোর্ট খুলতে ব্যর্থ হয়েছে", + "wsError": "ওয়েব সকেট ত্রুটি", + "errorNoServerUrl": "কোন সার্ভার URL কনফিগার করা নেই", + "notSupportedTitle": "সিরিয়াল সমর্থিত নয়", + "notSupported": "সিরিয়াল সংযোগের জন্য ওয়েব সিরিয়াল এপিআই সমর্থনসহ একটি ব্রাউজার (ক্রোম, এজ, বা ফায়ারফক্স ১৫১+), অথবা টারমিক্স ডেস্কটপ অ্যাপ প্রয়োজন।", + "hideHint": "আপনি ইউজার প্রোফাইল > অ্যাপিয়ারেন্স > সাইডবার > নেভিগেশন-এর অধীনে সিরিয়াল ট্যাবটি লুকাতে পারেন।", + "browserPickerHint": "কানেক্ট-এ ক্লিক করলে আপনার ব্রাউজারে ডিভাইসটি বেছে নেওয়ার জন্য একটি পোর্ট পিকার খুলবে।" } } diff --git a/plugins/serial/locales/translated/id_ID.json b/plugins/serial/locales/translated/id_ID.json index bf4b7de0c..b44424ed3 100644 --- a/plugins/serial/locales/translated/id_ID.json +++ b/plugins/serial/locales/translated/id_ID.json @@ -4,26 +4,26 @@ }, "serial": { "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", + "portLabel": "Pelabuhan", + "portPlaceholder": "/dev/ttyUSB0 atau COM3", + "baudRateLabel": "Kecepatan Baud", "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "stopBitsLabel": "Berhenti", + "parityLabel": "Keseimbangan", + "parityNone": "Tidak ada", + "parityEven": "Bahkan", + "parityOdd": "Aneh", + "connect": "Hubungkan ke Serial", + "disconnect": "Memutuskan", + "refreshPorts": "Penyegaran port", + "connected": "Terhubung ke {{path}} pada kecepatan {{baud}} baud", + "disconnected": "Port serial terputus", + "connectionError": "Gagal membuka port serial", + "wsError": "Kesalahan WebSocket", + "errorNoServerUrl": "Tidak ada URL server yang dikonfigurasi.", + "notSupportedTitle": "Nomor Seri Tidak Didukung", + "notSupported": "Koneksi serial memerlukan browser dengan dukungan Web Serial API (Chrome, Edge, atau Firefox 151+), atau aplikasi desktop Termix.", + "hideHint": "Anda dapat menyembunyikan tab Serial di bawah Profil Pengguna > Tampilan > Bilah Samping > Navigasi.", + "browserPickerHint": "Klik Sambungkan dan browser Anda akan membuka pemilih port untuk memilih perangkat." } } diff --git a/plugins/serial/locales/translated/no_NO.json b/plugins/serial/locales/translated/no_NO.json index 606a3fdba..068df0e16 100644 --- a/plugins/serial/locales/translated/no_NO.json +++ b/plugins/serial/locales/translated/no_NO.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "Seriell" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", + "title": "Seriell", + "portLabel": "Havn", + "portPlaceholder": "/dev/ttyUSB0 eller COM3", + "baudRateLabel": "Baudhastighet", "dataBitsLabel": "Data", "stopBitsLabel": "Stopp", - "parityLabel": "Parity", + "parityLabel": "Paritet", "parityNone": "Ingen", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", + "parityEven": "Til og med", + "parityOdd": "Merkelig", + "connect": "Koble til seriell", "disconnect": "Koble fra", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "refreshPorts": "Oppdater porter", + "connected": "Koblet til {{path}} ved {{baud}} baud", + "disconnected": "Seriell port frakoblet", + "connectionError": "Klarte ikke å åpne serieporten", + "wsError": "WebSocket-feil", + "errorNoServerUrl": "Ingen server-URL konfigurert", + "notSupportedTitle": "Serienummer støttes ikke", + "notSupported": "Serielle tilkoblinger krever en nettleser med støtte for Web Serial API (Chrome, Edge eller Firefox 151+), eller Termix-skrivebordsappen.", + "hideHint": "Du kan skjule Seriell-fanen under Brukerprofil > Utseende > Sidefelt > Navigasjon.", + "browserPickerHint": "Klikk på Koble til, så åpner nettleseren din en portvelger der du kan velge enheten." } } diff --git a/plugins/serial/locales/translated/pt_BR.json b/plugins/serial/locales/translated/pt_BR.json index 5ff173867..83c97828d 100644 --- a/plugins/serial/locales/translated/pt_BR.json +++ b/plugins/serial/locales/translated/pt_BR.json @@ -5,25 +5,25 @@ "serial": { "title": "Serial", "portLabel": "Porta", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", - "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", + "portPlaceholder": "/dev/ttyUSB0 ou COM3", + "baudRateLabel": "Taxa de transmissão (Baud rate)", + "dataBitsLabel": "Dados", + "stopBitsLabel": "Parar", + "parityLabel": "Paridade", "parityNone": "Nenhum", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", + "parityEven": "Até", + "parityOdd": "Chance", + "connect": "Conectar à porta serial", "disconnect": "Desconectar", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "refreshPorts": "Atualizar portas", + "connected": "Conectado a {{path}} na taxa de transmissão de {{baud}}", + "disconnected": "Porta serial desconectada", + "connectionError": "Falha ao abrir a porta serial", + "wsError": "Erro no WebSocket", + "errorNoServerUrl": "Nenhuma URL de servidor configurada", + "notSupportedTitle": "Serial não suportado", + "notSupported": "As conexões seriais exigem um navegador com suporte à API Web Serial (Chrome, Edge ou Firefox 151+) ou o aplicativo Termix para desktop.", + "hideHint": "Você pode ocultar a guia Serial em Perfil do Usuário > Aparência > Barra lateral > Navegação.", + "browserPickerHint": "Clique em Conectar e seu navegador abrirá um seletor de portas para que você escolha o dispositivo." } } diff --git a/plugins/serial/locales/translated/sr_SP.json b/plugins/serial/locales/translated/sr_SP.json index bf4b7de0c..0f7d87efe 100644 --- a/plugins/serial/locales/translated/sr_SP.json +++ b/plugins/serial/locales/translated/sr_SP.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "Серијски" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", - "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "title": "Серијски", + "portLabel": "Лука", + "portPlaceholder": "/dev/ttyUSB0 или COM3", + "baudRateLabel": "Брзина преноса података", + "dataBitsLabel": "Подаци", + "stopBitsLabel": "Заустави", + "parityLabel": "Паритет", + "parityNone": "Ниједан", + "parityEven": "Чак", + "parityOdd": "Чудно", + "connect": "Повежи се са серијским", + "disconnect": "Прекини везу", + "refreshPorts": "Освежи портове", + "connected": "Повезано са {{path}} брзином {{baud}} бауда", + "disconnected": "Серијски порт је искључен", + "connectionError": "Отварање серијског порта није успело", + "wsError": "Грешка WebSocket-а", + "errorNoServerUrl": "Није конфигурисан URL сервера", + "notSupportedTitle": "Серијски број није подржан", + "notSupported": "Серијске везе захтевају прегледач са подршком за Web Serial API (Chrome, Edge или Firefox 151+) или Termix десктоп апликацију.", + "hideHint": "Картицу Серијски број можете сакрити под Кориснички профил > Изглед > Бочна трака > Навигација.", + "browserPickerHint": "Кликните на Повежи се и ваш прегледач ће отворити бирач портова за избор уређаја." } } diff --git a/plugins/serial/locales/translated/sv_SE.json b/plugins/serial/locales/translated/sv_SE.json index bf4b7de0c..3b565d4bd 100644 --- a/plugins/serial/locales/translated/sv_SE.json +++ b/plugins/serial/locales/translated/sv_SE.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "Serie" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", + "title": "Serie", + "portLabel": "Hamn", + "portPlaceholder": "/dev/ttyUSB0 eller COM3", + "baudRateLabel": "Baudhastighet", "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "stopBitsLabel": "Stopp", + "parityLabel": "Paritet", + "parityNone": "Ingen", + "parityEven": "Även", + "parityOdd": "Udda", + "connect": "Anslut till seriellt", + "disconnect": "Koppla från", + "refreshPorts": "Uppdatera portar", + "connected": "Ansluten till {{path}} vid {{baud}} baud", + "disconnected": "Seriell port frånkopplad", + "connectionError": "Misslyckades med att öppna serieporten", + "wsError": "WebSocket-fel", + "errorNoServerUrl": "Ingen server-URL konfigurerad", + "notSupportedTitle": "Seriellt stöds inte", + "notSupported": "Seriella anslutningar kräver en webbläsare med stöd för Web Serial API (Chrome, Edge eller Firefox 151+), eller Termix-skrivbordsappen.", + "hideHint": "Du kan dölja fliken Seriell under Användarprofil > Utseende > Sidofält > Navigering.", + "browserPickerHint": "Klicka på Anslut så öppnar din webbläsare en portväljare där du kan välja enheten." } } diff --git a/plugins/serial/locales/translated/th_TH.json b/plugins/serial/locales/translated/th_TH.json index bf4b7de0c..4c74c23dc 100644 --- a/plugins/serial/locales/translated/th_TH.json +++ b/plugins/serial/locales/translated/th_TH.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "ซีเรียล" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", - "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "title": "ซีเรียล", + "portLabel": "ท่าเรือ", + "portPlaceholder": "/dev/ttyUSB0 หรือ COM3", + "baudRateLabel": "อัตราบิต", + "dataBitsLabel": "ข้อมูล", + "stopBitsLabel": "หยุด", + "parityLabel": "ความเท่าเทียมกัน", + "parityNone": "ไม่มี", + "parityEven": "สม่ำเสมอ", + "parityOdd": "แปลก", + "connect": "เชื่อมต่อกับพอร์ตอนุกรม", + "disconnect": "ตัดการเชื่อมต่อ", + "refreshPorts": "พอร์ตรีเฟรช", + "connected": "เชื่อมต่อกับ {{path}} ที่ความเร็ว {{baud}} บอด", + "disconnected": "พอร์ตอนุกรมถูกตัดการเชื่อมต่อ", + "connectionError": "ไม่สามารถเปิดพอร์ตอนุกรมได้", + "wsError": "ข้อผิดพลาด WebSocket", + "errorNoServerUrl": "ไม่ได้กำหนดค่า URL เซิร์ฟเวอร์", + "notSupportedTitle": "ไม่รองรับหมายเลขซีเรียล", + "notSupported": "การเชื่อมต่อแบบอนุกรมจำเป็นต้องใช้เบราว์เซอร์ที่รองรับ Web Serial API (Chrome, Edge หรือ Firefox เวอร์ชัน 151 ขึ้นไป) หรือแอปพลิเคชัน Termix บนเดสก์ท็อป", + "hideHint": "คุณสามารถซ่อนแท็บ Serial ได้ที่ โปรไฟล์ผู้ใช้ > ลักษณะที่ปรากฏ > แถบด้านข้าง > การนำทาง", + "browserPickerHint": "คลิก \"เชื่อมต่อ\" แล้วเบราว์เซอร์ของคุณจะเปิดตัวเลือกพอร์ตเพื่อเลือกอุปกรณ์" } } diff --git a/plugins/serial/locales/translated/uk_UA.json b/plugins/serial/locales/translated/uk_UA.json index bf4b7de0c..3487ac1f5 100644 --- a/plugins/serial/locales/translated/uk_UA.json +++ b/plugins/serial/locales/translated/uk_UA.json @@ -1,29 +1,29 @@ { "nav": { - "serial": "Serial" + "serial": "Серійний" }, "serial": { - "title": "Serial", - "portLabel": "Port", - "portPlaceholder": "/dev/ttyUSB0 or COM3", - "baudRateLabel": "Baud Rate", - "dataBitsLabel": "Data", - "stopBitsLabel": "Stop", - "parityLabel": "Parity", - "parityNone": "None", - "parityEven": "Even", - "parityOdd": "Odd", - "connect": "Connect to Serial", - "disconnect": "Disconnect", - "refreshPorts": "Refresh ports", - "connected": "Connected to {{path}} at {{baud}} baud", - "disconnected": "Serial port disconnected", - "connectionError": "Failed to open serial port", - "wsError": "WebSocket error", - "errorNoServerUrl": "No server URL configured", - "notSupportedTitle": "Serial Not Supported", - "notSupported": "Serial connections require a browser with Web Serial API support (Chrome, Edge, or Firefox 151+), or the Termix desktop app.", - "hideHint": "You can hide the Serial tab under User Profile > Appearance > Sidebar > Navigation.", - "browserPickerHint": "Click Connect and your browser will open a port picker to choose the device." + "title": "Серійний", + "portLabel": "Порт", + "portPlaceholder": "/dev/ttyUSB0 або COM3", + "baudRateLabel": "Швидкість передачі даних", + "dataBitsLabel": "Дані", + "stopBitsLabel": "СТІЙ", + "parityLabel": "Паритет", + "parityNone": "Жоден", + "parityEven": "Навіть", + "parityOdd": "Дивний", + "connect": "Підключення до послідовного порту", + "disconnect": "Відключитися", + "refreshPorts": "Оновити порти", + "connected": "Підключено до {{path}} зі швидкістю {{baud}} бод", + "disconnected": "Послідовний порт відключено", + "connectionError": "Не вдалося відкрити послідовний порт", + "wsError": "Помилка WebSocket", + "errorNoServerUrl": "URL-адреса сервера не налаштована", + "notSupportedTitle": "Серійний номер не підтримується", + "notSupported": "Для послідовних з’єднань потрібен браузер із підтримкою Web Serial API (Chrome, Edge або Firefox 151+) або настільний додаток Termix.", + "hideHint": "Ви можете приховати вкладку «Серійний номер» у розділі «Профіль користувача» > «Зовнішній вигляд» > «Бічна панель» > «Навігація».", + "browserPickerHint": "Натисніть «Підключитися», і ваш браузер відкриє вибір порту для вибору пристрою." } } diff --git a/plugins/session-recording/locales/translated/bn_BD.json b/plugins/session-recording/locales/translated/bn_BD.json index 09e0d60bb..cfac288de 100644 --- a/plugins/session-recording/locales/translated/bn_BD.json +++ b/plugins/session-recording/locales/translated/bn_BD.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "সেশন লগ" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "সেশন রেকর্ডিং", + "enableSessionRecordingDesc": "পরবর্তী পর্যালোচনার জন্য টার্মিনাল সেশনের আউটপুট রেকর্ড করুন।" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "সেশন রেকর্ডিং দেখুন", + "description": "আপনার নিজের সেশন রেকর্ডিংগুলো দেখুন এবং প্লেব্যাক করুন।" } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "ধারণক্ষমতা (দিন)", + "description": "একটি সেশন রেকর্ডিং স্বয়ংক্রিয়ভাবে মুছে যাওয়ার আগে কতক্ষণ সংরক্ষিত থাকে।" } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "সেশন রেকর্ডিং সক্ষম করুন", + "description": "এই হোস্টের জন্য টার্মিনাল আউটপুট রেকর্ড করুন, যাতে আপনি পরে এটি প্লেব্যাক বা ডাউনলোড করতে পারেন।" } } }, "terminalStatus": { - "recording": "Recording" + "recording": "রেকর্ডিং" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "title": "সেশন লগ", + "noLogs": "এখনো কোনো সেশন লগ নেই", + "noLogsDesc": "রেকর্ডিং শুরু করতে কোনো হোস্টে সেশন লগিং চালু করুন।", + "duration": "সময়কাল", + "viewLog": "লগ দেখুন", + "downloadLog": "ডাউনলোড করুন", + "downloadAsText": "টেক্সট হিসেবে ডাউনলোড করুন", + "deleteLog": "মুছে ফেলুন", + "confirmDelete": "এই সেশন লগটি মুছে ফেলবেন?", + "confirmDeleteDesc": "এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।", + "copyContent": "অনুলিপি", + "copied": "অনুলিপি করা হয়েছে!", + "loadError": "সেশন লগ লোড করতে ব্যর্থ হয়েছে", + "deleteError": "সেশন লগ মুছে ফেলতে ব্যর্থ হয়েছে", + "filterByHost": "হোস্ট দ্বারা ফিল্টার করুন...", + "back": "ফিরে যান", + "empty": "(খালি)", + "noResults": "\"{{query}} \" এর জন্য কোন ফলাফল পাওয়া যায়নি", + "hostFallback": "হোস্ট {{id}}", + "sessionFallback": "সেশন {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "রেকর্ডিং টাইমলাইন", + "speed": "প্লেব্যাক গতি", + "play": "রেকর্ডিং চালান", + "pause": "রেকর্ডিং থামান" } } diff --git a/plugins/session-recording/locales/translated/hi_IN.json b/plugins/session-recording/locales/translated/hi_IN.json index 9631fff31..7062662a2 100644 --- a/plugins/session-recording/locales/translated/hi_IN.json +++ b/plugins/session-recording/locales/translated/hi_IN.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "सेशन की रिकॉर्डिंग देखें", + "description": "अपने सेशन की रिकॉर्डिंग देखें और उन्हें दोबारा चलाएं।" } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "प्रतिधारण अवधि (दिनों में)", + "description": "सेशन रिकॉर्डिंग को स्वचालित रूप से डिलीट होने से पहले कितने समय तक रखा जाता है।" } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "सेशन रिकॉर्डिंग चालू करें", + "description": "इस होस्ट के टर्मिनल आउटपुट को रिकॉर्ड करें ताकि आप इसे बाद में प्लेबैक कर सकें या डाउनलोड कर सकें।" } } }, "terminalStatus": { - "recording": "Recording" + "recording": "रिकॉर्डिंग" }, "sessionLogs": { "title": "सेशन लॉग्स", @@ -36,7 +36,7 @@ "duration": "अवधि", "viewLog": "लॉग देखें", "downloadLog": "डाउनलोड करें", - "downloadAsText": "Download as text", + "downloadAsText": "टेक्स्ट के रूप में डाउनलोड करें", "deleteLog": "हटाएं", "confirmDelete": "क्या इस सेशन लॉग को हटाएं?", "confirmDeleteDesc": "यह क्रिया वापस नहीं ली जा सकती।", @@ -46,15 +46,15 @@ "deleteError": "सेशन लॉग हटाने में विफल", "filterByHost": "होस्ट द्वारा फ़िल्टर करें...", "back": "वापस", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "empty": "(खाली)", + "noResults": "\"{{query}} \" के लिए कोई परिणाम नहीं मिले", + "hostFallback": "मेज़बान {{id}}", + "sessionFallback": "सत्र {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "रिकॉर्डिंग समयरेखा", + "speed": "प्लेबैक गति", + "play": "रिकॉर्डिंग चलाएं", + "pause": "रिकॉर्डिंग रोकें" } } diff --git a/plugins/session-recording/locales/translated/id_ID.json b/plugins/session-recording/locales/translated/id_ID.json index 09e0d60bb..b47457ae9 100644 --- a/plugins/session-recording/locales/translated/id_ID.json +++ b/plugins/session-recording/locales/translated/id_ID.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "Log Sesi" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Rekaman Sesi", + "enableSessionRecordingDesc": "Rekam output sesi terminal untuk ditinjau nanti." }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Lihat rekaman sesi", + "description": "Lihat dan putar kembali rekaman sesi Anda sendiri." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Retensi (hari)", + "description": "Berapa lama rekaman sesi disimpan sebelum dihapus secara otomatis." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Aktifkan perekaman sesi", + "description": "Rekam output terminal untuk host ini agar Anda dapat memutarnya kembali atau mengunduhnya nanti." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Rekaman" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "title": "Log Sesi", + "noLogs": "Belum ada log sesi.", + "noLogsDesc": "Aktifkan pencatatan sesi pada host untuk memulai perekaman.", + "duration": "Lamanya", + "viewLog": "Lihat log", + "downloadLog": "Unduh", + "downloadAsText": "Unduh sebagai teks", + "deleteLog": "Menghapus", + "confirmDelete": "Hapus log sesi ini?", + "confirmDeleteDesc": "Tindakan ini tidak dapat dibatalkan.", + "copyContent": "Menyalin", + "copied": "Disalin!", + "loadError": "Gagal memuat log sesi", + "deleteError": "Gagal menghapus log sesi", + "filterByHost": "Saring berdasarkan host...", + "back": "Kembali", + "empty": "(kosong)", + "noResults": "Tidak ada hasil untuk \"{{query}}\"", + "hostFallback": "Tuan rumah {{id}}", + "sessionFallback": "Sesi {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Garis waktu perekaman", + "speed": "Kecepatan pemutaran", + "play": "Putar rekaman", + "pause": "Jeda perekaman" } } diff --git a/plugins/session-recording/locales/translated/no_NO.json b/plugins/session-recording/locales/translated/no_NO.json index b0ec44c01..8f62d2a83 100644 --- a/plugins/session-recording/locales/translated/no_NO.json +++ b/plugins/session-recording/locales/translated/no_NO.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "Øktlogger" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Øktopptak", + "enableSessionRecordingDesc": "Ta opp utdata fra terminaløkten for senere gjennomgang" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Se opptak av økter", + "description": "Se og spill av dine egne øktopptak." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Oppbevaring (dager)", + "description": "Hvor lenge et øktopptak lagres før det slettes automatisk." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Aktiver øktopptak", + "description": "Spill inn terminalutdata for denne verten, slik at du kan spille det av eller laste det ned senere." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Innspilling" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", + "title": "Øktlogger", + "noLogs": "Ingen øktlogger ennå", + "noLogsDesc": "Aktiver øktlogging på en vert for å starte opptaket", + "duration": "Varighet", + "viewLog": "Vis logg", "downloadLog": "Last ned", - "downloadAsText": "Download as text", + "downloadAsText": "Last ned som tekst", "deleteLog": "Slett", - "confirmDelete": "Delete this session log?", + "confirmDelete": "Slette denne øktloggen?", "confirmDeleteDesc": "Denne handlingen kan ikke angres.", "copyContent": "Kopier", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", + "copied": "Kopiert!", + "loadError": "Kunne ikke laste inn øktlogger", + "deleteError": "Kunne ikke slette øktloggen", + "filterByHost": "Filtrer etter vert...", "back": "Tilbake", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "empty": "(tømme)", + "noResults": "Ingen resultater for «{{query}}»", + "hostFallback": "Vert {{id}}", + "sessionFallback": "Økt {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Tidslinje for opptak", + "speed": "Avspillingshastighet", + "play": "Spill av opptaket", + "pause": "Sett opptaket på pause" } } diff --git a/plugins/session-recording/locales/translated/pl_PL.json b/plugins/session-recording/locales/translated/pl_PL.json index 92ac7f897..acc8c20d3 100644 --- a/plugins/session-recording/locales/translated/pl_PL.json +++ b/plugins/session-recording/locales/translated/pl_PL.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Zobacz nagrania sesji", + "description": "Oglądaj i odtwarzaj własne nagrania sesji." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Retencja (dni)", + "description": "Jak długo przechowywane jest nagranie sesji, zanim zostanie automatycznie usunięte." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Włącz nagrywanie sesji", + "description": "Nagraj dane wyjściowe terminala dla tego hosta, aby móc je później odtworzyć lub pobrać." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Nagranie" }, "sessionLogs": { "title": "Logi sesji", @@ -47,14 +47,14 @@ "filterByHost": "Filtruj według hosta...", "back": "Wstecz", "empty": "(pusty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "Brak wyników dla „{{query}}”", + "hostFallback": "Gospodarz {{id}}", + "sessionFallback": "Sesja {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Oś czasu nagrywania", + "speed": "Prędkość odtwarzania", + "play": "Odtwórz nagranie", + "pause": "Wstrzymaj nagrywanie" } } diff --git a/plugins/session-recording/locales/translated/pt_BR.json b/plugins/session-recording/locales/translated/pt_BR.json index 1b9176bb0..81493c063 100644 --- a/plugins/session-recording/locales/translated/pt_BR.json +++ b/plugins/session-recording/locales/translated/pt_BR.json @@ -3,58 +3,58 @@ "sessionLogs": "Logs de sessão" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Gravação da sessão", + "enableSessionRecordingDesc": "Registre a saída da sessão do terminal para revisão posterior." }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Veja as gravações das sessões", + "description": "Veja e reproduza as gravações das suas próprias sessões." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Retenção (dias)", + "description": "Por quanto tempo uma gravação de sessão é mantida antes de ser excluída automaticamente." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Ativar gravação de sessão", + "description": "Grave a saída do terminal para este host para que você possa reproduzi-la ou baixá-la posteriormente." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Gravação" }, "sessionLogs": { "title": "Logs de sessão", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", + "noLogs": "Ainda não há registros de sessão.", + "noLogsDesc": "Habilite o registro de sessão em um host para iniciar a gravação.", + "duration": "Duração", + "viewLog": "Ver registro", "downloadLog": "Download", - "downloadAsText": "Download as text", + "downloadAsText": "Baixar como texto", "deleteLog": "Apagar", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", + "confirmDelete": "Excluir este registro de sessão?", + "confirmDeleteDesc": "Esta ação não pode ser desfeita.", "copyContent": "Copiar", "copied": "Copiado!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", + "loadError": "Falha ao carregar os registros da sessão.", + "deleteError": "Falha ao excluir o registro da sessão", + "filterByHost": "Filtrar por host...", "back": "Voltar", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "empty": "(vazio)", + "noResults": "Nenhum resultado para \"{{query}}\"", + "hostFallback": "Anfitrião {{id}}", + "sessionFallback": "Sessão {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Cronograma de gravação", + "speed": "Velocidade de reprodução", + "play": "Reproduzir gravação", + "pause": "Pausar gravação" } } diff --git a/plugins/session-recording/locales/translated/pt_PT.json b/plugins/session-recording/locales/translated/pt_PT.json index 3f60b0785..2f69608fb 100644 --- a/plugins/session-recording/locales/translated/pt_PT.json +++ b/plugins/session-recording/locales/translated/pt_PT.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Veja as gravações das sessões", + "description": "Veja e reproduza as gravações das suas próprias sessões." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Retenção (dias)", + "description": "Durante quanto tempo é mantida uma gravação de sessão antes de ser automaticamente eliminada." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Ativar gravação de sessão", + "description": "Grave a saída do terminal para este host para que possa reproduzi-la ou descarregá-la posteriormente." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Gravação" }, "sessionLogs": { "title": "Registos de Sessão", @@ -36,7 +36,7 @@ "duration": "Duração", "viewLog": "Ver registo", "downloadLog": "Transferir", - "downloadAsText": "Download as text", + "downloadAsText": "Descarregar como texto", "deleteLog": "Eliminar", "confirmDelete": "Eliminar este registo de sessão?", "confirmDeleteDesc": "Esta ação não pode ser desfeita.", @@ -47,14 +47,14 @@ "filterByHost": "Filtrar por host...", "back": "Voltar", "empty": "(vazio)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "Nenhum resultado para \"{{query}}\"", + "hostFallback": "Anfitrião {{id}}", + "sessionFallback": "Sessão {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Cronograma de gravação", + "speed": "Velocidade de reprodução", + "play": "Reproduzir gravação", + "pause": "Pausar gravação" } } diff --git a/plugins/session-recording/locales/translated/ru_RU.json b/plugins/session-recording/locales/translated/ru_RU.json index 09f59e35d..fa54b8f8c 100644 --- a/plugins/session-recording/locales/translated/ru_RU.json +++ b/plugins/session-recording/locales/translated/ru_RU.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Просмотреть записи сессий", + "description": "Просматривайте и воспроизводите записи своих собственных сессий." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Срок хранения (дни)", + "description": "Как долго хранится запись сеанса, прежде чем она будет автоматически удалена." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Включить запись сеанса", + "description": "Запишите вывод терминала для этого хоста, чтобы вы могли воспроизвести его или загрузить позже." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Запись" }, "sessionLogs": { "title": "Журналы сеансов", @@ -36,7 +36,7 @@ "duration": "Продолжительность", "viewLog": "Просмотреть журнал", "downloadLog": "Скачать", - "downloadAsText": "Download as text", + "downloadAsText": "Скачать как текст", "deleteLog": "Удалить", "confirmDelete": "Удалить этот журнал сеансов?", "confirmDeleteDesc": "Это действие нельзя отменить.", @@ -47,14 +47,14 @@ "filterByHost": "Фильтровать по хосту...", "back": "Назад", "empty": "(пусто)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "Результаты поиска по запросу \"{{query}} отсутствуют", + "hostFallback": "Хост {{id}}", + "sessionFallback": "Сессия {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Хронология записи", + "speed": "скорость воспроизведения", + "play": "Воспроизвести запись", + "pause": "Приостановить запись" } } diff --git a/plugins/session-recording/locales/translated/sr_SP.json b/plugins/session-recording/locales/translated/sr_SP.json index 09e0d60bb..1187cdeb2 100644 --- a/plugins/session-recording/locales/translated/sr_SP.json +++ b/plugins/session-recording/locales/translated/sr_SP.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "Записи сесија" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Снимање сесије", + "enableSessionRecordingDesc": "Снимите излаз терминалне сесије за каснији преглед" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Погледајте снимке сесије", + "description": "Погледајте и репродукујте снимке сопствених сесија." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Задржавање (дани)", + "description": "Колико дуго се снимак сесије чува пре него што се аутоматски обрише." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Омогући снимање сесије", + "description": "Снимите излаз терминала за овај хост како бисте га могли касније репродуковати или преузети." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Снимање" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "title": "Записи сесија", + "noLogs": "Још нема евиденција сесија", + "noLogsDesc": "Омогућите евидентирање сесије на хосту да бисте започели снимање", + "duration": "Трајање", + "viewLog": "Прикажи дневник", + "downloadLog": "Преузми", + "downloadAsText": "Преузми као текст", + "deleteLog": "Обриши", + "confirmDelete": "Да ли желите да обришете овај дневник сесије?", + "confirmDeleteDesc": "Ова радња се не може поништити.", + "copyContent": "Копија", + "copied": "Копирано!", + "loadError": "Учитавање евиденције сесије није успело", + "deleteError": "Брисање дневника сесије није успело", + "filterByHost": "Филтрирај по хосту...", + "back": "Назад", + "empty": "(празно)", + "noResults": "Нема резултата за „{{query}}“", + "hostFallback": "Домаћин {{id}}", + "sessionFallback": "Сесија {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Временска линија снимања", + "speed": "Брзина репродукције", + "play": "Пусти снимак", + "pause": "Паузирај снимање" } } diff --git a/plugins/session-recording/locales/translated/sv_SE.json b/plugins/session-recording/locales/translated/sv_SE.json index 09e0d60bb..51694cc84 100644 --- a/plugins/session-recording/locales/translated/sv_SE.json +++ b/plugins/session-recording/locales/translated/sv_SE.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "Sessionsloggar" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Sessionsinspelning", + "enableSessionRecordingDesc": "Spela in utdata från terminalsessionen för senare granskning" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Visa inspelningar av sessionen", + "description": "Se och spela upp dina egna inspelningar av sessioner." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Lagringstid (dagar)", + "description": "Hur länge en sessionsinspelning sparas innan den raderas automatiskt." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Aktivera sessionsinspelning", + "description": "Spela in terminalutdata för den här värden så att du kan spela upp eller ladda ner den senare." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Inspelning" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", + "title": "Sessionsloggar", + "noLogs": "Inga sessionsloggar ännu", + "noLogsDesc": "Aktivera sessionsloggning på en värd för att starta inspelning", + "duration": "Varaktighet", + "viewLog": "Visa logg", + "downloadLog": "Ladda ner", + "downloadAsText": "Ladda ner som text", + "deleteLog": "Radera", + "confirmDelete": "Radera den här sessionsloggen?", + "confirmDeleteDesc": "Den här åtgärden kan inte ångras.", + "copyContent": "Kopiera", + "copied": "Kopierad!", + "loadError": "Misslyckades med att läsa in sessionsloggar", + "deleteError": "Misslyckades med att radera sessionsloggen", + "filterByHost": "Filtrera efter värd...", + "back": "Tillbaka", + "empty": "(tömma)", + "noResults": "Inga resultat för \"{{query}}\"", + "hostFallback": "Värd {{id}}", "sessionFallback": "Session {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Inspelningstidslinje", + "speed": "Uppspelningshastighet", + "play": "Spela upp inspelningen", + "pause": "Pausa inspelningen" } } diff --git a/plugins/session-recording/locales/translated/th_TH.json b/plugins/session-recording/locales/translated/th_TH.json index 09e0d60bb..3ebb71ded 100644 --- a/plugins/session-recording/locales/translated/th_TH.json +++ b/plugins/session-recording/locales/translated/th_TH.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "บันทึกเซสชัน" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "การบันทึกการประชุม", + "enableSessionRecordingDesc": "บันทึกผลลัพธ์จากเทอร์มินัลเพื่อตรวจสอบในภายหลัง" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "ดูบันทึกการประชุม", + "description": "ดูและเล่นบันทึกการประชุมของคุณเองได้" } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "การเก็บรักษา (วัน)", + "description": "ระบบจะเก็บไฟล์บันทึกการประชุมไว้นานแค่ไหนก่อนที่จะลบออกโดยอัตโนมัติ" } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "เปิดใช้งานการบันทึกเซสชัน", + "description": "บันทึกข้อมูลที่แสดงบนเทอร์มินัลของโฮสต์นี้ เพื่อให้คุณสามารถเล่นซ้ำหรือดาวน์โหลดได้ในภายหลัง" } } }, "terminalStatus": { - "recording": "Recording" + "recording": "การบันทึก" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "title": "บันทึกเซสชัน", + "noLogs": "ยังไม่มีบันทึกการใช้งานใดๆ", + "noLogsDesc": "เปิดใช้งานการบันทึกเซสชันบนโฮสต์เพื่อเริ่มการบันทึก", + "duration": "ระยะเวลา", + "viewLog": "ดูบันทึก", + "downloadLog": "ดาวน์โหลด", + "downloadAsText": "ดาวน์โหลดเป็นข้อความ", + "deleteLog": "ลบ", + "confirmDelete": "ลบบันทึกการใช้งานนี้หรือไม่?", + "confirmDeleteDesc": "การกระทำนี้ไม่สามารถย้อนกลับได้", + "copyContent": "สำเนา", + "copied": "คัดลอกแล้ว!", + "loadError": "ไม่สามารถโหลดบันทึกเซสชันได้", + "deleteError": "ไม่สามารถลบบันทึกเซสชันได้", + "filterByHost": "กรองตามโฮสต์...", + "back": "กลับ", + "empty": "(ว่างเปล่า)", + "noResults": "ไม่พบผลลัพธ์สำหรับ \"{{query}}\"", + "hostFallback": "โฮสต์ {{id}}", + "sessionFallback": "เซสชั่น {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "ลำดับเวลาการบันทึก", + "speed": "ความเร็วในการเล่น", + "play": "เล่นการบันทึก", + "pause": "หยุดการบันทึกชั่วคราว" } } diff --git a/plugins/session-recording/locales/translated/tr_TR.json b/plugins/session-recording/locales/translated/tr_TR.json index 2f397b35e..fb3feda80 100644 --- a/plugins/session-recording/locales/translated/tr_TR.json +++ b/plugins/session-recording/locales/translated/tr_TR.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Oturum kayıtlarını görüntüleyin", + "description": "Kendi oturum kayıtlarınızı görüntüleyin ve tekrar oynatın." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Saklama süresi (gün)", + "description": "Oturum kaydının otomatik olarak silinmeden önce ne kadar süreyle saklandığı." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Oturum kaydını etkinleştirin", + "description": "Bu sunucu için terminal çıktısını kaydedin, böylece daha sonra tekrar oynatabilir veya indirebilirsiniz." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Kayıt" }, "sessionLogs": { "title": "Oturum Günlükleri", @@ -36,7 +36,7 @@ "duration": "Süre", "viewLog": "Günlüğü görüntüle", "downloadLog": "İndir", - "downloadAsText": "Download as text", + "downloadAsText": "Metin olarak indir", "deleteLog": "Sil", "confirmDelete": "Bu oturum günlüğü silinsin mi?", "confirmDeleteDesc": "Bu işlem geri alınamaz.", @@ -47,14 +47,14 @@ "filterByHost": "Sunucuya göre filtrele...", "back": "Geri", "empty": "(boş)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "\"{{query}} \" için sonuç bulunamadı.", + "hostFallback": "Sunucu {{id}}", + "sessionFallback": "Oturum {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Kayıt zaman çizelgesi", + "speed": "Oynatma hızı", + "play": "Kaydı oynat", + "pause": "Kaydı duraklat" } } diff --git a/plugins/session-recording/locales/translated/uk_UA.json b/plugins/session-recording/locales/translated/uk_UA.json index 09e0d60bb..98533011b 100644 --- a/plugins/session-recording/locales/translated/uk_UA.json +++ b/plugins/session-recording/locales/translated/uk_UA.json @@ -1,60 +1,60 @@ { "nav": { - "sessionLogs": "Session Logs" + "sessionLogs": "Журнали сеансів" }, "hosts": { - "enableSessionRecording": "Session Recording", - "enableSessionRecordingDesc": "Record terminal session output for later review" + "enableSessionRecording": "Запис сеансу", + "enableSessionRecordingDesc": "Запис виводу сеансу терміналу для подальшого перегляду" }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Переглянути записи сеансу", + "description": "Переглядайте та відтворюйте власні записи сеансів." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Утримання (дні)", + "description": "Як довго зберігається запис сеансу, перш ніж його буде автоматично видалено." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Увімкнути запис сеансу", + "description": "Запишіть вивід терміналу для цього хоста, щоб ви могли його відтворити або завантажити пізніше." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Запис" }, "sessionLogs": { - "title": "Session Logs", - "noLogs": "No session logs yet", - "noLogsDesc": "Enable session logging on a host to start recording", - "duration": "Duration", - "viewLog": "View log", - "downloadLog": "Download", - "downloadAsText": "Download as text", - "deleteLog": "Delete", - "confirmDelete": "Delete this session log?", - "confirmDeleteDesc": "This action cannot be undone.", - "copyContent": "Copy", - "copied": "Copied!", - "loadError": "Failed to load session logs", - "deleteError": "Failed to delete session log", - "filterByHost": "Filter by host...", - "back": "Back", - "empty": "(empty)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "title": "Журнали сеансів", + "noLogs": "Журналів сеансів поки що немає", + "noLogsDesc": "Увімкнути ведення журналу сеансу на хості, щоб розпочати запис", + "duration": "Тривалість", + "viewLog": "Переглянути журнал", + "downloadLog": "Завантажити", + "downloadAsText": "Завантажити як текст", + "deleteLog": "Видалити", + "confirmDelete": "Видалити цей журнал сеансу?", + "confirmDeleteDesc": "Цю дію не можна скасувати.", + "copyContent": "Копіювати", + "copied": "Скопійовано!", + "loadError": "Не вдалося завантажити журнали сеансу", + "deleteError": "Не вдалося видалити журнал сеансу", + "filterByHost": "Фільтрувати за хостом...", + "back": "Назад", + "empty": "(порожній)", + "noResults": "Немає результатів для запиту \"{{query}}\"", + "hostFallback": "Хост {{id}}", + "sessionFallback": "Сесія {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Хронологія запису", + "speed": "Швидкість відтворення", + "play": "Відтворити запис", + "pause": "Призупинити запис" } } diff --git a/plugins/session-recording/locales/translated/vi_VN.json b/plugins/session-recording/locales/translated/vi_VN.json index ce8570d1f..4c130023a 100644 --- a/plugins/session-recording/locales/translated/vi_VN.json +++ b/plugins/session-recording/locales/translated/vi_VN.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "Xem bản ghi lại các buổi họp", + "description": "Xem và phát lại các bản ghi âm buổi tập của chính bạn." } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "Thời gian lưu giữ (ngày)", + "description": "Thời gian lưu giữ bản ghi phiên trước khi nó tự động bị xóa." } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "Bật tính năng ghi lại phiên", + "description": "Ghi lại thông báo lỗi trên terminal của máy chủ này để bạn có thể phát lại hoặc tải xuống sau." } } }, "terminalStatus": { - "recording": "Recording" + "recording": "Ghi âm" }, "sessionLogs": { "title": "Nhật ký phiên", @@ -36,7 +36,7 @@ "duration": "Thời lượng", "viewLog": "Xem nhật ký", "downloadLog": "Tải xuống", - "downloadAsText": "Download as text", + "downloadAsText": "Tải xuống dưới dạng văn bản", "deleteLog": "Xóa", "confirmDelete": "Xóa nhật ký phiên này?", "confirmDeleteDesc": "Hành động này không thể hoàn tác.", @@ -47,14 +47,14 @@ "filterByHost": "Lọc theo máy chủ...", "back": "Quay lại", "empty": "(trống)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "Không tìm thấy kết quả cho \"{{query}}\"", + "hostFallback": "Máy chủ {{id}}", + "sessionFallback": "Phiên {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "Lịch trình ghi âm", + "speed": "Tốc độ phát lại", + "play": "Phát bản ghi âm", + "pause": "Tạm dừng ghi âm" } } diff --git a/plugins/session-recording/locales/translated/zh_CN.json b/plugins/session-recording/locales/translated/zh_CN.json index 8d437f498..fe8eec2d3 100644 --- a/plugins/session-recording/locales/translated/zh_CN.json +++ b/plugins/session-recording/locales/translated/zh_CN.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "查看会议录像", + "description": "查看并回放您自己的会话录像。" } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "保留时间(天)", + "description": "会话录像在自动删除前会保留多长时间?" } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "启用会话录制", + "description": "记录此主机的终端输出,以便稍后回放或下载。" } } }, "terminalStatus": { - "recording": "Recording" + "recording": "记录" }, "sessionLogs": { "title": "会话日志", @@ -36,7 +36,7 @@ "duration": "持续时间", "viewLog": "查看日志", "downloadLog": "下载", - "downloadAsText": "Download as text", + "downloadAsText": "下载为文本", "deleteLog": "删除", "confirmDelete": "删除此会话日志?", "confirmDeleteDesc": "此操作无法撤消。", @@ -47,14 +47,14 @@ "filterByHost": "按主机筛选...", "back": "返回", "empty": "(空)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "没有找到“{{query}}”的结果", + "hostFallback": "主机 {{id}}", + "sessionFallback": "会话 {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "录制时间线", + "speed": "播放速度", + "play": "播放录音", + "pause": "暂停录制" } } diff --git a/plugins/session-recording/locales/translated/zh_TW.json b/plugins/session-recording/locales/translated/zh_TW.json index 9e3c1846a..7e29a3c90 100644 --- a/plugins/session-recording/locales/translated/zh_TW.json +++ b/plugins/session-recording/locales/translated/zh_TW.json @@ -8,26 +8,26 @@ }, "permissions": { "view": { - "title": "View session recordings", - "description": "See and play back your own session recordings." + "title": "查看會議錄影", + "description": "查看並回放您自己的會話錄影。" } }, "settings": { "admin": { "retentionDays": { - "label": "Retention (days)", - "description": "How long a session recording is kept before it is deleted automatically." + "label": "保留時間(天)", + "description": "會話錄影在自動刪除前會保留多久?" } }, "host": { "enable": { - "label": "Enable session recording", - "description": "Record terminal output for this host so you can play it back or download it later." + "label": "啟用會話錄製", + "description": "記錄此主機的終端輸出,以便稍後重播或下載。" } } }, "terminalStatus": { - "recording": "Recording" + "recording": "記錄" }, "sessionLogs": { "title": "工作階段記錄", @@ -36,7 +36,7 @@ "duration": "持續時間", "viewLog": "檢視記錄", "downloadLog": "下載", - "downloadAsText": "Download as text", + "downloadAsText": "下載為文字", "deleteLog": "刪除", "confirmDelete": "刪除此工作階段記錄?", "confirmDeleteDesc": "此動作無法復原。", @@ -47,14 +47,14 @@ "filterByHost": "依主機篩選...", "back": "返回", "empty": "(空的)", - "noResults": "No results for \"{{query}}\"", - "hostFallback": "Host {{id}}", - "sessionFallback": "Session {{id}}" + "noResults": "沒有找到「{{query}}」的結果", + "hostFallback": "主機 {{id}}", + "sessionFallback": "會話 {{id}}" }, "player": { - "timeline": "Recording timeline", - "speed": "Playback speed", - "play": "Play recording", - "pause": "Pause recording" + "timeline": "錄製時間軸", + "speed": "播放速度", + "play": "播放錄音", + "pause": "暫停錄製" } } diff --git a/plugins/session-sharing/locales/translated/bn_BD.json b/plugins/session-sharing/locales/translated/bn_BD.json index 47931c5a6..b4e2d8837 100644 --- a/plugins/session-sharing/locales/translated/bn_BD.json +++ b/plugins/session-sharing/locales/translated/bn_BD.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "শেয়ার করা সেশনে সংযোগ স্থাপন করা হচ্ছে...", + "linkInvalid": "এই শেয়ার লিঙ্কটি অবৈধ, মেয়াদোত্তীর্ণ, বা বাতিল করা হয়েছে।", + "rateLimited": "অনেকবার চেষ্টা করা হয়েছে, অনুগ্রহ করে কিছুক্ষণ পরে আবার চেষ্টা করুন।", + "sessionEnded": "এই অধিবেশন শেষ হয়েছে", + "readOnlyBadge": "শুধুমাত্র দেখার জন্য", + "ownerLabel": "হোস্ট মালিক" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "সেশন শেয়ার করুন", + "shareButton": "শেয়ার", + "notReadyToShare": "সেশনটি এখনও শেয়ার করার জন্য প্রস্তুত নয়।", "modeTab": { - "link": "Link", - "user": "User" + "link": "লিঙ্ক", + "user": "ব্যবহারকারী" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "এই লিঙ্কের মাধ্যমে যে কেউ যোগ দিতে পারবেন, কোনো অ্যাকাউন্টের প্রয়োজন নেই।", + "userModeDescription": "এমন একজন নির্দিষ্ট ব্যবহারকারীর সাথে শেয়ার করুন যার এই হোস্টে আগে থেকেই অ্যাক্সেস আছে। যদি তাদের এখনও অ্যাক্সেস না থাকে, তাহলে প্রথমে তাদের সাথে হোস্টটি শেয়ার করুন অথবা এর পরিবর্তে একটি লিঙ্ক ব্যবহার করুন। শেয়ার করা হয়ে গেলে, সেশনটি তাদের 'কানেকশনস' ট্যাবে দেখা যাবে।", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "অনুমতি স্তর", + "readOnly": "শুধুমাত্র পঠনযোগ্য", + "readOnlyDescription": "সেশনটি সরাসরি দেখা যাবে কিন্তু টাইপ বা অংশগ্রহণ করা যাবে না।", + "readWrite": "পড়া-লেখা", + "readWriteDescription": "মালিকের মতোই সেশনে টাইপ করতে এবং ইন্টারঅ্যাক্ট করতে পারবেন।" }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "লিঙ্কের মেয়াদ শেষ", + "createLinkButton": "লিঙ্ক তৈরি করুন", + "createShareButton": "ব্যবহারকারীর সাথে শেয়ার করুন", + "searchUsersPlaceholder": "ব্যবহারকারীদের অনুসন্ধান করুন...", + "noUsersFound": "কোন ব্যবহারকারী খুঁজে পাওয়া যায়নি", + "linkCreated": "শেয়ার লিঙ্ক তৈরি করা হয়েছে", + "linkNeedsServer": "শেয়ার লিঙ্ক শুধুমাত্র টারমিক্স সার্ভারের সেশনের জন্যই কাজ করে। লিঙ্কের মাধ্যমে শেয়ার করতে আপনার লিঙ্কড সার্ভারের মাধ্যমে এই হোস্টটি সংযুক্ত করুন।", + "linkCopied": "লিঙ্ক ক্লিপবোর্ডে কপি করা হয়েছে", + "copyLink": "লিঙ্ক কপি করুন", + "shareCreated": "সেশনটি শেয়ার করা হয়েছে। এটি তাদের কানেকশনস ট্যাবে দেখা যাবে।", + "shareFailed": "শেয়ার তৈরি করতে ব্যর্থ হয়েছে", + "userLacksHostAccess": "ওই ব্যবহারকারীর এখনও এই হোস্টে অ্যাক্সেস নেই। প্রথমে তাদের সাথে হোস্টটি শেয়ার করুন, অথবা এর পরিবর্তে একটি লিঙ্ক ব্যবহার করুন।", + "activeShares": "সক্রিয় শেয়ার", + "noActiveShares": "এই সেশনের জন্য কোনো সক্রিয় শেয়ার নেই", + "revoke": "বাতিল করুন", + "revokeConfirmTitle": "এই শেয়ারটি প্রত্যাহার করবেন?", + "revokeConfirmDescription": "যে কেউ এই শেয়ারটি ব্যবহার করলে, তিনি অবিলম্বে অ্যাক্সেস হারাবেন।", + "revoked": "শেয়ার প্রত্যাহার করা হয়েছে", + "revokeFailed": "শেয়ার প্রত্যাহার করতে ব্যর্থ হয়েছে", + "joinCount": "{{count}} যোগদান করুন", + "joinCount_other": "{{count}} যোগদান করে", + "expiresAt": "মেয়াদ শেষ হবে {{date}}", + "linkShareBadge": "লিঙ্ক", + "userShareBadge": "ব্যবহারকারী: {{username}}", + "loadSharesFailed": "সক্রিয় শেয়ারগুলি লোড করতে ব্যর্থ হয়েছে", + "remoteDisplayUnavailable": "এই মুহূর্তে রিমোট ডেস্কটপ উপলব্ধ নেই।", + "sharedWithMe": "আমার সাথে শেয়ার করা সেশনগুলি", + "customHoursPlaceholder": "অ্যাক্সেসের মেয়াদ শেষ হতে বাকি ঘন্টা" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", - "online": "online", - "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "createRoom": "নতুন ঘর", + "roomName": "রুমের নাম", + "persistentRoom": "স্থায়ী কক্ষ", + "persistentRoomHint": "মিটিং শেষ হওয়ার পরেও স্থায়ী রুমগুলো তালিকাভুক্ত থাকে এবং পুনরায় ব্যবহার করা যায়।", + "noRooms": "এখনো কোনো রুম নেই। মিটিং শুরু করতে একটি রুম তৈরি করুন।", + "openRoom": "খোলা", + "endRoom": "সভা শেষ করুন", + "leaveRoom": "ছেড়ে দিন", + "deleteMember": "অপসারণ করুন", + "removeMember": "{{name}} মুছে ফেলুন", + "removeMemberTitle": "এই সদস্যকে অপসারণ করবেন?", + "removeMemberDescription": "{{name}} অবিলম্বে এই রুমে প্রবেশাধিকার হারাবে। যেকোনো সক্রিয় SSH ভিউয়ার সংযোগ বিচ্ছিন্ন হয়ে যাবে।", + "invite": "আমন্ত্রণ", + "inviteTitle": "সদস্যদের আমন্ত্রণ জানান", + "members": "সদস্যরা", + "membersPanel": "রুমের সদস্য এবং নিয়ন্ত্রণ অনুরোধ", + "membersWithCount": "সদস্যগণ ({{count}})", + "guestsWithCount": "অতিথিরা ({{count}})", + "removeGuests": "অতিথিদের সরিয়ে দিন", + "anonymousGuest": "অতিথি", + "online": "অনলাইন", + "offline": "অফলাইন", + "you": "(তুমি)", + "hostBadge": "হোস্ট", + "presenterBadge": "উপস্থাপন করা হচ্ছে", + "present": "বর্তমান", + "presentTitle": "মঞ্চে উঠুন", + "presentHost": "হোস্ট", + "searchHosts": "হোস্ট অনুসন্ধান করুন", + "noHostsFound": "কোনো উপলব্ধ হোস্ট খুঁজে পাওয়া যায়নি।", + "presentProtocol": "প্রোটোকল", + "stopPresenting": "উপস্থাপন করা বন্ধ করুন", + "takeOver": "দায়িত্ব গ্রহণ করুন", + "takeOverConfirmTitle": "বর্তমান উপস্থাপনাটি প্রতিস্থাপন করবেন?", + "takeOverDescription": "{{name}} এখন উপস্থাপনা করছে। দায়িত্ব গ্রহণ করলে সবাই সেই মঞ্চ থেকে বিচ্ছিন্ন হয়ে যাবে।", + "emptyStage": "কেউ উপস্থাপনা করছেন না। একটি সেশন পরিচালনা করতে মঞ্চে আসুন।", + "stageLoading": "মঞ্চের সাথে সংযোগ স্থাপন...", + "stageEnded": "উপস্থাপনা শেষ হলো।", + "roomEnded": "এই সভা শেষ হয়েছে।", + "presenterLabel": "{{name}} উপস্থাপন করছে", + "guestLink": "অতিথি লিঙ্ক", + "guestLinkOn": "গেস্ট লিঙ্ক চালু আছে। লিঙ্কটি ব্যবহার করে যে কেউ মঞ্চটি দেখতে পারবেন।", + "guestLinkOff": "গেস্ট লিঙ্ক বন্ধ আছে।", + "copyLink": "লিঙ্ক কপি করুন", + "rotateLink": "লিঙ্ক ঘোরান", + "disableLink": "লিঙ্ক নিষ্ক্রিয় করুন", + "rotateLinkConfirmTitle": "গেস্ট লিঙ্কটি ঘোরান?", + "rotateLinkDescription": "বর্তমান সংযোগটি অবিলম্বে কাজ করা বন্ধ করে দেবে। সংযুক্ত SSH গেস্টদের সংযোগ বিচ্ছিন্ন করা হবে।", + "disableLinkConfirmTitle": "গেস্ট লিঙ্কটি নিষ্ক্রিয় করবেন?", + "disableLinkDescription": "বেনামী SSH দর্শকদের সংযোগ অবিলম্বে বিচ্ছিন্ন করা হবে এবং বর্তমান লিঙ্কটি কাজ করা বন্ধ করে দেবে।", + "linkCopied": "লিঙ্ক কপি করা হয়েছে", + "roles": "ভূমিকা", + "users": "ব্যবহারকারীরা", + "searchUsers": "ব্যবহারকারীদের অনুসন্ধান করুন", + "endConfirmTitle": "এই সভা শেষ করব?", + "endDescription": "{{name}} সকলের জন্য শেষ হয়ে যাবে এবং পুনরায় খোলা যাবে না।", + "endPersistentDescription": "{{name}} -এ চলমান উপস্থাপনাটি বন্ধ হয়ে যাবে। রুমটি পুনরায় ব্যবহারের জন্য উপলব্ধ থাকবে।", + "deleteRoom": "রুম মুছুন", + "deleteConfirmTitle": "এই রুমটা মুছে ফেলবেন?", + "deleteDescription": "{{name}} সকলের জন্য স্থায়ীভাবে মুছে ফেলা হবে এবং এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", + "invitedTo": "তোমাকে \"{{name}} \" এ আমন্ত্রণ জানানো হয়েছিল", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "সভা", + "waiting": "উপস্থাপকের জন্য অপেক্ষা করছি...", + "linkInvalid": "এই অতিথি লিঙ্কটি অবৈধ অথবা মিটিং শেষ হয়ে গেছে।" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "এই মিটিং ট্যাবটির মেয়াদ শেষ হয়ে গেছে। মিটিং প্যানেল থেকে রুমটি পুনরায় খুলুন।", + "retry": "পুনরায় চেষ্টা করুন", + "requestControl": "অনুরোধ নিয়ন্ত্রণ", + "cancelControlRequest": "অনুরোধ বাতিল করুন", + "controlQueue": "নিয়ন্ত্রণ অনুরোধ", + "noControlRequests": "কোনো অপেক্ষমান অনুরোধ নেই।", + "grantControlTo": "{{name}}-কে নিয়ন্ত্রণ দিন", + "dismissControlRequest": "{{name}}এর নিয়ন্ত্রণ অনুরোধ খারিজ করুন", + "releaseControl": "রিলিজ নিয়ন্ত্রণ", + "grantControl": "নিয়ন্ত্রণ দিন", + "revokeControl": "নিয়ন্ত্রণ ফিরিয়ে নিন", + "controlRequestedBy": "{{name}} নিয়ন্ত্রণের জন্য অনুরোধ করেছে", + "grant": "অনুদান", + "controlBadge": "নিয়ন্ত্রণে", + "youArePresenting": "আপনি অন্য একটি ট্যাবে প্রেজেন্টেশন দিচ্ছেন। মঞ্চ হস্তান্তর করার জন্য প্রেজেন্টেশন বন্ধ করুন।", + "created": "রুম তৈরি করা হয়েছে", + "invited": "সদস্যদের আমন্ত্রণ জানানো হয়েছে", + "roomTab": "সভা", + "serverChanged": "মিটিং সার্ভার পরিবর্তিত হয়েছে। মিটিং প্যানেল থেকে এই মিটিংটি পুনরায় খুলুন।", + "hostNotSynced": "উপস্থাপনা করার আগে এই হোস্টকে মিটিং সার্ভারের সাথে সিঙ্ক করুন।", + "linkRequiresServer": "ওয়েব লিঙ্ক শেয়ার করার জন্য এই ডেস্কটপটিকে একটি টারমিক্স সার্ভারের সাথে লিঙ্ক করুন এবং সেখানে মিটিংটি তৈরি করুন।" }, "nav": { - "collab": "Meetings" + "collab": "সভা" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "সেশন শেয়ারিং অনুমোদন করুন", + "description": "লাইভ টার্মিনাল, RDP, VNC, এবং টেলনেট সেশনগুলোকে ইনস্ট্যান্স-ব্যাপী শেয়ার করার অনুমতি দিন। এটি নিষ্ক্রিয় করা হলে, প্রতি-হোস্ট শেয়ারিং টগলকে ওভাররাইড করে।" } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "সেশন শেয়ারিং অনুমোদন করুন", + "description": "এই হোস্টের লাইভ সেশনগুলো লিঙ্কের মাধ্যমে বা অন্যান্য ব্যবহারকারীদের সাথে শেয়ার করা যাবে।" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "সেশন শেয়ার করুন এবং রুমে যোগ দিন", + "description": "লিঙ্কের মাধ্যমে বা অন্যান্য ব্যবহারকারীদের সাথে লাইভ সেশন শেয়ার করুন, এবং কোলাবোরেশন রুম তৈরি করে তাতে যোগদান করুন।" } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "কখনো না", + "oneHour": "১ ঘন্টা", + "oneDay": "২৪ ঘন্টা", + "sevenDays": "৭ দিন", + "thirtyDays": "৩০ দিন", + "custom": "কাস্টম" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "আমার সাথে শেয়ার করা হয়েছে", + "sharedBy": "{{username}} দ্বারা শেয়ার করা হয়েছে", + "join": "যোগদান করুন", + "sharedSessionLabel": "{{hostName}} (ভাগ করা)" } } diff --git a/plugins/session-sharing/locales/translated/hi_IN.json b/plugins/session-sharing/locales/translated/hi_IN.json index e6c85dcce..282ae260f 100644 --- a/plugins/session-sharing/locales/translated/hi_IN.json +++ b/plugins/session-sharing/locales/translated/hi_IN.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "साझा सत्र से जुड़ रहा है...", + "linkInvalid": "यह शेयर लिंक अमान्य है, इसकी समय सीमा समाप्त हो चुकी है, या इसे रद्द कर दिया गया है।", + "rateLimited": "बहुत अधिक प्रयास किए गए, कृपया कुछ देर बाद पुनः प्रयास करें।", + "sessionEnded": "यह सत्र समाप्त हो गया है।", + "readOnlyBadge": "केवल देखें", + "ownerLabel": "मेज़बान स्वामी" }, - "modalTitle": "Share session", + "modalTitle": "सत्र साझा करें", "shareButton": "साझा करें", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "सेशन अभी शेयर करने के लिए तैयार नहीं है", "modeTab": { - "link": "Link", + "link": "जोड़ना", "user": "उपयोगकर्ता" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "इस लिंक के जरिए कोई भी जुड़ सकता है, इसके लिए किसी खाते की आवश्यकता नहीं है।", + "userModeDescription": "इसे उस विशिष्ट उपयोगकर्ता के साथ साझा करें जिसके पास पहले से ही इस होस्ट का एक्सेस है। यदि उनके पास अभी एक्सेस नहीं है, तो पहले उनके साथ होस्ट साझा करें या इसके बजाय एक लिंक का उपयोग करें। साझा करने के बाद, सेशन उनके कनेक्शन टैब में दिखाई देगा।", "permissionLevel": { "label": "अनुमति स्तर", "readOnly": "केवल-पठनीय", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "आप सेशन को लाइव देख सकते हैं लेकिन टाइप या इंटरैक्ट नहीं कर सकते।", + "readWrite": "पढ़ना-लिखना", + "readWriteDescription": "मालिक की तरह ही सेशन में टाइप कर सकता है और इंटरैक्ट कर सकता है।" }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "लिंक की समय सीमा समाप्त", + "createLinkButton": "लिंक बनाएं", + "createShareButton": "उपयोगकर्ता के साथ साझा करें", + "searchUsersPlaceholder": "उपयोगकर्ताओं को खोजें...", + "noUsersFound": "कोई उपयोगकर्ता नहीं मिला", + "linkCreated": "शेयर लिंक बनाया गया", + "linkNeedsServer": "शेयर लिंक केवल टर्मिक्स सर्वर पर मौजूद सेशन के लिए काम करते हैं। लिंक के ज़रिए शेयर करने के लिए इस होस्ट को अपने लिंक्ड सर्वर के माध्यम से कनेक्ट करें।", + "linkCopied": "लिंक क्लिपबोर्ड पर कॉपी हो गया है", + "copyLink": "लिंक की प्रतिलिपि करें", + "shareCreated": "सेशन साझा कर दिया गया है। यह उनके कनेक्शन टैब में दिखाई देगा।", + "shareFailed": "शेयर बनाने में विफल", + "userLacksHostAccess": "उस उपयोगकर्ता के पास अभी इस होस्ट तक पहुंच नहीं है। कृपया पहले उनके साथ होस्ट साझा करें, या इसके बजाय एक लिंक का उपयोग करें।", + "activeShares": "सक्रिय शेयर", + "noActiveShares": "इस सत्र के लिए कोई सक्रिय शेयर नहीं हैं", "revoke": "निरस्त करें", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "क्या इस शेयर को रद्द कर दें?", + "revokeConfirmDescription": "इस शेयर का उपयोग करने वाले किसी भी व्यक्ति की पहुंच तुरंत समाप्त हो जाएगी।", + "revoked": "शेयर रद्द कर दिया गया", + "revokeFailed": "शेयर रद्द करने में विफल", + "joinCount": "{{count}} जुड़ें", + "joinCount_other": "{{count}} जुड़ता है", "expiresAt": "{{date}} को समाप्त होगा", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "जोड़ना", + "userShareBadge": "उपयोगकर्ता: {{username}}", + "loadSharesFailed": "सक्रिय शेयर लोड करने में विफल", + "remoteDisplayUnavailable": "फिलहाल रिमोट डेस्कटॉप उपलब्ध नहीं है।", + "sharedWithMe": "मेरे साथ साझा किए गए सत्र", "customHoursPlaceholder": "पहुँच समाप्त होने तक के घंटे" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "नया कमरा", + "roomName": "कमरे का नाम", + "persistentRoom": "लगातार कमरा", + "persistentRoomHint": "स्थायी कमरे मीटिंग समाप्त होने के बाद भी सूची में बने रहते हैं और उनका पुनः उपयोग किया जा सकता है।", + "noRooms": "अभी कोई कमरा उपलब्ध नहीं है। मीटिंग शुरू करने के लिए एक कमरा बनाएं।", "openRoom": "खोलें", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "बैठक समाप्त", + "leaveRoom": "छुट्टी", "deleteMember": "हटाएं", "removeMember": "{{name}} हटाएँ", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "क्या इस सदस्य को हटा दें?", + "removeMemberDescription": "{{name}} को इस कमरे तक पहुँच तुरंत खोनी पड़ेगी। कोई भी सक्रिय SSH व्यूअर डिस्कनेक्ट हो जाएगा।", + "invite": "आमंत्रित करना", + "inviteTitle": "सदस्यों को आमंत्रित करो", + "members": "सदस्यों", + "membersPanel": "कमरे के सदस्य और नियंत्रण अनुरोध", + "membersWithCount": "सदस्य ({{count}})", + "guestsWithCount": "अतिथि ({{count}})", + "removeGuests": "मेहमानों को हटा दें", + "anonymousGuest": "अतिथि", "online": "ऑनलाइन", "offline": "ऑफलाइन", - "you": "(you)", + "you": "(आप)", "hostBadge": "होस्ट", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "प्रस्तुत करते हुए", + "present": "उपस्थित", + "presentTitle": "मंच पर आइए", "presentHost": "होस्ट", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", + "searchHosts": "होस्ट खोजें", + "noHostsFound": "कोई उपलब्ध होस्ट नहीं मिला।", "presentProtocol": "प्रोटोकॉल", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", + "stopPresenting": "प्रस्तुति देना बंद करो", + "takeOver": "कब्जा", + "takeOverConfirmTitle": "क्या वर्तमान प्रस्तुति को बदलना है?", + "takeOverDescription": "{{name}} अभी प्रस्तुति दे रहा है। कार्यभार संभालने से सभी लोग उस मंच से अलग हो जाएंगे।", + "emptyStage": "आज कोई प्रस्तुति नहीं दे रहा है। आप मंच पर आकर अपना सत्र साझा करें।", + "stageLoading": "मंच से जुड़ना...", + "stageEnded": "प्रस्तुति समाप्त हुई", + "roomEnded": "यह बैठक समाप्त हो गई है", + "presenterLabel": "{{name}} प्रस्तुत कर रहा है", + "guestLink": "अतिथि लिंक", + "guestLinkOn": "अतिथि लिंक चालू है। लिंक के माध्यम से कोई भी व्यक्ति मंच देख सकता है।", + "guestLinkOff": "अतिथि लिंक बंद है।", + "copyLink": "लिंक की प्रतिलिपि करें", + "rotateLink": "लिंक घुमाएँ", + "disableLink": "लिंक अक्षम करें", + "rotateLinkConfirmTitle": "अतिथि लिंक को घुमाएँ?", + "rotateLinkDescription": "वर्तमान लिंक तुरंत काम करना बंद कर देगा। कनेक्टेड एसएसएच गेस्ट डिस्कनेक्ट हो जाएंगे।", + "disableLinkConfirmTitle": "अतिथि लिंक को निष्क्रिय करें?", + "disableLinkDescription": "अनाम एसएसएच व्यूअर्स तुरंत डिस्कनेक्ट हो जाएंगे और वर्तमान लिंक काम करना बंद कर देगा।", + "linkCopied": "लिंक कॉपी हो गया", "roles": "भूमिकाएं", "users": "उपयोगकर्ता", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "उपयोगकर्ताओं को खोजें", + "endConfirmTitle": "क्या इस बैठक को यहीं समाप्त करें?", + "endDescription": "{{name}} सभी के लिए समाप्त हो जाएगा और इसे दोबारा नहीं खोला जा सकता है।", + "endPersistentDescription": "{{name}} में चल रही प्रस्तुति बंद हो जाएगी। कमरा पुनः उपयोग के लिए उपलब्ध रहेगा।", + "deleteRoom": "कमरा हटाएं", + "deleteConfirmTitle": "क्या इस कमरे को हटा दें?", + "deleteDescription": "{{name}} को सभी के लिए स्थायी रूप से हटा दिया जाएगा और इसे पूर्ववत नहीं किया जा सकता है।", + "invitedTo": "आपको \"{{name}} \" में आमंत्रित किया गया था", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "बैठक", + "waiting": "प्रस्तुतकर्ता का इंतजार है...", + "linkInvalid": "यह अतिथि लिंक अमान्य है या मीटिंग समाप्त हो चुकी है" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "इस मीटिंग टैब की समय सीमा समाप्त हो गई है। कृपया मीटिंग पैनल से कमरे को पुनः खोलें।", "retry": "पुनः प्रयास करें", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "अनुरोध नियंत्रण", + "cancelControlRequest": "अनुरोध को रद्द करें", + "controlQueue": "नियंत्रण अनुरोध", + "noControlRequests": "कोई लंबित अनुरोध नहीं।", + "grantControlTo": "{{name}} को नियंत्रण दें", + "dismissControlRequest": "{{name}}के नियंत्रण अनुरोध को खारिज करें", + "releaseControl": "नियंत्रण छोड़ें", + "grantControl": "नियंत्रण सौंप दें", + "revokeControl": "नियंत्रण वापस अपने हाथ में लें।", + "controlRequestedBy": "{{name}} ने नियंत्रण मांगा", + "grant": "अनुदान", + "controlBadge": "नियंत्रण में", + "youArePresenting": "आप किसी दूसरे टैब में प्रेजेंटेशन दे रहे हैं। कृपया प्रेजेंटेशन देना बंद करें और स्टेज किसी और को सौंप दें।", + "created": "कमरा बनाया गया", + "invited": "सदस्यों को आमंत्रित किया गया", + "roomTab": "बैठक", + "serverChanged": "मीटिंग सर्वर बदल गया है। कृपया मीटिंग पैनल से इस मीटिंग को दोबारा खोलें।", + "hostNotSynced": "प्रस्तुति देने से पहले इस होस्ट को मीटिंग सर्वर से सिंक्रनाइज़ करें।", + "linkRequiresServer": "इस डेस्कटॉप को टर्मिक्स सर्वर से लिंक करें और वहां मीटिंग बनाएं ताकि वेब लिंक साझा किया जा सके।" }, "nav": { - "collab": "Meetings" + "collab": "बैठक" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "सेशन शेयरिंग की अनुमति दें", + "description": "लाइव टर्मिनल, RDP, VNC और Telnet सेशन को पूरे इंस्टेंस में साझा करने की अनुमति दें। अक्षम होने पर यह प्रति-होस्ट साझाकरण टॉगल को ओवरराइड कर देता है।" } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "सेशन शेयरिंग की अनुमति दें", + "description": "इस होस्ट पर होने वाले लाइव सेशन को लिंक के माध्यम से या अन्य उपयोगकर्ताओं के साथ साझा किया जा सकता है।" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "सेशन साझा करें और रूम में शामिल हों", + "description": "लाइव सेशन को लिंक के माध्यम से या अन्य उपयोगकर्ताओं के साथ साझा करें, और सहयोग कक्ष बनाएं और उनमें शामिल हों।" } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "मेरे साथ साझा किया गया", + "sharedBy": "{{username}} द्वारा साझा किया गया", + "join": "जोड़ना", + "sharedSessionLabel": "{{hostName}} (साझा)" } } diff --git a/plugins/session-sharing/locales/translated/id_ID.json b/plugins/session-sharing/locales/translated/id_ID.json index 99676f97a..fc8517d85 100644 --- a/plugins/session-sharing/locales/translated/id_ID.json +++ b/plugins/session-sharing/locales/translated/id_ID.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Menghubungkan ke sesi bersama...", + "linkInvalid": "Tautan berbagi ini tidak valid, telah kedaluwarsa, atau telah dicabut.", + "rateLimited": "Terlalu banyak percobaan, silakan coba lagi sebentar lagi.", + "sessionEnded": "Sesi ini telah berakhir.", + "readOnlyBadge": "Hanya tampilan", + "ownerLabel": "Pemilik host" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Sesi berbagi", + "shareButton": "Membagikan", + "notReadyToShare": "Sesi belum siap untuk dibagikan.", "modeTab": { "link": "Link", "user": "Pengguna" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Siapa pun yang memiliki tautan ini dapat bergabung, tidak perlu membuat akun.", + "userModeDescription": "Bagikan dengan pengguna tertentu yang sudah memiliki akses ke host ini. Jika mereka belum memiliki akses, bagikan host tersebut kepada mereka terlebih dahulu atau gunakan tautan. Setelah dibagikan, sesi akan muncul di tab Koneksi mereka.", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Tingkat izin", + "readOnly": "Hanya baca", + "readOnlyDescription": "Bisa menonton sesi secara langsung tetapi tidak bisa mengetik atau berinteraksi.", + "readWrite": "Baca-tulis", + "readWriteDescription": "Dapat mengetik dan berinteraksi dengan sesi seperti halnya pemilik." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", + "expiryLabel": "Kedaluwarsa tautan", + "createLinkButton": "Buat tautan", + "createShareButton": "Bagikan dengan pengguna", + "searchUsersPlaceholder": "Cari pengguna...", + "noUsersFound": "Tidak ada pengguna yang ditemukan", + "linkCreated": "Tautan berbagi telah dibuat", + "linkNeedsServer": "Tautan berbagi hanya berfungsi untuk sesi di server Termix. Hubungkan host ini melalui server tertaut Anda untuk membagikannya dengan tautan.", + "linkCopied": "Tautan disalin ke papan klip", + "copyLink": "Salin tautan", + "shareCreated": "Sesi dibagikan. Sesi tersebut akan muncul di tab Koneksi mereka.", + "shareFailed": "Gagal membuat saham", + "userLacksHostAccess": "Pengguna tersebut belum memiliki akses ke host ini. Bagikan host tersebut kepada mereka terlebih dahulu, atau gunakan tautan sebagai gantinya.", + "activeShares": "Saham aktif", + "noActiveShares": "Tidak ada saham aktif untuk sesi ini.", + "revoke": "Menarik kembali", + "revokeConfirmTitle": "Batalkan pembagian ini?", + "revokeConfirmDescription": "Siapa pun yang menggunakan share ini akan langsung kehilangan akses.", + "revoked": "Saham dicabut", + "revokeFailed": "Gagal mencabut saham", + "joinCount": "{{count}} bergabung", + "joinCount_other": "{{count}} bergabung", + "expiresAt": "Berakhir {{date}}", "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "userShareBadge": "Pengguna: {{username}}", + "loadSharesFailed": "Gagal memuat saham aktif.", + "remoteDisplayUnavailable": "Akses desktop jarak jauh saat ini tidak tersedia.", + "sharedWithMe": "Sesi yang dibagikan kepada saya", + "customHoursPlaceholder": "Waktu hingga akses berakhir" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", - "online": "online", + "createRoom": "Kamar baru", + "roomName": "Nama ruangan", + "persistentRoom": "Ruang permanen", + "persistentRoomHint": "Ruangan yang bersifat permanen akan tetap terdaftar setelah rapat berakhir dan dapat digunakan kembali.", + "noRooms": "Belum ada ruang rapat. Buat ruang rapat untuk memulai pertemuan.", + "openRoom": "Membuka", + "endRoom": "Mengakhiri pertemuan", + "leaveRoom": "Meninggalkan", + "deleteMember": "Menghapus", + "removeMember": "Hapus {{name}}", + "removeMemberTitle": "Hapus anggota ini?", + "removeMemberDescription": "{{name}} akan kehilangan akses ke ruangan ini segera. Setiap penonton SSH yang aktif akan terputus.", + "invite": "Mengundang", + "inviteTitle": "Undang anggota", + "members": "Anggota", + "membersPanel": "Anggota ruangan dan permintaan kontrol", + "membersWithCount": "Anggota ({{count}})", + "guestsWithCount": "Tamu ({{count}})", + "removeGuests": "Singkirkan tamu", + "anonymousGuest": "Tamu", + "online": "on line", "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "you": "(Anda)", + "hostBadge": "Tuan rumah", + "presenterBadge": "Mempersembahkan", + "present": "Hadiah", + "presentTitle": "Naik ke panggung", + "presentHost": "Tuan rumah", + "searchHosts": "Cari host", + "noHostsFound": "Tidak ditemukan host yang tersedia.", + "presentProtocol": "Protokol", + "stopPresenting": "Berhenti melakukan presentasi", + "takeOver": "Mengambil alih", + "takeOverConfirmTitle": "Mengganti presentasi yang ada?", + "takeOverDescription": "{{name}} sedang melakukan presentasi sekarang. Mengambil alih akan memutuskan koneksi semua orang dari panggung tersebut.", + "emptyStage": "Tidak ada yang sedang presentasi. Silakan naik ke panggung untuk berbagi sesi.", + "stageLoading": "Terhubung ke panggung...", + "stageEnded": "Presentasi berakhir", + "roomEnded": "Pertemuan ini telah berakhir.", + "presenterLabel": "{{name}} sedang menampilkan", + "guestLink": "Tautan tamu", + "guestLinkOn": "Tautan tamu sudah aktif. Siapa pun yang memiliki tautan tersebut dapat menonton pertunjukan di panggung.", + "guestLinkOff": "Tautan tamu dinonaktifkan.", + "copyLink": "Salin tautan", + "rotateLink": "Putar tautan", + "disableLink": "Nonaktifkan tautan", + "rotateLinkConfirmTitle": "Putar tautan tamu?", + "rotateLinkDescription": "Koneksi saat ini akan segera berhenti berfungsi. Tamu SSH yang terhubung akan terputus.", + "disableLinkConfirmTitle": "Nonaktifkan tautan tamu?", + "disableLinkDescription": "Pengguna anonim yang mengakses melalui SSH akan langsung terputus dan tautan saat ini akan berhenti berfungsi.", + "linkCopied": "Tautan disalin", + "roles": "Peran", + "users": "Pengguna", + "searchUsers": "Cari pengguna", + "endConfirmTitle": "Apakah pertemuan ini bisa diakhiri?", + "endDescription": "{{name}} akan berakhir untuk semua orang dan tidak dapat dibuka kembali.", + "endPersistentDescription": "Presentasi aktif di {{name}} akan berhenti. Ruangan tetap tersedia untuk digunakan kembali.", + "deleteRoom": "Hapus ruangan", + "deleteConfirmTitle": "Hapus ruangan ini?", + "deleteDescription": "{{name}} akan dihapus secara permanen untuk semua orang dan tidak dapat dibatalkan.", + "invitedTo": "Anda diundang ke \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Pertemuan", + "waiting": "Menunggu pembawa acara...", + "linkInvalid": "Tautan tamu ini tidak valid atau rapat telah berakhir." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "Tab rapat ini telah kedaluwarsa. Buka kembali ruangan dari panel Rapat.", + "retry": "Mencoba kembali", + "requestControl": "Kontrol permintaan", + "cancelControlRequest": "Batalkan permintaan", + "controlQueue": "Permintaan kontrol", + "noControlRequests": "Tidak ada permintaan yang tertunda.", + "grantControlTo": "Berikan kendali ke {{name}}", + "dismissControlRequest": "Abaikan permintaan kontrol {{name}}", + "releaseControl": "Lepaskan kontrol", + "grantControl": "Berikan kendali", + "revokeControl": "Ambil kembali kendali", + "controlRequestedBy": "{{name}} meminta kendali", + "grant": "Menganugerahkan", + "controlBadge": "Dalam kendali", + "youArePresenting": "Anda sedang melakukan presentasi di tab lain. Hentikan presentasi untuk memberikan kesempatan kepada saya.", + "created": "Ruangan dibuat", + "invited": "Anggota diundang", + "roomTab": "Pertemuan", + "serverChanged": "Server rapat telah berubah. Buka kembali rapat ini dari panel Rapat.", + "hostNotSynced": "Sinkronkan host ini dengan server rapat sebelum presentasi.", + "linkRequiresServer": "Hubungkan desktop ini ke server Termix dan buat rapat di sana untuk berbagi tautan web." }, "nav": { - "collab": "Meetings" + "collab": "Pertemuan" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Izinkan Berbagi Sesi", + "description": "Izinkan sesi terminal langsung, RDP, VNC, dan Telnet untuk dibagikan di seluruh instance. Menggantikan setiap pengaturan berbagi per host saat dinonaktifkan." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Izinkan Berbagi Sesi", + "description": "Izinkan sesi langsung di host ini dibagikan melalui tautan atau dengan pengguna lain." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Bagikan sesi dan bergabunglah dengan ruangan.", + "description": "Bagikan sesi langsung melalui tautan atau dengan pengguna lain, serta buat dan bergabunglah dengan ruang kolaborasi." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Tidak pernah", + "oneHour": "1 jam", + "oneDay": "24 jam", + "sevenDays": "7 hari", + "thirtyDays": "30 hari", + "custom": "Kebiasaan" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", + "sectionSharedWithMe": "Dibagikan kepada saya", "sharedBy": "Dibagikan oleh {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "join": "Bergabung", + "sharedSessionLabel": "{{hostName}} (dibagikan)" } } diff --git a/plugins/session-sharing/locales/translated/no_NO.json b/plugins/session-sharing/locales/translated/no_NO.json index ba5add915..36566700f 100644 --- a/plugins/session-sharing/locales/translated/no_NO.json +++ b/plugins/session-sharing/locales/translated/no_NO.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Kobler til delt økt...", + "linkInvalid": "Denne delingslenken er ugyldig, utløpt eller har blitt tilbakekalt", + "rateLimited": "For mange forsøk, prøv igjen snart", + "sessionEnded": "Denne økten er avsluttet", + "readOnlyBadge": "Kun visning", + "ownerLabel": "Vertseier" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Del økt", + "shareButton": "Dele", + "notReadyToShare": "Økten er ikke klar til deling ennå", "modeTab": { - "link": "Link", + "link": "Lenke", "user": "Bruker" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Alle med denne lenken kan bli med, ingen konto kreves.", + "userModeDescription": "Del med en bestemt bruker som allerede har tilgang til denne verten. Hvis de ikke har tilgang ennå, del verten med dem først eller bruk en lenke i stedet. Når økten er delt, vises den i deres Tilkoblinger-fane.", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Tillatelsesnivå", + "readOnly": "Skrivebeskyttet", + "readOnlyDescription": "Kan se økten direkte, men kan ikke skrive eller samhandle.", + "readWrite": "Lese-skrive", + "readWriteDescription": "Kan skrive og samhandle med økten akkurat som eieren." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "Utløpsdato for lenke", + "createLinkButton": "Opprett lenke", + "createShareButton": "Del med brukeren", + "searchUsersPlaceholder": "Søk etter brukere...", + "noUsersFound": "Ingen brukere funnet", + "linkCreated": "Delingslenke opprettet", + "linkNeedsServer": "Delingslenker fungerer bare for økter på en Termix-server. Koble til denne verten via den tilkoblede serveren din for å dele den med en lenke.", + "linkCopied": "Lenke kopiert til utklippstavlen", + "copyLink": "Kopier lenke", + "shareCreated": "Økten er delt. Den vil vises i Tilkoblinger-fanen deres.", + "shareFailed": "Kunne ikke opprette delingen", + "userLacksHostAccess": "Den brukeren har ikke tilgang til denne verten ennå. Del verten med dem først, eller bruk en lenke i stedet.", + "activeShares": "Aktive aksjer", + "noActiveShares": "Ingen aktive delinger for denne økten", + "revoke": "Tilbakekalling", + "revokeConfirmTitle": "Tilbakekalle denne delingen?", + "revokeConfirmDescription": "Alle som bruker denne delingen vil miste tilgangen umiddelbart.", + "revoked": "Deling tilbakekalt", + "revokeFailed": "Kunne ikke tilbakekalle delingen", + "joinCount": "{{count}} bli med", + "joinCount_other": "{{count}} blir med", + "expiresAt": "Utløper {{date}}", + "linkShareBadge": "Lenke", + "userShareBadge": "Bruker: {{username}}", + "loadSharesFailed": "Kunne ikke laste inn aktive delinger", + "remoteDisplayUnavailable": "Eksternt skrivebord er ikke tilgjengelig akkurat nå.", + "sharedWithMe": "Økter delt med meg", + "customHoursPlaceholder": "Timer til tilgangen utløper" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "createRoom": "Nytt rom", + "roomName": "Romnavn", + "persistentRoom": "Permanent rom", + "persistentRoomHint": "Permanente rom forblir oppført etter at møtet er avsluttet og kan brukes om igjen.", + "noRooms": "Ingen rom ennå. Opprett et for å starte et møte.", + "openRoom": "Åpne", + "endRoom": "Avslutt møtet", + "leaveRoom": "Forlate", "deleteMember": "Fjern", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMember": "Fjern {{name}}", + "removeMemberTitle": "Fjerne dette medlemmet?", + "removeMemberDescription": "{{name}} mister tilgangen til dette rommet umiddelbart. Alle aktive SSH-lesere blir frakoblet.", + "invite": "Invitere", + "inviteTitle": "Inviter medlemmer", + "members": "Medlemmer", + "membersPanel": "Rommedlemmer og kontrollforespørsler", + "membersWithCount": "Medlemmer ({{count}})", + "guestsWithCount": "Gjester ({{count}})", + "removeGuests": "Fjern gjester", + "anonymousGuest": "Gjest", "online": "tilkoblet", "offline": "frakoblet", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", + "you": "(du)", + "hostBadge": "Vert", + "presenterBadge": "Presenterer", + "present": "Nåværende", + "presentTitle": "Innta scenen", + "presentHost": "Vert", + "searchHosts": "Søk etter verter", + "noHostsFound": "Ingen tilgjengelige verter funnet.", + "presentProtocol": "Protokoll", + "stopPresenting": "Slutt å presentere", + "takeOver": "Ta over", + "takeOverConfirmTitle": "Erstatte den nåværende presentasjonen?", + "takeOverDescription": "{{name}} presenterer nå. Å ta over vil koble alle fra det stadiet.", + "emptyStage": "Ingen presenterer. Gå på scenen for å dele en økt.", + "stageLoading": "Kobler til scenen...", + "stageEnded": "Presentasjonen ble avsluttet", + "roomEnded": "Dette møtet er avsluttet", + "presenterLabel": "{{name}} presenterer", + "guestLink": "Gjestelenke", + "guestLinkOn": "Gjestelenken er på. Alle med lenken kan se scenen.", + "guestLinkOff": "Gjestelenken er av.", + "copyLink": "Kopier lenke", + "rotateLink": "Roter lenken", + "disableLink": "Deaktiver lenken", + "rotateLinkConfirmTitle": "Roter gjestelenken?", + "rotateLinkDescription": "Den nåværende lenken vil slutte å virke umiddelbart. Tilkoblede SSH-gjester vil bli frakoblet.", + "disableLinkConfirmTitle": "Deaktivere gjestelenken?", + "disableLinkDescription": "Anonyme SSH-lesere vil bli frakoblet umiddelbart, og den nåværende koblingen vil slutte å fungere.", + "linkCopied": "Lenken er kopiert", + "roles": "Roller", "users": "Brukere", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "Søk etter brukere", + "endConfirmTitle": "Avslutte dette møtet?", + "endDescription": "{{name}} vil avsluttes for alle og kan ikke åpnes igjen.", + "endPersistentDescription": "Den aktive presentasjonen i {{name}} stopper. Rommet er fortsatt tilgjengelig for gjenbruk.", + "deleteRoom": "Slett rom", + "deleteConfirmTitle": "Slette dette rommet?", + "deleteDescription": "{{name}} vil bli permanent slettet for alle og kan ikke angres.", + "invitedTo": "Du ble invitert til «{{name}}»", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Møte", + "waiting": "Venter på programlederen...", + "linkInvalid": "Denne gjestelenken er ugyldig, eller møtet er avsluttet" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Denne møtefanen er utløpt. Åpne rommet på nytt fra Møter-panelet.", "retry": "Prøv igjen", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Be om kontroll", + "cancelControlRequest": "Avbryt forespørsel", + "controlQueue": "Kontrollforespørsler", + "noControlRequests": "Ingen ventende forespørsler.", + "grantControlTo": "Gi kontroll til {{name}}", + "dismissControlRequest": "Avvis kontrollforespørselen til {{name}}", + "releaseControl": "Slipp kontrollen", + "grantControl": "Gi kontroll", + "revokeControl": "Ta tilbake kontrollen", + "controlRequestedBy": "{{name}} ba om kontroll", + "grant": "Stipend", + "controlBadge": "I kontroll", + "youArePresenting": "Du presenterer i en annen fane. Stopp presentasjonen for å gi fra deg scenen.", + "created": "Rommet er opprettet", + "invited": "Medlemmer invitert", + "roomTab": "Møte", + "serverChanged": "Møteserveren er endret. Åpne dette møtet på nytt fra Møter-panelet.", + "hostNotSynced": "Synkroniser denne verten med møteserveren før presentasjonen.", + "linkRequiresServer": "Koble dette skrivebordet til en Termix-server og opprett møtet der for å dele en nettlenke." }, "nav": { - "collab": "Meetings" + "collab": "Møter" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Tillat øktdeling", + "description": "Tillat deling av Live Terminal-, RDP-, VNC- og Telnet-økter på tvers av hele instansen. Overstyrer alle delingsalternativer per vert når de er deaktivert." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Tillat øktdeling", + "description": "La direktesendte økter på denne verten deles via lenke eller med andre brukere" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Del økter og bli med i rom", + "description": "Del direktesendte økter via lenke eller med andre brukere, og opprett og bli med i samarbeidsrom." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Aldri", + "oneHour": "1 time", + "oneDay": "24 timer", + "sevenDays": "7 dager", + "thirtyDays": "30 dager", + "custom": "Skikk" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Delt med meg", + "sharedBy": "Delt av {{username}}", + "join": "Bli med", + "sharedSessionLabel": "{{hostName}} (delt)" } } diff --git a/plugins/session-sharing/locales/translated/pl_PL.json b/plugins/session-sharing/locales/translated/pl_PL.json index fa0ab3ad5..332834576 100644 --- a/plugins/session-sharing/locales/translated/pl_PL.json +++ b/plugins/session-sharing/locales/translated/pl_PL.json @@ -6,7 +6,7 @@ "rateLimited": "Zbyt wiele prób, spróbuj ponownie za chwilę", "sessionEnded": "Ta sesja dobiegła końca", "readOnlyBadge": "Tylko do podglądu", - "ownerLabel": "Host owner" + "ownerLabel": "Właściciel gospodarza" }, "modalTitle": "Udostępnij sesję", "shareButton": "Udostępnij", @@ -30,7 +30,7 @@ "searchUsersPlaceholder": "Wyszukaj użytkowników...", "noUsersFound": "Nie znaleziono użytkowników", "linkCreated": "Utworzono link do udostępniania", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", + "linkNeedsServer": "Linki do udostępniania działają tylko w sesjach na serwerze Termix. Połącz się z tym hostem przez powiązany serwer, aby udostępnić go za pomocą linku.", "linkCopied": "Link skopiowany do schowka", "copyLink": "Kopiuj link", "shareCreated": "Udostępniono sesję. Pojawi się na jego karcie Połączenia.", @@ -49,101 +49,101 @@ "linkShareBadge": "Link", "userShareBadge": "Użytkownik: {{username}}", "loadSharesFailed": "Nie udało się załadować aktywnych udostępnień", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "remoteDisplayUnavailable": "Zdalny pulpit nie jest obecnie dostępny.", + "sharedWithMe": "Sesje udostępnione mi", "customHoursPlaceholder": "Godziny do wygaśnięcia dostępu" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "Nowy pokój", + "roomName": "Nazwa pokoju", + "persistentRoom": "Trwały pokój", + "persistentRoomHint": "Trwałe pokoje pozostają na liście po zakończeniu spotkania i można je ponownie wykorzystać.", + "noRooms": "Brak pokoi. Utwórz jeden, aby rozpocząć spotkanie.", "openRoom": "Otwórz", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "Zakończ spotkanie", + "leaveRoom": "Wyjechać", "deleteMember": "Usuń", "removeMember": "Usuń {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "Usunąć tego członka?", + "removeMemberDescription": "{{name}} natychmiast utraci dostęp do tego pokoju. Każdy aktywny użytkownik SSH zostanie rozłączony.", + "invite": "Zapraszać", + "inviteTitle": "Zaproś członków", + "members": "Członkowie", + "membersPanel": "Członkowie pokoju i prośby o kontrolę", + "membersWithCount": "Członkowie ({{count}})", + "guestsWithCount": "Goście ({{count}})", + "removeGuests": "Usuń gości", + "anonymousGuest": "Gość", "online": "online", "offline": "offline", - "you": "(you)", + "you": "(Ty)", "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "Przedstawianie", + "present": "Obecny", + "presentTitle": "Wejdź na scenę", "presentHost": "Host", "searchHosts": "Wyszukaj hosty", - "noHostsFound": "No available hosts found.", + "noHostsFound": "Nie znaleziono dostępnych hostów.", "presentProtocol": "Protokół", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", + "stopPresenting": "Zatrzymaj prezentację", + "takeOver": "Przejąć", + "takeOverConfirmTitle": "Zastąpić bieżącą prezentację?", + "takeOverDescription": "{{name}} jest teraz prezentowany. Przejęcie kontroli spowoduje odłączenie wszystkich od tej sceny.", + "emptyStage": "Nikt nie prowadzi prezentacji. Wejdź na scenę i podziel się swoją sesją.", + "stageLoading": "Łączę się ze sceną...", + "stageEnded": "Prezentacja dobiegła końca", + "roomEnded": "To spotkanie dobiegło końca", + "presenterLabel": "{{name}} prezentuje", + "guestLink": "Link gościnny", + "guestLinkOn": "Link dla gości jest włączony. Każdy, kto ma link, może obejrzeć scenę.", + "guestLinkOff": "Link dla gości jest wyłączony.", "copyLink": "Kopiuj link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", + "rotateLink": "Obróć link", + "disableLink": "Wyłącz łącze", + "rotateLinkConfirmTitle": "Obrócić link gościa?", + "rotateLinkDescription": "Obecny link natychmiast przestanie działać. Połączeni goście SSH zostaną rozłączeni.", + "disableLinkConfirmTitle": "Wyłączyć link gościa?", + "disableLinkDescription": "Anonimowi użytkownicy SSH zostaną natychmiast rozłączeni, a bieżące łącze przestanie działać.", "linkCopied": "Link skopiowany", "roles": "Role", "users": "Użytkownicy", "searchUsers": "Wyszukaj użytkowników", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "endConfirmTitle": "Zakończyć to spotkanie?", + "endDescription": "{{name}} zakończy się dla wszystkich i nie będzie można go ponownie otworzyć.", + "endPersistentDescription": "Aktywna prezentacja w {{name}} zostanie zatrzymana. Pokój pozostaje dostępny do ponownego użycia.", + "deleteRoom": "Usuń pokój", + "deleteConfirmTitle": "Usunąć ten pokój?", + "deleteDescription": "{{name}} zostanie trwale usunięty u wszystkich i nie będzie można tego cofnąć.", + "invitedTo": "Zostałeś zaproszony do „{{name}}”", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Spotkanie", + "waiting": "Czekam na prezentera...", + "linkInvalid": "Ten link dla gościa jest nieprawidłowy lub spotkanie się zakończyło" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Ta karta spotkania wygasła. Otwórz ponownie pokój z panelu Spotkania.", "retry": "Ponów", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Żądanie kontroli", + "cancelControlRequest": "Anuluj prośbę", + "controlQueue": "Żądania kontrolne", + "noControlRequests": "Brak oczekujących żądań.", + "grantControlTo": "Przekaż kontrolę {{name}}", + "dismissControlRequest": "Odrzuć żądanie kontroli {{name}}", + "releaseControl": "Kontrola wydania", + "grantControl": "Oddaj kontrolę", + "revokeControl": "Odzyskaj kontrolę", + "controlRequestedBy": "{{name}} poprosił o kontrolę", + "grant": "Dotacja", + "controlBadge": "Pod kontrolą", + "youArePresenting": "Prezentujesz na innej karcie. Zatrzymaj prezentację, aby przekazać scenę.", + "created": "Pokój utworzony", + "invited": "Zaproszeni członkowie", + "roomTab": "Spotkanie", + "serverChanged": "Zmieniono serwer spotkań. Otwórz ponownie to spotkanie z panelu Spotkania.", + "hostNotSynced": "Przed rozpoczęciem prezentacji zsynchronizuj tego hosta z serwerem konferencyjnym.", + "linkRequiresServer": "Połącz ten pulpit z serwerem Termix i utwórz tam spotkanie, aby udostępnić łącze internetowe." }, "nav": { - "collab": "Meetings" + "collab": "Spotkania" }, "settings": { "admin": { @@ -161,8 +161,8 @@ }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Udostępniaj sesje i dołącz do pokoi", + "description": "Udostępniaj sesje na żywo za pośrednictwem łącza lub innym użytkownikom, a także twórz pokoje współpracy i do nich dołączaj." } }, "hosts": { diff --git a/plugins/session-sharing/locales/translated/pt_BR.json b/plugins/session-sharing/locales/translated/pt_BR.json index bf820bf29..ea5e46114 100644 --- a/plugins/session-sharing/locales/translated/pt_BR.json +++ b/plugins/session-sharing/locales/translated/pt_BR.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Conectando à sessão compartilhada...", + "linkInvalid": "Este link de compartilhamento é inválido, expirou ou foi revogado.", + "rateLimited": "Muitas tentativas foram feitas, tente novamente em breve.", + "sessionEnded": "Esta sessão terminou.", + "readOnlyBadge": "Somente visualização", + "ownerLabel": "Proprietário do anfitrião" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Sessão de compartilhamento", + "shareButton": "Compartilhar", + "notReadyToShare": "A sessão ainda não está pronta para ser compartilhada.", "modeTab": { "link": "Link", "user": "Usuário" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Qualquer pessoa com este link pode participar, sem necessidade de criar uma conta.", + "userModeDescription": "Compartilhe com um usuário específico que já tenha acesso a este host. Caso ele ainda não tenha acesso, compartilhe o host com ele primeiro ou use um link. Após o compartilhamento, a sessão aparecerá na aba Conexões do usuário.", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Nível de permissão", + "readOnly": "Somente leitura", + "readOnlyDescription": "É possível assistir à sessão ao vivo, mas não é possível digitar ou interagir.", + "readWrite": "Ler e escrever", + "readWriteDescription": "Pode digitar e interagir com a sessão da mesma forma que o proprietário." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", + "expiryLabel": "Expiração do link", + "createLinkButton": "Criar link", + "createShareButton": "Compartilhar com o usuário", + "searchUsersPlaceholder": "Pesquisar usuários...", + "noUsersFound": "Nenhum usuário encontrado", + "linkCreated": "Compartilhar link criado", + "linkNeedsServer": "Os links de compartilhamento funcionam apenas para sessões em um servidor Termix. Conecte este host através do seu servidor vinculado para compartilhá-lo com um link.", + "linkCopied": "Link copiado para a área de transferência", + "copyLink": "Copiar link", + "shareCreated": "Sessão compartilhada. Ela aparecerá na aba Conexões deles.", + "shareFailed": "Falha ao criar compartilhamento", + "userLacksHostAccess": "Esse usuário ainda não tem acesso a este host. Compartilhe o host com ele primeiro ou use um link.", + "activeShares": "Ações ativas", + "noActiveShares": "Nenhuma ação ativa nesta sessão.", + "revoke": "Revogar", + "revokeConfirmTitle": "Revogar essa participação?", + "revokeConfirmDescription": "Qualquer pessoa que usar este compartilhamento perderá o acesso imediatamente.", + "revoked": "Ações revogadas", + "revokeFailed": "Falha ao revogar a participação", + "joinCount": "{{count}} junte-se", + "joinCount_other": "{{count}} entra", + "expiresAt": "Expira em {{date}}", "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "userShareBadge": "Usuário: {{username}}", + "loadSharesFailed": "Falha ao carregar compartilhamentos ativos", + "remoteDisplayUnavailable": "O acesso remoto à área de trabalho não está disponível no momento.", + "sharedWithMe": "Sessões compartilhadas comigo", + "customHoursPlaceholder": "Horas restantes até o acesso expirar" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "createRoom": "Quarto novo", + "roomName": "Nome do quarto", + "persistentRoom": "Sala persistente", + "persistentRoomHint": "As salas permanentes permanecem listadas após o término da reunião e podem ser reutilizadas.", + "noRooms": "Ainda não há salas. Crie uma para iniciar uma reunião.", + "openRoom": "Abrir", + "endRoom": "Encerramento da reunião", + "leaveRoom": "Deixar", "deleteMember": "Remover", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMember": "Remover {{name}}", + "removeMemberTitle": "Remover este membro?", + "removeMemberDescription": "{{name}} perderá o acesso a esta sala imediatamente. Qualquer visualizador SSH ativo será desconectado.", + "invite": "Convidar", + "inviteTitle": "Convide membros", + "members": "Membros", + "membersPanel": "Membros da sala e solicitações de controle", + "membersWithCount": "Membros ({{count}})", + "guestsWithCount": "Convidados ({{count}})", + "removeGuests": "Remover convidados", + "anonymousGuest": "Convidado", "online": "online", "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "you": "(você)", + "hostBadge": "Hospedar", + "presenterBadge": "Apresentando", + "present": "Presente", + "presentTitle": "Suba ao palco", + "presentHost": "Hospedar", + "searchHosts": "Pesquisar anfitriões", + "noHostsFound": "Nenhum host disponível encontrado.", + "presentProtocol": "Protocolo", + "stopPresenting": "Pare de apresentar", + "takeOver": "Assumir", + "takeOverConfirmTitle": "Substituir a apresentação atual?", + "takeOverDescription": "{{name}} está apresentando agora. Assumir o controle desconectará todos desse palco.", + "emptyStage": "Ninguém está apresentando. Suba ao palco para compartilhar uma sessão.", + "stageLoading": "Conectando-se ao palco...", + "stageEnded": "A apresentação terminou.", + "roomEnded": "Esta reunião terminou.", + "presenterLabel": "{{name}} está apresentando", + "guestLink": "Link para convidado", + "guestLinkOn": "O link para convidados está ativado. Qualquer pessoa com o link pode assistir à apresentação.", + "guestLinkOff": "O link para visitantes está desativado.", + "copyLink": "Copiar link", + "rotateLink": "Rotacionar link", + "disableLink": "Desativar link", + "rotateLinkConfirmTitle": "Girar o link do convidado?", + "rotateLinkDescription": "A conexão atual deixará de funcionar imediatamente. Os dispositivos convidados SSH conectados serão desconectados.", + "disableLinkConfirmTitle": "Desativar o link de convidado?", + "disableLinkDescription": "Os visualizadores SSH anônimos serão desconectados imediatamente e a conexão atual deixará de funcionar.", + "linkCopied": "Link copiado", + "roles": "Funções", + "users": "Usuários", + "searchUsers": "Usuários da pesquisa", + "endConfirmTitle": "Encerrar esta reunião?", + "endDescription": "{{name}} será encerrado para todos e não poderá ser reaberto.", + "endPersistentDescription": "A apresentação ativa em {{name}} será interrompida. A sala permanece disponível para reutilização.", + "deleteRoom": "Excluir sala", + "deleteConfirmTitle": "Apagar esta sala?", + "deleteDescription": "{{name}} será excluído permanentemente para todos e não poderá ser desfeito.", + "invitedTo": "Você foi convidado para \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Reunião", + "waiting": "Aguardando o apresentador...", + "linkInvalid": "Este link de convidado é inválido ou a reunião já terminou." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "Esta aba da reunião expirou. Reabra a sala no painel Reuniões.", + "retry": "Tentar novamente", + "requestControl": "Controle de solicitação", + "cancelControlRequest": "Cancelar solicitação", + "controlQueue": "Solicitações de controle", + "noControlRequests": "Não há solicitações pendentes.", + "grantControlTo": "Dê o controle para {{name}}", + "dismissControlRequest": "Rejeitar solicitação de controle de {{name}}", + "releaseControl": "Liberar controle", + "grantControl": "Dê o controle", + "revokeControl": "Retome o controle", + "controlRequestedBy": "{{name}} solicitou o controle", + "grant": "Conceder", + "controlBadge": "No controle", + "youArePresenting": "Você está apresentando em outra aba. Pare de apresentar para passar a palavra.", + "created": "Quarto criado", + "invited": "Membros convidados", + "roomTab": "Reunião", + "serverChanged": "O servidor da reunião foi alterado. Reabra esta reunião no painel Reuniões.", + "hostNotSynced": "Sincronize este host com o servidor de reuniões antes de apresentar.", + "linkRequiresServer": "Conecte este computador a um servidor Termix e crie a reunião lá para compartilhar um link da web." }, "nav": { - "collab": "Meetings" + "collab": "Reuniões" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Permitir compartilhamento de sessão", + "description": "Permite que sessões de terminal ao vivo, RDP, VNC e Telnet sejam compartilhadas em toda a instância. Substitui todas as configurações de compartilhamento por host quando desativada." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Permitir compartilhamento de sessão", + "description": "Permitir que as sessões ao vivo neste servidor sejam compartilhadas por meio de link ou com outros usuários." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Participe de sessões e entre em salas.", + "description": "Compartilhe sessões ao vivo por link ou com outros usuários, e crie e participe de salas de colaboração." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Nunca", + "oneHour": "1 hora", + "oneDay": "24 horas", + "sevenDays": "7 dias", + "thirtyDays": "30 dias", + "custom": "Personalizado" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Compartilhou comigo", + "sharedBy": "Compartilhado por {{username}}", + "join": "Juntar", + "sharedSessionLabel": "{{hostName}} (compartilhado)" } } diff --git a/plugins/session-sharing/locales/translated/pt_PT.json b/plugins/session-sharing/locales/translated/pt_PT.json index 43a588bae..34c1194a6 100644 --- a/plugins/session-sharing/locales/translated/pt_PT.json +++ b/plugins/session-sharing/locales/translated/pt_PT.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Ligar à sessão partilhada...", + "linkInvalid": "Este link de partilha é inválido, expirou ou foi revogado.", + "rateLimited": "Muitas tentativas foram feitas, tente novamente em breve.", + "sessionEnded": "Esta sessão terminou.", + "readOnlyBadge": "Somente visualização", + "ownerLabel": "Proprietário do anfitrião" }, - "modalTitle": "Share session", + "modalTitle": "Sessão de partilha", "shareButton": "Partilhar", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "A sessão ainda não está pronta para ser partilhada.", "modeTab": { - "link": "Link", + "link": "Ligação", "user": "Utilizador" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Qualquer pessoa com este link pode participar, sem necessidade de criar conta.", + "userModeDescription": "Partilhe com um utilizador específico que já tenha acesso a este host. Caso ainda não tenha acesso, partilhe primeiro o host com ele ou utilize um link. Após a partilha, a sessão aparecerá no separador Conexões dele.", "permissionLevel": { "label": "Nível de permissão", "readOnly": "Apenas leitura", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "É possível assistir à sessão em direto, mas não é possível digitar ou interagir.", + "readWrite": "Ler e escrever", + "readWriteDescription": "Pode digitar e interagir com a sessão da mesma forma que o proprietário." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "Expiração do link", + "createLinkButton": "Criar link", + "createShareButton": "Partilhar com o usuário", + "searchUsersPlaceholder": "Pesquisar utilizadores...", + "noUsersFound": "Nenhum utilizador encontrado", + "linkCreated": "Partilhar link criado", + "linkNeedsServer": "Os links de partilha funcionam apenas para sessões num servidor Termix. Ligue este host através do seu servidor ligado para o partilhar com um link.", + "linkCopied": "Ligação copiada para a área de transferência", + "copyLink": "Copiar link", + "shareCreated": "Sessão partilhada. Ela aparecerá no separador Conexões deles.", + "shareFailed": "Falha ao criar partilha", + "userLacksHostAccess": "Esse utilizador ainda não tem acesso a este host. Partilhe o host com ele primeiro ou use um link.", + "activeShares": "Ações ativas", + "noActiveShares": "Sem ação ativa nesta sessão.", "revoke": "Revogar", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "Revogar essa participação?", + "revokeConfirmDescription": "Qualquer pessoa que utilize esta partilha perderá o acesso imediatamente.", + "revoked": "Ações revogadas", + "revokeFailed": "Falha ao revogar a participação", + "joinCount": "{{count}} junte-se", + "joinCount_other": "{{count}} entra", "expiresAt": "Expira a {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "Ligação", + "userShareBadge": "Utilizador: {{username}}", + "loadSharesFailed": "Falha ao carregar partilhas ativas", + "remoteDisplayUnavailable": "O acesso remoto à área de trabalho não está disponível de momento.", + "sharedWithMe": "Sessões partilhadas comigo", "customHoursPlaceholder": "Horas até à expiração do acesso" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "Quarto novo", + "roomName": "Nome do quarto", + "persistentRoom": "Sala persistente", + "persistentRoomHint": "As salas permanentes permanecem listadas após o término da reunião e podem ser reutilizadas.", + "noRooms": "Ainda não há salas. Crie uma para iniciar uma reunião.", "openRoom": "Abrir", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "Encerramento da reunião", + "leaveRoom": "Ausência", "deleteMember": "Remover", "removeMember": "Remover {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "Remover este membro?", + "removeMemberDescription": "{{name}} perderá o acesso a esta sala imediatamente. Qualquer visualizador SSH ativo será desligado.", + "invite": "Convidar", + "inviteTitle": "Convide os membros", + "members": "Membros", + "membersPanel": "Membros da sala e pedidos de controlo", + "membersWithCount": "Membros ({{count}})", + "guestsWithCount": "Convidados ({{count}})", + "removeGuests": "Remover convidados", + "anonymousGuest": "Convidado", "online": "online", "offline": "offline", - "you": "(you)", + "you": "(tu)", "hostBadge": "Servidor", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "Apresentando", + "present": "Presente", + "presentTitle": "Suba ao palco", "presentHost": "Servidor", "searchHosts": "Pesquisar hosts", - "noHostsFound": "No available hosts found.", + "noHostsFound": "Nenhum host disponível encontrado.", "presentProtocol": "Protocolo", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", + "stopPresenting": "Pare de apresentar", + "takeOver": "Assumir", + "takeOverConfirmTitle": "Substituir a apresentação atual?", + "takeOverDescription": "{{name}} está a apresentar agora. Assumir o controlo desconectará todos desse palco.", + "emptyStage": "Ninguém está a apresentar. Suba ao palco para partilhar uma sessão.", + "stageLoading": "Ligar-se ao palco...", + "stageEnded": "A apresentação terminou.", + "roomEnded": "Esta reunião terminou.", + "presenterLabel": "{{name}} está a apresentar", + "guestLink": "Link para convidado", + "guestLinkOn": "O link para convidados está ativado. Qualquer pessoa com o link pode assistir à apresentação.", + "guestLinkOff": "O link para os visitantes está desativado.", + "copyLink": "Copiar link", + "rotateLink": "Rotacionar ligação", + "disableLink": "Desativar ligação", + "rotateLinkConfirmTitle": "Rodar o link do convidado?", + "rotateLinkDescription": "A ligação atual deixará de funcionar imediatamente. Os dispositivos convidados SSH ligados serão desligados.", + "disableLinkConfirmTitle": "Desativar o link de convidado?", + "disableLinkDescription": "Os visualizadores SSH anónimos serão imediatamente desligados e a ligação atual deixará de funcionar.", "linkCopied": "Ligação copiada", "roles": "Funções", "users": "Utilizadores", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "Os utilizadores da pesquisa", + "endConfirmTitle": "Encerrar esta reunião?", + "endDescription": "{{name}} será encerrado para todos e não poderá ser reaberto.", + "endPersistentDescription": "A apresentação ativa em {{name}} será interrompida. A sala continua disponível para reutilização.", + "deleteRoom": "Apagar sala", + "deleteConfirmTitle": "Apagar esta sala?", + "deleteDescription": "{{name}} será eliminado permanentemente para todos e não poderá ser anulado.", + "invitedTo": "Foi convidado para \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Reunião", + "waiting": "À espera do apresentador...", + "linkInvalid": "Este link de convidado é inválido ou a reunião já terminou." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Esta aba da reunião expirou. Volte a abrir a sala no painel Reuniões.", "retry": "Repetir", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Controle de solicitação", + "cancelControlRequest": "Cancelar pedido", + "controlQueue": "Solicitações de controlo", + "noControlRequests": "Não há pedidos pendentes.", + "grantControlTo": "Dê o controlo a {{name}}", + "dismissControlRequest": "Rejeitar pedido de controlo de {{name}}", + "releaseControl": "Libertar controle", + "grantControl": "Dê o controlo", + "revokeControl": "Retome o comando", + "controlRequestedBy": "{{name}} solicitou o controlo", + "grant": "Subvenção", + "controlBadge": "No controlo", + "youArePresenting": "Está a apresentar em outra aba. Pare de apresentar para passar a palavra.", + "created": "Quarto criado", + "invited": "Membros convidados", + "roomTab": "Reunião", + "serverChanged": "O servidor da reunião foi alterado. Reabra esta reunião no painel Reuniões.", + "hostNotSynced": "Sincronize este host com o servidor de reuniões antes de apresentar.", + "linkRequiresServer": "Ligue este computador a um servidor Termix e crie aí a reunião para partilhar um link web." }, "nav": { - "collab": "Meetings" + "collab": "Reuniões" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Permitir partilha de sessão", + "description": "Permite que as sessões de terminal ao vivo, RDP, VNC e Telnet sejam partilhadas em toda a instância. Substitui todas as definições de partilha por host quando desativada." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Permitir partilha de sessão", + "description": "Permitir que as sessões em direto neste servidor sejam partilhadas através de link ou com outros utilizadores." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Participe em sessões e entre em salas.", + "description": "Partilhe sessões ao vivo por link ou com outros utilizadores, e crie e participe em salas de colaboração." } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Partilhou comigo", + "sharedBy": "Partilhado por {{username}}", + "join": "Juntar", + "sharedSessionLabel": "{{hostName}} (partilhado)" } } diff --git a/plugins/session-sharing/locales/translated/ru_RU.json b/plugins/session-sharing/locales/translated/ru_RU.json index 0123cfe13..f1f676546 100644 --- a/plugins/session-sharing/locales/translated/ru_RU.json +++ b/plugins/session-sharing/locales/translated/ru_RU.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Подключение к общей сессии...", + "linkInvalid": "Данная ссылка для общего доступа недействительна, истек срок ее действия или она была аннулирована.", + "rateLimited": "Слишком много попыток, пожалуйста, попробуйте еще раз чуть позже.", + "sessionEnded": "Данная сессия завершена.", + "readOnlyBadge": "Только для просмотра", + "ownerLabel": "Владелец хостинга" }, - "modalTitle": "Share session", + "modalTitle": "Совместное использование сессии", "shareButton": "Поделиться", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "Сессия пока не готова к публикации.", "modeTab": { - "link": "Link", + "link": "Связь", "user": "Пользователь" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Присоединиться может любой, у кого есть эта ссылка, регистрация не требуется.", + "userModeDescription": "Предоставьте доступ конкретному пользователю, у которого уже есть доступ к этому хосту. Если у него еще нет доступа, сначала предоставьте ему доступ к хосту или используйте ссылку. После предоставления доступа сессия отобразится на вкладке «Подключения» этого пользователя.", "permissionLevel": { "label": "Уровень доступа", "readOnly": "Только чтение", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "Можно наблюдать за сессией в прямом эфире, но нельзя печатать или взаимодействовать с ней.", + "readWrite": "Чтение-запись", + "readWriteDescription": "Может печатать и взаимодействовать с сессией так же, как и её владелец." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "Срок действия ссылки истекает", + "createLinkButton": "Создать ссылку", + "createShareButton": "Поделиться с пользователем", + "searchUsersPlaceholder": "Поиск пользователей...", + "noUsersFound": "Пользователи не найдены", + "linkCreated": "Ссылка для обмена создана", + "linkNeedsServer": "Ссылки для общего доступа работают только для сессий на сервере Termix. Подключите этот хост через свой связанный сервер, чтобы поделиться им с помощью ссылки.", + "linkCopied": "Ссылка скопирована в буфер обмена", + "copyLink": "Скопировать ссылку", + "shareCreated": "Сессия была проведена совместно. Она отобразится на вкладке «Подключения».", + "shareFailed": "Не удалось создать общий ресурс.", + "userLacksHostAccess": "У этого пользователя пока нет доступа к данному хосту. Сначала предоставьте ему доступ к хосту или используйте ссылку.", + "activeShares": "Активные акции", + "noActiveShares": "В текущей торговой сессии нет активных акций.", "revoke": "Отозвать", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "Отозвать эту публикацию?", + "revokeConfirmDescription": "Любой, кто воспользуется этой ссылкой, немедленно потеряет к ней доступ.", + "revoked": "Акция аннулирована", + "revokeFailed": "Не удалось отозвать акцию", + "joinCount": "{{count}} присоединиться", + "joinCount_other": "{{count}} присоединяется", "expiresAt": "Истекает {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "Связь", + "userShareBadge": "Пользователь: {{username}}", + "loadSharesFailed": "Не удалось загрузить активные акции.", + "remoteDisplayUnavailable": "В настоящий момент функция удалённого доступа к рабочему столу недоступна.", + "sharedWithMe": "Сессии, которыми со мной поделились", "customHoursPlaceholder": "Часов до окончания срока доступа" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "Новая комната", + "roomName": "Название комнаты", + "persistentRoom": "Постоянное помещение", + "persistentRoomHint": "Список свободных комнат сохраняется и после окончания встречи, и их можно использовать повторно.", + "noRooms": "Комнат пока нет. Создайте комнату, чтобы начать встречу.", "openRoom": "Открыть", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "Завершение встречи", + "leaveRoom": "Оставлять", "deleteMember": "Удалить", "removeMember": "Удалить {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "Удалить этого участника?", + "removeMemberDescription": "{{name}} немедленно потеряет доступ к этой комнате. Любой активный SSH-просмотрщик будет отключен.", + "invite": "Приглашать", + "inviteTitle": "Пригласить участников", + "members": "Члены", + "membersPanel": "Участники комнаты и запросы на управление", + "membersWithCount": "Участники ({{count}})", + "guestsWithCount": "Гости ({{count}})", + "removeGuests": "Удалить гостей", + "anonymousGuest": "Гость", "online": "онлайн", "offline": "офлайн", - "you": "(you)", + "you": "(ты)", "hostBadge": "Хост", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "Презентация", + "present": "Подарок", + "presentTitle": "Выходите на сцену", "presentHost": "Хост", "searchHosts": "Поиск хостов", - "noHostsFound": "No available hosts found.", + "noHostsFound": "Доступных хостов не найдено.", "presentProtocol": "Протокол", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", + "stopPresenting": "Прекратите презентацию", + "takeOver": "Перенимать", + "takeOverConfirmTitle": "Заменить текущую презентацию?", + "takeOverDescription": "{{name}} сейчас выступает. Перехват инициативы отключит всех от этой сцены.", + "emptyStage": "Никто не выступает с презентацией. Выходите на сцену, чтобы поделиться своим опытом.", + "stageLoading": "Подключение к сцене...", + "stageEnded": "Презентация завершилась.", + "roomEnded": "Встреча завершена.", + "presenterLabel": "{{name}} представляет", + "guestLink": "Гостевая ссылка", + "guestLinkOn": "Гостевая ссылка включена. Любой, у кого есть ссылка, может посмотреть выступление.", + "guestLinkOff": "Гостевая ссылка отключена.", + "copyLink": "Скопировать ссылку", + "rotateLink": "Повернуть ссылку", + "disableLink": "Отключить ссылку", + "rotateLinkConfirmTitle": "Повернуть гостевую ссылку?", + "rotateLinkDescription": "Текущее соединение немедленно перестанет работать. Подключенные через SSH гостевые системы будут отключены.", + "disableLinkConfirmTitle": "Отключить гостевую ссылку?", + "disableLinkDescription": "Анонимные пользователи SSH-сервера будут немедленно отключены, и текущая связь перестанет работать.", "linkCopied": "Ссылка скопирована", "roles": "Роли", "users": "Пользователи", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "Поиск пользователей", + "endConfirmTitle": "Закончить это совещание?", + "endDescription": "{{name}} завершится для всех и не может быть возобновлено.", + "endPersistentDescription": "Активная презентация в {{name}} будет остановлена. Комната остается доступной для повторного использования.", + "deleteRoom": "Удалить комнату", + "deleteConfirmTitle": "Удалить эту комнату?", + "deleteDescription": "{{name}} будет безвозвратно удалено для всех и не может быть отменено.", + "invitedTo": "Вас пригласили на \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Встреча", + "waiting": "Ожидание выступления докладчика...", + "linkInvalid": "Эта гостевая ссылка недействительна, или встреча завершилась." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Срок действия этой вкладки «Встречи» истек. Откройте комнату заново на панели «Встречи».", "retry": "Повторить", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Управление запросами", + "cancelControlRequest": "Отменить запрос", + "controlQueue": "Запросы на управление", + "noControlRequests": "Нет ожидающих обработки запросов.", + "grantControlTo": "Передайте управление {{name}}", + "dismissControlRequest": "Отклонить запрос на управление от {{name}}", + "releaseControl": "Управление освобождением", + "grantControl": "Передайте контроль", + "revokeControl": "Верните себе контроль.", + "controlRequestedBy": "{{name}} запросил управление", + "grant": "Грант", + "controlBadge": "Под контролем", + "youArePresenting": "Вы ведёте презентацию в другой вкладке. Прекратите презентацию, чтобы передать слово другому пользователю.", + "created": "Комната создана", + "invited": "Приглашены члены", + "roomTab": "Встреча", + "serverChanged": "Сервер совещания изменился. Откройте это совещание заново из панели «Совещания».", + "hostNotSynced": "Перед началом презентации синхронизируйте этого организатора с сервером совещания.", + "linkRequiresServer": "Подключите этот компьютер к серверу Termix и создайте там собрание, чтобы поделиться веб-ссылкой." }, "nav": { - "collab": "Meetings" + "collab": "Встречи" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Разрешить совместное использование сеанса", + "description": "Разрешить общий доступ к сеансам Live Terminal, RDP, VNC и Telnet для всего экземпляра. При отключении этой функции отменяет все настройки общего доступа для отдельных хостов." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Разрешить совместное использование сеанса", + "description": "Разрешите делиться записями онлайн-сессий на этом хостинге по ссылке или с другими пользователями." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Делитесь сессиями и присоединяйтесь к комнатам.", + "description": "Делитесь записями онлайн-сессий по ссылке или с другими пользователями, а также создавайте и присоединяйтесь к комнатам для совместной работы." } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Поделился со мной", + "sharedBy": "Поделился {{username}}", + "join": "Присоединиться", + "sharedSessionLabel": "{{hostName}} (совместно)" } } diff --git a/plugins/session-sharing/locales/translated/sr_SP.json b/plugins/session-sharing/locales/translated/sr_SP.json index 47931c5a6..4e2bdc74f 100644 --- a/plugins/session-sharing/locales/translated/sr_SP.json +++ b/plugins/session-sharing/locales/translated/sr_SP.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Повезивање са дељеном сесијом...", + "linkInvalid": "Овај линк за дељење је неважећи, истекао је или је опозван", + "rateLimited": "Превише покушаја, покушајте поново ускоро", + "sessionEnded": "Ова сесија је завршена", + "readOnlyBadge": "Само преглед", + "ownerLabel": "Власник домаћина" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Дели сесију", + "shareButton": "Дели", + "notReadyToShare": "Сесија још није спремна за дељење", "modeTab": { - "link": "Link", - "user": "User" + "link": "Линк", + "user": "Корисник" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Свако ко има овај линк може да се придружи, није потребан налог.", + "userModeDescription": "Делите са одређеним корисником који већ има приступ овом хосту. Ако још немају приступ, прво поделите хост са њима или користите линк. Након дељења, сесија се појављује на њиховој картици „Везе“.", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Ниво дозволе", + "readOnly": "Само за читање", + "readOnlyDescription": "Може да гледа сесију уживо, али не може да куца или да комуницира.", + "readWrite": "Читање и писање", + "readWriteDescription": "Може да куца и интерагује са сесијом баш као и власник." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "Истек линка", + "createLinkButton": "Направи линк", + "createShareButton": "Подели са корисником", + "searchUsersPlaceholder": "Претражи кориснике...", + "noUsersFound": "Није пронађен ниједан корисник", + "linkCreated": "Линк за дељење је направљен", + "linkNeedsServer": "Линкови за дељење раде само за сесије на Termix серверу. Повежите овај хост преко повезаног сервера да бисте га делили помоћу линка.", + "linkCopied": "Линк је копиран у међуспремник", + "copyLink": "Копирај линк", + "shareCreated": "Сесија је дељена. Појавиће се на њиховој картици „Везе“.", + "shareFailed": "Није успело креирање дељења", + "userLacksHostAccess": "Тај корисник још увек нема приступ овом хосту. Прво поделите хост са њим или користите линк.", + "activeShares": "Активне акције", + "noActiveShares": "Нема активних дељења за ову сесију", + "revoke": "Поништи", + "revokeConfirmTitle": "Да ли желите да опозовете ово дељење?", + "revokeConfirmDescription": "Свако ко користи ово дељење ће одмах изгубити приступ.", + "revoked": "Дељење опозвано", + "revokeFailed": "Опозивање дељења није успело", + "joinCount": "{{count}} придружи се", + "joinCount_other": "{{count}} придруживања", + "expiresAt": "Истиче {{date}}", + "linkShareBadge": "Линк", + "userShareBadge": "Корисник: {{username}}", + "loadSharesFailed": "Учитавање активних дељења није успело", + "remoteDisplayUnavailable": "Удаљена радна површина тренутно није доступна.", + "sharedWithMe": "Сесије дељене са мном", + "customHoursPlaceholder": "Сати до истека приступа" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", - "online": "online", - "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "createRoom": "Нова соба", + "roomName": "Назив собе", + "persistentRoom": "Трајна соба", + "persistentRoomHint": "Трајне собе остају наведене након завршетка састанка и могу се поново користити.", + "noRooms": "Још нема соба. Направите једну да бисте започели састанак.", + "openRoom": "Отворено", + "endRoom": "Заврши састанак", + "leaveRoom": "Одиђи", + "deleteMember": "Уклони", + "removeMember": "Уклони {{name}}", + "removeMemberTitle": "Уклонити овог члана?", + "removeMemberDescription": "{{name}} ће одмах изгубити приступ овој соби. Сваки активни SSH гледалац ће бити искључен.", + "invite": "Позови", + "inviteTitle": "Позовите чланове", + "members": "Чланови", + "membersPanel": "Чланови собе и захтеви за контролу", + "membersWithCount": "Чланови ({{count}})", + "guestsWithCount": "Гости ({{count}})", + "removeGuests": "Уклони госте", + "anonymousGuest": "Гост", + "online": "онлајн", + "offline": "офлајн", + "you": "(ти)", + "hostBadge": "Домаћин", + "presenterBadge": "Презентација", + "present": "Присутан", + "presentTitle": "Изађи на сцену", + "presentHost": "Домаћин", + "searchHosts": "Претрага хостова", + "noHostsFound": "Није пронађен ниједан доступан хост.", + "presentProtocol": "Протокол", + "stopPresenting": "Заустави презентацију", + "takeOver": "Преузми", + "takeOverConfirmTitle": "Заменити тренутну презентацију?", + "takeOverDescription": "{{name}} тренутно презентује. Преузимање ће искључити све са те сцене.", + "emptyStage": "Нико не презентује. Изађите на бину да бисте поделили сесију.", + "stageLoading": "Повезивање са сценом...", + "stageEnded": "Презентација је завршена", + "roomEnded": "Овај састанак је завршен", + "presenterLabel": "{{name}} презентује", + "guestLink": "Гостујући линк", + "guestLinkOn": "Линк за госте је укључен. Свако ко има линк може да гледа сцену.", + "guestLinkOff": "Линк за госте је искључен.", + "copyLink": "Копирај линк", + "rotateLink": "Ротирај линк", + "disableLink": "Онемогући везу", + "rotateLinkConfirmTitle": "Ротирати линк за госте?", + "rotateLinkDescription": "Тренутна веза ће одмах престати да ради. Повезани SSH гости ће бити искључени.", + "disableLinkConfirmTitle": "Онемогућити линк за госте?", + "disableLinkDescription": "Анонимни SSH гледаоци ће одмах бити прекинути везу и тренутна веза ће престати да ради.", + "linkCopied": "Линк је копиран", + "roles": "Улоге", + "users": "Корисници", + "searchUsers": "Претрага корисника", + "endConfirmTitle": "Да ли желите да завршите овај састанак?", + "endDescription": "{{name}} ће бити завршен за све и не може се поново отворити.", + "endPersistentDescription": "Активна презентација у {{name}} ће се зауставити. Просторија остаје доступна за поновну употребу.", + "deleteRoom": "Обриши собу", + "deleteConfirmTitle": "Да ли желите да избришете ову собу?", + "deleteDescription": "{{name}} ће бити трајно обрисан за све и не може се поништити.", + "invitedTo": "Позвани сте у „{{name}}“", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Састанак", + "waiting": "Чекање водитеља...", + "linkInvalid": "Овај линк за госте је неважећи или је састанак завршен" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "Ова картица састанка је истекла. Поново отворите просторију из панела Састанци.", + "retry": "Покушај поново", + "requestControl": "Захтевај контролу", + "cancelControlRequest": "Откажи захтев", + "controlQueue": "Захтеви за контролу", + "noControlRequests": "Нема захтева на чекању.", + "grantControlTo": "Дајте контролу кориснику {{name}}", + "dismissControlRequest": "Одбаци захтев за контролу корисника {{name}}", + "releaseControl": "Контрола ослобађања", + "grantControl": "Дајте контролу", + "revokeControl": "Преузмите контролу назад", + "controlRequestedBy": "{{name}} је затражио контролу", + "grant": "Грант", + "controlBadge": "Под контролом", + "youArePresenting": "Презентујете у другој картици. Прекините презентацију да бисте предали сцену.", + "created": "Соба је направљена", + "invited": "Чланови позвани", + "roomTab": "Састанак", + "serverChanged": "Сервер за састанке се променио. Поново отворите овај састанак из панела Састанци.", + "hostNotSynced": "Синхронизујте овог хоста са сервером за састанке пре презентације.", + "linkRequiresServer": "Повежите ову радну површину са Termix сервером и тамо креирајте састанак да бисте делили веб везу." }, "nav": { - "collab": "Meetings" + "collab": "Састанци" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Дозволи дељење сесије", + "description": "Дозвољава дељење сесија уживо терминала, RDP, VNC и Telnet сесија на нивоу целе инстанце. Замењује сваки прекидач за дељење по хосту када је онемогућен." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Дозволи дељење сесије", + "description": "Дозволите дељење сесија уживо на овом хосту путем линка или са другим корисницима" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Делите сесије и придружите се собама", + "description": "Делите сесије уживо путем линка или са другим корисницима, креирајте собе за сарадњу и придружите им се." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Никад", + "oneHour": "1 сат", + "oneDay": "24 сата", + "sevenDays": "7 дана", + "thirtyDays": "30 дана", + "custom": "Прилагођено" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Дељено са мном", + "sharedBy": "Дели {{username}}", + "join": "Придружи се", + "sharedSessionLabel": "{{hostName}} (дељено)" } } diff --git a/plugins/session-sharing/locales/translated/sv_SE.json b/plugins/session-sharing/locales/translated/sv_SE.json index 47931c5a6..27ff03a7f 100644 --- a/plugins/session-sharing/locales/translated/sv_SE.json +++ b/plugins/session-sharing/locales/translated/sv_SE.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Ansluter till delad session...", + "linkInvalid": "Den här delningslänken är ogiltig, har löpt ut eller har återkallats", + "rateLimited": "För många försök, försök igen snart", + "sessionEnded": "Den här sessionen är avslutad", + "readOnlyBadge": "Endast visning", + "ownerLabel": "Värdägare" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Dela session", + "shareButton": "Dela", + "notReadyToShare": "Sessionen är inte redo att delas ännu", "modeTab": { - "link": "Link", - "user": "User" + "link": "Länk", + "user": "Användare" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Vem som helst med den här länken kan gå med, inget konto krävs.", + "userModeDescription": "Dela med en specifik användare som redan har åtkomst till den här värden. Om de inte har åtkomst ännu, dela värden med dem först eller använd en länk istället. När sessionen har delats visas den på deras flik Anslutningar.", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Behörighetsnivå", + "readOnly": "Skrivskyddad", + "readOnlyDescription": "Kan titta på sessionen live men kan inte skriva eller interagera.", + "readWrite": "Läs-skriv", + "readWriteDescription": "Kan skriva och interagera med sessionen precis som ägaren." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "Länkens utgångsdatum", + "createLinkButton": "Skapa länk", + "createShareButton": "Dela med användaren", + "searchUsersPlaceholder": "Sök användare...", + "noUsersFound": "Inga användare hittades", + "linkCreated": "Delningslänk skapad", + "linkNeedsServer": "Delningslänkar fungerar bara för sessioner på en Termix-server. Anslut den här värden via din länkade server för att dela den med en länk.", + "linkCopied": "Länk kopierad till urklipp", + "copyLink": "Kopiera länk", + "shareCreated": "Sessionen delade. Den kommer att visas på fliken Anslutningar.", + "shareFailed": "Misslyckades med att skapa delningen", + "userLacksHostAccess": "Den användaren har inte åtkomst till den här värden ännu. Dela värden med dem först, eller använd en länk istället.", + "activeShares": "Aktiva aktier", + "noActiveShares": "Inga aktiva delningar för den här sessionen", + "revoke": "Återkalla", + "revokeConfirmTitle": "Återkalla den här delningen?", + "revokeConfirmDescription": "Alla som använder den här delningen kommer att förlora åtkomsten omedelbart.", + "revoked": "Delning återkallad", + "revokeFailed": "Misslyckades med att återkalla delningen", + "joinCount": "{{count}} gå med", + "joinCount_other": "{{count}} ansluter sig", + "expiresAt": "Utgångsdatum {{date}}", + "linkShareBadge": "Länk", + "userShareBadge": "Användare: {{username}}", + "loadSharesFailed": "Misslyckades med att läsa in aktiva delningar", + "remoteDisplayUnavailable": "Fjärrskrivbord är inte tillgängligt just nu.", + "sharedWithMe": "Sessioner delades med mig", + "customHoursPlaceholder": "Timmar tills åtkomsten upphör" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "createRoom": "Nytt rum", + "roomName": "Rumsnamn", + "persistentRoom": "Permanent rum", + "persistentRoomHint": "Beständiga rum finns kvar i listan efter att mötet är slut och kan återanvändas.", + "noRooms": "Inga rum ännu. Skapa ett för att starta ett möte.", + "openRoom": "Öppna", + "endRoom": "Avsluta mötet", + "leaveRoom": "Lämna", + "deleteMember": "Ta bort", + "removeMember": "Ta bort {{name}}", + "removeMemberTitle": "Ta bort den här medlemmen?", + "removeMemberDescription": "{{name}} kommer att förlora åtkomst till det här rummet omedelbart. Alla aktiva SSH-läsare kommer att kopplas bort.", + "invite": "Bjuda", + "inviteTitle": "Bjud in medlemmar", + "members": "Medlemmar", + "membersPanel": "Rumsmedlemmar och kontrollförfrågningar", + "membersWithCount": "Medlemmar ({{count}})", + "guestsWithCount": "Gäster ({{count}})", + "removeGuests": "Ta bort gäster", + "anonymousGuest": "Gäst", "online": "online", - "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "offline": "off-line", + "you": "(du)", + "hostBadge": "Värd", + "presenterBadge": "Presenterar", + "present": "Presentera", + "presentTitle": "Inta scenen", + "presentHost": "Värd", + "searchHosts": "Sök värdar", + "noHostsFound": "Inga tillgängliga värdar hittades.", + "presentProtocol": "Protokoll", + "stopPresenting": "Sluta presentera", + "takeOver": "Ta över", + "takeOverConfirmTitle": "Ersätta den aktuella presentationen?", + "takeOverDescription": "{{name}} presenterar nu. Att ta över kommer att koppla bort alla från den scenen.", + "emptyStage": "Ingen presenterar. Gå ut på scenen för att dela en session.", + "stageLoading": "Ansluter till scenen...", + "stageEnded": "Presentationen avslutades", + "roomEnded": "Det här mötet har avslutats", + "presenterLabel": "{{name}} presenterar", + "guestLink": "Gästlänk", + "guestLinkOn": "Gästlänken är aktiverad. Alla med länken kan titta på scenen.", + "guestLinkOff": "Gästlänken är avstängd.", + "copyLink": "Kopiera länk", + "rotateLink": "Rotera länken", + "disableLink": "Inaktivera länk", + "rotateLinkConfirmTitle": "Rotera gästlänken?", + "rotateLinkDescription": "Den aktuella länken kommer att sluta fungera omedelbart. Anslutna SSH-gäster kommer att kopplas bort.", + "disableLinkConfirmTitle": "Inaktivera gästlänken?", + "disableLinkDescription": "Anonyma SSH-användare kommer att kopplas bort omedelbart och den aktuella länken kommer att sluta fungera.", + "linkCopied": "Länk kopierad", + "roles": "Roller", + "users": "Användare", + "searchUsers": "Sök användare", + "endConfirmTitle": "Avsluta det här mötet?", + "endDescription": "{{name}} kommer att upphöra för alla och kan inte öppnas igen.", + "endPersistentDescription": "Den aktiva presentationen i {{name}} kommer att stoppas. Rummet är fortfarande tillgängligt för återanvändning.", + "deleteRoom": "Ta bort rum", + "deleteConfirmTitle": "Radera det här rummet?", + "deleteDescription": "{{name}} kommer att raderas permanent för alla och kan inte ångras.", + "invitedTo": "Du blev inbjuden till \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Möte", + "waiting": "Väntar på programledaren...", + "linkInvalid": "Denna gästlänk är ogiltig eller så har mötet avslutats" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "Den här mötesfliken har upphört att gälla. Öppna rummet igen från panelen Möten.", + "retry": "Försöka igen", + "requestControl": "Begäran om kontroll", + "cancelControlRequest": "Avbryt begäran", + "controlQueue": "Kontrollförfrågningar", + "noControlRequests": "Inga väntande förfrågningar.", + "grantControlTo": "Ge kontroll till {{name}}", + "dismissControlRequest": "Avvisa kontrollbegäran från {{name}}", + "releaseControl": "Släppkontroll", + "grantControl": "Ge kontroll", + "revokeControl": "Ta tillbaka kontrollen", + "controlRequestedBy": "{{name}} bad om kontroll", + "grant": "Bevilja", + "controlBadge": "I kontroll", + "youArePresenting": "Du presenterar i en annan flik. Avbryt presentationen för att lämna över scenen.", + "created": "Rum skapat", + "invited": "Medlemmar inbjudna", + "roomTab": "Möte", + "serverChanged": "Mötesservern har ändrats. Öppna mötet igen från panelen Möten.", + "hostNotSynced": "Synkronisera den här värden med mötesservern innan presentationen.", + "linkRequiresServer": "Länka den här skrivbordsmiljön till en Termix-server och skapa mötet där för att dela en webblänk." }, "nav": { - "collab": "Meetings" + "collab": "Möten" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Tillåt sessionsdelning", + "description": "Tillåt att liveterminal-, RDP-, VNC- och Telnet-sessioner delas instansövergripande. Åsidosätter alla delningsknappar per värd när de är inaktiverade." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Tillåt sessionsdelning", + "description": "Tillåt att livesessioner på den här värden delas via länk eller med andra användare" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Dela sessioner och gå med i rum", + "description": "Dela livesessioner via länk eller med andra användare, och skapa och gå med i samarbetsrum." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Aldrig", + "oneHour": "1 timme", + "oneDay": "24 timmar", + "sevenDays": "7 dagar", + "thirtyDays": "30 dagar", + "custom": "Beställnings" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Delade med mig", + "sharedBy": "Delat av {{username}}", + "join": "Ansluta sig till", + "sharedSessionLabel": "{{hostName}} (delad)" } } diff --git a/plugins/session-sharing/locales/translated/th_TH.json b/plugins/session-sharing/locales/translated/th_TH.json index 47931c5a6..406045779 100644 --- a/plugins/session-sharing/locales/translated/th_TH.json +++ b/plugins/session-sharing/locales/translated/th_TH.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "กำลังเชื่อมต่อกับเซสชันที่ใช้ร่วมกัน...", + "linkInvalid": "ลิงก์แชร์นี้ไม่ถูกต้อง หมดอายุ หรือถูกยกเลิกแล้ว", + "rateLimited": "พยายามหลายครั้งเกินไป โปรดลองใหม่อีกครั้งในภายหลัง", + "sessionEnded": "การประชุมครั้งนี้สิ้นสุดลงแล้ว", + "readOnlyBadge": "ดูได้อย่างเดียว", + "ownerLabel": "เจ้าของที่พัก" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "เซสชั่นการแบ่งปัน", + "shareButton": "แบ่งปัน", + "notReadyToShare": "เซสชั่นยังไม่พร้อมให้แชร์", "modeTab": { - "link": "Link", - "user": "User" + "link": "ลิงก์", + "user": "ผู้ใช้" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "ใครก็ตามที่มีลิงก์นี้สามารถเข้าร่วมได้ ไม่จำเป็นต้องมีบัญชีผู้ใช้", + "userModeDescription": "แชร์กับผู้ใช้เฉพาะรายที่มีสิทธิ์เข้าถึงโฮสต์นี้อยู่แล้ว หากพวกเขายังไม่มีสิทธิ์เข้าถึง ให้แชร์โฮสต์กับพวกเขาก่อน หรือใช้ลิงก์แทน เมื่อแชร์แล้ว เซสชันจะปรากฏในแท็บการเชื่อมต่อของพวกเขา", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "ระดับการอนุญาต", + "readOnly": "อ่านอย่างเดียว", + "readOnlyDescription": "สามารถรับชมการประชุมสดได้ แต่ไม่สามารถพิมพ์หรือโต้ตอบได้", + "readWrite": "อ่าน-เขียน", + "readWriteDescription": "สามารถพิมพ์และโต้ตอบกับเซสชันได้เหมือนกับเจ้าของเซสชัน" }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "ลิงก์หมดอายุ", + "createLinkButton": "สร้างลิงก์", + "createShareButton": "แชร์กับผู้ใช้", + "searchUsersPlaceholder": "ค้นหาผู้ใช้...", + "noUsersFound": "ไม่พบผู้ใช้งาน", + "linkCreated": "สร้างลิงก์สำหรับแชร์แล้ว", + "linkNeedsServer": "ลิงก์สำหรับแชร์ใช้งานได้เฉพาะกับเซสชันบนเซิร์ฟเวอร์ Termix เท่านั้น เชื่อมต่อโฮสต์นี้ผ่านเซิร์ฟเวอร์ที่เชื่อมโยงของคุณเพื่อแชร์ด้วยลิงก์", + "linkCopied": "คัดลอกลิงก์ไปยังคลิปบอร์ดแล้ว", + "copyLink": "คัดลิงก์", + "shareCreated": "แชร์เซสชันแล้ว เซสชันนั้นจะปรากฏในแท็บการเชื่อมต่อของพวกเขา", + "shareFailed": "ไม่สามารถสร้างการแชร์ได้", + "userLacksHostAccess": "ผู้ใช้รายนั้นยังไม่มีสิทธิ์เข้าถึงโฮสต์นี้ โปรดแชร์โฮสต์ให้พวกเขาก่อน หรือใช้ลิงก์แทน", + "activeShares": "หุ้นที่ใช้งานอยู่", + "noActiveShares": "ไม่มีหุ้นที่เปิดซื้อขายในรอบนี้", + "revoke": "ถอน", + "revokeConfirmTitle": "ต้องการยกเลิกการแชร์นี้หรือไม่?", + "revokeConfirmDescription": "ใครก็ตามที่ใช้ลิงก์นี้จะเสียสิทธิ์การเข้าถึงทันที", + "revoked": "หุ้นถูกเพิกถอน", + "revokeFailed": "ไม่สามารถเพิกถอนหุ้นได้", + "joinCount": "{{count}} เข้าร่วม", + "joinCount_other": "{{count}} เข้าร่วม", + "expiresAt": "หมดอายุ {{date}}", + "linkShareBadge": "ลิงก์", + "userShareBadge": "ผู้ใช้: {{username}}", + "loadSharesFailed": "ไม่สามารถโหลดหุ้นที่ใช้งานอยู่ได้", + "remoteDisplayUnavailable": "ขณะนี้ยังไม่สามารถใช้งานรีโมทเดสก์ท็อปได้", + "sharedWithMe": "เซสชั่นที่แชร์กับฉัน", + "customHoursPlaceholder": "เหลือเวลาอีกกี่ชั่วโมงก่อนที่สิทธิ์การเข้าถึงจะหมดอายุ" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", - "online": "online", - "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "createRoom": "ห้องใหม่", + "roomName": "ชื่อห้อง", + "persistentRoom": "ห้องที่คงอยู่", + "persistentRoomHint": "ห้องประชุมที่ตั้งค่าไว้ถาวรจะยังคงอยู่ในรายการหลังจากสิ้นสุดการประชุมและสามารถนำกลับมาใช้ใหม่ได้", + "noRooms": "ยังไม่มีห้องประชุม สร้างห้องประชุมเพื่อเริ่มการประชุม", + "openRoom": "เปิด", + "endRoom": "สิ้นสุดการประชุม", + "leaveRoom": "ออกจาก", + "deleteMember": "ลบ", + "removeMember": "ลบ {{name}}", + "removeMemberTitle": "ลบสมาชิกนี้ออก?", + "removeMemberDescription": "{{name}} จะเสียสิทธิ์ในการเข้าถึงห้องนี้ทันที โปรแกรมดู SSH ที่ใช้งานอยู่จะถูกตัดการเชื่อมต่อ", + "invite": "เชิญ", + "inviteTitle": "เชิญสมาชิก", + "members": "สมาชิก", + "membersPanel": "สมาชิกห้องและคำขอควบคุม", + "membersWithCount": "สมาชิก ({{count}})", + "guestsWithCount": "แขก ({{count}})", + "removeGuests": "ไล่แขกออก", + "anonymousGuest": "แขก", + "online": "ออนไลน์", + "offline": "ออฟไลน์", + "you": "(คุณ)", + "hostBadge": "เจ้าภาพ", + "presenterBadge": "นำเสนอ", + "present": "ปัจจุบัน", + "presentTitle": "ขึ้นเวที", + "presentHost": "เจ้าภาพ", + "searchHosts": "ค้นหาโฮสต์", + "noHostsFound": "ไม่พบโฮสต์ที่ใช้งานได้", + "presentProtocol": "โปรโตคอล", + "stopPresenting": "หยุดการนำเสนอ", + "takeOver": "เข้ายึดครอง", + "takeOverConfirmTitle": "ต้องการเปลี่ยนรูปแบบการนำเสนอปัจจุบันหรือไม่?", + "takeOverDescription": "{{name}} กำลังนำเสนออยู่ การเข้าควบคุมจะตัดการเชื่อมต่อทุกคนจากเวทีนั้น", + "emptyStage": "ไม่มีใครกำลังนำเสนออยู่ เชิญขึ้นเวทีเพื่อร่วมแบ่งปันช่วงการนำเสนอได้เลย", + "stageLoading": "เชื่อมต่อกับเวที...", + "stageEnded": "การนำเสนอสิ้นสุดลงแล้ว", + "roomEnded": "การประชุมนี้ได้สิ้นสุดลงแล้ว", + "presenterLabel": "{{name}} กำลังนำเสนอ", + "guestLink": "ลิงก์สำหรับแขก", + "guestLinkOn": "ลิงก์สำหรับแขกรับเชิญเปิดใช้งานแล้ว ใครก็ตามที่มีลิงก์สามารถรับชมการแสดงสดได้", + "guestLinkOff": "ลิงก์สำหรับผู้เยี่ยมชมถูกปิดใช้งาน", + "copyLink": "คัดลิงก์", + "rotateLink": "หมุนลิงก์", + "disableLink": "ปิดใช้งานลิงก์", + "rotateLinkConfirmTitle": "หมุนลิงก์สำหรับแขกรับเชิญหรือไม่?", + "rotateLinkDescription": "ลิงก์ปัจจุบันจะหยุดทำงานทันที ผู้ใช้งาน SSH ที่เชื่อมต่ออยู่จะถูกตัดการเชื่อมต่อ", + "disableLinkConfirmTitle": "ปิดใช้งานลิงก์สำหรับแขกใช่ไหม?", + "disableLinkDescription": "ผู้ใช้งาน SSH ที่ไม่ระบุตัวตนจะถูกตัดการเชื่อมต่อทันที และลิงก์ปัจจุบันจะหยุดทำงาน", + "linkCopied": "คัดลอกลิงก์แล้ว", + "roles": "บทบาท", + "users": "ผู้ใช้", + "searchUsers": "ค้นหาผู้ใช้", + "endConfirmTitle": "จบการประชุมนี้?", + "endDescription": "{{name}} จะสิ้นสุดลงสำหรับทุกคนและไม่สามารถเปิดใช้งานใหม่ได้อีก", + "endPersistentDescription": "การนำเสนอใน {{name}} จะหยุดลง ห้องยังคงพร้อมใช้งานได้ตามปกติ", + "deleteRoom": "ลบห้อง", + "deleteConfirmTitle": "ลบห้องนี้?", + "deleteDescription": "{{name}} จะถูกลบอย่างถาวรสำหรับทุกคนและไม่สามารถกู้คืนได้", + "invitedTo": "คุณได้รับเชิญไปที่ \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "การประชุม", + "waiting": "กำลังรอผู้ประกาศ...", + "linkInvalid": "ลิงก์สำหรับผู้เข้าร่วมนี้ไม่ถูกต้อง หรือการประชุมได้สิ้นสุดลงแล้ว" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "แท็บการประชุมนี้หมดอายุแล้ว โปรดเปิดห้องประชุมอีกครั้งจากแผงการประชุม", + "retry": "ลองใหม่อีกครั้ง", + "requestControl": "การควบคุมคำขอ", + "cancelControlRequest": "คำขอการยกเลิก", + "controlQueue": "คำขอควบคุม", + "noControlRequests": "ไม่มีคำขอที่รอการดำเนินการ", + "grantControlTo": "มอบการควบคุมให้กับ {{name}}", + "dismissControlRequest": "ยกเลิกคำขอควบคุมของ {{name}}", + "releaseControl": "ปล่อยการควบคุม", + "grantControl": "มอบการควบคุม", + "revokeControl": "ทวงคืนการควบคุม", + "controlRequestedBy": "{{name}} ขอควบคุม", + "grant": "ยินยอม", + "controlBadge": "ควบคุมได้", + "youArePresenting": "คุณกำลังนำเสนออยู่ในแท็บอื่น โปรดหยุดการนำเสนอเพื่อส่งต่อให้ผู้อื่น", + "created": "สร้างห้อง", + "invited": "สมาชิกที่ได้รับเชิญ", + "roomTab": "การประชุม", + "serverChanged": "เซิร์ฟเวอร์การประชุมมีการเปลี่ยนแปลง โปรดเปิดการประชุมนี้อีกครั้งจากแผงการประชุม", + "hostNotSynced": "โปรดซิงค์โฮสต์นี้กับเซิร์ฟเวอร์การประชุมก่อนเริ่มการนำเสนอ", + "linkRequiresServer": "เชื่อมต่อเดสก์ท็อปเครื่องนี้กับเซิร์ฟเวอร์ Termix และสร้างการประชุมที่นั่นเพื่อแชร์ลิงก์เว็บ" }, "nav": { - "collab": "Meetings" + "collab": "การประชุม" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "อนุญาตการแชร์เซสชัน", + "description": "อนุญาตให้แชร์เซสชันเทอร์มินัลสด, RDP, VNC และ Telnet ทั่วทั้งอินสแตนซ์ การตั้งค่านี้จะแทนที่การตั้งค่าการแชร์ต่อโฮสต์ทั้งหมดเมื่อปิดใช้งานอยู่" } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "อนุญาตการแชร์เซสชัน", + "description": "อนุญาตให้แชร์เซสชันสดบนโฮสต์นี้ผ่านลิงก์หรือกับผู้ใช้รายอื่น" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "แชร์เซสชันและเข้าร่วมห้อง", + "description": "แชร์เซสชันสดผ่านลิงก์หรือกับผู้ใช้รายอื่น และสร้างและเข้าร่วมห้องทำงานร่วมกันได้" } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "ไม่เคย", + "oneHour": "1 ชั่วโมง", + "oneDay": "24 ชั่วโมง", + "sevenDays": "7 วัน", + "thirtyDays": "30 วัน", + "custom": "กำหนดเอง" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "แชร์กับฉัน", + "sharedBy": "แชร์โดย {{username}}", + "join": "เข้าร่วม", + "sharedSessionLabel": "{{hostName}} (แชร์)" } } diff --git a/plugins/session-sharing/locales/translated/tr_TR.json b/plugins/session-sharing/locales/translated/tr_TR.json index 41ca45479..90508e0c2 100644 --- a/plugins/session-sharing/locales/translated/tr_TR.json +++ b/plugins/session-sharing/locales/translated/tr_TR.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Paylaşılan oturuma bağlanılıyor...", + "linkInvalid": "Bu paylaşım bağlantısı geçersiz, süresi dolmuş veya iptal edilmiş.", + "rateLimited": "Çok fazla deneme yapıldı, lütfen kısa süre sonra tekrar deneyin.", + "sessionEnded": "Bu oturum sona erdi.", + "readOnlyBadge": "Yalnızca görüntüle", + "ownerLabel": "Ev sahibi" }, - "modalTitle": "Share session", + "modalTitle": "Paylaşım oturumu", "shareButton": "Paylaş", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "Oturum henüz paylaşılmaya hazır değil.", "modeTab": { - "link": "Link", + "link": "Bağlantı", "user": "Kullanıcı" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Bu bağlantıya sahip herkes katılabilir, hesap gerekmez.", + "userModeDescription": "Bu sunucuya zaten erişimi olan belirli bir kullanıcıyla paylaşın. Henüz erişimleri yoksa, önce sunucuyu onlarla paylaşın veya bunun yerine bir bağlantı kullanın. Paylaşıldıktan sonra, oturum Bağlantılar sekmesinde görünür.", "permissionLevel": { "label": "İzin düzeyi", "readOnly": "Salt okunur", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "Oturumu canlı olarak izleyebilirsiniz ancak yazı yazamaz veya etkileşimde bulunamazsınız.", + "readWrite": "Okuma-yazma", + "readWriteDescription": "Oturum sahibi gibi yazabilir ve oturumla etkileşim kurabilirsiniz." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "Bağlantı süresinin dolması", + "createLinkButton": "Bağlantı oluştur", + "createShareButton": "Kullanıcıyla paylaş", + "searchUsersPlaceholder": "Kullanıcıları ara...", + "noUsersFound": "Hiç kullanıcı bulunamadı.", + "linkCreated": "Paylaşım bağlantısı oluşturuldu.", + "linkNeedsServer": "Bağlantı paylaşımı yalnızca Termix sunucusundaki oturumlar için geçerlidir. Bağlantıyı kullanarak paylaşmak için bu sunucuya bağlı sunucunuz üzerinden bağlanın.", + "linkCopied": "Bağlantı panoya kopyalandı", + "copyLink": "Bağlantıyı kopyala", + "shareCreated": "Oturum paylaşıldı. Bu, onların Bağlantılar sekmesinde görünecektir.", + "shareFailed": "Paylaşım oluşturulamadı.", + "userLacksHostAccess": "Bu kullanıcının henüz bu sunucuya erişimi yok. Öncelikle sunucuyu onlarla paylaşın veya bunun yerine bir bağlantı kullanın.", + "activeShares": "Aktif hisseler", + "noActiveShares": "Bu oturum için aktif hisse senedi bulunmamaktadır.", "revoke": "İptal Et", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "Bu hisseyi iptal etmek ister misiniz?", + "revokeConfirmDescription": "Bu paylaşımı kullanan herkes erişimini anında kaybedecektir.", + "revoked": "Hisseler geri alındı", + "revokeFailed": "Hisseleri geri alma işlemi başarısız oldu.", + "joinCount": "{{count}} katıl", + "joinCount_other": "{{count}} birleşiyor", "expiresAt": "Son kullanma: {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "Bağlantı", + "userShareBadge": "Kullanıcı: {{username}}", + "loadSharesFailed": "Aktif paylaşımlar yüklenemedi.", + "remoteDisplayUnavailable": "Uzaktan masaüstü bağlantısı şu anda kullanılamıyor.", + "sharedWithMe": "Benimle paylaşılan oturumlar", "customHoursPlaceholder": "Erişim süresi (saat)" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "Yeni oda", + "roomName": "Oda adı", + "persistentRoom": "Kalıcı oda", + "persistentRoomHint": "Kalıcı olarak tahsis edilen odalar, toplantı bittikten sonra da listede kalır ve tekrar kullanılabilir.", + "noRooms": "Henüz oda yok. Toplantı başlatmak için bir oda oluşturun.", "openRoom": "Aç", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "Toplantıyı sonlandırın", + "leaveRoom": "Ayrılmak", "deleteMember": "Kaldır", "removeMember": "{{name}} kaldır", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "Bu üyeyi kaldırmak mı istiyorsunuz?", + "removeMemberDescription": "{{name}} bu odaya erişimini derhal kaybedecektir. Aktif olan tüm SSH izleyicilerinin bağlantısı kesilecektir.", + "invite": "Davet etmek", + "inviteTitle": "Üyeleri davet edin", + "members": "Üyeler", + "membersPanel": "Oda üyeleri ve kontrol talepleri", + "membersWithCount": "Üyeler ({{count}})", + "guestsWithCount": "Misafirler ({{count}})", + "removeGuests": "Misafirleri çıkarın", + "anonymousGuest": "Misafir", "online": "çevrimiçi", "offline": "çevrimdışı", - "you": "(you)", + "you": "(Sen)", "hostBadge": "Ana Bilgisayar", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "Sunar", + "present": "Sunmak", + "presentTitle": "Sahneye çıkın", "presentHost": "Ana Bilgisayar", "searchHosts": "Host ara", - "noHostsFound": "No available hosts found.", + "noHostsFound": "Kullanılabilir sunucu bulunamadı.", "presentProtocol": "Protokol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", + "stopPresenting": "Sunum yapmayı bırakın", + "takeOver": "Devralmak", + "takeOverConfirmTitle": "Mevcut sunumu değiştirmek mi istiyorsunuz?", + "takeOverDescription": "{{name}} şu anda sunum yapıyor. Devralmak, herkesi o sahneden ayıracaktır.", + "emptyStage": "Kimse sunum yapmıyor. Sahneye çıkın ve bir sunum paylaşın.", + "stageLoading": "Sahneye bağlanmak...", + "stageEnded": "Sunum sona erdi.", + "roomEnded": "Bu toplantı sona erdi.", + "presenterLabel": "{{name}} sunuyor", + "guestLink": "Konuk bağlantısı", + "guestLinkOn": "Misafir bağlantısı aktif. Bağlantıya sahip herkes sahneyi izleyebilir.", + "guestLinkOff": "Misafir bağlantısı kapalı.", + "copyLink": "Bağlantıyı kopyala", + "rotateLink": "Bağlantıyı döndür", + "disableLink": "Bağlantıyı devre dışı bırak", + "rotateLinkConfirmTitle": "Konuk bağlantısını döndürelim mi?", + "rotateLinkDescription": "Mevcut bağlantı derhal çalışmayı durduracaktır. Bağlı SSH misafirlerinin bağlantısı kesilecektir.", + "disableLinkConfirmTitle": "Misafir bağlantısını devre dışı bırak?", + "disableLinkDescription": "Anonim SSH izleyicilerinin bağlantısı derhal kesilecek ve mevcut bağlantı çalışmayı durduracaktır.", "linkCopied": "Bağlantı kopyalandı", "roles": "Roller", "users": "Kullanıcılar", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "Kullanıcıları ara", + "endConfirmTitle": "Bu toplantıyı sonlandıralım mı?", + "endDescription": "{{name}} herkes için sona erecek ve yeniden açılamayacak.", + "endPersistentDescription": "{{name}} 'daki aktif sunum durdurulacaktır. Oda yeniden kullanıma açıktır.", + "deleteRoom": "Odayı sil", + "deleteConfirmTitle": "Bu odayı silmek mi?", + "deleteDescription": "{{name}} herkes için kalıcı olarak silinecek ve geri alınamaz.", + "invitedTo": "\"{{name}} \" etkinliğine davet edildiniz.", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Toplantı", + "waiting": "Sunucuyu bekliyoruz...", + "linkInvalid": "Bu konuk bağlantısı geçersiz veya toplantı sona erdi." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Bu toplantı sekmesinin süresi doldu. Toplantılar panelinden odayı yeniden açın.", "retry": "Yeniden dene", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Talep kontrolü", + "cancelControlRequest": "İptal talebi", + "controlQueue": "Kontrol talepleri", + "noControlRequests": "Bekleyen talep yok.", + "grantControlTo": "Kontrolü {{name}}'a verin.", + "dismissControlRequest": "{{name}}'ın kontrol isteğini reddet", + "releaseControl": "Kontrolü serbest bırak", + "grantControl": "Kontrolü ona verin.", + "revokeControl": "Kontrolü geri alın", + "controlRequestedBy": "{{name}} kontrolü istedi", + "grant": "Hibe etmek", + "controlBadge": "Kontrol altında", + "youArePresenting": "Başka bir sekmede sunum yapıyorsunuz. Sunumu durdurun ve sahneyi karşı tarafa devredin.", + "created": "Oda oluşturuldu", + "invited": "Üyeler davet edildi", + "roomTab": "Toplantı", + "serverChanged": "Toplantı sunucusu değişti. Bu toplantıyı Toplantılar panelinden yeniden açın.", + "hostNotSynced": "Sunuma başlamadan önce bu sunucuyu toplantı sunucusuyla senkronize edin.", + "linkRequiresServer": "Bu masaüstünü bir Termix sunucusuna bağlayın ve web bağlantısını paylaşmak için toplantıyı orada oluşturun." }, "nav": { - "collab": "Meetings" + "collab": "Toplantılar" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Oturum Paylaşımına İzin Ver", + "description": "Canlı terminal, RDP, VNC ve Telnet oturumlarının tüm örnek genelinde paylaşılmasına izin verin. Devre dışı bırakıldığında, sunucu başına paylaşım ayarlarının tümünü geçersiz kılar." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Oturum Paylaşımına İzin Ver", + "description": "Bu sunucudaki canlı oturumların bağlantı yoluyla veya diğer kullanıcılarla paylaşılmasına izin verin." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Oturumları paylaşın ve odalara katılın", + "description": "Canlı oturumları bağlantı yoluyla veya diğer kullanıcılarla paylaşın ve iş birliği odaları oluşturup bunlara katılın." } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Benimle paylaşıldı", + "sharedBy": "{{username}} tarafından paylaşıldı", + "join": "Katılmak", + "sharedSessionLabel": "{{hostName}} (paylaşılan)" } } diff --git a/plugins/session-sharing/locales/translated/uk_UA.json b/plugins/session-sharing/locales/translated/uk_UA.json index 47931c5a6..afeca4448 100644 --- a/plugins/session-sharing/locales/translated/uk_UA.json +++ b/plugins/session-sharing/locales/translated/uk_UA.json @@ -1,186 +1,186 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Підключення до спільного сеансу...", + "linkInvalid": "Це посилання для спільного доступу недійсне, термін його дії минув або його було відкликано", + "rateLimited": "Забагато спроб, спробуйте ще раз пізніше", + "sessionEnded": "Цей сеанс завершився", + "readOnlyBadge": "Тільки перегляд", + "ownerLabel": "Власник хоста" }, - "modalTitle": "Share session", - "shareButton": "Share", - "notReadyToShare": "Session is not ready to share yet", + "modalTitle": "Поділитися сеансом", + "shareButton": "Поділитися", + "notReadyToShare": "Сеанс ще не готовий до поширення", "modeTab": { - "link": "Link", - "user": "User" + "link": "Посилання", + "user": "Користувач" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Приєднатися може кожен, хто має це посилання, обліковий запис не потрібен.", + "userModeDescription": "Надайте доступ певному користувачеві, який уже має доступ до цього хоста. Якщо у нього ще немає доступу, спочатку надайте йому доступ до хоста або скористайтеся посиланням. Після надання доступу сеанс відображається на його вкладці «Підключення».", "permissionLevel": { - "label": "Permission level", - "readOnly": "Read-only", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "label": "Рівень дозволів", + "readOnly": "Тільки для читання", + "readOnlyDescription": "Можна дивитися сеанс у прямому ефірі, але не можна друкувати чи взаємодіяти.", + "readWrite": "Читання-запис", + "readWriteDescription": "Можна друкувати та взаємодіяти з сеансом так само, як і його власник." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", - "revoke": "Revoke", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", - "expiresAt": "Expires {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", - "customHoursPlaceholder": "Hours until access expires" + "expiryLabel": "Термін дії посилання", + "createLinkButton": "Створити посилання", + "createShareButton": "Поділитися з користувачем", + "searchUsersPlaceholder": "Пошук користувачів...", + "noUsersFound": "Користувачів не знайдено", + "linkCreated": "Посилання для спільного доступу створено", + "linkNeedsServer": "Посилання для спільного доступу працюють лише для сеансів на сервері Termix. Підключіть цей хост через ваш пов’язаний сервер, щоб поділитися ним за допомогою посилання.", + "linkCopied": "Посилання скопійовано в буфер обміну", + "copyLink": "Копіювати посилання", + "shareCreated": "Сеанс спільний. Він відображатиметься на вкладці «Зв’язки».", + "shareFailed": "Не вдалося створити спільний доступ", + "userLacksHostAccess": "Цей користувач ще не має доступу до цього хоста. Спочатку надайте йому доступ до хоста або скористайтеся посиланням.", + "activeShares": "Активні акції", + "noActiveShares": "Немає активних поширень для цього сеансу", + "revoke": "Скасувати", + "revokeConfirmTitle": "Скасувати цей спільний доступ?", + "revokeConfirmDescription": "Будь-хто, хто користується цим ресурсом спільного доступу, негайно втратить доступ.", + "revoked": "Акції анульовано", + "revokeFailed": "Не вдалося скасувати спільний доступ", + "joinCount": "{{count}} приєднатися", + "joinCount_other": "{{count}} приєднується", + "expiresAt": "Термін дії закінчується {{date}}", + "linkShareBadge": "Посилання", + "userShareBadge": "Користувач: {{username}}", + "loadSharesFailed": "Не вдалося завантажити активні спільні ресурси", + "remoteDisplayUnavailable": "Віддалений робочий стіл зараз недоступний.", + "sharedWithMe": "Сеанси, якими я поділився", + "customHoursPlaceholder": "Години до закінчення терміну дії доступу" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", - "openRoom": "Open", - "endRoom": "End meeting", - "leaveRoom": "Leave", - "deleteMember": "Remove", - "removeMember": "Remove {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", - "online": "online", - "offline": "offline", - "you": "(you)", - "hostBadge": "Host", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", - "presentHost": "Host", - "searchHosts": "Search hosts", - "noHostsFound": "No available hosts found.", - "presentProtocol": "Protocol", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", - "roles": "Roles", - "users": "Users", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "createRoom": "Нова кімната", + "roomName": "Назва кімнати", + "persistentRoom": "Постійна кімната", + "persistentRoomHint": "Постійні кімнати залишаються у списку після завершення зустрічі та можуть бути використані повторно.", + "noRooms": "Поки що немає кімнат. Створіть одну, щоб розпочати зустріч.", + "openRoom": "ВІДЧИНЕНО", + "endRoom": "Закінчити зустріч", + "leaveRoom": "Залишити", + "deleteMember": "Видалити", + "removeMember": "Видалити {{name}}", + "removeMemberTitle": "Видалити цього учасника?", + "removeMemberDescription": "{{name}} негайно втратить доступ до цієї кімнати. Будь-який активний переглядач SSH буде відключено.", + "invite": "Запросити", + "inviteTitle": "Запросити учасників", + "members": "Члени", + "membersPanel": "Учасники кімнати та запити на керування", + "membersWithCount": "Учасники ({{count}})", + "guestsWithCount": "Гості ({{count}})", + "removeGuests": "Видалити гостей", + "anonymousGuest": "Гість", + "online": "онлайн", + "offline": "офлайн", + "you": "(ти)", + "hostBadge": "Хост", + "presenterBadge": "Презентація", + "present": "Подарунок", + "presentTitle": "Вийди на сцену", + "presentHost": "Хост", + "searchHosts": "Пошук хостів", + "noHostsFound": "Не знайдено доступних хостів.", + "presentProtocol": "Протокол", + "stopPresenting": "Зупинити презентацію", + "takeOver": "Захопити", + "takeOverConfirmTitle": "Замінити поточну презентацію?", + "takeOverDescription": "{{name}} зараз презентує. Перехоплення сцени відключить усіх учасників.", + "emptyStage": "Ніхто не виступає. Вийдіть на сцену, щоб поділитися сесією.", + "stageLoading": "Підключення до сцени...", + "stageEnded": "Презентація закінчилася", + "roomEnded": "Ця зустріч завершилася", + "presenterLabel": "{{name}} презентує", + "guestLink": "Гостьове посилання", + "guestLinkOn": "Гостьове посилання ввімкнено. Будь-хто, хто має посилання, може дивитися сцену.", + "guestLinkOff": "Гостьове посилання вимкнено.", + "copyLink": "Копіювати посилання", + "rotateLink": "Повернути посилання", + "disableLink": "Вимкнути посилання", + "rotateLinkConfirmTitle": "Повернути гостьове посилання?", + "rotateLinkDescription": "Поточне посилання негайно перестане працювати. Підключені гості SSH будуть відключені.", + "disableLinkConfirmTitle": "Вимкнути гостьове посилання?", + "disableLinkDescription": "Анонімні користувачі SSH будуть негайно відключені, а поточне посилання перестане працювати.", + "linkCopied": "Посилання скопійовано", + "roles": "Ролі", + "users": "Користувачі", + "searchUsers": "Пошук користувачів", + "endConfirmTitle": "Завершити цю зустріч?", + "endDescription": "{{name}} завершиться для всіх і не може бути відкрито повторно.", + "endPersistentDescription": "Активна презентація в {{name}} буде зупинена. Кімната залишається доступною для повторного використання.", + "deleteRoom": "Видалити кімнату", + "deleteConfirmTitle": "Видалити цю кімнату?", + "deleteDescription": "{{name}} буде видалено назавжди для всіх і цю дію не можна буде скасувати.", + "invitedTo": "Вас запросили до «{{name}}»", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Зустріч", + "waiting": "Чекаємо на ведучого...", + "linkInvalid": "Це гостьове посилання недійсне або зустріч завершилася" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", - "retry": "Retry", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "reopenFromPanel": "Термін дії цієї вкладки зустрічі закінчився. Відкрийте кімнату знову на панелі Зустрічі.", + "retry": "Повторити спробу", + "requestControl": "Запит на керування", + "cancelControlRequest": "Скасувати запит", + "controlQueue": "Запити на керування", + "noControlRequests": "Немає запитів, що очікують на розгляд.", + "grantControlTo": "Надайте керування {{name}}", + "dismissControlRequest": "Відхилити запит керування від {{name}}", + "releaseControl": "Контроль випуску", + "grantControl": "Надайте контроль", + "revokeControl": "Поверніть собі контроль", + "controlRequestedBy": "{{name}} запросив керування", + "grant": "Грант", + "controlBadge": "Контроль", + "youArePresenting": "Ви презентуєте в іншій вкладці. Зупиніть презентацію, щоб передати сцену.", + "created": "Кімнату створено", + "invited": "Запрошені учасники", + "roomTab": "Зустріч", + "serverChanged": "Сервер зустрічі змінився. Відкрийте цю зустріч знову з панелі «Зустрічі».", + "hostNotSynced": "Синхронізуйте цей хост із сервером зустрічей перед презентацією.", + "linkRequiresServer": "Підключіть цей робочий стіл до сервера Termix та створіть там зустріч, щоб поділитися веб-посиланням." }, "nav": { - "collab": "Meetings" + "collab": "Зустрічі" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Дозволити спільний доступ до сеансу", + "description": "Дозволити спільний доступ до сеансів терміналу, RDP, VNC та Telnet для всього екземпляра. Перевизначає кожен перемикач спільного доступу для кожного хоста, якщо його вимкнено." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Дозволити спільний доступ до сеансу", + "description": "Дозволити ділитися прямими трансляціями на цьому хості через посилання або з іншими користувачами" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Діліться сесіями та приєднуйтесь до кімнат", + "description": "Діліться сеансами в реальному часі за посиланням або з іншими користувачами, а також створюйте кімнати для співпраці та приєднуйтесь до них." } }, "hosts": { "sharing": { "expiry": { - "never": "Never", - "oneHour": "1 hour", - "oneDay": "24 hours", - "sevenDays": "7 days", - "thirtyDays": "30 days", - "custom": "Custom" + "never": "Ніколи", + "oneHour": "1 година", + "oneDay": "24 години", + "sevenDays": "7 днів", + "thirtyDays": "30 днів", + "custom": "Користувацька" } } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Поділилися зі мною", + "sharedBy": "Поділився користувачем {{username}}", + "join": "Приєднатися", + "sharedSessionLabel": "{{hostName}} (спільний доступ)" } } diff --git a/plugins/session-sharing/locales/translated/vi_VN.json b/plugins/session-sharing/locales/translated/vi_VN.json index f815ec080..baa11820d 100644 --- a/plugins/session-sharing/locales/translated/vi_VN.json +++ b/plugins/session-sharing/locales/translated/vi_VN.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "Đang kết nối đến phiên chia sẻ...", + "linkInvalid": "Liên kết chia sẻ này không hợp lệ, đã hết hạn hoặc đã bị thu hồi.", + "rateLimited": "Đã thử quá nhiều lần, vui lòng thử lại sau.", + "sessionEnded": "Phiên này đã kết thúc", + "readOnlyBadge": "Chỉ xem", + "ownerLabel": "Chủ nhà" }, - "modalTitle": "Share session", + "modalTitle": "Chia sẻ phiên họp", "shareButton": "Chia sẻ", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "Buổi học chưa sẵn sàng để chia sẻ.", "modeTab": { - "link": "Link", + "link": "Liên kết", "user": "Người dùng" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "Bất kỳ ai có liên kết này đều có thể tham gia, không cần tài khoản.", + "userModeDescription": "Chia sẻ với một người dùng cụ thể đã có quyền truy cập vào máy chủ này. Nếu họ chưa có quyền truy cập, hãy chia sẻ máy chủ với họ trước hoặc sử dụng liên kết thay thế. Sau khi chia sẻ, phiên làm việc sẽ xuất hiện trong tab Kết nối của họ.", "permissionLevel": { "label": "Cấp độ quyền", "readOnly": "Chỉ đọc", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "Có thể xem phiên trực tiếp nhưng không thể gõ chữ hoặc tương tác.", + "readWrite": "Đọc-viết", + "readWriteDescription": "Có thể nhập liệu và tương tác với phiên làm việc giống như chủ sở hữu." }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "Liên kết hết hạn", + "createLinkButton": "Tạo liên kết", + "createShareButton": "Chia sẻ với người dùng", + "searchUsersPlaceholder": "Tìm kiếm người dùng...", + "noUsersFound": "Không tìm thấy người dùng nào", + "linkCreated": "Đã tạo liên kết chia sẻ", + "linkNeedsServer": "Liên kết chia sẻ chỉ hoạt động cho các phiên trên máy chủ Termix. Kết nối máy chủ này thông qua máy chủ được liên kết của bạn để chia sẻ nó bằng liên kết.", + "linkCopied": "Liên kết đã được sao chép vào clipboard", + "copyLink": "Sao chép liên kết", + "shareCreated": "Phiên họp đã được chia sẻ. Nó sẽ xuất hiện trong tab Kết nối của họ.", + "shareFailed": "Không thể tạo chia sẻ", + "userLacksHostAccess": "Người dùng đó chưa có quyền truy cập vào máy chủ này. Hãy chia sẻ thông tin máy chủ với họ trước, hoặc sử dụng liên kết thay thế.", + "activeShares": "Cổ phiếu tích cực", + "noActiveShares": "Hiện không có cổ phiếu nào đang được giao dịch trong phiên này.", "revoke": "Thu hồi", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "Thu hồi cổ phần này?", + "revokeConfirmDescription": "Bất kỳ ai sử dụng thư mục chia sẻ này sẽ mất quyền truy cập ngay lập tức.", + "revoked": "Cổ phần đã bị thu hồi", + "revokeFailed": "Không thể thu hồi cổ phần", + "joinCount": "{{count}} tham gia", + "joinCount_other": "{{count}} tham gia", "expiresAt": "Hết hạn {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "Liên kết", + "userShareBadge": "Người dùng: {{username}}", + "loadSharesFailed": "Không thể tải các chia sẻ đang hoạt động", + "remoteDisplayUnavailable": "Hiện tại, tính năng truy cập máy tính từ xa không khả dụng.", + "sharedWithMe": "Các buổi chia sẻ với tôi", "customHoursPlaceholder": "Số giờ cho đến khi hết hạn truy cập" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "Phòng mới", + "roomName": "Tên phòng", + "persistentRoom": "Phòng bền vững", + "persistentRoomHint": "Các phòng họp được lưu lại sẽ vẫn hiển thị sau khi cuộc họp kết thúc và có thể được sử dụng lại.", + "noRooms": "Chưa có phòng nào. Hãy tạo một phòng để bắt đầu cuộc họp.", "openRoom": "Mở", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "Kết thúc cuộc họp", + "leaveRoom": "Rời khỏi", "deleteMember": "Xóa", "removeMember": "Xóa {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "Xóa thành viên này?", + "removeMemberDescription": "{{name}} sẽ mất quyền truy cập vào phòng này ngay lập tức. Bất kỳ trình xem SSH nào đang hoạt động sẽ bị ngắt kết nối.", + "invite": "Mời", + "inviteTitle": "Mời thành viên", + "members": "Thành viên", + "membersPanel": "Thành viên phòng và yêu cầu kiểm soát", + "membersWithCount": "Thành viên ({{count}})", + "guestsWithCount": "Khách ({{count}})", + "removeGuests": "Đuổi khách", + "anonymousGuest": "Khách mời", "online": "trực tuyến", "offline": "ngoại tuyến", - "you": "(you)", + "you": "(Bạn)", "hostBadge": "Máy chủ", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "Giới thiệu", + "present": "Hiện tại", + "presentTitle": "Hãy lên sân khấu", "presentHost": "Máy chủ", "searchHosts": "Tìm kiếm máy chủ", - "noHostsFound": "No available hosts found.", + "noHostsFound": "Không tìm thấy máy chủ nào khả dụng.", "presentProtocol": "Giao thức", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", + "stopPresenting": "Dừng thuyết trình", + "takeOver": "Tiếp quản", + "takeOverConfirmTitle": "Bạn muốn thay thế bài thuyết trình hiện tại?", + "takeOverDescription": "{{name}} đang trình bày. Việc tiếp quản sẽ ngắt kết nối mọi người khỏi sân khấu đó.", + "emptyStage": "Hiện chưa có ai thuyết trình. Hãy lên sân khấu để chia sẻ một phiên thảo luận.", + "stageLoading": "Kết nối với sân khấu...", + "stageEnded": "Buổi thuyết trình kết thúc.", + "roomEnded": "Cuộc họp này đã kết thúc.", + "presenterLabel": "{{name}} đang trình bày", + "guestLink": "Liên kết khách", + "guestLinkOn": "Link dành cho khách đã được bật. Bất cứ ai có link đều có thể xem chương trình.", + "guestLinkOff": "Liên kết khách đã bị tắt.", + "copyLink": "Sao chép liên kết", + "rotateLink": "Xoay liên kết", + "disableLink": "Vô hiệu hóa liên kết", + "rotateLinkConfirmTitle": "Xoay liên kết khách?", + "rotateLinkDescription": "Kết nối hiện tại sẽ ngừng hoạt động ngay lập tức. Các máy khách SSH đang kết nối sẽ bị ngắt kết nối.", + "disableLinkConfirmTitle": "Vô hiệu hóa liên kết khách?", + "disableLinkDescription": "Những người xem SSH ẩn danh sẽ bị ngắt kết nối ngay lập tức và liên kết hiện tại sẽ ngừng hoạt động.", "linkCopied": "Đã sao chép liên kết", "roles": "Vai trò", "users": "Người dùng", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "Tìm kiếm người dùng", + "endConfirmTitle": "Kết thúc cuộc họp này?", + "endDescription": "{{name}} sẽ kết thúc đối với tất cả mọi người và không thể mở lại.", + "endPersistentDescription": "Buổi thuyết trình đang diễn ra tại {{name}} sẽ dừng lại. Phòng vẫn có thể được sử dụng lại.", + "deleteRoom": "Xóa phòng", + "deleteConfirmTitle": "Xóa phòng này?", + "deleteDescription": "{{name}} sẽ bị xóa vĩnh viễn đối với tất cả mọi người và không thể hoàn tác.", + "invitedTo": "Bạn được mời đến \"{{name}}\"", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "Cuộc họp", + "waiting": "Đang chờ người dẫn chương trình...", + "linkInvalid": "Liên kết dành cho khách này không hợp lệ hoặc cuộc họp đã kết thúc." }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "Tab cuộc họp này đã hết hạn. Vui lòng mở lại phòng từ mục Cuộc họp.", "retry": "Thử lại", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "Yêu cầu kiểm soát", + "cancelControlRequest": "Yêu cầu hủy bỏ", + "controlQueue": "Yêu cầu kiểm soát", + "noControlRequests": "Không có yêu cầu nào đang chờ xử lý.", + "grantControlTo": "Trao quyền điều khiển cho {{name}}", + "dismissControlRequest": "Bỏ qua yêu cầu điều khiển của {{name}}", + "releaseControl": "Kiểm soát giải phóng", + "grantControl": "Trao quyền kiểm soát", + "revokeControl": "Giành lại quyền kiểm soát", + "controlRequestedBy": "{{name}} yêu cầu quyền điều khiển", + "grant": "Khoản trợ cấp", + "controlBadge": "Trong tầm kiểm soát", + "youArePresenting": "Bạn đang thuyết trình ở một tab khác. Hãy dừng thuyết trình để nhường sân khấu.", + "created": "Phòng được tạo", + "invited": "Các thành viên được mời", + "roomTab": "Cuộc họp", + "serverChanged": "Máy chủ cuộc họp đã thay đổi. Vui lòng mở lại cuộc họp này từ mục Cuộc họp.", + "hostNotSynced": "Hãy đồng bộ hóa máy chủ này với máy chủ cuộc họp trước khi trình bày.", + "linkRequiresServer": "Kết nối máy tính để bàn này với máy chủ Termix và tạo cuộc họp ở đó để chia sẻ liên kết web." }, "nav": { - "collab": "Meetings" + "collab": "Các cuộc họp" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "Cho phép chia sẻ phiên", + "description": "Cho phép chia sẻ các phiên terminal trực tiếp, RDP, VNC và Telnet trên toàn bộ máy chủ. Khi bị vô hiệu hóa, tùy chọn này sẽ ghi đè lên mọi tùy chọn chia sẻ trên từng máy chủ riêng lẻ." } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "Cho phép chia sẻ phiên", + "description": "Cho phép chia sẻ các phiên trực tiếp trên máy chủ này qua liên kết hoặc với những người dùng khác." } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "Chia sẻ phiên họp và tham gia phòng họp", + "description": "Chia sẻ các phiên trực tiếp qua liên kết hoặc với người dùng khác, tạo và tham gia các phòng cộng tác." } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "Đã chia sẻ với tôi", + "sharedBy": "Được chia sẻ bởi {{username}}", + "join": "Tham gia", + "sharedSessionLabel": "{{hostName}} (được chia sẻ)" } } diff --git a/plugins/session-sharing/locales/translated/zh_CN.json b/plugins/session-sharing/locales/translated/zh_CN.json index 1312619a6..ff7e4abe9 100644 --- a/plugins/session-sharing/locales/translated/zh_CN.json +++ b/plugins/session-sharing/locales/translated/zh_CN.json @@ -1,41 +1,41 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", + "loading": "正在连接到共享会话...", "linkInvalid": "此共享链接无效、已过期或已被撤销。", - "rateLimited": "Too many attempts, please try again shortly", + "rateLimited": "尝试次数过多,请稍后再试。", "sessionEnded": "此会话已结束", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "readOnlyBadge": "仅查看", + "ownerLabel": "房东" }, "modalTitle": "共享会话", "shareButton": "共享", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "会话尚未准备好共享", "modeTab": { "link": "链接", "user": "用户" }, - "linkModeDescription": "Anyone with this link can join, no account required.", + "linkModeDescription": "任何人只要拥有此链接即可加入,无需注册账号。", "userModeDescription": "将主机共享给已拥有此主机访问权限的特定用户。如果他们还没有访问权限,请先将主机共享给他们,或者使用链接代替。共享后,会话将显示在他们的“连接”标签页中。", "permissionLevel": { "label": "权限级别", "readOnly": "只读", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "可以观看直播,但无法打字或互动。", + "readWrite": "读写", + "readWriteDescription": "可以像会话所有者一样进行输入和互动。" }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", + "expiryLabel": "链接过期", + "createLinkButton": "创建链接", "createShareButton": "与用户共享", "searchUsersPlaceholder": "搜索用户......", - "noUsersFound": "No users found", + "noUsersFound": "未找到用户", "linkCreated": "已创建共享链接", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", + "linkNeedsServer": "分享链接仅适用于 Termix 服务器上的会话。请通过您链接的服务器连接此主机,然后使用链接进行分享。", + "linkCopied": "链接已复制到剪贴板", + "copyLink": "复制链接", "shareCreated": "会话已共享。它将出现在对方的“连接”标签页中。", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", + "shareFailed": "创建共享失败", + "userLacksHostAccess": "该用户目前没有访问此主机的权限。请先与其共享主机,或使用链接进行共享。", "activeShares": "有效共享", "noActiveShares": "此会话暂无活跃共享", "revoke": "吊销", @@ -49,120 +49,120 @@ "linkShareBadge": "链接", "userShareBadge": "用户:{{username}}", "loadSharesFailed": "无法加载共享", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "remoteDisplayUnavailable": "目前远程桌面功能不可用。", + "sharedWithMe": "与我分享的会议", "customHoursPlaceholder": "过期前的小时数" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "新房间", + "roomName": "房间名称", + "persistentRoom": "持久房间", + "persistentRoomHint": "会议结束后,持久会议室仍会保留在列表中,可以重复使用。", + "noRooms": "暂无会议室。创建会议室即可开始会议。", "openRoom": "打开", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "会议结束", + "leaveRoom": "离开", "deleteMember": "删除", "removeMember": "移除{{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "移除此成员?", + "removeMemberDescription": "{{name}} 将立即失去对该房间的访问权限。所有正在使用的 SSH 查看器都将被断开连接。", + "invite": "邀请", + "inviteTitle": "邀请成员", + "members": "成员", + "membersPanel": "房间成员和控制请求", + "membersWithCount": "成员({{count}})", + "guestsWithCount": "宾客({{count}})", + "removeGuests": "移除客人", + "anonymousGuest": "客人", "online": "在线", "offline": "离线", - "you": "(you)", + "you": "(你)", "hostBadge": "主机", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "呈现", + "present": "展示", + "presentTitle": "登上舞台", "presentHost": "主机", "searchHosts": "搜索主机", - "noHostsFound": "No available hosts found.", + "noHostsFound": "未找到可用主机。", "presentProtocol": "协议", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", + "stopPresenting": "停止演示", + "takeOver": "接管", + "takeOverConfirmTitle": "替换当前演示文稿?", + "takeOverDescription": "{{name}} 正在直播。接管直播将会断开所有人与该直播间的连接。", + "emptyStage": "目前无人发言。请上台分享您的演讲内容。", + "stageLoading": "连接到舞台……", + "stageEnded": "演讲结束了", + "roomEnded": "会议结束", + "presenterLabel": "{{name}} 正在呈现", + "guestLink": "访客链接", + "guestLinkOn": "访客链接已开启。任何拥有该链接的人都可以观看舞台表演。", + "guestLinkOff": "访客链接已关闭。", + "copyLink": "复制链接", + "rotateLink": "旋转链接", + "disableLink": "禁用链接", + "rotateLinkConfirmTitle": "旋转访客链接?", + "rotateLinkDescription": "当前连接将立即停止工作。已连接的SSH访客将被断开连接。", + "disableLinkConfirmTitle": "禁用访客链接?", + "disableLinkDescription": "匿名 SSH 查看者将被立即断开连接,当前链接将停止工作。", + "linkCopied": "链接已复制", "roles": "角色", "users": "用户", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "搜索用户", + "endConfirmTitle": "结束会议吗?", + "endDescription": "{{name}} 将对所有人关闭,且无法重新开启。", + "endPersistentDescription": "{{name}} 中的当前演示将停止。该房间仍可供再次使用。", + "deleteRoom": "删除房间", + "deleteConfirmTitle": "删除这个房间?", + "deleteDescription": "{{name}} 将被永久删除,且无法撤销。", + "invitedTo": "您受邀参加“{{name}}”", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "会议", + "waiting": "等待主持人……", + "linkInvalid": "此访客链接无效或会议已结束" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "此会议标签页已过期。请从“会议”面板重新打开会议室。", "retry": "重试", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "请求控制", + "cancelControlRequest": "取消请求", + "controlQueue": "控制请求", + "noControlRequests": "没有待处理的请求。", + "grantControlTo": "将控制权交给 {{name}}", + "dismissControlRequest": "驳回 {{name}}的控制请求", + "releaseControl": "发布控制", + "grantControl": "赋予控制权", + "revokeControl": "夺回控制权", + "controlRequestedBy": "{{name}} 请求控制权", + "grant": "授予", + "controlBadge": "掌控之中", + "youArePresenting": "您正在另一个标签页中进行演示。请停止演示,将演示权交给对方。", + "created": "创建房间", + "invited": "受邀成员", + "roomTab": "会议", + "serverChanged": "会议服务器已更改。请从“会议”面板重新打开此会议。", + "hostNotSynced": "演示前,请将此主机与会议服务器同步。", + "linkRequiresServer": "将此桌面连接到 Termix 服务器,并在该服务器上创建会议以共享 Web 链接。" }, "nav": { - "collab": "Meetings" + "collab": "会议" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "允许会话共享", + "description": "允许在整个实例范围内共享实时终端、RDP、VNC 和 Telnet 会话。禁用此功能将覆盖所有主机级别的共享设置。" } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", + "label": "允许会话共享", "description": "允许通过链接或其他方式共享此主机上的实时会话。" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "分享会话并加入房间", + "description": "通过链接或与其他用户共享实时会话,并创建和加入协作房间。" } }, "hosts": { @@ -180,7 +180,7 @@ "connections": { "sectionSharedWithMe": "与我共享", "sharedBy": "由 {{username}} 共享", - "join": "Join", + "join": "加入", "sharedSessionLabel": "{{hostName}}(共享)" } } diff --git a/plugins/session-sharing/locales/translated/zh_TW.json b/plugins/session-sharing/locales/translated/zh_TW.json index a7210e0f3..d213e95b6 100644 --- a/plugins/session-sharing/locales/translated/zh_TW.json +++ b/plugins/session-sharing/locales/translated/zh_TW.json @@ -1,168 +1,168 @@ { "sessionSharing": { "guestView": { - "loading": "Connecting to shared session...", - "linkInvalid": "This share link is invalid, expired, or has been revoked", - "rateLimited": "Too many attempts, please try again shortly", - "sessionEnded": "This session has ended", - "readOnlyBadge": "View only", - "ownerLabel": "Host owner" + "loading": "正在連接到共享會話...", + "linkInvalid": "此分享連結無效、已過期或已撤銷。", + "rateLimited": "嘗試次數過多,請稍後再試。", + "sessionEnded": "本次會議已結束", + "readOnlyBadge": "僅查看", + "ownerLabel": "房東" }, - "modalTitle": "Share session", + "modalTitle": "分享會話", "shareButton": "分享", - "notReadyToShare": "Session is not ready to share yet", + "notReadyToShare": "會話尚未準備好分享", "modeTab": { - "link": "Link", + "link": "關聯", "user": "使用者" }, - "linkModeDescription": "Anyone with this link can join, no account required.", - "userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.", + "linkModeDescription": "任何人只要擁有此連結即可加入,無需註冊帳號。", + "userModeDescription": "將主機共用給已擁有此主機存取權限的特定使用者。如果他們還沒有存取權限,請先將主機分享給他們,或使用連結代替。共享後,會話將顯示在他們的“連接”選項卡中。", "permissionLevel": { "label": "權限層級", "readOnly": "唯讀", - "readOnlyDescription": "Can watch the session live but cannot type or interact.", - "readWrite": "Read-write", - "readWriteDescription": "Can type and interact with the session just like the owner." + "readOnlyDescription": "可以觀看直播,但無法打字或互動。", + "readWrite": "讀寫", + "readWriteDescription": "可以像會話擁有者一樣進行輸入和互動。" }, - "expiryLabel": "Link expiry", - "createLinkButton": "Create link", - "createShareButton": "Share with user", - "searchUsersPlaceholder": "Search users...", - "noUsersFound": "No users found", - "linkCreated": "Share link created", - "linkNeedsServer": "Share links only work for sessions on a Termix server. Connect this host through your linked server to share it with a link.", - "linkCopied": "Link copied to clipboard", - "copyLink": "Copy link", - "shareCreated": "Session shared. It will appear in their Connections tab.", - "shareFailed": "Failed to create share", - "userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.", - "activeShares": "Active shares", - "noActiveShares": "No active shares for this session", + "expiryLabel": "連結過期", + "createLinkButton": "建立連結", + "createShareButton": "與用戶分享", + "searchUsersPlaceholder": "搜尋用戶...", + "noUsersFound": "未找到用戶", + "linkCreated": "已建立分享連結", + "linkNeedsServer": "分享連結僅適用於 Termix 伺服器上的會話。請透過您連結的伺服器連接此主機,然後使用連結進行分享。", + "linkCopied": "連結已複製到剪貼簿", + "copyLink": "複製連結", + "shareCreated": "會話已共用。它將出現在對方的「連線」標籤中。", + "shareFailed": "建立共享失敗", + "userLacksHostAccess": "該使用者目前沒有存取此主機的權限。請先與其共享主機,或使用連結進行共享。", + "activeShares": "活躍股", + "noActiveShares": "本會話無活躍份額", "revoke": "撤銷", - "revokeConfirmTitle": "Revoke this share?", - "revokeConfirmDescription": "Anyone using this share will lose access immediately.", - "revoked": "Share revoked", - "revokeFailed": "Failed to revoke share", - "joinCount": "{{count}} join", - "joinCount_other": "{{count}} joins", + "revokeConfirmTitle": "撤銷此份額?", + "revokeConfirmDescription": "任何使用此共用資料夾的使用者都將立即失去存取權限。", + "revoked": "股份撤銷", + "revokeFailed": "撤銷股份失敗", + "joinCount": "{{count}} 加入", + "joinCount_other": "{{count}} 加入", "expiresAt": "到期日 {{date}}", - "linkShareBadge": "Link", - "userShareBadge": "User: {{username}}", - "loadSharesFailed": "Failed to load active shares", - "remoteDisplayUnavailable": "Remote desktop is not available right now.", - "sharedWithMe": "Sessions shared with me", + "linkShareBadge": "關聯", + "userShareBadge": "使用者: {{username}}", + "loadSharesFailed": "無法加載活躍份額", + "remoteDisplayUnavailable": "目前遠端桌面功能無法使用。", + "sharedWithMe": "與我分享的會議", "customHoursPlaceholder": "存取到期前的小時數" }, "collab": { - "createRoom": "New room", - "roomName": "Room name", - "persistentRoom": "Persistent room", - "persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.", - "noRooms": "No rooms yet. Create one to start a meeting.", + "createRoom": "新房間", + "roomName": "房間名稱", + "persistentRoom": "持久房間", + "persistentRoomHint": "會議結束後,持久會議室仍會保留在清單中,可重複使用。", + "noRooms": "暫無會議室。創建會議室即可開始會議。", "openRoom": "開啟", - "endRoom": "End meeting", - "leaveRoom": "Leave", + "endRoom": "會議結束", + "leaveRoom": "離開", "deleteMember": "移除", "removeMember": "移除 {{name}}", - "removeMemberTitle": "Remove this member?", - "removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.", - "invite": "Invite", - "inviteTitle": "Invite members", - "members": "Members", - "membersPanel": "Room members and control requests", - "membersWithCount": "Members ({{count}})", - "guestsWithCount": "Guests ({{count}})", - "removeGuests": "Remove guests", - "anonymousGuest": "Guest", + "removeMemberTitle": "移除此成員?", + "removeMemberDescription": "{{name}} 將立即失去該房間的存取權限。所有正在使用的 SSH 檢視器都將被斷開連接。", + "invite": "邀請", + "inviteTitle": "邀請成員", + "members": "成員", + "membersPanel": "房間成員和控制請求", + "membersWithCount": "成員({{count}})", + "guestsWithCount": "賓客({{count}})", + "removeGuests": "移除客人", + "anonymousGuest": "客人", "online": "在線", "offline": "離線", - "you": "(you)", + "you": "(你)", "hostBadge": "主機", - "presenterBadge": "Presenting", - "present": "Present", - "presentTitle": "Take the stage", + "presenterBadge": "呈現", + "present": "展示", + "presentTitle": "登上舞台", "presentHost": "主機", "searchHosts": "搜尋主機", - "noHostsFound": "No available hosts found.", + "noHostsFound": "未找到可用主機。", "presentProtocol": "通訊協定", - "stopPresenting": "Stop presenting", - "takeOver": "Take over", - "takeOverConfirmTitle": "Replace the current presentation?", - "takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.", - "emptyStage": "Nobody is presenting. Take the stage to share a session.", - "stageLoading": "Connecting to the stage...", - "stageEnded": "The presentation ended", - "roomEnded": "This meeting has ended", - "presenterLabel": "{{name}} is presenting", - "guestLink": "Guest link", - "guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.", - "guestLinkOff": "Guest link is off.", - "copyLink": "Copy link", - "rotateLink": "Rotate link", - "disableLink": "Disable link", - "rotateLinkConfirmTitle": "Rotate the guest link?", - "rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.", - "disableLinkConfirmTitle": "Disable the guest link?", - "disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.", - "linkCopied": "Link copied", + "stopPresenting": "停止演示", + "takeOver": "接管", + "takeOverConfirmTitle": "替換當前簡報?", + "takeOverDescription": "{{name}} 正在直播中。接管直播將會中斷所有人與該直播間的連結。", + "emptyStage": "目前無人發言。請上台分享您的演講內容。", + "stageLoading": "連接到舞台…", + "stageEnded": "演講結束了", + "roomEnded": "會議結束", + "presenterLabel": "{{name}} 正在呈現", + "guestLink": "訪客連結", + "guestLinkOn": "訪客連結已開啟。任何擁有該連結的人都可以觀看舞台表演。", + "guestLinkOff": "訪客連結已關閉。", + "copyLink": "複製連結", + "rotateLink": "旋轉連結", + "disableLink": "停用連結", + "rotateLinkConfirmTitle": "旋轉訪客連結?", + "rotateLinkDescription": "當前連線將立即停止工作。已連線的SSH訪客將會被斷開連線。", + "disableLinkConfirmTitle": "禁用訪客連結?", + "disableLinkDescription": "匿名 SSH 檢視者將立即被斷開連接,目前連結將停止運作。", + "linkCopied": "連結已複製", "roles": "角色", "users": "使用者", - "searchUsers": "Search users", - "endConfirmTitle": "End this meeting?", - "endDescription": "{{name}} will end for everyone and cannot be reopened.", - "endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.", - "deleteRoom": "Delete room", - "deleteConfirmTitle": "Delete this room?", - "deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.", - "invitedTo": "You were invited to \"{{name}}\"", + "searchUsers": "搜尋用戶", + "endConfirmTitle": "結束會議嗎?", + "endDescription": "{{name}} 將對所有人關閉,且無法重新開啟。", + "endPersistentDescription": "{{name}} 中的目前示範將停止。該房間仍可供再次使用。", + "deleteRoom": "刪除房間", + "deleteConfirmTitle": "刪除這個房間?", + "deleteDescription": "{{name}} 將會永久刪除,且無法撤銷。", + "invitedTo": "您受邀參加“{{name}}”", "guest": { - "title": "Meeting", - "waiting": "Waiting for the presenter...", - "linkInvalid": "This guest link is invalid or the meeting has ended" + "title": "會議", + "waiting": "等待主持人…", + "linkInvalid": "此訪客連結無效或會議已結束" }, - "reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.", + "reopenFromPanel": "此會議標籤頁已過期。請從「會議」面板重新開啟會議室。", "retry": "重試", - "requestControl": "Request control", - "cancelControlRequest": "Cancel request", - "controlQueue": "Control requests", - "noControlRequests": "No pending requests.", - "grantControlTo": "Give control to {{name}}", - "dismissControlRequest": "Dismiss {{name}}'s control request", - "releaseControl": "Release control", - "grantControl": "Give control", - "revokeControl": "Take back control", - "controlRequestedBy": "{{name}} asked for control", - "grant": "Grant", - "controlBadge": "In control", - "youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.", - "created": "Room created", - "invited": "Members invited", - "roomTab": "Meeting", - "serverChanged": "The meeting server changed. Reopen this meeting from the Meetings panel.", - "hostNotSynced": "Sync this host to the meeting server before presenting.", - "linkRequiresServer": "Link this desktop to a Termix server and create the meeting there to share a web link." + "requestControl": "請求控制", + "cancelControlRequest": "取消請求", + "controlQueue": "控制請求", + "noControlRequests": "沒有待處理的請求。", + "grantControlTo": "將控制權交給 {{name}}", + "dismissControlRequest": "駁回 {{name}}的控制請求", + "releaseControl": "發布控制", + "grantControl": "賦予控制權", + "revokeControl": "奪回控制權", + "controlRequestedBy": "{{name}} 請求控制權", + "grant": "授予", + "controlBadge": "掌控之中", + "youArePresenting": "您正在另一個標籤頁中進行示範。請停止演示,將演示權交給對方。", + "created": "創建房間", + "invited": "受邀成員", + "roomTab": "會議", + "serverChanged": "會議伺服器已更改。請從「會議」面板重新開啟此會議。", + "hostNotSynced": "演示前,請將此主機與會議伺服器同步。", + "linkRequiresServer": "將此桌面連接到 Termix 伺服器,並在該伺服器上建立會議以共用 Web 連結。" }, "nav": { - "collab": "Meetings" + "collab": "會議" }, "settings": { "admin": { "globallyEnabled": { - "label": "Allow Session Sharing", - "description": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled." + "label": "允許會話共享", + "description": "允許在整個執行個體範圍內共用即時終端、RDP、VNC 和 Telnet 會話。停用此功能將覆蓋所有主機層級的共用設定。" } }, "host": { "allowSessionSharing": { - "label": "Allow Session Sharing", - "description": "Let live sessions on this host be shared via link or with other users" + "label": "允許會話共享", + "description": "允許透過連結或其他方式分享此主機上的即時會話。" } } }, "permissions": { "use": { - "title": "Share sessions and join rooms", - "description": "Share live sessions by link or with other users, and create and join collaboration rooms." + "title": "分享會話並加入房間", + "description": "透過連結或與其他使用者分享即時會話,並建立和加入協作房間。" } }, "hosts": { @@ -178,9 +178,9 @@ } }, "connections": { - "sectionSharedWithMe": "Shared with me", - "sharedBy": "Shared by {{username}}", - "join": "Join", - "sharedSessionLabel": "{{hostName}} (shared)" + "sectionSharedWithMe": "與我分享", + "sharedBy": "由 {{username}} 分享", + "join": "加入", + "sharedSessionLabel": "{{hostName}} (共享)" } } diff --git a/plugins/snippets/locales/translated/bn_BD.json b/plugins/snippets/locales/translated/bn_BD.json index f605a08dc..7c87e9ee2 100644 --- a/plugins/snippets/locales/translated/bn_BD.json +++ b/plugins/snippets/locales/translated/bn_BD.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "খণ্ডাংশ" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "খণ্ডাংশ", + "feature_snippets_desc": "আপনার প্রায়শই ব্যবহৃত কমান্ডগুলো সংরক্ষণ করুন এবং এক ক্লিকে টার্মিনালে পাঠিয়ে দিন।" }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "স্নিপেটগুলি দেখুন", + "description": "আপনার নিজের স্নিপেট, নোট এবং শেয়ার করা স্নিপেটগুলো দেখুন।" }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "স্নিপেট তৈরি করুন", + "description": "নতুন স্নিপেট, নোট এবং ফোল্ডার তৈরি করুন।" }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "সম্পাদনা স্নিপেট", + "description": "বিদ্যমান স্নিপেট এবং ফোল্ডারগুলির নাম পরিবর্তন করুন।" }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "স্নিপেটগুলি মুছুন", + "description": "স্নিপেট এবং ফোল্ডারগুলো মুছে ফেলুন।" }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "ছোট ছোট অংশ শেয়ার করুন", + "description": "অন্যান্য ব্যবহারকারী বা রোলের সাথে স্নিপেট এবং ফোল্ডার শেয়ার করুন।" } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "ডিফল্টরূপে ফোল্ডারগুলি সংকুচিত করুন", + "description": "স্নিপেট প্যানেল খোলার সময় প্রতিটি স্নিপেট ফোল্ডার সংকুচিত অবস্থায় শুরু হয়।" }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "কমান্ড দেখান", + "description": "প্রতিটি স্নিপেটের কমান্ডের প্রথম লাইনটি তার নামের নিচে দেখান।" }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "চালানোর আগে নিশ্চিত করুন।", + "description": "টার্মিনালে কোনো কমান্ড স্নিপেট চালানোর আগে জিজ্ঞাসা করুন।" } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "cancel": "বাতিল করুন", + "loading": "লোড হচ্ছে...", + "searchPlaceholder": "অনুসন্ধান স্নিপেট", + "newFolder": "নতুন ফোল্ডার", + "newSnippet": "নতুন স্নিপেট", + "noFolder": "কোন ফোল্ডার নেই", + "noSnippetsInFolder": "এই ফোল্ডারে কোনো স্নিপেট নেই", + "noTerminalTabsOpen": "কোন টার্মিনাল ট্যাব খোলা নেই", + "run": "দৌড়", + "pasteToTerminal": "টার্মিনালে পেস্ট করুন", + "copySuccess": "ক্লিপবোর্ডে কপি করা হয়েছে", + "importExport": "আমদানি / রপ্তানি", + "importFailed": "স্নিপেট আমদানি করতে ব্যর্থ হয়েছে", + "nameLabel": "নাম", + "namePlaceholder": "স্নিপেট নাম", + "descriptionLabel": "বর্ণনা", + "descriptionPlaceholder": "ঐচ্ছিক বিবরণ", + "folderLabel": "ফোল্ডার", + "typeLabel": "প্রকার", + "typeCommand": "আদেশ", + "typeNote": "দ্রষ্টব্য", + "commandLabel": "আদেশ", + "commandPlaceholder": "চালানোর জন্য কমান্ড, যেমন systemctl status $HOST", + "noteLabel": "দ্রষ্টব্য", + "notePlaceholder": "টার্মিনালে পেস্ট করার জন্য টেক্সট", + "createSnippetTitle": "স্নিপেট তৈরি করুন", + "createSnippetButton": "স্নিপেট তৈরি করুন", + "createSuccess": "স্নিপেট তৈরি করা হয়েছে", + "createFailed": "স্নিপেট তৈরি করতে ব্যর্থ হয়েছে", + "editSnippetTitle": "সম্পাদনা স্নিপেট", + "saveSnippetButton": "স্নিপেট সংরক্ষণ করুন", + "updateSuccess": "স্নিপেট আপডেট করা হয়েছে", + "updateFailed": "স্নিপেট আপডেট করতে ব্যর্থ হয়েছে", + "deleteFailed": "স্নিপেট মুছে ফেলা ব্যর্থ হয়েছে", + "createFolderTitle": "ফোল্ডার তৈরি করুন", + "createFolderButton": "ফোল্ডার তৈরি করুন", + "folderCreateSuccess": "ফোল্ডার তৈরি করা হয়েছে", + "folderCreateFailed": "ফোল্ডার তৈরি করতে ব্যর্থ হয়েছে", + "editFolderTitle": "ফোল্ডার সম্পাদনা করুন", + "saveFolderButton": "ফোল্ডার সংরক্ষণ করুন", + "folderEditSuccess": "ফোল্ডার আপডেট করা হয়েছে", + "folderEditFailed": "ফোল্ডার আপডেট করতে ব্যর্থ হয়েছে", + "folderNameLabel": "ফোল্ডারের নাম", + "folderNamePlaceholder": "ফোল্ডারের নাম", + "folderIconLabel": "আইকন", + "folderDeleteSuccess": "ফোল্ডার মুছে ফেলা হয়েছে", + "folderDeleteFailed": "ফোল্ডারটি মুছে ফেলা সম্ভব হয়নি", + "confirmRunMessage": "\"{{name}} \" চালান?", + "confirmRunButton": "দৌড়", + "runSuccess": "{{count}} টার্মিনালে \"{{name}}\" চালানো হয়েছে", + "pasteSuccess": "{{name}}\" {{count}} টার্মিনালে পেস্ট করা হয়েছে", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "খণ্ডাংশ", + "count": "{{count}} খণ্ডাংশ", + "add": "স্নিপেট যোগ করুন", + "namePlaceholder": "স্নিপেট নাম", + "contentPlaceholder": "কমান্ডের বিষয়বস্তু", + "folderPlaceholder": "ফোল্ডার (ঐচ্ছিক)", + "empty": "এই ব্যবহারকারীর কোনো স্নিপেট নেই", + "deleteConfirm": "{{username}} এর অন্তর্গত স্নিপেট \"{{name}}\" মুছে ফেলবেন?", + "deleted": "স্নিপেট মুছে ফেলা হয়েছে", + "deleteFailed": "স্নিপেট মুছে ফেলা ব্যর্থ হয়েছে", + "requiredFields": "স্নিপেটের নাম এবং বিষয়বস্তু আবশ্যক।", + "saved": "স্নিপেট সংরক্ষিত", + "saveFailed": "স্নিপেট সংরক্ষণ করতে ব্যর্থ হয়েছে", + "saving": "সঞ্চয়...", + "save": "সংরক্ষণ করুন" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "backToSnippets": "স্নিপেটগুলিতে ফিরে যান", + "settingsTitle": "স্নিপেট সেটিংস", + "settingsDisplayTitle": "প্রদর্শন", + "settingsBehaviorTitle": "আচরণ", + "typeCommandHint": "সক্রিয় টার্মিনালে চলে।", + "typeNoteHint": "রান না করেই সক্রিয় টার্মিনালে পেস্ট করে।", + "variablesHint": "ভেরিয়েবল: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "চালানোর জন্য ডাবল ক্লিক করুন", "sharedBadge": "ভাগ করা হয়েছে", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "copyToClipboard": "ক্লিপবোর্ডে কপি করুন", + "copyFailed": "ক্লিপবোর্ডে কপি করতে ব্যর্থ হয়েছে", + "moreOptions": "আরও বিকল্প", + "moreActions": "আরও পদক্ষেপ", + "moveToFolder": "ফোল্ডারে সরান", + "deleteSnippet": "স্নিপেট মুছুন", + "deleteSnippetConfirm": "\"{{name}} \" স্নিপেটটি মুছে ফেলবেন?", + "deleteSuccess": "স্নিপেট মুছে ফেলা হয়েছে", + "delete": "মুছে ফেলুন", + "folderActions": "ফোল্ডারের কার্যকলাপ", + "addSnippetHere": "এখানে নতুন অংশ", + "deleteFolder": "ফোল্ডারটি মুছে ফেলুন", + "deleteFolderConfirm": "\"{{name}}\" ফোল্ডারটি মুছে ফেলবেন? এর স্নিপেটগুলো ফোল্ডারের বাইরে চলে যায়।", + "createFolderDescription": "সম্পর্কিত অংশগুলো একসাথে গ্রুপ করুন।", + "editFolderDescription": "এই ফোল্ডারটির নাম, রঙ বা আইকন পরিবর্তন করুন।", + "folderColorLabel": "রঙ", + "loadFailed": "স্নিপেট লোড করতে ব্যর্থ হয়েছে", + "importSkipExisting": "আমদানি করুন (বিদ্যমানটি বাদ দিন)", + "importOverwrite": "আমদানি করুন (বিদ্যমানটি মুছে ফেলুন)", + "importInvalidFile": "ওই ফাইলটি একটি বৈধ স্নিপেট এক্সপোর্ট নয়।", + "importSuccess": "{{imported}}আমদানি করা হয়েছে, {{updated}}আপডেট করা হয়েছে, {{skipped}} বাদ দেওয়া হয়েছে", + "exportSnippets": "স্নিপেট রপ্তানি করুন", + "exportSuccess": "স্নিপেট রপ্তানি করা হয়েছে", + "exportFailed": "স্নিপেট রপ্তানি করতে ব্যর্থ হয়েছে", + "expandAll": "সমস্ত ফোল্ডার প্রসারিত করুন", + "collapseAll": "সমস্ত ফোল্ডার সংকুচিত করুন", + "docsLink": "ডকুমেন্টেশন", + "clearSearch": "পরিষ্কার অনুসন্ধান", + "noSearchResults": "আপনার অনুসন্ধানের সাথে কোনো স্নিপেট মেলেনি।", + "emptyTitle": "এখনও কোনো স্নিপেট নেই", + "emptyDescription": "যে কমান্ডগুলো আপনি প্রায়ই ব্যবহার করেন, সেগুলো সেভ করে রাখুন, তারপর টার্মিনালে এক ক্লিকেই চালান।", + "shareSnippet": "স্নিপেট শেয়ার করুন", + "shareFolder": "ফোল্ডার শেয়ার করুন", + "shareExpiry": "মেয়াদ শেষ", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "কখনো না", + "h1": "১ ঘন্টায়", + "h24": "১ দিনে", + "h168": "৭ দিনে", + "h720": "৩০ দিনে" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", + "shareButton": "শেয়ার", + "shareSuccess": "{{count}} এর সাথে শেয়ার করা হয়েছে", + "shareFailed": "শেয়ার করতে ব্যর্থ হয়েছে", + "shareLoadFailed": "শেয়ারিং বিবরণ লোড করতে ব্যর্থ হয়েছে", + "currentAccess": "বর্তমান অ্যাক্সেস", + "notSharedYet": "এখনো কারো সাথে শেয়ার করা হয়নি", + "revokeAccess": "বাতিল করুন", + "revokeSuccess": "প্রবেশাধিকার বাতিল করা হয়েছে", "revokeFailed": "অ্যাক্সেস প্রত্যাহার করা যায়নিfdfg", - "close": "Close", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "close": "বন্ধ করুন", + "targetHostsLabel": "লক্ষ্য হোস্ট", + "targetHostsHint": "টার্মিনাল খোলা ছাড়াই সরাসরি এই কমান্ডটি চালানোর জন্য হোস্ট নির্বাচন করুন। সক্রিয় টার্মিনালে এটি চালাতে খালি রাখুন।", + "clearTargetHosts": "পরিষ্কার", + "noHostsAvailable": "কোন হোস্ট উপলব্ধ নেই", + "searchHosts": "হোস্ট অনুসন্ধান করুন", + "runOnTargets": "টার্গেট হোস্টগুলিতে চালান", + "executionResultTitle": "\"{{name}} \" এর ফলাফল", + "executionResultDescription": "প্রতিটি টার্গেট হোস্ট থেকে আউটপুট।", + "executionSuccess": "সাফল্য", + "executionFailed": "ব্যর্থ", + "directRunSuccess": "{{count}} হোস্টে \"{{name}}\" চালানো হয়েছে", + "directRunPartialFail": "কিছু হোস্টে \"{{name}}\" ব্যর্থ হয়েছে", + "reorderFailed": "স্নিপেটগুলির পুনর্বিন্যাস করতে ব্যর্থ হয়েছে", + "dropToRemoveFromFolder": "ফোল্ডার থেকে বের হতে এখানে ড্রপ করুন।", + "shareSnippetTitle": "শেয়ার করুন \"{{name}}\"", + "shareFolderTitle": "ফোল্ডার শেয়ার করুন \"{{name}}\"", + "shareWith": "শেয়ার করুন", + "usersTab": "ব্যবহারকারীরা", + "rolesTab": "ভূমিকা", + "shareSearchPlaceholder": "ব্যবহারকারী বা ভূমিকা অনুসন্ধান করুন", + "shareNoMatches": "কোনো মিল নেই", + "shareWithCount": "{{count}} এর সাথে শেয়ার করুন", + "shareFolderHint": "এই ফোল্ডারের প্রতিটি স্নিপেট শেয়ার করা হয়। পরে যোগ করা স্নিপেটগুলো স্বয়ংক্রিয়ভাবে শেয়ার করা হয় না।", + "shareFolderSummary": "এই ফোল্ডারে শেয়ার করা {{count}} স্নিপেট(গুলি)", + "grantedBy": "মঞ্জুর করেছেন", + "expired": "মেয়াদোত্তীর্ণ", + "variablesDialogTitle": "দৌড়াও \"{{name}}\"", + "variablesDialogDescription": "এই কোড স্নিপেটটি চালানোর আগে প্রয়োজনীয় মানগুলি পূরণ করুন।", + "variablesPreviewLabel": "প্রিভিউ", + "variablesConfirmButton": "দৌড়", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "বিদ্যমান কোড চালান", + "snippetLabel": "স্নিপেট", + "selectSnippet": "একটি স্নিপেট নির্বাচন করুন", + "snippetMissing": "স্নিপেটটি খুঁজে পাওয়া যায়নি", + "snippetRequired": "একটি স্নিপেট নির্বাচন করুন" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "সক্রিয় টার্মিনাল ট্যাবে চালান", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "স্টার্টআপ স্নিপেট", + "quickActionsTitle": "দ্রুত পদক্ষেপ", + "quickActionsDescription": "এক ক্লিকে কমান্ড কার্যকর করার জন্য কুইক অ্যাকশনগুলো হোস্ট মেট্রিক্স টুলবারে বাটন হিসেবে প্রদর্শিত হয়।", + "noQuickActions": "এখনো কোনো দ্রুত পদক্ষেপ নেওয়া হয়নি।", + "buttonLabel": "বোতাম লেবেল", + "selectSnippet": "স্নিপেট নির্বাচন করুন...", + "addQuickAction": "অ্যাকশন যোগ করুন", + "tabTitle": "খণ্ডাংশ", + "startupDescription": "প্রতিবার এই হোস্টে সংযোগ করার সময় এটি টার্মিনালে চলে। $HOST -এর মতো ভেরিয়েবলগুলো পূরণ করা হয়; ইনপুট চাওয়ার একটি অংশ এড়িয়ে যাওয়া হয়।", + "none": "কোনোটিই না", + "removeQuickAction": "দ্রুত পদক্ষেপ অপসারণ করুন" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "{{name}} কার্যকর করা হচ্ছে ...", + "succeeded": "{{name}} সফলভাবে সম্পন্ন হয়েছে", + "failed": "{{name}} ব্যর্থ হয়েছে", + "error": "{{name}} কার্যকর করতে ব্যর্থ হয়েছে" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "সক্রিয় টার্মিনাল ট্যাবে পেস্ট করুন", + "targetTerminals": "দৌড়ে যান", + "targetTerminalsHint": "ঐচ্ছিক, অন্যথায় সক্রিয় ট্যাব", + "selectAll": "সব", + "selectNone": "কোনোটিই না" } diff --git a/plugins/snippets/locales/translated/hi_IN.json b/plugins/snippets/locales/translated/hi_IN.json index 1b0e90288..824823a9b 100644 --- a/plugins/snippets/locales/translated/hi_IN.json +++ b/plugins/snippets/locales/translated/hi_IN.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "स्निपेट्स", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "उन कमांडों को सेव करें जिन्हें आप अक्सर चलाते हैं और उन्हें एक क्लिक में टर्मिनल पर भेजें।" }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "अंश देखें", + "description": "अपने खुद के अंश, नोट्स और साझा किए गए अंश देखें।" }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "स्निपेट बनाएं", + "description": "नए स्निपेट, नोट्स और फोल्डर बनाएं।" }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "स्निपेट संपादित करें", + "description": "मौजूदा स्निपेट और फ़ोल्डरों का नाम बदलें या उनमें बदलाव करें।" }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "स्निपेट्स हटाएं", + "description": "स्निपेट और फ़ोल्डर हटाएं।" }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "अंश साझा करें", + "description": "अन्य उपयोगकर्ताओं या भूमिकाओं के साथ स्निपेट और फ़ोल्डर साझा करें।" } }, "settings": { "foldersCollapsed": { "label": "डिफ़ॉल्ट रूप से फ़ोल्डर्स संकुचित करें", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "स्निपेट्स पैनल खोलते समय प्रत्येक स्निपेट फ़ोल्डर को बंद अवस्था में प्रारंभ करें।" }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "कमांड दिखाएँ", + "description": "प्रत्येक स्निपेट के कमांड की पहली पंक्ति को उसके नाम के नीचे दिखाएँ।" }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "चलाने से पहले पुष्टि करें", + "description": "टर्मिनल में कमांड चलाने से पहले पूछ लें।" } }, "cancel": "रद्द करें", "loading": "लोड हो रहा है...", - "searchPlaceholder": "Search snippets", + "searchPlaceholder": "खोज अंश", "newFolder": "नया फ़ोल्डर", - "newSnippet": "New snippet", + "newSnippet": "नया अंश", "noFolder": "कोई फ़ोल्डर नहीं", "noSnippetsInFolder": "इस फ़ोल्डर में कोई स्निपेट नहीं है", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "कोई टर्मिनल टैब खुला नहीं है", "run": "चलाएं", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "टर्मिनल में पेस्ट करें", "copySuccess": "क्लिपबोर्ड पर कॉपी किया गया", "importExport": "आयात / निर्यात", "importFailed": "स्निपेट आयात करने में विफल", @@ -62,37 +62,37 @@ "folderLabel": "फ़ोल्डर", "typeLabel": "प्रकार", "typeCommand": "कमांड", - "typeNote": "Note", + "typeNote": "टिप्पणी", "commandLabel": "कमांड", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "चलाने के लिए कमांड, उदाहरण के लिए systemctl status $HOST", + "noteLabel": "टिप्पणी", + "notePlaceholder": "टर्मिनल में पेस्ट करने के लिए टेक्स्ट", + "createSnippetTitle": "स्निपेट बनाएं", + "createSnippetButton": "स्निपेट बनाएं", + "createSuccess": "स्निपेट बनाया गया", "createFailed": "स्निपेट बनाने में विफल", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "स्निपेट संपादित करें", + "saveSnippetButton": "अंश सहेजें", + "updateSuccess": "अंश अपडेट किया गया", "updateFailed": "स्निपेट अपडेट करने में विफल", "deleteFailed": "स्निपेट हटाने में विफल", "createFolderTitle": "फ़ोल्डर बनाएँ", "createFolderButton": "फ़ोल्डर बनाएँ", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "फ़ोल्डर बनाया गया", "folderCreateFailed": "फ़ोल्डर बनाने में विफल", "editFolderTitle": "फ़ोल्डर संपादित करें", "saveFolderButton": "फ़ोल्डर सहेजें", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "फ़ोल्डर अपडेट हो गया", "folderEditFailed": "फ़ोल्डर अपडेट करने में विफल", "folderNameLabel": "फ़ोल्डर का नाम", "folderNamePlaceholder": "फ़ोल्डर का नाम", "folderIconLabel": "आइकन", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "फ़ोल्डर हटा दिया गया", "folderDeleteFailed": "फ़ोल्डर हटाने में विफल", "confirmRunMessage": "\"{{name}}\" चलाएँ?", "confirmRunButton": "चलाएं", "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "pasteSuccess": "\"{{name}}\" को {{count}} टर्मिनल(ओं) में पेस्ट किया गया", "admin": { "tabTitle": "स्निपेट्स", "count": "{{count}} स्निपेट", @@ -110,104 +110,104 @@ "saving": "सहेजा जा रहा है...", "save": "सहेजें" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "स्निपेट्स पर वापस जाएँ", + "settingsTitle": "स्निपेट सेटिंग्स", + "settingsDisplayTitle": "प्रदर्शन", "settingsBehaviorTitle": "व्यवहार", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "यह सक्रिय टर्मिनल में चलता है।", + "typeNoteHint": "यह सक्रिय टर्मिनल में बिना चलाए पेस्ट करता है।", + "variablesHint": "चर: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "चलाने के लिए डबल क्लिक करें", "sharedBadge": "साझा", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "क्लिपबोर्ड पर कॉपी करें", "copyFailed": "क्लिपबोर्ड पर कॉपी करने में विफल", - "moreOptions": "More options", + "moreOptions": "अधिक विकल्प", "moreActions": "अधिक कार्रवाइयां", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "फ़ोल्डर में ले जाएँ", + "deleteSnippet": "स्निपेट हटाएं", + "deleteSnippetConfirm": "स्निपेट \"{{name}} \" हटाएं?", "deleteSuccess": "स्निपेट हटा दिया गया", "delete": "हटाएँ", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "फ़ोल्डर क्रियाएँ", + "addSnippetHere": "यहां नया अंश है", "deleteFolder": "फ़ोल्डर हटाएं", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "फ़ोल्डर \"{{name}}\" हटाएं? इसके स्निपेट फ़ोल्डर से बाहर चले जाते हैं।", + "createFolderDescription": "संबंधित अंशों को एक साथ समूहित करें।", + "editFolderDescription": "इस फ़ोल्डर का नाम, रंग या आइकन बदलें।", "folderColorLabel": "रंग", - "loadFailed": "Failed to load snippets", + "loadFailed": "स्निपेट लोड करने में विफल", "importSkipExisting": "इम्पोर्ट करें (मौजूदा को छोड़ें)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "आयात करें (मौजूदा को ओवरराइट करें)", + "importInvalidFile": "वह फ़ाइल वैध स्निपेट निर्यात नहीं है", + "importSuccess": "आयातित {{imported}}, अद्यतनित {{updated}}, छोड़ा गया {{skipped}}", + "exportSnippets": "निर्यात स्निपेट", + "exportSuccess": "निर्यात किए गए अंश", "exportFailed": "स्निपेट निर्यात करने में विफल", "expandAll": "सभी फ़ोल्डर विस्तृत करें", "collapseAll": "सभी फ़ोल्डर संकुचित करें", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "प्रलेखन", + "clearSearch": "खोज साफ़ करें", + "noSearchResults": "आपकी खोज से मेल खाने वाले कोई अंश नहीं हैं", + "emptyTitle": "अभी तक कोई अंश उपलब्ध नहीं हैं", + "emptyDescription": "जिन कमांड्स को आप अक्सर चलाते हैं, उन्हें सेव कर लें और फिर उन्हें एक क्लिक में टर्मिनल में चलाएं।", + "shareSnippet": "अंश साझा करें", + "shareFolder": "फ़ोल्डर साझा करें", "shareExpiry": "समाप्ति", "shareExpiryOptions": { "h0": "कभी नहीं", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "1 घंटे में", + "h24": "1 दिन में", + "h168": "7 दिनों में", + "h720": "30 दिनों में" }, "shareButton": "साझा करें", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "{{count}} के साथ साझा किया गया", + "shareFailed": "साझा करने में विफल", + "shareLoadFailed": "शेयरिंग विवरण लोड करने में विफल", "currentAccess": "वर्तमान पहुँच", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "अभी तक किसी के साथ साझा नहीं किया गया है", "revokeAccess": "निरस्त करें", "revokeSuccess": "पहुँच रद्द की गई", "revokeFailed": "पहुँच रद्द करने में विफल", "close": "बंद करें", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "लक्षित मेजबान", + "targetHostsHint": "इस कमांड को सीधे चलाने के लिए होस्ट चुनें, बिना टर्मिनल खोले। सक्रिय टर्मिनल में चलाने के लिए इसे खाली छोड़ दें।", "clearTargetHosts": "साफ़ करें", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "noHostsAvailable": "कोई होस्ट उपलब्ध नहीं है", + "searchHosts": "होस्ट खोजें", + "runOnTargets": "लक्ष्य होस्ट पर चलाएँ", + "executionResultTitle": "\"{{name}} \" के लिए परिणाम", + "executionResultDescription": "प्रत्येक लक्ष्य होस्ट से आउटपुट।", "executionSuccess": "सफल", "executionFailed": "असफल", "directRunSuccess": "\"{{name}}\" को {{count}} होस्ट पर चलाया गया", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "कुछ होस्ट पर \"{{name}}\" विफल रहा", + "reorderFailed": "स्निपेट्स को पुनर्व्यवस्थित करने में विफल", + "dropToRemoveFromFolder": "फोल्डर से बाहर निकलने के लिए यहां ड्रॉप करें", + "shareSnippetTitle": "शेयर करें \"{{name}}\"", + "shareFolderTitle": "फ़ोल्डर साझा करें \"{{name}}\"", "shareWith": "के साथ साझा करें", "usersTab": "उपयोगकर्ता", "rolesTab": "भूमिकाएं", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareSearchPlaceholder": "उपयोगकर्ताओं या भूमिकाओं को खोजें", + "shareNoMatches": "कोई मेल नहीं", + "shareWithCount": "{{count}} के साथ साझा करें", + "shareFolderHint": "इस फ़ोल्डर में मौजूद सभी स्निपेट साझा करता है। बाद में जोड़े गए स्निपेट स्वचालित रूप से साझा नहीं होते हैं।", + "shareFolderSummary": "इस फ़ोल्डर में साझा किए गए {{count}} अंश", "grantedBy": "प्रदानकर्ता", "expired": "समाप्त", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogTitle": "रन \"{{name}}\"", + "variablesDialogDescription": "इस कोड स्निपेट को चलाने से पहले इसमें आवश्यक मान भरें।", "variablesPreviewLabel": "पूर्वावलोकन", "variablesConfirmButton": "चलाएं", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "मौजूदा स्निपेट चलाएँ", + "snippetLabel": "टुकड़ा", + "selectSnippet": "एक अंश का चयन करें", + "snippetMissing": "अंश नहीं मिला", + "snippetRequired": "एक अंश का चयन करें" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "सक्रिय टर्मिनल टैब में चलाएँ", "host": { "startupTitle": "स्टार्टअप स्निपेट", "quickActionsTitle": "त्वरित कार्रवाइयाँ", @@ -217,9 +217,9 @@ "selectSnippet": "स्निपेट चुनें...", "addQuickAction": "कार्रवाई जोड़ें", "tabTitle": "स्निपेट्स", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "यह टर्मिनल में हर बार इस होस्ट से कनेक्ट होने पर चलता है। $HOST जैसे वैरिएबल भरे जाते हैं; इनपुट मांगने वाला एक अंश छोड़ दिया जाता है।", "none": "कोई नहीं", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "त्वरित कार्रवाई हटाएँ" }, "quickActions": { "running": "{{name}} निष्पादित हो रहा है...", @@ -227,9 +227,9 @@ "failed": "{{name}} विफल रहा", "error": "{{name}} निष्पादित करने में विफल" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "सक्रिय टर्मिनल टैब में पेस्ट करें", + "targetTerminals": "झगड़ा", + "targetTerminalsHint": "वैकल्पिक, अन्यथा सक्रिय टैब", "selectAll": "सभी", "selectNone": "कोई नहीं" } diff --git a/plugins/snippets/locales/translated/id_ID.json b/plugins/snippets/locales/translated/id_ID.json index 86eb4673f..5f8ed4ae8 100644 --- a/plugins/snippets/locales/translated/id_ID.json +++ b/plugins/snippets/locales/translated/id_ID.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "Cuplikan" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "Cuplikan", + "feature_snippets_desc": "Simpan perintah yang sering Anda jalankan dan kirimkan ke terminal hanya dengan satu klik." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Lihat cuplikan", + "description": "Lihat cuplikan, catatan, dan cuplikan yang dibagikan milik Anda sendiri." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Buat cuplikan", + "description": "Buat cuplikan, catatan, dan folder baru." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Edit cuplikan", + "description": "Ubah nama atau mengganti cuplikan dan folder yang sudah ada." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Hapus cuplikan", + "description": "Hapus cuplikan dan folder." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Bagikan cuplikan", + "description": "Bagikan cuplikan dan folder dengan pengguna atau peran lain." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Secara default, folder akan diciutkan.", + "description": "Saat membuka panel Cuplikan, setiap folder cuplikan akan tertutup." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Tampilkan perintah", + "description": "Tampilkan baris pertama perintah setiap cuplikan di bawah namanya." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Konfirmasi sebelum menjalankan", + "description": "Tanyakan terlebih dahulu sebelum menjalankan cuplikan perintah di terminal." } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", + "cancel": "Membatalkan", + "loading": "Memuat...", + "searchPlaceholder": "Cuplikan pencarian", + "newFolder": "Folder baru", + "newSnippet": "Cuplikan baru", + "noFolder": "Tidak ada folder", + "noSnippetsInFolder": "Tidak ada cuplikan di folder ini", + "noTerminalTabsOpen": "Tidak ada tab terminal yang terbuka.", + "run": "Berlari", + "pasteToTerminal": "Tempel ke terminal", + "copySuccess": "Disalin ke papan klip", + "importExport": "Impor / Ekspor", + "importFailed": "Gagal mengimpor cuplikan kode.", + "nameLabel": "Nama", + "namePlaceholder": "Nama cuplikan", + "descriptionLabel": "Keterangan", + "descriptionPlaceholder": "Deskripsi opsional", + "folderLabel": "Map", + "typeLabel": "Jenis", + "typeCommand": "Memerintah", + "typeNote": "Catatan", + "commandLabel": "Memerintah", + "commandPlaceholder": "Perintah yang akan dijalankan, misalnya systemctl status $HOST", + "noteLabel": "Catatan", + "notePlaceholder": "Teks yang akan ditempelkan ke terminal", + "createSnippetTitle": "Buat cuplikan", + "createSnippetButton": "Buat cuplikan", + "createSuccess": "Cuplikan dibuat", + "createFailed": "Gagal membuat cuplikan", + "editSnippetTitle": "Sunting cuplikan", + "saveSnippetButton": "Simpan cuplikan", + "updateSuccess": "Cuplikan diperbarui", + "updateFailed": "Gagal memperbarui cuplikan", + "deleteFailed": "Gagal menghapus cuplikan", + "createFolderTitle": "Buat folder", + "createFolderButton": "Buat folder", + "folderCreateSuccess": "Folder telah dibuat.", + "folderCreateFailed": "Gagal membuat folder", "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "saveFolderButton": "Simpan folder", + "folderEditSuccess": "Folder telah diperbarui.", + "folderEditFailed": "Gagal memperbarui folder", + "folderNameLabel": "Nama folder", + "folderNamePlaceholder": "Nama folder", + "folderIconLabel": "Ikon", + "folderDeleteSuccess": "Folder dihapus", + "folderDeleteFailed": "Gagal menghapus folder", + "confirmRunMessage": "Jalankan \"{{name}}\"?", + "confirmRunButton": "Berlari", + "runSuccess": "Menjalankan \"{{name}}\" pada {{count}} terminal", + "pasteSuccess": "\"{{name}}\" ditempelkan ke terminal {{count}}", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "Cuplikan", + "count": "{{count}} cuplikan", + "add": "Tambahkan Cuplikan", + "namePlaceholder": "Nama cuplikan", + "contentPlaceholder": "Isi perintah", + "folderPlaceholder": "Folder (opsional)", + "empty": "Pengguna ini tidak memiliki cuplikan.", + "deleteConfirm": "Hapus cuplikan \"{{name}}\" milik {{username}}?", + "deleted": "Cuplikan dihapus", + "deleteFailed": "Gagal menghapus cuplikan", + "requiredFields": "Nama cuplikan dan konten wajib diisi.", + "saved": "Cuplikan tersimpan", + "saveFailed": "Gagal menyimpan cuplikan", + "saving": "Penghematan...", + "save": "Menyimpan" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "backToSnippets": "Kembali ke cuplikan", + "settingsTitle": "Pengaturan cuplikan", + "settingsDisplayTitle": "Menampilkan", + "settingsBehaviorTitle": "Perilaku", + "typeCommandHint": "Berjalan di terminal aktif.", + "typeNoteHint": "Menempelkan teks ke terminal aktif tanpa menjalankannya.", + "variablesHint": "Variabel: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Klik dua kali untuk menjalankan", "sharedBadge": "Dibagikan", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "copyToClipboard": "Salin ke papan klip", + "copyFailed": "Gagal menyalin ke papan klip", + "moreOptions": "Opsi lainnya", + "moreActions": "Tindakan lainnya", + "moveToFolder": "Pindahkan ke folder", + "deleteSnippet": "Hapus cuplikan", + "deleteSnippetConfirm": "Hapus cuplikan \"{{name}}\"?", + "deleteSuccess": "Cuplikan dihapus", + "delete": "Menghapus", + "folderActions": "Tindakan folder", + "addSnippetHere": "Cuplikan baru di sini", + "deleteFolder": "Hapus folder", + "deleteFolderConfirm": "Hapus folder \"{{name}}\"? Cuplikan-cuplikannya akan dipindahkan keluar dari folder.", + "createFolderDescription": "Kelompokkan cuplikan yang terkait bersama-sama.", + "editFolderDescription": "Ubah nama, warna, atau ikon folder ini.", + "folderColorLabel": "Warna", + "loadFailed": "Gagal memuat cuplikan", + "importSkipExisting": "Impor (lewati yang sudah ada)", + "importOverwrite": "Impor (timpa yang sudah ada)", + "importInvalidFile": "File tersebut bukan ekspor cuplikan yang valid.", + "importSuccess": "Diimpor {{imported}}, diperbarui {{updated}}, dilewati {{skipped}}", + "exportSnippets": "Ekspor cuplikan", + "exportSuccess": "Cuplikan yang diekspor", + "exportFailed": "Gagal mengekspor cuplikan", + "expandAll": "Buka semua folder", + "collapseAll": "Tutup semua folder", + "docsLink": "Dokumentasi", + "clearSearch": "Hapus pencarian", + "noSearchResults": "Tidak ada cuplikan yang sesuai dengan pencarian Anda.", + "emptyTitle": "Belum ada cuplikan", + "emptyDescription": "Simpan perintah yang sering Anda jalankan, lalu jalankan di terminal dengan sekali klik.", + "shareSnippet": "Bagikan cuplikan", + "shareFolder": "Folder berbagi", + "shareExpiry": "Berakhir", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Tidak pernah", + "h1": "Dalam 1 jam", + "h24": "Dalam 1 hari", + "h168": "Dalam 7 hari", + "h720": "Dalam 30 hari" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", + "shareButton": "Membagikan", + "shareSuccess": "Dibagikan dengan {{count}}", + "shareFailed": "Gagal berbagi", + "shareLoadFailed": "Gagal memuat detail berbagi.", + "currentAccess": "Akses saat ini", + "notSharedYet": "Belum dibagikan kepada siapa pun", + "revokeAccess": "Menarik kembali", "revokeSuccess": "Akses dicabut", "revokeFailed": "Gagal mencabut akses", "close": "Tutup", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "targetHostsLabel": "Host target", + "targetHostsHint": "Pilih host tempat perintah ini akan dijalankan secara langsung, tanpa terminal terbuka. Biarkan kosong untuk menjalankannya di terminal aktif.", + "clearTargetHosts": "Jernih", + "noHostsAvailable": "Tidak ada tuan rumah yang tersedia.", + "searchHosts": "Cari host", + "runOnTargets": "Jalankan pada host target", + "executionResultTitle": "Hasil untuk \"{{name}}\"", + "executionResultDescription": "Output dari setiap host target.", + "executionSuccess": "Kesuksesan", + "executionFailed": "Gagal", + "directRunSuccess": "Menjalankan \"{{name}}\" pada {{count}} host", + "directRunPartialFail": "\"{{name}}\" gagal pada beberapa host", + "reorderFailed": "Gagal menyusun ulang cuplikan", + "dropToRemoveFromFolder": "Seret di sini untuk keluar dari folder", + "shareSnippetTitle": "Bagikan \"{{name}}\"", + "shareFolderTitle": "Folder berbagi \"{{name}}\"", + "shareWith": "Bagikan dengan", + "usersTab": "Pengguna", + "rolesTab": "Peran", + "shareSearchPlaceholder": "Cari pengguna atau peran", + "shareNoMatches": "Tidak ada kecocokan", + "shareWithCount": "Bagikan dengan {{count}}", + "shareFolderHint": "Membagikan semua cuplikan kode dalam folder ini. Cuplikan kode yang ditambahkan kemudian tidak dibagikan secara otomatis.", + "shareFolderSummary": "Cuplikan {{count}} yang dibagikan di folder ini", + "grantedBy": "Diberikan oleh", + "expired": "Kedaluwarsa", + "variablesDialogTitle": "Jalankan \"{{name}}\"", + "variablesDialogDescription": "Isi nilai-nilai yang dibutuhkan cuplikan kode ini sebelum menjalankannya.", + "variablesPreviewLabel": "Pratinjau", + "variablesConfirmButton": "Berlari", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Jalankan cuplikan kode yang sudah ada.", + "snippetLabel": "Potongan", + "selectSnippet": "Pilih cuplikan", + "snippetMissing": "cuplikan tidak ditemukan", + "snippetRequired": "Pilih cuplikan" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Jalankan di tab terminal aktif", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "Cuplikan Startup", + "quickActionsTitle": "Tindakan Cepat", + "quickActionsDescription": "Tindakan cepat muncul sebagai tombol di bilah alat Metrik Host untuk eksekusi perintah sekali klik.", + "noQuickActions": "Belum ada tindakan cepat.", + "buttonLabel": "Label tombol", + "selectSnippet": "Pilih cuplikan...", + "addQuickAction": "Tambahkan Tindakan", + "tabTitle": "Cuplikan", + "startupDescription": "Berjalan di terminal setiap kali terhubung ke host ini. Variabel seperti $HOST diisi; cuplikan yang meminta input dilewati.", + "none": "Tidak ada", + "removeQuickAction": "Hapus tindakan cepat" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "Menjalankan {{name}}...", + "succeeded": "{{name}} berhasil diselesaikan", + "failed": "{{name}} gagal", + "error": "Gagal mengeksekusi {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "Tempelkan di tab terminal aktif", + "targetTerminals": "Berlari masuk", + "targetTerminalsHint": "opsional, jika tidak, tab aktif", + "selectAll": "Semua", + "selectNone": "Tidak ada" } diff --git a/plugins/snippets/locales/translated/no_NO.json b/plugins/snippets/locales/translated/no_NO.json index 8fcd3cbab..f4d60889a 100644 --- a/plugins/snippets/locales/translated/no_NO.json +++ b/plugins/snippets/locales/translated/no_NO.json @@ -1,62 +1,62 @@ { "nav": { - "snippets": "Snippets" + "snippets": "Utdrag" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "Utdrag", + "feature_snippets_desc": "Lagre kommandoer du kjører ofte og send dem til en terminal med ett klikk." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Se utdrag", + "description": "Se dine egne utdrag, notater og delte utdrag." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Lag utdrag", + "description": "Opprett nye utdrag, notater og mapper." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Rediger utdrag", + "description": "Gi nytt navn til eller endre eksisterende utdrag og mapper." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Slett utdrag", + "description": "Slett utdrag og mapper." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Del utdrag", + "description": "Del utdrag og mapper med andre brukere eller roller." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Skjul mapper som standard", + "description": "Start hver utdragsmappe skjult når du åpner Utdragspanelet." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Vis kommandoer", + "description": "Vis den første linjen i hver kodebits kommando under navnet." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Bekreft før kjøring", + "description": "Spør før en kommandosnutt kjøres i en terminal." } }, "cancel": "Avbryt", "loading": "Laster...", "searchPlaceholder": "Søk i snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", + "newFolder": "Ny mappe", + "newSnippet": "Nytt utdrag", "noFolder": "Ingen mappe", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", + "noSnippetsInFolder": "Ingen utdrag i denne mappen", + "noTerminalTabsOpen": "Ingen terminalfane er åpen", "run": "Kjør", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Lim inn i terminalen", "copySuccess": "Kopiert til utklippstavlen", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", + "importExport": "Import/eksport", + "importFailed": "Kunne ikke importere kodebiter", "nameLabel": "Navn", - "namePlaceholder": "Snippet name", + "namePlaceholder": "Navn på utdrag", "descriptionLabel": "Beskrivelse", "descriptionPlaceholder": "Valgfri beskrivelse", "folderLabel": "Mappe", @@ -64,162 +64,162 @@ "typeCommand": "Kommando", "typeNote": "Note", "commandLabel": "Kommando", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", + "commandPlaceholder": "Kommando som skal kjøres, f.eks. systemctl status $HOST", "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "notePlaceholder": "Tekst som skal limes inn i terminalen", + "createSnippetTitle": "Opprett kodebit", + "createSnippetButton": "Opprett kodebit", + "createSuccess": "Kodeutdrag opprettet", "createFailed": "Kunne ikke opprette snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Rediger utdrag", + "saveSnippetButton": "Lagre utdrag", + "updateSuccess": "Utdrag oppdatert", "updateFailed": "Kunne ikke oppdatere snippet", "deleteFailed": "Kunne ikke slette snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", + "createFolderTitle": "Opprett mappe", + "createFolderButton": "Opprett mappe", + "folderCreateSuccess": "Mappe opprettet", "folderCreateFailed": "Kunne ikke opprette mappe", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", + "editFolderTitle": "Rediger mappe", + "saveFolderButton": "Lagre mappe", + "folderEditSuccess": "Mappen er oppdatert", + "folderEditFailed": "Kunne ikke oppdatere mappen", + "folderNameLabel": "Mappenavn", + "folderNamePlaceholder": "Mappenavn", + "folderIconLabel": "Ikon", + "folderDeleteSuccess": "Mappen er slettet", + "folderDeleteFailed": "Kunne ikke slette mappen", + "confirmRunMessage": "Kjør \"{{name}}\"?", "confirmRunButton": "Kjør", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "Kjørte \"{{name}}\" på {{count}} terminal(er)", + "pasteSuccess": "Limte inn «{{name}}» i {{count}} terminal(er)", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", + "tabTitle": "Utdrag", + "count": "{{count}} utdrag", + "add": "Legg til utdrag", + "namePlaceholder": "Navn på utdrag", + "contentPlaceholder": "Kommandoinnhold", + "folderPlaceholder": "Mappe (valgfritt)", + "empty": "Denne brukeren har ingen utdrag", + "deleteConfirm": "Slett utdraget «{{name}}» som tilhører {{username}}?", + "deleted": "Utdrag slettet", "deleteFailed": "Kunne ikke slette snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", + "requiredFields": "Navn og innhold på kodebiten er obligatorisk", + "saved": "Kodestykket er lagret", + "saveFailed": "Kunne ikke lagre utdraget", "saving": "Lagrer...", "save": "Lagre" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Tilbake til utdrag", + "settingsTitle": "Innstillinger for utdrag", + "settingsDisplayTitle": "Utstilling", "settingsBehaviorTitle": "Oppførsel", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", + "typeCommandHint": "Kjører i den aktive terminalen.", + "typeNoteHint": "Limer inn i den aktive terminalen uten å kjøre.", + "variablesHint": "Variabler: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Etikett}", + "doubleClickToRun": "Dobbeltklikk for å kjøre", + "sharedBadge": "Delt", + "copyToClipboard": "Kopier til utklippstavlen", "copyFailed": "Kunne ikke kopiere til utklippstavlen", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", + "moreOptions": "Flere alternativer", + "moreActions": "Flere handlinger", + "moveToFolder": "Flytt til mappe", + "deleteSnippet": "Slett utdrag", + "deleteSnippetConfirm": "Slette utdraget «{{name}}»?", + "deleteSuccess": "Utdrag slettet", "delete": "Slett", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", + "folderActions": "Mappehandlinger", + "addSnippetHere": "Nytt utdrag her", + "deleteFolder": "Slett mappe", + "deleteFolderConfirm": "Slett mappen «{{name}}»? Skal utdragene flyttes ut av mappen.", + "createFolderDescription": "Grupper relaterte utdrag sammen.", + "editFolderDescription": "Endre navnet, fargen eller ikonet til denne mappen.", + "folderColorLabel": "Farge", + "loadFailed": "Kunne ikke laste inn utdrag", + "importSkipExisting": "Importer (hopp over eksisterende)", + "importOverwrite": "Importer (overskriv eksisterende)", + "importInvalidFile": "Den filen er ikke en gyldig eksport av snippets", + "importSuccess": "Importert {{imported}}, oppdatert {{updated}}, hoppet over {{skipped}}", + "exportSnippets": "Eksporter utdrag", + "exportSuccess": "Utdrag eksportert", + "exportFailed": "Kunne ikke eksportere utdrag", + "expandAll": "Utvid alle mapper", + "collapseAll": "Skjul alle mapper", "docsLink": "Dokumentasjon", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", + "clearSearch": "Tøm søk", + "noSearchResults": "Ingen utdrag samsvarer med søket ditt", "emptyTitle": "Ingen snippets ennå", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "emptyDescription": "Lagre kommandoer du kjører ofte, og kjør dem deretter i en terminal med ett klikk.", + "shareSnippet": "Del utdrag", + "shareFolder": "Del mappe", + "shareExpiry": "Utløper", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Aldri", + "h1": "Om 1 time", + "h24": "Om 1 dag", + "h168": "Om 7 dager", + "h720": "Om 30 dager" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", + "shareButton": "Dele", + "shareSuccess": "Delt med {{count}}", + "shareFailed": "Kunne ikke dele", + "shareLoadFailed": "Kunne ikke laste inn delingsdetaljene", + "currentAccess": "Nåværende tilgang", + "notSharedYet": "Ikke delt med noen ennå", + "revokeAccess": "Tilbakekalling", + "revokeSuccess": "Tilgang tilbakekalt", + "revokeFailed": "Kunne ikke tilbakekalle tilgang", "close": "Lukk", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "Målverter", + "targetHostsHint": "Velg verter å kjøre denne kommandoen direkte på, uten en åpen terminal. La feltet stå tomt for å kjøre den i den aktive terminalen.", "clearTargetHosts": "Tøm", "noHostsAvailable": "Ingen verter tilgjengelig", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "searchHosts": "Søk etter verter", + "runOnTargets": "Kjør på målverter", + "executionResultTitle": "Resultater for «{{name}}»", + "executionResultDescription": "Utdata fra hver målvert.", "executionSuccess": "Suksess", "executionFailed": "Mislyktes", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", + "directRunSuccess": "Kjørte \"{{name}}\" på {{count}} vert(er)", + "directRunPartialFail": "«{{name}}» mislyktes på noen verter", + "reorderFailed": "Kunne ikke endre rekkefølgen på utdragene", + "dropToRemoveFromFolder": "Slipp her for å flytte ut av mappen", + "shareSnippetTitle": "Del «{{name}}»", + "shareFolderTitle": "Del mappen «{{name}}»", + "shareWith": "Del med", "usersTab": "Brukere", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", + "rolesTab": "Roller", + "shareSearchPlaceholder": "Søk etter brukere eller roller", + "shareNoMatches": "Ingen treff", + "shareWithCount": "Del med {{count}}", + "shareFolderHint": "Deler alle utdrag i denne mappen. Utdrag som legges til senere deles ikke automatisk.", + "shareFolderSummary": "Delte {{count}} kodebiter i denne mappen", + "grantedBy": "Tildelt av", "expired": "Utløpt", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogTitle": "Kjør «{{name}}»", + "variablesDialogDescription": "Fyll inn verdiene dette kodestykket trenger før du kjører det.", "variablesPreviewLabel": "Forhåndsvis", "variablesConfirmButton": "Kjør", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Kjør eksisterende kodebit", + "snippetLabel": "Utdrag", + "selectSnippet": "Velg et utdrag", + "snippetMissing": "utdraget ikke funnet", + "snippetRequired": "Velg et utdrag" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Kjør i den aktive terminalfanen", "host": { "startupTitle": "Oppstarts-snippet", "quickActionsTitle": "Hurtighandlinger", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", + "quickActionsDescription": "Hurtighandlinger vises som knapper i verktøylinjen for vertsmålinger for utførelse av kommandoer med ett klikk.", + "noQuickActions": "Ingen hurtighandlinger ennå.", + "buttonLabel": "Knappetikett", "selectSnippet": "Velg snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "addQuickAction": "Legg til handling", + "tabTitle": "Utdrag", + "startupDescription": "Kjører i terminalen hver gang den kobler seg til denne verten. Variabler som $HOST fylles ut; et kodeutdrag som ber om inndata hoppes over.", "none": "Ingen", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Fjern hurtighandling" }, "quickActions": { "running": "Utfører {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} mislyktes", "error": "Kunne ikke utføre {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", + "paletteHintPaste": "Lim inn i den aktive terminalfanen", + "targetTerminals": "Løp inn", + "targetTerminalsHint": "valgfritt, ellers den aktive fanen", + "selectAll": "Alle", "selectNone": "Ingen" } diff --git a/plugins/snippets/locales/translated/pl_PL.json b/plugins/snippets/locales/translated/pl_PL.json index d048e2545..6b3901b8b 100644 --- a/plugins/snippets/locales/translated/pl_PL.json +++ b/plugins/snippets/locales/translated/pl_PL.json @@ -8,50 +8,50 @@ }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Wyświetl fragmenty", + "description": "Zobacz własne fragmenty, notatki i udostępnione fragmenty." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Utwórz fragmenty kodu", + "description": "Utwórz nowe fragmenty kodu, notatki i foldery." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Edytuj fragmenty", + "description": "Zmień nazwę lub zmodyfikuj istniejące fragmenty kodu i foldery." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Usuń fragmenty", + "description": "Usuń fragmenty kodu i foldery." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Udostępnij fragmenty", + "description": "Udostępniaj fragmenty kodu i foldery innym użytkownikom lub rolom." } }, "settings": { "foldersCollapsed": { "label": "Domyślnie zwiń foldery", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "Każdy folder fragmentów kodu powinien być zwinięty po otwarciu panelu Fragmenty kodu." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Pokaż polecenia", + "description": "Wyświetl pierwszy wiersz polecenia każdego fragmentu kodu pod jego nazwą." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Potwierdź przed uruchomieniem", + "description": "Zapytaj przed uruchomieniem fragmentu polecenia w terminalu." } }, "cancel": "Anuluj", "loading": "Ładowanie...", "searchPlaceholder": "Wyszukaj snippety", "newFolder": "Nowy folder", - "newSnippet": "New snippet", + "newSnippet": "Nowy fragment kodu", "noFolder": "Brak folderu", "noSnippetsInFolder": "Brak snippetów w tym folderze", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "Żadna zakładka terminala nie jest otwarta", "run": "Uruchom", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Wklej do terminala", "copySuccess": "Skopiowano do schowka", "importExport": "Import/Eksport", "importFailed": "Nie udało się zaimportować snippetów", @@ -64,34 +64,34 @@ "typeCommand": "Polecenie", "typeNote": "Notatka", "commandLabel": "Polecenie", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", + "commandPlaceholder": "Polecenie do uruchomienia, np. systemctl status $HOST", "noteLabel": "Notatka", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "notePlaceholder": "Tekst do wklejenia do terminala", + "createSnippetTitle": "Utwórz fragment kodu", + "createSnippetButton": "Utwórz fragment kodu", + "createSuccess": "Utworzono fragment kodu", "createFailed": "Nie udało się utworzyć snippetu", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Edytuj fragment", + "saveSnippetButton": "Zapisz fragment kodu", + "updateSuccess": "Zaktualizowano fragment kodu", "updateFailed": "Nie udało się zaktualizować snippetu", "deleteFailed": "Nie udało się usunąć snippetu", "createFolderTitle": "Utwórz folder", "createFolderButton": "Utwórz folder", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "Utworzono folder", "folderCreateFailed": "Nie udało się utworzyć folderu", "editFolderTitle": "Edytuj folder", "saveFolderButton": "Zapisz folder", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "Folder zaktualizowany", "folderEditFailed": "Nie udało się zaktualizować folderu", "folderNameLabel": "Nazwa folderu", "folderNamePlaceholder": "Nazwa folderu", "folderIconLabel": "Ikona", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "Folder usunięty", "folderDeleteFailed": "Nie udało się usunąć folderu", "confirmRunMessage": "Uruchomić „{{name}}”?", "confirmRunButton": "Uruchom", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", + "runSuccess": "Uruchomiono „{{name}}” na terminalach {{count}}", "pasteSuccess": "Wklejono „{{name}}” do {{count}} terminali", "admin": { "tabTitle": "Snippety", @@ -110,90 +110,90 @@ "saving": "Zapisywanie...", "save": "Zapisz" }, - "backToSnippets": "Back to snippets", + "backToSnippets": "Powrót do fragmentów", "settingsTitle": "Ustawienia snippetów", "settingsDisplayTitle": "Wyświetlanie", "settingsBehaviorTitle": "Zachowanie", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", + "typeCommandHint": "Działa w aktywnym terminalu.", + "typeNoteHint": "Wkleja do aktywnego terminala bez uruchamiania.", "variablesHint": "Zmienne: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "doubleClickToRun": "Kliknij dwukrotnie, aby uruchomić", "sharedBadge": "Udostępniony", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "Kopiuj do schowka", "copyFailed": "Nie udało się skopiować do schowka", "moreOptions": "Więcej opcji", "moreActions": "Więcej akcji", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "Przenieś do folderu", + "deleteSnippet": "Usuń fragment kodu", + "deleteSnippetConfirm": "Usunąć fragment „{{name}}”?", "deleteSuccess": "Usunięto snippet", "delete": "Usuń", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "Akcje folderów", + "addSnippetHere": "Nowy fragment tutaj", "deleteFolder": "Usuń folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "Usunąć folder „{{name}}”? Jego fragmenty zostaną przeniesione poza folder.", + "createFolderDescription": "Połącz powiązane ze sobą fragmenty.", + "editFolderDescription": "Zmień nazwę, kolor lub ikonę tego folderu.", "folderColorLabel": "Kolor", - "loadFailed": "Failed to load snippets", + "loadFailed": "Nie udało się załadować fragmentów kodu", "importSkipExisting": "Importuj (pomiń istniejące)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "Importuj (nadpisz istniejące)", + "importInvalidFile": "Ten plik nie jest prawidłowym eksportem fragmentów kodu", + "importSuccess": "Zaimportowano {{imported}}, zaktualizowano {{updated}}, pominięto {{skipped}}", + "exportSnippets": "Eksportuj fragmenty kodu", + "exportSuccess": "Wyeksportowano fragmenty kodu", "exportFailed": "Nie udało się wyeksportować snippetów", "expandAll": "Rozwiń wszystkie foldery", "collapseAll": "Zwiń wszystkie foldery", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "Dokumentacja", + "clearSearch": "Wyczyść wyszukiwanie", + "noSearchResults": "Brak fragmentów odpowiadających Twojemu wyszukiwaniu", + "emptyTitle": "Brak fragmentów", + "emptyDescription": "Zapisz często uruchamiane polecenia, a następnie uruchom je w terminalu jednym kliknięciem.", + "shareSnippet": "Udostępnij fragment", + "shareFolder": "Udostępnij folder", "shareExpiry": "Wygasa", "shareExpiryOptions": { "h0": "Nigdy", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "Za 1 godzinę", + "h24": "W 1 dzień", + "h168": "Za 7 dni", + "h720": "Za 30 dni" }, "shareButton": "Udostępnij", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "Udostępniono {{count}}", + "shareFailed": "Nie udało się udostępnić", + "shareLoadFailed": "Nie udało się załadować szczegółów udostępniania", "currentAccess": "Aktualny dostęp", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "Jeszcze nikomu nie udostępniono", "revokeAccess": "Unieważnij", "revokeSuccess": "Unieważniono dostęp", "revokeFailed": "Nie udało się unieważnić dostępu", "close": "Zamknij", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "Docelowi gospodarze", + "targetHostsHint": "Wybierz hosty, na których chcesz uruchomić to polecenie bezpośrednio, bez otwierania terminala. Pozostaw puste, aby uruchomić je w aktywnym terminalu.", "clearTargetHosts": "Wyczyść", - "noHostsAvailable": "No hosts available", + "noHostsAvailable": "Brak dostępnych gospodarzy", "searchHosts": "Wyszukaj hosty", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "Uruchom na hostach docelowych", + "executionResultTitle": "Wyniki dla „{{name}}”", + "executionResultDescription": "Dane wyjściowe z każdego hosta docelowego.", "executionSuccess": "Powodzenie", "executionFailed": "Niepowodzenie", "directRunSuccess": "Uruchomiono „{{name}}” na {{count}} hostach", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "„{{name}}” nie powiodło się na niektórych hostach", + "reorderFailed": "Nie udało się zmienić kolejności fragmentów kodu", + "dropToRemoveFromFolder": "Upuść tutaj, aby wyjść z folderu", + "shareSnippetTitle": "Udostępnij „{{name}}”", + "shareFolderTitle": "Udostępnij folder „{{name}}”", "shareWith": "Udostępnij", "usersTab": "Użytkownicy", "rolesTab": "Role", "shareSearchPlaceholder": "Wyszukaj użytkowników lub role", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "Brak dopasowań", + "shareWithCount": "Udostępnij za pomocą {{count}}", + "shareFolderHint": "Udostępnia każdy fragment kodu w tym folderze. Fragmenty dodane później nie są udostępniane automatycznie.", + "shareFolderSummary": "Udostępniono {{count}} fragmentów w tym folderze", "grantedBy": "Przyznane przez", "expired": "Wygasły", "variablesDialogTitle": "Uruchom „{{name}}”", @@ -217,9 +217,9 @@ "selectSnippet": "Wybierz snippet...", "addQuickAction": "Dodaj akcję", "tabTitle": "Snippety", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Działa w terminalu za każdym razem, gdy łączy się z tym hostem. Zmienne takie jak $HOST są wypełniane; fragment kodu, który prosi o dane wejściowe, jest pomijany.", "none": "Żaden", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Usuń szybką akcję" }, "quickActions": { "running": "Wykonywanie {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} nie powiodło się", "error": "Nie udało się wykonać {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "Wklej w aktywnej karcie terminala", + "targetTerminals": "Wbiec", + "targetTerminalsHint": "opcjonalnie, w przeciwnym razie aktywna karta", "selectAll": "Wszystkie", "selectNone": "Żaden" } diff --git a/plugins/snippets/locales/translated/pt_BR.json b/plugins/snippets/locales/translated/pt_BR.json index a14c204ed..1ad378be9 100644 --- a/plugins/snippets/locales/translated/pt_BR.json +++ b/plugins/snippets/locales/translated/pt_BR.json @@ -4,232 +4,232 @@ }, "onboarding": { "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "Salve os comandos que você executa com frequência e envie-os para um terminal com um único clique." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Ver trechos", + "description": "Veja seus próprios trechos, anotações e trechos compartilhados." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Criar trechos", + "description": "Crie novos trechos de código, notas e pastas." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Editar trechos", + "description": "Renomeie ou altere trechos de código e pastas existentes." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Excluir trechos", + "description": "Exclua trechos de código e pastas." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Compartilhar trechos", + "description": "Compartilhe trechos de código e pastas com outros usuários ou funções." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Recolher pastas por padrão", + "description": "Ao abrir o painel de Snippets, cada pasta de trechos deve estar recolhida." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Mostrar comandos", + "description": "Exiba a primeira linha do comando de cada trecho de código abaixo do seu nome." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Confirme antes de executar.", + "description": "Pergunte antes de executar um trecho de comando no terminal." } }, "cancel": "Cancelar", "loading": "Carregando...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", + "searchPlaceholder": "Trechos de pesquisa", + "newFolder": "Nova pasta", + "newSnippet": "Novo trecho", + "noFolder": "Sem pasta", + "noSnippetsInFolder": "Não há trechos de código nesta pasta.", + "noTerminalTabsOpen": "Nenhuma aba de terminal está aberta.", + "run": "Correr", + "pasteToTerminal": "Cole no terminal", + "copySuccess": "Copiado para a área de transferência", + "importExport": "Importação/Exportação", + "importFailed": "Falha ao importar trechos de código.", + "nameLabel": "Nome", + "namePlaceholder": "Nome do trecho", + "descriptionLabel": "Descrição", + "descriptionPlaceholder": "Descrição opcional", "folderLabel": "Pasta", "typeLabel": "Tipo", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "typeCommand": "Comando", + "typeNote": "Observação", + "commandLabel": "Comando", + "commandPlaceholder": "Comando a ser executado, por exemplo, systemctl status $HOST", + "noteLabel": "Observação", + "notePlaceholder": "Texto para colar no terminal", + "createSnippetTitle": "Criar trecho", + "createSnippetButton": "Criar trecho", + "createSuccess": "Trecho criado", + "createFailed": "Falha ao criar o trecho de código", + "editSnippetTitle": "Editar trecho", + "saveSnippetButton": "Salvar trecho", + "updateSuccess": "Trecho atualizado", + "updateFailed": "Falha ao atualizar o trecho de código", + "deleteFailed": "Falha ao excluir o trecho", + "createFolderTitle": "Criar pasta", + "createFolderButton": "Criar pasta", + "folderCreateSuccess": "Pasta criada", + "folderCreateFailed": "Falha ao criar a pasta", + "editFolderTitle": "Pasta de edição", + "saveFolderButton": "Pasta de salvamento", + "folderEditSuccess": "Pasta atualizada", + "folderEditFailed": "Falha ao atualizar a pasta", + "folderNameLabel": "Nome da pasta", + "folderNamePlaceholder": "Nome da pasta", + "folderIconLabel": "Ícone", + "folderDeleteSuccess": "Pasta excluída", + "folderDeleteFailed": "Falha ao excluir a pasta", + "confirmRunMessage": "Executar \"{{name}}\"?", + "confirmRunButton": "Correr", + "runSuccess": "Executado \"{{name}}\" em {{count}} terminal(is)", + "pasteSuccess": "Colado \"{{name}}\" em {{count}} terminal(is)", "admin": { "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", + "count": "{{count}} trechos", + "add": "Adicionar trecho de código", + "namePlaceholder": "Nome do trecho", + "contentPlaceholder": "Conteúdo do comando", + "folderPlaceholder": "Pasta (opcional)", + "empty": "Este usuário não possui trechos de código.", + "deleteConfirm": "Excluir trecho \"{{name}}\" pertencente a {{username}}?", + "deleted": "Trecho excluído", + "deleteFailed": "Falha ao excluir o trecho", + "requiredFields": "O nome e o conteúdo do snippet são obrigatórios.", + "saved": "Trecho salvo", + "saveFailed": "Falha ao salvar o trecho de código", "saving": "Salvando...", "save": "Salvar" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Voltar aos trechos", + "settingsTitle": "Configurações de trechos de código", + "settingsDisplayTitle": "Mostrar", "settingsBehaviorTitle": "Comportamento", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", + "typeCommandHint": "Executa no terminal ativo.", + "typeNoteHint": "Cola o texto no terminal ativo sem executá-lo.", + "variablesHint": "Variáveis: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Clique duas vezes para executar", + "sharedBadge": "Compartilhado", + "copyToClipboard": "Copiar para a área de transferência", "copyFailed": "Falha ao copiar para área de transferência", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", + "moreOptions": "Mais opções", + "moreActions": "Mais ações", + "moveToFolder": "Mover para a pasta", + "deleteSnippet": "Excluir trecho", + "deleteSnippetConfirm": "Excluir trecho \"{{name}}\"?", + "deleteSuccess": "Trecho excluído", "delete": "Apagar", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", + "folderActions": "Ações da pasta", + "addSnippetHere": "Novo trecho aqui", + "deleteFolder": "Excluir pasta", + "deleteFolderConfirm": "Excluir pasta \"{{name}}\"? Seus trechos de código serão movidos para fora da pasta.", + "createFolderDescription": "Agrupe trechos relacionados.", + "editFolderDescription": "Alterar o nome, a cor ou o ícone desta pasta.", + "folderColorLabel": "Cor", + "loadFailed": "Falha ao carregar os trechos de código.", "importSkipExisting": "Importar (ignorar existente)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "importOverwrite": "Importar (sobrescrever existente)", + "importInvalidFile": "Esse arquivo não é uma exportação de trechos válida.", + "importSuccess": "Importado {{imported}}, atualizado {{updated}}, ignorado {{skipped}}", + "exportSnippets": "Exportar trechos", + "exportSuccess": "Trechos exportados", + "exportFailed": "Falha ao exportar trechos de código.", + "expandAll": "Expandir todas as pastas", + "collapseAll": "Recolher todas as pastas", + "docsLink": "Documentação", + "clearSearch": "Limpar pesquisa", + "noSearchResults": "Nenhum trecho corresponde à sua pesquisa.", + "emptyTitle": "Ainda não há trechos de código.", + "emptyDescription": "Salve os comandos que você executa com frequência e, em seguida, execute-os em um terminal com um único clique.", + "shareSnippet": "Compartilhar trecho", + "shareFolder": "Pasta compartilhada", + "shareExpiry": "Expira", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Nunca", + "h1": "Em 1 hora", + "h24": "Em 1 dia", + "h168": "Em 7 dias", + "h720": "Em 30 dias" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", + "shareButton": "Compartilhar", + "shareSuccess": "Compartilhado com {{count}}", + "shareFailed": "Não foi possível compartilhar", + "shareLoadFailed": "Não foi possível carregar os detalhes de compartilhamento.", + "currentAccess": "Acesso atual", + "notSharedYet": "Ainda não compartilhei com ninguém.", + "revokeAccess": "Revogar", + "revokeSuccess": "Acesso revogado", + "revokeFailed": "Falha ao revogar o acesso", "close": "Fechar", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "A Target hospeda", + "targetHostsHint": "Selecione os hosts nos quais deseja executar este comando diretamente, sem abrir um terminal. Deixe em branco para executá-lo no terminal ativo.", "clearTargetHosts": "Limpar", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "noHostsAvailable": "Nenhum anfitrião disponível", + "searchHosts": "Pesquisar anfitriões", + "runOnTargets": "Executar em hosts de destino", + "executionResultTitle": "Resultados para \"{{name}}\"", + "executionResultDescription": "Saída de cada host de destino.", + "executionSuccess": "Sucesso", + "executionFailed": "Fracassado", + "directRunSuccess": "Executado \"{{name}}\" em {{count}} host(s)", + "directRunPartialFail": "\"{{name}}\" falhou em alguns hosts", + "reorderFailed": "Falha ao reordenar os trechos de código.", + "dropToRemoveFromFolder": "Solte aqui para sair da pasta.", + "shareSnippetTitle": "Compartilhar \"{{name}}\"", + "shareFolderTitle": "Pasta compartilhada \"{{name}}\"", + "shareWith": "Compartilhe com", + "usersTab": "Usuários", + "rolesTab": "Funções", + "shareSearchPlaceholder": "Pesquisar usuários ou funções", + "shareNoMatches": "Nenhuma correspondência", + "shareWithCount": "Compartilhe com {{count}}", + "shareFolderHint": "Compartilha todos os trechos de código nesta pasta. Trechos adicionados posteriormente não são compartilhados automaticamente.", + "shareFolderSummary": "Trechos compartilhados {{count}} nesta pasta", + "grantedBy": "Concedido por", + "expired": "Expirado", + "variablesDialogTitle": "Executar \"{{name}}\"", + "variablesDialogDescription": "Preencha os valores necessários para este trecho de código antes de executá-lo.", + "variablesPreviewLabel": "Pré-visualização", + "variablesConfirmButton": "Correr", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Executar trecho de código existente", + "snippetLabel": "Trecho", + "selectSnippet": "Selecione um trecho", + "snippetMissing": "trecho não encontrado", + "snippetRequired": "Selecione um trecho" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Execute na aba do terminal ativo", "host": { "startupTitle": "Snippet Inicial", "quickActionsTitle": "Ações Rápidas", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", + "quickActionsDescription": "As ações rápidas aparecem como botões na barra de ferramentas do Host Metrics para execução de comandos com um único clique.", + "noQuickActions": "Nenhuma ação imediata ainda.", + "buttonLabel": "Rótulo do botão", "selectSnippet": "Selecionar snippet...", - "addQuickAction": "Add Action", + "addQuickAction": "Adicionar ação", "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Executa no terminal sempre que se conecta a este host. Variáveis como $HOST são preenchidas; um trecho que solicita entradas é ignorado.", "none": "Nenhum", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Remover ação rápida" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "Executando {{name}}...", + "succeeded": "{{name}} concluído com sucesso", + "failed": "{{name}} falhou", + "error": "Falha ao executar {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", + "paletteHintPaste": "Cole na aba do terminal ativo", + "targetTerminals": "Correr em", + "targetTerminalsHint": "Opcional, caso contrário, a aba ativa.", + "selectAll": "Todos", "selectNone": "Nenhum" } diff --git a/plugins/snippets/locales/translated/pt_PT.json b/plugins/snippets/locales/translated/pt_PT.json index 7add2b302..fb381b359 100644 --- a/plugins/snippets/locales/translated/pt_PT.json +++ b/plugins/snippets/locales/translated/pt_PT.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "Guarde os comandos que executa com frequência e envie-os para um terminal com um único clique." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Ver excertos", + "description": "Veja os seus próprios excertos, anotações e excertos partilhados." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Criar excertos", + "description": "Crie novos excertos de código, notas e pastas." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Editar excertos", + "description": "Renomeie ou altere os excertos de código e pastas existentes." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Excluir trechos", + "description": "Apague trechos de código e pastas." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Partilhar trechos", + "description": "Partilhe excertos de código e pastas com outros utilizadores ou funções." } }, "settings": { "foldersCollapsed": { "label": "Recolher pastas por predefinição", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "Ao abrir o painel Snippets, cada pasta de snippets de código deve estar recolhida." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Mostrar comandos", + "description": "Apresente a primeira linha do comando de cada trecho de código abaixo do seu nome." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Confirme antes de executar.", + "description": "Pergunte antes de executar um trecho de comando no terminal." } }, "cancel": "Cancelar", "loading": "A carregar...", "searchPlaceholder": "Pesquisar snippets", "newFolder": "Nova pasta", - "newSnippet": "New snippet", + "newSnippet": "Novo trecho", "noFolder": "Sem pasta", "noSnippetsInFolder": "Nenhum snippet nesta pasta", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "Nenhuma patilha de terminal está aberta.", "run": "Executar", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Cole no terminal", "copySuccess": "Copiado para a área de transferência.", "importExport": "Importar / Exportar", "importFailed": "Falha ao importar fragmentos", @@ -62,37 +62,37 @@ "folderLabel": "Pasta", "typeLabel": "Tipo", "typeCommand": "Comando", - "typeNote": "Note", + "typeNote": "Nota", "commandLabel": "Comando", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "Comando a executar, por exemplo, systemctl status $HOST", + "noteLabel": "Nota", + "notePlaceholder": "Texto para colar no terminal", + "createSnippetTitle": "Criar excerto", + "createSnippetButton": "Criar excerto", + "createSuccess": "Trecho criado", "createFailed": "Falha ao criar snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Editar trecho", + "saveSnippetButton": "Guardar trecho", + "updateSuccess": "Trecho atualizado", "updateFailed": "Falha ao atualizar snippet", "deleteFailed": "Falha ao eliminar snippet", "createFolderTitle": "Criar pasta", "createFolderButton": "Criar pasta", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "Pasta criada", "folderCreateFailed": "Falha ao criar pasta", "editFolderTitle": "Editar pasta", "saveFolderButton": "Guardar pasta", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "Pasta atualizada", "folderEditFailed": "Falha ao atualizar pasta", "folderNameLabel": "Nome da pasta", "folderNamePlaceholder": "Nome da pasta", "folderIconLabel": "Ícone", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "Pasta excluída", "folderDeleteFailed": "Falha ao eliminar pasta", "confirmRunMessage": "Executar \"{{name}}\"?", "confirmRunButton": "Executar", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "Executado \"{{name}}\" em {{count}} terminal(is)", + "pasteSuccess": "Colado \"{{name}}\" em {{count}} terminal(is)", "admin": { "tabTitle": "Snippets", "count": "{{count}} snippets", @@ -110,104 +110,104 @@ "saving": "A guardar...", "save": "Guardar" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Voltar aos excertos", + "settingsTitle": "Configurações de excertos de código", + "settingsDisplayTitle": "Ecrã", "settingsBehaviorTitle": "Comportamento", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "Executa no terminal ativo.", + "typeNoteHint": "Cola o texto no terminal ativo sem o executar.", + "variablesHint": "Variáveis: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Clique duas vezes para executar", "sharedBadge": "Partilhado", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "Copiar para a área de transferência", "copyFailed": "Falha ao copiar para a área de transferência", - "moreOptions": "More options", + "moreOptions": "Mais opções", "moreActions": "Mais ações", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "Mover para a pasta", + "deleteSnippet": "Excluir trecho", + "deleteSnippetConfirm": "Apagar excerto \"{{name}}\"?", "deleteSuccess": "Snippet eliminado", "delete": "Eliminar", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "Ações da pasta", + "addSnippetHere": "Novo excerto aqui", "deleteFolder": "Eliminar pasta", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "Apagar pasta \"{{name}}\"? Os seus trechos de código serão movidos para fora da pasta.", + "createFolderDescription": "Agrupe excertos relacionados.", + "editFolderDescription": "Alterar o nome, a cor ou o ícone desta pasta.", "folderColorLabel": "Cor", - "loadFailed": "Failed to load snippets", + "loadFailed": "Falha ao carregar os excertos de código.", "importSkipExisting": "Importar (ignorar existentes)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "Importar (sobrescrever existente)", + "importInvalidFile": "Este ficheiro não é uma exportação de trechos válida.", + "importSuccess": "Importado {{imported}}, atualizado {{updated}}, ignorado {{skipped}}", + "exportSnippets": "Exportar trechos", + "exportSuccess": "Trechos exportados", "exportFailed": "Falha ao exportar fragmentos", "expandAll": "Expandir todas as pastas", "collapseAll": "Recolher todas as pastas", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "Documentação", + "clearSearch": "Limpar pesquisa", + "noSearchResults": "Nenhum excerto corresponde à sua pesquisa.", + "emptyTitle": "Ainda não há excertos de código.", + "emptyDescription": "Guarde os comandos que executa com frequência e, em seguida, execute-os num terminal com um único clique.", + "shareSnippet": "Partilhar trecho", + "shareFolder": "Pasta partilhada", "shareExpiry": "Expira", "shareExpiryOptions": { "h0": "Nunca", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "Em 1 hora", + "h24": "Em 1 dia", + "h168": "Em 7 dias", + "h720": "Em 30 dias" }, "shareButton": "Partilhar", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "Partilhado com {{count}}", + "shareFailed": "Não foi possível partilhar", + "shareLoadFailed": "Não foi possível carregar os detalhes de partilha.", "currentAccess": "Acesso atual", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "Ainda não partilhei com ninguém.", "revokeAccess": "Revogar", "revokeSuccess": "Acesso revogado", "revokeFailed": "Falha ao revogar acesso", "close": "Fechar", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "A Target hospeda", + "targetHostsHint": "Selecione os hosts nos quais pretende executar este comando diretamente, sem abrir um terminal. Deixe em branco para o executar no terminal ativo.", "clearTargetHosts": "Limpar", - "noHostsAvailable": "No hosts available", + "noHostsAvailable": "Nenhum anfitrião disponível", "searchHosts": "Pesquisar hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "Executar em hosts de destino", + "executionResultTitle": "Resultados para \"{{name}}\"", + "executionResultDescription": "Saída de cada host de destino.", "executionSuccess": "Sucesso", "executionFailed": "Falhou", "directRunSuccess": "Executou \"{{name}}\" em {{count}} máquina(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "\"{{name}}\" falhou em alguns hosts", + "reorderFailed": "Falha ao reordenar os excertos de código.", + "dropToRemoveFromFolder": "Solte aqui para sair da pasta.", + "shareSnippetTitle": "Partilhar \"{{name}}\"", + "shareFolderTitle": "Pasta partilhada \"{{name}}\"", "shareWith": "Partilhar com", "usersTab": "Utilizadores", "rolesTab": "Funções", "shareSearchPlaceholder": "Procurar utilizadores ou funções", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "Nenhuma correspondência", + "shareWithCount": "Partilhar com {{count}}", + "shareFolderHint": "Partilha todos os excertos de código nesta pasta. Os trechos adicionados posteriormente não são partilhados automaticamente.", + "shareFolderSummary": "Excertos partilhados {{count}} nesta pasta", "grantedBy": "Concedido por", "expired": "Expirado", "variablesDialogTitle": "Executar \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogDescription": "Preencha os valores necessários para este excerto de código antes de o executar.", "variablesPreviewLabel": "Pré-visualizar", "variablesConfirmButton": "Executar", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Executar excerto de código existente", + "snippetLabel": "Trecho", + "selectSnippet": "Selecione um excerto", + "snippetMissing": "trecho não encontrado", + "snippetRequired": "Selecione um excerto" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Execute no separador do terminal ativo", "host": { "startupTitle": "Fragmento de inicialização", "quickActionsTitle": "Ações Rápidas", @@ -217,9 +217,9 @@ "selectSnippet": "Selecionar snippet...", "addQuickAction": "Adicionar Ação", "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Executa no terminal sempre que se liga a este host. As variáveis como $HOST são preenchidas; um troço que solicita entradas é ignorado.", "none": "Nenhuma", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Remover ação rápida" }, "quickActions": { "running": "A executar {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} falhou", "error": "Falha ao executar {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "Cole no separador do terminal ativo", + "targetTerminals": "Correr em", + "targetTerminalsHint": "Opcional, caso contrário, o separador ativo.", "selectAll": "Todas", "selectNone": "Nenhuma" } diff --git a/plugins/snippets/locales/translated/ru_RU.json b/plugins/snippets/locales/translated/ru_RU.json index b2b884a05..1be1bab0a 100644 --- a/plugins/snippets/locales/translated/ru_RU.json +++ b/plugins/snippets/locales/translated/ru_RU.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "Сниппеты", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "Сохраняйте часто выполняемые команды и отправляйте их на терминал одним щелчком мыши." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Просмотреть фрагменты", + "description": "Просматривайте свои собственные фрагменты текста, заметки и фрагменты текста, которыми поделились другие пользователи." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Создавайте фрагменты текста", + "description": "Создавайте новые фрагменты текста, заметки и папки." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Редактировать фрагменты", + "description": "Переименуйте или измените существующие фрагменты кода и папки." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Удалить фрагменты", + "description": "Удалите фрагменты текста и папки." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Делитесь фрагментами", + "description": "Делитесь фрагментами кода и папками с другими пользователями или ролями." } }, "settings": { "foldersCollapsed": { "label": "Сворачивать папки по умолчанию", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "При открытии панели «Фрагменты» каждая папка с фрагментами кода должна быть свернута." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Показать команды", + "description": "Отобразите первую строку команды каждого фрагмента кода под его именем." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Перед запуском подтвердите.", + "description": "Перед запуском фрагмента команды в терминале необходимо запросить подтверждение." } }, "cancel": "Отмена", "loading": "Загрузка...", "searchPlaceholder": "Поиск сниппетов", "newFolder": "Новая папка", - "newSnippet": "New snippet", + "newSnippet": "Новый фрагмент", "noFolder": "Без папки", "noSnippetsInFolder": "В этой папке нет сниппетов", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "Вкладка терминала не открыта", "run": "Запустить", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Вставить в терминал", "copySuccess": "Скопировано в буфер обмена", "importExport": "Импорт / Экспорт", "importFailed": "Не удалось импортировать сниппеты", @@ -62,37 +62,37 @@ "folderLabel": "Папка", "typeLabel": "Тип", "typeCommand": "Команда", - "typeNote": "Note", + "typeNote": "Примечание", "commandLabel": "Команда", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "Команда для выполнения, например, systemctl status $HOST", + "noteLabel": "Примечание", + "notePlaceholder": "Текст для вставки в терминал", + "createSnippetTitle": "Создать фрагмент", + "createSnippetButton": "Создать фрагмент", + "createSuccess": "Создан фрагмент кода.", "createFailed": "Не удалось создать сниппет", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Редактировать фрагмент", + "saveSnippetButton": "Сохранить фрагмент", + "updateSuccess": "Фрагмент обновлен", "updateFailed": "Не удалось обновить сниппет", "deleteFailed": "Не удалось удалить сниппет", "createFolderTitle": "Создать папку", "createFolderButton": "Создать папку", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "Создана папка", "folderCreateFailed": "Не удалось создать папку", "editFolderTitle": "Редактировать папку", "saveFolderButton": "Сохранить папку", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "Папка обновлена", "folderEditFailed": "Не удалось обновить папку", "folderNameLabel": "Имя папки", "folderNamePlaceholder": "Имя папки", "folderIconLabel": "Значок", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "Папка удалена", "folderDeleteFailed": "Не удалось удалить папку", "confirmRunMessage": "Запустить \"{{name}}\"?", "confirmRunButton": "Запустить", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "Выполнено \"{{name}}\" на {{count}} терминале(ах)", + "pasteSuccess": "Вставлено \"{{name}}\" в {{count}} терминал(ы)", "admin": { "tabTitle": "Сниппеты", "count": "{{count}} сниппетов", @@ -110,104 +110,104 @@ "saving": "Сохранение...", "save": "Сохранить" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Вернуться к фрагментам", + "settingsTitle": "Настройки фрагмента", + "settingsDisplayTitle": "Отображать", "settingsBehaviorTitle": "Поведение", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "Запускается в активном терминале.", + "typeNoteHint": "Вставляется в активный терминал без запуска.", + "variablesHint": "Переменные: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Двойной щелчок для запуска", "sharedBadge": "Общий", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "Скопировать в буфер обмена", "copyFailed": "Не удалось скопировать в буфер обмена", - "moreOptions": "More options", + "moreOptions": "Больше вариантов", "moreActions": "Дополнительные действия", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "Переместить в папку", + "deleteSnippet": "Удалить фрагмент", + "deleteSnippetConfirm": "Удалить фрагмент \"{{name}}\"?", "deleteSuccess": "Сниппет удалён", "delete": "Удалить", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "Действия с папками", + "addSnippetHere": "Новый фрагмент здесь", "deleteFolder": "Удалить папку", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "Удалить папку \"{{name}}\"? Ее фрагменты перемещаются за пределы папки.", + "createFolderDescription": "Сгруппируйте связанные фрагменты текста вместе.", + "editFolderDescription": "Измените название, цвет или значок этой папки.", "folderColorLabel": "Цвет", - "loadFailed": "Failed to load snippets", + "loadFailed": "Не удалось загрузить фрагменты.", "importSkipExisting": "Импорт (пропустить существующие)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "Импорт (замена существующего)", + "importInvalidFile": "Этот файл не является допустимым экспортом фрагментов кода.", + "importSuccess": "Импортировано {{imported}}, обновлено {{updated}}, пропущено {{skipped}}", + "exportSnippets": "Экспорт фрагментов", + "exportSuccess": "Экспорт фрагментов", "exportFailed": "Не удалось экспортировать сниппеты", "expandAll": "Развернуть все папки", "collapseAll": "Свернуть все папки", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "Документация", + "clearSearch": "Очистить поиск", + "noSearchResults": "Поисковые запросы не дали результатов.", + "emptyTitle": "Пока нет фрагментов.", + "emptyDescription": "Сохраняйте часто используемые команды, а затем запускайте их в терминале одним щелчком мыши.", + "shareSnippet": "Поделиться фрагментом", + "shareFolder": "Общая папка", "shareExpiry": "Истекает", "shareExpiryOptions": { "h0": "Никогда", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "Через 1 час", + "h24": "За 1 день", + "h168": "Через 7 дней", + "h720": "Через 30 дней" }, "shareButton": "Поделиться", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "Поделились с {{count}}", + "shareFailed": "Не удалось поделиться", + "shareLoadFailed": "Не удалось загрузить данные о распределении нагрузки.", "currentAccess": "Текущий доступ", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "Пока никому не сообщалось", "revokeAccess": "Отозвать", "revokeSuccess": "Доступ отозван", "revokeFailed": "Не удалось отозвать доступ", "close": "Закрыть", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "Целевые хосты", + "targetHostsHint": "Выберите хосты, на которых будет выполняться эта команда напрямую, без открытого терминала. Оставьте поле пустым, чтобы выполнить команду в активном терминале.", "clearTargetHosts": "Очистить", - "noHostsAvailable": "No hosts available", + "noHostsAvailable": "Нет доступных хостов", "searchHosts": "Поиск хостов", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "Запуск на целевых хостах", + "executionResultTitle": "Результаты поиска по запросу \"{{name}}\"", + "executionResultDescription": "Вывод с каждого целевого хоста.", "executionSuccess": "Успех", "executionFailed": "Ошибка", "directRunSuccess": "Запущен \"{{name}}\" на {{count}} хосте(ах)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "\"{{name}}\" не удалось на некоторых хостах", + "reorderFailed": "Не удалось изменить порядок фрагментов.", + "dropToRemoveFromFolder": "Перетащите курсор сюда, чтобы выйти из папки.", + "shareSnippetTitle": "Поделиться \"{{name}}\"", + "shareFolderTitle": "Общая папка \"{{name}}\"", "shareWith": "Поделиться с", "usersTab": "Пользователи", "rolesTab": "Роли", "shareSearchPlaceholder": "Поиск пользователей или ролей", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "Совпадений нет", + "shareWithCount": "Поделитесь с {{count}}", + "shareFolderHint": "Предоставляет доступ ко всем фрагментам кода в этой папке. Фрагменты, добавленные позже, не передаются автоматически.", + "shareFolderSummary": "В этой папке находятся общие фрагменты кода {{count}}.", "grantedBy": "Кем предоставлен", "expired": "Истек", "variablesDialogTitle": "Запустить \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogDescription": "Перед запуском заполните необходимые для этого фрагмента значения.", "variablesPreviewLabel": "Предпросмотр", "variablesConfirmButton": "Запустить", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Запустить существующий фрагмент", + "snippetLabel": "Фрагмент", + "selectSnippet": "Выберите фрагмент", + "snippetMissing": "фрагмент не найден", + "snippetRequired": "Выберите фрагмент" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Запустите в активной вкладке терминала.", "host": { "startupTitle": "Фрагмент запуска", "quickActionsTitle": "Быстрые действия", @@ -217,9 +217,9 @@ "selectSnippet": "Выбрать сниппет...", "addQuickAction": "Добавить действие", "tabTitle": "Сниппеты", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Программа запускается в терминале каждый раз при подключении к этому хосту. Переменные типа $HOST заполняются; фрагмент кода, запрашивающий ввод, пропускается.", "none": "Ни одного", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Удалить быстрое действие" }, "quickActions": { "running": "Выполняется {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} не удалось", "error": "Не удалось выполнить {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "Вставьте текст во вкладку активного терминала.", + "targetTerminals": "Забег", + "targetTerminalsHint": "необязателен, в противном случае активная вкладка.", "selectAll": "Все", "selectNone": "Ни одного" } diff --git a/plugins/snippets/locales/translated/sr_SP.json b/plugins/snippets/locales/translated/sr_SP.json index d144663ae..caacb12ce 100644 --- a/plugins/snippets/locales/translated/sr_SP.json +++ b/plugins/snippets/locales/translated/sr_SP.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "Исечци" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "Исечци", + "feature_snippets_desc": "Сачувајте команде које често покрећете и пошаљите их у терминал једним кликом." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Погледајте фрагменте", + "description": "Погледајте своје сопствене фрагменте, белешке и дељене фрагменте." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Направите фрагменте", + "description": "Креирајте нове исечке, белешке и фасцикле." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Уреди фрагменте", + "description": "Преименујте или промените постојеће фрагменте и фасцикле." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Обриши фрагменте", + "description": "Обришите фрагменте и фасцикле." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Делите фрагменте", + "description": "Делите фрагменте и фасцикле са другим корисницима или улогама." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Сажми фасцикле подразумевано", + "description": "Покрените сваку фасциклу исечака сакупљену када отворите панел Исечци." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Прикажи команде", + "description": "Прикажи први ред команде сваког фрагмента испод његовог имена." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Потврдите пре покретања", + "description": "Питај пре него што се фрагмент команде покрене у терминалу." } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "cancel": "Откажи", + "loading": "Учитавање...", + "searchPlaceholder": "Претрага исечака", + "newFolder": "Нова фасцикла", + "newSnippet": "Нови исечак", + "noFolder": "Нема фасцикле", + "noSnippetsInFolder": "Нема фрагмената у овој фасцикли", + "noTerminalTabsOpen": "Ниједна картица терминала није отворена", + "run": "Трчи", + "pasteToTerminal": "Налепи у терминал", + "copySuccess": "Копирано у међуспремник", + "importExport": "Увоз / Извоз", + "importFailed": "Увоз фрагмената није успео", + "nameLabel": "Име", + "namePlaceholder": "Назив исечка", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Опциони опис", + "folderLabel": "Фасцикла", + "typeLabel": "Тип", + "typeCommand": "Команда", + "typeNote": "Напомена", + "commandLabel": "Команда", + "commandPlaceholder": "Команда за покретање, нпр. systemctl status $HOST", + "noteLabel": "Напомена", + "notePlaceholder": "Текст који треба налепити у терминал", + "createSnippetTitle": "Направи исечак", + "createSnippetButton": "Направи исечак", + "createSuccess": "Исечак је направљен", + "createFailed": "Није успело креирање фрагмента", + "editSnippetTitle": "Измени исечак", + "saveSnippetButton": "Сачувај исечак", + "updateSuccess": "Исечак је ажуриран", + "updateFailed": "Ажурирање исечка није успело", + "deleteFailed": "Брисање исечка није успело", + "createFolderTitle": "Направи фасциклу", + "createFolderButton": "Направи фасциклу", + "folderCreateSuccess": "Фасцикла је направљена", + "folderCreateFailed": "Није успело креирање фасцикле", + "editFolderTitle": "Уреди фасциклу", + "saveFolderButton": "Сачувај фасциклу", + "folderEditSuccess": "Фолдер је ажуриран", + "folderEditFailed": "Ажурирање фасцикле није успело", + "folderNameLabel": "Назив фасцикле", + "folderNamePlaceholder": "Назив фасцикле", + "folderIconLabel": "Икона", + "folderDeleteSuccess": "Фолдер је обрисан", + "folderDeleteFailed": "Брисање фасцикле није успело", + "confirmRunMessage": "Покрени „{{name}}“?", + "confirmRunButton": "Трчи", + "runSuccess": "Покренуто је „{{name}}“ на {{count}} терминалу(има)", + "pasteSuccess": "Налепљено је „{{name}}“ у {{count}} терминал(е)", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "Исечци", + "count": "{{count}} исечци", + "add": "Додај исечак", + "namePlaceholder": "Назив исечка", + "contentPlaceholder": "Садржај команде", + "folderPlaceholder": "Фасцикла (опционо)", + "empty": "Овај корисник нема исечке кода", + "deleteConfirm": "Да ли желите да обришете исечак „{{name}}“ који припада {{username}}?", + "deleted": "Исечак је обрисан", + "deleteFailed": "Брисање исечка није успело", + "requiredFields": "Назив и садржај фрагмента су обавезни", + "saved": "Исечак је сачуван", + "saveFailed": "Чување фрагмента није успело", + "saving": "Чување...", + "save": "Сачувај" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "backToSnippets": "Назад на фрагменте", + "settingsTitle": "Подешавања исечка", + "settingsDisplayTitle": "Приказ", + "settingsBehaviorTitle": "Понашање", + "typeCommandHint": "Ради у активном терминалу.", + "typeNoteHint": "Лепи у активни терминал без покретања.", + "variablesHint": "Променљиве: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Ознака}", + "doubleClickToRun": "Двапут кликните да бисте покренули", + "sharedBadge": "Дељено", + "copyToClipboard": "Копирај у међуспремник", + "copyFailed": "Копирање у међуспремник није успело", + "moreOptions": "Више опција", + "moreActions": "Више акција", + "moveToFolder": "Премести у фасциклу", + "deleteSnippet": "Обриши исечак", + "deleteSnippetConfirm": "Обришите исечак „{{name}}“?", + "deleteSuccess": "Исечак је обрисан", + "delete": "Обриши", + "folderActions": "Радње са фасциклама", + "addSnippetHere": "Нови исечак овде", + "deleteFolder": "Обриши фасциклу", + "deleteFolderConfirm": "Обришите фасциклу „{{name}}“? Њени фрагменти се премештају ван фасцикле.", + "createFolderDescription": "Групишите повезане фрагменте заједно.", + "editFolderDescription": "Промените име, боју или икону ове фасцикле.", + "folderColorLabel": "Боја", + "loadFailed": "Учитавање фрагмената није успело", + "importSkipExisting": "Увези (прескочи постојеће)", + "importOverwrite": "Увези (пребриши постојеће)", + "importInvalidFile": "Та датотека није важећи извоз фрагмената", + "importSuccess": "Увезено {{imported}}, ажурирано {{updated}}, прескочено {{skipped}}", + "exportSnippets": "Извоз исечака", + "exportSuccess": "Извезени фрагменти", + "exportFailed": "Извоз фрагмената није успео", + "expandAll": "Прошири све фасцикле", + "collapseAll": "Скупи све фасцикле", + "docsLink": "Документација", + "clearSearch": "Обриши претрагу", + "noSearchResults": "Ниједан фрагмент не одговара вашој претрази", + "emptyTitle": "Још нема фрагмената", + "emptyDescription": "Сачувајте команде које често покрећете, а затим их покрените у терминалу једним кликом.", + "shareSnippet": "Дели исечак", + "shareFolder": "Дели фасциклу", + "shareExpiry": "Истиче", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Никад", + "h1": "За 1 сат", + "h24": "За 1 дан", + "h168": "За 7 дана", + "h720": "За 30 дана" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", - "close": "Close", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "shareButton": "Дели", + "shareSuccess": "Дељено са {{count}}", + "shareFailed": "Дељење није успело", + "shareLoadFailed": "Учитавање детаља о дељењу није успело", + "currentAccess": "Тренутни приступ", + "notSharedYet": "Још није дељено ни са ким", + "revokeAccess": "Поништи", + "revokeSuccess": "Приступ је опозван", + "revokeFailed": "Опозивање приступа није успело", + "close": "Затвори", + "targetHostsLabel": "Циљни хостови", + "targetHostsHint": "Изаберите хостове на којима ћете директно покренути ову команду, без отвореног терминала. Оставите празно да бисте је покренули у активном терминалу.", + "clearTargetHosts": "Јасно", + "noHostsAvailable": "Нема доступних хостова", + "searchHosts": "Претрага хостова", + "runOnTargets": "Покрени на циљним хостовима", + "executionResultTitle": "Резултати за „{{name}}“", + "executionResultDescription": "Излаз са сваког циљног хоста.", + "executionSuccess": "Успех", + "executionFailed": "Неуспешно", + "directRunSuccess": "Покренуто „{{name}}“ на {{count}} хосту(има)", + "directRunPartialFail": "„{{name}}“ није успело на неким хостовима", + "reorderFailed": "Промена редоследа фрагмената није успела", + "dropToRemoveFromFolder": "Отпустите овде да бисте изашли из фасцикле", + "shareSnippetTitle": "Подели „{{name}}“", + "shareFolderTitle": "Дели фасциклу „{{name}}“", + "shareWith": "Подели са", + "usersTab": "Корисници", + "rolesTab": "Улоге", + "shareSearchPlaceholder": "Претражите кориснике или улоге", + "shareNoMatches": "Нема подударања", + "shareWithCount": "Подели са {{count}}", + "shareFolderHint": "Дели сваки исечак у овој фасцикли. Исечци додати касније се не деле аутоматски.", + "shareFolderSummary": "Дељено {{count}} фрагмената у овој фасцикли", + "grantedBy": "Додељено од стране", + "expired": "Истекло", + "variablesDialogTitle": "Покрени „{{name}}“", + "variablesDialogDescription": "Унесите вредности које су потребне овом фрагменту пре него што га покренете.", + "variablesPreviewLabel": "Преглед", + "variablesConfirmButton": "Трчи", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Покрени постојећи исечак кода", + "snippetLabel": "Исечак", + "selectSnippet": "Изаберите исечак", + "snippetMissing": "фрагмент није пронађен", + "snippetRequired": "Изаберите исечак" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Покрени у активној картици терминала", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "Исечак за покретање", + "quickActionsTitle": "Брзе акције", + "quickActionsDescription": "Брзе акције се појављују као дугмад у траци са алаткама Host Metrics за извршавање команди једним кликом.", + "noQuickActions": "Још нема брзих акција.", + "buttonLabel": "Ознака дугмета", + "selectSnippet": "Изаберите исечак...", + "addQuickAction": "Додај акцију", + "tabTitle": "Исечци", + "startupDescription": "Покреће се у терминалу сваки пут када се повеже са овим хостом. Променљиве попут $HOST су попуњене; исечак који тражи уносе је прескочен.", + "none": "Ниједан", + "removeQuickAction": "Уклони брзу акцију" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "Извршава се {{name}}...", + "succeeded": "{{name}} успешно завршено", + "failed": "{{name}} није успело", + "error": "Није успело извршавање {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "Налепи у активну картицу терминала", + "targetTerminals": "Утрчавање", + "targetTerminalsHint": "опционо, иначе активна картица", + "selectAll": "Сви", + "selectNone": "Ниједан" } diff --git a/plugins/snippets/locales/translated/sv_SE.json b/plugins/snippets/locales/translated/sv_SE.json index d144663ae..d6043c5aa 100644 --- a/plugins/snippets/locales/translated/sv_SE.json +++ b/plugins/snippets/locales/translated/sv_SE.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "Snuttar" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "Snuttar", + "feature_snippets_desc": "Spara kommandon du kör ofta och skicka dem till en terminal med ett enda klick." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Visa utdrag", + "description": "Se dina egna utdrag, anteckningar och delade utdrag." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Skapa utdrag", + "description": "Skapa nya utdrag, anteckningar och mappar." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Redigera utdrag", + "description": "Byt namn på eller ändra befintliga utdrag och mappar." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Ta bort utdrag", + "description": "Ta bort utdrag och mappar." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Dela utdrag", + "description": "Dela utdrag och mappar med andra användare eller roller." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Komprimera mappar som standard", + "description": "Börja varje kodavsnittsmapp hopfälld när du öppnar kodavsnittspanelen." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Visa kommandon", + "description": "Visa den första raden i varje kodavsnitts kommando under dess namn." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Bekräfta innan du kör", + "description": "Fråga innan ett kommandosnutt körs i en terminal." } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "cancel": "Avboka", + "loading": "Belastning...", + "searchPlaceholder": "Sök utdrag", + "newFolder": "Ny mapp", + "newSnippet": "Nytt utdrag", + "noFolder": "Ingen mapp", + "noSnippetsInFolder": "Inga utdrag i den här mappen", + "noTerminalTabsOpen": "Ingen terminalflik är öppen", + "run": "Sikt", + "pasteToTerminal": "Klistra in i terminalen", + "copySuccess": "Kopierad till urklipp", + "importExport": "Importera / Exportera", + "importFailed": "Misslyckades med att importera utdrag", + "nameLabel": "Namn", + "namePlaceholder": "Utdragsnamn", + "descriptionLabel": "Beskrivning", + "descriptionPlaceholder": "Valfri beskrivning", + "folderLabel": "Mapp", + "typeLabel": "Typ", + "typeCommand": "Kommando", + "typeNote": "Notera", + "commandLabel": "Kommando", + "commandPlaceholder": "Kommando att köra, t.ex. systemctl status $HOST", + "noteLabel": "Notera", + "notePlaceholder": "Text att klistra in i terminalen", + "createSnippetTitle": "Skapa utdrag", + "createSnippetButton": "Skapa utdrag", + "createSuccess": "Utdrag skapat", + "createFailed": "Misslyckades med att skapa kodavsnittet", + "editSnippetTitle": "Redigera utdrag", + "saveSnippetButton": "Spara utdrag", + "updateSuccess": "Utdrag uppdaterat", + "updateFailed": "Misslyckades med att uppdatera utdraget", + "deleteFailed": "Misslyckades med att ta bort utdraget", + "createFolderTitle": "Skapa mapp", + "createFolderButton": "Skapa mapp", + "folderCreateSuccess": "Mapp skapad", + "folderCreateFailed": "Misslyckades med att skapa mappen", + "editFolderTitle": "Redigera mapp", + "saveFolderButton": "Spara mapp", + "folderEditSuccess": "Mappen uppdaterad", + "folderEditFailed": "Misslyckades med att uppdatera mappen", + "folderNameLabel": "Mappnamn", + "folderNamePlaceholder": "Mappnamn", + "folderIconLabel": "Ikon", + "folderDeleteSuccess": "Mappen raderad", + "folderDeleteFailed": "Misslyckades med att ta bort mappen", + "confirmRunMessage": "Kör \"{{name}}\"?", + "confirmRunButton": "Sikt", + "runSuccess": "Körde \"{{name}}\" på {{count}} terminal(er)", + "pasteSuccess": "Klistrade in \"{{name}}\" i {{count}} terminal(er)", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "Snuttar", + "count": "{{count}} utdrag", + "add": "Lägg till utdrag", + "namePlaceholder": "Utdragsnamn", + "contentPlaceholder": "Kommandoinnehåll", + "folderPlaceholder": "Mapp (valfritt)", + "empty": "Den här användaren har inga utdrag", + "deleteConfirm": "Ta bort utdraget \"{{name}}\" som tillhör {{username}}?", + "deleted": "Utdraget raderat", + "deleteFailed": "Misslyckades med att ta bort utdraget", + "requiredFields": "Namn och innehåll på utdrag krävs", + "saved": "Utdrag sparat", + "saveFailed": "Kunde inte spara utdraget", + "saving": "Sparande...", + "save": "Spara" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "backToSnippets": "Tillbaka till utdrag", + "settingsTitle": "Inställningar för utdrag", + "settingsDisplayTitle": "Visa", + "settingsBehaviorTitle": "Beteende", + "typeCommandHint": "Körs i den aktiva terminalen.", + "typeNoteHint": "Klistrar in i den aktiva terminalen utan att köra.", + "variablesHint": "Variabler: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Etikett}", + "doubleClickToRun": "Dubbelklicka för att köra", + "sharedBadge": "Delad", + "copyToClipboard": "Kopiera till urklipp", + "copyFailed": "Misslyckades med att kopiera till urklipp", + "moreOptions": "Fler alternativ", + "moreActions": "Fler åtgärder", + "moveToFolder": "Flytta till mapp", + "deleteSnippet": "Ta bort utdrag", + "deleteSnippetConfirm": "Ta bort utdraget \"{{name}}\"?", + "deleteSuccess": "Utdraget raderat", + "delete": "Radera", + "folderActions": "Mappåtgärder", + "addSnippetHere": "Nytt utdrag här", + "deleteFolder": "Ta bort mapp", + "deleteFolderConfirm": "Ta bort mappen \"{{name}}\"? Dess utdrag flyttas ut ur mappen.", + "createFolderDescription": "Gruppera relaterade utdrag tillsammans.", + "editFolderDescription": "Ändra den här mappens namn, färg eller ikon.", + "folderColorLabel": "Färg", + "loadFailed": "Misslyckades med att ladda utdrag", + "importSkipExisting": "Importera (hoppa över befintliga)", + "importOverwrite": "Importera (skriv över befintlig)", + "importInvalidFile": "Den filen är inte en giltig exportkod för snippets", + "importSuccess": "Importerad {{imported}}, uppdaterad {{updated}}, hoppad över {{skipped}}", + "exportSnippets": "Exportera utdrag", + "exportSuccess": "Exporterade utdrag", + "exportFailed": "Misslyckades med att exportera utdrag", + "expandAll": "Expandera alla mappar", + "collapseAll": "Komprimera alla mappar", + "docsLink": "Dokumentation", + "clearSearch": "Rensa sökningen", + "noSearchResults": "Inga utdrag matchar din sökning", + "emptyTitle": "Inga utdrag ännu", + "emptyDescription": "Spara kommandon du kör ofta och kör dem sedan i en terminal med ett klick.", + "shareSnippet": "Dela utdrag", + "shareFolder": "Dela mapp", + "shareExpiry": "Utgår", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Aldrig", + "h1": "Om 1 timme", + "h24": "Om 1 dag", + "h168": "Om 7 dagar", + "h720": "Om 30 dagar" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", - "close": "Close", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "shareButton": "Dela", + "shareSuccess": "Delad med {{count}}", + "shareFailed": "Misslyckades med att dela", + "shareLoadFailed": "Det gick inte att läsa in delningsinformationen", + "currentAccess": "Nuvarande åtkomst", + "notSharedYet": "Inte delat med någon ännu", + "revokeAccess": "Återkalla", + "revokeSuccess": "Åtkomst återkallad", + "revokeFailed": "Misslyckades med att återkalla åtkomst", + "close": "Nära", + "targetHostsLabel": "Målvärdar", + "targetHostsHint": "Välj värdar att köra det här kommandot direkt på, utan att en terminal är öppen. Lämna tomt för att köra det i den aktiva terminalen.", + "clearTargetHosts": "Rensa", + "noHostsAvailable": "Inga värdar tillgängliga", + "searchHosts": "Sök värdar", + "runOnTargets": "Kör på målvärdar", + "executionResultTitle": "Resultat för \"{{name}}\"", + "executionResultDescription": "Utdata från varje målvärd.", + "executionSuccess": "Framgång", + "executionFailed": "Misslyckades", + "directRunSuccess": "Körde \"{{name}}\" på {{count}} värd(ar)", + "directRunPartialFail": "\"{{name}}\" misslyckades på vissa värdar", + "reorderFailed": "Misslyckades med att ändra ordningen på utdragen", + "dropToRemoveFromFolder": "Släpp här för att flytta ut ur mappen", + "shareSnippetTitle": "Dela \"{{name}}\"", + "shareFolderTitle": "Dela mappen \"{{name}}\"", + "shareWith": "Dela med", + "usersTab": "Användare", + "rolesTab": "Roller", + "shareSearchPlaceholder": "Sök användare eller roller", + "shareNoMatches": "Inga träffar", + "shareWithCount": "Dela med {{count}}", + "shareFolderHint": "Delar alla utdrag i den här mappen. Utdrag som läggs till senare delas inte automatiskt.", + "shareFolderSummary": "Delade {{count}} kodavsnitt i den här mappen", + "grantedBy": "Beviljad av", + "expired": "Utgången", + "variablesDialogTitle": "Kör \"{{name}}\"", + "variablesDialogDescription": "Fyll i de värden som detta kodavsnitt behöver innan du kör det.", + "variablesPreviewLabel": "Förhandsvisning", + "variablesConfirmButton": "Sikt", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Kör befintligt kodavsnitt", + "snippetLabel": "Utdrag", + "selectSnippet": "Välj ett utdrag", + "snippetMissing": "utdraget hittades inte", + "snippetRequired": "Välj ett utdrag" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Kör i den aktiva terminalfliken", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "Startkodavsnitt", + "quickActionsTitle": "Snabbåtgärder", + "quickActionsDescription": "Snabbåtgärder visas som knappar i verktygsfältet Host Metrics för att köra kommandon med ett klick.", + "noQuickActions": "Inga snabba åtgärder ännu.", + "buttonLabel": "Knappetikett", + "selectSnippet": "Välj utdrag...", + "addQuickAction": "Lägg till åtgärd", + "tabTitle": "Snuttar", + "startupDescription": "Körs i terminalen varje gång den ansluter till den här värden. Variabler som $HOST fylls i; ett kodavsnitt som ber om indata hoppas över.", + "none": "Ingen", + "removeQuickAction": "Ta bort snabbåtgärden" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "Kör {{name}}...", + "succeeded": "{{name}} slutfört", + "failed": "{{name}} misslyckades", + "error": "Misslyckades med att köra {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "Klistra in i den aktiva terminalfliken", + "targetTerminals": "Spring in", + "targetTerminalsHint": "valfritt, annars den aktiva fliken", + "selectAll": "Alla", + "selectNone": "Ingen" } diff --git a/plugins/snippets/locales/translated/th_TH.json b/plugins/snippets/locales/translated/th_TH.json index d144663ae..cf48f5c83 100644 --- a/plugins/snippets/locales/translated/th_TH.json +++ b/plugins/snippets/locales/translated/th_TH.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "เศษเสี้ยว" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "เศษเสี้ยว", + "feature_snippets_desc": "บันทึกคำสั่งที่คุณใช้งานบ่อยและส่งไปยังเทอร์มินัลได้ด้วยการคลิกเพียงครั้งเดียว" }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "ดูตัวอย่าง", + "description": "ดูข้อความย่อ บันทึก และข้อความย่อที่แชร์ของคุณเอง" }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "สร้างโค้ดตัวอย่าง", + "description": "สร้างข้อความย่อ บันทึก และโฟลเดอร์ใหม่" }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "แก้ไขข้อความย่อ", + "description": "เปลี่ยนชื่อหรือแก้ไขโค้ดตัวอย่างและโฟลเดอร์ที่มีอยู่" }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "ลบส่วนย่อย", + "description": "ลบโค้ดตัวอย่างและโฟลเดอร์" }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "แบ่งปันข้อความสั้นๆ", + "description": "แชร์โค้ดตัวอย่างและโฟลเดอร์กับผู้ใช้หรือบทบาทอื่นๆ" } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "ยุบโฟลเดอร์โดยค่าเริ่มต้น", + "description": "เมื่อเปิดแผง Snippets ให้เริ่มโดยที่โฟลเดอร์โค้ดตัวอย่างแต่ละโฟลเดอร์ยังอยู่ในสถานะพับอยู่" }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "แสดงคำสั่ง", + "description": "แสดงบรรทัดแรกของคำสั่งแต่ละส่วนย่อยไว้ใต้ชื่อของคำสั่งนั้น" }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "ยืนยันก่อนดำเนินการ", + "description": "ถามก่อนเรียกใช้คำสั่งในเทอร์มินัล" } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "cancel": "ยกเลิก", + "loading": "กำลังโหลด...", + "searchPlaceholder": "ตัวอย่างการค้นหา", + "newFolder": "โฟลเดอร์ใหม่", + "newSnippet": "โค้ดตัวอย่างใหม่", + "noFolder": "ไม่มีโฟลเดอร์", + "noSnippetsInFolder": "ไม่มีไฟล์ตัวอย่างในโฟลเดอร์นี้", + "noTerminalTabsOpen": "ไม่มีแท็บเทอร์มินัลเปิดอยู่", + "run": "วิ่ง", + "pasteToTerminal": "วางลงในเทอร์มินัล", + "copySuccess": "คัดลอกไปยังคลิปบอร์ดแล้ว", + "importExport": "นำเข้า/ส่งออก", + "importFailed": "ไม่สามารถนำเข้าส่วนย่อยได้", + "nameLabel": "ชื่อ", + "namePlaceholder": "ชื่อส่วนย่อย", + "descriptionLabel": "คำอธิบาย", + "descriptionPlaceholder": "คำอธิบายเพิ่มเติม (ไม่บังคับ)", + "folderLabel": "โฟลเดอร์", + "typeLabel": "พิมพ์", + "typeCommand": "สั่งการ", + "typeNote": "บันทึก", + "commandLabel": "สั่งการ", + "commandPlaceholder": "คำสั่งที่จะเรียกใช้ เช่น systemctl status $HOST", + "noteLabel": "บันทึก", + "notePlaceholder": "ข้อความที่จะวางลงในเทอร์มินัล", + "createSnippetTitle": "สร้างโค้ดตัวอย่าง", + "createSnippetButton": "สร้างโค้ดตัวอย่าง", + "createSuccess": "สร้างตัวอย่างโค้ดแล้ว", + "createFailed": "ไม่สามารถสร้างโค้ดตัวอย่างได้", + "editSnippetTitle": "แก้ไขส่วนย่อย", + "saveSnippetButton": "บันทึกส่วนย่อ", + "updateSuccess": "อัปเดตส่วนย่อยแล้ว", + "updateFailed": "ไม่สามารถอัปเดตโค้ดตัวอย่างได้", + "deleteFailed": "ไม่สามารถลบส่วนย่อยได้", + "createFolderTitle": "สร้างโฟลเดอร์", + "createFolderButton": "สร้างโฟลเดอร์", + "folderCreateSuccess": "สร้างโฟลเดอร์แล้ว", + "folderCreateFailed": "ไม่สามารถสร้างโฟลเดอร์ได้", + "editFolderTitle": "แก้ไขโฟลเดอร์", + "saveFolderButton": "บันทึกโฟลเดอร์", + "folderEditSuccess": "โฟลเดอร์ได้รับการอัปเดตแล้ว", + "folderEditFailed": "ไม่สามารถอัปเดตโฟลเดอร์ได้", + "folderNameLabel": "ชื่อโฟลเดอร์", + "folderNamePlaceholder": "ชื่อโฟลเดอร์", + "folderIconLabel": "ไอคอน", + "folderDeleteSuccess": "โฟลเดอร์ถูกลบแล้ว", + "folderDeleteFailed": "ไม่สามารถลบโฟลเดอร์ได้", + "confirmRunMessage": "เรียกใช้ \"{{name}}\"?", + "confirmRunButton": "วิ่ง", + "runSuccess": "รัน \"{{name}}\" บนเทอร์มินัล {{count}} เครื่อง", + "pasteSuccess": "วาง \"{{name}}\" ลงในเทอร์มินัล {{count}} แล้ว", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "เศษเสี้ยว", + "count": "{{count}} ตัวอย่างข้อความ", + "add": "เพิ่มโค้ดตัวอย่าง", + "namePlaceholder": "ชื่อส่วนย่อย", + "contentPlaceholder": "เนื้อหาคำสั่ง", + "folderPlaceholder": "โฟลเดอร์ (ไม่จำเป็น)", + "empty": "ผู้ใช้รายนี้ไม่มีตัวอย่างโค้ด", + "deleteConfirm": "ลบส่วนย่อย \"{{name}}\" ที่เป็นของ {{username}} หรือไม่?", + "deleted": "ข้อความบางส่วนถูกลบแล้ว", + "deleteFailed": "ไม่สามารถลบส่วนย่อยได้", + "requiredFields": "จำเป็นต้องระบุชื่อและเนื้อหาของโค้ดตัวอย่าง", + "saved": "บันทึกส่วนย่อยแล้ว", + "saveFailed": "ไม่สามารถบันทึกส่วนย่อยได้", + "saving": "ประหยัด...", + "save": "บันทึก" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "backToSnippets": "กลับไปที่ส่วนย่อ", + "settingsTitle": "การตั้งค่าสนิปเป็ต", + "settingsDisplayTitle": "แสดง", + "settingsBehaviorTitle": "พฤติกรรม", + "typeCommandHint": "ทำงานในเทอร์มินัลที่ใช้งานอยู่", + "typeNoteHint": "วางข้อความลงในเทอร์มินัลที่ใช้งานอยู่โดยไม่ต้องเรียกใช้โปรแกรม", + "variablesHint": "ตัวแปร: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "ดับเบิ้ลคลิกเพื่อเรียกใช้งาน", + "sharedBadge": "แชร์", + "copyToClipboard": "คัดลอกไปยังคลิปบอร์ด", + "copyFailed": "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้", + "moreOptions": "ตัวเลือกเพิ่มเติม", + "moreActions": "การดำเนินการเพิ่มเติม", + "moveToFolder": "ย้ายไปยังโฟลเดอร์", + "deleteSnippet": "ลบส่วนย่อย", + "deleteSnippetConfirm": "ลบโค้ดส่วนย่อย \"{{name}}\"?", + "deleteSuccess": "ข้อความบางส่วนถูกลบแล้ว", + "delete": "ลบ", + "folderActions": "การดำเนินการโฟลเดอร์", + "addSnippetHere": "ข้อความใหม่ตรงนี้", + "deleteFolder": "ลบโฟลเดอร์", + "deleteFolderConfirm": "ลบโฟลเดอร์ \"{{name}}\"? โค้ดตัวอย่างจะถูกย้ายออกจากโฟลเดอร์", + "createFolderDescription": "จัดกลุ่มข้อความที่เกี่ยวข้องเข้าด้วยกัน", + "editFolderDescription": "เปลี่ยนชื่อ สี หรือไอคอนของโฟลเดอร์นี้", + "folderColorLabel": "สี", + "loadFailed": "ไม่สามารถโหลดส่วนย่อยได้", + "importSkipExisting": "นำเข้า (ข้ามรายการที่มีอยู่)", + "importOverwrite": "นำเข้า (เขียนทับข้อมูลที่มีอยู่)", + "importInvalidFile": "ไฟล์นั้นไม่ใช่ไฟล์ส่งออกโค้ดตัวอย่างที่ถูกต้อง", + "importSuccess": "นำเข้า {{imported}}, อัปเดต {{updated}}, ข้าม {{skipped}}", + "exportSnippets": "ส่งออกส่วนย่อย", + "exportSuccess": "ส่งออกข้อมูลตัวอย่าง", + "exportFailed": "ไม่สามารถส่งออกส่วนย่อยได้", + "expandAll": "ขยายโฟลเดอร์ทั้งหมด", + "collapseAll": "ยุบโฟลเดอร์ทั้งหมด", + "docsLink": "เอกสารประกอบ", + "clearSearch": "ล้างการค้นหา", + "noSearchResults": "ไม่มีตัวอย่างผลลัพธ์ใดตรงกับการค้นหาของคุณ", + "emptyTitle": "ยังไม่มีตัวอย่างโค้ด", + "emptyDescription": "บันทึกคำสั่งที่คุณใช้งานบ่อย แล้วเรียกใช้คำสั่งเหล่านั้นในเทอร์มินัลได้ด้วยการคลิกเพียงครั้งเดียว", + "shareSnippet": "แชร์ตัวอย่าง", + "shareFolder": "แชร์โฟลเดอร์", + "shareExpiry": "หมดอายุ", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "ไม่เคย", + "h1": "ภายใน 1 ชั่วโมง", + "h24": "ภายใน 1 วัน", + "h168": "ภายใน 7 วัน", + "h720": "ภายใน 30 วัน" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", - "close": "Close", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "shareButton": "แบ่งปัน", + "shareSuccess": "แชร์กับ {{count}}", + "shareFailed": "ไม่สามารถแชร์ได้", + "shareLoadFailed": "ไม่สามารถโหลดรายละเอียดการแชร์ได้", + "currentAccess": "การเข้าถึงปัจจุบัน", + "notSharedYet": "ยังไม่ได้แชร์ให้ใครเลย", + "revokeAccess": "ถอน", + "revokeSuccess": "สิทธิ์การเข้าถึงถูกเพิกถอน", + "revokeFailed": "ไม่สามารถเพิกถอนสิทธิ์การเข้าถึงได้", + "close": "ปิด", + "targetHostsLabel": "เป้าหมายโฮสต์", + "targetHostsHint": "เลือกโฮสต์ที่จะรันคำสั่งนี้โดยตรง โดยไม่ต้องเปิดเทอร์มินัล หากต้องการรันในเทอร์มินัลที่ใช้งานอยู่ ให้เว้นว่างไว้", + "clearTargetHosts": "ชัดเจน", + "noHostsAvailable": "ไม่มีโฮสต์ให้บริการ", + "searchHosts": "ค้นหาโฮสต์", + "runOnTargets": "เรียกใช้งานบนโฮสต์เป้าหมาย", + "executionResultTitle": "ผลลัพธ์สำหรับ \"{{name}}\"", + "executionResultDescription": "ผลลัพธ์จากโฮสต์เป้าหมายแต่ละตัว", + "executionSuccess": "ความสำเร็จ", + "executionFailed": "ล้มเหลว", + "directRunSuccess": "Ran \"{{name}}\" บนโฮสต์ {{count}} เครื่อง", + "directRunPartialFail": "\"{{name}}\" ล้มเหลวบนโฮสต์บางตัว", + "reorderFailed": "ไม่สามารถเรียงลำดับส่วนย่อยใหม่ได้", + "dropToRemoveFromFolder": "ลากตรงนี้เพื่อย้ายออกจากโฟลเดอร์", + "shareSnippetTitle": "แชร์ \"{{name}}\"", + "shareFolderTitle": "แชร์โฟลเดอร์ \"{{name}}\"", + "shareWith": "แบ่งปันกับ", + "usersTab": "ผู้ใช้", + "rolesTab": "บทบาท", + "shareSearchPlaceholder": "ค้นหาผู้ใช้หรือบทบาท", + "shareNoMatches": "ไม่พบผลลัพธ์ใดๆ", + "shareWithCount": "แชร์กับ {{count}}", + "shareFolderHint": "แชร์โค้ดตัวอย่างทั้งหมดในโฟลเดอร์นี้ โค้ดตัวอย่างที่เพิ่มเข้ามาภายหลังจะไม่ถูกแชร์โดยอัตโนมัติ", + "shareFolderSummary": "โค้ดตัวอย่างที่แชร์ {{count}} ในโฟลเดอร์นี้", + "grantedBy": "ได้รับอนุญาตจาก", + "expired": "หมดอายุ", + "variablesDialogTitle": "วิ่ง \"{{name}}\"", + "variablesDialogDescription": "กรอกค่าที่จำเป็นสำหรับโค้ดส่วนนี้ก่อนที่จะเรียกใช้งาน", + "variablesPreviewLabel": "ตัวอย่าง", + "variablesConfirmButton": "วิ่ง", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "เรียกใช้โค้ดตัวอย่างที่มีอยู่", + "snippetLabel": "ส่วนหนึ่ง", + "selectSnippet": "เลือกส่วนย่อย", + "snippetMissing": "ไม่พบโค้ดตัวอย่าง", + "snippetRequired": "เลือกส่วนย่อย" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "เรียกใช้ในแท็บเทอร์มินัลที่ใช้งานอยู่", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "ตัวอย่างโค้ดสำหรับเริ่มต้น", + "quickActionsTitle": "การดำเนินการด่วน", + "quickActionsDescription": "การดำเนินการด่วนจะปรากฏเป็นปุ่มในแถบเครื่องมือ Host Metrics เพื่อให้สามารถเรียกใช้คำสั่งได้ด้วยการคลิกเพียงครั้งเดียว", + "noQuickActions": "ยังไม่มีการดำเนินการใดๆ อย่างเร่งด่วนในขณะนี้", + "buttonLabel": "ป้ายกำกับปุ่ม", + "selectSnippet": "เลือกส่วนย่อย...", + "addQuickAction": "เพิ่มการดำเนินการ", + "tabTitle": "เศษเสี้ยว", + "startupDescription": "โปรแกรมนี้จะทำงานในเทอร์มินัลทุกครั้งที่เชื่อมต่อกับโฮสต์นี้ ตัวแปรต่างๆ เช่น $HOST จะถูกเติมค่าลงไป และส่วนที่ขอข้อมูลป้อนเข้าจะถูกข้ามไป", + "none": "ไม่มี", + "removeQuickAction": "ลบการดำเนินการอย่างรวดเร็ว" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "กำลังดำเนินการ {{name}}...", + "succeeded": "{{name}} เสร็จสมบูรณ์เรียบร้อยแล้ว", + "failed": "{{name}} ล้มเหลว", + "error": "ไม่สามารถดำเนินการ {{name}} ได้" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "วางลงในแท็บเทอร์มินัลที่ใช้งานอยู่", + "targetTerminals": "วิ่งใน", + "targetTerminalsHint": "ตัวเลือกเสริม มิฉะนั้นจะเป็นแท็บที่ใช้งานอยู่", + "selectAll": "ทั้งหมด", + "selectNone": "ไม่มี" } diff --git a/plugins/snippets/locales/translated/tr_TR.json b/plugins/snippets/locales/translated/tr_TR.json index 98530ebc4..725870883 100644 --- a/plugins/snippets/locales/translated/tr_TR.json +++ b/plugins/snippets/locales/translated/tr_TR.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "Parçacıklar", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "Sık kullandığınız komutları kaydedin ve tek tıklamayla terminale gönderin." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Örnekleri görüntüle", + "description": "Kendi yazdığınız kısa metinleri, notları ve paylaşılan kısa metinleri görün." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Kod parçacıkları oluşturun", + "description": "Yeni kod parçacıkları, notlar ve klasörler oluşturun." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Kod parçacıklarını düzenle", + "description": "Mevcut kod parçacıklarını ve klasörleri yeniden adlandırın veya değiştirin." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Parçacıkları sil", + "description": "Kod parçacıklarını ve klasörleri silin." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Kısa özetleri paylaşın", + "description": "Kod parçacıklarını ve klasörleri diğer kullanıcılar veya rollerle paylaşın." } }, "settings": { "foldersCollapsed": { "label": "Klasörler varsayılan olarak kapalı olsun", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "Kod parçacıkları panelini açtığınızda her bir kod parçacığı klasörü kapalı olarak başlar." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Komutları göster", + "description": "Her bir kod parçacığının komutunun ilk satırını adının altında gösterin." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Çalıştırmadan önce onaylayın.", + "description": "Terminalde bir komut parçacığı çalıştırılmadan önce izin isteyin." } }, "cancel": "İptal", "loading": "Yükleniyor...", "searchPlaceholder": "Parçacıkları ara", "newFolder": "Yeni klasör", - "newSnippet": "New snippet", + "newSnippet": "Yeni kısa özet", "noFolder": "Klasör yok", "noSnippetsInFolder": "Bu klasörde parçacık yok", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "Hiçbir terminal sekmesi açık değil.", "run": "Çalıştır", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Terminale yapıştır", "copySuccess": "Panoya kopyalandı", "importExport": "İçe / Dışa Aktar", "importFailed": "Kod parçacıkları içe aktarılamadı", @@ -62,37 +62,37 @@ "folderLabel": "Klasör", "typeLabel": "Tür", "typeCommand": "Komut", - "typeNote": "Note", + "typeNote": "Not", "commandLabel": "Komut", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "Çalıştırılacak komut, örneğin systemctl status $HOST", + "noteLabel": "Not", + "notePlaceholder": "Terminale yapıştırılacak metin", + "createSnippetTitle": "Kod parçacığı oluştur", + "createSnippetButton": "Kod parçacığı oluştur", + "createSuccess": "Oluşturulan kod parçası", "createFailed": "Parçacık oluşturulamadı", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Kod parçasını düzenle", + "saveSnippetButton": "Kod parçasını kaydet", + "updateSuccess": "Kod parçası güncellendi.", "updateFailed": "Parçacık güncellenemedi", "deleteFailed": "Parçacık silinemedi", "createFolderTitle": "Klasör oluştur", "createFolderButton": "Klasör oluştur", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "Klasör oluşturuldu", "folderCreateFailed": "Klasör oluşturulamadı", "editFolderTitle": "Klasörü düzenle", "saveFolderButton": "Klasörü kaydet", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "Klasör güncellendi", "folderEditFailed": "Klasör güncellenemedi", "folderNameLabel": "Klasör adı", "folderNamePlaceholder": "Klasör adı", "folderIconLabel": "Simge", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "Klasör silindi", "folderDeleteFailed": "Klasör silinemedi", "confirmRunMessage": "\"{{name}}\" çalıştırılsın mı?", "confirmRunButton": "Çalıştır", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "\"{{name}}\" komutunu {{count}} terminal(ler)inde çalıştırdı", + "pasteSuccess": "\"{{name}}\" ifadesi {{count}} terminal(ler)ine yapıştırıldı", "admin": { "tabTitle": "Parçacıklar", "count": "{{count}} kod parçası", @@ -110,104 +110,104 @@ "saving": "Kaydediliyor...", "save": "Kaydet" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Özetlere geri dön", + "settingsTitle": "Kod parçacığı ayarları", + "settingsDisplayTitle": "Görüntülemek", "settingsBehaviorTitle": "Davranış", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "Etkin terminalde çalışır.", + "typeNoteHint": "Çalıştırmadan etkin terminale yapıştırır.", + "variablesHint": "Değişkenler: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Çalıştırmak için çift tıklayın.", "sharedBadge": "Paylaşıldı", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "Panoya kopyala", "copyFailed": "Panoya kopyalanamadı", - "moreOptions": "More options", + "moreOptions": "Daha fazla seçenek", "moreActions": "Diğer işlemler", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "Klasöre taşı", + "deleteSnippet": "Kod parçasını sil", + "deleteSnippetConfirm": "\"{{name}} \" kod parçasını silmek mi istiyorsunuz?", "deleteSuccess": "Kod parçası silindi", "delete": "Sil", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "Klasör işlemleri", + "addSnippetHere": "Yeni bir kesit burada.", "deleteFolder": "Klasörü sil", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "\"{{name}}\" klasörünü silmek mi istiyorsunuz? İçindeki kod parçacıkları klasörün dışına taşınıyor.", + "createFolderDescription": "Birbiriyle ilgili kısa metin parçalarını gruplandırın.", + "editFolderDescription": "Bu klasörün adını, rengini veya simgesini değiştirin.", "folderColorLabel": "Renk", - "loadFailed": "Failed to load snippets", + "loadFailed": "Kod parçacıkları yüklenemedi.", "importSkipExisting": "İçe Aktar (mevcut olanları atla)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "İçe aktar (mevcut olanın üzerine yaz)", + "importInvalidFile": "Bu dosya geçerli bir kod parçacığı dışa aktarımı değil.", + "importSuccess": "{{imported}}içe aktarıldı, {{updated}}güncellendi, {{skipped}} atlandı", + "exportSnippets": "Kod parçacıklarını dışa aktar", + "exportSuccess": "Dışa aktarılan kod parçacıkları", "exportFailed": "Kod parçacıkları dışa aktarılamadı", "expandAll": "Tüm klasörleri genişlet", "collapseAll": "Tüm klasörleri daralt", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "Dokümantasyon", + "clearSearch": "Arama sonuçlarını temizle", + "noSearchResults": "Arama kriterlerinize uyan sonuç bulunamadı.", + "emptyTitle": "Henüz hiçbir kısa video yok.", + "emptyDescription": "Sık kullandığınız komutları kaydedin, ardından terminalde tek tıklamayla çalıştırın.", + "shareSnippet": "Özeti paylaş", + "shareFolder": "Paylaşılan klasör", "shareExpiry": "Bitiş", "shareExpiryOptions": { "h0": "Süresiz", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "1 saat içinde", + "h24": "1 gün içinde", + "h168": "7 gün içinde", + "h720": "30 gün içinde" }, "shareButton": "Paylaş", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "{{count}} ile paylaşıldı", + "shareFailed": "Paylaşılamadı", + "shareLoadFailed": "Paylaşım ayrıntıları yüklenemedi.", "currentAccess": "Mevcut erişim", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "Henüz kimseyle paylaşılmadı.", "revokeAccess": "İptal Et", "revokeSuccess": "Erişim iptal edildi", "revokeFailed": "Erişim iptal edilemedi", "close": "Kapat", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "Hedef sunucular", + "targetHostsHint": "Bu komutu doğrudan, açık bir terminal olmadan çalıştırmak istediğiniz sunucuları seçin. Aktif terminalde çalıştırmak için boş bırakın.", "clearTargetHosts": "Temizle", - "noHostsAvailable": "No hosts available", + "noHostsAvailable": "Hiç ev sahibi mevcut değil.", "searchHosts": "Host ara", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "Hedef sunucularda çalıştırın", + "executionResultTitle": "\"{{name}} \" için sonuçlar", + "executionResultDescription": "Her hedef sunucudan gelen çıktı.", "executionSuccess": "Başarılı", "executionFailed": "Başarısız", "directRunSuccess": "{{count}} sunucuda \"{{name}}\" çalıştırıldı", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "\"{{name}}\" bazı sunucularda başarısız oldu", + "reorderFailed": "Kod parçacıklarının yeniden sıralanması başarısız oldu.", + "dropToRemoveFromFolder": "Klasörden çıkmak için buraya sürükleyin.", + "shareSnippetTitle": "Paylaş \"{{name}}\"", + "shareFolderTitle": "Paylaşılan klasör \"{{name}}\"", "shareWith": "Kimlerle paylaş", "usersTab": "Kullanıcılar", "rolesTab": "Roller", "shareSearchPlaceholder": "Kullanıcı veya rol ara", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "Eşleşme bulunamadı.", + "shareWithCount": "{{count}} ile paylaş", + "shareFolderHint": "Bu klasördeki tüm kod parçacıklarını paylaşır. Daha sonra eklenen kod parçacıkları otomatik olarak paylaşılmaz.", + "shareFolderSummary": "Bu klasörde paylaşılan {{count}} kod parçacığı(ları)", "grantedBy": "Veren", "expired": "Süresi dolmuş", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogTitle": "Çalıştır \"{{name}}\"", + "variablesDialogDescription": "Bu kod parçasını çalıştırmadan önce gerekli değerleri girin.", "variablesPreviewLabel": "Önizle", "variablesConfirmButton": "Çalıştır", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Mevcut kod parçasını çalıştır", + "snippetLabel": "Alıntı", + "selectSnippet": "Bir parça seçin", + "snippetMissing": "Kod parçası bulunamadı", + "snippetRequired": "Bir parça seçin" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Etkin terminal sekmesinde çalıştırın.", "host": { "startupTitle": "Başlangıç Betiği", "quickActionsTitle": "Hızlı Eylemler", @@ -217,9 +217,9 @@ "selectSnippet": "Parçacık seç...", "addQuickAction": "Eylem Ekle", "tabTitle": "Parçacıklar", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Bu sunucuya her bağlandığında terminalde çalışır. $HOST gibi değişkenler doldurulur; girdi isteyen bir bölüm atlanır.", "none": "Yok", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Hızlı işlemi kaldır" }, "quickActions": { "running": "{{name}} çalıştırılıyor...", @@ -227,9 +227,9 @@ "failed": "{{name}} başarısız oldu", "error": "{{name}} çalıştırılamadı" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "Etkin terminal sekmesine yapıştırın.", + "targetTerminals": "Koşun", + "targetTerminalsHint": "isteğe bağlı, aksi takdirde aktif sekme", "selectAll": "Tümü", "selectNone": "Yok" } diff --git a/plugins/snippets/locales/translated/uk_UA.json b/plugins/snippets/locales/translated/uk_UA.json index d144663ae..e2493d3ba 100644 --- a/plugins/snippets/locales/translated/uk_UA.json +++ b/plugins/snippets/locales/translated/uk_UA.json @@ -1,235 +1,235 @@ { "nav": { - "snippets": "Snippets" + "snippets": "Фрагменти" }, "onboarding": { - "feature_snippets": "Snippets", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets": "Фрагменти", + "feature_snippets_desc": "Зберігайте команди, які ви часто виконуєте, та надсилайте їх у термінал одним клацанням миші." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Переглянути фрагменти", + "description": "Переглядайте власні фрагменти, нотатки та спільні фрагменти." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Створити фрагменти", + "description": "Створюйте нові фрагменти, нотатки та папки." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Редагувати фрагменти", + "description": "Перейменуйте або змініть існуючі фрагменти та папки." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Видалити фрагменти", + "description": "Видалити фрагменти та папки." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Поділитися фрагментами", + "description": "Надавати доступ до фрагментів коду та папок іншим користувачам або ролям." } }, "settings": { "foldersCollapsed": { - "label": "Collapse folders by default", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "label": "Згортати папки за замовчуванням", + "description": "Згортати кожну папку фрагментів під час відкриття панелі «Фрагменти»." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Показати команди", + "description": "Показати перший рядок команди кожного фрагмента під його назвою." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Підтвердьте перед запуском", + "description": "Запитувати перед виконанням фрагмента команди в терміналі." } }, - "cancel": "Cancel", - "loading": "Loading...", - "searchPlaceholder": "Search snippets", - "newFolder": "New folder", - "newSnippet": "New snippet", - "noFolder": "No folder", - "noSnippetsInFolder": "No snippets in this folder", - "noTerminalTabsOpen": "No terminal tab is open", - "run": "Run", - "pasteToTerminal": "Paste to terminal", - "copySuccess": "Copied to clipboard", - "importExport": "Import / Export", - "importFailed": "Failed to import snippets", - "nameLabel": "Name", - "namePlaceholder": "Snippet name", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description", - "folderLabel": "Folder", - "typeLabel": "Type", - "typeCommand": "Command", - "typeNote": "Note", - "commandLabel": "Command", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", - "createFailed": "Failed to create snippet", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "createFolderTitle": "Create folder", - "createFolderButton": "Create folder", - "folderCreateSuccess": "Folder created", - "folderCreateFailed": "Failed to create folder", - "editFolderTitle": "Edit folder", - "saveFolderButton": "Save folder", - "folderEditSuccess": "Folder updated", - "folderEditFailed": "Failed to update folder", - "folderNameLabel": "Folder name", - "folderNamePlaceholder": "Folder name", - "folderIconLabel": "Icon", - "folderDeleteSuccess": "Folder deleted", - "folderDeleteFailed": "Failed to delete folder", - "confirmRunMessage": "Run \"{{name}}\"?", - "confirmRunButton": "Run", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "cancel": "Скасувати", + "loading": "Завантаження...", + "searchPlaceholder": "Пошук фрагментів", + "newFolder": "Нова папка", + "newSnippet": "Новий фрагмент", + "noFolder": "Немає папки", + "noSnippetsInFolder": "У цій папці немає фрагментів", + "noTerminalTabsOpen": "Жодна вкладка термінала не відкрита", + "run": "Бігти", + "pasteToTerminal": "Вставити в термінал", + "copySuccess": "Скопійовано в буфер обміну", + "importExport": "Імпорт / Експорт", + "importFailed": "Не вдалося імпортувати фрагменти", + "nameLabel": "Ім'я", + "namePlaceholder": "Назва фрагмента", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Додатковий опис", + "folderLabel": "Папка", + "typeLabel": "Тип", + "typeCommand": "Команда", + "typeNote": "Примітка", + "commandLabel": "Команда", + "commandPlaceholder": "Команда для запуску, наприклад, systemctl status $HOST", + "noteLabel": "Примітка", + "notePlaceholder": "Текст для вставки в термінал", + "createSnippetTitle": "Створити фрагмент", + "createSnippetButton": "Створити фрагмент", + "createSuccess": "Фрагмент створено", + "createFailed": "Не вдалося створити фрагмент", + "editSnippetTitle": "Редагувати фрагмент", + "saveSnippetButton": "Зберегти фрагмент", + "updateSuccess": "Фрагмент оновлено", + "updateFailed": "Не вдалося оновити фрагмент", + "deleteFailed": "Не вдалося видалити фрагмент", + "createFolderTitle": "Створити папку", + "createFolderButton": "Створити папку", + "folderCreateSuccess": "Папку створено", + "folderCreateFailed": "Не вдалося створити папку", + "editFolderTitle": "Редагувати папку", + "saveFolderButton": "Зберегти папку", + "folderEditSuccess": "Папку оновлено", + "folderEditFailed": "Не вдалося оновити папку", + "folderNameLabel": "Назва папки", + "folderNamePlaceholder": "Назва папки", + "folderIconLabel": "Значок", + "folderDeleteSuccess": "Папку видалено", + "folderDeleteFailed": "Не вдалося видалити папку", + "confirmRunMessage": "Запустити \"{{name}}\"?", + "confirmRunButton": "Бігти", + "runSuccess": "Виконано \"{{name}}\" на терміналі(ах) {{count}}", + "pasteSuccess": "Вставлено \"{{name}}\" у термінал(и) {{count}}", "admin": { - "tabTitle": "Snippets", - "count": "{{count}} snippets", - "add": "Add Snippet", - "namePlaceholder": "Snippet name", - "contentPlaceholder": "Command content", - "folderPlaceholder": "Folder (optional)", - "empty": "This user has no snippets", - "deleteConfirm": "Delete snippet \"{{name}}\" belonging to {{username}}?", - "deleted": "Snippet deleted", - "deleteFailed": "Failed to delete snippet", - "requiredFields": "Snippet name and content are required", - "saved": "Snippet saved", - "saveFailed": "Failed to save snippet", - "saving": "Saving...", - "save": "Save" + "tabTitle": "Фрагменти", + "count": "{{count}} фрагменти", + "add": "Додати фрагмент", + "namePlaceholder": "Назва фрагмента", + "contentPlaceholder": "Зміст команди", + "folderPlaceholder": "Папка (необов'язково)", + "empty": "Цей користувач не має фрагментів", + "deleteConfirm": "Видалити фрагмент \"{{name}}\", що належить {{username}}?", + "deleted": "Фрагмент видалено", + "deleteFailed": "Не вдалося видалити фрагмент", + "requiredFields": "Назва та вміст фрагмента обов'язкові", + "saved": "Фрагмент збережено", + "saveFailed": "Не вдалося зберегти фрагмент", + "saving": "Збереження...", + "save": "Зберегти" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", - "settingsBehaviorTitle": "Behavior", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", - "sharedBadge": "Shared", - "copyToClipboard": "Copy to clipboard", - "copyFailed": "Failed to copy to clipboard", - "moreOptions": "More options", - "moreActions": "More actions", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", - "deleteSuccess": "Snippet deleted", - "delete": "Delete", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", - "deleteFolder": "Delete folder", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", - "folderColorLabel": "Color", - "loadFailed": "Failed to load snippets", - "importSkipExisting": "Import (skip existing)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", - "exportFailed": "Failed to export snippets", - "expandAll": "Expand all folders", - "collapseAll": "Collapse all folders", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", - "shareExpiry": "Expires", + "backToSnippets": "Повернутися до фрагментів", + "settingsTitle": "Налаштування фрагмента", + "settingsDisplayTitle": "Дисплей", + "settingsBehaviorTitle": "Поведінка", + "typeCommandHint": "Працює в активному терміналі.", + "typeNoteHint": "Вставляє в активний термінал без запуску.", + "variablesHint": "Змінні: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Мітка}", + "doubleClickToRun": "Двічі клацніть, щоб запустити", + "sharedBadge": "Спільний доступ", + "copyToClipboard": "Копіювати в буфер обміну", + "copyFailed": "Не вдалося скопіювати в буфер обміну", + "moreOptions": "Більше опцій", + "moreActions": "Більше дій", + "moveToFolder": "Перемістити до папки", + "deleteSnippet": "Видалити фрагмент", + "deleteSnippetConfirm": "Видалити фрагмент \"{{name}}\"?", + "deleteSuccess": "Фрагмент видалено", + "delete": "Видалити", + "folderActions": "Дії з папкою", + "addSnippetHere": "Новий фрагмент тут", + "deleteFolder": "Видалити папку", + "deleteFolderConfirm": "Видалити папку \"{{name}}\"? Її фрагменти перемістяться за межі папки.", + "createFolderDescription": "Згрупуйте пов'язані фрагменти разом.", + "editFolderDescription": "Змініть назву, колір або значок цієї папки.", + "folderColorLabel": "Колір", + "loadFailed": "Не вдалося завантажити фрагменти", + "importSkipExisting": "Імпорт (пропустити існуючі)", + "importOverwrite": "Імпорт (перезаписати існуюче)", + "importInvalidFile": "Цей файл не є дійсним експортом фрагментів", + "importSuccess": "Імпортовано {{imported}}, оновлено {{updated}}, пропущено {{skipped}}", + "exportSnippets": "Експортувати фрагменти", + "exportSuccess": "Експортовано фрагментів", + "exportFailed": "Не вдалося експортувати фрагменти", + "expandAll": "Розгорнути всі папки", + "collapseAll": "Згорнути всі папки", + "docsLink": "Документація", + "clearSearch": "Очистити пошук", + "noSearchResults": "Немає фрагментів, що відповідають вашому пошуковому запиту", + "emptyTitle": "Поки що немає фрагментів", + "emptyDescription": "Зберігайте команди, які ви часто виконуєте, а потім запускайте їх у терміналі одним клацанням миші.", + "shareSnippet": "Поділитися фрагментом", + "shareFolder": "Спільний доступ до папки", + "shareExpiry": "Термін дії закінчується", "shareExpiryOptions": { - "h0": "Never", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h0": "Ніколи", + "h1": "Через 1 годину", + "h24": "Через 1 день", + "h168": "Через 7 днів", + "h720": "Через 30 днів" }, - "shareButton": "Share", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", - "currentAccess": "Current access", - "notSharedYet": "Not shared with anyone yet", - "revokeAccess": "Revoke", - "revokeSuccess": "Access revoked", - "revokeFailed": "Failed to revoke access", - "close": "Close", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", - "clearTargetHosts": "Clear", - "noHostsAvailable": "No hosts available", - "searchHosts": "Search hosts", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", - "executionSuccess": "Success", - "executionFailed": "Failed", - "directRunSuccess": "Ran \"{{name}}\" on {{count}} host(s)", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", - "shareWith": "Share with", - "usersTab": "Users", - "rolesTab": "Roles", - "shareSearchPlaceholder": "Search users or roles", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", - "grantedBy": "Granted by", - "expired": "Expired", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", - "variablesPreviewLabel": "Preview", - "variablesConfirmButton": "Run", + "shareButton": "Поділитися", + "shareSuccess": "Спільно з {{count}}", + "shareFailed": "Не вдалося поділитися", + "shareLoadFailed": "Не вдалося завантажити деталі спільного доступу", + "currentAccess": "Поточний доступ", + "notSharedYet": "Ще ні з ким не поділилися", + "revokeAccess": "Скасувати", + "revokeSuccess": "Доступ скасовано", + "revokeFailed": "Не вдалося скасувати доступ", + "close": "Закрити", + "targetHostsLabel": "Цільові хости", + "targetHostsHint": "Виберіть хости, на яких потрібно виконати цю команду безпосередньо, без відкритого терміналу. Залиште поле порожнім, щоб запустити її в активному терміналі.", + "clearTargetHosts": "Очистити", + "noHostsAvailable": "Немає доступних хостів", + "searchHosts": "Пошук хостів", + "runOnTargets": "Запускати на цільових хостах", + "executionResultTitle": "Результати для запиту «{{name}}»", + "executionResultDescription": "Вихідні дані з кожного цільового хоста.", + "executionSuccess": "Успіх", + "executionFailed": "Не вдалося", + "directRunSuccess": "Виконано \"{{name}}\" на хості(ах) {{count}}", + "directRunPartialFail": "«{{name}}» не вдалося виконати на деяких хостах", + "reorderFailed": "Не вдалося змінити порядок фрагментів", + "dropToRemoveFromFolder": "Перетягніть сюди, щоб вийти за межі папки", + "shareSnippetTitle": "Поділитися «{{name}}»", + "shareFolderTitle": "Спільний доступ до папки «{{name}}»", + "shareWith": "Поділитися з", + "usersTab": "Користувачі", + "rolesTab": "Ролі", + "shareSearchPlaceholder": "Пошук користувачів або ролей", + "shareNoMatches": "Немає збігів", + "shareWithCount": "Поділитися з {{count}}", + "shareFolderHint": "Надає доступ до кожного фрагмента в цій папці. Фрагменти, додані пізніше, не надсилаються автоматично.", + "shareFolderSummary": "Спільні фрагменти {{count}} у цій папці", + "grantedBy": "Надано", + "expired": "Термін дії минув", + "variablesDialogTitle": "Виконати \"{{name}}\"", + "variablesDialogDescription": "Заповніть значення, необхідні цьому фрагменту, перш ніж запускати його.", + "variablesPreviewLabel": "Попередній перегляд", + "variablesConfirmButton": "Бігти", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Запустити існуючий фрагмент коду", + "snippetLabel": "Фрагмент", + "selectSnippet": "Виберіть фрагмент", + "snippetMissing": "фрагмент не знайдено", + "snippetRequired": "Виберіть фрагмент" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Запустити в активній вкладці терміналу", "host": { - "startupTitle": "Startup Snippet", - "quickActionsTitle": "Quick Actions", - "quickActionsDescription": "Quick actions appear as buttons in the Host Metrics toolbar for one-click command execution.", - "noQuickActions": "No quick actions yet.", - "buttonLabel": "Button label", - "selectSnippet": "Select snippet...", - "addQuickAction": "Add Action", - "tabTitle": "Snippets", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", - "none": "None", - "removeQuickAction": "Remove quick action" + "startupTitle": "Фрагмент запуску", + "quickActionsTitle": "Швидкі дії", + "quickActionsDescription": "Швидкі дії відображаються як кнопки на панелі інструментів «Метрики хоста» для виконання команд одним клацанням миші.", + "noQuickActions": "Поки що жодних швидких дій.", + "buttonLabel": "Мітка кнопки", + "selectSnippet": "Вибрати фрагмент...", + "addQuickAction": "Додати дію", + "tabTitle": "Фрагменти", + "startupDescription": "Виконується в терміналі кожного разу, коли підключається до цього хоста. Змінні типу $HOST заповнюються; фрагмент коду, який запитує введення, пропускається.", + "none": "Жоден", + "removeQuickAction": "Видалити швидку дію" }, "quickActions": { - "running": "Executing {{name}}...", - "succeeded": "{{name}} completed successfully", - "failed": "{{name}} failed", - "error": "Failed to execute {{name}}" + "running": "Виконання {{name}}...", + "succeeded": "{{name}} успішно завершено", + "failed": "{{name}} не вдалося", + "error": "Не вдалося виконати {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", - "selectAll": "All", - "selectNone": "None" + "paletteHintPaste": "Вставити в активну вкладку терміналу", + "targetTerminals": "Оббіг", + "targetTerminalsHint": "необов'язково, інакше активна вкладка", + "selectAll": "Усі", + "selectNone": "Жоден" } diff --git a/plugins/snippets/locales/translated/vi_VN.json b/plugins/snippets/locales/translated/vi_VN.json index 96b609066..1801ea76a 100644 --- a/plugins/snippets/locales/translated/vi_VN.json +++ b/plugins/snippets/locales/translated/vi_VN.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "Đoạn mã", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "Lưu lại các lệnh bạn thường xuyên sử dụng và gửi chúng đến cửa sổ dòng lệnh chỉ với một cú nhấp chuột." }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "Xem đoạn trích", + "description": "Xem các đoạn trích, ghi chú và đoạn trích được chia sẻ của riêng bạn." }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "Tạo đoạn mã", + "description": "Tạo đoạn văn bản, ghi chú và thư mục mới." }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "Chỉnh sửa đoạn mã", + "description": "Đổi tên hoặc thay đổi nội dung các đoạn mã và thư mục hiện có." }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "Xóa đoạn mã", + "description": "Xóa các đoạn mã và thư mục." }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "Chia sẻ đoạn trích", + "description": "Chia sẻ các đoạn mã và thư mục với người dùng hoặc vai trò khác." } }, "settings": { "foldersCollapsed": { "label": "Mặc định thu gọn thư mục", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "Khi mở bảng Điều khiển Đoạn mã, mỗi thư mục đoạn mã sẽ được thu gọn lại." }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "Hiển thị lệnh", + "description": "Hiển thị dòng đầu tiên của lệnh trong mỗi đoạn mã, ngay bên dưới tên của nó." }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "Xác nhận trước khi chạy.", + "description": "Hãy hỏi trước khi chạy một đoạn mã lệnh trong cửa sổ dòng lệnh." } }, "cancel": "Hủy", "loading": "Đang tải...", "searchPlaceholder": "Tìm kiếm snippet", "newFolder": "Thư mục mới", - "newSnippet": "New snippet", + "newSnippet": "Đoạn mã mới", "noFolder": "Không có thư mục", "noSnippetsInFolder": "Không có snippet nào trong thư mục này", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "Không có tab terminal nào đang mở.", "run": "Chạy", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "Dán vào cửa sổ terminal", "copySuccess": "Đã sao chép vào bộ nhớ tạm", "importExport": "Nhập / Xuất", "importFailed": "Nhập đoạn mã thất bại", @@ -62,37 +62,37 @@ "folderLabel": "Thư mục", "typeLabel": "Loại", "typeCommand": "Lệnh", - "typeNote": "Note", + "typeNote": "Ghi chú", "commandLabel": "Lệnh", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "Lệnh cần chạy, ví dụ: systemctl status $HOST", + "noteLabel": "Ghi chú", + "notePlaceholder": "Văn bản cần dán vào cửa sổ terminal", + "createSnippetTitle": "Tạo đoạn mã", + "createSnippetButton": "Tạo đoạn mã", + "createSuccess": "Đoạn mã được tạo", "createFailed": "Tạo snippet thất bại", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "Chỉnh sửa đoạn mã", + "saveSnippetButton": "Lưu đoạn mã", + "updateSuccess": "Đoạn mã đã được cập nhật", "updateFailed": "Cập nhật snippet thất bại", "deleteFailed": "Xóa snippet thất bại", "createFolderTitle": "Tạo thư mục", "createFolderButton": "Tạo thư mục", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "Thư mục đã được tạo", "folderCreateFailed": "Tạo thư mục thất bại", "editFolderTitle": "Sửa thư mục", "saveFolderButton": "Lưu thư mục", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "Thư mục đã được cập nhật", "folderEditFailed": "Cập nhật thư mục thất bại", "folderNameLabel": "Tên thư mục", "folderNamePlaceholder": "Tên thư mục", "folderIconLabel": "Biểu tượng", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "Thư mục đã bị xóa", "folderDeleteFailed": "Xóa thư mục thất bại", "confirmRunMessage": "Chạy \"{{name}}\"?", "confirmRunButton": "Chạy", "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "pasteSuccess": "Đã dán \"{{name}}\" vào {{count}} thiết bị đầu cuối", "admin": { "tabTitle": "Đoạn mã", "count": "{{count}} đoạn mã", @@ -110,104 +110,104 @@ "saving": "Đang lưu...", "save": "Lưu" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "Quay lại các đoạn trích", + "settingsTitle": "Cài đặt đoạn mã", + "settingsDisplayTitle": "Trưng bày", "settingsBehaviorTitle": "Hành vi", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "Chạy trong cửa sổ dòng lệnh đang hoạt động.", + "typeNoteHint": "Sao chép vào cửa sổ terminal đang hoạt động mà không chạy.", + "variablesHint": "Biến: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", + "doubleClickToRun": "Nhấp đúp để chạy", "sharedBadge": "Đã chia sẻ", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "Sao chép vào clipboard", "copyFailed": "Không thể sao chép vào bảng tạm", - "moreOptions": "More options", + "moreOptions": "Nhiều tùy chọn hơn", "moreActions": "Thao tác khác", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "Di chuyển vào thư mục", + "deleteSnippet": "Xóa đoạn mã", + "deleteSnippetConfirm": "Xóa đoạn mã \"{{name}}\"?", "deleteSuccess": "Đã xóa đoạn mã", "delete": "Xóa", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "Thao tác thư mục", + "addSnippetHere": "Đoạn mã mới ở đây", "deleteFolder": "Xóa thư mục", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "Xóa thư mục \"{{name}}\"? Các đoạn mã của nó sẽ được chuyển ra khỏi thư mục.", + "createFolderDescription": "Gom các đoạn văn bản có liên quan lại với nhau.", + "editFolderDescription": "Thay đổi tên, màu sắc hoặc biểu tượng của thư mục này.", "folderColorLabel": "Màu sắc", - "loadFailed": "Failed to load snippets", + "loadFailed": "Không thể tải đoạn mã.", "importSkipExisting": "Nhập (bỏ qua mục đã có)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "Nhập khẩu (ghi đè lên nội dung hiện có)", + "importInvalidFile": "Tệp đó không phải là tệp xuất đoạn mã hợp lệ.", + "importSuccess": "Đã nhập {{imported}}, đã cập nhật {{updated}}, đã bỏ qua {{skipped}}", + "exportSnippets": "Xuất đoạn mã", + "exportSuccess": "Các đoạn mã đã xuất", "exportFailed": "Xuất đoạn mã thất bại", "expandAll": "Mở rộng tất cả thư mục", "collapseAll": "Thu gọn tất cả thư mục", - "docsLink": "Documentation", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "docsLink": "Tài liệu", + "clearSearch": "Xóa tìm kiếm", + "noSearchResults": "Không có kết quả nào phù hợp với tìm kiếm của bạn", + "emptyTitle": "Chưa có đoạn trích nào.", + "emptyDescription": "Lưu lại các lệnh bạn thường xuyên sử dụng, sau đó chạy chúng trong cửa sổ dòng lệnh chỉ với một cú nhấp chuột.", + "shareSnippet": "Chia sẻ đoạn trích", + "shareFolder": "Chia sẻ thư mục", "shareExpiry": "Hết hạn", "shareExpiryOptions": { "h0": "Chưa bao giờ", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "Trong 1 giờ", + "h24": "Trong 1 ngày", + "h168": "Trong 7 ngày", + "h720": "Trong 30 ngày" }, "shareButton": "Chia sẻ", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "Đã chia sẻ với {{count}}", + "shareFailed": "Không thể chia sẻ", + "shareLoadFailed": "Không thể tải thông tin chia sẻ.", "currentAccess": "Truy cập hiện tại", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "Chưa chia sẻ với ai cả.", "revokeAccess": "Thu hồi", "revokeSuccess": "Đã thu hồi quyền truy cập", "revokeFailed": "Thu hồi quyền truy cập thất bại", "close": "Đóng", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "Mục tiêu chủ nhà", + "targetHostsHint": "Chọn các máy chủ để chạy lệnh này trực tiếp, không cần mở cửa sổ terminal. Để trống nếu muốn chạy lệnh trong cửa sổ terminal đang hoạt động.", "clearTargetHosts": "Xóa", - "noHostsAvailable": "No hosts available", + "noHostsAvailable": "Hiện không có máy chủ nào khả dụng", "searchHosts": "Tìm kiếm máy chủ", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "Chạy trên máy chủ mục tiêu", + "executionResultTitle": "Kết quả cho \"{{name}}\"", + "executionResultDescription": "Kết quả đầu ra từ mỗi máy chủ mục tiêu.", "executionSuccess": "Thành công", "executionFailed": "Thất bại", "directRunSuccess": "Đã chạy \"{{name}}\" trên {{count}} máy chủ", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "\"{{name}}\" bị lỗi trên một số máy chủ", + "reorderFailed": "Không thể sắp xếp lại các đoạn mã.", + "dropToRemoveFromFolder": "Kéo thả vào đây để di chuyển ra khỏi thư mục.", + "shareSnippetTitle": "Chia sẻ \"{{name}}\"", + "shareFolderTitle": "Chia sẻ thư mục \"{{name}}\"", "shareWith": "Chia sẻ với", "usersTab": "Người dùng", "rolesTab": "Vai trò", "shareSearchPlaceholder": "Tìm kiếm người dùng hoặc vai trò", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "Không có kết quả phù hợp", + "shareWithCount": "Chia sẻ với {{count}}", + "shareFolderHint": "Chia sẻ tất cả các đoạn mã trong thư mục này. Các đoạn mã được thêm vào sau sẽ không được chia sẻ tự động.", + "shareFolderSummary": "Đã chia sẻ {{count}} đoạn mã trong thư mục này", "grantedBy": "Được cấp bởi", "expired": "Đã hết hạn", "variablesDialogTitle": "Chạy \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogDescription": "Hãy điền đầy đủ các giá trị cần thiết cho đoạn mã này trước khi chạy.", "variablesPreviewLabel": "Xem trước", "variablesConfirmButton": "Chạy", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "Chạy đoạn mã hiện có", + "snippetLabel": "Đoạn trích", + "selectSnippet": "Chọn một đoạn trích", + "snippetMissing": "Không tìm thấy đoạn mã.", + "snippetRequired": "Chọn một đoạn trích" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "Chạy trong tab cửa sổ terminal đang hoạt động", "host": { "startupTitle": "Đoạn mã khởi động", "quickActionsTitle": "Hành động nhanh", @@ -217,9 +217,9 @@ "selectSnippet": "Chọn đoạn mã...", "addQuickAction": "Thêm hành động", "tabTitle": "Đoạn mã", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "Đoạn mã này chạy trong terminal mỗi khi kết nối với máy chủ này. Các biến như $HOST được điền vào; đoạn mã yêu cầu nhập liệu sẽ bị bỏ qua.", "none": "Không chọn", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "Loại bỏ thao tác nhanh" }, "quickActions": { "running": "Đang thực thi {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} thất bại", "error": "Thực thi {{name}} thất bại" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "Dán vào tab cửa sổ terminal đang hoạt động.", + "targetTerminals": "Chạy vào", + "targetTerminalsHint": "tùy chọn, nếu không thì tab đang hoạt động", "selectAll": "Tất cả", "selectNone": "Không chọn" } diff --git a/plugins/snippets/locales/translated/zh_CN.json b/plugins/snippets/locales/translated/zh_CN.json index f601f0829..bb099e102 100644 --- a/plugins/snippets/locales/translated/zh_CN.json +++ b/plugins/snippets/locales/translated/zh_CN.json @@ -8,50 +8,50 @@ }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "查看摘要", + "description": "查看您自己的代码片段、笔记和共享的代码片段。" }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "创建代码片段", + "description": "创建新的代码片段、笔记和文件夹。" }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "编辑片段", + "description": "重命名或更改现有代码片段和文件夹。" }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "删除片段", + "description": "删除代码片段和文件夹。" }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "分享片段", + "description": "与其他用户或角色共享代码片段和文件夹。" } }, "settings": { "foldersCollapsed": { "label": "默认折叠文件夹", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "打开代码片段面板时,每个代码片段文件夹都默认折叠。" }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "显示命令", + "description": "在代码片段名称下方显示每个代码片段命令的第一行。" }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "运行前请确认", + "description": "在终端运行命令片段之前,请先询问。" } }, "cancel": "取消", "loading": "加载中...", "searchPlaceholder": "搜索代码片段", "newFolder": "新建文件夹", - "newSnippet": "New snippet", + "newSnippet": "新片段", "noFolder": "无文件夹", "noSnippetsInFolder": "此文件夹中没有代码片段", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "未打开任何终端标签页", "run": "运行", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "粘贴到终端", "copySuccess": "已复制到剪贴板", "importExport": "导入 / 导出", "importFailed": "导入代码片段失败", @@ -62,37 +62,37 @@ "folderLabel": "文件夹", "typeLabel": "类型", "typeCommand": "命令", - "typeNote": "Note", + "typeNote": "笔记", "commandLabel": "命令", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "要运行的命令,例如 systemctl status $HOST", + "noteLabel": "笔记", + "notePlaceholder": "要粘贴到终端中的文本", + "createSnippetTitle": "创建代码片段", + "createSnippetButton": "创建代码片段", + "createSuccess": "已创建代码片段", "createFailed": "创建代码片段失败", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "编辑片段", + "saveSnippetButton": "保存代码片段", + "updateSuccess": "代码片段已更新", "updateFailed": "更新代码片段失败", "deleteFailed": "删除代码片段失败", "createFolderTitle": "创建文件夹", "createFolderButton": "创建文件夹", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "已创建文件夹", "folderCreateFailed": "创建文件夹失败", "editFolderTitle": "编辑文件夹", "saveFolderButton": "保存文件夹", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "文件夹已更新", "folderEditFailed": "更新文件夹失败", "folderNameLabel": "文件夹名称", "folderNamePlaceholder": "文件夹名称", "folderIconLabel": "图标", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "文件夹已删除", "folderDeleteFailed": "删除文件夹失败", "confirmRunMessage": "运行“{{name}}”?", "confirmRunButton": "运行", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "在 {{count}} 终端上运行“{{name}}”", + "pasteSuccess": "已将“{{name}}”粘贴到 {{count}} 终端中", "admin": { "tabTitle": "代码片段", "count": "{{count}} 个代码片段", @@ -110,101 +110,101 @@ "saving": "保存中...", "save": "保存" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "返回片段", + "settingsTitle": "代码片段设置", + "settingsDisplayTitle": "展示", "settingsBehaviorTitle": "交互", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", + "typeCommandHint": "在当前终端中运行。", + "typeNoteHint": "无需运行即可粘贴到活动终端中。", "variablesHint": "变量:$HOST、$USER、$PORT、$NAME、${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "doubleClickToRun": "双击运行", "sharedBadge": "已共享", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "复制到剪贴板", "copyFailed": "复制到剪贴板失败", - "moreOptions": "More options", + "moreOptions": "更多选项", "moreActions": "更多操作", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "移至文件夹", + "deleteSnippet": "删除片段", + "deleteSnippetConfirm": "删除代码片段“{{name}}”?", "deleteSuccess": "代码片段已删除", "delete": "删除", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "文件夹操作", + "addSnippetHere": "这里新增了一段代码片段。", "deleteFolder": "删除文件夹", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "删除文件夹“{{name}}”?它的代码片段会移出该文件夹。", + "createFolderDescription": "将相关的片段归类在一起。", + "editFolderDescription": "更改此文件夹的名称、颜色或图标。", "folderColorLabel": "颜色", - "loadFailed": "Failed to load snippets", + "loadFailed": "代码片段加载失败", "importSkipExisting": "导入(跳过现有)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "导入(覆盖现有内容)", + "importInvalidFile": "该文件不是有效的代码片段导出文件。", + "importSuccess": "已导入 {{imported}},已更新 {{updated}},已跳过 {{skipped}}", + "exportSnippets": "导出代码片段", + "exportSuccess": "导出的代码片段", "exportFailed": "导出代码片段失败", "expandAll": "展开所有文件夹", "collapseAll": "收起所有文件夹", "docsLink": "文档", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", + "clearSearch": "清除搜索", + "noSearchResults": "没有找到与您的搜索匹配的摘要", "emptyTitle": "目前还没有代码片段", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "emptyDescription": "保存您经常运行的命令,然后一键在终端中运行它们。", + "shareSnippet": "分享片段", + "shareFolder": "共享文件夹", "shareExpiry": "过期时间", "shareExpiryOptions": { "h0": "从未", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "1小时内", + "h24": "1天", + "h168": "7天后", + "h720": "30天后" }, "shareButton": "共享", - "shareSuccess": "Shared with {{count}}", + "shareSuccess": "与 {{count}} 共享", "shareFailed": "共享失败", - "shareLoadFailed": "Failed to load sharing details", + "shareLoadFailed": "共享详情加载失败", "currentAccess": "当前访问权限", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "尚未与任何人分享", "revokeAccess": "吊销", "revokeSuccess": "访问权限已撤销", "revokeFailed": "撤销访问权限失败", "close": "关闭", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "目标主机", + "targetHostsHint": "选择要直接运行此命令的主机,无需打开终端。留空则在活动终端中运行。", "clearTargetHosts": "清除", "noHostsAvailable": "暂无可用主机", "searchHosts": "搜索主机", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "在目标主机上运行", + "executionResultTitle": "搜索“{{name}}”的结果", + "executionResultDescription": "来自每个目标主机的输出。", "executionSuccess": "成功", "executionFailed": "失败", "directRunSuccess": "已在 {{count}} 台主机上运行 \"{{name}}\"", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", + "directRunPartialFail": "在某些主机上,“{{name}}” 失败。", "reorderFailed": "重新排序代码片段失败", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "dropToRemoveFromFolder": "从这里拖出文件夹", + "shareSnippetTitle": "分享“{{name}}", + "shareFolderTitle": "共享文件夹“{{name}}", "shareWith": "共享给", "usersTab": "用户", "rolesTab": "角色", "shareSearchPlaceholder": "搜索用户或角色", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "没有匹配项", + "shareWithCount": "分享给 {{count}}", + "shareFolderHint": "共享此文件夹中的所有代码片段。之后添加的代码片段不会自动共享。", + "shareFolderSummary": "此文件夹中共享的 {{count}} 代码片段", "grantedBy": "授权者", "expired": "已过期", "variablesDialogTitle": "运行“{{name}}”", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogDescription": "运行此代码片段之前,请填写所需的值。", "variablesPreviewLabel": "预览", "variablesConfirmButton": "运行", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", + "runSnippet": "运行现有代码片段", + "snippetLabel": "片段", "selectSnippet": "选择代码片段", - "snippetMissing": "snippet not found", + "snippetMissing": "未找到代码片段", "snippetRequired": "选择代码片段" }, "paletteHintRun": "在活动终端标签页中运行", @@ -217,9 +217,9 @@ "selectSnippet": "选择代码片段……", "addQuickAction": "添加操作", "tabTitle": "代码片段", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "每次连接到此主机时,都会在终端中运行。诸如 $HOST 之类的变量会被填充;需要输入信息的代码片段会被跳过。", "none": "全不选", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "快速行动" }, "quickActions": { "running": "正在执行 {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} 执行失败", "error": "执行 {{name}} 失败" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "粘贴到当前终端选项卡中", + "targetTerminals": "跑进", + "targetTerminalsHint": "可选,否则为活动选项卡", "selectAll": "全部", "selectNone": "全不选" } diff --git a/plugins/snippets/locales/translated/zh_TW.json b/plugins/snippets/locales/translated/zh_TW.json index e18beaea8..478ed6695 100644 --- a/plugins/snippets/locales/translated/zh_TW.json +++ b/plugins/snippets/locales/translated/zh_TW.json @@ -4,54 +4,54 @@ }, "onboarding": { "feature_snippets": "指令片段", - "feature_snippets_desc": "Save commands you run often and send them to a terminal in one click." + "feature_snippets_desc": "儲存您經常執行的命令,並一鍵將其發送到終端。" }, "permissions": { "view": { - "title": "View snippets", - "description": "See your own snippets, notes and shared snippets." + "title": "查看摘要", + "description": "查看您自己的程式碼片段、筆記和分享的程式碼片段。" }, "create": { - "title": "Create snippets", - "description": "Create new snippets, notes and folders." + "title": "建立程式碼片段", + "description": "建立新的程式碼片段、筆記和資料夾。" }, "edit": { - "title": "Edit snippets", - "description": "Rename or change existing snippets and folders." + "title": "編輯片段", + "description": "重新命名或更改現有程式碼片段和資料夾。" }, "delete": { - "title": "Delete snippets", - "description": "Delete snippets and folders." + "title": "刪除片段", + "description": "刪除程式碼片段和資料夾。" }, "share": { - "title": "Share snippets", - "description": "Share snippets and folders with other users or roles." + "title": "分享片段", + "description": "與其他使用者或角色共用程式碼片段和資料夾。" } }, "settings": { "foldersCollapsed": { "label": "預設收合資料夾", - "description": "Start each snippet folder collapsed when you open the Snippets panel." + "description": "打開程式碼片段面板時,每個程式碼片段資料夾預設為折疊狀態。" }, "showCommands": { - "label": "Show commands", - "description": "Show the first line of each snippet's command under its name." + "label": "顯示命令", + "description": "在程式碼片段名稱下方顯示每個程式碼片段指令的第一行。" }, "confirmExecution": { - "label": "Confirm before running", - "description": "Ask before a command snippet runs in a terminal." + "label": "運行前請確認", + "description": "在終端機運行命令片段之前,請先詢問。" } }, "cancel": "取消", "loading": "載入中...", "searchPlaceholder": "搜尋指令片段", "newFolder": "新資料夾", - "newSnippet": "New snippet", + "newSnippet": "新片段", "noFolder": "無資料夾", "noSnippetsInFolder": "此資料夾中無指令片段", - "noTerminalTabsOpen": "No terminal tab is open", + "noTerminalTabsOpen": "未開啟任何終端標籤頁", "run": "執行", - "pasteToTerminal": "Paste to terminal", + "pasteToTerminal": "貼上到終端", "copySuccess": "已複製到剪貼簿", "importExport": "匯入 / 匯出", "importFailed": "匯入片段失敗", @@ -62,37 +62,37 @@ "folderLabel": "資料夾", "typeLabel": "類型", "typeCommand": "指令", - "typeNote": "Note", + "typeNote": "筆記", "commandLabel": "指令", - "commandPlaceholder": "Command to run, e.g. systemctl status $HOST", - "noteLabel": "Note", - "notePlaceholder": "Text to paste into the terminal", - "createSnippetTitle": "Create snippet", - "createSnippetButton": "Create snippet", - "createSuccess": "Snippet created", + "commandPlaceholder": "要執行的命令,例如 systemctl status $HOST", + "noteLabel": "筆記", + "notePlaceholder": "要貼上到終端中的文本", + "createSnippetTitle": "建立程式碼片段", + "createSnippetButton": "建立程式碼片段", + "createSuccess": "已建立程式碼片段", "createFailed": "建立指令片段失敗", - "editSnippetTitle": "Edit snippet", - "saveSnippetButton": "Save snippet", - "updateSuccess": "Snippet updated", + "editSnippetTitle": "編輯片段", + "saveSnippetButton": "儲存程式碼片段", + "updateSuccess": "程式碼片段已更新", "updateFailed": "更新指令片段失敗", "deleteFailed": "刪除指令片段失敗", "createFolderTitle": "建立資料夾", "createFolderButton": "建立資料夾", - "folderCreateSuccess": "Folder created", + "folderCreateSuccess": "已建立資料夾", "folderCreateFailed": "建立資料夾失敗", "editFolderTitle": "編輯資料夾", "saveFolderButton": "儲存資料夾", - "folderEditSuccess": "Folder updated", + "folderEditSuccess": "資料夾已更新", "folderEditFailed": "更新資料夾失敗", "folderNameLabel": "資料夾名稱", "folderNamePlaceholder": "資料夾名稱", "folderIconLabel": "圖示", - "folderDeleteSuccess": "Folder deleted", + "folderDeleteSuccess": "資料夾已刪除", "folderDeleteFailed": "刪除資料夾失敗", "confirmRunMessage": "執行 \"{{name}}\"?", "confirmRunButton": "執行", - "runSuccess": "Ran \"{{name}}\" on {{count}} terminal(s)", - "pasteSuccess": "Pasted \"{{name}}\" into {{count}} terminal(s)", + "runSuccess": "在 {{count}} 終端機上執行“{{name}}”", + "pasteSuccess": "已將「{{name}}」貼到 {{count}} 終端機中", "admin": { "tabTitle": "指令片段", "count": "{{count}} 個片段", @@ -110,104 +110,104 @@ "saving": "儲存中...", "save": "儲存" }, - "backToSnippets": "Back to snippets", - "settingsTitle": "Snippet settings", - "settingsDisplayTitle": "Display", + "backToSnippets": "返回片段", + "settingsTitle": "程式碼片段設定", + "settingsDisplayTitle": "展示", "settingsBehaviorTitle": "行為", - "typeCommandHint": "Runs in the active terminal.", - "typeNoteHint": "Pastes into the active terminal without running.", - "variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Label}", - "doubleClickToRun": "Double click to run", + "typeCommandHint": "在當前終端中運行。", + "typeNoteHint": "無需運行即可貼上到活動終端中。", + "variablesHint": "變數: $HOST、 $USER、 $PORT、 $NAME、${INPUT_1:Label}", + "doubleClickToRun": "按兩下運行", "sharedBadge": "已分享", - "copyToClipboard": "Copy to clipboard", + "copyToClipboard": "複製到剪貼簿", "copyFailed": "複製到剪貼簿失敗", - "moreOptions": "More options", + "moreOptions": "更多選項", "moreActions": "更多動作", - "moveToFolder": "Move to folder", - "deleteSnippet": "Delete snippet", - "deleteSnippetConfirm": "Delete snippet \"{{name}}\"?", + "moveToFolder": "移至資料夾", + "deleteSnippet": "刪除片段", + "deleteSnippetConfirm": "刪除程式碼片段“{{name}}”?", "deleteSuccess": "片段已刪除", "delete": "刪除", - "folderActions": "Folder actions", - "addSnippetHere": "New snippet here", + "folderActions": "資料夾操作", + "addSnippetHere": "這裡新增了一段程式碼片段。", "deleteFolder": "刪除資料夾", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? Its snippets move out of the folder.", - "createFolderDescription": "Group related snippets together.", - "editFolderDescription": "Change this folder's name, color or icon.", + "deleteFolderConfirm": "刪除資料夾“{{name}}”?它的程式碼片段會移出該資料夾。", + "createFolderDescription": "將相關的片段歸類在一起。", + "editFolderDescription": "變更此資料夾的名稱、顏色或圖示。", "folderColorLabel": "顏色", - "loadFailed": "Failed to load snippets", + "loadFailed": "程式碼片段載入失敗", "importSkipExisting": "匯入(跳過已存在項目)", - "importOverwrite": "Import (overwrite existing)", - "importInvalidFile": "That file is not a valid snippets export", - "importSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}", - "exportSnippets": "Export snippets", - "exportSuccess": "Snippets exported", + "importOverwrite": "導入(覆蓋現有內容)", + "importInvalidFile": "該檔案不是有效的程式碼片段匯出檔案。", + "importSuccess": "已匯入 {{imported}},已更新 {{updated}},已跳過 {{skipped}}", + "exportSnippets": "匯出程式碼片段", + "exportSuccess": "導出的程式碼片段", "exportFailed": "匯出片段失敗", "expandAll": "展開所有資料夾", "collapseAll": "收合所有資料夾", "docsLink": "說明文件", - "clearSearch": "Clear search", - "noSearchResults": "No snippets match your search", - "emptyTitle": "No snippets yet", - "emptyDescription": "Save commands you run often, then run them in a terminal with one click.", - "shareSnippet": "Share snippet", - "shareFolder": "Share folder", + "clearSearch": "清除搜尋", + "noSearchResults": "沒有找到與您的搜尋相符的摘要", + "emptyTitle": "目前還沒有片段", + "emptyDescription": "儲存您經常執行的命令,然後一鍵在終端機中執行它們。", + "shareSnippet": "分享片段", + "shareFolder": "共享資料夾", "shareExpiry": "到期", "shareExpiryOptions": { "h0": "從未", - "h1": "In 1 hour", - "h24": "In 1 day", - "h168": "In 7 days", - "h720": "In 30 days" + "h1": "1小時內", + "h24": "1天", + "h168": "7天后", + "h720": "30天后" }, "shareButton": "分享", - "shareSuccess": "Shared with {{count}}", - "shareFailed": "Failed to share", - "shareLoadFailed": "Failed to load sharing details", + "shareSuccess": "與 {{count}} 分享", + "shareFailed": "分享失敗", + "shareLoadFailed": "共享詳情加載失敗", "currentAccess": "目前存取權限", - "notSharedYet": "Not shared with anyone yet", + "notSharedYet": "尚未與任何人分享", "revokeAccess": "撤銷", "revokeSuccess": "已撤銷存取權限", "revokeFailed": "撤銷存取失敗", "close": "關閉", - "targetHostsLabel": "Target hosts", - "targetHostsHint": "Pick hosts to run this command on directly, without a terminal open. Leave empty to run it in the active terminal.", + "targetHostsLabel": "目標主機", + "targetHostsHint": "選擇要直接執行此命令的主機,無需開啟終端機。留空則在活動終端機中運作。", "clearTargetHosts": "清除", "noHostsAvailable": "暫無可用主機", "searchHosts": "搜尋主機", - "runOnTargets": "Run on target hosts", - "executionResultTitle": "Results for \"{{name}}\"", - "executionResultDescription": "Output from each target host.", + "runOnTargets": "在目標主機上執行", + "executionResultTitle": "搜尋「{{name}}」的結果", + "executionResultDescription": "來自每個目標主機的輸出。", "executionSuccess": "成功", "executionFailed": "失敗", "directRunSuccess": "已在 {{count}} 台主機上執行「{{name}}」", - "directRunPartialFail": "\"{{name}}\" failed on some hosts", - "reorderFailed": "Failed to reorder snippets", - "dropToRemoveFromFolder": "Drop here to move out of the folder", - "shareSnippetTitle": "Share \"{{name}}\"", - "shareFolderTitle": "Share folder \"{{name}}\"", + "directRunPartialFail": "在某些主機上,“{{name}}” 失敗。", + "reorderFailed": "重新排序程式碼片段失敗", + "dropToRemoveFromFolder": "從這裡拖出資料夾", + "shareSnippetTitle": "分享「{{name}}", + "shareFolderTitle": "共用資料夾「{{name}}", "shareWith": "分享對象", "usersTab": "使用者", "rolesTab": "角色", "shareSearchPlaceholder": "搜尋使用者或角色", - "shareNoMatches": "No matches", - "shareWithCount": "Share with {{count}}", - "shareFolderHint": "Shares every snippet in this folder. Snippets added later are not shared automatically.", - "shareFolderSummary": "Shared {{count}} snippet(s) in this folder", + "shareNoMatches": "沒有匹配項", + "shareWithCount": "分享給 {{count}}", + "shareFolderHint": "共用此資料夾中的所有程式碼片段。之後新增的程式碼片段不會自動共用。", + "shareFolderSummary": "此資料夾中共用的 {{count}} 程式碼片段", "grantedBy": "授予者", "expired": "已過期", - "variablesDialogTitle": "Run \"{{name}}\"", - "variablesDialogDescription": "Fill in the values this snippet needs before running it.", + "variablesDialogTitle": "運行“{{name}}", + "variablesDialogDescription": "在運行此程式碼片段之前,請填寫所需的值。", "variablesPreviewLabel": "預覽", "variablesConfirmButton": "執行", "keybindings": { - "runSnippet": "Run existing snippet", - "snippetLabel": "Snippet", - "selectSnippet": "Select a snippet", - "snippetMissing": "snippet not found", - "snippetRequired": "Select a snippet" + "runSnippet": "運行現有程式碼片段", + "snippetLabel": "片段", + "selectSnippet": "選擇一段文字", + "snippetMissing": "未找到程式碼片段", + "snippetRequired": "選擇一段文字" }, - "paletteHintRun": "Run in the active terminal tab", + "paletteHintRun": "在活動終端選項卡中運行", "host": { "startupTitle": "啟動程式碼片段", "quickActionsTitle": "快速操作", @@ -217,9 +217,9 @@ "selectSnippet": "選取程式碼片段...", "addQuickAction": "新增動作", "tabTitle": "指令片段", - "startupDescription": "Runs in the terminal each time it connects to this host. Variables like $HOST are filled in; a snippet that asks for inputs is skipped.", + "startupDescription": "每次連接到此主機時,都會在終端機中執行。諸如 $HOST 之類的變數會被填入;需要輸入資訊的程式碼片段會被跳過。", "none": "取消全選", - "removeQuickAction": "Remove quick action" + "removeQuickAction": "快速行動" }, "quickActions": { "running": "正在執行 {{name}}...", @@ -227,9 +227,9 @@ "failed": "{{name}} 失敗", "error": "無法執行 {{name}}" }, - "paletteHintPaste": "Paste in the active terminal tab", - "targetTerminals": "Run in", - "targetTerminalsHint": "optional, else the active tab", + "paletteHintPaste": "貼上到目前終端選項卡中", + "targetTerminals": "跑進", + "targetTerminalsHint": "可選,否則為活動選項卡", "selectAll": "全選", "selectNone": "取消全選" } diff --git a/plugins/ssh-terminal/locales/translated/bn_BD.json b/plugins/ssh-terminal/locales/translated/bn_BD.json index 33f4814a6..047b7f077 100644 --- a/plugins/ssh-terminal/locales/translated/bn_BD.json +++ b/plugins/ssh-terminal/locales/translated/bn_BD.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "যোগ করুন", + "arrowDown": "অ্যারো ডাউন", + "arrowLeft": "বাম তীর", + "arrowRight": "ডান তীরচিহ্ন", + "arrowUp": "তীর ঊর্ধ্বমুখী", "backTab": "⇥", "ctrl": "Ctrl", - "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", - "esc": "Esc", - "home": "Home", - "pageDown": "PgDn", - "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "delete": "ডেল", + "done": "সম্পন্ন হয়েছে", + "editQuickKeys": "দ্রুত কী সম্পাদনা করুন", + "end": "শেষ", + "esc": "এস্ক", + "home": "হোম", + "pageDown": "পিজিডিএন", + "pageUp": "পিজিআপ", + "paste": "পেস্ট", + "quickKeyPlaceholder": "যেমন sudo ", + "quickKeysDesc": "মুছে ফেলতে × চাপুন। সর্বোচ্চ ৮টি অক্ষর সমর্থন করে।", + "quickKeysTitle": "দ্রুত চাবি", + "removeQuickKey": "অপসারণ করুন", + "resetDefaults": "ডিফল্টে রিসেট করুন", + "shift": "শিফট", + "tab": "ট্যাব" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "autoTmuxEnableFailed": "অটো-টিমাক্স সক্রিয় করতে ব্যর্থ হয়েছে", + "autoTmuxEnabled": "{{host}}এর জন্য অটো-টিমাক্স সক্রিয় করা হয়েছে। এটি পরবর্তী সংযোগ থেকে প্রযোজ্য হবে।", + "clipboardHttpWarning": "ক্লিপবোর্ডটি পড়া যায়নি। কিছু ব্রাউজার HTTPS-এর বাইরে ক্লিপবোর্ড অ্যাক্সেস সীমাবদ্ধ করে - এর পরিবর্তে Ctrl+V ব্যবহার করে দেখুন, অথবা HTTPS-এর মাধ্যমে Termix পরিবেশন করুন।", + "closeTab": "বন্ধ করুন", + "connecting": "সংযোগ স্থাপন...", + "connectionLost": "সংযোগ বিচ্ছিন্ন", + "connectionRejected": "সার্ভার কর্তৃক সংযোগ প্রত্যাখ্যাত হয়েছে। অনুগ্রহ করে আপনার প্রমাণীকরণ এবং নেটওয়ার্ক কনফিগারেশন যাচাই করুন।", + "connectionTimeout": "সংযোগের সময়সীমা শেষ", + "enableAutoTmuxAction": "অটো-Tmux সক্রিয় করুন", + "hostKeyRejected": "SSH হোস্ট কী যাচাইকরণ প্রত্যাখ্যাত হয়েছে। সংযোগ বাতিল করা হয়েছে।", + "linkDialogCopy": "অনুলিপি", + "linkDialogOpen": "খোলা", + "linkDialogTitle": "লিঙ্ক খুলুন", + "maxReconnectAttemptsReached": "পুনঃসংযোগের সর্বোচ্চ প্রচেষ্টা শেষ হয়েছে", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "passwordPromptFillTitle": "সংরক্ষিত পাসওয়ার্ডটি এই প্রম্পটে পূরণ করবেন?", + "reconnect": "পুনরায় সংযোগ করুন", + "reconnected": "সফলভাবে পুনরায় সংযুক্ত হয়েছে", + "reconnecting": "পুনরায় সংযোগ স্থাপন করা হচ্ছে... ({{attempt}}/{{max}})", + "autoReconnecting": "সংযোগ বিচ্ছিন্ন, পুনরায় সংযোগ করা হচ্ছে...", + "searchCaseSensitive": "দেশলাইয়ের বাক্স", + "searchClose": "বন্ধ করুন (পলায়ন)", + "searchNext": "পরবর্তী ম্যাচ (প্রবেশ করুন)", + "searchNoResults": "কোন ফলাফল নেই", + "searchPlaceholder": "খুঁজুন", + "searchPrevious": "পূর্ববর্তী ম্যাচ (Shift+Enter)", + "searchRegex": "রেগুলার এক্সপ্রেশন ব্যবহার করুন", + "searchResultCount": "{{index}} এর {{count}}", + "searchWholeWord": "সম্পূর্ণ শব্দ মেলান", + "sessionExpiredNotice": "{{host}} -এ আপনার পূর্ববর্তী সেশনটি {{minutes}} মিনিট পর সংযোগ বিচ্ছিন্ন হয়ে মেয়াদোত্তীর্ণ হয়েছে; শেল এবং এর মধ্যে চলমান সবকিছু চলে গেছে। সেশনগুলো সচল রাখতে এই হোস্টে অটো-টিমাক্স (Auto-Tmux) সক্রিয় করুন।", + "sessionExpiredNoticeNoMinutes": "{{host}} -এ আপনার পূর্ববর্তী সেশনটি সংযোগ বিচ্ছিন্ন থাকাকালীন মেয়াদোত্তীর্ণ হয়ে গেছে; শেল এবং এর মধ্যে চলমান সবকিছু মুছে গেছে। সেশনগুলো সচল রাখতে এই হোস্টে অটো-টিমাক্স (Auto-Tmux) সক্রিয় করুন।", + "sessionTakenOver": "সেশনটি অন্য একটি ট্যাবে খোলা হয়েছিল। পুনরায় সংযোগ করা হচ্ছে...", + "tmuxAttached": "সংযুক্ত ক্লায়েন্ট", + "tmuxAttachedCount": "{{count}} সংযুক্ত", + "tmuxCopyHint": "নির্বাচনটি ঠিক করুন এবং ক্লিপবোর্ডে কপি করতে এন্টার চাপুন।", + "tmuxCreateNew": "নতুন সেশন শুরু করুন", + "tmuxDetached": "tmux সেশন থেকে বিচ্ছিন্ন", + "tmuxLastActivity": "শেষ কার্যকলাপ", + "tmuxSessionAttached": "tmux সেশন সংযুক্ত হয়েছে: {{name}}", + "tmuxSessionCreated": "tmux সেশন তৈরি হয়েছে: {{name}}", + "tmuxSessionPickerDesc": "এই হোস্টে বিদ্যমান tmux সেশন পাওয়া গেছে। পুনরায় সংযুক্ত হতে বা একটি নতুন সেশন তৈরি করতে যেকোনো একটি নির্বাচন করুন।", + "tmuxSessionPickerTitle": "tmux সেশন", + "tmuxTimeDays": "{{count}}দিন আগে", + "tmuxTimeHours": "{{count}}ঘণ্টা আগে", + "tmuxTimeJustNow": "এইমাত্র", + "tmuxTimeMinutes": "{{count}}মিনিট আগে", + "tmuxUnavailable": "রিমোট হোস্টে tmux ইনস্টল করা নেই, তাই স্ট্যান্ডার্ড শেল ব্যবহার করা হচ্ছে।", + "tmuxWindowCount": "{{count}} জানালা", + "tmuxWindows": "উইন্ডোজ", + "unknownError": "অজানা ত্রুটি ঘটেছে", + "websocketAbnormalClose": "সংযোগটি অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে। এটি রিভার্স প্রক্সি বা SSL কনফিগারেশন সংক্রান্ত সমস্যার কারণে হতে পারে। অনুগ্রহ করে সার্ভার লগ পরীক্ষা করুন।", + "websocketError": "ওয়েবসকেট সংযোগ ত্রুটি", + "clipboardReadFailed": "ক্লিপবোর্ড থেকে পড়তে ব্যর্থ হয়েছে। নিশ্চিত করুন যে ক্লিপবোর্ডের অনুমতি দেওয়া আছে।", + "clipboardWriteFailed": "ক্লিপবোর্ডে কপি করা সম্ভব হয়নি। নিশ্চিত করুন যে পৃষ্ঠাটি HTTPS বা লোকালহোস্টের মাধ্যমে পরিবেশিত হচ্ছে।", + "connected": "সংযুক্ত", + "totpCodeLabel": "যাচাইকরণ কোড", + "duplicateTab": "ডুপ্লিকেট ট্যাব", + "imageChooseFile": "একটি ইমেজ ফাইল নির্বাচন করুন", + "imageUploaded": "ছবি আপলোড করা হয়েছে: {{path}}", + "imageClipboardUnavailable": "এই ব্রাউজারটি ক্লিপবোর্ড থেকে ছবি পড়তে পারে না।", + "imageClipboardEmpty": "ক্লিপবোর্ডে কোনো ছবি পাওয়া যায়নি।", + "localShell": "স্থানীয় টার্মিনাল শেল", + "autocompleteHintComplete": "সম্পূর্ণ করতে ট্যাব বা এন্টার চাপুন", + "autocompleteHintNavigate": "↑↓ নেভিগেট করতে", + "autocompleteHintClose": "বন্ধ করতে Esc চাপুন" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "tmux বিচ্ছিন্ন করুন", + "detachTmuxDescription": "tmux সেশন বিচ্ছিন্ন করুন", + "dismissError": "ছবির ত্রুটি খারিজ করুন", + "hideToolbar": "টুলবার লুকান", + "image": "ছবির কার্যকলাপ (শুধুমাত্র ছবি)", + "imageActionFailed": "ছবির অ্যাকশন ব্যর্থ হয়েছে", + "layout": "টুলবার প্রদর্শন মোড", + "layoutExpanded": "মেট্রিক্স দিয়ে প্রসারিত", + "layoutIcon": "শুধুমাত্র আইকন", + "layoutLabeled": "আইকন এবং লেবেল", + "moveToolbar": "টুলবার সরান", + "moveToolbarHint": "টুলবারের অবস্থান পরিবর্তন করতে টেনে আনুন", + "paste": "ছবি পেস্ট করুন", + "pasteImage": "ক্লিপবোর্ড থেকে ছবি পেস্ট করুন (শুধুমাত্র ছবি)", + "retry": "পুনরায় চেষ্টা করুন", + "showToolbar": "টুলবার প্রসারিত করুন", + "upload": "ছবি আপলোড করুন", + "uploadImage": "হোস্টে একটি ছবি আপলোড করুন", + "uploadingImage": "আপলোড হচ্ছে..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "কোন টার্মিনাল নির্বাচন করা হয়নি", + "noTerminalSelectedHint": "এর কমান্ড হিস্ট্রি দেখতে একটি SSH টার্মিনাল ট্যাব খুলুন।", + "searchPlaceholder": "অনুসন্ধানের ইতিহাস...", + "clearAll": "সব পরিষ্কার করুন", + "noHistoryEntries": "ইতিহাসের কোন এন্ট্রি নেই", + "trackingDisabled": "ইতিহাস ট্র্যাকিং নিষ্ক্রিয় করা হয়েছে", + "trackingDisabledHint": "এই হোস্টের SSH টার্মিনাল ট্যাবে কমান্ড হিস্ট্রি চালু করুন।", + "commandCount_one": "{{count}} কমান্ড", + "commandCount_other": "{{count}} কমান্ড" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "টাচ ইনপুট সক্রিয় করুন", + "enabledDesc": "টার্মিনালে এক আঙুলের স্পর্শে স্ক্রোলিং করার অনুমতি দিন", + "momentumEnabled": "গতি সঞ্চার করুন", + "momentumEnabledDesc": "সোয়াইপ করার পর কিছুক্ষণ স্ক্রোল করতে থাকুন।", + "advanced": "উন্নত", + "resetDefaults": "ডিফল্টে রিসেট করুন", + "dragThreshold": "ড্র্যাগ থ্রেশহোল্ড", + "maxWheelDelta": "সর্বোচ্চ চাকার ডেল্টা", + "momentumSampleWindow": "ভরবেগ নমুনা উইন্ডো", + "releaseGracePeriod": "মুক্তির জন্য অতিরিক্ত সময়সীমা", + "minimumVelocity": "সর্বনিম্ন বেগ", + "maximumVelocity": "সর্বোচ্চ বেগ", + "maximumDuration": "সর্বোচ্চ সময়কাল", + "maximumTravel": "সর্বোচ্চ ভ্রমণ", + "decayTime": "ক্ষয়ের সময়", + "pixelsPerTick": "প্রতি টিক পিক্সেল", + "maximumFrameInterval": "সর্বোচ্চ ফ্রেম ব্যবধান", + "maximumTicksPerFrame": "প্রতি ফ্রেমে সর্বোচ্চ টিক" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "টার্মিনাল সেশন ইনস্ট্যান্স আইডি", + "instanceIdDesc": "আপনার সংযুক্ত টার্মিনাল ট্যাবগুলোর একটির ইনস্ট্যান্স আইডি, যা দৃশ্যমানতা পরীক্ষা করতে ব্যবহৃত হয়।", + "selectedModeUnavailable": "অনুপলব্ধ", + "test": "পরীক্ষা", + "testing": "পরীক্ষা চলছে...", + "testFailed": "ইমেজ স্টোরেজ পরীক্ষা করতে ব্যর্থ হয়েছে", + "testConnected": "টার্মিনাল সেশন সংযুক্ত আছে।", + "testNotConnected": "এই ইনস্ট্যান্স আইডির সাথে কোনো সংযুক্ত টার্মিনাল সেশন নেই।", + "testSelectedMode": "আপলোড করতে ব্যবহৃত হবে: {{mode}}", + "testLocalVisible": "সংযুক্ত হোস্ট থেকে স্থানীয় ডিরেক্টরিটি দেখা যায়।", + "testLocalNotVisible": "সংযুক্ত হোস্ট থেকে স্থানীয় ডিরেক্টরিটি দেখা যাচ্ছে না।" }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "টাচ ইনপুট", + "images": "ইমেজ স্টোরেজ", + "sessions": "অধিবেশন", + "newHosts": "নতুন হোস্ট" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "টার্মিনাল সেশন স্থায়িত্ব", + "description": "একটি সংযোগ বিচ্ছিন্ন টার্মিনাল বন্ধ হওয়ার আগে সার্ভারে কতক্ষণ চালু রাখা হয়। সর্বনিম্ন ১, সর্বোচ্চ ১৪৪০ মিনিট। যে সেশনগুলোকে এই সময়ের চেয়ে বেশি সময় ধরে চালু রাখতে হবে, সেগুলোর জন্য হোস্টে অটো-টিমাক্স (Auto-Tmux) সক্রিয় করুন।" }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "কমান্ডের ইতিহাস", + "description": "কমান্ড হিস্ট্রি রেকর্ডিংয়ের অনুমতি দিন। এটি নিষ্ক্রিয় করা থাকলে, হোস্ট-ভিত্তিক সেটিংস নির্বিশেষে হিস্ট্রি সংরক্ষিত হয় না।" }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "নতুন হোস্টের জন্য কমান্ডের ইতিহাস", + "description": "নতুন হোস্টগুলো কমান্ড হিস্ট্রি চালু রেখে শুরু হবে কিনা।" }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "স্টোরেজ মোড", + "description": "যেখানে পেস্ট করা এবং আপলোড করা টার্মিনাল ইমেজগুলো লেখা হয়। কানেকশন অনুযায়ী অটো পিক, লোকাল এবং রিমোট (SFTP) নির্দিষ্ট করা আছে।", + "auto": "অটো", + "local": "স্থানীয়", + "remoteSftp": "রিমোট (এসএফটিপি)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "স্থানীয় ডিরেক্টরি", + "description": "টারমিক্স ব্যাকএন্ডের পরম পাথ যেখানে লোকাল মোড ইমেজগুলো লেখে। সেভ করার পর এটি আর দেখানো হয় না। খালি থাকলে TERMIX_IMAGE_DIR ব্যবহৃত হয়।" }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "হোস্ট পাথ", + "description": "লোকাল ডিরেক্টরির হোস্ট-সাইড ভিউ, যা টার্মিনাল এজেন্টরা গ্রহণ করে।" }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "টিটিএল (মিলিসেকেন্ড)", + "description": "আপলোড করা একটি ছবি কতক্ষণ রাখা হয়, তা মিলিসেকেন্ডে পরিমাপ করা হয়। খালি থাকলে TERMIX_IMAGE_TTL_MS বা এক ঘণ্টা সময় লাগে।" }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "সর্বোচ্চ ছবির সংখ্যা", + "description": "অধিকাংশ ছবি একসাথে রাখা হয়। খালি থাকলে TERMIX_MAX_IMAGE_COUNT বা 100 ব্যবহৃত হয়।" }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "সর্বোচ্চ স্টোরেজ বাইট", + "description": "একসাথে সর্বাধিক সংখ্যক বাইট ইমেজ সংরক্ষণ করা হয়। খালি অবস্থায় TERMIX_MAX_IMAGE_STORAGE_BYTES বা ৫ GiB ব্যবহৃত হয়।" }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "সংযোগ বিচ্ছিন্ন হওয়ার পরেও সেশনগুলি রাখুন", + "description": "উপরে উল্লিখিত সময় পর্যন্ত সার্ভারে একটি সংযোগ বিচ্ছিন্ন টার্মিনাল চালু রাখুন, যাতে এর ট্যাবটি পুনরায় খুললে আগের জায়গা থেকেই আবার শুরু করা যায়।" }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "অটো-টিমাক্স", + "description": "নতুন হোস্টের টার্মিনালগুলো tmux-এর ভিতরে চালান, যাতে সংযোগ বিচ্ছিন্ন হলেও সেশনগুলো টিকে থাকে (এর জন্য হোস্টে tmux থাকা প্রয়োজন)।" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "নতুন হোস্টদের জন্য থিম", + "description": "নতুন হোস্ট যে টার্মিনাল থিম দিয়ে চালু হয়।" }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "নতুন হোস্টদের জন্য ফন্ট", + "description": "নতুন হোস্ট যে টার্মিনাল ফন্ট দিয়ে শুরু করে।" }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "নতুন হোস্টদের জন্য ফন্টের আকার", + "description": "নতুন হোস্টের ক্ষেত্রে টার্মিনালের ফন্ট সাইজ যা দিয়ে শুরু হয়, পিক্সেলে।" }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "নতুন হোস্টদের জন্য কার্সার স্টাইল" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "নতুন হোস্টদের জন্য মিটমিট করা কার্সার" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "টার্মিনাল টুলবার সক্রিয় করুন", + "description": "এই হোস্টের টুলস এবং লাইভ পরিসংখ্যানের জন্য সক্রিয় টার্মিনালে ডক করা একটি কুইক-অ্যাক্সেস টুলবার দেখান।" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "টুলবারের অবস্থান", + "description": "টার্মিনালে টুলবারটি যেখানে থাকে। আপনি সেখান থেকেও এটিকে টেনে নিয়ে যেতে পারেন।", + "bottom": "নীচের কেন্দ্র", + "bottomLeft": "নিচের বাম দিকে", + "bottomRight": "নিচের ডানদিকে", + "top": "উপরের কেন্দ্র", + "topLeft": "উপরের বাম দিকে", + "topRight": "উপরের ডানদিকে" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "টুলবার শুরুর অবস্থা", + "description": "টার্মিনাল সংযোগ করার সময় টুলবারটি প্রসারিত অবস্থায় খোলে নাকি সংকুচিত অবস্থায় খোলে", + "expanded": "সম্প্রসারিত", + "collapsed": "ন্যূনতম করা হয়েছে" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "টুলবার প্রদর্শন মোড", + "description": "টুলবার বাটনগুলো যেভাবে দেখানো হয়। লাস্ট ইউজড (Last Used) টুলবারে আপনার বাছাই করা বিষয়গুলোই রাখে।", + "remember": "সর্বশেষ ব্যবহৃত", + "icon": "শুধুমাত্র আইকন", + "labeled": "আইকন এবং লেবেল", + "expanded": "পরিসংখ্যান দিয়ে প্রসারিত" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "লাইভ পরিসংখ্যান দেখান", + "description": "এক্সপান্ডেড মোডে টুলবার বাটনগুলোর উপরে লাইভ হোস্টের পরিসংখ্যান দেখান।" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "নিষ্ক্রিয় অবস্থায় ম্লান হয়ে যায়", + "description": "টুলবারটি ধীরে ধীরে মিলিয়ে যেতে থাকবে যতক্ষণ না আপনি এর উপর মাউস নিয়ে যান।" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "কমান্ডের ইতিহাস", + "description": "ইতিহাস এবং স্বয়ংক্রিয় সম্পূর্ণতার জন্য এই টার্মিনালে চালানো কমান্ডগুলো রেকর্ড করুন।" }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "টার্মিনাল সক্রিয় করুন", + "description": "এই হোস্টের জন্য একটি SSH টার্মিনাল অফার করুন।" }, "inheritAppearance": { - "label": "Use user defaults" + "label": "ব্যবহারকারীর ডিফল্ট ব্যবহার করুন" }, "theme": { - "label": "Theme" + "label": "থিম" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "মিটমিট করা কার্সার" }, "cursorStyle": { - "label": "Cursor style" + "label": "কার্সার শৈলী" }, "fontSize": { - "label": "Font size" + "label": "ফন্টের আকার" }, "fontFamily": { - "label": "Font" + "label": "ফন্ট" }, "scrollback": { - "label": "Scrollback" + "label": "স্ক্রোলব্যাক" }, "letterSpacing": { - "label": "Letter spacing" + "label": "চিঠির ব্যবধান" }, "lineHeight": { - "label": "Line height" + "label": "লাইনের উচ্চতা" }, "bellStyle": { - "label": "Bell" + "label": "বেল" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "সর্বনিম্ন বৈসাদৃশ্য অনুপাত" }, "backgroundImage": { - "label": "Background image" + "label": "পটভূমির ছবি" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "পটভূমির ছবির অস্বচ্ছতা" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "কাস্টম থিম রং" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "ডান ক্লিক করলে শব্দ নির্বাচিত হয়।" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "বিকল্পটি মেটা" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "দ্রুত স্ক্রোল কী" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "দ্রুত স্ক্রোল গতি" }, "backspaceMode": { - "label": "Backspace" + "label": "ব্যাকস্পেস" }, "autoMosh": { - "label": "Auto mosh" + "label": "অটো মোশ" }, "moshCommand": { - "label": "Mosh command" + "label": "মোশ কমান্ড" }, "autoTmux": { - "label": "Auto tmux" + "label": "অটো টিএমইউএক্স" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "SSH শিরোনাম ব্যবহার করুন" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "সিনট্যাক্স হাইলাইটিং" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "সিনট্যাক্স হাইলাইটিং বিভাগগুলি" }, "linkClickBehavior": { - "label": "Link click" + "label": "লিঙ্কে ক্লিক করুন" }, "localEcho": { - "label": "Local echo" + "label": "স্থানীয় প্রতিধ্বনি" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "পাসওয়ার্ড প্রম্পট পূরণ করার প্রস্তাব" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "sudo প্রম্পটগুলি পূরণ করুন" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ করুন" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "কমান্ড অটোকমপ্লিট", + "description": "টাইপ করার সময় ট্যাব চাপলে অটোকমপ্লিট দেখান।" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "স্থানীয় প্রতিধ্বনি", + "description": "নিরাপদ স্থানীয় কীস্ট্রোক পূর্বাভাস ব্যবহার করে অনুভূত ইনপুট লেটেন্সি হ্রাস করুন" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "টার্মিনাল লিঙ্ক ক্লিক", + "description": "টার্মিনালে লিঙ্কে ক্লিক করার সময় ডিফল্ট আচরণ" }, "customThemes": { - "label": "Saved themes" + "label": "সংরক্ষিত থিম" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "স্থানীয় টার্মিনাল" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "লাইভ টার্মিনাল সেশন ব্যবহার করুন", + "description": "সেশন শেয়ারিং এবং রেকর্ডিং-এর মতো অন্যান্য ফিচারগুলোকে আপনার লাইভ টার্মিনাল সেশনগুলোতে অ্যাক্সেস করতে দিন।" }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "কমান্ডের ইতিহাস পড়ুন", + "description": "এআই অ্যাসিস্ট্যান্টের মতো অন্যান্য ফিচারকে আপনার কমান্ড হিস্ট্রি পড়তে দিন।" } }, "hosts": { - "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", - "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", - "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", - "fastScrollModifierAlt": "Alt", + "tabTerminal": "টার্মিনাল", + "addHost": "হোস্ট যোগ করুন", + "applyGlobalThemeTooltip": "এই থিমটি প্রয়োগ করুন", + "backgroundImageDesc": "টার্মিনালের ব্যাকগ্রাউন্ড ছবির জন্য ঐচ্ছিক ইউআরএল", + "backgroundImageLabel": "পটভূমির ছবির ইউআরএল", + "backgroundImageOpacityLabel": "পটভূমির ছবির অস্বচ্ছতা", + "backspaceMode": "ব্যাকস্পেস মোড", + "backspaceModeControlH": "নিয়ন্ত্রণ-এইচ (বিএস)", + "backspaceModeLabel": "ব্যাকস্পেস মোড", + "backspaceModeNormal": "স্বাভাবিক (ডেল)", + "behaviorAndAdvanced": "আচরণ ও উন্নত", + "bellStyle": "বেল স্টাইল", + "bellStyleBoth": "উভয়", + "bellStyleLabel": "বেল স্টাইল", + "bellStyleNone": "কোনোটিই না", + "bellStyleSound": "শব্দ", + "bellStyleVisual": "চাক্ষুষ", + "colorTheme": "রঙের থিম", + "cursorBlink": "কার্সার ব্লিঙ্ক", + "cursorBlinking": "কার্সার মিটমিট করা", + "cursorBlinkingDesc": "টার্মিনাল কার্সরের জন্য ব্লিংকিং অ্যানিমেশন সক্রিয় করুন।", + "cursorStyle": "কার্সার স্টাইল", + "cursorStyleBar": "বার", + "cursorStyleBlock": "ব্লক", + "cursorStyleLabel": "কার্সার স্টাইল", + "cursorStyleUnderline": "আন্ডারলাইন", + "customThemeAnsiColors": "ANSI রং", + "customThemeBackground": "পটভূমি", + "customThemeBlack": "কালো", + "customThemeBlue": "নীল", + "customThemeBrightBlack": "উজ্জ্বল কালো", + "customThemeBrightBlue": "উজ্জ্বল নীল", + "customThemeBrightCyan": "উজ্জ্বল সায়ান", + "customThemeBrightGreen": "উজ্জ্বল সবুজ", + "customThemeBrightMagenta": "উজ্জ্বল ম্যাজেন্টা", + "customThemeBrightRed": "উজ্জ্বল লাল", + "customThemeBrightWhite": "উজ্জ্বল সাদা", + "customThemeBrightYellow": "উজ্জ্বল হলুদ", + "customThemeColors": "কাস্টম রঙ", + "customThemeCursor": "কার্সার", + "customThemeCursorAccent": "কার্সার অ্যাকসেন্ট", + "customThemeCyan": "সায়ান", + "customThemeForeground": "সম্মুখভাগ", + "customThemeGreen": "সবুজ", + "customThemeMagenta": "ম্যাজেন্টা", + "customThemeRed": "লাল", + "customThemeResetTooltip": "ডিফল্টে রিসেট করুন", + "customThemeSelection": "নির্বাচন", + "customThemeWhite": "সাদা", + "customThemeYellow": "হলুদ", + "deleteGlobalThemeTooltip": "এই থিমটি মুছে ফেলুন", + "docsLink": "নথি দেখুন", + "enableAutoMosh": "অটো-মোশ সক্রিয় করুন", + "enableAutoMoshDesc": "উপলব্ধ থাকলে SSH-এর চেয়ে Mosh ব্যবহার করা শ্রেয়।", + "enableAutoTmux": "অটো-Tmux সক্রিয় করুন", + "enableAutoTmuxDesc": "সংযোগ বিচ্ছিন্ন হওয়া এবং ব্রাউজার পুনরায় চালু হওয়ার পরেও আপনার শেল এবং এর মধ্যে চলমান সবকিছু সচল রাখতে tmux-এর ভিতরে এটি চালান (tmux অবশ্যই হোস্টে ইনস্টল করা থাকতে হবে)।", + "fastScrollModifier": "দ্রুত স্ক্রোল মডিফায়ার", + "fastScrollModifierAlt": "বিকল্প", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "দ্রুত স্ক্রোল মডিফায়ার", + "fastScrollModifierShift": "শিফট", + "fastScrollSensitivity": "দ্রুত স্ক্রোল সংবেদনশীলতা", + "fastScrollSensitivityLabel": "দ্রুত স্ক্রোল সংবেদনশীলতা", + "fontFamily": "ফন্ট পরিবার", + "fontFamilyCustomHint": "বান্ডেল করা ফন্ট থেকে বেছে নিন, অথবা 'কাস্টম' (Custom) বিকল্পটি বেছে নিয়ে আপনার সিস্টেমে আগে থেকে ইনস্টল করা কোনো ফন্টের সঠিক নামটি টাইপ করুন (যেমন MesloLGS NF, Noto Sans Mono)। Termix আপনার জন্য ফন্ট ইনস্টল করতে পারে না, প্রথমে আপনার অপারেটিং সিস্টেমে এটি ইনস্টল করুন।", + "fontFamilyCustomOption": "কাস্টম...", + "fontFamilyCustomPlaceholder": "ফন্টের সঠিক নাম, যেমন MesloLGS NF", + "fontFamilyLabel": "ফন্ট পরিবার", + "fontSize": "ফন্ট সাইজ", + "fontSizeLabel": "ফন্ট সাইজ", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "letterSpacing": "চিঠির ব্যবধান", + "letterSpacingPx": "অক্ষরের ব্যবধান (পিক্সেল)", + "lineHeight": "লাইন উচ্চতা", + "lineHeightLabel": "লাইন উচ্চতা", + "linkClickBehaviorConfirm": "খুলতে বা কপি করতে পপআপ দেখান", + "linkClickBehaviorDesc": "টার্মিনালে কোনো লিঙ্কে ক্লিক করলে কী ঘটবে তা এটি নিয়ন্ত্রণ করে। অ্যাপ-স্তরের সেটিং অনুসরণ করতে 'ডিফল্ট' ব্যবহার করুন।", + "linkClickBehaviorDirect": "সরাসরি খুলুন", + "linkClickBehaviorLabel": "লিঙ্ক ক্লিকের আচরণ", + "loadingHost": "হোস্ট লোড হচ্ছে...", + "localEchoAuto": "স্বয়ংক্রিয়", + "localEchoDesc": "ধীরগতির সংযোগে স্থানীয়ভাবে নিরাপদ ও মুদ্রণযোগ্য কীস্ট্রোক অনুমান করুন। পাসওয়ার্ড প্রম্পট এবং কন্ট্রোল ইনপুট কখনও প্রতিধ্বনিত হয় না।", + "localEchoLabel": "স্থানীয় প্রতিধ্বনি", + "localEchoOff": "বন্ধ", + "localEchoOn": "সর্বদা চালু", + "macOptionIsMetaLabel": "অপশন কী মেটা পাঠায়", + "macOptionIsMetaShortDesc": "Meta পাঠানোর পরিবর্তে macOS-এ Option/Alt কী দিয়ে বিশেষ অক্ষর (যেমন @ বা |) টাইপ করা নিষ্ক্রিয় করুন।", + "moshCommand": "মোশ কমান্ড", + "moshCommandLabel": "মোশ কমান্ড", + "noSavedThemes": "এখনো কোনো থিম সংরক্ষণ করা হয়নি", + "none": "কোনোটিই না", + "passwordPromptAutoFillDesc": "টার্মিনাল পাসওয়ার্ড চাইলে সংরক্ষিত পাসওয়ার্ডটি পূরণ করার প্রস্তাব দিন। এই হোস্টে কোনো পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পূরণ না করার জন্য এটি বন্ধ করুন।", + "passwordPromptAutoFillLabel": "পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পূরণ করার সুবিধা", + "autoReconnectLabel": "স্বয়ংক্রিয় পুনঃসংযোগ", + "autoReconnectDesc": "SSH সংযোগ বিচ্ছিন্ন হয়ে গেলে, যেমন নেটওয়ার্কে সাময়িক সমস্যা বা স্লিপ মোডের পরে, এটি নিজে থেকেই পুনরায় সংযোগ স্থাপন করে। স্ক্রলব্যাকটি অক্ষুণ্ণ থাকে।", + "rightClickSelectsWord": "ডান ক্লিক করলে ওয়ার্ড নির্বাচিত হয়।", + "rightClickSelectsWordLabel": "ডান-ক্লিক করলে Word নির্বাচিত হয়।", + "rightClickSelectsWordShortDesc": "কার্সরের নিচে থাকা শব্দটি ডান-ক্লিক করে নির্বাচন করুন।", + "saveAsGlobalTheme": "গ্লোবাল থিম হিসেবে সংরক্ষণ করুন", + "saveGlobalThemeError": "থিম সংরক্ষণ করতে ব্যর্থ হয়েছে", + "saveGlobalThemeNamePrompt": "এই থিমের জন্য একটি নাম লিখুন", + "saveGlobalThemeSuccess": "থিম সংরক্ষিত", + "savedThemesLabel": "সংরক্ষিত থিম", + "scrollbackBufferLabel": "স্ক্রোলব্যাক বাফার", + "scrollbackMaxLines": "ইতিহাসে সংরক্ষিত সর্বাধিক সংখ্যক লাইন", + "sudoPasswordAutoFill": "সুডো পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পূরণ", + "sudoPasswordAutoFillDesc": "একটি sudo পাসওয়ার্ড সংরক্ষণ করুন যাতে হোস্ট মেট্রিক্স, টার্মিনাল প্রম্পট এবং অন্যান্যরা স্বয়ংক্রিয়ভাবে বিশেষাধিকারপ্রাপ্ত কমান্ড চালাতে পারে।", + "sudoPasswordAutoFillLabel": "সুডো পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পূরণ", + "syntaxCategoryIpAddresses": "আইপি ঠিকানা", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "লগ স্তর", + "syntaxCategoryLogLevelsDesc": "ত্রুটি, সতর্কীকরণ, তথ্য, ডিবাগ, মারাত্মক", + "syntaxCategoryNumbers": "লেবেলযুক্ত সংখ্যা", + "syntaxCategoryNumbersDesc": "পোর্ট ৮০৮০, প্রস্থান ১, অবস্থা ৪০৪", + "syntaxCategoryPaths": "ফাইল পাথ", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", - "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryTimestamps": "টাইমস্ট্যাম্প", + "syntaxCategoryTimestampsDesc": "[১২:৩৪:৫৬], ২০২৪-০১-১৫", + "syntaxCategoryUrls": "ইউআরএল", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "টার্মিনাল আউটপুট রঙিন করুন (ত্রুটি, পাথ, আইপি, টাইমস্ট্যাম্প)", + "syntaxHighlightingLabel": "সিনট্যাক্স হাইলাইটিং", + "terminalAppearance": "টার্মিনাল চেহারা", + "theme": "থিম", + "themePreview": "থিম প্রিভিউ", + "useSSHTitleDesc": "হোস্ট নেমের পরিবর্তে শেলের উইন্ডো টাইটেল থেকে ট্যাব টাইটেলটি আপডেট করুন।", + "useSSHTitleLabel": "SSH উইন্ডোর শিরোনাম ব্যবহার করুন", + "enableTunnel": "টানেল সক্রিয় করুন", + "enableFileManager": "ফাইল ম্যানেজার সক্রিয় করুন", + "enableDocker": "ডকার সক্রিয় করুন", + "startupSnippet": "স্টার্টআপ স্নিপেট", + "quickActions": "দ্রুত পদক্ষেপ", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "সাফল্য" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} বাদ দেওয়া হয়েছে (কোন আইপি পাওয়া যায়নি)", + "proxmoxStatsUrlCopied": "Proxmox Stats URL ক্লিপবোর্ডে কপি করা হয়েছে", + "rdpUrlCopied": "RDP URL কপি করা হয়েছে", + "vncUrlCopied": "VNC URL কপি করা হয়েছে", + "filterAuthStepca": "স্টেপ সিএ", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "noCredential": "কোন পরিচয়পত্র নেই (সরাসরি পরিচয়পত্র নিচে দেওয়া হলো)", + "authTypeDirect": "সরাসরি", + "authTypeCredential": "শংসাপত্র", + "authTypeNone": "কোনোটিই না", + "recordingPath": "রেকর্ডিং পথ", + "recordingName": "রেকর্ডিং নাম", + "saveHostFirst": "প্রথমে হোস্টটি সংরক্ষণ করুন।", + "sharingOptionsAfterSave": "হোস্ট সংরক্ষণ করার পর শেয়ার করার বিকল্পগুলো পাওয়া যাবে।", + "permissionLevel": "অনুমতি স্তর", + "typeHeader": "প্রকার", + "targetHeader": "লক্ষ্য", + "permissionHeader": "অনুমতি", + "cancelBtn": "বাতিল করুন", + "savingBtn": "সঞ্চয়...", + "updateHostBtn": "হোস্ট আপডেট করুন", + "addHostBtn": "হোস্ট যোগ করুন" }, - "filterAuthVault": "Vault" + "filterAuthVault": "ভল্ট" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", - "terminal": "Terminal", - "macros": "Macros" + "history": "ইতিহাস", + "localTerminal": "স্থানীয় টার্মিনাল", + "sshTools": "SSH টুলস", + "terminal": "টার্মিনাল", + "macros": "ম্যাক্রো" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "কীস্ট্রোক সম্প্রচার করতে এখানে টাইপ করুন...", + "copyOnSelect": "নির্বাচিত টেক্সট স্বয়ংক্রিয়ভাবে কপি করুন", + "enableRightClickCopyPaste": "ডান-ক্লিক কপি/পেস্ট সক্ষম করুন", + "fillPassword": "পাসওয়ার্ড পূরণ করুন", + "fillPasswordMissing": "{{count}} নির্বাচিত টার্মিনাল(গুলি)র জন্য কোনো সংরক্ষিত পাসওয়ার্ড নেই", + "fillPasswordSuccess": "{{count}} টার্মিনালে পাসওয়ার্ড পূরণ করা হয়েছে", + "keyRecordingTitle": "মূল রেকর্ডিং", + "noTerminalTabsOpen": "কোন টার্মিনাল ট্যাব খোলা নেই", + "recordToTerminals": "টার্মিনালে রেকর্ড", + "selectAll": "সব", + "selectNone": "কোনোটিই না", + "selectTerminalsAbove": "উপরের টার্মিনালগুলি নির্বাচন করুন", + "settingsTitle": "সেটিংস", + "startRecording": "রেকর্ডিং শুরু করুন", + "stopRecording": "রেকর্ডিং বন্ধ করুন" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "কপি নির্বাচন", + "paste": "পেস্ট", + "sendControlCode": "Ctrl+অক্ষর সংকেত পাঠান", + "sendText": "টেক্সট পাঠান", + "controlCodeLabel": "চিঠি", + "textLabel": "পাঠানোর জন্য টেক্সট", + "appendEnterLabel": "পাঠানোর পর এন্টার চাপুন", + "clipboardPermissionNote": "কিছু ব্রাউজারে প্রথমবার ব্যবহারের সময় ক্লিপবোর্ডের অনুমতি চাইতে পারে।", + "textRequired": "পাঠানোর জন্য টেক্সটটি লিখুন।", + "controlCodeRequired": "কন্ট্রোল কোডের জন্য একটি অক্ষর লিখুন।", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "নির্বাচিত অংশ কপি করুন (Ctrl+C, শুধুমাত্র টেক্সট নির্বাচিত থাকলে)", + "copyCtrlShiftC": "নির্বাচিত অংশ কপি করুন (Ctrl+Shift+C)", + "copyCmdC": "নির্বাচিত অংশ কপি করুন (Cmd+C)", + "pasteCtrlShiftV": "ক্লিপবোর্ড থেকে পেস্ট করুন (Ctrl+Shift+V)", + "ctrlW": "শেল-এ যেতে Ctrl+W পাঠান (ব্রাউজার ট্যাব বন্ধ করা যাবে না)", + "ctrlT": "শেল-এ যেতে Ctrl+T পাঠান (ব্রাউজার ট্যাব খোলা ব্লক করা হয়েছে)", + "ctrlN": "শেল-এ Ctrl+N পাঠান (ব্রাউজার উইন্ডো খোলা ব্লক করা হয়েছে)", + "ctrlQ": "শেল-এ যেতে Ctrl+Q পাঠান (ব্রাউজার বন্ধ করা যাবে না)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "title": "ম্যাক্রো", + "description": "টার্মিনালে সংরক্ষিত কমান্ডের একটি সিরিজ চালান এবং সার্ভার যা ফেরত পাঠায় তার উপর প্রতিক্রিয়া জানান।", + "target": "লক্ষ্য", + "noTerminal": "কোন টার্মিনাল খোলা নেই", + "empty": "এখনো কোনো ম্যাক্রো নেই", + "emptyHint": "টার্মিনালের কোনো কাজ, যেমন লগ ইন করা, কোনো সার্ভিস রিস্টার্ট করা বা প্রম্পটের উত্তর দেওয়া, স্বয়ংক্রিয় করতে একটি ম্যাক্রো তৈরি করুন।", + "create": "নতুন ম্যাক্রো", + "back": "ম্যাক্রোতে ফিরে যান", + "name": "নাম", + "namePlaceholder": "ওয়েব সার্ভার পুনরায় চালু করুন", + "nameRequired": "সংরক্ষণ করার আগে ম্যাক্রোটির একটি নাম দিন।", + "descriptionLabel": "বর্ণনা", + "descriptionPlaceholder": "এই ম্যাক্রোটি কী করে (ঐচ্ছিক)", + "unsaved": "সংরক্ষিত নয় এমন পরিবর্তন", + "save": "সংরক্ষণ করুন", + "saved": "ম্যাক্রো সংরক্ষিত", + "saveFailed": "ম্যাক্রোটি সংরক্ষণ করা যায়নি।", + "delete": "মুছে ফেলুন", + "deleteTitle": "এই ম্যাক্রোটি মুছে ফেলবেন?", + "deleteBody": "\"{{name}}\" স্থায়ীভাবে মুছে ফেলা হবে। এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", + "deleted": "ম্যাক্রো মুছে ফেলা হয়েছে", + "cancel": "বাতিল করুন", + "run": "দৌড়", + "stop": "থামুন", + "running": "দৌড়াচ্ছে...", + "completed": "ম্যাক্রো শেষ হয়েছে", + "failed": "ম্যাক্রো ব্যর্থ হয়েছে", + "loadFailed": "ম্যাক্রো লোড করা যায়নি", + "needTerminal": "প্রথমে একটি টার্মিনাল খুলুন এবং সংযোগ করুন।", + "noSteps": "এই ম্যাক্রোতে এখনও কোনো ধাপ নেই। নিচে একটি যোগ করুন।", + "addStep": "ধাপ যোগ করুন", + "stepNumber": "ধাপ {{number}}", + "removeStep": "ধাপটি সরান", + "confirmRunTitle": "এই ম্যাক্রোটি চালাবেন?", + "confirmRunBody": "\"{{name}}\" {{host}} -এ কমান্ড পাঠাবে।", + "confirmRunAction": "ম্যাক্রো চালান", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "কমান্ড পাঠান", + "help": "টার্মিনালে টেক্সট টাইপ করে, ঠিক যেন আপনি নিজেই টাইপ করেছেন।" }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "আউটপুটের জন্য অপেক্ষা করুন", + "help": "সার্ভার আপনার দেওয়া টেক্সটটি প্রিন্ট না করা পর্যন্ত এটি থেমে থাকে, অনেকটা পাসওয়ার্ড দেওয়ার সময়কার মতো।" }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "বিরতি", + "help": "পরবর্তী ধাপে যাওয়ার আগে একটি নির্দিষ্ট পরিমাণ সময় অপেক্ষা করে।" }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "যদি আউটপুটে থাকে", + "help": "সার্ভার এ পর্যন্ত যা যা প্রিন্ট করেছে, তা যাচাই করে দুটি শাখার মধ্যে একটি চালায়।" }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "পুনরাবৃত্তি", + "help": "এর ভেতরের ধাপগুলো একটি নির্দিষ্ট সংখ্যক বার চালায়।" } }, "send": { - "text": "Command or text", + "text": "কমান্ড বা টেক্সট", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "পাঠানোর পর এন্টার চাপুন", + "pressEnterHelp": "সাবমিট না করে টেক্সট টাইপ করতে এটি বন্ধ করুন।" }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "আউটপুটে থাকা পর্যন্ত অপেক্ষা করুন", + "patternPlaceholder": "পাসওয়ার্ড:", + "timeout": "হাল ছেড়ে দেওয়ার পর", + "onTimeout": "যদি এটি কখনও প্রদর্শিত না হয়", + "stop": "ম্যাক্রোটি বন্ধ করুন", + "continue": "তবুও এগিয়ে যান।" }, "delay": { - "duration": "Wait for" + "duration": "অপেক্ষা করুন" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "যদি আউটপুটে থাকে", + "patternPlaceholder": "সক্রিয়: সক্রিয় (চলমান)", + "then": "তারপর এটা করুন", + "else": "অন্যথায় এটা করুন", + "emptyBranch": "কোন পদক্ষেপ নেই" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "সংখ্যা", + "times": "সময়" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "রেগুলার এক্সপ্রেশনের সাথে মেলান", + "useRegexHelp": "লেখাটির সাথে হুবহু মিল রাখতে এটি বাদ দিন।", + "invalidRegex": "এটি একটি বৈধ রেগুলার এক্সপ্রেশন নয়, এটিকে সাধারণ টেক্সট হিসেবে মেলানো হবে।" }, - "seconds": "seconds", + "seconds": "সেকেন্ড", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "রিমোট সার্ভার প্রয়োজন। এই সংযোগের ধরণটি ব্যবহার করতে সেটিংস-এ একটি রিমোট সার্ভার সংযুক্ত করুন।" } } diff --git a/plugins/ssh-terminal/locales/translated/hi_IN.json b/plugins/ssh-terminal/locales/translated/hi_IN.json index 6887cb2d9..059349e01 100644 --- a/plugins/ssh-terminal/locales/translated/hi_IN.json +++ b/plugins/ssh-terminal/locales/translated/hi_IN.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "ऑटो-टीमक्स को सक्षम करने में विफल", + "autoTmuxEnabled": "{{host}}के लिए ऑटो-Tmux सक्षम किया गया है। यह अगले कनेक्शन से लागू होगा।", + "clipboardHttpWarning": "क्लिपबोर्ड पढ़ा नहीं जा सका। कुछ ब्राउज़र HTTPS के बाहर क्लिपबोर्ड एक्सेस को प्रतिबंधित करते हैं - इसके बजाय Ctrl+V का उपयोग करके देखें, या Termix को HTTPS पर चलाएं।", "closeTab": "बंद करें", "connecting": "कनेक्ट हो रहा है...", "connectionLost": "कनेक्शन खो गया", @@ -44,18 +44,18 @@ "reconnect": "पुनः कनेक्ट करें", "reconnected": "पुनः कनेक्ट हुआ", "reconnecting": "पुनः कनेक्ट हो रहा है... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "कनेक्शन टूट गया, पुनः कनेक्ट हो रहा है...", + "searchCaseSensitive": "मामले मिलाएं", + "searchClose": "बंद करें (एस्केप)", + "searchNext": "अगला मैच (प्रवेश करें)", + "searchNoResults": "कोई परिणाम नहीं", + "searchPlaceholder": "खोजो", + "searchPrevious": "पिछला मैच (शिफ्ट+एंटर)", + "searchRegex": "नियमित अभिव्यक्ति का उपयोग करें", + "searchResultCount": "{{index}} का {{count}}", + "searchWholeWord": "पूरे शब्द का मिलान करें", + "sessionExpiredNotice": "{{host}} पर आपका पिछला सत्र {{minutes}} मिनट बाद समाप्त हो गया; शेल और उसमें चल रही हर चीज़ समाप्त हो गई है। सत्रों को सक्रिय रखने के लिए इस होस्ट पर ऑटो-ट्मक्स सक्षम करें।", + "sessionExpiredNoticeNoMinutes": "{{host}} पर आपका पिछला सत्र डिस्कनेक्ट होने के दौरान समाप्त हो गया; शेल और उसमें चल रही हर चीज़ नष्ट हो गई है। सत्रों को सक्रिय रखने के लिए इस होस्ट पर ऑटो-ट्मक्स सक्षम करें।", "sessionTakenOver": "सत्र किसी अन्य टैब में खोला गया था। पुनः कनेक्ट हो रहा है...", "tmuxAttached": "अटैच किए गए क्लाइंट", "tmuxAttachedCount": "{{count}} अटैच किए गए", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "क्लिपबोर्ड पर कॉपी करने में विफल। सुनिश्चित करें कि पेज HTTPS या लोकलहोस्ट पर सर्व किया गया है।", "connected": "कनेक्टेड", "totpCodeLabel": "सत्यापन कोड", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "डुप्लिकेट टैब", + "imageChooseFile": "एक छवि फ़ाइल चुनें", + "imageUploaded": "छवि अपलोड की गई: {{path}}", + "imageClipboardUnavailable": "यह ब्राउज़र क्लिपबोर्ड से छवियों को नहीं पढ़ सकता है।", + "imageClipboardEmpty": "क्लिपबोर्ड में कोई छवि नहीं मिली", + "localShell": "स्थानीय टर्मिनल शेल", + "autocompleteHintComplete": "पूरा करने के लिए टैब या एंटर दबाएं", + "autocompleteHintNavigate": "ऊपर जाने के लिए ↑↓", + "autocompleteHintClose": "बंद करने के लिए Esc दबाएँ" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "tmux को अलग करें", + "detachTmuxDescription": "tmux सत्र को अलग करें", + "dismissError": "छवि त्रुटि को खारिज करें", + "hideToolbar": "उपकरण पट्टी छिपाओ", + "image": "छवि क्रियाएँ (केवल छवियाँ)", + "imageActionFailed": "छवि संबंधी कार्रवाई विफल रही", + "layout": "टूलबार डिस्प्ले मोड", + "layoutExpanded": "मैट्रिक्स के साथ विस्तारित", + "layoutIcon": "केवल आइकन", + "layoutLabeled": "आइकन और लेबल", + "moveToolbar": "टूलबार को स्थानांतरित करें", + "moveToolbarHint": "टूलबार की स्थिति बदलने के लिए उसे खींचें", + "paste": "छवि चिपकाएँ", + "pasteImage": "क्लिपबोर्ड से छवि पेस्ट करें (केवल छवियां)", "retry": "पुनः प्रयास करें", "showToolbar": "टूलबार विस्तारित करें", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "तस्विर अपलोड करना", + "uploadImage": "होस्ट पर एक छवि अपलोड करें", "uploadingImage": "अपलोड हो रहा है..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "सभी साफ़ करें", "noHistoryEntries": "कोई इतिहास प्रविष्टियाँ नहीं", "trackingDisabled": "इतिहास ट्रैकिंग अक्षम है", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "इस होस्ट के SSH टर्मिनल टैब में कमांड हिस्ट्री चालू करें।", + "commandCount_one": "{{count}} कमांड", + "commandCount_other": "{{count}} आदेश" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", + "enabled": "टच इनपुट सक्षम करें", + "enabledDesc": "टर्मिनलों में एक उंगली से स्क्रॉल करने की सुविधा दें", + "momentumEnabled": "गति को सक्षम करें", + "momentumEnabledDesc": "स्वाइप करने के बाद थोड़ी देर स्क्रॉल करते रहें", + "advanced": "विकसित", "resetDefaults": "डिफ़ॉल्ट पर रीसेट करें", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "ड्रैग थ्रेशहोल्ड", + "maxWheelDelta": "अधिकतम पहिया डेल्टा", + "momentumSampleWindow": "मोमेंटम सैंपल विंडो", + "releaseGracePeriod": "रिहाई की मोहलत", + "minimumVelocity": "न्यूनतम वेग", + "maximumVelocity": "अधिकतम वेग", + "maximumDuration": "अधिकतम अवधि", + "maximumTravel": "अधिकतम यात्रा", + "decayTime": "क्षय समय", + "pixelsPerTick": "पिक्सेल प्रति टिक", + "maximumFrameInterval": "अधिकतम फ्रेम अंतराल", + "maximumTicksPerFrame": "प्रति फ्रेम अधिकतम टिक" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "टर्मिनल सत्र इंस्टेंस आईडी", + "instanceIdDesc": "आपके कनेक्टेड टर्मिनल टैब में से किसी एक का इंस्टेंस आईडी, जिसका उपयोग दृश्यता का परीक्षण करने के लिए किया जाता है।", + "selectedModeUnavailable": "अनुपलब्ध", "test": "परीक्षण", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "परीक्षण...", + "testFailed": "इमेज स्टोरेज का परीक्षण विफल रहा", + "testConnected": "टर्मिनल सत्र कनेक्ट हो गया है।", + "testNotConnected": "इस इंस्टेंस आईडी के साथ कोई कनेक्टेड टर्मिनल सेशन नहीं है।", + "testSelectedMode": "अपलोड करने के लिए निम्न का उपयोग किया जाएगा: {{mode}}", + "testLocalVisible": "कनेक्टेड होस्ट से लोकल डायरेक्टरी दिखाई देती है।", + "testLocalNotVisible": "कनेक्टेड होस्ट से लोकल डायरेक्टरी दिखाई नहीं देती है।" }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "स्पर्श निवेश", + "images": "छवि संग्रहण", "sessions": "सेशन", - "newHosts": "New Hosts" + "newHosts": "नए मेज़बान" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "टर्मिनल सत्र दृढ़ता", + "description": "सर्वर पर डिस्कनेक्ट होने के बाद टर्मिनल को बंद करने से पहले कितनी देर तक चालू रखा जाता है। न्यूनतम 1 मिनट, अधिकतम 1440 मिनट। इससे अधिक समय तक चलने वाले सेशन के लिए, होस्ट पर ऑटो-टीमक्स को सक्षम करें।" }, "commandHistoryEnabled": { "label": "कमांड इतिहास", "description": "कमांड इतिहास रिकॉर्डिंग की अनुमति दें। अक्षम होने पर, प्रति-होस्ट सेटिंग्स की परवाह किए बिना इतिहास सहेजा नहीं जाता है।" }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "नए होस्ट के लिए कमांड इतिहास", + "description": "क्या नए होस्ट कमांड हिस्ट्री चालू होने के साथ शुरू होते हैं?" }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "भंडारण मोड", + "description": "जहां पेस्ट और अपलोड की गई टर्मिनल इमेज लिखी जाती हैं। कनेक्शन के आधार पर ऑटो पिकिंग की सुविधा उपलब्ध है, लोकल और रिमोट (SFTP) कनेक्शन दोनों ही तय हैं।", "auto": "स्वचालित", "local": "स्थानीय", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "रिमोट (एसएफटीपी)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "स्थानीय निर्देशिका", + "description": "Termix बैकएंड पर वह पूर्ण पथ जहाँ स्थानीय मोड छवियों को लिखता है। सहेजने के बाद कभी नहीं दिखाया जाता। खाली होने पर TERMIX_IMAGE_DIR का उपयोग होता है।" }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "होस्ट पथ", + "description": "टर्मिनल एजेंटों को प्राप्त होने वाली स्थानीय निर्देशिका का होस्ट-साइड दृश्य।" }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "टीटीएल (मिलीमीटर)", + "description": "अपलोड की गई छवि को कितने समय तक रखा जाता है, मिलीसेकंड में। खाली मान TERMIX_IMAGE_TTL_MS या एक घंटे का उपयोग करता है।" }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "अधिकतम छवि संख्या", + "description": "अधिकांश छवियां एक साथ रखी जाती हैं। खाली होने पर TERMIX_MAX_IMAGE_COUNT या 100 का उपयोग होता है।" }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "अधिकतम संग्रहण बाइट्स", + "description": "एक बार में संग्रहीत छवियों के अधिकतम बाइट्स। खाली स्थिति में TERMIX_MAX_IMAGE_STORAGE_BYTES या 5 GiB का उपयोग होता है।" }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "डिस्कनेक्ट होने के बाद भी सेशन जारी रखें", + "description": "सर्वर पर डिस्कनेक्ट किए गए टर्मिनल को ऊपर बताए गए समय तक चालू रखें, ताकि उसका टैब दोबारा खोलने पर वहीं से काम शुरू हो सके जहां से रुका था।" }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "ऑटो-टीमक्स", + "description": "नए होस्ट के टर्मिनलों को tmux के अंदर चलाएं ताकि डिस्कनेक्ट होने पर भी सेशन जारी रहें (इसके लिए होस्ट पर tmux होना आवश्यक है)।" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "नए होस्ट के लिए थीम", + "description": "नए होस्ट के शुरू होने पर मिलने वाली टर्मिनल थीम।" }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "नए होस्ट के लिए फ़ॉन्ट", + "description": "वह टर्मिनल फॉन्ट जिससे कोई नया होस्ट शुरू होता है।" }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "नए होस्ट के लिए फ़ॉन्ट आकार", + "description": "किसी नए होस्ट के शुरू होने पर टर्मिनल फॉन्ट का आकार, पिक्सल में।" }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "नए होस्ट के लिए कर्सर शैली" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "नए होस्ट के लिए टिमटिमाता हुआ कर्सर" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "टर्मिनल टूलबार को सक्षम करें", + "description": "इस होस्ट के टूल्स और लाइव स्टैट्स के लिए सक्रिय टर्मिनल से जुड़ा एक त्वरित-पहुँच टूलबार दिखाएँ।" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "टूलबार की स्थिति", + "description": "टर्मिनल में टूलबार जहां स्थित होता है, आप उसे वहां से भी खींच सकते हैं।", + "bottom": "निचला बीच का", + "bottomLeft": "तली छोड़ें", + "bottomRight": "नीचे दाएं", + "top": "शीर्ष केंद्र", + "topLeft": "बाएं से बाएं", + "topRight": "ठीक तरह से ऊपर" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "टूलबार प्रारंभ स्थिति", + "description": "टर्मिनल कनेक्ट होने पर टूलबार विस्तारित रूप में खुलता है या न्यूनतम रूप में?", + "expanded": "विस्तारित", + "collapsed": "कम से कम" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "टूलबार डिस्प्ले मोड", + "description": "टूलबार बटन कैसे प्रदर्शित होते हैं। अंतिम बार उपयोग किए गए बटन टूलबार में आपके द्वारा चुने गए बटन को ही प्रदर्शित करते हैं।", + "remember": "अंतिम समय प्रयोग हुआ", + "icon": "केवल आइकन", + "labeled": "आइकन और लेबल", + "expanded": "आंकड़ों के साथ विस्तारित" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "लाइव आंकड़े दिखाएं", + "description": "विस्तारित मोड में टूलबार बटन के ऊपर लाइव होस्ट के आँकड़े दिखाएँ" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "निष्क्रिय होने पर धीरे-धीरे कम हो जाता है", + "description": "जब तक आप उस पर माउस नहीं ले जाते, तब तक टूलबार धीरे-धीरे गायब होता रहेगा।" }, "enableCommandHistory": { "label": "कमांड इतिहास", @@ -273,157 +273,157 @@ }, "enableTerminal": { "label": "टर्मिनल सक्षम करें", - "description": "Offer an SSH terminal for this host." + "description": "इस होस्ट के लिए एक SSH टर्मिनल उपलब्ध कराएं।" }, "inheritAppearance": { - "label": "Use user defaults" + "label": "उपयोगकर्ता डिफ़ॉल्ट का उपयोग करें" }, "theme": { "label": "थीम" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "टिमटिमाता हुआ कर्सर" }, "cursorStyle": { - "label": "Cursor style" + "label": "कर्सर शैली" }, "fontSize": { - "label": "Font size" + "label": "फ़ॉन्ट आकार" }, "fontFamily": { - "label": "Font" + "label": "फ़ॉन्ट" }, "scrollback": { - "label": "Scrollback" + "label": "स्क्रॉल बैक" }, "letterSpacing": { - "label": "Letter spacing" + "label": "पत्र अंतराल" }, "lineHeight": { - "label": "Line height" + "label": "ऊंची लाईन" }, "bellStyle": { - "label": "Bell" + "label": "घंटी" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "न्यूनतम कंट्रास्ट अनुपात" }, "backgroundImage": { - "label": "Background image" + "label": "पृष्ठभूमि छवि" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "पृष्ठभूमि छवि अपारदर्शिता" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "कस्टम थीम रंग" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "दायाँ क्लिक करने पर शब्द का चयन होता है" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "विकल्प मेटा है" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "तेज़ स्क्रॉल कुंजी" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "तेज़ स्क्रॉल गति" }, "backspaceMode": { - "label": "Backspace" + "label": "बैकस्पेस" }, "autoMosh": { - "label": "Auto mosh" + "label": "ऑटो मोश" }, "moshCommand": { - "label": "Mosh command" + "label": "मोश कमांड" }, "autoTmux": { - "label": "Auto tmux" + "label": "ऑटो tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "SSH शीर्षक का उपयोग करें" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "वाक्य - विन्यास पर प्रकाश डालना" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "सिंटैक्स हाइलाइटिंग श्रेणियाँ" }, "linkClickBehavior": { - "label": "Link click" + "label": "लिंक पर क्लिक करें" }, "localEcho": { - "label": "Local echo" + "label": "स्थानीय प्रतिध्वनि" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "पासवर्ड भरने के लिए दिए गए निर्देशों का पालन करने का प्रस्ताव दें" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "sudo प्रॉम्प्ट भरें" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "स्वचालित रूप से पुनः कनेक्ट करें" } }, "user": { "commandAutocomplete": { "label": "कमांड ऑटोकम्प्लीट", - "description": "Show autocomplete while typing if you press tab" + "description": "टैब दबाने पर टाइप करते समय ऑटो-कंप्लीट दिखाएं" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "स्थानीय प्रतिध्वनि", + "description": "सुरक्षित स्थानीय कीस्ट्रोक पूर्वानुमान का उपयोग करके इनपुट विलंबता को कम करें" }, "linkClickBehavior": { "label": "टर्मिनल लिंक क्लिक", "description": "टर्मिनल में लिंक क्लिक करने पर डिफ़ॉल्ट व्यवहार" }, "customThemes": { - "label": "Saved themes" + "label": "सहेजे गए विषय" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "स्थानीय टर्मिनल" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "लाइव टर्मिनल सत्रों का उपयोग करें", + "description": "यह सेशन शेयरिंग और रिकॉर्डिंग जैसी अन्य सुविधाओं को आपके लाइव टर्मिनल सेशन तक पहुंचने की अनुमति देता है।" }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "कमांड इतिहास पढ़ें", + "description": "इससे एआई असिस्टेंट जैसी अन्य सुविधाएं आपके कमांड इतिहास को पढ़ सकती हैं।" } }, "hosts": { "tabTerminal": "टर्मिनल", "addHost": "होस्ट जोड़ें", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "इस थीम को लागू करें", "backgroundImageDesc": "टर्मिनल पृष्ठभूमि छवि के लिए वैकल्पिक URL", "backgroundImageLabel": "पृष्ठभूमि छवि URL", "backgroundImageOpacityLabel": "पृष्ठभूमि छवि अपारदर्शिता", "backspaceMode": "बैकस्पेस मोड", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "कंट्रोल-एच (बीएस)", "backspaceModeLabel": "बैकस्पेस मोड", - "backspaceModeNormal": "Normal (DEL)", + "backspaceModeNormal": "सामान्य (डीईएल)", "behaviorAndAdvanced": "व्यवहार और उन्नत", "bellStyle": "बेल शैली", - "bellStyleBoth": "Both", + "bellStyleBoth": "दोनों", "bellStyleLabel": "घंटी शैली", "bellStyleNone": "कोई नहीं", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "आवाज़", + "bellStyleVisual": "तस्वीर", "colorTheme": "रंग थीम", "cursorBlink": "कर्सर ब्लिंक", "cursorBlinking": "कर्सर झपकना", "cursorBlinkingDesc": "टर्मिनल कर्सर के लिए झपकने वाला एनीमेशन सक्षम करें", "cursorStyle": "कर्सर शैली", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBar": "छड़", + "cursorStyleBlock": "अवरोध पैदा करना", "cursorStyleLabel": "कर्सर शैली", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "रेखांकन", "customThemeAnsiColors": "ANSI रंग", "customThemeBackground": "पृष्ठभूमि", "customThemeBlack": "काला", @@ -448,12 +448,12 @@ "customThemeSelection": "चयन", "customThemeWhite": "सफेद", "customThemeYellow": "पीला", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "इस थीम को हटाएँ", "docsLink": "दस्तावेज़ देखें", "enableAutoMosh": "ऑटो-मोश सक्षम करें", "enableAutoMoshDesc": "यदि उपलब्ध हो तो SSH के बजाय Mosh को प्राथमिकता दें", "enableAutoTmux": "ऑटो-tmux सक्षम करें", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "अपने शेल और उसमें चल रहे किसी भी चीज़ को डिस्कनेक्ट होने और ब्राउज़र के रीस्टार्ट होने पर भी चालू रखने के लिए, tmux के अंदर चलाएँ (होस्ट पर tmux इंस्टॉल होना चाहिए)।", "fastScrollModifier": "फास्ट स्क्रॉल मॉडिफ़ायर", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "फास्ट स्क्रॉल संवेदनशीलता", "fastScrollSensitivityLabel": "तेज़ स्क्रॉल संवेदनशीलता", "fontFamily": "फ़ॉन्ट परिवार", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "किसी पहले से इंस्टॉल किए गए फॉन्ट को चुनें, या कस्टम चुनें और अपने सिस्टम पर पहले से इंस्टॉल किए गए फॉन्ट का नाम लिखें (जैसे MesloLGS NF, Noto Sans Mono)। Termix आपके लिए फॉन्ट इंस्टॉल नहीं कर सकता, इसलिए पहले इसे अपने ऑपरेटिंग सिस्टम पर इंस्टॉल करें।", + "fontFamilyCustomOption": "रिवाज़...", + "fontFamilyCustomPlaceholder": "फ़ॉन्ट का सटीक नाम, उदाहरण के लिए MesloLGS NF", "fontFamilyLabel": "फ़ॉन्ट परिवार", "fontSize": "फ़ॉन्ट आकार", "fontSizeLabel": "फ़ॉन्ट आकार", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "सीधे खोलें", "linkClickBehaviorLabel": "लिंक क्लिक व्यवहार", "loadingHost": "होस्ट लोड हो रहा है...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "स्वचालित", + "localEchoDesc": "धीमे कनेक्शन पर स्थानीय रूप से सुरक्षित और प्रिंट करने योग्य कीस्ट्रोक्स का अनुमान लगाएं। पासवर्ड प्रॉम्प्ट और नियंत्रण इनपुट कभी भी प्रदर्शित नहीं होते हैं।", + "localEchoLabel": "स्थानीय प्रतिध्वनि", "localEchoOff": "बंद", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "हमेशा बने रहें", + "macOptionIsMetaLabel": "विकल्प कुंजी मेटा भेजती है", + "macOptionIsMetaShortDesc": "macOS पर Option/Alt कुंजी के साथ विशेष वर्ण (जैसे @ या |) टाइप करने को अक्षम करें, Meta भेजने के बजाय", "moshCommand": "MOSH कमांड", "moshCommandLabel": "Mosh कमांड", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "अभी तक कोई थीम सेव नहीं की गई है", "none": "कोई नहीं", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "जब टर्मिनल पासवर्ड मांगे तो सहेजा हुआ पासवर्ड भरने का विकल्प दें। इस होस्ट पर कभी भी पासवर्ड स्वतः न भरने के लिए इसे बंद कर दें।", + "passwordPromptAutoFillLabel": "पासवर्ड ऑटो-फिल की सुविधा प्रदान करें", + "autoReconnectLabel": "ऑटो जुड़े", + "autoReconnectDesc": "नेटवर्क में किसी तरह की गड़बड़ी या स्लीप मोड के बाद SSH कनेक्शन टूटने पर यह अपने आप फिर से कनेक्ट हो जाता है। स्क्रॉलबैक बरकरार रहता है।", "rightClickSelectsWord": "राइट क्लिक शब्द चयन", "rightClickSelectsWordLabel": "राइट-क्लिक शब्द चुनता है", "rightClickSelectsWordShortDesc": "राइट-क्लिक पर कर्सर के नीचे का शब्द चुनें", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "वैश्विक थीम के रूप में सहेजें", + "saveGlobalThemeError": "थीम सहेजने में विफल", + "saveGlobalThemeNamePrompt": "इस थीम के लिए एक नाम दर्ज करें", + "saveGlobalThemeSuccess": "थीम सहेजी गई", + "savedThemesLabel": "सहेजे गए विषय", "scrollbackBufferLabel": "स्क्रॉलबैक बफ़र", "scrollbackMaxLines": "इतिहास में रखी जाने वाली लाइनों की अधिकतम संख्या", "sudoPasswordAutoFill": "sudo पासवर्ड ऑटो-फिल", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "सफलता" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} को छोड़ दिया गया (कोई आईपी नहीं मिला)", + "proxmoxStatsUrlCopied": "Proxmox Stats URL क्लिपबोर्ड पर कॉपी हो गया है", "rdpUrlCopied": "RDP URL कॉपी किया गया", "vncUrlCopied": "VNC URL कॉपी किया गया", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "स्टेप सीए", "guac": { "noCredential": "कोई क्रेडेंशियल नहीं (नीचे सीधे क्रेडेंशियल)", "authTypeDirect": "सीधा", @@ -556,18 +556,18 @@ "updateHostBtn": "होस्ट अपडेट करें", "addHostBtn": "होस्ट जोड़ें" }, - "filterAuthVault": "Vault" + "filterAuthVault": "मेहराब" }, "nav": { "history": "इतिहास", - "localTerminal": "Local Terminal", + "localTerminal": "स्थानीय टर्मिनल", "sshTools": "SSH टूल्स", "terminal": "टर्मिनल", - "macros": "Macros" + "macros": "मैक्रो" }, "sshTools": { "broadcastInputPlaceholder": "कीस्ट्रोक्स प्रसारित करने के लिए यहाँ टाइप करें...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "चयनित टेक्स्ट को स्वचालित रूप से कॉपी करें", "enableRightClickCopyPaste": "राइट-क्लिक कॉपी/पेस्ट सक्षम करें", "fillPassword": "पासवर्ड भरें", "fillPasswordMissing": "{{count}} चयनित टर्मिनल(ों) के लिए कोई सहेजा गया पासवर्ड नहीं", @@ -583,123 +583,123 @@ "stopRecording": "रिकॉर्डिंग रोकें" }, "keybindings": { - "copy": "Copy selection", + "copy": "चयन की प्रतिलिपि बनाएँ", "paste": "चिपकाएँ", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Ctrl+अक्षर सिग्नल भेजें", + "sendText": "संदेश भेजें", + "controlCodeLabel": "पत्र", + "textLabel": "भेजने के लिए संदेश", + "appendEnterLabel": "भेजने के बाद एंटर दबाएँ", + "clipboardPermissionNote": "कुछ ब्राउज़रों में पहली बार उपयोग करने पर क्लिपबोर्ड की अनुमति मांगी जा सकती है।", + "textRequired": "भेजने के लिए टेक्स्ट दर्ज करें", + "controlCodeRequired": "नियंत्रण कोड के लिए एक अक्षर दर्ज करें", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "चयनित सामग्री को कॉपी करें (Ctrl+C, केवल तभी जब टेक्स्ट चयनित हो)", + "copyCtrlShiftC": "चयनित सामग्री को कॉपी करें (Ctrl+Shift+C)", + "copyCmdC": "चयनित सामग्री को कॉपी करें (Cmd+C)", + "pasteCtrlShiftV": "क्लिपबोर्ड से पेस्ट करें (Ctrl+Shift+V)", + "ctrlW": "ब्राउज़र टैब बंद करने से प्रतिबंधित (शेल पर Ctrl+W भेजें)", + "ctrlT": "ब्राउज़र टैब खोलने से अवरुद्ध करने के लिए Ctrl+T को शेल पर भेजें", + "ctrlN": "शेल खोलने के लिए Ctrl+N भेजें (ब्राउज़र विंडो खोलने से अवरुद्ध)", + "ctrlQ": "ब्राउज़र बंद करने से रोकने के लिए Ctrl+Q दबाकर शेल खोलें।" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "मैक्रो", + "description": "टर्मिनल में सहेजे गए कमांडों की एक श्रृंखला चलाएं, और सर्वर द्वारा वापस भेजे गए कमांडों पर प्रतिक्रिया दें।", "target": "लक्ष्य", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "कोई टर्मिनल खुला नहीं है", + "empty": "अभी तक कोई मैक्रो नहीं है", + "emptyHint": "लॉग इन करना, किसी सेवा को रीस्टार्ट करना या प्रॉम्प्ट का जवाब देना जैसे टर्मिनल कार्यों को स्वचालित करने के लिए एक मैक्रो बनाएं।", + "create": "नया मैक्रो", + "back": "मैक्रोज़ पर वापस जाएँ", "name": "नाम", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "वेब सर्वर को पुनः आरंभ करें", + "nameRequired": "मैक्रो को सेव करने से पहले उसे एक नाम दें।", "descriptionLabel": "विवरण", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "यह मैक्रो क्या करता है (वैकल्पिक)", "unsaved": "सहेजे न गए परिवर्तन", "save": "सहेजें", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "मैक्रो सहेजा गया", + "saveFailed": "मैक्रो को सहेजा नहीं जा सका", "delete": "हटाएँ", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "क्या इस मैक्रो को हटा दें?", + "deleteBody": "\"{{name}}\" को स्थायी रूप से हटा दिया जाएगा। इसे पूर्ववत नहीं किया जा सकता है।", + "deleted": "मैक्रो हटा दिया गया", "cancel": "रद्द करें", "run": "चलाएं", "stop": "स्टॉप", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "दौड़ना...", + "completed": "मैक्रो समाप्त हो गया", + "failed": "मैक्रो विफल रहा", + "loadFailed": "मैक्रो लोड नहीं हो सके", + "needTerminal": "सबसे पहले एक टर्मिनल खोलें और उससे कनेक्ट करें।", + "noSteps": "इस मैक्रो में अभी तक कोई चरण नहीं है। कृपया नीचे एक चरण जोड़ें।", + "addStep": "चरण जोड़ें", + "stepNumber": "चरण {{number}}", + "removeStep": "चरण हटाएँ", + "confirmRunTitle": "क्या आप इस मैक्रो को चलाना चाहते हैं?", + "confirmRunBody": "\"{{name}}\" {{host}} को कमांड भेजेगा।", + "confirmRunAction": "मैक्रो चलाएँ", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "कमांड भेजें", + "help": "यह टर्मिनल में ठीक उसी तरह टेक्स्ट टाइप करता है जैसे आप उसे खुद टाइप करते हैं।" }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "आउटपुट की प्रतीक्षा करें", + "help": "यह तब तक रुका रहता है जब तक सर्वर आपके द्वारा बताए गए टेक्स्ट को प्रिंट नहीं कर देता, जैसे पासवर्ड प्रॉम्प्ट।" }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "विराम", + "help": "अगले चरण से पहले एक निश्चित समय तक प्रतीक्षा करता है।" }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "यदि आउटपुट में शामिल है", + "help": "यह सर्वर द्वारा अब तक प्रिंट की गई हर चीज़ की जाँच करता है, फिर दो शाखाओं में से एक को चलाता है।" }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "दोहराना", + "help": "इसके अंदर के चरणों को निर्धारित संख्या में बार-बार दोहराता है।" } }, "send": { - "text": "Command or text", + "text": "आदेश या पाठ", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "भेजने के बाद एंटर दबाएँ", + "pressEnterHelp": "इसे बंद करने पर आपको टेक्स्ट टाइप करने के बाद उसे सबमिट करने की आवश्यकता नहीं होगी।" }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "आउटपुट में यह जानकारी आने तक प्रतीक्षा करें", "patternPlaceholder": "पासवर्ड:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "हार मान लो", + "onTimeout": "अगर यह कभी प्रकट नहीं होता", + "stop": "मैक्रो को रोकें", + "continue": "फिर भी आगे बढ़ते रहो।" }, "delay": { - "duration": "Wait for" + "duration": "के लिए प्रतीक्षा करें" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "यदि आउटपुट में शामिल है", + "patternPlaceholder": "सक्रिय: सक्रिय (चल रहा)", + "then": "फिर ऐसा करें", + "else": "अन्यथा ऐसा करें", + "emptyBranch": "कोई कदम नहीं" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "कितनी बार", + "times": "टाइम्स" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "नियमित अभिव्यक्ति के साथ मिलान करें", + "useRegexHelp": "इसे हटा दें ताकि यह लिखे गए पाठ से बिल्कुल मेल खाए।", + "invalidRegex": "यह एक मान्य रेगुलर एक्सप्रेशन नहीं है, इसे सादे टेक्स्ट के रूप में ही माना जाएगा।" }, "seconds": "सेकंड", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "रिमोट सर्वर आवश्यक है। इस कनेक्शन प्रकार का उपयोग करने के लिए सेटिंग्स में जाकर रिमोट सर्वर कनेक्ट करें।" } } diff --git a/plugins/ssh-terminal/locales/translated/id_ID.json b/plugins/ssh-terminal/locales/translated/id_ID.json index b3604b1e8..e2474ff3e 100644 --- a/plugins/ssh-terminal/locales/translated/id_ID.json +++ b/plugins/ssh-terminal/locales/translated/id_ID.json @@ -1,67 +1,67 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "Menambahkan", + "arrowDown": "Panah ke Bawah", + "arrowLeft": "Panah Kiri", + "arrowRight": "Panah Kanan", + "arrowUp": "Panah Atas", "backTab": "⇥", "ctrl": "Ctrl", "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "done": "Selesai", + "editQuickKeys": "Edit tombol pintasan", + "end": "Akhir", "esc": "Esc", - "home": "Home", + "home": "Rumah", "pageDown": "PgDn", "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", + "paste": "Pasta", + "quickKeyPlaceholder": "misalnya sudo ", + "quickKeysDesc": "Ketuk × untuk menghapus. Mendukung hingga 8 karakter.", + "quickKeysTitle": "Tombol Pintas", + "removeQuickKey": "Menghapus", + "resetDefaults": "Kembalikan ke pengaturan default", + "shift": "Menggeser", "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Gagal mengaktifkan Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux diaktifkan untuk {{host}}. Ini berlaku mulai koneksi berikutnya.", + "clipboardHttpWarning": "Tidak dapat membaca isi clipboard. Beberapa browser membatasi akses clipboard di luar HTTPS - coba tekan Ctrl+V, atau sajikan Termix melalui HTTPS.", "closeTab": "Tutup", - "connecting": "Connecting...", + "connecting": "Menghubungkan...", "connectionLost": "Koneksi terputus", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", + "connectionRejected": "Koneksi ditolak oleh server. Harap periksa otentikasi dan konfigurasi jaringan Anda.", + "connectionTimeout": "Waktu habis koneksi", + "enableAutoTmuxAction": "Aktifkan Auto-Tmux", + "hostKeyRejected": "Verifikasi kunci host SSH ditolak. Koneksi dibatalkan.", + "linkDialogCopy": "Menyalin", + "linkDialogOpen": "Membuka", + "linkDialogTitle": "Buka Tautan", + "maxReconnectAttemptsReached": "Upaya penyambungan kembali maksimum telah tercapai.", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "passwordPromptFillTitle": "Masukkan kata sandi yang tersimpan ke dalam kolom ini?", + "reconnect": "Terhubung kembali", + "reconnected": "Berhasil terhubung kembali", + "reconnecting": "Menghubungkan kembali... ({{attempt}}/{{max}})", + "autoReconnecting": "Koneksi terputus, sedang mencoba menyambungkan kembali...", + "searchCaseSensitive": "Kotak Korek Api", + "searchClose": "Tutup (Keluar)", + "searchNext": "Pertandingan Berikutnya (Masuk)", + "searchNoResults": "Tidak ada hasil", + "searchPlaceholder": "Menemukan", + "searchPrevious": "Pertandingan Sebelumnya (Shift+Enter)", + "searchRegex": "Gunakan Ekspresi Reguler", + "searchResultCount": "{{index}} dari {{count}}", + "searchWholeWord": "Cocokkan Seluruh Kata", + "sessionExpiredNotice": "Sesi Anda sebelumnya di {{host}} telah berakhir setelah {{minutes}} menit terputus; shell dan semua yang berjalan di dalamnya telah hilang. Aktifkan Auto-Tmux pada host ini untuk menjaga agar sesi tetap aktif.", + "sessionExpiredNoticeNoMinutes": "Sesi Anda sebelumnya di {{host}} telah berakhir saat terputus; shell dan semua yang berjalan di dalamnya telah hilang. Aktifkan Auto-Tmux pada host ini untuk menjaga agar sesi tetap aktif.", + "sessionTakenOver": "Sesi dibuka di tab lain. Sedang menyambungkan kembali...", "tmuxAttached": "Client terhubung", "tmuxAttachedCount": "{{count}} terhubung", "tmuxCopyHint": "Sesuaikan seleksi lalu tekan Enter untuk salin ke clipboard", "tmuxCreateNew": "Buat session baru", - "tmuxDetached": "Detached from tmux session", + "tmuxDetached": "Terputus dari sesi tmux", "tmuxLastActivity": "Aktivitas terakhir", "tmuxSessionAttached": "sesi tmux terhubung: {{name}}", "tmuxSessionCreated": "tmux session dibuat: {{name}}", @@ -74,632 +74,632 @@ "tmuxUnavailable": "tmux tidak terinstal di host, beralih ke shell standar", "tmuxWindowCount": "{{count}} window", "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "unknownError": "Terjadi kesalahan yang tidak diketahui.", + "websocketAbnormalClose": "Koneksi terputus secara tidak terduga. Ini mungkin disebabkan oleh masalah konfigurasi reverse proxy atau SSL. Silakan periksa log server.", + "websocketError": "Kesalahan koneksi WebSocket", + "clipboardReadFailed": "Gagal membaca dari clipboard. Pastikan izin clipboard telah diberikan.", + "clipboardWriteFailed": "Gagal menyalin ke papan klip. Pastikan halaman disajikan melalui HTTPS atau localhost.", + "connected": "Terhubung", + "totpCodeLabel": "Kode Verifikasi", + "duplicateTab": "Tab duplikat", + "imageChooseFile": "Pilih file gambar", + "imageUploaded": "Gambar diunggah: {{path}}", + "imageClipboardUnavailable": "Browser ini tidak dapat membaca gambar dari clipboard.", + "imageClipboardEmpty": "Tidak ada gambar yang ditemukan di papan klip.", + "localShell": "Shell terminal lokal", + "autocompleteHintComplete": "Tekan Tab atau Enter untuk menyelesaikan", + "autocompleteHintNavigate": "↑↓ untuk navigasi", + "autocompleteHintClose": "Tekan Esc untuk menutup" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Lepaskan tmux", + "detachTmuxDescription": "Lepaskan sesi tmux", + "dismissError": "Abaikan kesalahan gambar", + "hideToolbar": "Sembunyikan bilah alat", + "image": "Aksi gambar (hanya gambar)", + "imageActionFailed": "Aksi gambar gagal", + "layout": "Mode tampilan bilah alat", + "layoutExpanded": "Dilengkapi dengan metrik", + "layoutIcon": "Hanya ikon", + "layoutLabeled": "Ikon dan label", + "moveToolbar": "Pindahkan bilah alat", + "moveToolbarHint": "Seret untuk memposisikan ulang bilah alat", + "paste": "Tempel gambar", + "pasteImage": "Tempel gambar dari clipboard (hanya gambar)", + "retry": "Mencoba kembali", + "showToolbar": "Perluas bilah alat", + "upload": "Unggah gambar", + "uploadImage": "Unggah gambar ke host", + "uploadingImage": "Sedang mengunggah..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Tidak ada terminal yang dipilih", + "noTerminalSelectedHint": "Buka tab terminal SSH untuk melihat riwayat perintahnya.", + "searchPlaceholder": "Riwayat pencarian...", + "clearAll": "Hapus Semua", + "noHistoryEntries": "Tidak ada entri riwayat.", + "trackingDisabled": "Pelacakan riwayat dinonaktifkan", + "trackingDisabledHint": "Aktifkan Riwayat Perintah di tab Terminal SSH host ini.", + "commandCount_one": "{{count}} perintah", + "commandCount_other": "{{count}} perintah" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Aktifkan Input Sentuh", + "enabledDesc": "Izinkan pengguliran sentuh satu jari di terminal.", + "momentumEnabled": "Aktifkan Momentum", + "momentumEnabledDesc": "Lanjutkan menggulir sebentar setelah menggeser", + "advanced": "Canggih", + "resetDefaults": "Kembalikan ke pengaturan default", + "dragThreshold": "Ambang batas seret", + "maxWheelDelta": "Delta roda maksimum", + "momentumSampleWindow": "Jendela sampel momentum", + "releaseGracePeriod": "Masa tenggang pelepasan", + "minimumVelocity": "Kecepatan minimum", + "maximumVelocity": "Kecepatan maksimum", + "maximumDuration": "Durasi maksimum", + "maximumTravel": "Perjalanan maksimum", + "decayTime": "Waktu peluruhan", + "pixelsPerTick": "Piksel per detik", + "maximumFrameInterval": "Interval bingkai maksimum", + "maximumTicksPerFrame": "Jumlah tick maksimum per frame" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "ID instance sesi terminal", + "instanceIdDesc": "ID instans dari salah satu tab terminal yang terhubung, digunakan untuk menguji visibilitas.", + "selectedModeUnavailable": "Tidak tersedia", + "test": "Tes", + "testing": "Pengujian...", + "testFailed": "Pengujian penyimpanan gambar gagal.", + "testConnected": "Sesi terminal terhubung.", + "testNotConnected": "Tidak ada sesi terminal yang terhubung dengan ID instance ini.", + "testSelectedMode": "Unggahan akan menggunakan: {{mode}}", + "testLocalVisible": "Direktori lokal tersebut dapat dilihat dari host yang terhubung.", + "testLocalNotVisible": "Direktori lokal TIDAK terlihat dari host yang terhubung." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Input Sentuh", + "images": "Penyimpanan Gambar", + "sessions": "Sesi", + "newHosts": "Pembawa Acara Baru" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Ketahanan Sesi Terminal", + "description": "Berapa lama terminal yang terputus tetap aktif di server sebelum ditutup. Minimal 1 menit, maksimal 1440 menit. Untuk sesi yang harus bertahan lebih lama dari ini, aktifkan Auto-Tmux pada host." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Riwayat Perintah", + "description": "Izinkan perekaman riwayat perintah. Jika dinonaktifkan, riwayat tidak akan disimpan terlepas dari pengaturan per host." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Riwayat perintah untuk host baru", + "description": "Apakah host baru memulai dengan riwayat perintah diaktifkan." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "Mode Penyimpanan", + "description": "Di sinilah gambar terminal yang disalin dan diunggah ditulis. Pemilihan otomatis berdasarkan koneksi, Lokal dan Jarak Jauh (SFTP) telah ditetapkan.", + "auto": "Mobil", + "local": "Lokal", + "remoteSftp": "Jarak Jauh (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Direktori lokal", + "description": "Jalur absolut pada backend Termix tempat mode lokal menulis gambar. Tidak pernah ditampilkan setelah disimpan. Kosong menggunakan TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Jalur host", + "description": "Tampilan sisi host dari direktori lokal yang diterima oleh agen terminal." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Berapa lama gambar yang diunggah disimpan, dalam milidetik. Kosong menggunakan TERMIX_IMAGE_TTL_MS atau satu jam." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Jumlah gambar maksimum", + "description": "Sebagian besar gambar disimpan sekaligus. Kosong menggunakan TERMIX_MAX_IMAGE_COUNT atau 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Byte penyimpanan maksimum", + "description": "Sebagian besar byte gambar disimpan sekaligus. Kosong menggunakan TERMIX_MAX_IMAGE_STORAGE_BYTES atau 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Pertahankan sesi setelah terputus.", + "description": "Pertahankan agar terminal yang terputus tetap aktif di server selama waktu yang disebutkan di atas, sehingga saat dibuka kembali, tab-nya akan melanjutkan dari tempat terakhir kali berhenti." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Jalankan terminal host baru di dalam tmux agar sesi tetap berjalan meskipun terjadi pemutusan koneksi (membutuhkan tmux pada host)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Tema untuk host baru", + "description": "Tema terminal yang ditampilkan saat host baru dimulai." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Font untuk host baru", + "description": "Font terminal yang digunakan saat host baru pertama kali dijalankan." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Ukuran font untuk host baru", + "description": "Ukuran font terminal yang digunakan oleh host baru saat pertama kali dijalankan, dalam piksel." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Gaya kursor untuk host baru" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Kursor berkedip untuk host baru" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Aktifkan Toolbar Terminal", + "description": "Tampilkan bilah alat akses cepat yang terpasang pada terminal aktif untuk alat dan statistik langsung host ini." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Posisi Toolbar", + "description": "Di situlah letak toolbar di terminal. Anda masih bisa menyeretnya dari sana.", + "bottom": "Bagian tengah bawah", + "bottomLeft": "Kiri bawah", + "bottomRight": "Kanan bawah", + "top": "Tengah atas", + "topLeft": "Kiri atas", + "topRight": "Kanan atas" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Status Awal Toolbar", + "description": "Apakah toolbar terbuka dalam keadaan diperluas atau diminimalkan saat terminal terhubung", + "expanded": "Diperluas", + "collapsed": "Diminimalkan" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Mode Tampilan Toolbar", + "description": "Cara tombol toolbar ditampilkan. Terakhir digunakan akan menyimpan pilihan Anda sebelumnya di toolbar.", + "remember": "Terakhir digunakan", + "icon": "Hanya ikon", + "labeled": "Ikon dan label", + "expanded": "Dilengkapi dengan statistik" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Tampilkan Statistik Langsung", + "description": "Tampilkan statistik host langsung di atas tombol toolbar dalam mode diperluas." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Memudar Saat Diam", + "description": "Samarkan bilah alat hingga Anda mengarahkan kursor ke atasnya." }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Riwayat Perintah", + "description": "Rekam perintah yang dijalankan di terminal ini untuk riwayat dan pelengkapan otomatis." }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "Aktifkan Terminal", + "description": "Sediakan terminal SSH untuk host ini." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Gunakan pengaturan default pengguna." }, "theme": { - "label": "Theme" + "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Kursor berkedip" }, "cursorStyle": { - "label": "Cursor style" + "label": "Gaya kursor" }, "fontSize": { - "label": "Font size" + "label": "Ukuran font" }, "fontFamily": { "label": "Font" }, "scrollback": { - "label": "Scrollback" + "label": "Gulir ke belakang" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Jarak antar huruf" }, "lineHeight": { - "label": "Line height" + "label": "Tinggi baris" }, "bellStyle": { - "label": "Bell" + "label": "Bel" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Rasio kontras minimum" }, "backgroundImage": { - "label": "Background image" + "label": "Gambar latar belakang" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Opasitas gambar latar belakang" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Warna tema kustom" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Klik kanan memilih kata" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Opsi adalah Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Tombol gulir cepat" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Kecepatan gulir cepat" }, "backspaceMode": { - "label": "Backspace" + "label": "Hapus" }, "autoMosh": { "label": "Auto mosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Perintah mosh" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Gunakan judul SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Penyorotan sintaksis" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Kategori penyorotan sintaksis" }, "linkClickBehavior": { - "label": "Link click" + "label": "Klik tautan" }, "localEcho": { - "label": "Local echo" + "label": "Gema lokal" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Tawarkan untuk mengisi kolom kata sandi." }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Isi perintah sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Terhubung kembali secara otomatis" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Pelengkapan Otomatis Perintah", + "description": "Tampilkan fitur pelengkapan otomatis saat mengetik jika Anda menekan tombol Tab." }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Gema Lokal", + "description": "Kurangi latensi input yang dirasakan menggunakan prediksi penekanan tombol lokal yang aman." }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Klik Tautan Terminal", + "description": "Perilaku default saat mengklik tautan di terminal" }, "customThemes": { - "label": "Saved themes" + "label": "Tema yang tersimpan" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Terminal Lokal" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Gunakan sesi terminal langsung.", + "description": "Memungkinkan fitur lain, seperti berbagi sesi dan perekaman, untuk menjangkau sesi terminal langsung Anda." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Baca riwayat perintah", + "description": "Memungkinkan fitur lain, seperti asisten AI, untuk membaca riwayat perintah Anda." } }, "hosts": { "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", + "addHost": "Tambahkan Host", + "applyGlobalThemeTooltip": "Terapkan tema ini", + "backgroundImageDesc": "URL opsional untuk gambar latar belakang terminal.", + "backgroundImageLabel": "URL Gambar Latar Belakang", + "backgroundImageOpacityLabel": "Opasitas Gambar Latar Belakang", + "backspaceMode": "Mode Hapus", + "backspaceModeControlH": "Kontrol-H (BS)", + "backspaceModeLabel": "Mode Hapus", "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", + "behaviorAndAdvanced": "Perilaku & Tingkat Lanjut", + "bellStyle": "Gaya Lonceng", + "bellStyleBoth": "Keduanya", + "bellStyleLabel": "Gaya Lonceng", + "bellStyleNone": "Tidak ada", + "bellStyleSound": "Suara", "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", + "colorTheme": "Tema Warna", + "cursorBlink": "Kedipan Kursor", + "cursorBlinking": "Kursor Berkedip", + "cursorBlinkingDesc": "Aktifkan animasi berkedip untuk kursor terminal.", + "cursorStyle": "Gaya Kursor", + "cursorStyleBar": "Batang", + "cursorStyleBlock": "Memblokir", + "cursorStyleLabel": "Gaya Kursor", + "cursorStyleUnderline": "Menggarisbawahi", + "customThemeAnsiColors": "Warna ANSI", + "customThemeBackground": "Latar belakang", + "customThemeBlack": "Hitam", + "customThemeBlue": "Biru", + "customThemeBrightBlack": "Hitam Terang", + "customThemeBrightBlue": "Biru Terang", + "customThemeBrightCyan": "Biru Muda Terang", + "customThemeBrightGreen": "Hijau Terang", + "customThemeBrightMagenta": "Magenta Terang", + "customThemeBrightRed": "Merah Terang", + "customThemeBrightWhite": "Putih Terang", + "customThemeBrightYellow": "Kuning Cerah", + "customThemeColors": "Warna Kustom", + "customThemeCursor": "Kursor", + "customThemeCursorAccent": "Aksen Kursor", + "customThemeCyan": "Biru muda", + "customThemeForeground": "Latar depan", + "customThemeGreen": "Hijau", "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", - "fastScrollModifierAlt": "Alt", + "customThemeRed": "Merah", + "customThemeResetTooltip": "Kembalikan ke pengaturan default", + "customThemeSelection": "Pilihan", + "customThemeWhite": "Putih", + "customThemeYellow": "Kuning", + "deleteGlobalThemeTooltip": "Hapus tema ini", + "docsLink": "Lihat dokumen", + "enableAutoMosh": "Aktifkan Auto-Mosh", + "enableAutoMoshDesc": "Lebih baik menggunakan Mosh daripada SSH jika tersedia.", + "enableAutoTmux": "Aktifkan Auto-Tmux", + "enableAutoTmuxDesc": "Jaga agar shell Anda dan semua yang berjalan di dalamnya tetap aktif meskipun terjadi pemutusan koneksi dan restart browser dengan menjalankan perintah di dalam tmux (tmux harus diinstal pada host).", + "fastScrollModifier": "Pengubah Gulir Cepat", + "fastScrollModifierAlt": "Alternatif", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "Pengubah Gulir Cepat", + "fastScrollModifierShift": "Menggeser", + "fastScrollSensitivity": "Sensitivitas Gulir Cepat", + "fastScrollSensitivityLabel": "Sensitivitas Gulir Cepat", + "fontFamily": "Keluarga Font", + "fontFamilyCustomHint": "Pilih font yang sudah tersedia, atau pilih Kustom dan ketik nama persis font yang sudah terpasang di sistem Anda (misalnya MesloLGS NF, Noto Sans Mono). Termix tidak dapat memasang font untuk Anda, pasang terlebih dahulu di sistem operasi Anda.", + "fontFamilyCustomOption": "Kebiasaan...", + "fontFamilyCustomPlaceholder": "Nama font yang tepat, misalnya MesloLGS NF", + "fontFamilyLabel": "Keluarga Font", + "fontSize": "Ukuran Huruf", + "fontSizeLabel": "Ukuran Huruf", + "hostNotFound": "Host tidak ditemukan", + "letterSpacing": "Jarak Antar Huruf", + "letterSpacingPx": "Jarak Antar Huruf (px)", + "lineHeight": "Tinggi Baris", + "lineHeightLabel": "Tinggi Baris", + "linkClickBehaviorConfirm": "Tampilkan jendela pop-up untuk membuka atau menyalin", + "linkClickBehaviorDesc": "Mengontrol apa yang terjadi saat Anda mengklik tautan di terminal. Gunakan 'Default' untuk mengikuti pengaturan tingkat aplikasi.", + "linkClickBehaviorDirect": "Buka langsung", + "linkClickBehaviorLabel": "Perilaku Klik Tautan", + "loadingHost": "Memuat host...", + "localEchoAuto": "Otomatis", + "localEchoDesc": "Memprediksi penekanan tombol yang aman dan dapat dicetak secara lokal pada koneksi lambat. Permintaan kata sandi dan input kontrol tidak pernah diulang.", + "localEchoLabel": "Gema Lokal", + "localEchoOff": "Mati", + "localEchoOn": "Selalu aktif", + "macOptionIsMetaLabel": "Tombol Opsi Mengirim Meta", + "macOptionIsMetaShortDesc": "Nonaktifkan pengetikan karakter khusus (seperti @ atau |) dengan tombol Option/Alt di macOS sebagai pengganti pengiriman Meta.", + "moshCommand": "Komando MOSH", + "moshCommandLabel": "Perintah Mosh", + "noSavedThemes": "Belum ada tema yang tersimpan.", + "none": "Tidak ada", + "passwordPromptAutoFillDesc": "Tawarkan untuk mengisi kata sandi yang tersimpan saat terminal memintanya. Matikan fitur ini agar tidak pernah mengisi kata sandi secara otomatis pada host ini.", + "passwordPromptAutoFillLabel": "Tawarkan fitur Isi Otomatis Kata Sandi", + "autoReconnectLabel": "Sambungkan Kembali Otomatis", + "autoReconnectDesc": "Terhubung kembali secara otomatis ketika koneksi SSH terputus, misalnya setelah gangguan jaringan atau mode tidur. Menyimpan riwayat penelusuran.", + "rightClickSelectsWord": "Klik kanan memilih Word", + "rightClickSelectsWordLabel": "Klik kanan Pilih Word", + "rightClickSelectsWordShortDesc": "Pilih kata di bawah kursor dengan klik kanan.", + "saveAsGlobalTheme": "Simpan sebagai Tema Global", + "saveGlobalThemeError": "Gagal menyimpan tema", + "saveGlobalThemeNamePrompt": "Masukkan nama untuk tema ini", + "saveGlobalThemeSuccess": "Tema tersimpan", + "savedThemesLabel": "Tema Tersimpan", + "scrollbackBufferLabel": "Buffer Gulir Balik", + "scrollbackMaxLines": "Jumlah maksimum baris yang disimpan dalam riwayat", + "sudoPasswordAutoFill": "Isi Otomatis Kata Sandi Sudo", + "sudoPasswordAutoFillDesc": "Simpan kata sandi sudo agar metrik host, perintah terminal, dan lainnya dapat menjalankan perintah istimewa secara otomatis.", + "sudoPasswordAutoFillLabel": "Isi Otomatis Kata Sandi Sudo", + "syntaxCategoryIpAddresses": "Alamat IP", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "Tingkat Log", + "syntaxCategoryLogLevelsDesc": "kesalahan, peringatan, info, debug, fatal", + "syntaxCategoryNumbers": "Angka Berlabel", + "syntaxCategoryNumbersDesc": "port 8080, keluar 1, status 404", + "syntaxCategoryPaths": "Jalur File", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", + "syntaxCategoryTimestamps": "Cap waktu", "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryUrls": "URL", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", + "syntaxHighlightingDesc": "Berikan warna pada output terminal (kesalahan, jalur, IP, stempel waktu)", + "syntaxHighlightingLabel": "Penyorotan Sintaksis", + "terminalAppearance": "Tampilan Terminal", + "theme": "Tema", + "themePreview": "Pratinjau Tema", + "useSSHTitleDesc": "Perbarui judul tab dari judul jendela shell, bukan nama host.", + "useSSHTitleLabel": "Gunakan Judul Jendela SSH", "enableTunnel": "Aktifkan Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "enableFileManager": "Aktifkan Pengelola File", + "enableDocker": "Aktifkan Docker", + "startupSnippet": "Cuplikan Startup", + "quickActions": "Tindakan Cepat", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Kesuksesan" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} dilewati (tidak ditemukan IP)", + "proxmoxStatsUrlCopied": "URL Statistik Proxmox disalin ke papan klip", + "rdpUrlCopied": "URL RDP disalin", + "vncUrlCopied": "URL VNC disalin", + "filterAuthStepca": "Langkah CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", + "noCredential": "Tidak memerlukan kredensial (kredensial langsung di bawah)", + "authTypeDirect": "Langsung", + "authTypeCredential": "Mandat", + "authTypeNone": "Tidak ada", + "recordingPath": "Jalur Perekaman", + "recordingName": "Nama Rekaman", + "saveHostFirst": "Selamatkan tuan rumah terlebih dahulu.", + "sharingOptionsAfterSave": "Opsi berbagi tersedia setelah host disimpan.", + "permissionLevel": "Tingkat Izin", + "typeHeader": "Jenis", "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "permissionHeader": "Izin", + "cancelBtn": "Membatalkan", + "savingBtn": "Penghematan...", + "updateHostBtn": "Perbarui Host", + "addHostBtn": "Tambahkan Host" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Kubah" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", + "history": "Sejarah", + "localTerminal": "Terminal Lokal", + "sshTools": "Alat SSH", "terminal": "Terminal", - "macros": "Macros" + "macros": "Makro" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "Ketik di sini untuk menyiarkan ketukan keyboard...", + "copyOnSelect": "Salin teks yang dipilih secara otomatis", + "enableRightClickCopyPaste": "Aktifkan salin/tempel dengan klik kanan", + "fillPassword": "Isi kata sandi", + "fillPasswordMissing": "Tidak ada kata sandi tersimpan untuk {{count}} terminal yang dipilih", + "fillPasswordSuccess": "Kata sandi dimasukkan ke dalam terminal {{count}}", + "keyRecordingTitle": "Rekaman Kunci", + "noTerminalTabsOpen": "Tidak ada tab terminal yang terbuka.", + "recordToTerminals": "Rekam ke terminal", + "selectAll": "Semua", + "selectNone": "Tidak ada", + "selectTerminalsAbove": "Pilih terminal di atas", + "settingsTitle": "Pengaturan", + "startRecording": "Mulai Merekam", + "stopRecording": "Hentikan Perekaman" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "Salin pilihan", + "paste": "Pasta", + "sendControlCode": "Kirim sinyal Ctrl+huruf", + "sendText": "Kirim pesan teks", + "controlCodeLabel": "Surat", + "textLabel": "Teks untuk dikirim", + "appendEnterLabel": "Tekan Enter setelah mengirim", + "clipboardPermissionNote": "Pada beberapa browser, mungkin akan meminta izin akses clipboard saat pertama kali digunakan.", + "textRequired": "Masukkan teks yang ingin dikirim", + "controlCodeRequired": "Masukkan satu huruf untuk kode kontrol.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Salin pilihan (Ctrl+C, hanya jika teks dipilih)", + "copyCtrlShiftC": "Salin pilihan (Ctrl+Shift+C)", + "copyCmdC": "Salin pilihan (Cmd+C)", + "pasteCtrlShiftV": "Salin dari clipboard (Ctrl+Shift+V)", + "ctrlW": "Kirim Ctrl+W ke shell (diblokir agar tidak menutup tab browser)", + "ctrlT": "Kirim Ctrl+T ke shell (diblokir agar tidak membuka tab browser)", + "ctrlN": "Kirim Ctrl+N ke shell (diblokir agar tidak membuka jendela browser)", + "ctrlQ": "Kirim Ctrl+Q ke shell (diblokir agar tidak menutup browser)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "Makro", + "description": "Jalankan serangkaian perintah yang tersimpan di terminal, dan tanggapi apa yang dikirimkan kembali oleh server.", "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "noTerminal": "Tidak ada terminal yang terbuka", + "empty": "Belum ada makro", + "emptyHint": "Buat makro untuk mengotomatiskan alur terminal, seperti masuk, memulai ulang layanan, atau menjawab perintah.", + "create": "Makro baru", + "back": "Kembali ke makro", + "name": "Nama", + "namePlaceholder": "Mulai ulang server web", + "nameRequired": "Beri nama makro sebelum menyimpannya.", + "descriptionLabel": "Keterangan", + "descriptionPlaceholder": "Fungsi makro ini (opsional)", + "unsaved": "Perubahan yang belum disimpan", + "save": "Menyimpan", + "saved": "Makro tersimpan", + "saveFailed": "Makro tidak dapat disimpan.", + "delete": "Menghapus", + "deleteTitle": "Hapus makro ini?", + "deleteBody": "\"{{name}}\" akan dihapus secara permanen. Ini tidak dapat dibatalkan.", + "deleted": "Makro dihapus", + "cancel": "Membatalkan", + "run": "Berlari", + "stop": "Berhenti", + "running": "Berlari...", + "completed": "Makro selesai", + "failed": "Makro gagal", + "loadFailed": "Makro tidak dapat dimuat", + "needTerminal": "Buka dan sambungkan terminal terlebih dahulu.", + "noSteps": "Makro ini belum memiliki langkah. Tambahkan langkah di bawah ini.", + "addStep": "Tambahkan langkah", + "stepNumber": "Langkah {{number}}", + "removeStep": "Hapus langkah", + "confirmRunTitle": "Jalankan makro ini?", + "confirmRunBody": "\"{{name}}\" akan mengirimkan perintah ke {{host}}.", + "confirmRunAction": "Jalankan makro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Kirim perintah", + "help": "Mengetik teks ke terminal, sama seperti jika Anda mengetiknya." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Tunggu hingga muncul output.", + "help": "Akan berhenti sejenak hingga server menampilkan teks yang Anda sebutkan, seperti saat meminta kata sandi." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Berhenti sebentar", + "help": "Menunggu dalam jangka waktu tertentu sebelum melanjutkan ke langkah berikutnya." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Jika output berisi", + "help": "Memeriksa semua yang telah dicetak server sejauh ini, lalu menjalankan salah satu dari dua cabang." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Mengulang", + "help": "Menjalankan langkah-langkah di dalamnya sebanyak jumlah kali yang telah ditentukan." } }, "send": { - "text": "Command or text", + "text": "Perintah atau teks", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Tekan Enter setelah mengirim", + "pressEnterHelp": "Matikan opsi ini untuk mengetik teks tanpa mengirimkannya." }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "Tunggu hingga output berisi", + "patternPlaceholder": "kata sandi:", + "timeout": "Menyerah setelah", + "onTimeout": "Jika itu tidak pernah muncul", + "stop": "Hentikan makro", + "continue": "Tetaplah melanjutkan" }, "delay": { - "duration": "Wait for" + "duration": "Tunggu" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Jika outputnya berisi", + "patternPlaceholder": "Aktif: aktif (berjalan)", + "then": "Kemudian lakukan ini", + "else": "Jika tidak, lakukan ini", + "emptyBranch": "Tidak ada tangga" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Jumlah kali", + "times": "waktu" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Cocokkan dengan ekspresi reguler", + "useRegexHelp": "Hilangkan bagian ini agar sesuai persis dengan teks yang tertulis.", + "invalidRegex": "Bukan ekspresi reguler yang valid, akan dicocokkan sebagai teks biasa." }, - "seconds": "seconds", + "seconds": "detik", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Diperlukan server jarak jauh. Hubungkan server jarak jauh di Pengaturan untuk menggunakan jenis koneksi ini." } } diff --git a/plugins/ssh-terminal/locales/translated/nl_NL.json b/plugins/ssh-terminal/locales/translated/nl_NL.json index 33f4814a6..a1790dd8b 100644 --- a/plugins/ssh-terminal/locales/translated/nl_NL.json +++ b/plugins/ssh-terminal/locales/translated/nl_NL.json @@ -1,333 +1,333 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "Toevoegen", + "arrowDown": "Pijl omlaag", + "arrowLeft": "Pijl naar links", + "arrowRight": "Pijl naar rechts", + "arrowUp": "Pijl omhoog", "backTab": "⇥", "ctrl": "Ctrl", "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "done": "Klaar", + "editQuickKeys": "Sneltoetsen bewerken", + "end": "Einde", "esc": "Esc", - "home": "Home", + "home": "Thuis", "pageDown": "PgDn", "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", + "paste": "Plakken", + "quickKeyPlaceholder": "bijv. sudo ", + "quickKeysDesc": "Tik op × om te verwijderen. Ondersteunt maximaal 8 tekens.", + "quickKeysTitle": "Sneltoetsen", + "removeQuickKey": "Verwijderen", + "resetDefaults": "Terugzetten naar standaardinstellingen", + "shift": "Verschuiving", "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", + "autoTmuxEnableFailed": "Auto-Tmux inschakelen is mislukt.", + "autoTmuxEnabled": "Auto-Tmux ingeschakeld voor {{host}}. Dit geldt vanaf de volgende verbinding.", + "clipboardHttpWarning": "Kon het klembord niet lezen. Sommige browsers beperken de toegang tot het klembord buiten HTTPS - probeer in plaats daarvan Ctrl+V, of serveer Termix via HTTPS.", + "closeTab": "Dichtbij", + "connecting": "Verbinden...", + "connectionLost": "Verbinding verbroken", + "connectionRejected": "Verbinding geweigerd door de server. Controleer uw authenticatie- en netwerkconfiguratie.", + "connectionTimeout": "Verbindingstime-out", + "enableAutoTmuxAction": "Auto-Tmux inschakelen", + "hostKeyRejected": "SSH-hostsleutelverificatie geweigerd. Verbinding verbroken.", + "linkDialogCopy": "Kopiëren", "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", + "linkDialogTitle": "Open link", + "maxReconnectAttemptsReached": "Maximaal aantal herverbindingspogingen bereikt", + "noHostSelected": "Geen host geselecteerd", + "passwordPromptFillTitle": "Voer het opgeslagen wachtwoord in op dit veld.", + "reconnect": "Opnieuw verbinding maken", + "reconnected": "De verbinding is succesvol hersteld.", + "reconnecting": "Opnieuw verbinding maken... ({{attempt}}/{{max}})", + "autoReconnecting": "Verbinding verbroken, opnieuw verbinding maken...", + "searchCaseSensitive": "Lucifersdoosje", + "searchClose": "Sluiten (Escape)", + "searchNext": "Volgende wedstrijd (Invoeren)", + "searchNoResults": "Geen resultaten", + "searchPlaceholder": "Vinden", + "searchPrevious": "Vorige wedstrijd (Shift+Enter)", + "searchRegex": "Gebruik een reguliere expressie.", + "searchResultCount": "{{index}} van {{count}}", + "searchWholeWord": "Combineer het hele woord", + "sessionExpiredNotice": "Je vorige sessie op {{host}} is na {{minutes}} minuten verlopen; de shell en alles wat erin draaide, is verdwenen. Schakel Auto-Tmux op deze host in om sessies actief te houden.", + "sessionExpiredNoticeNoMinutes": "Je vorige sessie op {{host}} is verlopen terwijl de verbinding verbroken was; de shell en alles wat daarin draaide, is verdwenen. Schakel Auto-Tmux in op deze host om sessies actief te houden.", + "sessionTakenOver": "De sessie is in een ander tabblad geopend. Opnieuw verbinding maken...", + "tmuxAttached": "Aangesloten klanten", + "tmuxAttachedCount": "{{count}} bevestigd", + "tmuxCopyHint": "Pas je selectie aan en druk op Enter om naar het klembord te kopiëren.", + "tmuxCreateNew": "Start een nieuwe sessie", + "tmuxDetached": "Losgekoppeld van de tmux-sessie", + "tmuxLastActivity": "Laatste activiteit", + "tmuxSessionAttached": "tmux-sessie gekoppeld: {{name}}", + "tmuxSessionCreated": "tmux-sessie aangemaakt: {{name}}", + "tmuxSessionPickerDesc": "Bestaande tmux-sessies gevonden op deze host. Selecteer er een om opnieuw verbinding te maken of een nieuwe sessie te creëren.", + "tmuxSessionPickerTitle": "tmux-sessies", + "tmuxTimeDays": "{{count}}dagen geleden", + "tmuxTimeHours": "{{count}}uur geleden", + "tmuxTimeJustNow": "zojuist", + "tmuxTimeMinutes": "{{count}}m geleden", + "tmuxUnavailable": "Tmux is niet geïnstalleerd op de externe host, er wordt teruggevallen op de standaard shell.", + "tmuxWindowCount": "{{count}} venster", "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "unknownError": "Er is een onbekende fout opgetreden.", + "websocketAbnormalClose": "De verbinding is onverwacht verbroken. Dit kan te wijten zijn aan een probleem met de reverse proxy of de SSL-configuratie. Controleer de serverlogboeken.", + "websocketError": "WebSocket-verbindingsfout", + "clipboardReadFailed": "Het lezen van het klembord is mislukt. Zorg ervoor dat de juiste klembordrechten zijn verleend.", + "clipboardWriteFailed": "Kopiëren naar klembord mislukt. Zorg ervoor dat de pagina via HTTPS of localhost wordt aangeboden.", + "connected": "Aangesloten", + "totpCodeLabel": "Verificatiecode", + "duplicateTab": "Tabblad dupliceren", + "imageChooseFile": "Kies een afbeeldingsbestand", + "imageUploaded": "Afbeelding geüpload: {{path}}", + "imageClipboardUnavailable": "Deze browser kan geen afbeeldingen van het klembord lezen.", + "imageClipboardEmpty": "Er is geen afbeelding gevonden in het klembord.", + "localShell": "Lokale terminal shell", + "autocompleteHintComplete": "Tab of Enter om te voltooien", + "autocompleteHintNavigate": "↑↓ om te navigeren", + "autocompleteHintClose": "Esc om te sluiten" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Ontkoppel tmux", + "detachTmuxDescription": "Ontkoppel de tmux-sessie", + "dismissError": "Afbeeldingsfout negeren", + "hideToolbar": "Werkbalk verbergen", + "image": "Acties met afbeeldingen (alleen afbeeldingen)", + "imageActionFailed": "Afbeeldingsactie mislukt", + "layout": "Werkbalkweergavemodus", + "layoutExpanded": "Uitgebreid met meetgegevens", + "layoutIcon": "Alleen pictogram", + "layoutLabeled": "Pictogrammen en labels", + "moveToolbar": "Verplaats de werkbalk", + "moveToolbarHint": "Sleep om de werkbalk te verplaatsen.", + "paste": "Plak afbeelding", + "pasteImage": "Plak een afbeelding vanuit het klembord (alleen afbeeldingen)", + "retry": "Opnieuw proberen", + "showToolbar": "Werkbalk uitklappen", + "upload": "Afbeelding uploaden", + "uploadImage": "Upload een afbeelding naar de host.", + "uploadingImage": "Bezig met uploaden..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Geen terminal geselecteerd", + "noTerminalSelectedHint": "Open een SSH-terminaltabblad om de opdrachtgeschiedenis te bekijken.", + "searchPlaceholder": "Zoekgeschiedenis...", + "clearAll": "Alles wissen", + "noHistoryEntries": "Geen geschiedenisvermeldingen", + "trackingDisabled": "Geschiedenisregistratie is uitgeschakeld", + "trackingDisabledHint": "Schakel de opdrachtgeschiedenis in op het tabblad SSH-terminal van deze host.", + "commandCount_one": "{{count}} commando", + "commandCount_other": "{{count}} commando's" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Aanraakinvoer inschakelen", + "enabledDesc": "Schakel scrollen met één vinger in op terminals in.", + "momentumEnabled": "Activeer momentum", + "momentumEnabledDesc": "Scroll nog even kort verder na een veegbeweging.", + "advanced": "Geavanceerd", + "resetDefaults": "Terugzetten naar standaardinstellingen", + "dragThreshold": "Sleepdrempel", + "maxWheelDelta": "Maximale wieldelta", + "momentumSampleWindow": "Momentum-steekproefvenster", + "releaseGracePeriod": "Vrijlatingstermijn", + "minimumVelocity": "Minimale snelheid", + "maximumVelocity": "Maximale snelheid", + "maximumDuration": "Maximale duur", + "maximumTravel": "Maximale reis", + "decayTime": "Vervaltijd", + "pixelsPerTick": "Pixels per tik", + "maximumFrameInterval": "Maximale frame-interval", + "maximumTicksPerFrame": "Maximaal aantal ticks per frame" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "Terminal sessie instantie-ID", + "instanceIdDesc": "Instantie-ID van een van uw verbonden terminaltabbladen, gebruikt om de zichtbaarheid te testen.", + "selectedModeUnavailable": "Niet beschikbaar", "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "Testen...", + "testFailed": "Het testen van de beeldopslag is mislukt.", + "testConnected": "De terminalsessie is verbonden.", + "testNotConnected": "Er is geen verbonden terminalsessie met deze instantie-ID.", + "testSelectedMode": "Een upload zou het volgende gebruiken: {{mode}}", + "testLocalVisible": "De lokale map is zichtbaar vanaf de verbonden host.", + "testLocalNotVisible": "De lokale map is NIET zichtbaar vanaf de verbonden host." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Aanraakinvoer", + "images": "Afbeeldingsopslag", + "sessions": "Sessies", + "newHosts": "Nieuwe hosts" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Terminalsessiepersistentie", + "description": "Hoe lang een losgekoppelde terminal actief blijft op de server voordat deze wordt gesloten. Minimaal 1, maximaal 1440 minuten. Voor sessies die langer dan deze tijd actief moeten blijven, schakelt u Auto-Tmux in op de host." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Commandogeschiedenis", + "description": "Sta het vastleggen van de opdrachtgeschiedenis toe. Indien uitgeschakeld, wordt de geschiedenis niet opgeslagen, ongeacht de instellingen per host." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Opdrachtgeschiedenis voor nieuwe hosts", + "description": "Of nieuwe hosts starten met de opdrachtgeschiedenis ingeschakeld." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Opslagmodus", + "description": "Hier worden geplakte en geüploade terminalafbeeldingen opgeslagen. Automatische selectie op basis van de verbinding, lokaal en extern (SFTP) zijn vastgelegd.", "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "local": "Lokaal", + "remoteSftp": "Op afstand (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Lokale map", + "description": "Het absolute pad in de Termix-backend waar de lokale modus afbeeldingen opslaat. Wordt na het opslaan nooit weergegeven. Een lege map gebruikt TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Hostpad", + "description": "De weergave aan de hostzijde van de lokale directory die terminalagents ontvangen." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Hoe lang een geüploade afbeelding wordt bewaard, in milliseconden. Een lege afbeelding wordt bewaard in TERMIX_IMAGE_TTL_MS, oftewel één uur." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Maximaal aantal afbeeldingen", + "description": "De meeste afbeeldingen worden tegelijk bewaard. Een lege afbeelding gebruikt TERMIX_MAX_IMAGE_COUNT of 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Maximale opslagcapaciteit in bytes", + "description": "De meeste bytes van afbeeldingen worden tegelijk bewaard. Een lege afbeelding gebruikt TERMIX_MAX_IMAGE_STORAGE_BYTES of 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Sessies behouden na ontkoppeling", + "description": "Houd een losgekoppelde terminal gedurende de bovengenoemde tijd actief op de server, zodat het heropenen van het tabblad verdergaat waar het was gebleven." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Start de terminals van nieuwe hosts binnen tmux, zodat sessies behouden blijven bij verbroken verbindingen (tmux moet op de host geïnstalleerd zijn)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Thema voor nieuwe hosts", + "description": "Het terminalthema waarmee een nieuwe host opstart." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Lettertype voor nieuwe hosts", + "description": "Het terminallettertype waarmee een nieuwe host opstart." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Lettergrootte voor nieuwe hosts", + "description": "De lettergrootte waarmee een nieuwe host in de terminal begint, in pixels." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Cursorstijl voor nieuwe hosts" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Knipperende cursor voor nieuwe hosts" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Terminalwerkbalk inschakelen", + "description": "Toon een sneltoegangsbalk die is vastgezet aan de actieve terminal voor de tools en live statistieken van deze host." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Positie van de werkbalk", + "description": "De werkbalk bevindt zich normaal gesproken in de terminal. Je kunt hem daar nog steeds naartoe slepen.", + "bottom": "Onderste midden", + "bottomLeft": "Linksonder", + "bottomRight": "Rechtsonder", + "top": "Boven in het midden", + "topLeft": "Links boven", + "topRight": "Rechtsboven" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Werkbalk startstatus", + "description": "Of de werkbalk nu uitgeklapt of ingeklapt wordt geopend wanneer de terminal verbinding maakt.", + "expanded": "Uitgebreid", + "collapsed": "Geminimaliseerd" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Werkbalkweergavemodus", + "description": "Hoe de knoppen in de werkbalk worden weergegeven. De laatst gebruikte instelling behoudt de geselecteerde optie in de werkbalk.", + "remember": "Laatst gebruikt", + "icon": "Alleen pictogram", + "labeled": "Pictogrammen en labels", + "expanded": "Uitgebreid met statistieken" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Toon live statistieken", + "description": "Toon live hoststatistieken boven de knoppen in de werkbalk in de uitgevouwen modus." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Vervagen bij inactiviteit", + "description": "Laat de werkbalk vervagen totdat je er met de muis overheen beweegt." }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Commandogeschiedenis", + "description": "Sla de commando's die in deze terminal worden uitgevoerd op voor de geschiedenis en automatisch aanvullen." }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "Terminal inschakelen", + "description": "Bied een SSH-terminal aan voor deze host." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Gebruik de standaardinstellingen van de gebruiker." }, "theme": { - "label": "Theme" + "label": "Thema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Knipperende cursor" }, "cursorStyle": { - "label": "Cursor style" + "label": "Cursorstijl" }, "fontSize": { - "label": "Font size" + "label": "Lettergrootte" }, "fontFamily": { - "label": "Font" + "label": "Lettertype" }, "scrollback": { - "label": "Scrollback" + "label": "Terugscrollen" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Letterafstand" }, "lineHeight": { - "label": "Line height" + "label": "Lijnhoogte" }, "bellStyle": { - "label": "Bell" + "label": "Klok" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Minimale contrastverhouding" }, "backgroundImage": { - "label": "Background image" + "label": "Achtergrondafbeelding" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Dekking van de achtergrondafbeelding" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Aangepaste themakleuren" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Met de rechtermuisknop wordt het woord geselecteerd." }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Optie is Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Snel scrolltoets" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Snelle scrollsnelheid" }, "backspaceMode": { "label": "Backspace" @@ -336,370 +336,370 @@ "label": "Auto mosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh-commando" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Gebruik de SSH-titel" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Syntaxmarkering" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Syntaxmarkeringcategorieën" }, "linkClickBehavior": { - "label": "Link click" + "label": "Link klikken" }, "localEcho": { - "label": "Local echo" + "label": "Lokale echo" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Bied aan om de wachtwoordprompts in te vullen." }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Vul de sudo-prompts in." }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Automatisch opnieuw verbinding maken" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Opdracht automatisch aanvullen", + "description": "Toon automatisch aanvullen tijdens het typen als je op tab drukt." }, "localEcho": { "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "description": "Verminder de waargenomen invoerlatentie met behulp van veilige lokale toetsaanslagvoorspelling." }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Terminallink Klik", + "description": "Standaardgedrag bij het klikken op links in de terminal" }, "customThemes": { - "label": "Saved themes" + "label": "Opgeslagen thema's" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Lokale terminal" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Gebruik live terminalsessies", + "description": "Hiermee kunnen andere functies, zoals het delen en opnemen van sessies, uw live terminalsessies bereiken." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Lees de opdrachtgeschiedenis", + "description": "Hiermee kunnen andere functies, zoals de AI-assistent, uw commando-geschiedenis lezen." } }, "hosts": { "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", - "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", + "addHost": "Voeg een host toe", + "applyGlobalThemeTooltip": "Pas dit thema toe", + "backgroundImageDesc": "Optionele URL voor een achtergrondafbeelding voor de terminal", + "backgroundImageLabel": "URL van de achtergrondafbeelding", + "backgroundImageOpacityLabel": "Dekking van de achtergrondafbeelding", + "backspaceMode": "Backspace-modus", + "backspaceModeControlH": "Controle-H (BS)", + "backspaceModeLabel": "Backspace-modus", + "backspaceModeNormal": "Normaal (DEL)", + "behaviorAndAdvanced": "Gedrag & Geavanceerd", + "bellStyle": "Klokstijl", + "bellStyleBoth": "Beide", + "bellStyleLabel": "Klokstijl", + "bellStyleNone": "Geen", + "bellStyleSound": "Geluid", + "bellStyleVisual": "Visueel", + "colorTheme": "Kleurenthema", + "cursorBlink": "Cursorknipperen", + "cursorBlinking": "Knipperende cursor", + "cursorBlinkingDesc": "Schakel de knipperanimatie voor de terminalcursor in.", + "cursorStyle": "Cursorstijl", "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", + "cursorStyleBlock": "Blok", + "cursorStyleLabel": "Cursorstijl", + "cursorStyleUnderline": "Onderstrepen", + "customThemeAnsiColors": "ANSI-kleuren", + "customThemeBackground": "Achtergrond", + "customThemeBlack": "Zwart", + "customThemeBlue": "Blauw", + "customThemeBrightBlack": "Helderzwart", + "customThemeBrightBlue": "Helderblauw", + "customThemeBrightCyan": "Helder cyaan", + "customThemeBrightGreen": "Felgroen", + "customThemeBrightMagenta": "Fel magenta", + "customThemeBrightRed": "Felrood", + "customThemeBrightWhite": "Helder wit", + "customThemeBrightYellow": "Felgeel", + "customThemeColors": "Aangepaste kleuren", "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", + "customThemeCursorAccent": "Cursoraccent", + "customThemeCyan": "Cyaan", + "customThemeForeground": "Voorgrond", + "customThemeGreen": "Groente", "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", + "customThemeRed": "Rood", + "customThemeResetTooltip": "Terugzetten naar standaardinstellingen", + "customThemeSelection": "Selectie", + "customThemeWhite": "Wit", + "customThemeYellow": "Geel", + "deleteGlobalThemeTooltip": "Verwijder dit thema", + "docsLink": "Documenten bekijken", + "enableAutoMosh": "Auto-Mosh inschakelen", + "enableAutoMoshDesc": "Geef de voorkeur aan Mosh boven SSH indien beschikbaar.", + "enableAutoTmux": "Auto-Tmux inschakelen", + "enableAutoTmuxDesc": "Zorg ervoor dat je shell en alles wat daarin draait, blijft functioneren, ook na een verbindingsoverbreking of een herstart van de browser, door tmux te gebruiken (tmux moet wel op de host geïnstalleerd zijn).", + "fastScrollModifier": "Snel scrollen-modifier", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", + "fastScrollModifierLabel": "Snel scrollen-modifier", + "fastScrollModifierShift": "Verschuiving", + "fastScrollSensitivity": "Snel scrollen gevoeligheid", + "fastScrollSensitivityLabel": "Snel scrollen gevoeligheid", + "fontFamily": "Lettertypefamilie", + "fontFamilyCustomHint": "Kies een van de meegeleverde lettertypen, of selecteer 'Aangepast' en typ de exacte naam van een lettertype dat al op uw systeem is geïnstalleerd (bijv. MesloLGS NF, Noto Sans Mono). Termix kan geen lettertypen voor u installeren; installeer ze eerst op uw besturingssysteem.", + "fontFamilyCustomOption": "Aangepast...", + "fontFamilyCustomPlaceholder": "Exacte lettertypenaam, bijvoorbeeld MesloLGS NF", + "fontFamilyLabel": "Lettertypefamilie", + "fontSize": "Lettergrootte", + "fontSizeLabel": "Lettergrootte", + "hostNotFound": "Host niet gevonden", + "letterSpacing": "Letterafstand", + "letterSpacingPx": "Letterafstand (px)", + "lineHeight": "Lijnhoogte", + "lineHeightLabel": "Lijnhoogte", + "linkClickBehaviorConfirm": "Toon pop-up om te openen of te kopiëren", + "linkClickBehaviorDesc": "Hiermee bepaal je wat er gebeurt wanneer je op een link in de terminal klikt. Gebruik 'Standaard' om de instelling op app-niveau te volgen.", + "linkClickBehaviorDirect": "Direct openen", + "linkClickBehaviorLabel": "Klikgedrag op links", + "loadingHost": "Host wordt geladen...", + "localEchoAuto": "Automatisch", + "localEchoDesc": "Voorspel lokaal veilige toetsaanslagen, ook bij trage internetverbindingen. Wachtwoordprompts en besturingsinvoer worden nooit weergegeven.", "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", + "localEchoOff": "Uit", + "localEchoOn": "Altijd aan", + "macOptionIsMetaLabel": "Option-toets verzendt metadata", + "macOptionIsMetaShortDesc": "Schakel het typen van speciale tekens (zoals @ of |) met de Option/Alt-toets op macOS uit in plaats van Meta te verzenden.", + "moshCommand": "MOSH-commando", "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "noSavedThemes": "Nog geen opgeslagen thema's", + "none": "Geen", + "passwordPromptAutoFillDesc": "Bied aan om het opgeslagen wachtwoord in te vullen wanneer de terminal daarom vraagt. Schakel deze optie uit om nooit automatisch een wachtwoord in te vullen op deze host.", + "passwordPromptAutoFillLabel": "Automatisch wachtwoord invullen aanbieden", + "autoReconnectLabel": "Automatisch opnieuw verbinden", + "autoReconnectDesc": "Maakt automatisch opnieuw verbinding wanneer de SSH-verbinding wegvalt, bijvoorbeeld na een netwerkstoring of in de slaapstand. Behoudt de scrollback-functie.", + "rightClickSelectsWord": "Rechtsklikken selecteert Word", + "rightClickSelectsWordLabel": "Rechtsklikken selecteert Word", + "rightClickSelectsWordShortDesc": "Selecteer het woord onder de cursor door met de rechtermuisknop te klikken.", + "saveAsGlobalTheme": "Opslaan als globaal thema", + "saveGlobalThemeError": "Het opslaan van het thema is mislukt.", + "saveGlobalThemeNamePrompt": "Geef dit thema een naam.", + "saveGlobalThemeSuccess": "Thema opgeslagen", + "savedThemesLabel": "Opgeslagen thema's", + "scrollbackBufferLabel": "Terugscrollbuffer", + "scrollbackMaxLines": "Maximaal aantal regels dat in de geschiedenis wordt bewaard", + "sudoPasswordAutoFill": "Sudo-wachtwoord automatisch invullen", + "sudoPasswordAutoFillDesc": "Sla een sudo-wachtwoord op, zodat hoststatistieken, terminalprompts en andere programma's automatisch geprivilegieerde opdrachten kunnen uitvoeren.", + "sudoPasswordAutoFillLabel": "Sudo-wachtwoord automatisch invullen", + "syntaxCategoryIpAddresses": "IP-adressen", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "Logniveaus", + "syntaxCategoryLogLevelsDesc": "fout, waarschuwing, info, debug, fataal", + "syntaxCategoryNumbers": "Gelabelde nummers", + "syntaxCategoryNumbersDesc": "poort 8080, uitgang 1, status 404", + "syntaxCategoryPaths": "Bestandspaden", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", + "syntaxCategoryTimestamps": "Tijdstempels", "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryUrls": "URL's", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "Kleur de terminaluitvoer (fouten, paden, IP-adressen, tijdstempels) in.", + "syntaxHighlightingLabel": "Syntaxmarkering", + "terminalAppearance": "Terminale verschijning", + "theme": "Thema", + "themePreview": "Themavoorbeeld", + "useSSHTitleDesc": "Werk de tabtitel bij met de venstertitel van de shell in plaats van de hostnaam.", + "useSSHTitleLabel": "Gebruik SSH-venstertitel", + "enableTunnel": "Tunnel inschakelen", + "enableFileManager": "Bestandsbeheer inschakelen", + "enableDocker": "Docker inschakelen", + "startupSnippet": "Opstartfragment", + "quickActions": "Snelle acties", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Succes" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} overgeslagen (geen IP-adres gevonden)", + "proxmoxStatsUrlCopied": "De URL van Proxmox Stats is naar het klembord gekopieerd.", + "rdpUrlCopied": "RDP-URL gekopieerd", + "vncUrlCopied": "VNC-URL gekopieerd", + "filterAuthStepca": "Stap CA", "guac": { - "noCredential": "No credential (direct credentials below)", + "noCredential": "Geen inloggegevens (directe inloggegevens hieronder)", "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", + "authTypeCredential": "Referentie", + "authTypeNone": "Geen", + "recordingPath": "Opnamepad", + "recordingName": "Opnamenaam", + "saveHostFirst": "Sla eerst de host op.", + "sharingOptionsAfterSave": "Deelopties zijn beschikbaar nadat de host is opgeslagen.", + "permissionLevel": "Toegangsniveau", "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", + "targetHeader": "Doel", + "permissionHeader": "Toestemming", + "cancelBtn": "Annuleren", + "savingBtn": "Besparing...", "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "addHostBtn": "Voeg een host toe" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Kluis" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", + "history": "Geschiedenis", + "localTerminal": "Lokale terminal", + "sshTools": "SSH-tools", "terminal": "Terminal", - "macros": "Macros" + "macros": "Macro's" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "Typ hier om toetsaanslagen te verzenden...", + "copyOnSelect": "Geselecteerde tekst automatisch kopiëren", + "enableRightClickCopyPaste": "Schakel kopiëren/plakken via rechtermuisklik in.", + "fillPassword": "Voer het wachtwoord in", + "fillPasswordMissing": "Er is geen opgeslagen wachtwoord voor de geselecteerde terminal(s) {{count}}", + "fillPasswordSuccess": "Wachtwoord ingevuld in de terminal(s) {{count}}", + "keyRecordingTitle": "Toonopname", + "noTerminalTabsOpen": "Geen terminaltabbladen geopend", + "recordToTerminals": "Opnemen naar terminals", + "selectAll": "Alle", + "selectNone": "Geen", + "selectTerminalsAbove": "Selecteer de terminals hierboven", + "settingsTitle": "Instellingen", + "startRecording": "Start opnemen", + "stopRecording": "Stop met opnemen" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "Selectie kopiëren", + "paste": "Plakken", + "sendControlCode": "Verzend het Ctrl+letter-signaal", + "sendText": "Sms verzenden", + "controlCodeLabel": "Brief", + "textLabel": "Tekst om te verzenden", + "appendEnterLabel": "Druk op Enter na het verzenden.", + "clipboardPermissionNote": "In sommige browsers kan bij het eerste gebruik om toestemming voor het gebruik van het klembord worden gevraagd.", + "textRequired": "Voer de tekst in die u wilt verzenden", + "controlCodeRequired": "Voer één letter in als besturingscode.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Selectie kopiëren (Ctrl+C, alleen als tekst is geselecteerd)", + "copyCtrlShiftC": "Selectie kopiëren (Ctrl+Shift+C)", + "copyCmdC": "Selectie kopiëren (Cmd+C)", + "pasteCtrlShiftV": "Plakken vanuit het klembord (Ctrl+Shift+V)", + "ctrlW": "Stuur Ctrl+W naar de shell (blokkeert het sluiten van het browsertabblad)", + "ctrlT": "Stuur Ctrl+T naar de shell (blokkeert het openen van een browsertabblad)", + "ctrlN": "Stuur Ctrl+N naar de shell (blokkeert het openen van een browservenster)", + "ctrlQ": "Stuur Ctrl+Q naar de shell (blokkeert het afsluiten van de browser)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", + "title": "Macro's", + "description": "Voer een opgeslagen reeks commando's uit in een terminal en reageer op wat de server terugstuurt.", + "target": "Doel", + "noTerminal": "Geen terminal geopend", + "empty": "Nog geen macro's", + "emptyHint": "Maak een macro om een terminalproces te automatiseren, zoals inloggen, een service herstarten of prompts beantwoorden.", + "create": "Nieuwe macro", + "back": "Terug naar macro's", + "name": "Naam", + "namePlaceholder": "Webserver opnieuw opstarten", + "nameRequired": "Geef de macro een naam voordat je hem opslaat.", + "descriptionLabel": "Beschrijving", + "descriptionPlaceholder": "Wat deze macro doet (optioneel)", + "unsaved": "Niet-opgeslagen wijzigingen", + "save": "Redden", + "saved": "Macro opgeslagen", + "saveFailed": "Het lukte niet om de macro op te slaan.", + "delete": "Verwijderen", + "deleteTitle": "Deze macro verwijderen?", + "deleteBody": "\"{{name}}\" wordt permanent verwijderd. Dit kan niet ongedaan gemaakt worden.", + "deleted": "Macro verwijderd", + "cancel": "Annuleren", + "run": "Loop", "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Rennen...", + "completed": "Macro voltooid", + "failed": "Macro mislukt", + "loadFailed": "Macro's konden niet worden geladen.", + "needTerminal": "Open en verbind eerst een terminal.", + "noSteps": "Deze macro bevat nog geen stappen. Voeg er hieronder een toe.", + "addStep": "Voeg stap toe", + "stepNumber": "Stap {{number}}", + "removeStep": "Verwijder stap", + "confirmRunTitle": "Voer deze macro uit?", + "confirmRunBody": "\"{{name}}\" zal commando's naar {{host}} sturen.", + "confirmRunAction": "Macro uitvoeren", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Verzend commando", + "help": "Typt tekst in de terminal, net alsof je die zelf hebt ingetypt." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Wacht op uitvoer", + "help": "Het programma pauzeert totdat de server de door u opgegeven tekst afdrukt, zoals bij een wachtwoordprompt." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Pauze", + "help": "Wacht een vaste tijdsduur voordat de volgende stap wordt uitgevoerd." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Als de uitvoer het volgende bevat", + "help": "Controleert alles wat de server tot nu toe heeft afgedrukt en voert vervolgens een van de twee vertakkingen uit." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Herhalen", + "help": "Voert de stappen binnenin een vast aantal keren uit." } }, "send": { - "text": "Command or text", + "text": "Opdracht of tekst", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Druk op Enter na het verzenden.", + "pressEnterHelp": "Schakel deze optie uit om tekst te typen zonder deze te verzenden." }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "Wacht tot de uitvoer het volgende bevat:", + "patternPlaceholder": "wachtwoord:", + "timeout": "Geef het op na", + "onTimeout": "Als het nooit verschijnt", + "stop": "Stop de macro", + "continue": "Ga toch door." }, "delay": { - "duration": "Wait for" + "duration": "Wachten op" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Als de uitvoer het volgende bevat:", + "patternPlaceholder": "Actief: actief (lopend)", + "then": "Doe dan dit", + "else": "Doe anders dit", + "emptyBranch": "Geen treden" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Aantal keren", + "times": "tijden" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Overeenkomst met een reguliere expressie", + "useRegexHelp": "Laat dit weg om de tekst exact over te nemen zoals die is geschreven.", + "invalidRegex": "Dit is geen geldige reguliere expressie; het wordt als platte tekst herkend." }, - "seconds": "seconds", + "seconds": "seconden", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Externe server vereist. Verbind een externe server in de instellingen om dit verbindingstype te gebruiken." } } diff --git a/plugins/ssh-terminal/locales/translated/no_NO.json b/plugins/ssh-terminal/locales/translated/no_NO.json index ed88b7b34..f743ef698 100644 --- a/plugins/ssh-terminal/locales/translated/no_NO.json +++ b/plugins/ssh-terminal/locales/translated/no_NO.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { "addQuickKey": "Legg til", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "arrowDown": "Pil ned", + "arrowLeft": "Pil venstre", + "arrowRight": "Pil høyre", + "arrowUp": "Pil opp", "backTab": "⇥", "ctrl": "Ctrl", "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "done": "Ferdig", + "editQuickKeys": "Rediger hurtigtaster", + "end": "Slutt", "esc": "Esc", "home": "Hjem", "pageDown": "PgDn", "pageUp": "PgUp", "paste": "Lim inn", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", + "quickKeyPlaceholder": "f.eks. sudo ", + "quickKeysDesc": "Trykk på × for å fjerne. Støtter opptil 8 tegn.", + "quickKeysTitle": "Hurtigtaster", "removeQuickKey": "Fjern", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "resetDefaults": "Tilbakestill til standardinnstillinger", + "shift": "Skifte", + "tab": "Fane" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Kunne ikke aktivere Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux er aktivert for {{host}}. Det gjelder fra neste tilkobling.", + "clipboardHttpWarning": "Kunne ikke lese utklippstavlen. Noen nettlesere begrenser tilgang til utklippstavlen utenfor HTTPS – prøv Ctrl+V i stedet, eller server Termix over HTTPS.", "closeTab": "Lukk", "connecting": "Kobler til...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", + "connectionLost": "Forbindelsen gikk tapt", + "connectionRejected": "Tilkoblingen ble avvist av serveren. Sjekk autentiseringen og nettverkskonfigurasjonen din.", "connectionTimeout": "Tilkoblingstidsavbrudd", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", + "enableAutoTmuxAction": "Aktiver Auto-Tmux", + "hostKeyRejected": "Verifisering av SSH-vertsnøkkel avvist. Tilkoblingen ble avbrutt.", "linkDialogCopy": "Kopier", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", + "linkDialogOpen": "Åpne", + "linkDialogTitle": "Åpne lenke", "maxReconnectAttemptsReached": "Maks antall tilkoblingsforsøk nådd", "noHostSelected": "Ingen vert valgt", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", + "passwordPromptFillTitle": "Skriv inn det lagrede passordet i denne meldingen?", "reconnect": "Koble til på nytt", "reconnected": "Tilkoblet på nytt", "reconnecting": "Kobler til på nytt... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", + "autoReconnecting": "Forbindelsen ble brutt, kobler til på nytt...", + "searchCaseSensitive": "Match-saken", + "searchClose": "Lukk (Escape)", + "searchNext": "Neste kamp (Enter)", + "searchNoResults": "Ingen resultater", "searchPlaceholder": "Finn", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", + "searchPrevious": "Forrige treff (Shift+Enter)", + "searchRegex": "Bruk regulært uttrykk", + "searchResultCount": "{{index}} av {{count}}", + "searchWholeWord": "Finn hele ordet", + "sessionExpiredNotice": "Din forrige økt på {{host}} utløp etter {{minutes}} minutter frakobling; skallet og alt som kjører i det er borte. Aktiver Auto-Tmux på denne verten for å holde øktene aktive.", + "sessionExpiredNoticeNoMinutes": "Din forrige økt på {{host}} utløp mens den var frakoblet; skallet og alt som kjører i det er borte. Aktiver Auto-Tmux på denne verten for å holde øktene aktive.", + "sessionTakenOver": "Økten ble åpnet i en annen fane. Kobler til igjen...", + "tmuxAttached": "Tilknyttede klienter", + "tmuxAttachedCount": "{{count}} vedlagt", + "tmuxCopyHint": "Juster valget og trykk Enter for å kopiere til utklippstavlen", + "tmuxCreateNew": "Start ny økt", + "tmuxDetached": "Frakoblet fra tmux-økten", + "tmuxLastActivity": "Siste aktivitet", + "tmuxSessionAttached": "tmux-økt vedlagt: {{name}}", + "tmuxSessionCreated": "tmux-økt opprettet: {{name}}", + "tmuxSessionPickerDesc": "Eksisterende tmux-økter funnet på denne verten. Velg én for å koble til på nytt eller opprett en ny økt.", + "tmuxSessionPickerTitle": "tmux-økter", + "tmuxTimeDays": "for {{count}}dager siden", + "tmuxTimeHours": "for {{count}}t siden", + "tmuxTimeJustNow": "akkurat nå", + "tmuxTimeMinutes": "For {{count}}minutter siden", + "tmuxUnavailable": "tmux er ikke installert på den eksterne verten, og går tilbake til standard skall", + "tmuxWindowCount": "{{count}} vindu", + "tmuxWindows": "Vinduer", "unknownError": "Ukjent feil oppstod", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", + "websocketAbnormalClose": "Tilkoblingen ble avsluttet uventet. Dette kan skyldes et problem med omvendt proxy eller SSL-konfigurasjon. Sjekk serverloggene.", "websocketError": "WebSocket-tilkoblingsfeil", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", + "clipboardReadFailed": "Kunne ikke lese fra utklippstavlen. Sørg for at utklippstavlen har tillatelser.", + "clipboardWriteFailed": "Kunne ikke kopiere til utklippstavlen. Sørg for at siden serveres via HTTPS eller localhost.", "connected": "Tilkoblet", "totpCodeLabel": "Verifiseringskode", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Dupliser fane", + "imageChooseFile": "Velg en bildefil", + "imageUploaded": "Bilde lastet opp: {{path}}", + "imageClipboardUnavailable": "Denne nettleseren kan ikke lese bilder fra utklippstavlen", + "imageClipboardEmpty": "Fant ikke noe bilde på utklippstavlen", + "localShell": "Lokalt terminalskall", + "autocompleteHintComplete": "Tab eller Enter for å fullføre", + "autocompleteHintNavigate": "↑↓ for å navigere", + "autocompleteHintClose": "Esc for å lukke" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "Koble fra tmux", + "detachTmuxDescription": "Koble fra tmux-økten", + "dismissError": "Avvis bildefeil", + "hideToolbar": "Skjul verktøylinjen", + "image": "Bildehandlinger (kun bilder)", + "imageActionFailed": "Bildehandlingen mislyktes", + "layout": "Visningsmodus for verktøylinjen", + "layoutExpanded": "Utvidet med målinger", + "layoutIcon": "Kun ikon", + "layoutLabeled": "Ikoner og etiketter", + "moveToolbar": "Flytt verktøylinjen", + "moveToolbarHint": "Dra for å flytte verktøylinjen", + "paste": "Lim inn bilde", + "pasteImage": "Lim inn bilde fra utklippstavlen (kun bilder)", "retry": "Prøv igjen", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "showToolbar": "Utvid verktøylinjen", + "upload": "Last opp bilde", + "uploadImage": "Last opp et bilde til verten", "uploadingImage": "Laster opp..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Ingen terminal valgt", + "noTerminalSelectedHint": "Åpne en SSH-terminalfane for å se kommandohistorikken", + "searchPlaceholder": "Søkelogg...", + "clearAll": "Fjern alt", + "noHistoryEntries": "Ingen historikkoppføringer", + "trackingDisabled": "Historikksporing er deaktivert", + "trackingDisabledHint": "Slå på kommandohistorikk i SSH-terminal-fanen til denne verten.", + "commandCount_one": "{{count}} kommando", + "commandCount_other": "{{count}} kommandoer" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", + "enabled": "Aktiver berøringsinndata", + "enabledDesc": "Tillat énfinger-berøringsrulling i terminaler", + "momentumEnabled": "Aktiver momentum", + "momentumEnabledDesc": "Fortsett å bla kort etter et sveip", "advanced": "Avansert", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "resetDefaults": "Tilbakestill til standardinnstillinger", + "dragThreshold": "Dragterskel", + "maxWheelDelta": "Maksimal hjuldelta", + "momentumSampleWindow": "Momentum-eksempelvindu", + "releaseGracePeriod": "Frigivelsesfrist", + "minimumVelocity": "Minimumshastighet", + "maximumVelocity": "Maksimal hastighet", + "maximumDuration": "Maksimal varighet", + "maximumTravel": "Maksimal reise", + "decayTime": "Forfallstid", + "pixelsPerTick": "Piksler per tikk", + "maximumFrameInterval": "Maksimalt bildeintervall", + "maximumTicksPerFrame": "Maksimalt antall ticks per ramme" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "Terminaløktforekomst-ID", + "instanceIdDesc": "Forekomst-ID for en av dine tilkoblede terminalfaner, brukt til å teste synlighet.", + "selectedModeUnavailable": "Utilgjengelig", "test": "Test", "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testFailed": "Kunne ikke teste bildelagring", + "testConnected": "Terminaløkten er tilkoblet.", + "testNotConnected": "Ingen tilkoblet terminaløkt med denne instans-ID-en.", + "testSelectedMode": "En opplasting ville bruke: {{mode}}", + "testLocalVisible": "Den lokale katalogen er synlig fra den tilkoblede verten.", + "testLocalNotVisible": "Den lokale katalogen er IKKE synlig fra den tilkoblede verten." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Berøringsinndata", + "images": "Bildelagring", + "sessions": "Økter", + "newHosts": "Nye verter" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Terminaløktpersistens", + "description": "Hvor lenge en frakoblet terminal holdes aktiv på serveren før den lukkes. Min 1, maks 1440 minutter. For økter som må overleve dette, aktiver Auto-Tmux på verten." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Kommandohistorikk", + "description": "Tillat opptak av kommandohistorikk. Når den er deaktivert, lagres ikke historikken uavhengig av innstillinger per vert." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Kommandohistorikk for nye verter", + "description": "Om nye verter starter med kommandohistorikk aktivert." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", + "label": "Lagringsmodus", + "description": "Der innlimte og opplastede terminalbilder skrives. Automatiske valg etter tilkobling, lokal og ekstern (SFTP) er fikset.", + "auto": "Bil", "local": "Lokal", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Fjernstyrt (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Lokal katalog", + "description": "Absolutt sti på Termix-backend der lokal modus skriver bilder. Vises aldri etter lagring. Tom bruker TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Vertssti", + "description": "Vertsvisningen av den lokale katalogen som terminalagenter mottar." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Hvor lenge et opplastet bilde lagres, i millisekunder. Tomme bruker TERMIX_IMAGE_TTL_MS eller én time." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Maksimalt antall bilder", + "description": "De fleste bildene lagres samtidig. Tomme bruker TERMIX_MAX_IMAGE_COUNT eller 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Maksimalt antall lagringsbyte", + "description": "Flest byte med bilder lagres samtidig. Tomme filer bruker TERMIX_MAX_IMAGE_STORAGE_BYTES eller 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Behold økter etter frakobling", + "description": "Hold en frakoblet terminal aktiv på serveren i perioden ovenfor, slik at gjenåpning av fanen fortsetter der den slapp." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Kjør nye verters terminaler inne i tmux slik at økter overlever frakoblinger (trenger tmux på verten)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Tema for nye verter", + "description": "Terminaltemaet en ny vert starter med." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Skrifttype for nye verter", + "description": "Terminalfonten en ny vert starter med." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Skriftstørrelse for nye verter", + "description": "Terminalens skriftstørrelse en ny vert starter med, i piksler." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Markørstil for nye verter" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Blinkende markør for nye verter" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Aktiver terminalverktøylinjen", + "description": "Vis en verktøylinje for hurtig tilgang som er festet til den aktive terminalen for denne vertens verktøy og livestatistikk" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Verktøylinjeposisjon", + "description": "Der verktøylinjen er i terminalen. Du kan fortsatt dra den derfra.", + "bottom": "Nederst i midten", + "bottomLeft": "Nederst til venstre", + "bottomRight": "Nederst til høyre", + "top": "Øverst i midten", + "topLeft": "Øverst til venstre", + "topRight": "Øverst til høyre" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Verktøylinjens startstatus", + "description": "Om verktøylinjen åpnes utvidet eller minimert når terminalen kobler til", + "expanded": "Utvidet", + "collapsed": "Minimert" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Visningsmodus for verktøylinje", + "description": "Hvordan verktøylinjeknapper vises. Sist brukte beholder det du valgte i verktøylinjen.", + "remember": "Sist brukt", + "icon": "Kun ikon", + "labeled": "Ikoner og etiketter", + "expanded": "Utvidet med statistikk" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Vis livestatistikk", + "description": "Vis statistikk for direktesendte verter over knappene på verktøylinjen i utvidet modus" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Fade når den er inaktiv", + "description": "Vis verktøylinjen ut til du holder musepekeren over den" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Kommandohistorikk", + "description": "Record-kommandoer kjøres i denne terminalen for historikk og autofullføring" }, "enableTerminal": { "label": "Aktiver terminal", - "description": "Offer an SSH terminal for this host." + "description": "Tilby en SSH-terminal for denne verten." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Bruk brukerstandarder" }, "theme": { "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Blinkende markør" }, "cursorStyle": { - "label": "Cursor style" + "label": "Markørstil" }, "fontSize": { - "label": "Font size" + "label": "Skriftstørrelse" }, "fontFamily": { - "label": "Font" + "label": "Skrifttype" }, "scrollback": { - "label": "Scrollback" + "label": "Bla tilbake" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Bokstavavstand" }, "lineHeight": { - "label": "Line height" + "label": "Linjehøyde" }, "bellStyle": { - "label": "Bell" + "label": "Klokke" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Minimum kontrastforhold" }, "backgroundImage": { - "label": "Background image" + "label": "Bakgrunnsbilde" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Bakgrunnsbildets opasitet" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Tilpassede temafarger" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Høyreklikk velger ord" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Alternativet er Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Hurtigrullingstast" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Rask rullehastighet" }, "backspaceMode": { - "label": "Backspace" + "label": "Tilbake" }, "autoMosh": { - "label": "Auto mosh" + "label": "Automosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh-kommandoen" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Bruk SSH-tittelen" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Syntaksutheving" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Syntaksuthevingskategorier" }, "linkClickBehavior": { - "label": "Link click" + "label": "Klikk på lenken" }, "localEcho": { - "label": "Local echo" + "label": "Lokalt ekko" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Tilby å fylle ut passordforespørsler" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Fyll ut sudo-ledetekster" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Koble til automatisk på nytt" } }, "user": { "commandAutocomplete": { "label": "Kommandoautofullføring", - "description": "Show autocomplete while typing if you press tab" + "description": "Vis autofullføring mens du skriver hvis du trykker på tabulatortasten" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Lokalt ekko", + "description": "Reduser opplevd input latency ved hjelp av sikker lokal tastetrykkprediksjon" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Klikk på terminallenken", + "description": "Standardoppførsel når du klikker på lenker i terminalen" }, "customThemes": { - "label": "Saved themes" + "label": "Lagrede temaer" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Lokal terminal" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Bruk live terminaløkter", + "description": "Lar andre funksjoner, som deling og opptak av økter, nå dine direkte terminaløkter." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Les kommandohistorikk", + "description": "Lar andre funksjoner, som for eksempel AI-assistenten, lese kommandohistorikken din." } }, "hosts": { "tabTerminal": "Terminal", "addHost": "Legg til vert", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", + "applyGlobalThemeTooltip": "Bruk dette temaet", + "backgroundImageDesc": "Valgfri URL for et bakgrunnsbilde i terminalen", + "backgroundImageLabel": "URL-adresse for bakgrunnsbilde", + "backgroundImageOpacityLabel": "Bakgrunnsbildets opasitet", "backspaceMode": "Backspace-modus", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Kontroll-H (BS)", "backspaceModeLabel": "Backspace-modus", "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", + "behaviorAndAdvanced": "Atferd og avansert", "bellStyle": "Varselstil", "bellStyleBoth": "Begge", "bellStyleLabel": "Varselstil", "bellStyleNone": "Ingen", "bellStyleSound": "Lyd", "bellStyleVisual": "Visuell", - "colorTheme": "Color Theme", + "colorTheme": "Fargetema", "cursorBlink": "Blinkende markør", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", + "cursorBlinking": "Markør blinker", + "cursorBlinkingDesc": "Aktiver blinkende animasjon for terminalmarkøren", "cursorStyle": "Markørstil", "cursorStyleBar": "Linje", "cursorStyleBlock": "Blokk", "cursorStyleLabel": "Markørstil", "cursorStyleUnderline": "Understrek", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", + "customThemeAnsiColors": "ANSI-farger", + "customThemeBackground": "Bakgrunn", + "customThemeBlack": "Svart", + "customThemeBlue": "Blå", + "customThemeBrightBlack": "Lys svart", + "customThemeBrightBlue": "Klar blå", + "customThemeBrightCyan": "Lys cyan", + "customThemeBrightGreen": "Lys grønn", + "customThemeBrightMagenta": "Lys magenta", + "customThemeBrightRed": "Lys rød", + "customThemeBrightWhite": "Klar hvit", + "customThemeBrightYellow": "Lys gul", + "customThemeColors": "Tilpassede farger", + "customThemeCursor": "Markør", + "customThemeCursorAccent": "Markøraksent", "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", + "customThemeForeground": "Forgrunn", + "customThemeGreen": "Grønn", "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "customThemeRed": "Rød", + "customThemeResetTooltip": "Tilbakestill til standardinnstillinger", + "customThemeSelection": "Utvalg", + "customThemeWhite": "Hvit", + "customThemeYellow": "Gul", + "deleteGlobalThemeTooltip": "Slett dette temaet", + "docsLink": "Vis dokumenter", + "enableAutoMosh": "Aktiver automatisk moshing", + "enableAutoMoshDesc": "Foretrekker Mosh fremfor SSH hvis tilgjengelig", + "enableAutoTmux": "Aktiver Auto-Tmux", + "enableAutoTmuxDesc": "Hold skallet ditt og alt som kjører i det i live på tvers av frakoblinger og omstart av nettleseren ved å kjøre det i tmux (tmux må være installert på verten)", "fastScrollModifier": "Modifikator for rask rulling", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", "fastScrollModifierLabel": "Modifikator for rask rulling", - "fastScrollModifierShift": "Shift", + "fastScrollModifierShift": "Skifte", "fastScrollSensitivity": "Følsomhet for rask rulling", "fastScrollSensitivityLabel": "Følsomhet for rask rulling", "fontFamily": "Skrifttype", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Velg en medfølgende skrifttype, eller velg Tilpasset og skriv inn det nøyaktige navnet på en skrifttype som allerede er installert på systemet ditt (f.eks. MesloLGS NF, Noto Sans Mono). Termix kan ikke installere skrifter for deg, installer den på operativsystemet ditt først.", + "fontFamilyCustomOption": "Skikk...", + "fontFamilyCustomPlaceholder": "Nøyaktig skriftnavn, f.eks. MesloLGS NF", "fontFamilyLabel": "Skrifttype", "fontSize": "Skriftstørrelse", "fontSizeLabel": "Skriftstørrelse", - "hostNotFound": "Host not found", + "hostNotFound": "Verten ble ikke funnet", "letterSpacing": "Bokstavavstand", - "letterSpacingPx": "Letter Spacing (px)", + "letterSpacingPx": "Bokstavavstand (px)", "lineHeight": "Linjehøyde", "lineHeightLabel": "Linjehøyde", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", + "linkClickBehaviorConfirm": "Vis popup-vindu for å åpne eller kopiere", + "linkClickBehaviorDesc": "Styrer hva som skjer når du klikker på en lenke i terminalen. Bruk «Standard» for å følge innstillingen på appnivå.", + "linkClickBehaviorDirect": "Åpne direkte", + "linkClickBehaviorLabel": "Klikkatferd på lenker", + "loadingHost": "Laster inn vert ...", + "localEchoAuto": "Automatisk", + "localEchoDesc": "Forutsi trygge utskrivbare tastetrykk lokalt på trege tilkoblinger. Passordforespørsler og kontrollinndata gjentas aldri.", + "localEchoLabel": "Lokalt ekko", + "localEchoOff": "Av", + "localEchoOn": "Alltid på", + "macOptionIsMetaLabel": "Alternativtast sender meta", + "macOptionIsMetaShortDesc": "Deaktiver muligheten til å skrive spesialtegn (som @ eller |) med Tilvalg/Alt-tasten på macOS i stedet for å sende Meta", + "moshCommand": "MOSH-kommandoen", + "moshCommandLabel": "Mosh-kommandoen", + "noSavedThemes": "Ingen lagrede temaer ennå", "none": "Ingen", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Tilby å fylle ut det lagrede passordet når terminalen ber om det. Slå av for å aldri fylle ut noe passord automatisk på denne verten.", + "passwordPromptAutoFillLabel": "Automatisk utfylling av tilbudspassord", + "autoReconnectLabel": "Automatisk tilkobling på nytt", + "autoReconnectDesc": "Kobler til på nytt av seg selv når SSH-tilkoblingen faller ut, for eksempel etter et nettverksbrudd eller hvilemodus. Beholder tilbakeskrollingen.", "rightClickSelectsWord": "Høyreklikk velger ord", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "rightClickSelectsWordLabel": "Høyreklikk Velger ord", + "rightClickSelectsWordShortDesc": "Merk ordet under markøren ved høyreklikk", + "saveAsGlobalTheme": "Lagre som globalt tema", + "saveGlobalThemeError": "Kunne ikke lagre temaet", + "saveGlobalThemeNamePrompt": "Skriv inn et navn for dette temaet", + "saveGlobalThemeSuccess": "Tema lagret", + "savedThemesLabel": "Lagrede temaer", "scrollbackBufferLabel": "Tilbakerullebuffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "scrollbackMaxLines": "Maksimalt antall linjer lagret i historikken", + "sudoPasswordAutoFill": "Sudo-passord automatisk utfylling", + "sudoPasswordAutoFillDesc": "Lagre et sudo-passord slik at vertsmålinger, terminalledetekster og andre kan kjøre privilegerte kommandoer automatisk.", + "sudoPasswordAutoFillLabel": "Sudo-passord automatisk utfylling", + "syntaxCategoryIpAddresses": "IP-adresser", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "Loggnivåer", + "syntaxCategoryLogLevelsDesc": "feil, advarsel, info, feilsøking, fatal", + "syntaxCategoryNumbers": "Merkede tall", + "syntaxCategoryNumbersDesc": "port 8080, avkjørsel 1, status 404", + "syntaxCategoryPaths": "Filstier", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", + "syntaxCategoryTimestamps": "Tidsstempler", "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryUrls": "URL-er", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", + "syntaxHighlightingDesc": "Fargelegg terminalutdata (feil, stier, IP-adresser, tidsstempler)", + "syntaxHighlightingLabel": "Syntaksutheving", + "terminalAppearance": "Terminalens utseende", "theme": "Tema", "themePreview": "Temavisning", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", + "useSSHTitleDesc": "Oppdater fanetittelen fra skallets vindustittel i stedet for vertsnavnet", + "useSSHTitleLabel": "Bruk SSH-vindutittel", "enableTunnel": "Aktiver tunnel", "enableFileManager": "Aktiver filbehandler", - "enableDocker": "Enable Docker", + "enableDocker": "Aktiver Docker", "startupSnippet": "Oppstarts-snippet", "quickActions": "Hurtighandlinger", "proxmoxLastSyncStatus": { "success": "Suksess" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} hoppet over (ingen IP-adresse funnet)", + "proxmoxStatsUrlCopied": "Proxmox-statistikk-URL kopiert til utklippstavlen", + "rdpUrlCopied": "RDP-URL kopiert", + "vncUrlCopied": "VNC-URL kopiert", + "filterAuthStepca": "Trinn CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", + "noCredential": "Ingen legitimasjon (direkte legitimasjon nedenfor)", + "authTypeDirect": "Direkte", "authTypeCredential": "Legitimasjon", "authTypeNone": "Ingen", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", + "recordingPath": "Opptakssti", + "recordingName": "Opptaksnavn", + "saveHostFirst": "Lagre verten først.", + "sharingOptionsAfterSave": "Delingsalternativer er tilgjengelige etter at verten er lagret.", + "permissionLevel": "Tillatelsesnivå", "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", + "targetHeader": "Mål", + "permissionHeader": "Tillatelse", "cancelBtn": "Avbryt", "savingBtn": "Lagrer...", "updateHostBtn": "Oppdater vert", "addHostBtn": "Legg til vert" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Hvelv" }, "nav": { "history": "Historikk", - "localTerminal": "Local Terminal", + "localTerminal": "Lokal terminal", "sshTools": "SSH-verktøy", "terminal": "Terminal", - "macros": "Macros" + "macros": "Makroer" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", + "broadcastInputPlaceholder": "Skriv her for å kringkaste tastetrykk...", + "copyOnSelect": "Kopier merket tekst automatisk", + "enableRightClickCopyPaste": "Aktiver høyreklikk på kopiering/liming", + "fillPassword": "Fyll ut passord", + "fillPasswordMissing": "Ingen lagret passord for {{count}} valgte terminal(er)", + "fillPasswordSuccess": "Fyllte inn passord i {{count}} terminal(er)", "keyRecordingTitle": "Tasteopptak", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", + "noTerminalTabsOpen": "Ingen terminalfaner åpne", + "recordToTerminals": "Opptak til terminaler", + "selectAll": "Alle", "selectNone": "Ingen", - "selectTerminalsAbove": "Select terminals above", + "selectTerminalsAbove": "Velg terminaler ovenfor", "settingsTitle": "Innstillinger", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "startRecording": "Start opptak", + "stopRecording": "Stopp opptaket" }, "keybindings": { - "copy": "Copy selection", + "copy": "Kopier valg", "paste": "Lim inn", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Send Ctrl+bokstavsignal", + "sendText": "Send tekstmelding", + "controlCodeLabel": "Brev", + "textLabel": "Tekst som skal sendes", + "appendEnterLabel": "Trykk Enter etter sending", + "clipboardPermissionNote": "Kan be om tillatelse til utklippstavlen ved første gangs bruk i noen nettlesere.", + "textRequired": "Skriv inn teksten som skal sendes", + "controlCodeRequired": "Skriv inn én bokstav for kontrollkoden", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Kopier valg (Ctrl+C, bare når tekst er valgt)", + "copyCtrlShiftC": "Kopier utvalg (Ctrl+Shift+C)", + "copyCmdC": "Kopier utvalg (Cmd+C)", + "pasteCtrlShiftV": "Lim inn fra utklippstavlen (Ctrl+Shift+V)", + "ctrlW": "Send Ctrl+W til skall (blokkert fra å lukke nettleserfanen)", + "ctrlT": "Send Ctrl+T til skall (blokkert fra å åpne nettleserfanen)", + "ctrlN": "Send Ctrl+N til skallet (blokkert fra å åpne nettleservinduet)", + "ctrlQ": "Send Ctrl+Q til skall (blokkert fra å avslutte nettleseren)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "title": "Makroer", + "description": "Kjør en lagret serie med kommandoer i en terminal, og reager på det serveren sender tilbake.", + "target": "Mål", + "noTerminal": "Ingen terminal åpen", + "empty": "Ingen makroer ennå", + "emptyHint": "Opprett en makro for å automatisere en terminalflyt, som å logge inn, starte en tjeneste på nytt eller svare på forespørsler.", + "create": "Ny makro", + "back": "Tilbake til makroer", "name": "Navn", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "Start nettserveren på nytt", + "nameRequired": "Gi makroen et navn før du lagrer", "descriptionLabel": "Beskrivelse", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "Hva denne makroen gjør (valgfritt)", "unsaved": "Ulagrede endringer", "save": "Lagre", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Makro lagret", + "saveFailed": "Kunne ikke lagre makroen", "delete": "Slett", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Slette denne makroen?", + "deleteBody": "«{{name}}» vil bli slettet permanent. Dette kan ikke angres.", + "deleted": "Makro slettet", "cancel": "Avbryt", "run": "Kjør", "stop": "Stopp", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Løping...", + "completed": "Makro ferdig", + "failed": "Makroen mislyktes", + "loadFailed": "Kunne ikke laste inn makroer", + "needTerminal": "Åpne og koble til en terminal først", + "noSteps": "Denne makroen har ingen trinn ennå. Legg til et nedenfor.", + "addStep": "Legg til trinn", + "stepNumber": "Trinn {{number}}", + "removeStep": "Fjern trinn", + "confirmRunTitle": "Kjøre denne makroen?", + "confirmRunBody": "\"{{name}}\" vil sende kommandoer til {{host}}.", + "confirmRunAction": "Kjør makro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Send kommando", + "help": "Skriver tekst inn i terminalen, på samme måte som om du hadde skrevet den." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Vent på utdata", + "help": "Pauserer til serveren skriver ut teksten du oppgir, som en passordforespørsel." }, "delay": { "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "help": "Venter en fast tid før neste trinn." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Hvis utdataene inneholder", + "help": "Sjekker alt serveren har skrevet ut så langt, og kjører deretter en av to grener." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Gjenta", + "help": "Kjører trinnene inni den et angitt antall ganger." } }, "send": { - "text": "Command or text", - "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "text": "Kommando eller tekst", + "textPlaceholder": "systemctl omstart nginx", + "pressEnter": "Trykk Enter etter sending", + "pressEnterHelp": "Slå av dette for å skrive tekst uten å sende den inn." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Vent til utdataene inneholder", "patternPlaceholder": "passord:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Gi opp etterpå", + "onTimeout": "Hvis den aldri dukker opp", + "stop": "Stopp makroen", + "continue": "Fortsett uansett" }, "delay": { - "duration": "Wait for" + "duration": "Vent på" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Hvis utdataene inneholder", + "patternPlaceholder": "Aktiv: aktiv (løper)", + "then": "Gjør så dette", + "else": "Ellers gjør dette", + "emptyBranch": "Ingen trinn" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Antall ganger", + "times": "ganger" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Samsvar med et regulært uttrykk", + "useRegexHelp": "La dette være av for å få teksten til å se nøyaktig slik den er skrevet.", + "invalidRegex": "Ikke et gyldig regulært uttrykk, det vil bli matchet som ren tekst" }, "seconds": "sekunder", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Ekstern server kreves. Koble til en ekstern server i Innstillinger for å bruke denne tilkoblingstypen." } } diff --git a/plugins/ssh-terminal/locales/translated/pl_PL.json b/plugins/ssh-terminal/locales/translated/pl_PL.json index 96c05e53b..e035a9065 100644 --- a/plugins/ssh-terminal/locales/translated/pl_PL.json +++ b/plugins/ssh-terminal/locales/translated/pl_PL.json @@ -25,8 +25,8 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", + "autoTmuxEnableFailed": "Nie udało się włączyć funkcji Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux włączony dla {{host}}. Ma zastosowanie od następnego połączenia.", "clipboardHttpWarning": "Nie udało się odczytać schowka. Niektóre przeglądarki ograniczają dostęp do schowka poza HTTPS. Użyj Ctrl+V albo udostępniaj Termix przez HTTPS.", "closeTab": "Zamknij", "connecting": "Łączenie...", @@ -44,7 +44,7 @@ "reconnect": "Połącz ponownie", "reconnected": "Połączono ponownie pomyślnie", "reconnecting": "Ponowne łączenie... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", + "autoReconnecting": "Utracono połączenie, łączę ponownie...", "searchCaseSensitive": "Uwzględnij wielkość liter", "searchClose": "Zamknij (Esc)", "searchNext": "Następne dopasowanie (Enter)", @@ -54,8 +54,8 @@ "searchRegex": "Użyj wyrażenia regularnego", "searchResultCount": "{{index}} z {{count}}", "searchWholeWord": "Dopasuj całe słowo", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "sessionExpiredNotice": "Twoja poprzednia sesja z {{host}} wygasła po {{minutes}} minutach odłączenia. Powłoka i wszystko, co w niej działa, zniknęło. Włącz Auto-Tmux na tym hoście, aby sesje pozostały aktywne.", + "sessionExpiredNoticeNoMinutes": "Twoja poprzednia sesja na {{host}} wygasła podczas rozłączenia; powłoka i wszystko, co w niej działa, zniknęło. Włącz Auto-Tmux na tym hoście, aby sesje pozostały aktywne.", "sessionTakenOver": "Sesja została otwarta w innej karcie. Ponowne łączenie...", "tmuxAttached": "Dołączeni klienci", "tmuxAttachedCount": "{{count}} dołączonych", @@ -81,15 +81,15 @@ "clipboardWriteFailed": "Nie udało się skopiować do schowka. Upewnij się, że strona jest serwowana przez HTTPS lub localhost.", "connected": "Połączono", "totpCodeLabel": "Kod weryfikacyjny", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Duplikuj kartę", + "imageChooseFile": "Wybierz plik obrazu", + "imageUploaded": "Przesłano obraz: {{path}}", + "imageClipboardUnavailable": "Ta przeglądarka nie może odczytać obrazów ze schowka", + "imageClipboardEmpty": "Nie znaleziono obrazu w schowku", + "localShell": "Lokalna powłoka terminala", + "autocompleteHintComplete": "Aby zakończyć, naciśnij Tab lub Enter", + "autocompleteHintNavigate": "↑↓ aby nawigować", + "autocompleteHintClose": "Esc, aby zamknąć" }, "terminalToolbar": { "detachTmux": "Odłącz tmux", @@ -119,9 +119,9 @@ "clearAll": "Wyczyść wszystko", "noHistoryEntries": "Brak wpisów w historii", "trackingDisabled": "Śledzenie historii jest wyłączone", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "Włącz historię poleceń na karcie terminala SSH tego hosta.", + "commandCount_one": "polecenie {{count}}", + "commandCount_other": "polecenia {{count}}" }, "touchInput": { "enabled": "Włącz wprowadzanie dotykowe", @@ -162,19 +162,19 @@ "touch": "Wprowadzanie dotykowe", "images": "Przechowywanie obrazów", "sessions": "Sesje", - "newHosts": "New Hosts" + "newHosts": "Nowi gospodarze" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Trwałość sesji terminalowej", + "description": "Jak długo odłączony terminal jest utrzymywany aktywny na serwerze przed jego zamknięciem. Min. 1, maks. 1440 minut. W przypadku sesji, które muszą przetrwać ten czas, włącz funkcję Auto-Tmux na hoście." }, "commandHistoryEnabled": { "label": "Historia poleceń", "description": "Zezwól na rejestrowanie historii poleceń. Po wyłączeniu historia nie jest zapisywana, niezależnie od ustawień poszczególnych hostów." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Historia poleceń dla nowych hostów", + "description": "Czy nowi gospodarze rozpoczynają pracę z włączoną historią poleceń." }, "imageStorageMode": { "label": "Tryb przechowywania", @@ -185,7 +185,7 @@ }, "imageLocalDir": { "label": "Katalog lokalny", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "description": "Ścieżka bezwzględna w zapleczu Termix, gdzie tryb lokalny zapisuje obrazy. Nigdy nie jest wyświetlana po zapisaniu. Pusta ścieżka używa TERMIX_IMAGE_DIR." }, "imageHostPath": { "label": "Ścieżka hosta", @@ -193,41 +193,41 @@ }, "imageTtlMs": { "label": "Czas życia (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Czas przechowywania przesłanego obrazu (w milisekundach). Wartość „pusta” oznacza TERMIX_IMAGE_TTL_MS lub jedną godzinę." }, "imageMaxCount": { "label": "Maksymalna liczba obrazów", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "description": "Większość obrazów jest przechowywana jednocześnie. Puste używa TERMIX_MAX_IMAGE_COUNT lub 100." }, "imageMaxBytes": { "label": "Maksymalny rozmiar magazynu (bajty)", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "description": "Największa ilość bajtów obrazów przechowywana jednocześnie. Pusty zajmuje TERMIX_MAX_IMAGE_STORAGE_BYTES lub 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Zachowaj sesje po rozłączeniu", + "description": "Utrzymuj odłączony terminal aktywny na serwerze przez podany powyżej czas, tak aby ponowne otwarcie jego karty powodowało kontynuację pracy od miejsca, w którym została przerwana." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Uruchom nowe terminale hostów w tmux, aby sesje przetrwały rozłączenia (wymaga tmux na hoście)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Motyw dla nowych gospodarzy", + "description": "Motyw terminala, z którym rozpoczyna pracę nowy host." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Czcionka dla nowych gospodarzy", + "description": "Czcionka terminala, od której zaczyna nowy host." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Rozmiar czcionki dla nowych gospodarzy", + "description": "Rozmiar czcionki terminala, od którego zaczyna nowy host (w pikselach)." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Styl kursora dla nowych hostów" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Migający kursor dla nowych hostów" } }, "host": { @@ -236,36 +236,36 @@ "description": "Pokaż pasek narzędzi szybkiego dostępu zadokowany do aktywnego terminala, umożliwiający dostęp do narzędzi i statystyk na żywo tego hosta" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Pozycja paska narzędzi", + "description": "Miejsce, w którym znajduje się pasek narzędzi w terminalu. Nadal możesz go stamtąd przeciągnąć.", + "bottom": "Dolny środek", + "bottomLeft": "Lewy dolny róg", + "bottomRight": "Prawy dolny róg", + "top": "Środek góry", + "topLeft": "Lewy górny róg", + "topRight": "Prawy górny róg" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Stan początkowy paska narzędzi", + "description": "Czy pasek narzędzi otwiera się w formie rozwiniętej czy zminimalizowanej po nawiązaniu połączenia z terminalem", + "expanded": "Rozszerzony", + "collapsed": "Zminimalizowany" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", + "label": "Tryb wyświetlania paska narzędzi", + "description": "Jak wyświetlane są przyciski na pasku narzędzi. Ostatnio użyte przyciski zachowują to, co wybrałeś na pasku narzędzi.", + "remember": "Ostatnio używane", "icon": "Tylko ikona", "labeled": "Ikony i etykiety", - "expanded": "Expanded with stats" + "expanded": "Rozszerzone o statystyki" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Pokaż statystyki na żywo", + "description": "Pokaż statystyki gospodarza na żywo nad przyciskami paska narzędzi w trybie rozszerzonym" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Zanikanie w stanie bezczynności", + "description": "Wygasz pasek narzędzi, aż najedziesz na niego kursorem" }, "enableCommandHistory": { "label": "Historia poleceń", @@ -273,61 +273,61 @@ }, "enableTerminal": { "label": "Włącz terminal", - "description": "Offer an SSH terminal for this host." + "description": "Zaoferuj terminal SSH dla tego hosta." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Użyj domyślnych ustawień użytkownika" }, "theme": { "label": "Motyw" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Migający kursor" }, "cursorStyle": { - "label": "Cursor style" + "label": "Styl kursora" }, "fontSize": { - "label": "Font size" + "label": "Rozmiar czcionki" }, "fontFamily": { - "label": "Font" + "label": "Chrzcielnica" }, "scrollback": { - "label": "Scrollback" + "label": "Przewiń w tył" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Odstępy między literami" }, "lineHeight": { - "label": "Line height" + "label": "Wysokość linii" }, "bellStyle": { - "label": "Bell" + "label": "Dzwonek" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Minimalny współczynnik kontrastu" }, "backgroundImage": { - "label": "Background image" + "label": "Obraz tła" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Krycie obrazu tła" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Niestandardowe kolory motywu" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Kliknięcie prawym przyciskiem myszy zaznacza słowo" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Opcja jest Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Klawisz szybkiego przewijania" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Szybka prędkość przewijania" }, "backspaceMode": { "label": "Backspace" @@ -336,34 +336,34 @@ "label": "Auto mosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Komenda Mosh" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Użyj tytułu SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Podświetlanie składni" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Kategorie wyróżniania składni" }, "linkClickBehavior": { - "label": "Link click" + "label": "Kliknij link" }, "localEcho": { - "label": "Local echo" + "label": "Lokalne echo" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Zaoferuj wypełnienie monitu o hasło" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Wypełnij monity sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Połącz ponownie automatycznie" } }, "user": { @@ -380,7 +380,7 @@ "description": "Domyślne zachowanie po kliknięciu linków w terminalu" }, "customThemes": { - "label": "Saved themes" + "label": "Zapisane motywy" } } }, @@ -389,12 +389,12 @@ }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Korzystaj z sesji terminalowych na żywo", + "description": "Umożliwia innym funkcjom, takim jak udostępnianie sesji i nagrywanie, dostęp do sesji terminalowych na żywo." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Przeczytaj historię poleceń", + "description": "Umożliwia innym funkcjom, takim jak asystent AI, odczytywanie historii poleceń." } }, "hosts": { @@ -405,25 +405,25 @@ "backgroundImageLabel": "Adres URL obrazu tła", "backgroundImageOpacityLabel": "Krycie obrazu tła", "backspaceMode": "Tryb Backspace", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Sterowanie-H (BS)", "backspaceModeLabel": "Tryb Backspace", - "backspaceModeNormal": "Normal (DEL)", + "backspaceModeNormal": "Normalny (DEL)", "behaviorAndAdvanced": "Zachowanie i zaawansowane", "bellStyle": "Styl dzwonka", - "bellStyleBoth": "Both", + "bellStyleBoth": "Obydwa", "bellStyleLabel": "Styl dzwonka", "bellStyleNone": "Żaden", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "Dźwięk", + "bellStyleVisual": "Wizualny", "colorTheme": "Motyw kolorów", "cursorBlink": "Miganie kursora", "cursorBlinking": "Miganie kursora", "cursorBlinkingDesc": "Włącz animację migania kursora terminala", "cursorStyle": "Styl kursora", "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBlock": "Blok", "cursorStyleLabel": "Styl kursora", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "Podkreślać", "customThemeAnsiColors": "Kolory ANSI", "customThemeBackground": "Tło", "customThemeBlack": "Czarny", @@ -453,7 +453,7 @@ "enableAutoMosh": "Włącz Auto-Mosh", "enableAutoMoshDesc": "Jeśli to możliwe, preferuj Mosh zamiast SSH", "enableAutoTmux": "Włącz Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "Utrzymuj działanie powłoki i wszystkiego, co w niej działa, nawet po rozłączeniu i ponownym uruchomieniu przeglądarki, uruchamiając ją wewnątrz tmux (tmux musi być zainstalowany na hoście).", "fastScrollModifier": "Modyfikator szybkiego przewijania", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -489,10 +489,10 @@ "moshCommandLabel": "Polecenie Mosh", "noSavedThemes": "Brak zapisanych motywów", "none": "Brak", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Zaproponuj wpisanie zapisanego hasła, gdy terminal o nie poprosi. Wyłącz tę opcję, aby nigdy nie wpisywać automatycznie żadnego hasła na tym hoście.", + "passwordPromptAutoFillLabel": "Oferta automatycznego uzupełniania hasła", + "autoReconnectLabel": "Automatyczne ponowne łączenie", + "autoReconnectDesc": "Ponowne połączenie następuje automatycznie po utracie połączenia SSH, np. po awarii sieci lub uśpieniu. Utrzymuje przewijanie.", "rightClickSelectsWord": "Kliknięcie prawym przyciskiem myszy zaznacza słowo", "rightClickSelectsWordLabel": "Kliknięcie prawym przyciskiem myszy powoduje zaznaczenie słowa", "rightClickSelectsWordShortDesc": "Zaznacza słowo pod kursorem po kliknięciu prawym przyciskiem", @@ -537,7 +537,7 @@ "proxmoxStatsUrlCopied": "Skopiowano adres URL statystyk Proxmox", "rdpUrlCopied": "Skopiowano adres URL RDP", "vncUrlCopied": "Skopiowano adres URL VNC", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "Krok CA", "guac": { "noCredential": "Brak poświadczenia (dane bezpośrednie poniżej)", "authTypeDirect": "Bezpośredni", @@ -556,7 +556,7 @@ "updateHostBtn": "Aktualizuj hosta", "addHostBtn": "Dodaj hosta" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Sklepienie" }, "nav": { "history": "Historia", @@ -567,7 +567,7 @@ }, "sshTools": { "broadcastInputPlaceholder": "Wpisz tutaj, aby rozesłać naciśnięcia klawiszy...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "Kopiuj zaznaczony tekst automatycznie", "enableRightClickCopyPaste": "Włącz kopiowanie/wklejanie prawym przyciskiem myszy", "fillPassword": "Wpisz hasło", "fillPasswordMissing": "Brak zapisanego hasła dla {{count}} wybranych terminali", @@ -594,14 +594,14 @@ "textRequired": "Wprowadź tekst do wysłania", "controlCodeRequired": "Wprowadź pojedynczą literę kodu kontrolnego", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Kopiuj zaznaczenie (Ctrl+C, tylko gdy zaznaczony jest tekst)", + "copyCtrlShiftC": "Kopiuj zaznaczenie (Ctrl+Shift+C)", + "copyCmdC": "Kopiuj zaznaczenie (Cmd+C)", + "pasteCtrlShiftV": "Wklej ze schowka (Ctrl+Shift+V)", + "ctrlW": "Wyślij Ctrl+W do powłoki (zablokowano możliwość zamknięcia karty przeglądarki)", + "ctrlT": "Wyślij Ctrl+T do powłoki (zablokowano otwieranie karty przeglądarki)", + "ctrlN": "Wyślij Ctrl+N do powłoki (zablokowane otwieranie okna przeglądarki)", + "ctrlQ": "Wyślij Ctrl+Q do powłoki (zablokowane przed zamknięciem przeglądarki)" } }, "macros": { diff --git a/plugins/ssh-terminal/locales/translated/pt_BR.json b/plugins/ssh-terminal/locales/translated/pt_BR.json index b982c3bd9..f2940cb3a 100644 --- a/plugins/ssh-terminal/locales/translated/pt_BR.json +++ b/plugins/ssh-terminal/locales/translated/pt_BR.json @@ -1,419 +1,419 @@ { "mobileKeyboard": { "addQuickKey": "Adicionar", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "arrowDown": "Seta para baixo", + "arrowLeft": "Seta para a esquerda", + "arrowRight": "Seta para a direita", + "arrowUp": "Seta para cima", "backTab": "⇥", "ctrl": "Ctrl", "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "done": "Feito", + "editQuickKeys": "Editar teclas de atalho", + "end": "Fim", "esc": "Esc", "home": "Inicio", "pageDown": "PgDn", "pageUp": "PgUp", "paste": "Colar", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", + "quickKeyPlaceholder": "por exemplo sudo ", + "quickKeysDesc": "Toque em × para remover. Suporta até 8 caracteres.", + "quickKeysTitle": "Teclas de atalho", "removeQuickKey": "Remover", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "resetDefaults": "Restaurar padrões de fábrica", + "shift": "Mudança", + "tab": "Aba" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Falha ao ativar o Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux ativado para {{host}}. Aplica-se a partir da próxima conexão.", + "clipboardHttpWarning": "Não foi possível ler a área de transferência. Alguns navegadores restringem o acesso à área de transferência fora de HTTPS - tente Ctrl+V ou utilize HTTPS para acessar o Termix.", "closeTab": "Fechar", "connecting": "Conectando...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", + "connectionLost": "Conexão perdida", + "connectionRejected": "Conexão rejeitada pelo servidor. Verifique sua autenticação e configuração de rede.", + "connectionTimeout": "Tempo limite de conexão", + "enableAutoTmuxAction": "Ativar Auto-Tmux", + "hostKeyRejected": "Verificação da chave SSH do host rejeitada. Conexão cancelada.", "linkDialogCopy": "Copiar", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", + "linkDialogOpen": "Abrir", + "linkDialogTitle": "Abrir link", + "maxReconnectAttemptsReached": "Número máximo de tentativas de reconexão atingido", + "noHostSelected": "Nenhum host selecionado", + "passwordPromptFillTitle": "Digite a senha salva neste campo?", + "reconnect": "Reconectar", + "reconnected": "Reconectado com sucesso", + "reconnecting": "Reconectando... ({{attempt}}/{{max}})", + "autoReconnecting": "Conexão perdida, reconectando...", + "searchCaseSensitive": "Caixa de fósforos", + "searchClose": "Fechar (Esc)", + "searchNext": "Próxima partida (Entrar)", + "searchNoResults": "Nenhum resultado", + "searchPlaceholder": "Encontrar", + "searchPrevious": "Partida anterior (Shift+Enter)", + "searchRegex": "Utilizar expressão regular", + "searchResultCount": "{{index}} de {{count}}", + "searchWholeWord": "Combine a palavra inteira", + "sessionExpiredNotice": "Sua sessão anterior em {{host}} expirou após {{minutes}} minutos desconectado; o shell e tudo o que estava sendo executado nele foram perdidos. Habilite o Auto-Tmux neste host para manter as sessões ativas.", + "sessionExpiredNoticeNoMinutes": "Sua sessão anterior em {{host}} expirou enquanto estava desconectada; o shell e tudo o que estava sendo executado nele foram perdidos. Habilite o Auto-Tmux neste host para manter as sessões ativas.", + "sessionTakenOver": "A sessão foi aberta em outra aba. Reconectando...", + "tmuxAttached": "Clientes vinculados", + "tmuxAttachedCount": "{{count}} anexado", + "tmuxCopyHint": "Ajuste a seleção e pressione Enter para copiar para a área de transferência.", + "tmuxCreateNew": "Iniciar nova sessão", + "tmuxDetached": "Sessão desconectada do tmux", + "tmuxLastActivity": "Última atividade", + "tmuxSessionAttached": "Sessão tmux anexada: {{name}}", + "tmuxSessionCreated": "Sessão tmux criada: {{name}}", + "tmuxSessionPickerDesc": "Foram encontradas sessões tmux existentes neste host. Selecione uma para reconectar ou crie uma nova sessão.", + "tmuxSessionPickerTitle": "Sessões tmux", + "tmuxTimeDays": "{{count}}há alguns dias", + "tmuxTimeHours": "{{count}}h atrás", + "tmuxTimeJustNow": "agora mesmo", + "tmuxTimeMinutes": "{{count}}m atrás", + "tmuxUnavailable": "O tmux não está instalado no host remoto, utilizando o shell padrão como alternativa.", + "tmuxWindowCount": "{{count}} janela", "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "unknownError": "Ocorreu um erro desconhecido.", + "websocketAbnormalClose": "A conexão foi encerrada inesperadamente. Isso pode ter ocorrido devido a um problema de configuração de proxy reverso ou SSL. Verifique os registros do servidor.", + "websocketError": "Erro de conexão WebSocket", + "clipboardReadFailed": "Não foi possível ler o conteúdo da área de transferência. Certifique-se de que as permissões de acesso à área de transferência estejam concedidas.", + "clipboardWriteFailed": "Falha ao copiar para a área de transferência. Certifique-se de que a página esteja sendo servida via HTTPS ou localhost.", + "connected": "Conectado", + "totpCodeLabel": "Código de verificação", + "duplicateTab": "Aba duplicada", + "imageChooseFile": "Escolha um arquivo de imagem", + "imageUploaded": "Imagem carregada: {{path}}", + "imageClipboardUnavailable": "Este navegador não consegue ler imagens da área de transferência.", + "imageClipboardEmpty": "Nenhuma imagem encontrada na área de transferência", + "localShell": "Shell do terminal local", + "autocompleteHintComplete": "Pressione Tab ou Enter para concluir", + "autocompleteHintNavigate": "↑↓ para navegar", + "autocompleteHintClose": "Pressione Esc para fechar" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Desanexar tmux", + "detachTmuxDescription": "Desanexar sessão tmux", + "dismissError": "Ignorar erro de imagem", + "hideToolbar": "Ocultar barra de ferramentas", + "image": "Ações de imagem (somente imagens)", + "imageActionFailed": "A ação de imagem falhou", + "layout": "Modo de exibição da barra de ferramentas", + "layoutExpanded": "Expandido com métricas", + "layoutIcon": "Apenas o ícone", + "layoutLabeled": "Ícones e rótulos", + "moveToolbar": "Mover barra de ferramentas", + "moveToolbarHint": "Arraste para reposicionar a barra de ferramentas.", + "paste": "Colar imagem", + "pasteImage": "Colar imagem da área de transferência (somente imagens)", + "retry": "Tentar novamente", + "showToolbar": "Expandir barra de ferramentas", + "upload": "Carregar imagem", + "uploadImage": "Faça o upload de uma imagem para o host.", + "uploadingImage": "Carregando..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Nenhum terminal selecionado", + "noTerminalSelectedHint": "Abra uma aba do terminal SSH para visualizar seu histórico de comandos.", + "searchPlaceholder": "Histórico de pesquisa...", + "clearAll": "Limpar tudo", + "noHistoryEntries": "Nenhuma entrada no histórico.", + "trackingDisabled": "O rastreamento do histórico está desativado.", + "trackingDisabledHint": "Ative o Histórico de Comandos na aba Terminal SSH deste host.", + "commandCount_one": "{{count}} comando", + "commandCount_other": "{{count}} comandos" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Ativar entrada por toque", + "enabledDesc": "Permitir rolagem com um único dedo em terminais.", + "momentumEnabled": "Ativar o impulso", + "momentumEnabledDesc": "Continue rolando brevemente após deslizar o dedo.", + "advanced": "Avançado", + "resetDefaults": "Restaurar padrões de fábrica", + "dragThreshold": "Limiar de arrasto", + "maxWheelDelta": "Delta máximo da roda", + "momentumSampleWindow": "Janela de amostra de momento", + "releaseGracePeriod": "Período de carência para lançamento", + "minimumVelocity": "Velocidade mínima", + "maximumVelocity": "Velocidade máxima", + "maximumDuration": "Duração máxima", + "maximumTravel": "Viagem máxima", + "decayTime": "Tempo de decaimento", + "pixelsPerTick": "Pixels por tick", + "maximumFrameInterval": "Intervalo máximo entre quadros", + "maximumTicksPerFrame": "Número máximo de ticks por quadro" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "ID da instância da sessão do terminal", + "instanceIdDesc": "ID da instância de uma das suas abas de terminal conectadas, usada para testar a visibilidade.", + "selectedModeUnavailable": "Indisponível", + "test": "Teste", + "testing": "Testando...", + "testFailed": "Falha ao testar o armazenamento de imagens", + "testConnected": "A sessão do terminal está conectada.", + "testNotConnected": "Nenhuma sessão de terminal conectada com este ID de instância.", + "testSelectedMode": "Um upload usaria: {{mode}}", + "testLocalVisible": "O diretório local está visível a partir do host conectado.", + "testLocalNotVisible": "O diretório local NÃO está visível a partir do host conectado." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Entrada por toque", + "images": "Armazenamento de imagens", + "sessions": "Sessões", + "newHosts": "Novos anfitriões" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Persistência de sessão do terminal", + "description": "Tempo que um terminal desconectado permanece ativo no servidor antes de ser fechado. Mínimo de 1 minuto, máximo de 1440 minutos. Para sessões que precisam durar mais do que isso, habilite o Auto-Tmux no host." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Histórico de comandos", + "description": "Permitir o registro do histórico de comandos. Quando desativado, o histórico não é salvo, independentemente das configurações de cada host." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Histórico de comandos para novos hosts", + "description": "Se os novos hosts iniciarem com o histórico de comandos ativado." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Modo de armazenamento", + "description": "Local onde as imagens de terminal coladas e carregadas são exibidas. As seleções automáticas por conexão, Local e Remota (SFTP), foram corrigidas.", "auto": "Auto", "local": "Local", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Remoto (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Diretório local", + "description": "Caminho absoluto no backend do Termix onde o modo local grava imagens. Nunca é exibido após o salvamento. Um valor vazio usa TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Caminho do host", + "description": "Visão do diretório local recebida pelos agentes de terminal, do lado do host." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Tempo de armazenamento de uma imagem carregada, em milissegundos. O valor vazio usa TERMIX_IMAGE_TTL_MS ou uma hora." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Contagem máxima de imagens", + "description": "A maioria das imagens é mantida simultaneamente. O parâmetro vazio usa TERMIX_MAX_IMAGE_COUNT ou 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Bytes de armazenamento máximo", + "description": "A maioria dos bytes das imagens são mantidos de uma só vez. Quando vazio, utiliza-se TERMIX_MAX_IMAGE_STORAGE_BYTES ou 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Manter sessões após desconexão", + "description": "Mantenha um terminal desconectado ativo no servidor pelo tempo especificado acima, para que, ao reabrir a aba, a sessão continue de onde parou." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Execute os terminais dos novos hosts dentro do tmux para que as sessões sobrevivam a desconexões (requer tmux no host)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Tema para novos anfitriões", + "description": "O tema do terminal com o qual um novo host inicia." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Fonte para novos anfitriões", + "description": "A fonte de terminal com a qual um novo host inicia." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Tamanho da fonte para novos hosts", + "description": "O tamanho da fonte do terminal com o qual um novo host inicia, em pixels." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Estilo de cursor para novos hosts" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Cursor piscando para novos hosts" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Ativar a barra de ferramentas do terminal", + "description": "Exibir uma barra de ferramentas de acesso rápido acoplada ao terminal ativo com as ferramentas e estatísticas em tempo real deste host." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Posição da barra de ferramentas", + "description": "Onde a barra de ferramentas está localizada no terminal. Você ainda pode arrastá-la de lá.", + "bottom": "Centro inferior", + "bottomLeft": "Canto inferior esquerdo", + "bottomRight": "Canto inferior direito", + "top": "Centro superior", + "topLeft": "Canto superior esquerdo", + "topRight": "Canto superior direito" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Estado inicial da barra de ferramentas", + "description": "Se a barra de ferramentas abre expandida ou minimizada quando o terminal se conecta.", + "expanded": "Expandido", + "collapsed": "Minimizado" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Modo de exibição da barra de ferramentas", + "description": "Como os botões da barra de ferramentas são exibidos. O último botão usado mantém a seleção feita na barra de ferramentas.", + "remember": "Último uso", + "icon": "Apenas o ícone", + "labeled": "Ícones e rótulos", + "expanded": "Expandido com estatísticas" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Mostrar estatísticas ao vivo", + "description": "Exibir estatísticas do host ao vivo acima dos botões da barra de ferramentas no modo expandido." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Desvanecer quando ocioso", + "description": "A barra de ferramentas desaparece gradualmente até que você passe o cursor sobre ela." }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Histórico de comandos", + "description": "Registre os comandos executados neste terminal para histórico e preenchimento automático." }, "enableTerminal": { "label": "Ativar Terminal", - "description": "Offer an SSH terminal for this host." + "description": "Disponibilize um terminal SSH para este host." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Usar as configurações padrão do usuário" }, "theme": { "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "cursor piscando" }, "cursorStyle": { - "label": "Cursor style" + "label": "Estilo do cursor" }, "fontSize": { - "label": "Font size" + "label": "Tamanho da fonte" }, "fontFamily": { - "label": "Font" + "label": "Fonte" }, "scrollback": { - "label": "Scrollback" + "label": "Voltar ao início" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Espaçamento entre letras" }, "lineHeight": { - "label": "Line height" + "label": "Altura da linha" }, "bellStyle": { - "label": "Bell" + "label": "Sino" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Relação de contraste mínima" }, "backgroundImage": { - "label": "Background image" + "label": "Imagem de fundo" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Opacidade da imagem de fundo" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Cores de tema personalizadas" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Clicar com o botão direito do mouse seleciona a palavra." }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "A opção é Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Tecla de rolagem rápida" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Velocidade de rolagem rápida" }, "backspaceMode": { - "label": "Backspace" + "label": "Apagar" }, "autoMosh": { - "label": "Auto mosh" + "label": "Mosh automático" }, "moshCommand": { - "label": "Mosh command" + "label": "Comando Mosh" }, "autoTmux": { - "label": "Auto tmux" + "label": "tmux automático" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Use o título SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Realce de sintaxe" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Categorias de realce de sintaxe" }, "linkClickBehavior": { - "label": "Link click" + "label": "Clique no link" }, "localEcho": { - "label": "Local echo" + "label": "Eco local" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Ofereça-se para preencher os campos de senha." }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Preencha os prompts do sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Reconectar automaticamente" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Preenchimento automático de comandos", + "description": "Exibir o recurso de autocompletar enquanto digita ao pressionar a tecla Tab." }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Eco Local", + "description": "Reduza a latência de entrada percebida usando a previsão segura de pressionamento de teclas local." }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Clique no link do terminal", + "description": "Comportamento padrão ao clicar em links no terminal." }, "customThemes": { - "label": "Saved themes" + "label": "Temas salvos" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Terminal local" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Use sessões de terminal ao vivo", + "description": "Permite que outras funcionalidades, como o compartilhamento e a gravação de sessões, cheguem às suas sessões de terminal em tempo real." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Leia o histórico de comandos", + "description": "Permite que outras funcionalidades, como o assistente de IA, leiam seu histórico de comandos." } }, "hosts": { "tabTerminal": "Terminal", "addHost": "Adicionar host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", + "applyGlobalThemeTooltip": "Aplique este tema", + "backgroundImageDesc": "URL opcional para uma imagem de fundo do terminal", + "backgroundImageLabel": "URL da imagem de fundo", + "backgroundImageOpacityLabel": "Opacidade da imagem de fundo", "backspaceMode": "Modo Backspace", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Controle-H (BS)", "backspaceModeLabel": "Modo Backspace", "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", + "behaviorAndAdvanced": "Comportamento e Avançado", "bellStyle": "Estilo do Sino", - "bellStyleBoth": "Both", + "bellStyleBoth": "Ambos", "bellStyleLabel": "Estilo do Sino", "bellStyleNone": "Nenhum", - "bellStyleSound": "Sound", + "bellStyleSound": "Som", "bellStyleVisual": "Visual", "colorTheme": "Tema de cores", "cursorBlink": "Piscar cursor", @@ -421,285 +421,285 @@ "cursorBlinkingDesc": "Ativar animação piscante para o cursor do terminal", "cursorStyle": "Estilo do Cursor", "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBlock": "Bloquear", "cursorStyleLabel": "Estilo do Cursor", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", + "cursorStyleUnderline": "Sublinhado", + "customThemeAnsiColors": "Cores ANSI", + "customThemeBackground": "Fundo", + "customThemeBlack": "Preto", + "customThemeBlue": "Azul", + "customThemeBrightBlack": "Preto brilhante", + "customThemeBrightBlue": "Azul brilhante", + "customThemeBrightCyan": "Ciano brilhante", + "customThemeBrightGreen": "Verde brilhante", + "customThemeBrightMagenta": "Magenta brilhante", + "customThemeBrightRed": "Vermelho vivo", + "customThemeBrightWhite": "Branco brilhante", + "customThemeBrightYellow": "Amarelo brilhante", + "customThemeColors": "Cores personalizadas", "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", + "customThemeCursorAccent": "Acento do cursor", + "customThemeCyan": "Ciano", + "customThemeForeground": "Primeiro plano", + "customThemeGreen": "Verde", "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", + "customThemeRed": "Vermelho", + "customThemeResetTooltip": "Restaurar padrões de fábrica", + "customThemeSelection": "Seleção", + "customThemeWhite": "Branco", + "customThemeYellow": "Amarelo", + "deleteGlobalThemeTooltip": "Excluir este tema", "docsLink": "Documentação", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoMosh": "Ativar Auto-Mosh", + "enableAutoMoshDesc": "Prefira Mosh a SSH, se disponível.", + "enableAutoTmux": "Ativar Auto-Tmux", + "enableAutoTmuxDesc": "Mantenha seu shell e tudo o que estiver sendo executado nele em funcionamento mesmo após desconexões e reinicializações do navegador, executando o comando dentro do tmux (o tmux precisa estar instalado no host).", "fastScrollModifier": "Modificador de rolagem rápido", - "fastScrollModifierAlt": "Alt", + "fastScrollModifierAlt": "Alternativa", "fastScrollModifierCtrl": "Ctrl", "fastScrollModifierLabel": "Modificador de rolagem rápido", - "fastScrollModifierShift": "Shift", + "fastScrollModifierShift": "Mudança", "fastScrollSensitivity": "Sensibilidade de rolagem rápida", "fastScrollSensitivityLabel": "Sensibilidade de rolagem rápida", "fontFamily": "Família de Fontes", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Escolha uma fonte incluída ou selecione \"Personalizada\" e digite o nome exato de uma fonte já instalada no seu sistema (por exemplo, MesloLGS NF, Noto Sans Mono). O Termix não instala fontes automaticamente; instale-as primeiro no seu sistema operacional.", + "fontFamilyCustomOption": "Personalizado...", + "fontFamilyCustomPlaceholder": "Nome exato da fonte, por exemplo, MesloLGS NF", "fontFamilyLabel": "Família da Fonte", "fontSize": "Tamanho da Fonte", "fontSizeLabel": "Tamanho da Fonte", - "hostNotFound": "Host not found", + "hostNotFound": "Host não encontrado", "letterSpacing": "Espaçamento entre Letras", "letterSpacingPx": "Espaçamento das letras (px)", "lineHeight": "Altura da Linha", "lineHeightLabel": "Altura da Linha", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "linkClickBehaviorConfirm": "Exibir janela pop-up para abrir ou copiar", + "linkClickBehaviorDesc": "Controla o que acontece quando você clica em um link no terminal. Use 'Padrão' para seguir a configuração do aplicativo.", + "linkClickBehaviorDirect": "Abrir diretamente", + "linkClickBehaviorLabel": "Comportamento de clique em links", + "loadingHost": "Carregando host...", + "localEchoAuto": "Automático", + "localEchoDesc": "Preveja sequências de teclas seguras e imprimíveis localmente em conexões lentas. Os prompts de senha e as entradas de controle nunca são repetidos.", + "localEchoLabel": "Eco Local", + "localEchoOff": "Desligado", + "localEchoOn": "Sempre ligado", + "macOptionIsMetaLabel": "A tecla Option envia meta", + "macOptionIsMetaShortDesc": "Desative a digitação de caracteres especiais (como @ ou |) com a tecla Option/Alt no macOS em vez de enviar Meta", "moshCommand": "Comando MOSH", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", + "moshCommandLabel": "Comando Mosh", + "noSavedThemes": "Ainda não há temas salvos.", "none": "Nenhum", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Ofereça a opção de preencher a senha salva quando o terminal solicitar. Desative para que o preenchimento automático de senhas neste host seja desativado.", + "passwordPromptAutoFillLabel": "Oferecer preenchimento automático de senha", + "autoReconnectLabel": "Reconexão automática", + "autoReconnectDesc": "Reconecta-se automaticamente quando a conexão SSH cai, como após uma interrupção na rede ou suspensão. Mantém o histórico de rolagem.", "rightClickSelectsWord": "Clique com botão direito seleciona a palavra", "rightClickSelectsWordLabel": "Clique com botão direito seleciona a palavra", "rightClickSelectsWordShortDesc": "Selecione a palavra no botão direito do mouse", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "Salvar como tema global", + "saveGlobalThemeError": "Falha ao salvar o tema", + "saveGlobalThemeNamePrompt": "Insira um nome para este tema.", + "saveGlobalThemeSuccess": "Tema salvo", + "savedThemesLabel": "Temas salvos", "scrollbackBufferLabel": "Buffer de Rolagem", - "scrollbackMaxLines": "Maximum number of lines kept in history", + "scrollbackMaxLines": "Número máximo de linhas mantidas no histórico", "sudoPasswordAutoFill": "Auto-preenchimento de Senha Sudo", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "sudoPasswordAutoFillDesc": "Armazene uma senha de sudo para que as métricas do host, os prompts do terminal e outros possam executar comandos privilegiados automaticamente.", + "sudoPasswordAutoFillLabel": "Preenchimento automático de senha Sudo", + "syntaxCategoryIpAddresses": "Endereços IP", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "Níveis de registro", + "syntaxCategoryLogLevelsDesc": "erro, aviso, informação, depuração, fatal", + "syntaxCategoryNumbers": "Números rotulados", + "syntaxCategoryNumbersDesc": "porta 8080, saída 1, status 404", + "syntaxCategoryPaths": "Caminhos de Arquivo", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", - "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", + "syntaxCategoryTimestamps": "Carimbos de data/hora", + "syntaxCategoryTimestampsDesc": "[12:34:56], 15/01/2024", "syntaxCategoryUrls": "URLs", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", + "syntaxHighlightingDesc": "Colorir a saída do terminal (erros, caminhos, IPs, registros de data e hora)", "syntaxHighlightingLabel": "Destaque de sintaxe", "terminalAppearance": "Aparência do Terminal", "theme": "Tema", "themePreview": "Preview do Tema", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", + "useSSHTitleDesc": "Atualize o título da aba com base no título da janela do shell, em vez do nome do host.", + "useSSHTitleLabel": "Usar o título da janela SSH", "enableTunnel": "Ativar Túnel", "enableFileManager": "Ativar Gerenciador de Arquivos", "enableDocker": "Ativar Docker", "startupSnippet": "Snippet Inicial", "quickActions": "Ações Rápidas", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Sucesso" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} ignorado (nenhum IP encontrado)", + "proxmoxStatsUrlCopied": "URL das estatísticas do Proxmox copiada para a área de transferência", + "rdpUrlCopied": "URL RDP copiada", + "vncUrlCopied": "URL VNC copiada", + "filterAuthStepca": "Etapa CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", + "noCredential": "Sem credenciais (credenciais diretas abaixo)", + "authTypeDirect": "Direto", "authTypeCredential": "Credencial", "authTypeNone": "Nenhum", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", + "recordingPath": "Caminho de gravação", + "recordingName": "Nome da gravação", + "saveHostFirst": "Primeiro, salve o host.", + "sharingOptionsAfterSave": "As opções de compartilhamento ficam disponíveis depois que o anfitrião for salvo.", + "permissionLevel": "Nível de permissão", "typeHeader": "Tipo", - "targetHeader": "Target", - "permissionHeader": "Permission", + "targetHeader": "Alvo", + "permissionHeader": "Permissão", "cancelBtn": "Cancelar", "savingBtn": "Salvando...", - "updateHostBtn": "Update Host", + "updateHostBtn": "Atualizar Host", "addHostBtn": "Adicionar host" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Cofre" }, "nav": { "history": "Histórico", - "localTerminal": "Local Terminal", + "localTerminal": "Terminal local", "sshTools": "Ferramentas de SSH", "terminal": "Terminal", "macros": "Macros" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", + "broadcastInputPlaceholder": "Digite aqui para transmitir as teclas pressionadas...", + "copyOnSelect": "Copiar texto selecionado automaticamente", + "enableRightClickCopyPaste": "Ativar copiar/colar com o botão direito do mouse", + "fillPassword": "Preencha a senha", + "fillPasswordMissing": "Nenhuma senha salva para {{count}} terminal(is) selecionado(s)", + "fillPasswordSuccess": "Senha inserida no(s) terminal(is) {{count}}", + "keyRecordingTitle": "Gravação principal", + "noTerminalTabsOpen": "Nenhuma aba do terminal aberta", + "recordToTerminals": "Gravar nos terminais", + "selectAll": "Todos", "selectNone": "Nenhum", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "selectTerminalsAbove": "Selecione os terminais acima.", + "settingsTitle": "Configurações", + "startRecording": "Iniciar gravação", + "stopRecording": "Parar gravação" }, "keybindings": { - "copy": "Copy selection", + "copy": "Copiar seleção", "paste": "Colar", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Enviar sinal Ctrl+letra", + "sendText": "Enviar mensagem de texto", + "controlCodeLabel": "Carta", + "textLabel": "Texto a enviar", + "appendEnterLabel": "Pressione Enter após enviar", + "clipboardPermissionNote": "Pode solicitar permissão para acessar a área de transferência no primeiro uso em alguns navegadores.", + "textRequired": "Digite o texto que deseja enviar.", + "controlCodeRequired": "Digite uma única letra para o código de controle.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Copiar seleção (Ctrl+C, somente quando o texto estiver selecionado)", + "copyCtrlShiftC": "Copiar seleção (Ctrl+Shift+C)", + "copyCmdC": "Copiar seleção (Cmd+C)", + "pasteCtrlShiftV": "Colar da área de transferência (Ctrl+Shift+V)", + "ctrlW": "Enviar Ctrl+W para o shell (impede o fechamento da aba do navegador)", + "ctrlT": "Envie Ctrl+T para o shell (impede a abertura de novas abas do navegador).", + "ctrlN": "Envie Ctrl+N para o shell (impede a abertura da janela do navegador).", + "ctrlQ": "Enviar Ctrl+Q para o shell (impede o fechamento do navegador)" } }, "macros": { "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", + "description": "Execute uma série de comandos salvos em um terminal e reaja ao que o servidor envia de volta.", + "target": "Alvo", + "noTerminal": "Nenhum terminal aberto", + "empty": "Ainda não há macros.", + "emptyHint": "Crie uma macro para automatizar um fluxo de trabalho no terminal, como fazer login, reiniciar um serviço ou responder a solicitações.", + "create": "Nova macro", + "back": "Voltar às macros", + "name": "Nome", + "namePlaceholder": "Reinicie o servidor web.", + "nameRequired": "Dê um nome à macro antes de salvar.", + "descriptionLabel": "Descrição", + "descriptionPlaceholder": "O que esta macro faz (opcional)", "unsaved": "Alterações não salvas", "save": "Salvar", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Macro salvo", + "saveFailed": "Não foi possível salvar a macro.", "delete": "Apagar", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Excluir esta macro?", + "deleteBody": "\"{{name}}\" será excluído permanentemente. Esta ação não pode ser desfeita.", + "deleted": "Macro excluída", "cancel": "Cancelar", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "run": "Correr", + "stop": "Parar", + "running": "Correndo...", + "completed": "Macro finalizado", + "failed": "A macro falhou", + "loadFailed": "Não foi possível carregar as macros", + "needTerminal": "Primeiro, abra e conecte um terminal.", + "noSteps": "Esta macro ainda não possui etapas. Adicione uma abaixo.", + "addStep": "Adicionar etapa", + "stepNumber": "Passo {{number}}", + "removeStep": "Remover etapa", + "confirmRunTitle": "Executar esta macro?", + "confirmRunBody": "\"{{name}}\" enviará comandos para {{host}}.", + "confirmRunAction": "Executar macro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Enviar comando", + "help": "Digita o texto no terminal, da mesma forma que se você o digitasse." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Aguarde a saída", + "help": "Aguarda até que o servidor imprima o texto que você digitou, como uma solicitação de senha." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Pausa", + "help": "Aguarda um período de tempo fixo antes da próxima etapa." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Se a saída contiver", + "help": "Verifica tudo o que o servidor imprimiu até o momento e, em seguida, executa uma das duas ramificações." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Repita", + "help": "Executa os passos internos um número definido de vezes." } }, "send": { - "text": "Command or text", + "text": "Comando ou texto", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Pressione Enter após enviar", + "pressEnterHelp": "Desative esta opção para digitar texto sem enviá-lo." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Aguarde até que a saída contenha", "patternPlaceholder": "senha:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Desistir depois", + "onTimeout": "Se nunca aparecer", + "stop": "Pare a macro", + "continue": "Continue mesmo assim" }, "delay": { - "duration": "Wait for" + "duration": "Aguarde" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Se a saída contiver", + "patternPlaceholder": "Ativo: ativo (em execução)", + "then": "Então faça isso", + "else": "Caso contrário, faça isto", + "emptyBranch": "Sem degraus" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Número de vezes", + "times": "vezes" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Combinar com uma expressão regular", + "useRegexHelp": "Deixe este campo em branco para que o texto corresponda exatamente ao que foi escrito.", + "invalidRegex": "Expressão regular inválida; será interpretada como texto simples." }, - "seconds": "seconds", + "seconds": "segundos", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Conecte um servidor remoto nas Configurações para usar este tipo de conexão." } } diff --git a/plugins/ssh-terminal/locales/translated/pt_PT.json b/plugins/ssh-terminal/locales/translated/pt_PT.json index c44e67f98..bd8818399 100644 --- a/plugins/ssh-terminal/locales/translated/pt_PT.json +++ b/plugins/ssh-terminal/locales/translated/pt_PT.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Falha ao ativar o Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux ativado para {{host}}. Aplica-se a partir da ligação seguinte.", + "clipboardHttpWarning": "Não foi possível ler a área de transferência. Alguns browsers restringem o acesso à área de transferência fora de HTTPS - experimente Ctrl+V ou utilize HTTPS para aceder ao Termix.", "closeTab": "Fechar", "connecting": "A ligar...", "connectionLost": "Ligação perdida", @@ -44,18 +44,18 @@ "reconnect": "Reconectar", "reconnected": "Ligação restabelecida com sucesso", "reconnecting": "A restabelecer ligação... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "Ligação perdida, reconectando...", + "searchCaseSensitive": "Caixa de fósforos", + "searchClose": "Fechar (Esc)", + "searchNext": "Próxima partida (Entrar)", + "searchNoResults": "Nenhum resultado", + "searchPlaceholder": "Encontrar", + "searchPrevious": "Partida anterior (Shift+Enter)", + "searchRegex": "Utilizar expressão regular", + "searchResultCount": "{{index}} de {{count}}", + "searchWholeWord": "Combine a palavra inteira", + "sessionExpiredNotice": "A sua sessão anterior em {{host}} expirou após {{minutes}} minutos desligado; o shell e tudo o que estava a ser executado nele foram perdidos. Active o Auto-Tmux neste host para manter as sessões ativas.", + "sessionExpiredNoticeNoMinutes": "A sua sessão anterior em {{host}} expirou enquanto estava desligada; o shell e tudo o que estava a ser executado nele foram perdidos. Active o Auto-Tmux neste host para manter as sessões ativas.", "sessionTakenOver": "A sessão foi aberta noutro separador. A restabelecer ligação...", "tmuxAttached": "Clientes anexados", "tmuxAttachedCount": "{{count}} anexado", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "Erro ao copiar para a área de transferência. Certifique-se de que a página é servida via HTTPS ou localhost.", "connected": "Ligado", "totpCodeLabel": "Código de verificação", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Aba duplicada", + "imageChooseFile": "Escolha um ficheiro de imagem", + "imageUploaded": "Imagem carregada: {{path}}", + "imageClipboardUnavailable": "Este browser não consegue ler imagens da área de transferência.", + "imageClipboardEmpty": "Nenhuma imagem encontrada na área de transferência", + "localShell": "Shell do terminal local", + "autocompleteHintComplete": "Prima Tab ou Enter para concluir", + "autocompleteHintNavigate": "↑↓ para navegar", + "autocompleteHintClose": "Prima Esc para fechar" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "Desanexar tmux", + "detachTmuxDescription": "Desanexar sessão tmux", + "dismissError": "Ignorar erro de imagem", + "hideToolbar": "Ocultar barra de ferramentas", + "image": "Ações de imagem (apenas imagens)", + "imageActionFailed": "A ação de imagem falhou", + "layout": "Modo de visualização da barra de ferramentas", + "layoutExpanded": "Expandido com métricas", + "layoutIcon": "Apenas o ícone", + "layoutLabeled": "Ícones e rótulos", + "moveToolbar": "Mover barra de ferramentas", + "moveToolbarHint": "Arraste para reposicionar a barra de ferramentas.", + "paste": "Colar imagem", + "pasteImage": "Colar imagem da área de transferência (apenas imagens)", "retry": "Repetir", "showToolbar": "Expandir barra", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "Carregar imagem", + "uploadImage": "Faça o upload de uma imagem para o host.", "uploadingImage": "A enviar..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "Limpar Tudo", "noHistoryEntries": "Sem entradas no histórico", "trackingDisabled": "O rastreio do histórico está desativado", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "Ative o Histórico de Comandos no separador Terminal SSH deste host.", + "commandCount_one": "{{count}} comando", + "commandCount_other": "{{count}} comandos" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", + "enabled": "Ativar entrada por toque", + "enabledDesc": "Permitir a rolagem com um único dedo nos terminais.", + "momentumEnabled": "Ativar o impulso", + "momentumEnabledDesc": "Continue a rolar brevemente após deslizar o dedo.", + "advanced": "Avançado", "resetDefaults": "Restaurar predefinições", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "Limiar de arrasto", + "maxWheelDelta": "Delta máximo da roda", + "momentumSampleWindow": "Janela de amostra de momento", + "releaseGracePeriod": "Período de carência para lançamento", + "minimumVelocity": "Velocidade mínima", + "maximumVelocity": "Velocidade máxima", + "maximumDuration": "Duração máxima", + "maximumTravel": "Viagem máxima", + "decayTime": "Tempo de decaimento", + "pixelsPerTick": "Pixels por tick", + "maximumFrameInterval": "Intervalo máximo entre fotogramas", + "maximumTicksPerFrame": "Número máximo de ticks por frame" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "ID da instância da sessão do terminal", + "instanceIdDesc": "ID da instância de uma das suas abas de terminal ligadas, utilizada para testar a visibilidade.", + "selectedModeUnavailable": "Indisponível", "test": "Testar", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "Testando...", + "testFailed": "Falha ao testar o armazenamento de imagens", + "testConnected": "A sessão do terminal está ligada.", + "testNotConnected": "Nenhuma sessão de terminal ligada com este ID de instância.", + "testSelectedMode": "Um upload utilizaria: {{mode}}", + "testLocalVisible": "O diretório local está visível a partir do host ligado.", + "testLocalNotVisible": "O diretório local NÃO está visível a partir do host ligado." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "Entrada por toque", + "images": "Armazenamento de imagens", "sessions": "Sessões", - "newHosts": "New Hosts" + "newHosts": "Novos anfitriões" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Persistência de sessão do terminal", + "description": "Tempo que um terminal desligado permanece ativo no servidor antes de ser fechado. Mínimo de 1 minuto, máximo de 1440 minutos. Para sessões que necessitem de durar mais do que isso, ative o Auto-Tmux no host." }, "commandHistoryEnabled": { "label": "Histórico de Comandos", "description": "Permitir o registo do histórico de comandos. Quando desativado, o histórico não é guardado independentemente das definições por máquina." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Histórico de comandos para novos hosts", + "description": "Se os novos hosts arrancarem com o histórico de comandos ativado." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Modo de armazenamento", + "description": "Local onde são apresentadas as imagens de terminal coladas e carregadas. As seleções automáticas por ligação, Local e Remota (SFTP), foram corrigidas.", "auto": "Automático", "local": "Local", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Remoto (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Diretório local", + "description": "Caminho absoluto no backend do Termix onde o modo local grava imagens. Nunca é apresentado após o guardar. Um valor vazio utiliza TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Caminho do host", + "description": "Vista do diretório local recebida pelos agentes de terminal, do lado do host." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Tempo de armazenamento de uma imagem carregada, em milissegundos. O valor vazio utiliza TERMIX_IMAGE_TTL_MS ou uma hora." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Contagem máxima de imagens", + "description": "A maioria das imagens é mantida em simultâneo. O parâmetro vazio utiliza TERMIX_MAX_IMAGE_COUNT ou 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Bytes de armazenamento máximo", + "description": "A maioria dos bytes das imagens são guardados de uma só vez. Quando vazio, utiliza-se TERMIX_MAX_IMAGE_STORAGE_BYTES ou 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Manter sessões após desconexão", + "description": "Mantenha um terminal desligado ativo no servidor durante o tempo acima especificado, para que, ao reabrir o separador, a sessão continue a partir do ponto onde parou." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Execute os terminais dos novos hosts dentro do tmux para que as sessões sobrevivam a desconexões (requer tmux no host)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Tema para novos anfitriões", + "description": "O tema do terminal com o qual um novo host inicia." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Fonte para novos anfitriões", + "description": "A fonte de terminal com a qual um novo host inicia." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Tamanho da fonte para novos hosts", + "description": "O tamanho da fonte do terminal com que um novo host é iniciado, em pixéis." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Estilo de cursor para novos hosts" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Cursor intermitente para novos hosts" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Ativar a barra de ferramentas do terminal", + "description": "Visualizar uma barra de ferramentas de acesso rápido acoplada ao terminal ativo com as ferramentas e estatísticas em tempo real deste host." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Posição da barra de ferramentas", + "description": "A barra de ferramentas está localizada no terminal. Pode ainda arrastá-la de lá.", + "bottom": "Centro inferior", + "bottomLeft": "Canto inferior esquerdo", + "bottomRight": "Canto inferior direito", + "top": "Centro superior", + "topLeft": "Canto superior esquerdo", + "topRight": "Canto superior direito" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Estado inicial da barra de ferramentas", + "description": "Se a barra de ferramentas abre expandida ou minimizada quando o terminal se liga.", + "expanded": "Expandido", + "collapsed": "Minimizado" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Modo de visualização da barra de ferramentas", + "description": "Como os botões da barra de ferramentas são apresentados. O último botão utilizado mantém a seleção feita na barra de ferramentas.", + "remember": "Último uso", + "icon": "Apenas o ícone", + "labeled": "Ícones e rótulos", + "expanded": "Expandido com estatísticas" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Mostrar estatísticas ao vivo", + "description": "Exibir estatísticas do host ao vivo acima dos botões da barra de ferramentas no modo expandido." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Desvanecer quando ocioso", + "description": "A barra de ferramentas desaparece gradualmente até que passe o cursor sobre ela." }, "enableCommandHistory": { "label": "Histórico de Comandos", @@ -273,147 +273,147 @@ }, "enableTerminal": { "label": "Ativar Terminal", - "description": "Offer an SSH terminal for this host." + "description": "Disponibilize um terminal SSH para este host." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Usar as configurações padrão do utilizador" }, "theme": { "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "cursor intermitente" }, "cursorStyle": { - "label": "Cursor style" + "label": "Estilo do cursor" }, "fontSize": { - "label": "Font size" + "label": "Tamanho da fonte" }, "fontFamily": { - "label": "Font" + "label": "Fonte" }, "scrollback": { - "label": "Scrollback" + "label": "Voltar ao início" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Espaçamento entre letras" }, "lineHeight": { - "label": "Line height" + "label": "Altura da linha" }, "bellStyle": { - "label": "Bell" + "label": "Sino" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Relação de contraste mínima" }, "backgroundImage": { - "label": "Background image" + "label": "Imagem de fundo" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Opacidade da imagem de fundo" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Cores de tema personalizadas" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Clicar com o botão direito do rato seleciona a palavra." }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "A opção é Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Tecla de deslocamento rápido" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Velocidade de rolagem rápida" }, "backspaceMode": { - "label": "Backspace" + "label": "Apagar" }, "autoMosh": { - "label": "Auto mosh" + "label": "Mosh automático" }, "moshCommand": { - "label": "Mosh command" + "label": "Comando Mosh" }, "autoTmux": { - "label": "Auto tmux" + "label": "tmux automático" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Utilize o título SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Realce de sintaxe" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Categorias de realce de sintaxe" }, "linkClickBehavior": { - "label": "Link click" + "label": "Clique no link" }, "localEcho": { - "label": "Local echo" + "label": "Eco local" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Ofereça-se para preencher os campos da palavra-passe." }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Preencha os prompts do sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Reconectar automaticamente" } }, "user": { "commandAutocomplete": { "label": "Autocompletar comandos", - "description": "Show autocomplete while typing if you press tab" + "description": "Exibir a funcionalidade de autocompletar enquanto escreve ao premir a tecla Tab." }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Eco Local", + "description": "Reduza a latência de entrada percebida utilizando a previsão segura de pressão de teclas local." }, "linkClickBehavior": { "label": "Clique em links do terminal", "description": "Comportamento predefinido ao clicar em links no terminal" }, "customThemes": { - "label": "Saved themes" + "label": "Temas guardados" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Terminal local" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Utilize sessões de terminal ao vivo", + "description": "Permite que outras funcionalidades, como a partilha e a gravação de sessões, cheguem às suas sessões de terminal em tempo real." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Leia o histórico de comandos", + "description": "Permite que outras funcionalidades, como o assistente de IA, leiam o seu histórico de comandos." } }, "hosts": { "tabTerminal": "Terminal", "addHost": "Adicionar máquina", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "Aplique este tema", "backgroundImageDesc": "URL opcional para uma imagem de fundo do terminal", "backgroundImageLabel": "URL da Imagem de Fundo", "backgroundImageOpacityLabel": "Opacidade da Imagem de Fundo", "backspaceMode": "Modo de retrocesso", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Controlo-H (BS)", "backspaceModeLabel": "Modo da Tecla Retrocesso", "backspaceModeNormal": "Normal (DEL)", "behaviorAndAdvanced": "Comportamento e Avançado", "bellStyle": "Estilo da campainha", - "bellStyleBoth": "Both", + "bellStyleBoth": "Ambos", "bellStyleLabel": "Estilo do Alerta Sonoro", "bellStyleNone": "Nenhuma", - "bellStyleSound": "Sound", + "bellStyleSound": "Som", "bellStyleVisual": "Visual", "colorTheme": "Tema de Cores", "cursorBlink": "Piscar do cursor", @@ -421,9 +421,9 @@ "cursorBlinkingDesc": "Ativar a animação de piscar para o cursor do terminal", "cursorStyle": "Estilo do cursor", "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBlock": "Bloco", "cursorStyleLabel": "Estilo do Cursor", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "Sublinhado", "customThemeAnsiColors": "Cores ANSI", "customThemeBackground": "Fundo", "customThemeBlack": "Preto", @@ -448,12 +448,12 @@ "customThemeSelection": "Seleção", "customThemeWhite": "Branco", "customThemeYellow": "Amarelo", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "Apagar este tema", "docsLink": "Ver documentação", "enableAutoMosh": "Ativar Auto-Mosh", "enableAutoMoshDesc": "Preferir Mosh a SSH, se disponível", "enableAutoTmux": "Ativar Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "Mantenha o seu shell e tudo o que nele está a ser executado em funcionamento mesmo após desconexões e reinicializações do browser, executando o comando dentro do tmux (o tmux necessita de estar instalado no host).", "fastScrollModifier": "Modificador de deslocamento rápido", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "Sensibilidade do deslocamento rápido", "fastScrollSensitivityLabel": "Sensibilidade do deslocamento rápido", "fontFamily": "Família da fonte", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Escolha uma fonte incluída ou selecione \"Personalizada\" e introduza o nome exato de uma fonte já instalada no seu sistema (por exemplo, MesloLGS NF, Noto Sans Mono). O Termix não instala fontes automaticamente; instale-as primeiro no seu sistema operativo.", + "fontFamilyCustomOption": "Personalizado...", + "fontFamilyCustomPlaceholder": "Nome exato da fonte, por exemplo, MesloLGS NF", "fontFamilyLabel": "Família da Fonte", "fontSize": "Tamanho da fonte", "fontSizeLabel": "Tamanho da Fonte", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "Abrir diretamente", "linkClickBehaviorLabel": "Comportamento ao clicar em ligações", "loadingHost": "A carregar o host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "Automático", + "localEchoDesc": "Preveja sequências de teclas seguras e imprimíveis localmente em ligações lentas. Os avisos de palavra-passe e as entradas de controlo nunca são repetidos.", + "localEchoLabel": "Eco Local", "localEchoOff": "Desativado", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "Sempre ligado", + "macOptionIsMetaLabel": "A tecla Option envia meta", + "macOptionIsMetaShortDesc": "Desative a digitação de caracteres especiais (como @ ou |) com a tecla Option/Alt no macOS em vez de enviar Meta", "moshCommand": "Comando MOSH", "moshCommandLabel": "Comando Mosh", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "Ainda não há temas guardados.", "none": "Nenhum", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Ofereça a opção de preencher a palavra-passe guardada quando o terminal o solicitar. Desative para que o preenchimento automático de palavras-passe neste host seja desativado.", + "passwordPromptAutoFillLabel": "Oferecer preenchimento automático de palavras-passe", + "autoReconnectLabel": "Reconexão automática", + "autoReconnectDesc": "Volta a ligar-se automaticamente quando a ligação SSH cai, como após uma interrupção na rede ou suspensão. Mantém o histórico de rolagem.", "rightClickSelectsWord": "Clique direito seleciona palavra", "rightClickSelectsWordLabel": "Clique Direito Seleciona Palavra", "rightClickSelectsWordShortDesc": "Selecionar a palavra sob o cursor ao clicar com o botão direito", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "Guardar como tema global", + "saveGlobalThemeError": "Falha ao guardar o tema", + "saveGlobalThemeNamePrompt": "Introduza um nome para este tema.", + "saveGlobalThemeSuccess": "Tema guardado", + "savedThemesLabel": "Temas guardados", "scrollbackBufferLabel": "Buffer de Retrocesso", "scrollbackMaxLines": "Número máximo de linhas guardadas no histórico", "sudoPasswordAutoFill": "Preenchimento Automático da Palavra-passe Sudo", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "Sucesso" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} ignorado (nenhum IP encontrado)", + "proxmoxStatsUrlCopied": "URL das estatísticas do Proxmox copiado para a área de transferência", "rdpUrlCopied": "URL RDP copiado", "vncUrlCopied": "URL VNC copiado", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "Etapa CA", "guac": { "noCredential": "Sem credencial (credenciais diretas abaixo)", "authTypeDirect": "Direta", @@ -556,18 +556,18 @@ "updateHostBtn": "Atualizar Host", "addHostBtn": "Adicionar Host" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Cofre" }, "nav": { "history": "Histórico", - "localTerminal": "Local Terminal", + "localTerminal": "Terminal local", "sshTools": "Ferramentas SSH", "terminal": "Terminal", "macros": "Macros" }, "sshTools": { "broadcastInputPlaceholder": "Digite aqui para difundir as teclas premidas...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "Copiar texto selecionado automaticamente", "enableRightClickCopyPaste": "Ativar copiar/colar com clique direito", "fillPassword": "Preencher palavra-passe", "fillPasswordMissing": "Nenhuma palavra-passe guardada para {{count}} terminal(is) selecionado(s)", @@ -583,123 +583,123 @@ "stopRecording": "Parar Gravação" }, "keybindings": { - "copy": "Copy selection", + "copy": "Copiar seleção", "paste": "Colar", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Enviar sinal Ctrl+letra", + "sendText": "Enviar mensagem de texto", + "controlCodeLabel": "Carta", + "textLabel": "Texto a enviar", + "appendEnterLabel": "Prima Enter após enviar", + "clipboardPermissionNote": "Pode solicitar permissão para aceder à área de transferência na primeira utilização em alguns navegadores.", + "textRequired": "Introduza o texto que pretende enviar.", + "controlCodeRequired": "Introduza uma única letra para o código de controlo.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Copiar seleção (Ctrl+C, apenas quando o texto está selecionado)", + "copyCtrlShiftC": "Copiar seleção (Ctrl+Shift+C)", + "copyCmdC": "Copiar seleção (Cmd+C)", + "pasteCtrlShiftV": "Colar da área de transferência (Ctrl+Shift+V)", + "ctrlW": "Enviar Ctrl+W para o shell (impede o fecho do separador do browser)", + "ctrlT": "Enviar Ctrl+T para o shell (impede a abertura de novos separadores do browser).", + "ctrlN": "Enviar Ctrl+N para o shell (impede a abertura da janela do browser).", + "ctrlQ": "Enviar Ctrl+Q para o shell (impede o fecho do browser)" } }, "macros": { "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "description": "Execute uma série de comandos guardados num terminal e reaja ao que o servidor envia de volta.", "target": "Destino", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "Nenhum terminal aberto", + "empty": "Ainda não existem macros.", + "emptyHint": "Crie uma macro para automatizar um fluxo de trabalho no terminal, como por exemplo, iniciar sessão, reiniciar um serviço ou responder a pedidos.", + "create": "Nova macro", + "back": "Voltar às macros", "name": "Nome", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "Reinicie o servidor web.", + "nameRequired": "Dê um nome à macro antes de guardar.", "descriptionLabel": "Descrição", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "O que faz esta macro (opcional)", "unsaved": "Alterações não guardadas", "save": "Guardar", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Macro salvo", + "saveFailed": "Não foi possível guardar a macro.", "delete": "Eliminar", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Apagar esta macro?", + "deleteBody": "\"{{name}}\" será eliminado permanentemente. Esta ação não pode ser anulada.", + "deleted": "Macro excluída", "cancel": "Cancelar", "run": "Executar", "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Corrida...", + "completed": "Macro finalizado", + "failed": "A macro falhou", + "loadFailed": "Não foi possível carregar as macros", + "needTerminal": "Primeiro, abra e ligue um terminal.", + "noSteps": "Esta macro ainda não tem etapas. Adicione uma abaixo.", + "addStep": "Adicionar etapa", + "stepNumber": "Passo {{number}}", + "removeStep": "Remover etapa", + "confirmRunTitle": "Executar esta macro?", + "confirmRunBody": "\"{{name}}\" enviará comandos para {{host}}.", + "confirmRunAction": "Executar macro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Enviar comando", + "help": "Digita o texto no terminal, da mesma forma que se o digitasse." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Aguarde a saída", + "help": "Aguarda até que o servidor imprima o texto que introduziu, como por exemplo um pedido de palavra-passe." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Pausa", + "help": "Aguarda um período de tempo fixo antes da etapa seguinte." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Se a saída contiver", + "help": "Verifica tudo o que o servidor imprimiu até à data e, em seguida, executa uma das duas ramificações." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Repetir", + "help": "Executa os passos internos um número definido de vezes." } }, "send": { - "text": "Command or text", + "text": "Comando ou texto", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Prima Enter após enviar", + "pressEnterHelp": "Desative esta opção para digitar texto sem o enviar." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Aguarde até que a saída contenha", "patternPlaceholder": "palavra-passe:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Desistir depois", + "onTimeout": "Se nunca aparecer", + "stop": "Pare a macro", + "continue": "Continue mesmo assim" }, "delay": { - "duration": "Wait for" + "duration": "Aguarde" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Se a saída contiver", + "patternPlaceholder": "Ativo: ativo (em execução)", + "then": "Então faça isso", + "else": "Caso contrário, faça-o", + "emptyBranch": "Sem degraus" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Número de vezes", + "times": "vezes" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Combinar com uma expressão regular", + "useRegexHelp": "Deixe este campo em branco para que o texto corresponda exatamente ao que foi escrito.", + "invalidRegex": "Expressão regular inválida; será interpretada como texto simples." }, "seconds": "segundos", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "É necessário um servidor remoto. Ligue um servidor remoto nas Definições para utilizar este tipo de ligação." } } diff --git a/plugins/ssh-terminal/locales/translated/ru_RU.json b/plugins/ssh-terminal/locales/translated/ru_RU.json index ff15c2189..d7bd4cb77 100644 --- a/plugins/ssh-terminal/locales/translated/ru_RU.json +++ b/plugins/ssh-terminal/locales/translated/ru_RU.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Не удалось включить Auto-Tmux.", + "autoTmuxEnabled": "Автоматический Tmux включен для {{host}}. Он применяется со следующего соединения.", + "clipboardHttpWarning": "Не удалось прочитать содержимое буфера обмена. Некоторые браузеры ограничивают доступ к буферу обмена вне протокола HTTPS — попробуйте использовать Ctrl+V или используйте Termix через HTTPS.", "closeTab": "Закрыть", "connecting": "Подключение...", "connectionLost": "Соединение потеряно", @@ -44,18 +44,18 @@ "reconnect": "Переподключиться", "reconnected": "Успешно переподключено", "reconnecting": "Переподключение... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "Соединение потеряно, переподключение...", + "searchCaseSensitive": "Спичечный коробок", + "searchClose": "Закрыть (Выход)", + "searchNext": "Следующий матч (Вход)", + "searchNoResults": "Результаты отсутствуют", + "searchPlaceholder": "Находить", + "searchPrevious": "Предыдущий матч (Shift+Enter)", + "searchRegex": "Используйте регулярные выражения", + "searchResultCount": "{{index}} из {{count}}", + "searchWholeWord": "Сопоставьте целое слово", + "sessionExpiredNotice": "Ваша предыдущая сессия на {{host}} завершилась через {{minutes}} минут после разрыва соединения; оболочка и все запущенные в ней программы удалены. Включите Auto-Tmux на этом хосте, чтобы поддерживать сессии активными.", + "sessionExpiredNoticeNoMinutes": "Ваша предыдущая сессия на {{host}} завершилась во время отключения; оболочка и все запущенные в ней приложения удалены. Включите Auto-Tmux на этом хосте, чтобы поддерживать сессии активными.", "sessionTakenOver": "Сеанс был открыт в другой вкладке. Переподключение...", "tmuxAttached": "Подключённые клиенты", "tmuxAttachedCount": "{{count}} подключено", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "Не удалось скопировать в буфер обмена. Убедитесь, что страница загружена по HTTPS или с localhost.", "connected": "Подключено", "totpCodeLabel": "Код подтверждения", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Дублировать вкладку", + "imageChooseFile": "Выберите файл изображения", + "imageUploaded": "Загруженное изображение: {{path}}", + "imageClipboardUnavailable": "Этот браузер не может считывать изображения из буфера обмена.", + "imageClipboardEmpty": "Изображение в буфере обмена не найдено", + "localShell": "Локальная терминальная оболочка", + "autocompleteHintComplete": "Нажмите клавишу Tab или Enter для завершения.", + "autocompleteHintNavigate": "↑↓ для навигации", + "autocompleteHintClose": "Нажмите Esc для закрытия" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "Отсоединить tmux", + "detachTmuxDescription": "Отключить сессию tmux", + "dismissError": "Отклонить ошибку изображения", + "hideToolbar": "Скрыть панель инструментов", + "image": "Действия с изображениями (только с изображениями)", + "imageActionFailed": "Операция с изображением не удалась.", + "layout": "режим отображения панели инструментов", + "layoutExpanded": "Дополнено метриками", + "layoutIcon": "Только иконка", + "layoutLabeled": "Иконки и подписи", + "moveToolbar": "Переместить панель инструментов", + "moveToolbarHint": "Перетащите панель инструментов, чтобы изменить ее положение.", + "paste": "Вставить изображение", + "pasteImage": "Вставить изображение из буфера обмена (только изображения)", "retry": "Повторить", "showToolbar": "Развернуть панель", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "Загрузить изображение", + "uploadImage": "Загрузите изображение на хостинг.", "uploadingImage": "Загрузка..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "Очистить всё", "noHistoryEntries": "Нет записей в истории", "trackingDisabled": "Отслеживание истории отключено", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "Включите историю команд во вкладке SSH-терминала этого хоста.", + "commandCount_one": "{{count}} команда", + "commandCount_other": "{{count}} команд" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", + "enabled": "Включить сенсорный ввод", + "enabledDesc": "Разрешить прокрутку одним пальцем в терминалах", + "momentumEnabled": "Включить импульс", + "momentumEnabledDesc": "После свайпа продолжите прокрутку еще немного.", + "advanced": "Передовой", "resetDefaults": "Сбросить по умолчанию", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "Порог сопротивления", + "maxWheelDelta": "Максимальная разница колес", + "momentumSampleWindow": "Окно выборки импульса", + "releaseGracePeriod": "Льготный период освобождения", + "minimumVelocity": "Минимальная скорость", + "maximumVelocity": "Максимальная скорость", + "maximumDuration": "Максимальная продолжительность", + "maximumTravel": "Максимальный ход", + "decayTime": "Время распада", + "pixelsPerTick": "Пикселей на такт", + "maximumFrameInterval": "Максимальный интервал кадров", + "maximumTicksPerFrame": "Максимальное количество тактов на кадр" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "Идентификатор экземпляра терминальной сессии", + "instanceIdDesc": "Идентификатор экземпляра одной из подключенных вкладок терминала, используемый для проверки видимости.", + "selectedModeUnavailable": "Недоступно", "test": "Проверить", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "Тестирование...", + "testFailed": "Не удалось проверить хранилище изображений.", + "testConnected": "Терминальная сессия подключена.", + "testNotConnected": "Нет подключенной терминальной сессии с этим идентификатором экземпляра.", + "testSelectedMode": "Для загрузки будет использоваться следующий синтаксис: {{mode}}", + "testLocalVisible": "Локальный каталог виден с подключенного хоста.", + "testLocalNotVisible": "Локальный каталог НЕ виден с подключенного хоста." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "Сенсорный ввод", + "images": "Хранилище изображений", "sessions": "Сессии", - "newHosts": "New Hosts" + "newHosts": "Новые хосты" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Сохранение сессии в терминале", + "description": "Как долго отключенный терминал остается активным на сервере до его закрытия. Мин. 1, макс. 1440 минут. Для сессий, которые должны длиться дольше этого времени, включите Auto-Tmux на хосте." }, "commandHistoryEnabled": { "label": "История команд", "description": "Включить запись истории команд. При отключении история не сохраняется независимо от настроек хостов." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "История команд для новых хостов", + "description": "Включается ли история команд при запуске новых хостов." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Режим хранения", + "description": "Где записываются и загружаются образы терминала. Автоматический выбор по типу подключения, локальному и удаленному (SFTP) — это фиксированная настройка.", "auto": "Авто", "local": "Локальная", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Удаленный (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Локальный каталог", + "description": "Абсолютный путь в бэкэнде Termix, куда в локальном режиме записываются изображения. Никогда не отображается после сохранения. Пустой путь использует TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Путь к хосту", + "description": "Представление локального каталога на стороне хоста, которое получают терминальные агенты." }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "TTL (мс)", + "description": "Время хранения загруженного изображения в миллисекундах. В пустом случае используется значение TERMIX_IMAGE_TTL_MS, или один час." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Максимальное количество изображений", + "description": "Большинство изображений сохраняется одновременно. В пустом режиме используется значение TERMIX_MAX_IMAGE_COUNT или 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Максимальный объем хранилища в байтах", + "description": "Максимальное количество байтов изображений, хранящихся одновременно. Пустой файл использует TERMIX_MAX_IMAGE_STORAGE_BYTES или 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Сохраняйте сессии после отключения.", + "description": "Поддерживайте активность отключенного терминала на сервере в течение указанного выше времени, чтобы при повторном открытии его вкладки работа продолжалась с того места, где она остановилась." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Запускайте терминалы новых хостов внутри tmux, чтобы сессии сохранялись после разрывов соединения (для этого tmux должен быть установлен на хосте)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Тема оформления для новых хостов", + "description": "Тема оформления терминала, с которой запускается новый хост." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Шрифт для новых хостов", + "description": "Шрифт терминала, используемый при запуске нового хоста." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Размер шрифта для новых хостов", + "description": "Размер шрифта в пикселях, с которым запускается новый хост." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Стиль курсора для новых хостов" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Мигающий курсор для новых хостов" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Включить панель инструментов терминала", + "description": "Отобразить панель быстрого доступа, закрепленную на активном терминале, для отображения инструментов и статистики этого хоста в режиме реального времени." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Положение панели инструментов", + "description": "Там, где находится панель инструментов в терминале. Вы по-прежнему можете перетаскивать её оттуда.", + "bottom": "Нижний центр", + "bottomLeft": "Внизу слева", + "bottomRight": "Внизу справа", + "top": "Верхний центр", + "topLeft": "Вверху слева", + "topRight": "Вверху справа" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Начальное состояние панели инструментов", + "description": "Будет ли панель инструментов открываться в развернутом или свернутом виде при подключении терминала?", + "expanded": "Расширенный", + "collapsed": "Минимизированный" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Режим отображения панели инструментов", + "description": "Как отображаются кнопки на панели инструментов. Функция «Последнее использованное» сохраняет выбранные вами кнопки на панели инструментов.", + "remember": "Последнее использование", + "icon": "Только иконка", + "labeled": "Иконки и подписи", + "expanded": "Дополнено статистикой." }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Показать статистику в реальном времени", + "description": "В расширенном режиме отображайте статистику хоста в режиме реального времени над кнопками панели инструментов." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Затухание в режиме ожидания", + "description": "Постепенно уменьшайте масштаб панели инструментов, пока не наведете на нее курсор мыши." }, "enableCommandHistory": { "label": "История команд", @@ -273,157 +273,157 @@ }, "enableTerminal": { "label": "Включить терминал", - "description": "Offer an SSH terminal for this host." + "description": "Предоставьте SSH-терминал для этого хоста." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Использовать пользовательские настройки по умолчанию" }, "theme": { "label": "Тема" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Мигающий курсор" }, "cursorStyle": { - "label": "Cursor style" + "label": "Стиль курсора" }, "fontSize": { - "label": "Font size" + "label": "размер шрифта" }, "fontFamily": { - "label": "Font" + "label": "Шрифт" }, "scrollback": { - "label": "Scrollback" + "label": "Прокрутка назад" }, "letterSpacing": { - "label": "Letter spacing" + "label": "межбуквенный интервал" }, "lineHeight": { - "label": "Line height" + "label": "Высота строки" }, "bellStyle": { - "label": "Bell" + "label": "Белл" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Минимальный коэффициент контрастности" }, "backgroundImage": { - "label": "Background image" + "label": "Фоновое изображение" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Прозрачность фонового изображения" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Пользовательские цвета темы" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Щелчок правой кнопкой мыши выделяет слово." }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Вариант — Мета" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Клавиша быстрой прокрутки" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Высокая скорость прокрутки" }, "backspaceMode": { "label": "Backspace" }, "autoMosh": { - "label": "Auto mosh" + "label": "Автомош" }, "moshCommand": { - "label": "Mosh command" + "label": "Команда Мош" }, "autoTmux": { - "label": "Auto tmux" + "label": "Автоматический tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Используйте заголовок SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Подсветка синтаксиса" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Категории подсветки синтаксиса" }, "linkClickBehavior": { - "label": "Link click" + "label": "Ссылка клик" }, "localEcho": { - "label": "Local echo" + "label": "Локальное эхо" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Предложить заполнить поля для ввода пароля" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Заполните подсказки sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Автоматическое переподключение" } }, "user": { "commandAutocomplete": { "label": "Автодополнение команд", - "description": "Show autocomplete while typing if you press tab" + "description": "При нажатии клавиши Tab будет отображаться автозаполнение во время набора текста." }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Локальное эхо", + "description": "Снизьте воспринимаемую задержку ввода, используя безопасное локальное прогнозирование нажатий клавиш." }, "linkClickBehavior": { "label": "Клик по ссылке в терминале", "description": "Поведение по умолчанию при клике по ссылкам в терминале" }, "customThemes": { - "label": "Saved themes" + "label": "Сохраненные темы" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Локальный терминал" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Используйте сеансы работы с терминалом в режиме реального времени.", + "description": "Позволяет использовать другие функции, такие как совместное использование сессий и запись, в режиме реального времени на вашем терминале." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Прочитать историю команд", + "description": "Позволяет другим функциям, таким как ИИ-помощник, читать историю ваших команд." } }, "hosts": { "tabTerminal": "Терминал", "addHost": "Добавить хост", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "Примените эту тему", "backgroundImageDesc": "Необязательный URL для фонового изображения терминала", "backgroundImageLabel": "URL фонового изображения", "backgroundImageOpacityLabel": "Прозрачность фонового изображения", "backspaceMode": "Режим Backspace", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Контроль-H (BS)", "backspaceModeLabel": "Режим Backspace", - "backspaceModeNormal": "Normal (DEL)", + "backspaceModeNormal": "Нормальный (DEL)", "behaviorAndAdvanced": "Поведение и дополнительные настройки", "bellStyle": "Стиль звукового сигнала", - "bellStyleBoth": "Both", + "bellStyleBoth": "Оба", "bellStyleLabel": "Стиль сигнала", "bellStyleNone": "Ни одного", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "Звук", + "bellStyleVisual": "Визуальный", "colorTheme": "Цветовая тема", "cursorBlink": "Мигание курсора", "cursorBlinking": "Мигание курсора", "cursorBlinkingDesc": "Включить анимацию мигания курсора терминала", "cursorStyle": "Стиль курсора", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBar": "Бар", + "cursorStyleBlock": "Блокировать", "cursorStyleLabel": "Стиль курсора", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "Подчеркнуть", "customThemeAnsiColors": "Цвета ANSI", "customThemeBackground": "Фон", "customThemeBlack": "Чёрный", @@ -448,12 +448,12 @@ "customThemeSelection": "Выделение", "customThemeWhite": "Белый", "customThemeYellow": "Жёлтый", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "Удалить эту тему", "docsLink": "Документация", "enableAutoMosh": "Включить Auto-Mosh", "enableAutoMoshDesc": "Предпочитать Mosh вместо SSH, если доступен", "enableAutoTmux": "Включить Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "Поддерживайте работоспособность вашей оболочки и всего, что в ней работает, даже при разрыве соединения и перезапуске браузера, запустив tmux (tmux должен быть установлен на хосте).", "fastScrollModifier": "Модификатор быстрой прокрутки", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "Чувствительность быстрой прокрутки", "fastScrollSensitivityLabel": "Чувствительность быстрой прокрутки", "fontFamily": "Семейство шрифтов", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Выберите шрифт из комплекта или выберите «Пользовательский» и введите точное название шрифта, уже установленного в вашей системе (например, MesloLGS NF, Noto Sans Mono). Termix не может установить шрифты автоматически, сначала установите его в свою операционную систему.", + "fontFamilyCustomOption": "Обычай...", + "fontFamilyCustomPlaceholder": "Точное название шрифта, например, MesloLGS NF", "fontFamilyLabel": "Семейство шрифтов", "fontSize": "Размер шрифта", "fontSizeLabel": "Размер шрифта", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "Открывать напрямую", "linkClickBehaviorLabel": "Поведение при клике по ссылке", "loadingHost": "Загрузка хоста...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "Автоматический", + "localEchoDesc": "Предсказывает безопасные нажатия клавиш для печати локально даже при медленном соединении. Запросы паролей и управляющий ввод никогда не отображаются.", + "localEchoLabel": "Локальное эхо", "localEchoOff": "Отключено", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "Всегда включено", + "macOptionIsMetaLabel": "Клавиша Option отправляет метаданные", + "macOptionIsMetaShortDesc": "Отключите возможность ввода специальных символов (например, @ или |) с помощью клавиши Option/Alt в macOS вместо отправки Meta.", "moshCommand": "Команда MOSH", "moshCommandLabel": "Команда Mosh", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "Сохранённых тем пока нет.", "none": "Нет", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Предлагается ввести сохраненный пароль, когда терминал запросит его. Отключите эту функцию, чтобы автоматическое заполнение паролей на этом хосте никогда не происходило.", + "passwordPromptAutoFillLabel": "Функция автозаполнения паролей", + "autoReconnectLabel": "Автоматическое переподключение", + "autoReconnectDesc": "При разрыве SSH-соединения, например, после сбоя сети или перехода в спящий режим, система автоматически переподключается. При этом сохраняется возможность прокрутки назад.", "rightClickSelectsWord": "Выделять слово правой кнопкой", "rightClickSelectsWordLabel": "Правый клик выделяет слово", "rightClickSelectsWordShortDesc": "Выделять слово под курсором при правом клике", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "Сохранить как глобальную тему", + "saveGlobalThemeError": "Не удалось сохранить тему.", + "saveGlobalThemeNamePrompt": "Введите название для этой темы.", + "saveGlobalThemeSuccess": "Тема сохранена", + "savedThemesLabel": "Сохраненные темы", "scrollbackBufferLabel": "Буфер прокрутки", "scrollbackMaxLines": "Максимальное количество строк, сохраняемых в истории", "sudoPasswordAutoFill": "Автозаполнение пароля sudo", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "Успешно" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} пропущено (IP-адрес не найден)", + "proxmoxStatsUrlCopied": "URL-адрес статистики Proxmox скопирован в буфер обмена.", "rdpUrlCopied": "Скопирован URL RDP", "vncUrlCopied": "Скопирован URL VNC", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "Шаг CA", "guac": { "noCredential": "Нет учетных данных (прямые данные ниже)", "authTypeDirect": "Прямой", @@ -556,18 +556,18 @@ "updateHostBtn": "Обновить хост", "addHostBtn": "Добавить хост" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Сейф" }, "nav": { "history": "История", - "localTerminal": "Local Terminal", + "localTerminal": "Локальный терминал", "sshTools": "Инструменты SSH", "terminal": "Терминал", - "macros": "Macros" + "macros": "Макросы" }, "sshTools": { "broadcastInputPlaceholder": "Введите текст для трансляции нажатий...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "Автоматическое копирование выделенного текста", "enableRightClickCopyPaste": "Включить копирование/вставку правой кнопкой мыши", "fillPassword": "Заполнить пароль", "fillPasswordMissing": "Нет сохранённого пароля для {{count}} выбранных терминалов", @@ -583,123 +583,123 @@ "stopRecording": "Остановить запись" }, "keybindings": { - "copy": "Copy selection", + "copy": "Скопировать выделенный фрагмент", "paste": "Вставить", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Отправить сигнал Ctrl+буква", + "sendText": "Отправить текст", + "controlCodeLabel": "Письмо", + "textLabel": "Текст для отправки", + "appendEnterLabel": "Нажмите Enter после отправки", + "clipboardPermissionNote": "В некоторых браузерах при первом использовании может запрашиваться разрешение на использование буфера обмена.", + "textRequired": "Введите текст для отправки", + "controlCodeRequired": "Введите одну букву в качестве управляющего кода.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Скопировать выделенный фрагмент (Ctrl+C, только если выделен текст)", + "copyCtrlShiftC": "Скопировать выделенный фрагмент (Ctrl+Shift+C)", + "copyCmdC": "Скопировать выделенный фрагмент (Cmd+C)", + "pasteCtrlShiftV": "Вставить из буфера обмена (Ctrl+Shift+V)", + "ctrlW": "Отправьте Ctrl+W в командную оболочку (это заблокирует закрытие вкладки браузера).", + "ctrlT": "Отправьте Ctrl+T в командную оболочку (это заблокирует открытие вкладки браузера).", + "ctrlN": "Отправьте Ctrl+N в командную оболочку (это заблокирует открытие окна браузера).", + "ctrlQ": "Отправьте Ctrl+Q в командную оболочку (это заблокирует возможность закрытия браузера)." } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "Макросы", + "description": "Выполните сохраненную последовательность команд в терминале и отреагируйте на то, что сервер отправит вам в ответ.", "target": "Цель", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "Терминал не открыт", + "empty": "Макросы пока отсутствуют", + "emptyHint": "Создайте макрос для автоматизации действий в терминале, таких как вход в систему, перезапуск службы или ответ на запросы.", + "create": "Новый макрос", + "back": "Вернуться к макроэлементам", "name": "Название", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "Перезапустите веб-сервер", + "nameRequired": "Перед сохранением дайте макросу имя.", "descriptionLabel": "Описание", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "Что делает этот макрос (необязательно)", "unsaved": "Несохранённые изменения", "save": "Сохранить", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Макрос сохранен", + "saveFailed": "Не удалось сохранить макрос.", "delete": "Удалить", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Удалить этот макрос?", + "deleteBody": "\"{{name}}\" будет удалено навсегда. Этого нельзя будет отменить.", + "deleted": "Макрос удален", "cancel": "Отмена", "run": "Запустить", "stop": "Остановить", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Бег...", + "completed": "Макро завершен", + "failed": "Макрос не сработал", + "loadFailed": "Не удалось загрузить макросы.", + "needTerminal": "Сначала откройте и подключите терминал.", + "noSteps": "В этом макросе пока нет шагов. Добавьте один ниже.", + "addStep": "Добавить шаг", + "stepNumber": "Шаг {{number}}", + "removeStep": "Удалить шаг", + "confirmRunTitle": "Запустить этот макрос?", + "confirmRunBody": "\"{{name}}\" будет отправлять команды {{host}}.", + "confirmRunAction": "Запустить макрос", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Отправить команду", + "help": "Вводит текст в терминал так же, как если бы вы его ввели вручную." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Дождитесь вывода", + "help": "Приостанавливается до тех пор, пока сервер не выведет указанный вами текст, как запрос пароля." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Пауза", + "help": "Перед следующим шагом выполняется ожидание в течение заданного промежутка времени." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Если вывод содержит", + "help": "Проверяет все данные, выведенные сервером на экран, а затем запускает одну из двух ветвей выполнения." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Повторить", + "help": "Выполняет все шаги, входящие в его состав, заданное количество раз." } }, "send": { - "text": "Command or text", + "text": "Команда или текст", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Нажмите Enter после отправки", + "pressEnterHelp": "Отключите эту функцию, чтобы вводить текст без отправки." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Дождитесь, пока на выходе не появится", "patternPlaceholder": "пароль:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Сдаться после", + "onTimeout": "Если оно никогда не появится", + "stop": "Остановите макрос", + "continue": "Продолжайте в любом случае." }, "delay": { - "duration": "Wait for" + "duration": "Подождите" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Если в выходных данных содержится", + "patternPlaceholder": "Активный: активен (работает)", + "then": "Затем сделайте это.", + "else": "В противном случае сделайте это.", + "emptyBranch": "Без ступенек" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Количество раз", + "times": "времена" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Сопоставление с использованием регулярного выражения", + "useRegexHelp": "Оставьте этот параметр отключенным, чтобы текст точно соответствовал написанному.", + "invalidRegex": "Не является допустимым регулярным выражением, будет сопоставлено как обычный текст." }, "seconds": "секунды", - "secondsShort": "{{count}}s" + "secondsShort": "{{count}}с" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Требуется удаленный сервер. Для использования этого типа подключения подключите удаленный сервер в настройках." } } diff --git a/plugins/ssh-terminal/locales/translated/sr_SP.json b/plugins/ssh-terminal/locales/translated/sr_SP.json index 33f4814a6..9929c1cf0 100644 --- a/plugins/ssh-terminal/locales/translated/sr_SP.json +++ b/plugins/ssh-terminal/locales/translated/sr_SP.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "Додај", + "arrowDown": "Стрелица надоле", + "arrowLeft": "Стрелица лево", + "arrowRight": "Стрелица десно", + "arrowUp": "Стрелица нагоре", "backTab": "⇥", "ctrl": "Ctrl", - "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", - "esc": "Esc", - "home": "Home", - "pageDown": "PgDn", + "delete": "Дел", + "done": "Готово", + "editQuickKeys": "Уреди брзе тастере", + "end": "Крај", + "esc": "Излаз", + "home": "Дом", + "pageDown": "ПгДн", "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "paste": "Залепи", + "quickKeyPlaceholder": "нпр. sudo ", + "quickKeysDesc": "Додирните × да бисте уклонили. Подржава до 8 знакова.", + "quickKeysTitle": "Брзи тастери", + "removeQuickKey": "Уклони", + "resetDefaults": "Ресетуј на подразумеване вредности", + "shift": "Померање", + "tab": "Таб" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "autoTmuxEnableFailed": "Није успело омогућавање аутоматског Tmux-а", + "autoTmuxEnabled": "Аутоматски Tmux је омогућен за {{host}}. Примењује се од следећег повезивања.", + "clipboardHttpWarning": "Није могуће прочитати међуспремник. Неки прегледачи ограничавају приступ међуспремнику ван HTTPS-а - покушајте са Ctrl+V или покрените Termix преко HTTPS-а.", + "closeTab": "Затвори", + "connecting": "Повезивање...", + "connectionLost": "Веза је прекинута", + "connectionRejected": "Сервер је одбио везу. Проверите аутентификацију и конфигурацију мреже.", + "connectionTimeout": "Временско ограничење везе", + "enableAutoTmuxAction": "Омогући аутоматски Tmux", + "hostKeyRejected": "Верификација SSH кључа хоста је одбијена. Веза је отказана.", + "linkDialogCopy": "Копија", + "linkDialogOpen": "Отворено", + "linkDialogTitle": "Отвори линк", + "maxReconnectAttemptsReached": "Достигнут је максималан број покушаја поновног повезивања", + "noHostSelected": "Није изабран домаћин", + "passwordPromptFillTitle": "Унесите сачувану лозинку у овај промпт?", + "reconnect": "Поново се повежите", + "reconnected": "Поново повезано успешно", + "reconnecting": "Поновно повезивање... ({{attempt}}/{{max}})", + "autoReconnecting": "Веза је прекинута, поново се повезује...", + "searchCaseSensitive": "Упаривање великог и малог дела", + "searchClose": "Затвори (Escape)", + "searchNext": "Следећи меч (Унесите)", + "searchNoResults": "Нема резултата", + "searchPlaceholder": "Пронађи", + "searchPrevious": "Претходно подударање (Shift+Enter)", + "searchRegex": "Користите регуларни израз", + "searchResultCount": "{{index}} од {{count}}", + "searchWholeWord": "Подударање целе речи", + "sessionExpiredNotice": "Ваша претходна сесија на {{host}} је истекла након {{minutes}} минута од прекида везе; љуска и све што је у њој покренуто су нестали. Омогућите Auto-Tmux на овом хосту да би сесије остале активне.", + "sessionExpiredNoticeNoMinutes": "Ваша претходна сесија на {{host}} је истекла док сте били одвојени; љуска и све што је у њој покренуто су нестали. Омогућите Auto-Tmux на овом хосту да би сесије остале активне.", + "sessionTakenOver": "Сесија је отворена у другој картици. Поновно повезивање...", + "tmuxAttached": "Прикључени клијенти", + "tmuxAttachedCount": "{{count}} приложено", + "tmuxCopyHint": "Прилагодите избор и притисните Ентер да бисте копирали у међуспремник", + "tmuxCreateNew": "Започни нову сесију", + "tmuxDetached": "Одвојено од tmux сесије", + "tmuxLastActivity": "Последња активност", + "tmuxSessionAttached": "приложена tmux сесија: {{name}}", + "tmuxSessionCreated": "tmux сесија креирана: {{name}}", + "tmuxSessionPickerDesc": "Постојеће tmux сесије пронађене су на овом хосту. Изаберите једну да бисте је поново повезали или креирали нову сесију.", + "tmuxSessionPickerTitle": "tmux сесије", + "tmuxTimeDays": "{{count}}пре д", + "tmuxTimeHours": "{{count}}пре сати", + "tmuxTimeJustNow": "управо сада", + "tmuxTimeMinutes": "{{count}}пре мин", + "tmuxUnavailable": "tmux није инсталиран на удаљеном хосту, враћа се на стандардну љуску", + "tmuxWindowCount": "{{count}} прозор", + "tmuxWindows": "Прозори", + "unknownError": "Дошло је до непознате грешке", + "websocketAbnormalClose": "Веза је неочекивано прекинута. Ово може бити због проблема са обрнутим проксијем или SSL конфигурацијом. Молимо вас да проверите логове сервера.", + "websocketError": "Грешка при повезивању са WebSocket-ом", + "clipboardReadFailed": "Читање из међуспремника није успело. Уверите се да су дозволе за међуспремник одобрене.", + "clipboardWriteFailed": "Копирање у међуспремник није успело. Уверите се да се страница приказује преко HTTPS-а или localhost-а.", + "connected": "Повезано", + "totpCodeLabel": "Верификациони код", + "duplicateTab": "Дуплирај картицу", + "imageChooseFile": "Изаберите датотеку слике", + "imageUploaded": "Отпремљена слика: {{path}}", + "imageClipboardUnavailable": "Овај прегледач не може да чита слике из међуспремника", + "imageClipboardEmpty": "Није пронађена слика у међуспремнику", + "localShell": "Локална терминална љуска", + "autocompleteHintComplete": "Таб или Ентер да бисте завршили", + "autocompleteHintNavigate": "↑↓ за навигацију", + "autocompleteHintClose": "Esc за затварање" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Одвојите tmux", + "detachTmuxDescription": "Одвојите tmux сесију", + "dismissError": "Грешка при одбацивању слике", + "hideToolbar": "Сакриј траку са алаткама", + "image": "Радње са сликама (само слике)", + "imageActionFailed": "Акција са сликом није успела", + "layout": "Режим приказа алатне траке", + "layoutExpanded": "Проширено са метрикама", + "layoutIcon": "Само икона", + "layoutLabeled": "Иконе и ознаке", + "moveToolbar": "Помери траку са алаткама.", + "moveToolbarHint": "Превуците да бисте променили положај траке са алаткама", + "paste": "Налепи слику", + "pasteImage": "Налепи слику из међуспремника (само слике)", + "retry": "Покушај поново", + "showToolbar": "Прошири траку са алаткама", + "upload": "Отпреми слику", + "uploadImage": "Отпремите слику на хост", + "uploadingImage": "Отпремање..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Није изабран терминал", + "noTerminalSelectedHint": "Отворите картицу SSH терминала да бисте видели историју његових команди", + "searchPlaceholder": "Историја претраге...", + "clearAll": "Обриши све", + "noHistoryEntries": "Нема уноса у историји", + "trackingDisabled": "Праћење историје је онемогућено", + "trackingDisabledHint": "Укључите историју команди на картици SSH терминала овог хоста.", + "commandCount_one": "{{count}} команда", + "commandCount_other": "{{count}} команде" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Омогући унос додиром", + "enabledDesc": "Дозволите скроловање једним прстом у терминалима", + "momentumEnabled": "Омогући Моментум", + "momentumEnabledDesc": "Наставите кратко да скролујете након превлачења прстом", + "advanced": "Напредно", + "resetDefaults": "Ресетуј на подразумеване вредности", + "dragThreshold": "Праг превлачења", + "maxWheelDelta": "Максимална делта точка", + "momentumSampleWindow": "Прозор узорка момента", + "releaseGracePeriod": "Грејс период за објављивање", + "minimumVelocity": "Минимална брзина", + "maximumVelocity": "Максимална брзина", + "maximumDuration": "Максимално трајање", + "maximumTravel": "Максимални ход", + "decayTime": "Време распада", + "pixelsPerTick": "Пиксела по тик-у", + "maximumFrameInterval": "Максимални интервал кадра", + "maximumTicksPerFrame": "Максималан број откуцаја по кадру" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "ИД инстанце терминалне сесије", + "instanceIdDesc": "ИД инстанце једне од ваших повезаних картица терминала, која се користи за тестирање видљивости.", + "selectedModeUnavailable": "Недоступно", + "test": "Тест", + "testing": "Тестирање...", + "testFailed": "Тестирање складиштења слика није успело", + "testConnected": "Терминална сесија је повезана.", + "testNotConnected": "Нема повезане терминалне сесије са овим ID-ом инстанце.", + "testSelectedMode": "Отпремање би користило: {{mode}}", + "testLocalVisible": "Локални директоријум је видљив са повезаног хоста.", + "testLocalNotVisible": "Локални директоријум НИЈЕ видљив са повезаног хоста." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Унос додиром", + "images": "Складиштење слика", + "sessions": "Сесије", + "newHosts": "Нови домаћини" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Трајност терминалне сесије", + "description": "Колико дуго се искључени терминал одржава активним на серверу пре него што се затвори. Мин. 1, макс. 1440 минута. За сесије које морају да трају дуже од овог периода, омогућите Auto-Tmux на хосту." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Историја команди", + "description": "Дозволи снимање историје команди. Када је онемогућено, историја се не чува без обзира на подешавања за сваки хост." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Историја команди за нове хостове", + "description": "Да ли нови хостови почињу са укљученом историјом команди." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "Режим складиштења", + "description": "Где се записују налепљене и отпремљене слике терминала. Аутоматски избори по конекцији, локални и удаљени (SFTP) су поправљени.", + "auto": "Аутоматски", + "local": "Локално", + "remoteSftp": "Удаљено (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Локални директоријум", + "description": "Апсолутна путања на Termix серверу где локални режим уписује слике. Никада се не приказује након чувања. Празно користи TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Путања хоста", + "description": "Поглед са стране хоста на локални директоријум који терминални агенти примају." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Колико дуго се чува отпремљена слика, у милисекундама. Празно користи TERMIX_IMAGE_TTL_MS или један сат." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Максималан број слика", + "description": "Већина слика се чува одједном. Празно користи TERMIX_MAX_IMAGE_COUNT или 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Максимални број бајтова за складиштење", + "description": "Већина бајтова слика се чува одједном. Празно користи TERMIX_MAX_IMAGE_STORAGE_BYTES или 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Задржи сесије након прекида", + "description": "Држите искључени терминал активним на серверу током горе наведеног времена, тако да поновно отварање његове картице настави тамо где је стао." }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "Ауто-Тмукс", + "description": "Покрећи терминале нових хостова унутар tmux-а како би сесије преживеле прекиде везе (потребан је tmux на хосту)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Тема за нове домаћине", + "description": "Тема терминала са којом почиње нови домаћин." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Фонт за нове домаћине", + "description": "Фонт терминала са којим почиње нови хост." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Величина фонта за нове хостове", + "description": "Величина фонта терминала са којом почиње нови хост, у пикселима." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Стил курсора за нове хостове" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Трепћући курсор за нове хостове" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Омогући траку са алаткама терминала", + "description": "Прикажи траку са алаткама за брзи приступ причвршћену за активни терминал за алате и статистику уживо овог хоста" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Положај алатне траке", + "description": "Где се налази трака са алаткама у терминалу. И даље је можете превући одатле.", + "bottom": "Доњи центар", + "bottomLeft": "Доле лево", + "bottomRight": "Доле десно", + "top": "Горњи центар", + "topLeft": "Горе лево", + "topRight": "Горе десно" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Почетно стање алатке", + "description": "Да ли се трака са алаткама отвара проширена или минимизирана када се терминал повеже", + "expanded": "Проширено", + "collapsed": "Минимизирано" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Режим приказа алатне траке", + "description": "Како се приказују дугмад на траци са алаткама. „Последње коришћено“ задржава оно што сте изабрали на траци са алаткама.", + "remember": "Последње коришћење", + "icon": "Само икона", + "labeled": "Иконе и ознаке", + "expanded": "Проширено са статистиком" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Прикажи статистику уживо", + "description": "Прикажи статистику домаћина уживо изнад дугмади на траци са алаткама у проширеном режиму" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Блидење у стању мировања", + "description": "Трака са алаткама ће се постепено смањивати док се показивач миша не пређе преко ње" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Историја команди", + "description": "Снимање команди које се извршавају у овом терминалу за историју и аутоматско довршавање" }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "Омогући терминал", + "description": "Понудите SSH терминал за овај хост." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Користи подразумеване вредности корисника" }, "theme": { - "label": "Theme" + "label": "Тема" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Трепћући курсор" }, "cursorStyle": { - "label": "Cursor style" + "label": "Стил курсора" }, "fontSize": { - "label": "Font size" + "label": "Величина фонта" }, "fontFamily": { - "label": "Font" + "label": "Фонт" }, "scrollback": { - "label": "Scrollback" + "label": "Померање уназад" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Размак између слова" }, "lineHeight": { - "label": "Line height" + "label": "Висина линије" }, "bellStyle": { - "label": "Bell" + "label": "Звоно" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Минимални контрастни однос" }, "backgroundImage": { - "label": "Background image" + "label": "Позадинска слика" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Непрозирност позадинске слике" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Прилагођене боје теме" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Десни клик бира реч" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Опција је Мета" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Тастер за брзо скроловање" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Велика брзина скроловања" }, "backspaceMode": { - "label": "Backspace" + "label": "Brisanje" }, "autoMosh": { - "label": "Auto mosh" + "label": "Ауто мош" }, "moshCommand": { - "label": "Mosh command" + "label": "Мош команда" }, "autoTmux": { - "label": "Auto tmux" + "label": "Аутоматски tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Користите SSH наслов" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Истицање синтаксе" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Категорије истицања синтаксе" }, "linkClickBehavior": { - "label": "Link click" + "label": "Клик на линк" }, "localEcho": { - "label": "Local echo" + "label": "Локални одјек" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Понуди попуњавање захтева за лозинку" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Попуните sudo упите" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Аутоматски се поново повежи" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Аутоматско довршавање команди", + "description": "Прикажи аутоматско довршавање током куцања ако притиснеш тастер Tab" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Локални одјек", + "description": "Смањите перципирану латенцију уноса користећи безбедно локално предвиђање откуцаја тастера" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Клик на линк терминала", + "description": "Подразумевано понашање при клику на линкове у терминалу" }, "customThemes": { - "label": "Saved themes" + "label": "Сачуване теме" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Локални терминал" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Користите сесије терминала уживо", + "description": "Омогућава другим функцијама, као што су дељење и снимање сесија, да досегну ваше терминалне сесије уживо." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Прочитај историју команди", + "description": "Омогућава другим функцијама, као што је AI асистент, да читају вашу историју команди." } }, "hosts": { - "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", - "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", - "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", - "fastScrollModifierAlt": "Alt", + "tabTerminal": "Терминал", + "addHost": "Додај хоста", + "applyGlobalThemeTooltip": "Примени ову тему", + "backgroundImageDesc": "Опциони URL за позадинску слику терминала", + "backgroundImageLabel": "URL адреса позадинске слике", + "backgroundImageOpacityLabel": "Непрозирност позадинске слике", + "backspaceMode": "Режим брзе плоче", + "backspaceModeControlH": "Контрола-Х (БС)", + "backspaceModeLabel": "Режим брзе плоче", + "backspaceModeNormal": "Нормално (DEL)", + "behaviorAndAdvanced": "Понашање и напредно", + "bellStyle": "Стил звона", + "bellStyleBoth": "Обоје", + "bellStyleLabel": "Стил звона", + "bellStyleNone": "Ниједан", + "bellStyleSound": "Звук", + "bellStyleVisual": "Визуелно", + "colorTheme": "Тема боја", + "cursorBlink": "Трептање курсора", + "cursorBlinking": "Курсор трепери", + "cursorBlinkingDesc": "Омогући трепћућу анимацију за курсор терминала", + "cursorStyle": "Стил курсора", + "cursorStyleBar": "Бар", + "cursorStyleBlock": "Блок", + "cursorStyleLabel": "Стил курсора", + "cursorStyleUnderline": "Подвучено", + "customThemeAnsiColors": "ANSI боје", + "customThemeBackground": "Позадина", + "customThemeBlack": "Црна", + "customThemeBlue": "Плава", + "customThemeBrightBlack": "Светло црна", + "customThemeBrightBlue": "Светлоплава", + "customThemeBrightCyan": "Светло цијан", + "customThemeBrightGreen": "Светло зелена", + "customThemeBrightMagenta": "Светло магента", + "customThemeBrightRed": "Светло црвена", + "customThemeBrightWhite": "Светло бела", + "customThemeBrightYellow": "Светло жута", + "customThemeColors": "Прилагођене боје", + "customThemeCursor": "Курсор", + "customThemeCursorAccent": "Акцент курсора", + "customThemeCyan": "Цијан", + "customThemeForeground": "Предњи план", + "customThemeGreen": "Зелено", + "customThemeMagenta": "Магента", + "customThemeRed": "Црвена", + "customThemeResetTooltip": "Ресетуј на подразумеване вредности", + "customThemeSelection": "Избор", + "customThemeWhite": "Бела", + "customThemeYellow": "Жута", + "deleteGlobalThemeTooltip": "Обриши ову тему", + "docsLink": "Прикажи документе", + "enableAutoMosh": "Омогући аутоматско покретање", + "enableAutoMoshDesc": "Преферирај Mosh у односу на SSH ако је доступан", + "enableAutoTmux": "Омогући аутоматски Tmux", + "enableAutoTmuxDesc": "Одржавајте своју шкољку и све што се у њој покреће активним након прекида везе и поновног покретања прегледача покретањем унутар tmux-а (tmux мора бити инсталиран на хосту)", + "fastScrollModifier": "Модификатор брзог скроловања", + "fastScrollModifierAlt": "Алтернативно", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "Модификатор брзог скроловања", + "fastScrollModifierShift": "Померање", + "fastScrollSensitivity": "Осетљивост брзог скроловања", + "fastScrollSensitivityLabel": "Осетљивост брзог скроловања", + "fontFamily": "Породица фонтова", + "fontFamilyCustomHint": "Изаберите фонт из пакета или изаберите „Прилагођено“ и унесите тачно име фонта који је већ инсталиран на вашем систему (нпр. MesloLGS NF, Noto Sans Mono). Termix не може да инсталира фонтове уместо вас, прво га инсталирајте на ваш оперативни систем.", + "fontFamilyCustomOption": "Прилагођено...", + "fontFamilyCustomPlaceholder": "Тачан назив фонта, нпр. MesloLGS NF", + "fontFamilyLabel": "Породица фонтова", + "fontSize": "Величина фонта", + "fontSizeLabel": "Величина фонта", + "hostNotFound": "Хост није пронађен", + "letterSpacing": "Размак између слова", + "letterSpacingPx": "Размак између слова (px)", + "lineHeight": "Висина линије", + "lineHeightLabel": "Висина линије", + "linkClickBehaviorConfirm": "Прикажи искачући прозор за отварање или копирање", + "linkClickBehaviorDesc": "Контролише шта се дешава када кликнете на линк у терминалу. Користите „Подразумевано“ да бисте пратили подешавање на нивоу апликације.", + "linkClickBehaviorDirect": "Отвори директно", + "linkClickBehaviorLabel": "Понашање при клику на линк", + "loadingHost": "Учитавање хоста...", + "localEchoAuto": "Аутоматски", + "localEchoDesc": "Предвиди безбедне притиске тастера за штампање локално на спорим везама. Упити за лозинку и контролни уноси се никада не понављају.", + "localEchoLabel": "Локални одјек", + "localEchoOff": "Искључено", + "localEchoOn": "Увек укључено", + "macOptionIsMetaLabel": "Тастер са опцијама шаље метаподатке", + "macOptionIsMetaShortDesc": "Онемогућите куцање специјалних знакова (као што су @ или |) помоћу тастера Option/Alt на macOS-у уместо слања Meta", + "moshCommand": "MOSH команда", + "moshCommandLabel": "Мош команда", + "noSavedThemes": "Још нема сачуваних тема", + "none": "Ниједан", + "passwordPromptAutoFillDesc": "Понуди унос сачуване лозинке када терминал то затражи. Искључи ову опцију да се лозинка никада не би аутоматски попуњавала на овом хосту.", + "passwordPromptAutoFillLabel": "Аутоматско попуњавање лозинке за понуду", + "autoReconnectLabel": "Аутоматско поновно повезивање", + "autoReconnectDesc": "Самостално се поново повезује када SSH веза прекине, као након прекида мреже или спавања. Задржава померање уназад.", + "rightClickSelectsWord": "Десни клик бира реч", + "rightClickSelectsWordLabel": "Десни клик бира реч", + "rightClickSelectsWordShortDesc": "Изаберите реч испод курсора кликом десним тастером миша", + "saveAsGlobalTheme": "Сачувај као глобалну тему", + "saveGlobalThemeError": "Чување теме није успело", + "saveGlobalThemeNamePrompt": "Унесите име за ову тему", + "saveGlobalThemeSuccess": "Тема је сачувана", + "savedThemesLabel": "Сачуване теме", + "scrollbackBufferLabel": "Бафер за померање уназад", + "scrollbackMaxLines": "Максималан број линија сачуваних у историји", + "sudoPasswordAutoFill": "Аутоматско попуњавање лозинке за Судо", + "sudoPasswordAutoFillDesc": "Сачувајте лозинку за sudo како би метрике хоста, упити терминала и други могли аутоматски да покрећу привилеговане команде.", + "sudoPasswordAutoFillLabel": "Аутоматско попуњавање лозинке за Sudo", + "syntaxCategoryIpAddresses": "IP адресе", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "Нивои логова", + "syntaxCategoryLogLevelsDesc": "грешка, упозорење, информације, дебаговање, фатално", + "syntaxCategoryNumbers": "Означени бројеви", + "syntaxCategoryNumbersDesc": "порт 8080, излаз 1, статус 404", + "syntaxCategoryPaths": "Путање датотека", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", - "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryTimestamps": "Временске ознаке", + "syntaxCategoryTimestampsDesc": "[12:34:56], 15.01.2024.", + "syntaxCategoryUrls": "URL-ови", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "Обоји излаз терминала (грешке, путање, IP адресе, временске ознаке)", + "syntaxHighlightingLabel": "Истицање синтаксе", + "terminalAppearance": "Изглед терминала", + "theme": "Тема", + "themePreview": "Преглед теме", + "useSSHTitleDesc": "Ажурирајте наслов картице из наслова прозора љуске уместо имена хоста", + "useSSHTitleLabel": "Користи SSH наслов прозора", + "enableTunnel": "Омогући тунел", + "enableFileManager": "Омогући менаџер датотека", + "enableDocker": "Омогући Докер", + "startupSnippet": "Исечак за покретање", + "quickActions": "Брзе акције", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Успех" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} прескочено (није пронађена IP адреса)", + "proxmoxStatsUrlCopied": "URL Proxmox статистике је копиран у међуспремник", + "rdpUrlCopied": "RDP URL је копиран", + "vncUrlCopied": "VNC URL је копиран", + "filterAuthStepca": "Корак CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "noCredential": "Без акредитива (директни акредитиви испод)", + "authTypeDirect": "Директно", + "authTypeCredential": "Акредитив", + "authTypeNone": "Ниједан", + "recordingPath": "Путања снимања", + "recordingName": "Назив снимка", + "saveHostFirst": "Прво сачувајте домаћина.", + "sharingOptionsAfterSave": "Опције дељења су доступне након што је хост сачуван.", + "permissionLevel": "Ниво дозволе", + "typeHeader": "Тип", + "targetHeader": "Циљ", + "permissionHeader": "Дозвола", + "cancelBtn": "Откажи", + "savingBtn": "Чување...", + "updateHostBtn": "Ажурирај хост", + "addHostBtn": "Додај хоста" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Трезор" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", - "terminal": "Terminal", - "macros": "Macros" + "history": "Историја", + "localTerminal": "Локални терминал", + "sshTools": "SSH алати", + "terminal": "Терминал", + "macros": "Макрои" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "Куцајте овде да бисте емитовали притиске тастера...", + "copyOnSelect": "Аутоматски копирај изабрани текст", + "enableRightClickCopyPaste": "Омогући копирање/лепљење десним кликом", + "fillPassword": "Попуните лозинку", + "fillPasswordMissing": "Нема сачуване лозинке за {{count}} изабраних терминала", + "fillPasswordSuccess": "Лозинка је унета у {{count}} терминал(а)", + "keyRecordingTitle": "Снимање кључа", + "noTerminalTabsOpen": "Нема отворених картица терминала", + "recordToTerminals": "Снимање на терминале", + "selectAll": "Сви", + "selectNone": "Ниједан", + "selectTerminalsAbove": "Изаберите терминале изнад", + "settingsTitle": "Подешавања", + "startRecording": "Почни снимање", + "stopRecording": "Заустави снимање" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "Копирај избор", + "paste": "Залепи", + "sendControlCode": "Пошаљи сигнал Ctrl+слово", + "sendText": "Пошаљи текст", + "controlCodeLabel": "Писмо", + "textLabel": "Текст за слање", + "appendEnterLabel": "Притисните Ентер након слања", + "clipboardPermissionNote": "Може затражити дозволу за међуспремник при првој употреби у неким прегледачима.", + "textRequired": "Унесите текст за слање", + "controlCodeRequired": "Унесите једно слово за контролни код", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Копирај селекцију (Ctrl+C, само када је текст изабран)", + "copyCtrlShiftC": "Копирај селекцију (Ctrl+Shift+C)", + "copyCmdC": "Копирај селекцију (Cmd+C)", + "pasteCtrlShiftV": "Налепи из међуспремника (Ctrl+Shift+V)", + "ctrlW": "Пошаљи Ctrl+W у љуску (блокирано затварање картице прегледача)", + "ctrlT": "Пошаљи Ctrl+T у shell (блокирано отварање картице прегледача)", + "ctrlN": "Пошаљи Ctrl+N у shell (блокирано отварање прозора прегледача)", + "ctrlQ": "Пошаљи Ctrl+Q у shell (блокирано затварање прегледача)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "title": "Макрои", + "description": "Покрените сачувану серију команди у терминалу и реагујте на оно што сервер пошаље назад.", + "target": "Циљ", + "noTerminal": "Ниједан терминал није отворен", + "empty": "Још нема макроа", + "emptyHint": "Направите макро за аутоматизацију тока рада терминала, као што је пријављивање, поновно покретање сервиса или одговарање на упите.", + "create": "Нови макро", + "back": "Назад на макрое", + "name": "Име", + "namePlaceholder": "Поново покрените веб сервер", + "nameRequired": "Дајте макроу име пре чувања", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Шта овај макро ради (опционо)", + "unsaved": "Несачуване промене", + "save": "Сачувај", + "saved": "Макро је сачуван", + "saveFailed": "Није могуће сачувати макро", + "delete": "Обриши", + "deleteTitle": "Да ли желите да обришете овај макро?", + "deleteBody": "„{{name}}“ ће бити трајно обрисано. Ова радња се не може поништити.", + "deleted": "Макро је обрисан", + "cancel": "Откажи", + "run": "Трчи", + "stop": "Заустави", + "running": "Трчи се...", + "completed": "Макро је завршен", + "failed": "Макро није успео", + "loadFailed": "Није могуће учитати макрое", + "needTerminal": "Прво отворите и повежите терминал", + "noSteps": "Овај макро још нема кораке. Додајте један испод.", + "addStep": "Додај корак", + "stepNumber": "Корак {{number}}", + "removeStep": "Уклони корак", + "confirmRunTitle": "Покрени овај макро?", + "confirmRunBody": "„{{name}}“ ће послати команде на {{host}}.", + "confirmRunAction": "Покрени макро", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Пошаљи команду", + "help": "Уноси текст у терминал, исто као да сте га откуцали." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Сачекајте излаз", + "help": "Паузира док сервер не одштампа текст који наведете, као што је захтев за лозинку." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Пауза", + "help": "Чека одређено време пре следећег корака." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Ако излаз садржи", + "help": "Проверава све што је сервер до сада одштампао, а затим покреће једну од две гране." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Понови", + "help": "Покреће кораке унутар њега одређени број пута." } }, "send": { - "text": "Command or text", - "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "text": "Команда или текст", + "textPlaceholder": "системцтл рестартовање нгинкса", + "pressEnter": "Притисните Ентер након слања", + "pressEnterHelp": "Искључите ово да бисте куцали текст без његовог слања." }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "Сачекајте док излаз не садржи", + "patternPlaceholder": "лозинка:", + "timeout": "Одустани после", + "onTimeout": "Ако се никада не појави", + "stop": "Зауставите макро", + "continue": "Настави у сваком случају" }, "delay": { - "duration": "Wait for" + "duration": "Сачекајте" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Ако излаз садржи", + "patternPlaceholder": "Активно: активно (покреће се)", + "then": "Онда уради ово", + "else": "У супротном, урадите ово", + "emptyBranch": "Без степеница" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Број пута", + "times": "пута" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Упари се са регуларним изразом", + "useRegexHelp": "Оставите ово искључено да би текст тачно одговарао написаном тексту.", + "invalidRegex": "Није важећи регуларни израз, биће упарен као обичан текст" }, - "seconds": "seconds", - "secondsShort": "{{count}}s" + "seconds": "секунде", + "secondsShort": "{{count}}с" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потребан је удаљени сервер. Повежите се са удаљеним сервером у Подешавањима да бисте користили овај тип везе." } } diff --git a/plugins/ssh-terminal/locales/translated/sv_SE.json b/plugins/ssh-terminal/locales/translated/sv_SE.json index 33f4814a6..d6ab93dbe 100644 --- a/plugins/ssh-terminal/locales/translated/sv_SE.json +++ b/plugins/ssh-terminal/locales/translated/sv_SE.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "Tillägga", + "arrowDown": "Pil nedåt", + "arrowLeft": "Pil vänster", + "arrowRight": "Pil höger", + "arrowUp": "Pil upp", "backTab": "⇥", "ctrl": "Ctrl", "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "done": "Gjort", + "editQuickKeys": "Redigera snabbknappar", + "end": "Avsluta", "esc": "Esc", - "home": "Home", + "home": "Hem", "pageDown": "PgDn", "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "paste": "Klistra", + "quickKeyPlaceholder": "t.ex. sudo ", + "quickKeysDesc": "Tryck på × för att ta bort. Stöder upp till 8 tecken.", + "quickKeysTitle": "Snabbtangenter", + "removeQuickKey": "Ta bort", + "resetDefaults": "Återställ till standardinställningarna", + "shift": "Flytta", + "tab": "Flik" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "autoTmuxEnableFailed": "Misslyckades med att aktivera Auto-Tmux", + "autoTmuxEnabled": "Auto-Tmux aktiverat för {{host}}. Det gäller från nästa anslutning.", + "clipboardHttpWarning": "Kunde inte läsa urklippet. Vissa webbläsare begränsar åtkomst till urklipp utanför HTTPS - prova Ctrl+V istället, eller servera Termix över HTTPS.", + "closeTab": "Nära", + "connecting": "Ansluter...", + "connectionLost": "Anslutningen förlorades", + "connectionRejected": "Anslutningen avvisades av servern. Kontrollera din autentisering och nätverkskonfiguration.", + "connectionTimeout": "Anslutningstimeout", + "enableAutoTmuxAction": "Aktivera Auto-Tmux", + "hostKeyRejected": "Verifiering av SSH-värdnyckel avvisad. Anslutningen avbröts.", + "linkDialogCopy": "Kopiera", + "linkDialogOpen": "Öppna", + "linkDialogTitle": "Öppna länk", + "maxReconnectAttemptsReached": "Maximalt antal återanslutningsförsök uppnådda", + "noHostSelected": "Ingen värd vald", + "passwordPromptFillTitle": "Fyll i det sparade lösenordet i den här frågan?", + "reconnect": "Återanslut", + "reconnected": "Återansluten lyckades", + "reconnecting": "Återansluter... ({{attempt}}/{{max}})", + "autoReconnecting": "Anslutningen bruten, återansluter...", + "searchCaseSensitive": "Matchfodral", + "searchClose": "Stäng (Escape)", + "searchNext": "Nästa match (Enter)", + "searchNoResults": "Inga resultat", + "searchPlaceholder": "Hitta", + "searchPrevious": "Föregående matchning (Shift+Enter)", + "searchRegex": "Använd reguljärt uttryck", + "searchResultCount": "{{index}} av {{count}}", + "searchWholeWord": "Matcha hela ordet", + "sessionExpiredNotice": "Din föregående session på {{host}} gick ut efter {{minutes}} minuters frånkoppling; skalet och allt som körs i det är borta. Aktivera Auto-Tmux på den här värden för att hålla sessionerna aktiva.", + "sessionExpiredNoticeNoMinutes": "Din föregående session på {{host}} upphörde medan den var frånkopplad; skalet och allt som körs i det är borta. Aktivera Auto-Tmux på den här värden för att hålla sessionerna aktiva.", + "sessionTakenOver": "Sessionen öppnades i en annan flik. Återansluter...", + "tmuxAttached": "Anslutna klienter", + "tmuxAttachedCount": "{{count}} bifogad", + "tmuxCopyHint": "Justera markeringen och tryck på Enter för att kopiera till urklipp", + "tmuxCreateNew": "Starta ny session", + "tmuxDetached": "Losskopplad från tmux-sessionen", + "tmuxLastActivity": "Senaste aktivitet", + "tmuxSessionAttached": "tmux-session bifogad: {{name}}", + "tmuxSessionCreated": "tmux-session skapad: {{name}}", + "tmuxSessionPickerDesc": "Befintliga tmux-sessioner hittades på den här värden. Välj en för att återansluta eller skapa en ny session.", + "tmuxSessionPickerTitle": "tmux-sessioner", + "tmuxTimeDays": "för {{count}}dagar sedan", + "tmuxTimeHours": "för {{count}}timmar sedan", + "tmuxTimeJustNow": "just nu", + "tmuxTimeMinutes": "för {{count}}minuter sedan", + "tmuxUnavailable": "tmux är inte installerat på fjärrdatorn, utan återgår till standardskal", + "tmuxWindowCount": "{{count}} fönster", + "tmuxWindows": "Fönster", + "unknownError": "Okänt fel inträffade", + "websocketAbnormalClose": "Anslutningen stängdes oväntat. Detta kan bero på ett problem med omvänd proxy eller SSL-konfigurationen. Kontrollera serverloggarna.", + "websocketError": "WebSocket-anslutningsfel", + "clipboardReadFailed": "Kunde inte läsa från urklipp. Kontrollera att behörigheter för urklipp är beviljade.", + "clipboardWriteFailed": "Kunde inte kopiera till urklipp. Kontrollera att sidan serveras via HTTPS eller localhost.", + "connected": "Ansluten", + "totpCodeLabel": "Verifieringskod", + "duplicateTab": "Duplicera fliken", + "imageChooseFile": "Välj en bildfil", + "imageUploaded": "Bild uppladdad: {{path}}", + "imageClipboardUnavailable": "Den här webbläsaren kan inte läsa bilder från urklipp", + "imageClipboardEmpty": "Ingen bild hittades i urklipp", + "localShell": "Lokalt terminalskal", + "autocompleteHintComplete": "Tab eller Enter för att slutföra", + "autocompleteHintNavigate": "↑↓ för att navigera", + "autocompleteHintClose": "Esc för att stänga" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Lossa tmux", + "detachTmuxDescription": "Koppla bort tmux-session", + "dismissError": "Stäng bildfel", + "hideToolbar": "Dölj verktygsfältet", + "image": "Bildåtgärder (endast bilder)", + "imageActionFailed": "Bildåtgärden misslyckades", + "layout": "Verktygsfältets visningsläge", + "layoutExpanded": "Utökad med mätvärden", + "layoutIcon": "Endast ikon", + "layoutLabeled": "Ikoner och etiketter", + "moveToolbar": "Flytta verktygsfältet", + "moveToolbarHint": "Dra för att flytta verktygsfältet", + "paste": "Klistra in bild", + "pasteImage": "Klistra in bild från urklipp (endast bilder)", + "retry": "Försöka igen", + "showToolbar": "Expandera verktygsfältet", + "upload": "Ladda upp bild", + "uploadImage": "Ladda upp en bild till värden", + "uploadingImage": "Laddar upp..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Ingen terminal vald", + "noTerminalSelectedHint": "Öppna en SSH-terminalflik för att visa dess kommandohistorik", + "searchPlaceholder": "Sökhistorik...", + "clearAll": "Rensa alla", + "noHistoryEntries": "Inga historikposter", + "trackingDisabled": "Historikspårning är inaktiverad", + "trackingDisabledHint": "Aktivera kommandohistorik på den här värdens SSH-terminalflik.", + "commandCount_one": "{{count}} kommando", + "commandCount_other": "{{count}} kommandon" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Aktivera pekinmatning", + "enabledDesc": "Tillåt scrollning med ett finger i terminaler", + "momentumEnabled": "Aktivera momentum", + "momentumEnabledDesc": "Fortsätt skrolla kort efter en svepning", + "advanced": "Avancerad", + "resetDefaults": "Återställ till standardinställningarna", + "dragThreshold": "Draggräns", + "maxWheelDelta": "Maximal hjuldelta", + "momentumSampleWindow": "Momentum-exempelfönster", + "releaseGracePeriod": "Frigivningsfrist", + "minimumVelocity": "Minsta hastighet", + "maximumVelocity": "Maximal hastighet", + "maximumDuration": "Maximal varaktighet", + "maximumTravel": "Maximal resa", + "decayTime": "Avklingningstid", + "pixelsPerTick": "Pixlar per tick", + "maximumFrameInterval": "Maximalt bildintervall", + "maximumTicksPerFrame": "Maximalt antal ticks per bildruta" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "Terminalsessionsinstans-ID", + "instanceIdDesc": "Instans-ID för en av dina anslutna terminalflikar, används för att testa synligheten.", + "selectedModeUnavailable": "Inte tillgänglig", + "test": "Testa", + "testing": "Testning...", + "testFailed": "Misslyckades med att testa bildlagring", + "testConnected": "Terminalsessionen är ansluten.", + "testNotConnected": "Ingen ansluten terminalsession med detta instans-ID.", + "testSelectedMode": "En uppladdning skulle använda: {{mode}}", + "testLocalVisible": "Den lokala katalogen är synlig från den anslutna värden.", + "testLocalNotVisible": "Den lokala katalogen är INTE synlig från den anslutna värden." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Pekinmatning", + "images": "Bildlagring", + "sessions": "Sessioner", + "newHosts": "Nya värdar" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Terminalsessionens persistens", + "description": "Hur länge en frånkopplad terminal hålls aktiv på servern innan den stängs. Min 1, max 1440 minuter. För sessioner som måste överleva detta, aktivera Auto-Tmux på värden." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Kommandohistorik", + "description": "Tillåt inspelning av kommandohistorik. När det är inaktiverat sparas inte historiken oavsett inställningarna per värd." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Kommandohistorik för nya värdar", + "description": "Om nya värdar börjar med kommandohistorik aktiverad." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "Lagringsläge", + "description": "Där inklistrade och uppladdade terminalbilder skrivs. Automatiska val via anslutning, lokal och fjärransluten (SFTP) är åtgärdade.", + "auto": "Bil", + "local": "Lokal", + "remoteSftp": "Fjärrstyrning (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Lokal katalog", + "description": "Absolut sökväg på Termix-backend där lokalt läge skriver bilder. Visas aldrig efter sparning. Tom använder TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Värdsökväg", + "description": "Värdsidans vy av den lokala katalogen som terminalagenter tar emot." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Hur länge en uppladdad bild sparas, i millisekunder. Tom använder TERMIX_IMAGE_TTL_MS eller en timme." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Max antal bilder", + "description": "De flesta bilder sparas samtidigt. Tomma alternativ använder TERMIX_MAX_IMAGE_COUNT eller 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Max antal lagringsbyte", + "description": "Flest byte av bilder lagras samtidigt. Tomma lagringsplatser använder TERMIX_MAX_IMAGE_STORAGE_BYTES eller 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Behåll sessioner efter frånkoppling", + "description": "Håll en frånkopplad terminal aktiv på servern under ovanstående tid, så att öppnandet av fliken fortsätter där den slutade." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Kör nya värdars terminaler inuti tmux så att sessioner överlever frånkopplingar (kräver tmux på värden)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Tema för nya värdar", + "description": "Terminaltemat som en ny värd börjar med." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Typsnitt för nya värdar", + "description": "Terminaltypsnittet som en ny värd börjar med." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Teckenstorlek för nya värdar", + "description": "Terminalens teckenstorlek som en ny värd börjar med, i pixlar." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Markörstil för nya värdar" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Blinkande markör för nya värdar" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Aktivera terminalverktygsfältet", + "description": "Visa en snabbåtkomstverktygsfält dockad till den aktiva terminalen för den här värdens verktyg och livestatistik" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Verktygsfältets position", + "description": "Där verktygsfältet sitter i terminalen. Du kan fortfarande dra det därifrån.", + "bottom": "Nederst i mitten", + "bottomLeft": "Nederst till vänster", + "bottomRight": "Nederst till höger", + "top": "Övre mitten", + "topLeft": "Övre vänster", + "topRight": "Övre högra" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Verktygsfältets startläge", + "description": "Om verktygsfältet öppnas expanderat eller minimerat när terminalen ansluter", + "expanded": "Utökad", + "collapsed": "Minimerad" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Verktygsfältets visningsläge", + "description": "Hur knapparna i verktygsfältet visas. Senast använda sparar det du valde i verktygsfältet.", + "remember": "Senast använd", + "icon": "Endast ikon", + "labeled": "Ikoner och etiketter", + "expanded": "Utökad med statistik" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Visa livestatistik", + "description": "Visa statistik för livevärdar ovanför verktygsfältsknapparna i utökat läge" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Tona vid inaktivitet", + "description": "Tona ut verktygsfältet tills du håller muspekaren över det" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Kommandohistorik", + "description": "Record-kommandon körs i den här terminalen för historik och autofullständig ifyllning" }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "Aktivera terminalen", + "description": "Erbjud en SSH-terminal för den här värden." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Använd användarstandarder" }, "theme": { - "label": "Theme" + "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Blinkande markör" }, "cursorStyle": { - "label": "Cursor style" + "label": "Markörstil" }, "fontSize": { - "label": "Font size" + "label": "Fontstorlek" }, "fontFamily": { "label": "Font" }, "scrollback": { - "label": "Scrollback" + "label": "Skrolla tillbaka" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Bokstavsavstånd" }, "lineHeight": { - "label": "Line height" + "label": "Linjehöjd" }, "bellStyle": { - "label": "Bell" + "label": "Klocka" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Minsta kontrastförhållande" }, "backgroundImage": { - "label": "Background image" + "label": "Bakgrundsbild" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Bakgrundsbildens opacitet" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Anpassade temafärger" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Högerklicka markerar ord" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Alternativet är Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Snabb bläddringsknapp" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Snabb scrollhastighet" }, "backspaceMode": { - "label": "Backspace" + "label": "Backsteg" }, "autoMosh": { - "label": "Auto mosh" + "label": "Automosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh-kommandot" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Använd SSH-titeln" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Syntaxmarkering" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Syntaxmarkeringskategorier" }, "linkClickBehavior": { - "label": "Link click" + "label": "Länkklick" }, "localEcho": { - "label": "Local echo" + "label": "Lokalt eko" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Erbjud dig att fylla i lösenordsförfrågningar" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Fyll i sudo-prompter" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Återanslut automatiskt" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Kommando Autokomplettering", + "description": "Visa autokomplettering medan du skriver om du trycker på tabbtangenten" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Lokalt eko", + "description": "Minska upplevd inmatningsfördröjning med hjälp av säker lokal tangenttryckningsprediktion" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Klicka på terminallänken", + "description": "Standardbeteende vid klick på länkar i terminalen" }, "customThemes": { - "label": "Saved themes" + "label": "Sparade teman" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Lokal terminal" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Använd live-terminalsessioner", + "description": "Låter andra funktioner, som sessionsdelning och inspelning, nå dina live-terminalsessioner." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Läs kommandohistorik", + "description": "Låter andra funktioner, som AI-assistenten, läsa din kommandohistorik." } }, "hosts": { "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", + "addHost": "Lägg till värd", + "applyGlobalThemeTooltip": "Använd detta tema", + "backgroundImageDesc": "Valfri URL för en bakgrundsbild i terminalen", + "backgroundImageLabel": "Bakgrundsbildens URL", + "backgroundImageOpacityLabel": "Bakgrundsbildens opacitet", + "backspaceMode": "Backstegsläge", + "backspaceModeControlH": "Kontroll-H (BS)", + "backspaceModeLabel": "Backstegsläge", "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", + "behaviorAndAdvanced": "Beteende och avancerat", + "bellStyle": "Klockstil", + "bellStyleBoth": "Både", + "bellStyleLabel": "Klockstil", + "bellStyleNone": "Ingen", + "bellStyleSound": "Ljud", + "bellStyleVisual": "Visuell", + "colorTheme": "Färgtema", + "cursorBlink": "Markörblinkning", + "cursorBlinking": "Markören blinkar", + "cursorBlinkingDesc": "Aktivera blinkande animering för terminalmarkören", + "cursorStyle": "Markörstil", "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", + "cursorStyleBlock": "Blockera", + "cursorStyleLabel": "Markörstil", + "cursorStyleUnderline": "Betona", + "customThemeAnsiColors": "ANSI-färger", + "customThemeBackground": "Bakgrund", + "customThemeBlack": "Svart", + "customThemeBlue": "Blå", + "customThemeBrightBlack": "Ljussvart", + "customThemeBrightBlue": "Klarblå", + "customThemeBrightCyan": "Ljus cyan", + "customThemeBrightGreen": "Ljusgrön", + "customThemeBrightMagenta": "Ljus magenta", + "customThemeBrightRed": "Klarröd", + "customThemeBrightWhite": "Klarvit", + "customThemeBrightYellow": "Klargul", + "customThemeColors": "Anpassade färger", + "customThemeCursor": "Markör", + "customThemeCursorAccent": "Marköraccent", "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", + "customThemeForeground": "Förgrund", + "customThemeGreen": "Grön", "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", + "customThemeRed": "Röd", + "customThemeResetTooltip": "Återställ till standardinställningarna", + "customThemeSelection": "Urval", + "customThemeWhite": "Vit", + "customThemeYellow": "Gul", + "deleteGlobalThemeTooltip": "Ta bort det här temat", + "docsLink": "Visa dokument", + "enableAutoMosh": "Aktivera Auto-Mosh", + "enableAutoMoshDesc": "Föredra Mosh framför SSH om tillgängligt", + "enableAutoTmux": "Aktivera Auto-Tmux", + "enableAutoTmuxDesc": "Håll ditt skal och allt som körs i det vid liv även efter frånkopplingar och omstart av webbläsare genom att köra det inuti tmux (tmux måste vara installerat på värden)", + "fastScrollModifier": "Snabbrullningsmodifierare", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "Snabbrullningsmodifierare", + "fastScrollModifierShift": "Flytta", + "fastScrollSensitivity": "Snabb rullningskänslighet", + "fastScrollSensitivityLabel": "Snabb rullningskänslighet", + "fontFamily": "Typsnittsfamilj", + "fontFamilyCustomHint": "Välj ett paketerat teckensnitt, eller välj Anpassad och skriv det exakta namnet på ett teckensnitt som redan är installerat på ditt system (t.ex. MesloLGS NF, Noto Sans Mono). Termix kan inte installera teckensnitt åt dig, installera det på ditt operativsystem först.", + "fontFamilyCustomOption": "Beställnings...", + "fontFamilyCustomPlaceholder": "Exakt typsnittsnamn, t.ex. MesloLGS NF", + "fontFamilyLabel": "Typsnittsfamilj", + "fontSize": "Fontstorlek", + "fontSizeLabel": "Fontstorlek", + "hostNotFound": "Värden hittades inte", + "letterSpacing": "Bokstavsavstånd", + "letterSpacingPx": "Bokstavsavstånd (px)", + "lineHeight": "Linjehöjd", + "lineHeightLabel": "Linjehöjd", + "linkClickBehaviorConfirm": "Visa popup för att öppna eller kopiera", + "linkClickBehaviorDesc": "Styr vad som händer när du klickar på en länk i terminalen. Använd \"Standard\" för att följa inställningen på appnivå.", + "linkClickBehaviorDirect": "Öppna direkt", + "linkClickBehaviorLabel": "Länkklickbeteende", + "loadingHost": "Laddar värd...", + "localEchoAuto": "Automatisk", + "localEchoDesc": "Förutsäg säkra utskrivbara tangenttryckningar lokalt på långsamma anslutningar. Lösenordsförfrågningar och kontrollinmatning upprepas aldrig.", + "localEchoLabel": "Lokalt eko", + "localEchoOff": "Av", + "localEchoOn": "Alltid på", + "macOptionIsMetaLabel": "Alternativtangenten skickar meta", + "macOptionIsMetaShortDesc": "Inaktivera möjligheten att skriva specialtecken (som @ eller |) med Alternativ/Alt-tangenten på macOS istället för att skicka Meta", + "moshCommand": "MOSH-kommandot", + "moshCommandLabel": "Mosh-kommandot", + "noSavedThemes": "Inga sparade teman ännu", + "none": "Ingen", + "passwordPromptAutoFillDesc": "Erbjud dig att fylla i det sparade lösenordet när terminalen ber om det. Stäng av för att aldrig automatiskt fylla i något lösenord på den här värden.", + "passwordPromptAutoFillLabel": "Erbjudandelösenord automatiskt ifyllt", + "autoReconnectLabel": "Automatisk återanslutning", + "autoReconnectDesc": "Återansluter av sig själv när SSH-anslutningen bryts, till exempel efter ett nätverksavbrott eller viloläge. Behåller bakåtskrollningen.", + "rightClickSelectsWord": "Högerklicka markerar ord", + "rightClickSelectsWordLabel": "Högerklicka Markerar ord", + "rightClickSelectsWordShortDesc": "Markera ordet under markören vid högerklick", + "saveAsGlobalTheme": "Spara som globalt tema", + "saveGlobalThemeError": "Misslyckades med att spara temat", + "saveGlobalThemeNamePrompt": "Ange ett namn för detta tema", + "saveGlobalThemeSuccess": "Temat sparat", + "savedThemesLabel": "Sparade teman", + "scrollbackBufferLabel": "Scrollback-buffert", + "scrollbackMaxLines": "Maximalt antal rader som sparas i historiken", + "sudoPasswordAutoFill": "Sudo-lösenordsautomatik", + "sudoPasswordAutoFillDesc": "Lagra ett sudo-lösenord så att värdmätvärden, terminalprompter och annat kan köra privilegierade kommandon automatiskt.", + "sudoPasswordAutoFillLabel": "Sudo-lösenordsautomatik", + "syntaxCategoryIpAddresses": "IP-adresser", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", - "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", + "syntaxCategoryLogLevels": "Loggnivåer", + "syntaxCategoryLogLevelsDesc": "fel, varna, information, felsök, dödlig", + "syntaxCategoryNumbers": "Märkta nummer", + "syntaxCategoryNumbersDesc": "port 8080, utgång 1, status 404", + "syntaxCategoryPaths": "Filsökvägar", + "syntaxCategoryPathsDesc": "/usr/share/doc, ~/fil.txt", + "syntaxCategoryTimestamps": "Tidsstämplar", "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryUrls": "URL:er", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "Färglägg terminalutdata (fel, sökvägar, IP-adresser, tidsstämplar)", + "syntaxHighlightingLabel": "Syntaxmarkering", + "terminalAppearance": "Terminalens utseende", + "theme": "Tema", + "themePreview": "Förhandsvisning av tema", + "useSSHTitleDesc": "Uppdatera flikrubriken från skalets fönsterrubriken istället för värdnamnet", + "useSSHTitleLabel": "Använd SSH-fönstertitel", + "enableTunnel": "Aktivera tunnel", + "enableFileManager": "Aktivera filhanteraren", + "enableDocker": "Aktivera Docker", + "startupSnippet": "Startkodavsnitt", + "quickActions": "Snabbåtgärder", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Framgång" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} hoppades över (ingen IP-adress hittades)", + "proxmoxStatsUrlCopied": "Proxmox Stats URL kopierad till urklipp", + "rdpUrlCopied": "RDP-URL kopierad", + "vncUrlCopied": "VNC-URL kopierad", + "filterAuthStepca": "Steg CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "noCredential": "Ingen referens (direkta referenser nedan)", + "authTypeDirect": "Direkt", + "authTypeCredential": "Referenser", + "authTypeNone": "Ingen", + "recordingPath": "Inspelningsväg", + "recordingName": "Inspelningsnamn", + "saveHostFirst": "Spara värden först.", + "sharingOptionsAfterSave": "Delningsalternativ är tillgängliga efter att värden har sparats.", + "permissionLevel": "Behörighetsnivå", + "typeHeader": "Typ", + "targetHeader": "Mål", + "permissionHeader": "Tillstånd", + "cancelBtn": "Avboka", + "savingBtn": "Sparande...", + "updateHostBtn": "Uppdatera värd", + "addHostBtn": "Lägg till värd" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Valv" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", + "history": "Historia", + "localTerminal": "Lokal terminal", + "sshTools": "SSH-verktyg", "terminal": "Terminal", - "macros": "Macros" + "macros": "Makron" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "Skriv här för att sända tangenttryckningar...", + "copyOnSelect": "Kopiera markerad text automatiskt", + "enableRightClickCopyPaste": "Aktivera högerklickskopiera/klistra in", + "fillPassword": "Fyll i lösenordet", + "fillPasswordMissing": "Inget sparat lösenord för {{count}} vald(a) terminal(er)", + "fillPasswordSuccess": "Ifyllt lösenord i {{count}} terminal(er)", + "keyRecordingTitle": "Nyckelinspelning", + "noTerminalTabsOpen": "Inga terminalflikar öppna", + "recordToTerminals": "Spela in till terminaler", + "selectAll": "Alla", + "selectNone": "Ingen", + "selectTerminalsAbove": "Välj terminaler ovan", + "settingsTitle": "Inställningar", + "startRecording": "Starta inspelning", + "stopRecording": "Stoppa inspelningen" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "Kopiera val", + "paste": "Klistra", + "sendControlCode": "Skicka Ctrl+bokstavssignal", + "sendText": "Skicka sms", + "controlCodeLabel": "Brev", + "textLabel": "SMS att skicka", + "appendEnterLabel": "Tryck Enter efter att du skickat", + "clipboardPermissionNote": "Kan be om behörighet för urklipp vid första användningen i vissa webbläsare.", + "textRequired": "Ange texten som ska skickas", + "controlCodeRequired": "Ange en enda bokstav för kontrollkoden", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Kopiera markering (Ctrl+C, endast när text är markerad)", + "copyCtrlShiftC": "Kopiera markering (Ctrl+Skift+C)", + "copyCmdC": "Kopiera markering (Cmd+C)", + "pasteCtrlShiftV": "Klistra in från urklipp (Ctrl+Shift+V)", + "ctrlW": "Skicka Ctrl+W till shell (blockeras från att stänga webbläsarfliken)", + "ctrlT": "Skicka Ctrl+T till shell (blockerad från att öppna webbläsarfliken)", + "ctrlN": "Skicka Ctrl+N till shell (blockeras från att öppna webbläsarfönster)", + "ctrlQ": "Skicka Ctrl+Q till shell (blockeras från att avsluta webbläsaren)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "title": "Makron", + "description": "Kör en sparad serie kommandon i en terminal och reagera på vad servern skickar tillbaka.", + "target": "Mål", + "noTerminal": "Ingen terminal öppen", + "empty": "Inga makron ännu", + "emptyHint": "Skapa ett makro för att automatisera ett terminalflöde, som att logga in, starta om en tjänst eller svara på frågor.", + "create": "Nytt makro", + "back": "Tillbaka till makron", + "name": "Namn", + "namePlaceholder": "Starta om webbservern", + "nameRequired": "Ge makrot ett namn innan du sparar", + "descriptionLabel": "Beskrivning", + "descriptionPlaceholder": "Vad detta makro gör (valfritt)", + "unsaved": "Osparade ändringar", + "save": "Spara", + "saved": "Makrot sparat", + "saveFailed": "Kunde inte spara makrot", + "delete": "Radera", + "deleteTitle": "Ta bort det här makrot?", + "deleteBody": "\"{{name}}\" kommer att raderas permanent. Detta kan inte ångras.", + "deleted": "Makro borttaget", + "cancel": "Avboka", + "run": "Sikt", + "stop": "Stopp", + "running": "Spring...", + "completed": "Makro klart", + "failed": "Makrot misslyckades", + "loadFailed": "Kunde inte läsa in makron", + "needTerminal": "Öppna och anslut en terminal först", + "noSteps": "Det här makrot har inga steg ännu. Lägg till ett nedan.", + "addStep": "Lägg till steg", + "stepNumber": "Steg {{number}}", + "removeStep": "Ta bort steg", + "confirmRunTitle": "Köra det här makrot?", + "confirmRunBody": "\"{{name}}\" skickar kommandon till {{host}}.", + "confirmRunAction": "Kör makro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Skicka kommando", + "help": "Skriver text i terminalen, på samma sätt som om du hade skrivit den." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Vänta på utdata", + "help": "Pausar tills servern skriver ut texten du anger, som en lösenordsfråga." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Paus", + "help": "Väntar en fastställd tid innan nästa steg." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Om utdata innehåller", + "help": "Kontrollerar allt som servern har skrivit ut hittills och kör sedan en av två grenar." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Upprepa", + "help": "Kör stegen inuti ett visst antal gånger." } }, "send": { - "text": "Command or text", - "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "text": "Kommando eller text", + "textPlaceholder": "systemctl starta om nginx", + "pressEnter": "Tryck Enter efter att du skickat", + "pressEnterHelp": "Stäng av detta för att skriva text utan att skicka in den." }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "Vänta tills utdata innehåller", + "patternPlaceholder": "lösenord:", + "timeout": "Ge upp efteråt", + "onTimeout": "Om det aldrig dyker upp", + "stop": "Stoppa makrot", + "continue": "Fortsätt ändå" }, "delay": { - "duration": "Wait for" + "duration": "Vänta på" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Om utdata innehåller", + "patternPlaceholder": "Aktiv: aktiv (löper)", + "then": "Gör sedan detta", + "else": "Annars gör så här", + "emptyBranch": "Inga steg" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Antal gånger", + "times": "gånger" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Matcha med ett reguljärt uttryck", + "useRegexHelp": "Lämna detta av för att texten ska se exakt ut som den är skriven.", + "invalidRegex": "Inte ett giltigt reguljärt uttryck, det kommer att matchas som vanlig text" }, - "seconds": "seconds", + "seconds": "sekunder", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Fjärrserver krävs. Anslut en fjärrserver i Inställningar för att använda den här anslutningstypen." } } diff --git a/plugins/ssh-terminal/locales/translated/th_TH.json b/plugins/ssh-terminal/locales/translated/th_TH.json index 33f4814a6..6cde9e5d9 100644 --- a/plugins/ssh-terminal/locales/translated/th_TH.json +++ b/plugins/ssh-terminal/locales/translated/th_TH.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "เพิ่ม", + "arrowDown": "ลูกศรลง", + "arrowLeft": "ลูกศรซ้าย", + "arrowRight": "ลูกศรขวา", + "arrowUp": "ลูกศรขึ้น", "backTab": "⇥", "ctrl": "Ctrl", - "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", - "esc": "Esc", - "home": "Home", - "pageDown": "PgDn", - "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "delete": "เดล", + "done": "เสร็จแล้ว", + "editQuickKeys": "แก้ไขปุ่มลัด", + "end": "จบ", + "esc": "เอส", + "home": "บ้าน", + "pageDown": "พีจีดีเอ็น", + "pageUp": "พีจีอัพ", + "paste": "แปะ", + "quickKeyPlaceholder": "เช่น sudo ", + "quickKeysDesc": "แตะ × เพื่อลบ รองรับได้สูงสุด 8 ตัวอักษร", + "quickKeysTitle": "ปุ่มลัด", + "removeQuickKey": "ลบ", + "resetDefaults": "รีเซ็ตเป็นการตั้งค่าเริ่มต้น", + "shift": "กะ", + "tab": "แท็บ" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "autoTmuxEnableFailed": "ไม่สามารถเปิดใช้งาน Auto-Tmux ได้", + "autoTmuxEnabled": "เปิดใช้งาน Auto-Tmux สำหรับ {{host}}แล้ว จะมีผลตั้งแต่การเชื่อมต่อครั้งถัดไป", + "clipboardHttpWarning": "ไม่สามารถอ่านข้อมูลในคลิปบอร์ดได้ เบราว์เซอร์บางตัวจำกัดการเข้าถึงคลิปบอร์ดนอก HTTPS - ลองใช้ Ctrl+V แทน หรือใช้งาน Termix ผ่าน HTTPS", + "closeTab": "ปิด", + "connecting": "กำลังเชื่อมต่อ...", + "connectionLost": "การเชื่อมต่อขาดหาย", + "connectionRejected": "เซิร์ฟเวอร์ปฏิเสธการเชื่อมต่อ โปรดตรวจสอบการยืนยันตัวตนและการกำหนดค่าเครือข่ายของคุณ", + "connectionTimeout": "หมดเวลาการเชื่อมต่อ", + "enableAutoTmuxAction": "เปิดใช้งาน Auto-Tmux", + "hostKeyRejected": "การตรวจสอบคีย์โฮสต์ SSH ถูกปฏิเสธ การเชื่อมต่อถูกยกเลิก", + "linkDialogCopy": "สำเนา", + "linkDialogOpen": "เปิด", + "linkDialogTitle": "เปิดลิงก์", + "maxReconnectAttemptsReached": "จำนวนครั้งการเชื่อมต่อใหม่สูงสุดครบแล้ว", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "passwordPromptFillTitle": "กรอกรหัสผ่านที่บันทึกไว้ลงในช่องนี้ใช่หรือไม่?", + "reconnect": "เชื่อมต่อใหม่", + "reconnected": "เชื่อมต่อสำเร็จแล้ว", + "reconnecting": "กำลังเชื่อมต่อใหม่... ({{attempt}}/{{max}})", + "autoReconnecting": "การเชื่อมต่อขาดหาย กำลังเชื่อมต่อใหม่...", + "searchCaseSensitive": "กล่องไม้ขีดไฟ", + "searchClose": "ปิด (หนี)", + "searchNext": "การแข่งขันถัดไป (กดเข้าร่วม)", + "searchNoResults": "ไม่พบผลลัพธ์", + "searchPlaceholder": "หา", + "searchPrevious": "การแข่งขันครั้งก่อนหน้า (Shift+Enter)", + "searchRegex": "ใช้ Regular Expression", + "searchResultCount": "{{index}} ของ {{count}}", + "searchWholeWord": "จับคู่คำทั้งหมด", + "sessionExpiredNotice": "เซสชันก่อนหน้าของคุณบน {{host}} หมดอายุหลังจาก {{minutes}} นาทีถูกตัดการเชื่อมต่อ เชลล์และทุกสิ่งที่กำลังทำงานอยู่ภายในนั้นหายไปแล้ว โปรดเปิดใช้งาน Auto-Tmux บนโฮสต์นี้เพื่อรักษาสถานะเซสชันให้คงอยู่", + "sessionExpiredNoticeNoMinutes": "เซสชันก่อนหน้าของคุณบน {{host}} หมดอายุขณะที่ไม่ได้เชื่อมต่อ เชลล์และทุกอย่างที่กำลังทำงานอยู่ภายในนั้นหายไปแล้ว โปรดเปิดใช้งาน Auto-Tmux บนโฮสต์นี้เพื่อรักษาสถานะเซสชันให้คงอยู่", + "sessionTakenOver": "เซสชั่นนี้เปิดอยู่ในแท็บอื่น กำลังเชื่อมต่อใหม่...", + "tmuxAttached": "ลูกค้าที่แนบมาด้วย", + "tmuxAttachedCount": "{{count}} แนบมาด้วย", + "tmuxCopyHint": "ปรับตำแหน่งที่เลือกแล้วกด Enter เพื่อคัดลอกไปยังคลิปบอร์ด", + "tmuxCreateNew": "เริ่มเซสชั่นใหม่", + "tmuxDetached": "ตัดการเชื่อมต่อจากเซสชัน tmux แล้ว", + "tmuxLastActivity": "กิจกรรมล่าสุด", + "tmuxSessionAttached": "การเชื่อมต่อเซสชัน tmux: {{name}}", + "tmuxSessionCreated": "สร้างเซสชัน tmux แล้ว: {{name}}", + "tmuxSessionPickerDesc": "พบเซสชัน tmux ที่มีอยู่แล้วในโฮสต์นี้ เลือกหนึ่งเซสชันเพื่อเชื่อมต่อใหม่หรือสร้างเซสชันใหม่", + "tmuxSessionPickerTitle": "เซสชัน tmux", + "tmuxTimeDays": "{{count}}วันก่อน", + "tmuxTimeHours": "{{count}}ชั่วโมงที่แล้ว", + "tmuxTimeJustNow": "เมื่อสักครู่นี้เอง", + "tmuxTimeMinutes": "{{count}}นาทีที่แล้ว", + "tmuxUnavailable": "tmux ไม่ได้ติดตั้งอยู่บนโฮสต์ระยะไกล จึงใช้เชลล์มาตรฐานแทน", + "tmuxWindowCount": "{{count}} หน้าต่าง", + "tmuxWindows": "วินโดวส์", + "unknownError": "เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "websocketAbnormalClose": "การเชื่อมต่อถูกตัดโดยไม่คาดคิด อาจเกิดจากปัญหาเกี่ยวกับรีเวิร์สพร็อกซีหรือการกำหนดค่า SSL โปรดตรวจสอบบันทึกของเซิร์ฟเวอร์", + "websocketError": "ข้อผิดพลาดในการเชื่อมต่อ WebSocket", + "clipboardReadFailed": "ไม่สามารถอ่านข้อมูลจากคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์การเข้าถึงคลิปบอร์ดแล้ว", + "clipboardWriteFailed": "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าหน้าเว็บนั้นให้บริการผ่าน HTTPS หรือ localhost", + "connected": "เชื่อมต่อแล้ว", + "totpCodeLabel": "รหัสยืนยัน", + "duplicateTab": "แท็บซ้ำ", + "imageChooseFile": "เลือกไฟล์รูปภาพ", + "imageUploaded": "รูปภาพที่อัปโหลด: {{path}}", + "imageClipboardUnavailable": "เบราว์เซอร์นี้ไม่สามารถอ่านรูปภาพจากคลิปบอร์ดได้", + "imageClipboardEmpty": "ไม่พบรูปภาพในคลิปบอร์ด", + "localShell": "เชลล์เทอร์มินัลท้องถิ่น", + "autocompleteHintComplete": "กด Tab หรือ Enter เพื่อดำเนินการต่อ", + "autocompleteHintNavigate": "↑↓ เพื่อไปยังหน้าถัดไป", + "autocompleteHintClose": "กด Esc เพื่อปิด" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "ถอด tmux ออก", + "detachTmuxDescription": "ยกเลิกการเชื่อมต่อเซสชัน tmux", + "dismissError": "แก้ไขข้อผิดพลาดเกี่ยวกับรูปภาพ", + "hideToolbar": "ซ่อนแถบเครื่องมือ", + "image": "การดำเนินการกับรูปภาพ (เฉพาะรูปภาพ)", + "imageActionFailed": "การดำเนินการรูปภาพล้มเหลว", + "layout": "โหมดแสดงแถบเครื่องมือ", + "layoutExpanded": "ขยายเพิ่มเติมด้วยตัวชี้วัด", + "layoutIcon": "ไอคอนเท่านั้น", + "layoutLabeled": "ไอคอนและป้ายกำกับ", + "moveToolbar": "ย้ายแถบเครื่องมือ", + "moveToolbarHint": "ลากเพื่อจัดตำแหน่งแถบเครื่องมือใหม่", + "paste": "วางรูปภาพ", + "pasteImage": "วางภาพจากคลิปบอร์ด (เฉพาะภาพ)", + "retry": "ลองใหม่อีกครั้ง", + "showToolbar": "ขยายแถบเครื่องมือ", + "upload": "อัปโหลดรูปภาพ", + "uploadImage": "อัปโหลดรูปภาพไปยังโฮสต์", + "uploadingImage": "กำลังอัปโหลด..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "ไม่ได้เลือกเทอร์มินัล", + "noTerminalSelectedHint": "เปิดแท็บเทอร์มินัล SSH เพื่อดูประวัติคำสั่ง", + "searchPlaceholder": "ประวัติการค้นหา...", + "clearAll": "ล้างทั้งหมด", + "noHistoryEntries": "ไม่มีรายการประวัติ", + "trackingDisabled": "ปิดใช้งานการติดตามประวัติแล้ว", + "trackingDisabledHint": "เปิดใช้งานประวัติคำสั่งในแท็บเทอร์มินัล SSH ของโฮสต์นี้", + "commandCount_one": "คำสั่ง {{count}}", + "commandCount_other": "คำสั่ง {{count}}" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "เปิดใช้งานการป้อนข้อมูลแบบสัมผัส", + "enabledDesc": "อนุญาตให้เลื่อนหน้าจอด้วยนิ้วเดียวในเทอร์มินัล", + "momentumEnabled": "เปิดใช้งานโมเมนตัม", + "momentumEnabledDesc": "เลื่อนหน้าจอต่ออีกสักครู่หลังจากปัดนิ้ว", + "advanced": "ขั้นสูง", + "resetDefaults": "รีเซ็ตเป็นการตั้งค่าเริ่มต้น", + "dragThreshold": "เกณฑ์การลาก", + "maxWheelDelta": "เดลต้าล้อสูงสุด", + "momentumSampleWindow": "หน้าต่างตัวอย่างโมเมนตัม", + "releaseGracePeriod": "ระยะเวลาผ่อนผันการปล่อยตัว", + "minimumVelocity": "ความเร็วต่ำสุด", + "maximumVelocity": "ความเร็วสูงสุด", + "maximumDuration": "ระยะเวลาสูงสุด", + "maximumTravel": "การเดินทางสูงสุด", + "decayTime": "เวลาการเสื่อมสภาพ", + "pixelsPerTick": "พิกเซลต่อติ๊ก", + "maximumFrameInterval": "ช่วงเวลาเฟรมสูงสุด", + "maximumTicksPerFrame": "จำนวนขีดสูงสุดต่อเฟรม" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "รหัสอินสแตนซ์เซสชันเทอร์มินัล", + "instanceIdDesc": "รหัสอินสแตนซ์ของแท็บเทอร์มินัลที่เชื่อมต่ออยู่แท็บหนึ่ง ใช้สำหรับทดสอบการมองเห็น", + "selectedModeUnavailable": "ไม่พร้อมใช้งาน", + "test": "ทดสอบ", + "testing": "กำลังทดสอบ...", + "testFailed": "การทดสอบการจัดเก็บรูปภาพล้มเหลว", + "testConnected": "การเชื่อมต่อเซสชันเทอร์มินัลเสร็จสมบูรณ์แล้ว", + "testNotConnected": "ไม่มีเซสชันเทอร์มินัลที่เชื่อมต่อกับรหัสอินสแตนซ์นี้", + "testSelectedMode": "การอัปโหลดจะใช้รูปแบบ: {{mode}}", + "testLocalVisible": "ไดเร็กทอรีภายในเครื่องสามารถมองเห็นได้จากโฮสต์ที่เชื่อมต่ออยู่", + "testLocalNotVisible": "ไดเร็กทอรีภายในเครื่องจะไม่สามารถมองเห็นได้จากโฮสต์ที่เชื่อมต่ออยู่" }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "การป้อนข้อมูลด้วยระบบสัมผัส", + "images": "การจัดเก็บรูปภาพ", + "sessions": "การประชุม", + "newHosts": "โฮสต์ใหม่" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "การคงอยู่ของเซสชันเทอร์มินัล", + "description": "ระยะเวลาที่เทอร์มินัลที่ไม่ได้เชื่อมต่อจะยังคงทำงานอยู่บนเซิร์ฟเวอร์ก่อนที่จะถูกปิด ต่ำสุด 1 นาที สูงสุด 1440 นาที สำหรับเซสชันที่ต้องใช้งานนานกว่านี้ ให้เปิดใช้งาน Auto-Tmux บนโฮสต์" }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "ประวัติคำสั่ง", + "description": "อนุญาตให้บันทึกประวัติคำสั่ง เมื่อปิดใช้งาน ประวัติจะไม่ถูกบันทึกไม่ว่าการตั้งค่าต่อโฮสต์จะเป็นอย่างไรก็ตาม" }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "ประวัติคำสั่งสำหรับโฮสต์ใหม่", + "description": "ไม่ว่าโฮสต์ใหม่จะเริ่มต้นโดยเปิดใช้งานประวัติคำสั่งหรือไม่" }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "โหมดจัดเก็บข้อมูล", + "description": "ตำแหน่งที่จะบันทึกภาพเทอร์มินัลที่คัดลอกและอัปโหลด การเลือกอัตโนมัติตามการเชื่อมต่อ ทั้งแบบโลคอลและรีโมต (SFTP) นั้นถูกกำหนดไว้แล้ว", + "auto": "อัตโนมัติ", + "local": "ท้องถิ่น", + "remoteSftp": "รีโมท (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "ไดเร็กทอรีท้องถิ่น", + "description": "เส้นทางสัมบูรณ์บนแบ็กเอนด์ของ Termix ที่โหมดโลคอลใช้เขียนรูปภาพ จะไม่แสดงหลังจากบันทึกแล้ว หากว่างเปล่าจะใช้ TERMIX_IMAGE_DIR" }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "เส้นทางโฮสต์", + "description": "มุมมองฝั่งโฮสต์ของไดเร็กทอรีท้องถิ่นที่เอเจนต์เทอร์มินัลได้รับ" }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "ทีทีแอล (มิลลิวินาที)", + "description": "ระยะเวลาที่รูปภาพที่อัปโหลดจะถูกเก็บไว้ (หน่วยเป็นมิลลิวินาที) ค่าว่างจะใช้ค่า TERMIX_IMAGE_TTL_MS หรือหนึ่งชั่วโมง" }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "จำนวนภาพสูงสุด", + "description": "รูปภาพส่วนใหญ่จะถูกเก็บไว้พร้อมกัน ค่าว่างจะใช้ TERMIX_MAX_IMAGE_COUNT หรือ 100" }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "พื้นที่จัดเก็บสูงสุด (ไบต์)", + "description": "รูปภาพส่วนใหญ่จะถูกเก็บไว้ในคราวเดียว หากว่างเปล่าจะใช้พื้นที่จัดเก็บสูงสุด TERMIX_MAX_IMAGE_STORAGE_BYTES หรือ 5 GiB" }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "ยังคงใช้งานเซสชันต่อไปแม้หลังจากตัดการเชื่อมต่อแล้ว", + "description": "รักษาการเชื่อมต่อเทอร์มินัลที่ไม่ได้ตัดการเชื่อมต่อไว้บนเซิร์ฟเวอร์เป็นระยะเวลาตามที่ระบุไว้ข้างต้น เพื่อให้เมื่อเปิดแท็บนั้นขึ้นมาใหม่ จะสามารถดำเนินการต่อจากจุดที่หยุดไว้ได้" }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "ออโต้-ทมักซ์", + "description": "เรียกใช้เทอร์มินัลของโฮสต์ใหม่ภายใน tmux เพื่อให้เซสชันยังคงใช้งานได้แม้การเชื่อมต่อถูกตัด (ต้องมี tmux บนโฮสต์)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "ธีมสำหรับโฮสต์ใหม่", + "description": "ธีมเทอร์มินัลที่โฮสต์ใหม่เริ่มต้นใช้งาน" }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "แบบอักษรสำหรับโฮสต์ใหม่", + "description": "ฟอนต์เทอร์มินัลที่โฮสต์ใหม่เริ่มต้นใช้งาน" }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "ขนาดตัวอักษรสำหรับโฮสต์ใหม่", + "description": "ขนาดตัวอักษรของเทอร์มินัลที่โฮสต์ใหม่เริ่มต้นใช้งาน หน่วยเป็นพิกเซล" }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "รูปแบบเคอร์เซอร์สำหรับโฮสต์ใหม่" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "เคอร์เซอร์กะพริบสำหรับโฮสต์ใหม่" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "เปิดใช้งานแถบเครื่องมือเทอร์มินัล", + "description": "แสดงแถบเครื่องมือเข้าถึงด่วนที่ตรึงอยู่กับเทอร์มินัลที่ใช้งานอยู่ สำหรับเครื่องมือและสถิติแบบเรียลไทม์ของโฮสต์นี้" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "ตำแหน่งแถบเครื่องมือ", + "description": "ตรงตำแหน่งที่แถบเครื่องมืออยู่ในเทอร์มินัล คุณยังสามารถลากมันจากตรงนั้นได้", + "bottom": "ตรงกลางด้านล่าง", + "bottomLeft": "มุมล่างซ้าย", + "bottomRight": "มุมล่างขวา", + "top": "ด้านบนตรงกลาง", + "topLeft": "มุมบนซ้าย", + "topRight": "มุมบนขวา" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "สถานะเริ่มต้นของแถบเครื่องมือ", + "description": "ไม่ว่าแถบเครื่องมือจะเปิดแบบขยายหรือย่อเมื่อเทอร์มินัลเชื่อมต่อ", + "expanded": "ขยาย", + "collapsed": "ลดขนาดลง" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "โหมดแสดงแถบเครื่องมือ", + "description": "วิธีการแสดงปุ่มบนแถบเครื่องมือ ปุ่มที่ใช้ล่าสุดจะคงปุ่มที่เลือกไว้ในแถบเครื่องมือ", + "remember": "ใช้งานครั้งล่าสุด", + "icon": "เฉพาะไอคอน", + "labeled": "ไอคอนและป้ายกำกับ", + "expanded": "ขยายความด้วยสถิติ" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "แสดงสถิติแบบเรียลไทม์", + "description": "แสดงสถิติโฮสต์แบบเรียลไทม์เหนือปุ่มแถบเครื่องมือในโหมดขยาย" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "ไฟจะค่อยๆ ดับลงเมื่อไม่ได้ใช้งาน", + "description": "แถบเครื่องมือจะค่อยๆ จางหายไปจนกว่าคุณจะวางเมาส์เหนือแถบนั้น" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "ประวัติคำสั่ง", + "description": "บันทึกคำสั่งที่เรียกใช้ในเทอร์มินัลนี้เพื่อดูประวัติและฟังก์ชันเติมคำอัตโนมัติ" }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "เปิดใช้งานเทอร์มินัล", + "description": "จัดเตรียมเทอร์มินัล SSH สำหรับโฮสต์นี้" }, "inheritAppearance": { - "label": "Use user defaults" + "label": "ใช้ค่าเริ่มต้นของผู้ใช้" }, "theme": { - "label": "Theme" + "label": "ธีม" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "เคอร์เซอร์กะพริบ" }, "cursorStyle": { - "label": "Cursor style" + "label": "รูปแบบเคอร์เซอร์" }, "fontSize": { - "label": "Font size" + "label": "ขนาดตัวอักษร" }, "fontFamily": { - "label": "Font" + "label": "ฟอนต์" }, "scrollback": { - "label": "Scrollback" + "label": "เลื่อนกลับ" }, "letterSpacing": { - "label": "Letter spacing" + "label": "ระยะห่างระหว่างตัวอักษร" }, "lineHeight": { - "label": "Line height" + "label": "ความสูงของเส้น" }, "bellStyle": { - "label": "Bell" + "label": "กระดิ่ง" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "อัตราส่วนความคมชัดต่ำสุด" }, "backgroundImage": { - "label": "Background image" + "label": "ภาพพื้นหลัง" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "ความโปร่งใสของภาพพื้นหลัง" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "สีธีมที่กำหนดเอง" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "คลิกขวาเพื่อเลือกคำ" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "ตัวเลือกคือ Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "ปุ่มเลื่อนเร็ว" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "ความเร็วในการเลื่อนที่รวดเร็ว" }, "backspaceMode": { - "label": "Backspace" + "label": "ลบ" }, "autoMosh": { - "label": "Auto mosh" + "label": "ออโต้โมช" }, "moshCommand": { - "label": "Mosh command" + "label": "คำสั่งม็อช" }, "autoTmux": { - "label": "Auto tmux" + "label": "ออโต้ tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "ใช้ชื่อ SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "การเน้นไวยากรณ์" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "หมวดหมู่การเน้นไวยากรณ์" }, "linkClickBehavior": { - "label": "Link click" + "label": "คลิกลิงก์" }, "localEcho": { - "label": "Local echo" + "label": "เสียงสะท้อนในท้องถิ่น" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "เสนอให้กรอกรหัสผ่านเมื่อจำเป็น" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "กรอกข้อมูลตามคำสั่ง sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "เชื่อมต่อใหม่โดยอัตโนมัติ" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "การเติมคำสั่งอัตโนมัติ", + "description": "แสดงคำแนะนำอัตโนมัติขณะพิมพ์ หากคุณกดปุ่ม Tab" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "เสียงสะท้อนในท้องถิ่น", + "description": "ลดความรู้สึกหน่วงในการป้อนข้อมูลโดยใช้การคาดเดาการกดแป้นพิมพ์ในพื้นที่อย่างปลอดภัย" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "คลิกลิงก์เทอร์มินัล", + "description": "พฤติกรรมเริ่มต้นเมื่อคลิกลิงก์ในเทอร์มินัล" }, "customThemes": { - "label": "Saved themes" + "label": "ธีมที่บันทึกไว้" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "สถานีปลายทางท้องถิ่น" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "ใช้เซสชันเทอร์มินัลแบบเรียลไทม์", + "description": "ช่วยให้ฟีเจอร์อื่นๆ เช่น การแชร์เซสชันและการบันทึก สามารถเข้าถึงเซสชันเทอร์มินัลแบบเรียลไทม์ของคุณได้" }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "อ่านประวัติคำสั่ง", + "description": "อนุญาตให้ฟีเจอร์อื่นๆ เช่น ผู้ช่วย AI อ่านประวัติคำสั่งของคุณได้" } }, "hosts": { - "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", - "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", - "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", - "fastScrollModifierAlt": "Alt", + "tabTerminal": "เทอร์มินัล", + "addHost": "เพิ่มโฮสต์", + "applyGlobalThemeTooltip": "ใช้ธีมนี้", + "backgroundImageDesc": "URL สำหรับภาพพื้นหลังของเทอร์มินัล (ไม่บังคับ)", + "backgroundImageLabel": "URL ของภาพพื้นหลัง", + "backgroundImageOpacityLabel": "ความโปร่งใสของภาพพื้นหลัง", + "backspaceMode": "โหมดลบ", + "backspaceModeControlH": "คอนโทรล-เอช (บีเอส)", + "backspaceModeLabel": "โหมดลบ", + "backspaceModeNormal": "ปกติ (DEL)", + "behaviorAndAdvanced": "พฤติกรรมและขั้นสูง", + "bellStyle": "สไตล์เบลล์", + "bellStyleBoth": "ทั้งคู่", + "bellStyleLabel": "สไตล์เบลล์", + "bellStyleNone": "ไม่มี", + "bellStyleSound": "เสียง", + "bellStyleVisual": "ภาพ", + "colorTheme": "ธีมสี", + "cursorBlink": "เคอร์เซอร์กระพริบ", + "cursorBlinking": "เคอร์เซอร์กะพริบ", + "cursorBlinkingDesc": "เปิดใช้งานแอนิเมชั่นกระพริบสำหรับเคอร์เซอร์เทอร์มินัล", + "cursorStyle": "รูปแบบเคอร์เซอร์", + "cursorStyleBar": "บาร์", + "cursorStyleBlock": "ปิดกั้น", + "cursorStyleLabel": "รูปแบบเคอร์เซอร์", + "cursorStyleUnderline": "ขีดเส้นใต้", + "customThemeAnsiColors": "สี ANSI", + "customThemeBackground": "พื้นหลัง", + "customThemeBlack": "สีดำ", + "customThemeBlue": "สีฟ้า", + "customThemeBrightBlack": "สีดำสนิท", + "customThemeBrightBlue": "สีน้ำเงินสดใส", + "customThemeBrightCyan": "สีฟ้าสดใส", + "customThemeBrightGreen": "สีเขียวสดใส", + "customThemeBrightMagenta": "สีม่วงแดงสดใส", + "customThemeBrightRed": "สีแดงสด", + "customThemeBrightWhite": "สีขาวสว่าง", + "customThemeBrightYellow": "สีเหลืองสดใส", + "customThemeColors": "สีที่กำหนดเอง", + "customThemeCursor": "เคอร์เซอร์", + "customThemeCursorAccent": "เคอร์เซอร์เน้นเสียง", + "customThemeCyan": "สีฟ้าอมเขียว", + "customThemeForeground": "พื้นหน้า", + "customThemeGreen": "สีเขียว", + "customThemeMagenta": "แมเจนต้า", + "customThemeRed": "สีแดง", + "customThemeResetTooltip": "รีเซ็ตเป็นการตั้งค่าเริ่มต้น", + "customThemeSelection": "การคัดเลือก", + "customThemeWhite": "สีขาว", + "customThemeYellow": "สีเหลือง", + "deleteGlobalThemeTooltip": "ลบธีมนี้", + "docsLink": "ดูเอกสาร", + "enableAutoMosh": "เปิดใช้งาน Auto-Mosh", + "enableAutoMoshDesc": "หากมีตัวเลือก ให้เลือกใช้ Mosh แทน SSH", + "enableAutoTmux": "เปิดใช้งาน Auto-Tmux", + "enableAutoTmuxDesc": "รักษาการทำงานของเชลล์และโปรแกรมใดๆ ที่ทำงานอยู่ภายในเชลล์ให้คงอยู่ต่อไปแม้การตัดการเชื่อมต่อหรือการรีสตาร์ทเบราว์เซอร์ โดยการเรียกใช้คำสั่งภายใน tmux (ต้องติดตั้ง tmux บนเครื่องโฮสต์)", + "fastScrollModifier": "ตัวแก้ไขการเลื่อนเร็ว", + "fastScrollModifierAlt": "อัลท์", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "ตัวแก้ไขการเลื่อนเร็ว", + "fastScrollModifierShift": "กะ", + "fastScrollSensitivity": "ความไวในการเลื่อนเร็ว", + "fastScrollSensitivityLabel": "ความไวในการเลื่อนเร็ว", + "fontFamily": "ตระกูลฟอนต์", + "fontFamilyCustomHint": "เลือกฟอนต์ที่มีให้ในชุด หรือเลือกแบบกำหนดเอง แล้วพิมพ์ชื่อฟอนต์ที่ติดตั้งอยู่ในระบบของคุณให้ถูกต้อง (เช่น MesloLGS NF, Noto Sans Mono) Termix ไม่สามารถติดตั้งฟอนต์ให้คุณได้ คุณต้องติดตั้งฟอนต์ลงในระบบปฏิบัติการของคุณก่อน", + "fontFamilyCustomOption": "กำหนดเอง...", + "fontFamilyCustomPlaceholder": "ชื่อฟอนต์ที่ถูกต้อง เช่น MesloLGS NF", + "fontFamilyLabel": "ตระกูลฟอนต์", + "fontSize": "ขนาดตัวอักษร", + "fontSizeLabel": "ขนาดตัวอักษร", + "hostNotFound": "ไม่พบโฮสต์", + "letterSpacing": "ระยะห่างระหว่างตัวอักษร", + "letterSpacingPx": "ระยะห่างระหว่างตัวอักษร (พิกเซล)", + "lineHeight": "ความสูงของเส้น", + "lineHeightLabel": "ความสูงของเส้น", + "linkClickBehaviorConfirm": "แสดงหน้าต่างป๊อปอัพเพื่อเปิดหรือคัดลอก", + "linkClickBehaviorDesc": "ควบคุมสิ่งที่เกิดขึ้นเมื่อคุณคลิกลิงก์ในเทอร์มินัล ใช้ 'ค่าเริ่มต้น' เพื่อใช้การตั้งค่าระดับแอป", + "linkClickBehaviorDirect": "เปิดโดยตรง", + "linkClickBehaviorLabel": "พฤติกรรมการคลิกลิงก์", + "loadingHost": "กำลังโหลดโฮสต์...", + "localEchoAuto": "อัตโนมัติ", + "localEchoDesc": "คาดการณ์การกดแป้นพิมพ์ที่ปลอดภัยสำหรับการพิมพ์ในเครื่องบนการเชื่อมต่อที่ช้า ข้อความแจ้งให้ป้อนรหัสผ่านและการป้อนข้อมูลควบคุมจะไม่ถูกแสดงซ้ำ", + "localEchoLabel": "เสียงสะท้อนในท้องถิ่น", + "localEchoOff": "ปิด", + "localEchoOn": "เปิดใช้งานตลอดเวลา", + "macOptionIsMetaLabel": "ปุ่ม Option Key ส่งข้อมูล Meta", + "macOptionIsMetaShortDesc": "ปิดใช้งานการพิมพ์อักขระพิเศษ (เช่น @ หรือ |) ด้วยปุ่ม Option/Alt บน macOS แทนการส่งข้อมูล Meta", + "moshCommand": "กองบัญชาการ MOSH", + "moshCommandLabel": "ม็อช คอมมานโด", + "noSavedThemes": "ยังไม่มีธีมที่บันทึกไว้", + "none": "ไม่มี", + "passwordPromptAutoFillDesc": "เสนอให้กรอกรหัสผ่านที่บันทึกไว้เมื่อเทอร์มินัลขอให้ป้อนรหัสผ่าน ปิดใช้งานเพื่อไม่ให้มีการกรอกรหัสผ่านอัตโนมัติบนโฮสต์นี้", + "passwordPromptAutoFillLabel": "ข้อเสนอการกรอกรหัสผ่านอัตโนมัติ", + "autoReconnectLabel": "เชื่อมต่ออัตโนมัติ", + "autoReconnectDesc": "เชื่อมต่อใหม่โดยอัตโนมัติเมื่อการเชื่อมต่อ SSH หลุด เช่น หลังจากปัญหาเครือข่ายหรือโหมดพักเครื่อง และยังคงรักษาข้อมูลการเลื่อนดูย้อนหลังไว้", + "rightClickSelectsWord": "คลิกขวาแล้วเลือก Word", + "rightClickSelectsWordLabel": "คลิกขวา เลือก Word", + "rightClickSelectsWordShortDesc": "เลือกคำที่อยู่ใต้เคอร์เซอร์เมื่อคลิกขวา", + "saveAsGlobalTheme": "บันทึกเป็นธีมทั่วโลก", + "saveGlobalThemeError": "ไม่สามารถบันทึกธีมได้", + "saveGlobalThemeNamePrompt": "ตั้งชื่อให้กับธีมนี้", + "saveGlobalThemeSuccess": "บันทึกธีมแล้ว", + "savedThemesLabel": "ธีมที่บันทึกไว้", + "scrollbackBufferLabel": "บัฟเฟอร์การเลื่อนกลับ", + "scrollbackMaxLines": "จำนวนบรรทัดสูงสุดที่เก็บไว้ในประวัติ", + "sudoPasswordAutoFill": "การกรอกรหัสผ่านอัตโนมัติของ Sudo", + "sudoPasswordAutoFillDesc": "บันทึกรหัสผ่าน sudo เพื่อให้โปรแกรมตรวจสอบข้อมูลโฮสต์ ข้อความแจ้งเตือนในเทอร์มินัล และโปรแกรมอื่นๆ สามารถเรียกใช้คำสั่งที่มีสิทธิ์พิเศษได้โดยอัตโนมัติ", + "sudoPasswordAutoFillLabel": "การกรอกรหัสผ่านอัตโนมัติของ Sudo", + "syntaxCategoryIpAddresses": "ที่อยู่ IP", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", + "syntaxCategoryLogLevels": "ระดับการบันทึก", + "syntaxCategoryLogLevelsDesc": "ข้อผิดพลาด, คำเตือน, ข้อมูล, ดีบัก, ร้ายแรง", + "syntaxCategoryNumbers": "หมายเลขกำกับ", + "syntaxCategoryNumbersDesc": "พอร์ต 8080 ทางออก 1 สถานะ 404", + "syntaxCategoryPaths": "เส้นทางไฟล์", "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", - "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryTimestamps": "ไทม์สแตมป์", + "syntaxCategoryTimestampsDesc": "[12:34:56], 15 มกราคม 2024", + "syntaxCategoryUrls": "URL", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "ใส่สีให้กับข้อมูลที่แสดงในเทอร์มินัล (ข้อผิดพลาด เส้นทาง ที่อยู่ IP และเวลา)", + "syntaxHighlightingLabel": "การเน้นไวยากรณ์", + "terminalAppearance": "ลักษณะปลายทาง", + "theme": "ธีม", + "themePreview": "ตัวอย่างธีม", + "useSSHTitleDesc": "เปลี่ยนชื่อแท็บโดยใช้ชื่อหน้าต่างของเชลล์แทนชื่อโฮสต์", + "useSSHTitleLabel": "ใช้ชื่อหน้าต่าง SSH", + "enableTunnel": "เปิดใช้งานอุโมงค์", + "enableFileManager": "เปิดใช้งานตัวจัดการไฟล์", + "enableDocker": "เปิดใช้งาน Docker", + "startupSnippet": "ตัวอย่างโค้ดสำหรับเริ่มต้น", + "quickActions": "การดำเนินการด่วน", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "ความสำเร็จ" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} ข้ามไป (ไม่พบ IP)", + "proxmoxStatsUrlCopied": "คัดลอก URL สถิติ Proxmox ไปยังคลิปบอร์ดแล้ว", + "rdpUrlCopied": "คัดลอก URL ของ RDP แล้ว", + "vncUrlCopied": "คัดลอก URL ของ VNC แล้ว", + "filterAuthStepca": "ขั้นตอน CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "noCredential": "ไม่มีข้อมูลประจำตัว (ข้อมูลประจำตัวโดยตรงอยู่ด้านล่าง)", + "authTypeDirect": "โดยตรง", + "authTypeCredential": "ใบรับรอง", + "authTypeNone": "ไม่มี", + "recordingPath": "เส้นทางการบันทึก", + "recordingName": "ชื่อการบันทึก", + "saveHostFirst": "บันทึกข้อมูลโฮสต์ก่อน", + "sharingOptionsAfterSave": "ตัวเลือกการแชร์จะพร้อมใช้งานหลังจากบันทึกโฮสต์แล้ว", + "permissionLevel": "ระดับการอนุญาต", + "typeHeader": "พิมพ์", + "targetHeader": "เป้า", + "permissionHeader": "การอนุญาต", + "cancelBtn": "ยกเลิก", + "savingBtn": "ประหยัด...", + "updateHostBtn": "อัปเดตโฮสต์", + "addHostBtn": "เพิ่มโฮสต์" }, - "filterAuthVault": "Vault" + "filterAuthVault": "ห้องนิรภัย" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", - "terminal": "Terminal", - "macros": "Macros" + "history": "ประวัติศาสตร์", + "localTerminal": "สถานีปลายทางท้องถิ่น", + "sshTools": "เครื่องมือ SSH", + "terminal": "เทอร์มินัล", + "macros": "มาโคร" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "พิมพ์ที่นี่เพื่อถ่ายทอดการกดแป้นพิมพ์...", + "copyOnSelect": "คัดลอกข้อความที่เลือกโดยอัตโนมัติ", + "enableRightClickCopyPaste": "เปิดใช้งานการคัดลอก/วางโดยคลิกขวา", + "fillPassword": "กรอกรหัสผ่าน", + "fillPasswordMissing": "ไม่มีรหัสผ่านที่บันทึกไว้สำหรับเทอร์มินัลที่เลือก {{count}} เครื่อง", + "fillPasswordSuccess": "กรอกรหัสผ่านลงในเทอร์มินัล {{count}} แล้ว", + "keyRecordingTitle": "การบันทึกคีย์", + "noTerminalTabsOpen": "ไม่มีแท็บเทอร์มินัลเปิดอยู่", + "recordToTerminals": "บันทึกไปยังเทอร์มินัล", + "selectAll": "ทั้งหมด", + "selectNone": "ไม่มี", + "selectTerminalsAbove": "เลือกเทอร์มินัลด้านบน", + "settingsTitle": "การตั้งค่า", + "startRecording": "เริ่มบันทึก", + "stopRecording": "หยุดบันทึก" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "คัดลอกการเลือก", + "paste": "แปะ", + "sendControlCode": "ส่งสัญญาณ Ctrl+ตัวอักษร", + "sendText": "ส่งข้อความ", + "controlCodeLabel": "จดหมาย", + "textLabel": "ข้อความที่จะส่ง", + "appendEnterLabel": "กด Enter หลังจากส่งแล้ว", + "clipboardPermissionNote": "ในบางเบราว์เซอร์ อาจขออนุญาตคัดลอกและวางข้อมูลลงในคลิปบอร์ดเมื่อใช้งานครั้งแรก", + "textRequired": "ป้อนข้อความที่จะส่ง", + "controlCodeRequired": "ป้อนตัวอักษรตัวเดียวสำหรับรหัสควบคุม", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "คัดลอกส่วนที่เลือก (กด Ctrl+C เฉพาะเมื่อเลือกข้อความอยู่)", + "copyCtrlShiftC": "คัดลอกส่วนที่เลือก (Ctrl+Shift+C)", + "copyCmdC": "คัดลอกส่วนที่เลือก (Cmd+C)", + "pasteCtrlShiftV": "วางจากคลิปบอร์ด (Ctrl+Shift+V)", + "ctrlW": "กด Ctrl+W เพื่อเข้าสู่เชลล์ (จะไม่สามารถปิดแท็บเบราว์เซอร์ได้)", + "ctrlT": "กด Ctrl+T เพื่อเข้าสู่เชลล์ (บล็อกไม่ให้เปิดแท็บเบราว์เซอร์)", + "ctrlN": "กด Ctrl+N เพื่อเข้าสู่เชลล์ (บล็อกไม่ให้เปิดหน้าต่างเบราว์เซอร์)", + "ctrlQ": "กด Ctrl+Q เพื่อเข้าสู่เชลล์ (บล็อกไม่ให้ปิดเบราว์เซอร์)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "title": "มาโคร", + "description": "เรียกใช้ชุดคำสั่งที่บันทึกไว้ในเทอร์มินัล แล้วตอบสนองต่อสิ่งที่เซิร์ฟเวอร์ส่งกลับมา", + "target": "เป้า", + "noTerminal": "ไม่มีเทอร์มินัลเปิดอยู่", + "empty": "ยังไม่มีมาโคร", + "emptyHint": "สร้างมาโครเพื่อทำให้กระบวนการทำงานบนเทอร์มินัลเป็นไปโดยอัตโนมัติ เช่น การล็อกอิน การรีสตาร์ทบริการ หรือการตอบคำถามต่างๆ", + "create": "มาโครใหม่", + "back": "กลับไปที่มาโคร", + "name": "ชื่อ", + "namePlaceholder": "รีสตาร์ทเว็บเซิร์ฟเวอร์", + "nameRequired": "ตั้งชื่อมาโครก่อนบันทึก", + "descriptionLabel": "คำอธิบาย", + "descriptionPlaceholder": "มาโครนี้ทำอะไร (ไม่บังคับ)", + "unsaved": "การเปลี่ยนแปลงที่ยังไม่ได้บันทึก", + "save": "บันทึก", + "saved": "บันทึกมาโครแล้ว", + "saveFailed": "ไม่สามารถบันทึกมาโครได้", + "delete": "ลบ", + "deleteTitle": "ลบมาโครนี้?", + "deleteBody": "\"{{name}}\" จะถูกลบอย่างถาวร ไม่สามารถกู้คืนได้", + "deleted": "มาโครถูกลบแล้ว", + "cancel": "ยกเลิก", + "run": "วิ่ง", + "stop": "หยุด", + "running": "วิ่ง...", + "completed": "มาโครเสร็จสิ้น", + "failed": "มาโครล้มเหลว", + "loadFailed": "ไม่สามารถโหลดมาโครได้", + "needTerminal": "เปิดและเชื่อมต่อเทอร์มินัลก่อน", + "noSteps": "มาโครนี้ยังไม่มีขั้นตอนใดๆ เพิ่มขั้นตอนด้านล่าง", + "addStep": "เพิ่มขั้นตอน", + "stepNumber": "ขั้นตอน {{number}}", + "removeStep": "ลบขั้นตอน", + "confirmRunTitle": "เรียกใช้มาโครนี้หรือไม่?", + "confirmRunBody": "\"{{name}}\" จะส่งคำสั่งไปยัง {{host}}", + "confirmRunAction": "เรียกใช้มาโคร", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "ส่งคำสั่ง", + "help": "พิมพ์ข้อความลงในเทอร์มินัล เหมือนกับที่คุณพิมพ์ข้อความนั้นด้วยตนเอง" }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "รอผลลัพธ์", + "help": "หยุดรอจนกว่าเซิร์ฟเวอร์จะแสดงข้อความที่คุณระบุ เช่นเดียวกับการขอให้ป้อนรหัสผ่าน" }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "หยุดชั่วคราว", + "help": "รอเป็นระยะเวลาที่กำหนดก่อนดำเนินการขั้นตอนต่อไป" }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "หากผลลัพธ์ประกอบด้วย", + "help": "ตรวจสอบทุกอย่างที่เซิร์ฟเวอร์ได้พิมพ์ออกมาแล้ว จากนั้นจึงเลือกดำเนินการตามหนึ่งในสองทางเลือก" }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "ทำซ้ำ", + "help": "ดำเนินการตามขั้นตอนภายในตามจำนวนครั้งที่กำหนด" } }, "send": { - "text": "Command or text", + "text": "คำสั่งหรือข้อความ", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "กด Enter หลังจากส่งแล้ว", + "pressEnterHelp": "ปิดตัวเลือกนี้เพื่อพิมพ์ข้อความโดยไม่ต้องกดส่ง" }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "รอจนกว่าผลลัพธ์จะประกอบด้วย", + "patternPlaceholder": "รหัสผ่าน:", + "timeout": "ยอมแพ้หลังจาก", + "onTimeout": "หากมันไม่ปรากฏเลย", + "stop": "หยุดมาโคร", + "continue": "อย่าหยุดแค่นี้" }, "delay": { - "duration": "Wait for" + "duration": "รอสักครู่" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "หากผลลัพธ์ประกอบด้วย", + "patternPlaceholder": "สถานะ: กำลังทำกิจกรรม (วิ่ง)", + "then": "จากนั้นให้ทำแบบนี้", + "else": "มิเช่นนั้นให้ทำแบบนี้", + "emptyBranch": "ไม่มีขั้นตอน" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "จำนวนครั้ง", + "times": "ครั้ง" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "จับคู่ด้วยนิพจน์ปกติ", + "useRegexHelp": "ไม่ต้องใส่ส่วนนี้เพื่อให้ตรงกับข้อความที่เขียนไว้ทุกประการ", + "invalidRegex": "ไม่ใช่รูปแบบนิพจน์ปกติที่ถูกต้อง ระบบจะถือว่าเป็นข้อความธรรมดา" }, - "seconds": "seconds", + "seconds": "วินาที", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "จำเป็นต้องใช้เซิร์ฟเวอร์ระยะไกล เชื่อมต่อเซิร์ฟเวอร์ระยะไกลในการตั้งค่าเพื่อใช้ประเภทการเชื่อมต่อนี้" } } diff --git a/plugins/ssh-terminal/locales/translated/tr_TR.json b/plugins/ssh-terminal/locales/translated/tr_TR.json index 784071d7c..34d841a56 100644 --- a/plugins/ssh-terminal/locales/translated/tr_TR.json +++ b/plugins/ssh-terminal/locales/translated/tr_TR.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Otomatik Tmux etkinleştirme başarısız oldu.", + "autoTmuxEnabled": "{{host}}için otomatik Tmux etkinleştirildi. Bu, sonraki bağlantıdan itibaren geçerli olacak.", + "clipboardHttpWarning": "Panoyu okuyamadım. Bazı tarayıcılar HTTPS dışında panoya erişimi kısıtlar; bunun yerine Ctrl+V tuş kombinasyonunu deneyin veya Termix'i HTTPS üzerinden sunun.", "closeTab": "Kapat", "connecting": "Bağlanıyor...", "connectionLost": "Bağlantı kesildi", @@ -44,18 +44,18 @@ "reconnect": "Yeniden Bağlan", "reconnected": "Başarıyla yeniden bağlandı", "reconnecting": "Yeniden bağlanıyor... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "Bağlantı kesildi, yeniden bağlanılıyor...", + "searchCaseSensitive": "Kibrit Kutusu", + "searchClose": "Kapat (Escape)", + "searchNext": "Sonraki Maç (Giriş)", + "searchNoResults": "Sonuç bulunamadı.", + "searchPlaceholder": "Bulmak", + "searchPrevious": "Önceki Maç (Shift+Enter)", + "searchRegex": "Düzenli İfade Kullanımı", + "searchResultCount": "{{index}} / {{count}}", + "searchWholeWord": "Kelimenin tamamını eşleştir", + "sessionExpiredNotice": "{{host}} üzerindeki önceki oturumunuz {{minutes}} dakika sonra sona erdi; kabuk ve içinde çalışan her şey kayboldu. Oturumların aktif kalması için bu sunucuda Auto-Tmux'u etkinleştirin.", + "sessionExpiredNoticeNoMinutes": "{{host}} üzerindeki önceki oturumunuz bağlantı kesikken sona erdi; kabuk ve içinde çalışan her şey kayboldu. Oturumların aktif kalması için bu sunucuda Auto-Tmux'u etkinleştirin.", "sessionTakenOver": "Oturum başka bir sekmede açıldı. Yeniden bağlanılıyor...", "tmuxAttached": "Bağlı istemciler", "tmuxAttachedCount": "{{count}} bağlı", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "Panoya kopyalama başarısız oldu. Sayfanın HTTPS veya localhost üzerinden sunulduğundan emin olun.", "connected": "Bağlandı", "totpCodeLabel": "Doğrulama Kodu", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Sekmeyi çoğalt", + "imageChooseFile": "Bir resim dosyası seçin", + "imageUploaded": "Yüklenen resim: {{path}}", + "imageClipboardUnavailable": "Bu tarayıcı panodan resim okuyamıyor.", + "imageClipboardEmpty": "Panoda hiçbir resim bulunamadı.", + "localShell": "Yerel terminal kabuğu", + "autocompleteHintComplete": "Tab veya Enter tuşuna basarak işlemi tamamlayın.", + "autocompleteHintNavigate": "↑↓ gezinmek için", + "autocompleteHintClose": "Esc tuşuyla kapatın" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "tmux'u ayır", + "detachTmuxDescription": "Tmux oturumunu ayır", + "dismissError": "Görüntü hatasını kapat", + "hideToolbar": "Araç çubuğunu gizle", + "image": "Görüntü işlemleri (yalnızca görüntüler)", + "imageActionFailed": "Görüntü işlemi başarısız oldu", + "layout": "Araç çubuğu görüntüleme modu", + "layoutExpanded": "Ölçütlerle genişletildi", + "layoutIcon": "Yalnızca simge", + "layoutLabeled": "Simgeler ve etiketler", + "moveToolbar": "Araç çubuğunu taşı", + "moveToolbarHint": "Araç çubuğunu yeniden konumlandırmak için sürükleyin.", + "paste": "Resmi yapıştır", + "pasteImage": "Panodan resim yapıştır (yalnızca resimler)", "retry": "Yeniden dene", "showToolbar": "Araç çubuğunu genişlet", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "Resim yükle", + "uploadImage": "Sunucuya bir resim yükleyin.", "uploadingImage": "Yükleniyor..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "Tümünü Temizle", "noHistoryEntries": "Geçmiş girdisi yok", "trackingDisabled": "Geçmiş takibi kapalı", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "Bu sunucunun SSH Terminal sekmesinde Komut Geçmişini etkinleştirin.", + "commandCount_one": "{{count}} komutu", + "commandCount_other": "{{count}} komutları" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", + "enabled": "Dokunmatik Girişi Etkinleştir", + "enabledDesc": "Terminallerde tek parmakla dokunmatik kaydırmaya izin verin.", + "momentumEnabled": "İvme Kazandırın", + "momentumEnabledDesc": "Kaydırma işleminden sonra kısa bir süre daha aşağı kaydırmaya devam edin.", + "advanced": "Gelişmiş", "resetDefaults": "Varsayılanlara sıfırla", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "Sürükleme eşiği", + "maxWheelDelta": "Maksimum tekerlek deltası", + "momentumSampleWindow": "Momentum örnek penceresi", + "releaseGracePeriod": "Serbest bırakma erteleme süresi", + "minimumVelocity": "Minimum hız", + "maximumVelocity": "Maksimum hız", + "maximumDuration": "Maksimum süre", + "maximumTravel": "Maksimum seyahat", + "decayTime": "Bozunma süresi", + "pixelsPerTick": "Piksel başına tik", + "maximumFrameInterval": "Maksimum kare aralığı", + "maximumTicksPerFrame": "Kare başına maksimum tik sayısı" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "Terminal oturum örneği kimliği", + "instanceIdDesc": "Görünürlüğü test etmek için kullanılan, bağlı terminal sekmelerinizden birinin örnek kimliği.", + "selectedModeUnavailable": "Mevcut değil", "test": "Test Et", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "Test...", + "testFailed": "Görüntü depolama testi başarısız oldu.", + "testConnected": "Terminal oturumu bağlandı.", + "testNotConnected": "Bu örnek kimliğiyle bağlantılı bir terminal oturumu bulunmamaktadır.", + "testSelectedMode": "Yükleme işlemi şu şekilde yapılır: {{mode}}", + "testLocalVisible": "Yerel dizin, bağlı sunucudan görülebilir.", + "testLocalNotVisible": "Yerel dizin, bağlı sunucudan görünmez." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "Dokunmatik Giriş", + "images": "Görüntü Depolama", "sessions": "Oturumlar", - "newHosts": "New Hosts" + "newHosts": "Yeni Sunucular" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Terminal Oturum Kalıcılığı", + "description": "Bağlantısı kesilmiş bir terminalin sunucuda kapatılmadan önce ne kadar süreyle aktif tutulacağı. Minimum 1, maksimum 1440 dakika. Bu süreyi aşması gereken oturumlar için, sunucuda Auto-Tmux'u etkinleştirin." }, "commandHistoryEnabled": { "label": "Komut Geçmişi", "description": "Komut geçmişi kaydına izin ver. Devre dışı bırakıldığında, host başına ayarlara bakılmaksızın geçmiş kaydedilmez." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Yeni sunucular için komut geçmişi", + "description": "Yeni sunucuların komut geçmişi açık olarak başlatılıp başlatılmadığı." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Depolama Modu", + "description": "Yapıştırılan ve yüklenen terminal görüntülerinin yazıldığı yer. Bağlantı türüne göre otomatik seçim, Yerel ve Uzak (SFTP) ayarları düzeltildi.", "auto": "Otomatik", "local": "Yerel", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Uzaktan (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Yerel dizin", + "description": "Termix arka ucunda yerel modun görüntüleri yazdığı mutlak yol. Kaydedildikten sonra asla gösterilmez. Boş bırakıldığında TERMIX_IMAGE_DIR kullanılır." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Ana bilgisayar yolu", + "description": "Terminal aracıların aldığı yerel dizinin sunucu tarafındaki görünümü." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Yüklenen bir görüntünün ne kadar süreyle (milisaniye cinsinden) saklanacağı. Boş değerler için TERMIX_IMAGE_TTL_MS veya bir saat kullanılır." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Maksimum görüntü sayısı", + "description": "Çoğu resim aynı anda saklanır. Boş değer için TERMIX_MAX_IMAGE_COUNT veya 100 kullanılır." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Maksimum depolama baytları", + "description": "Görüntülerin en fazla baytlık kısmı aynı anda saklanır. Boş hali TERMIX_MAX_IMAGE_STORAGE_BYTES veya 5 GiB kullanır." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Bağlantı kesildikten sonra oturumları sürdürün.", + "description": "Sunucuda bağlantısı kesilmiş bir terminali yukarıda belirtilen süre boyunca açık tutun, böylece sekme yeniden açıldığında kaldığı yerden devam eder." }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "Otomatik Tmux", + "description": "Yeni sunucuların terminallerini tmux içinde çalıştırın, böylece oturumlar bağlantı kesintilerinden etkilenmeden devam eder (sunucuda tmux kurulu olması gerekir)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Yeni ev sahipleri için tema", + "description": "Yeni bir sunucunun başlattığı terminal teması." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Yeni sunucular için yazı tipi", + "description": "Yeni bir sunucunun başlatıldığı terminal yazı tipi." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Yeni sunucular için yazı tipi boyutu", + "description": "Yeni bir sunucunun başlangıçta kullandığı terminal yazı tipi boyutu, piksel cinsinden." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Yeni sunucular için imleç stili" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Yeni sunucular için yanıp sönen imleç" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Terminal Araç Çubuğunu Etkinleştir", + "description": "Etkin terminale sabitlenmiş, bu sunucunun araçlarına ve canlı istatistiklerine hızlı erişim sağlayan bir araç çubuğu gösterin." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Araç Çubuğu Konumu", + "description": "Araç çubuğunun terminalde bulunduğu yer. Oradan hala sürükleyebilirsiniz.", + "bottom": "Alt orta kısım", + "bottomLeft": "Sol alt", + "bottomRight": "Sağ alt", + "top": "Üst orta", + "topLeft": "Sol üst", + "topRight": "Sağ üstte" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Araç Çubuğu Başlangıç Durumu", + "description": "Terminal bağlandığında araç çubuğunun genişletilmiş mi yoksa simge durumuna küçültülmüş mü açılacağı", + "expanded": "Genişletilmiş", + "collapsed": "Minimize edildi" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Araç Çubuğu Görüntüleme Modu", + "description": "Araç çubuğu düğmelerinin nasıl gösterileceği. Son kullanılan seçenek, araç çubuğunda seçtiğiniz düğmeyi korur.", + "remember": "Son kullanım", + "icon": "Yalnızca simge", + "labeled": "Simgeler ve etiketler", + "expanded": "İstatistiklerle genişletildi" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Canlı İstatistikleri Göster", + "description": "Genişletilmiş modda, araç çubuğu düğmelerinin üstünde canlı sunucu istatistiklerini göster." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Boşta Kalırken Solma", + "description": "Fare imlecini üzerine getirene kadar araç çubuğunu soluklaştırın." }, "enableCommandHistory": { "label": "Komut Geçmişi", @@ -273,157 +273,157 @@ }, "enableTerminal": { "label": "Terminali Etkinleştir", - "description": "Offer an SSH terminal for this host." + "description": "Bu sunucu için bir SSH terminali sunun." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Kullanıcı varsayılanlarını kullanın" }, "theme": { "label": "Tema" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Yanıp sönen imleç" }, "cursorStyle": { - "label": "Cursor style" + "label": "İmleç stili" }, "fontSize": { - "label": "Font size" + "label": "Yazı tipi boyutu" }, "fontFamily": { - "label": "Font" + "label": "Yazı Tipi" }, "scrollback": { - "label": "Scrollback" + "label": "Geriye kaydır" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Harf aralığı" }, "lineHeight": { - "label": "Line height" + "label": "Çizgi yüksekliği" }, "bellStyle": { - "label": "Bell" + "label": "Zil" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Minimum kontrast oranı" }, "backgroundImage": { - "label": "Background image" + "label": "Arka plan resmi" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Arka plan görüntüsünün saydamlığı" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Özel tema renkleri" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Sağ tıklama kelimeyi seçer." }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Seçenek Meta'dır" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Hızlı kaydırma tuşu" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Hızlı kaydırma hızı" }, "backspaceMode": { - "label": "Backspace" + "label": "Geri tuşu" }, "autoMosh": { - "label": "Auto mosh" + "label": "Otomatik mosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh komutu" }, "autoTmux": { - "label": "Auto tmux" + "label": "Otomatik tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "SSH başlığını kullanın." }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Sözdizimi vurgulama" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Sözdizimi vurgulama kategorileri" }, "linkClickBehavior": { - "label": "Link click" + "label": "Bağlantıya tıklama" }, "localEcho": { - "label": "Local echo" + "label": "Yerel yankı" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Şifre istemlerini doldurmayı teklif edin" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "sudo komut istemlerini doldurun" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Otomatik olarak yeniden bağlan" } }, "user": { "commandAutocomplete": { "label": "Komut Otomatik Tamamlama", - "description": "Show autocomplete while typing if you press tab" + "description": "Sekme tuşuna bastığınızda yazarken otomatik tamamlama özelliğini göster." }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Yerel Yankı", + "description": "Güvenli yerel tuş vuruşu tahmini kullanarak algılanan giriş gecikmesini azaltın." }, "linkClickBehavior": { "label": "Terminal Bağlantı Tıklama", "description": "Terminalde bağlantılara tıklandığında varsayılan davranış" }, "customThemes": { - "label": "Saved themes" + "label": "Kaydedilen temalar" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Yerel Terminal" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Canlı terminal oturumlarını kullanın.", + "description": "Oturum paylaşımı ve kayıt gibi diğer özelliklerin canlı terminal oturumlarınıza ulaşmasını sağlar." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Komut geçmişini oku", + "description": "Yapay zekâ asistanı gibi diğer özelliklerin komut geçmişinizi okumasına olanak tanır." } }, "hosts": { "tabTerminal": "Terminal", "addHost": "Ana Bilgisayar Ekle", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "Bu temayı uygulayın", "backgroundImageDesc": "Bir terminal arka plan resmi için isteğe bağlı URL", "backgroundImageLabel": "Arka Plan Resmi URL", "backgroundImageOpacityLabel": "Arka Plan Resmi Opaklığı", "backspaceMode": "Geri Silme Modu", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Kontrol-H (BS)", "backspaceModeLabel": "Backspace Modu", "backspaceModeNormal": "Normal (DEL)", "behaviorAndAdvanced": "Davranış ve Gelişmiş", "bellStyle": "Zil Stili", - "bellStyleBoth": "Both", + "bellStyleBoth": "İkisi birden", "bellStyleLabel": "Zil Stili", "bellStyleNone": "Yok", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "Ses", + "bellStyleVisual": "Görsel", "colorTheme": "Renk Teması", "cursorBlink": "İmleç Yanıp Sönme", "cursorBlinking": "İmleç Yanıp Sönmesi", "cursorBlinkingDesc": "Terminal imleci için yanıp sönme animasyonunu etkinleştir", "cursorStyle": "İmleç Stili", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBar": "Çubuk", + "cursorStyleBlock": "Engellemek", "cursorStyleLabel": "İmleç Stili", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "Altını çiz", "customThemeAnsiColors": "ANSI Renkleri", "customThemeBackground": "Arka Plan", "customThemeBlack": "Siyah", @@ -448,12 +448,12 @@ "customThemeSelection": "Seçim", "customThemeWhite": "Beyaz", "customThemeYellow": "Sarı", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "Bu temayı sil", "docsLink": "Dokümanları görüntüle", "enableAutoMosh": "Otomatik Mosh'u Etkinleştir", "enableAutoMoshDesc": "Varsa, SSH yerine Mosh'u tercih et", "enableAutoTmux": "Otomatik Tmux'u Etkinleştir", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "Kabuk uygulamanızı ve içinde çalışan her şeyi bağlantı kesintileri ve tarayıcı yeniden başlatmaları sırasında çalışır durumda tutmak için tmux içinde çalıştırın (tmux ana bilgisayarda kurulu olmalıdır).", "fastScrollModifier": "Hızlı Kaydırma Değiştiricisi", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "Hızlı Kaydırma Hassasiyeti", "fastScrollSensitivityLabel": "Hızlı Kaydırma Hassasiyeti", "fontFamily": "Yazı Tipi Ailesi", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Hazır gelen yazı tiplerinden birini seçin veya Özel'i seçip sisteminizde zaten yüklü olan bir yazı tipinin tam adını yazın (örneğin MesloLGS NF, Noto Sans Mono). Termix sizin için yazı tiplerini yükleyemez, önce işletim sisteminize yükleyin.", + "fontFamilyCustomOption": "Gelenek...", + "fontFamilyCustomPlaceholder": "Tam yazı tipi adı, örneğin MesloLGS NF", "fontFamilyLabel": "Yazı Tipi Ailesi", "fontSize": "Yazı Tipi Boyutu", "fontSizeLabel": "Yazı Tipi Boyutu", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "Doğrudan aç", "linkClickBehaviorLabel": "Bağlantı Tıklama Davranışı", "loadingHost": "Host yükleniyor...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "Otomatik", + "localEchoDesc": "Yavaş bağlantılarda bile yerel olarak güvenli yazdırılabilir tuş vuruşlarını tahmin edin. Parola istemleri ve kontrol girişleri asla tekrarlanmaz.", + "localEchoLabel": "Yerel Yankı", "localEchoOff": "Kapalı", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "Her zaman açık", + "macOptionIsMetaLabel": "Seçenek Tuşu Meta Verilerini Gönderiyor", + "macOptionIsMetaShortDesc": "macOS'ta Option/Alt tuşuyla özel karakterler (örneğin @ veya |) yazmayı devre dışı bırakın, bunun yerine Meta gönderin.", "moshCommand": "MOSH Komutu", "moshCommandLabel": "Mosh Komutu", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "Henüz kaydedilmiş tema yok.", "none": "Hiçbiri", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Terminal şifre istediğinde kaydedilmiş şifreyi girmeyi teklif edin. Bu sunucuda hiçbir zaman otomatik şifre doldurmayı devre dışı bırakın.", + "passwordPromptAutoFillLabel": "Şifre Otomatik Doldurma Teklifi", + "autoReconnectLabel": "Otomatik Yeniden Bağlantı", + "autoReconnectDesc": "Ağda bir aksaklık veya uyku modu gibi durumlarda SSH bağlantısı kesildiğinde otomatik olarak yeniden bağlanır. Geri kaydırma özelliğini korur.", "rightClickSelectsWord": "Sağ Tık Kelimeyi Seçer", "rightClickSelectsWordLabel": "Sağ Tık Kelime Seçer", "rightClickSelectsWordShortDesc": "Sağ tıklandığında imlecin altındaki kelimeyi seç", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "Küresel Tema Olarak Kaydet", + "saveGlobalThemeError": "Tema kaydedilemedi.", + "saveGlobalThemeNamePrompt": "Bu tema için bir ad girin.", + "saveGlobalThemeSuccess": "Tema kaydedildi", + "savedThemesLabel": "Kaydedilen Temalar", "scrollbackBufferLabel": "Kaydırma Arabelleği", "scrollbackMaxLines": "Geçmişte saklanan maksimum satır sayısı", "sudoPasswordAutoFill": "Sudo Parolası Otomatik Doldurma", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "Başarılı" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} atlandı (IP adresi bulunamadı)", + "proxmoxStatsUrlCopied": "Proxmox İstatistikleri URL'si panoya kopyalandı", "rdpUrlCopied": "RDP URL kopyalandı", "vncUrlCopied": "VNC URL kopyalandı", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "Adım CA", "guac": { "noCredential": "Kimlik bilgisi yok (aşağıda doğrudan kimlik bilgileri)", "authTypeDirect": "Doğrudan", @@ -556,18 +556,18 @@ "updateHostBtn": "Ana Makineyi Güncelle", "addHostBtn": "Ana Makine Ekle" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Kasa" }, "nav": { "history": "Geçmiş", - "localTerminal": "Local Terminal", + "localTerminal": "Yerel Terminal", "sshTools": "SSH Araçları", "terminal": "Terminal", - "macros": "Macros" + "macros": "Makrolar" }, "sshTools": { "broadcastInputPlaceholder": "Tuş vuruşlarını yayınlamak için buraya yazın...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "Seçilen metni otomatik olarak kopyala", "enableRightClickCopyPaste": "Sağ tık kopyala/yapıştırmayı etkinleştir", "fillPassword": "Parolayı doldur", "fillPasswordMissing": "Seçili {{count}} terminal için kayıtlı parola yok", @@ -583,123 +583,123 @@ "stopRecording": "Kaydı Durdur" }, "keybindings": { - "copy": "Copy selection", + "copy": "Seçimi kopyala", "paste": "Yapıştır", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Ctrl+harf sinyali gönder", + "sendText": "Mesaj gönder", + "controlCodeLabel": "Mektup", + "textLabel": "Gönderilecek metin", + "appendEnterLabel": "Gönderdikten sonra Enter tuşuna basın.", + "clipboardPermissionNote": "Bazı tarayıcılarda ilk kullanımda panoya kopyalama izni isteyebilir.", + "textRequired": "Göndermek istediğiniz metni girin.", + "controlCodeRequired": "Kontrol kodu için tek bir harf girin.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Seçimi kopyala (Ctrl+C, yalnızca metin seçiliyken)", + "copyCtrlShiftC": "Seçimi kopyala (Ctrl+Shift+C)", + "copyCmdC": "Seçimi kopyala (Cmd+C)", + "pasteCtrlShiftV": "Panodan yapıştır (Ctrl+Shift+V)", + "ctrlW": "Ctrl+W komutunu göndererek shell'e bağlanın (tarayıcı sekmesinin kapatılması engellendi).", + "ctrlT": "Ctrl+T komutunu göndererek shell komutuna komut verin (tarayıcı sekmesinin açılması engellendi).", + "ctrlN": "Ctrl+N tuşuna basarak shell'e geçin (tarayıcı penceresinin açılması engellendi).", + "ctrlQ": "Ctrl+Q tuşuna basarak kabuk moduna geçin (tarayıcıdan çıkmanız engellendi)." } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "Makrolar", + "description": "Önceden kaydedilmiş bir komut dizisini terminalde çalıştırın ve sunucunun geri gönderdiği yanıtlara göre hareket edin.", "target": "Hedef", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "Açık terminal yok.", + "empty": "Henüz makro yok", + "emptyHint": "Giriş yapma, bir hizmeti yeniden başlatma veya komut istemlerine yanıt verme gibi terminal işlemlerini otomatikleştirmek için bir makro oluşturun.", + "create": "Yeni makro", + "back": "Makrolara geri dön", "name": "Ad", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "Web sunucusunu yeniden başlatın.", + "nameRequired": "Kaydetmeden önce makroya bir ad verin.", "descriptionLabel": "Açıklama", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "Bu makronun ne yaptığı (isteğe bağlı)", "unsaved": "Kaydedilmemiş değişiklikler", "save": "Kaydet", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Makro kaydedildi.", + "saveFailed": "Makro kaydedilemedi.", "delete": "Sil", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Bu makroyu silmek ister misiniz?", + "deleteBody": "\"{{name}}\" kalıcı olarak silinecektir. Bu işlem geri alınamaz.", + "deleted": "Makro silindi", "cancel": "İptal", "run": "Çalıştır", "stop": "Durdurma", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Koşma...", + "completed": "Makro tamamlandı", + "failed": "Makro başarısız oldu", + "loadFailed": "Makrolar yüklenemedi.", + "needTerminal": "Öncelikle bir terminal açın ve bağlayın.", + "noSteps": "Bu makronun henüz hiçbir adımı yok. Aşağıya bir adım ekleyin.", + "addStep": "Adım ekle", + "stepNumber": "Adım {{number}}", + "removeStep": "Adımı kaldır", + "confirmRunTitle": "Bu makroyu çalıştırayım mı?", + "confirmRunBody": "\"{{name}}\" {{host}} adresine komutlar gönderecektir.", + "confirmRunAction": "Makroyu çalıştır", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Komut gönder", + "help": "Terminale, sanki siz yazmışsınız gibi metin yazar." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Çıktıyı bekleyin", + "help": "Sunucu, belirttiğiniz metni (örneğin parola istemi gibi) yazdırana kadar bekler." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Duraklat", + "help": "Bir sonraki adıma geçmeden önce belirli bir süre bekler." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Çıktı içeriyorsa", + "help": "Sunucunun şu ana kadar yazdırdığı her şeyi kontrol eder, ardından iki daldan birini çalıştırır." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Tekrarlamak", + "help": "İçindeki adımları belirtilen sayıda tekrarlar." } }, "send": { - "text": "Command or text", + "text": "Komut veya metin", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Gönderdikten sonra Enter tuşuna basın.", + "pressEnterHelp": "Göndermeden metin yazmak için bunu kapatın." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Çıktıyı oluşturana kadar bekleyin.", "patternPlaceholder": "parola:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Vazgeçtikten sonra", + "onTimeout": "Eğer hiç ortaya çıkmazsa", + "stop": "Makroyu durdur", + "continue": "Yine de devam edin." }, "delay": { - "duration": "Wait for" + "duration": "Bekleyin" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Çıktı şunları içeriyorsa:", + "patternPlaceholder": "Aktif: aktif (koşmak)", + "then": "O halde şunu yapın", + "else": "Aksi takdirde şunu yapın", + "emptyBranch": "Hiçbir adım yok" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Sayısı", + "times": "kez" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Düzenli ifadeyle eşleştirin", + "useRegexHelp": "Metnin aynen yazıldığı gibi kalması için bunu atlayın.", + "invalidRegex": "Geçerli bir normal ifade değil, düz metin olarak eşleştirilecektir." }, "seconds": "saniye", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Uzak sunucu gereklidir. Bu bağlantı türünü kullanmak için Ayarlar'dan bir uzak sunucu bağlayın." } } diff --git a/plugins/ssh-terminal/locales/translated/uk_UA.json b/plugins/ssh-terminal/locales/translated/uk_UA.json index 33f4814a6..62988a6ac 100644 --- a/plugins/ssh-terminal/locales/translated/uk_UA.json +++ b/plugins/ssh-terminal/locales/translated/uk_UA.json @@ -1,705 +1,705 @@ { "mobileKeyboard": { - "addQuickKey": "Add", - "arrowDown": "Arrow Down", - "arrowLeft": "Arrow Left", - "arrowRight": "Arrow Right", - "arrowUp": "Arrow Up", + "addQuickKey": "Додати", + "arrowDown": "Стрілка вниз", + "arrowLeft": "Стрілка ліворуч", + "arrowRight": "Стрілка праворуч", + "arrowUp": "Стрілка вгору", "backTab": "⇥", "ctrl": "Ctrl", - "delete": "Del", - "done": "Done", - "editQuickKeys": "Edit quick keys", - "end": "End", + "delete": "Дел", + "done": "Готово", + "editQuickKeys": "Редагувати швидкі клавіші", + "end": "Кінець", "esc": "Esc", - "home": "Home", - "pageDown": "PgDn", + "home": "Дім", + "pageDown": "ПгДн", "pageUp": "PgUp", - "paste": "Paste", - "quickKeyPlaceholder": "e.g. sudo ", - "quickKeysDesc": "Tap × to remove. Supports up to 8 characters.", - "quickKeysTitle": "Quick Keys", - "removeQuickKey": "Remove", - "resetDefaults": "Reset to defaults", - "shift": "Shift", - "tab": "Tab" + "paste": "Вставити", + "quickKeyPlaceholder": "наприклад, sudo ", + "quickKeysDesc": "Натисніть ×, щоб видалити. Підтримує до 8 символів.", + "quickKeysTitle": "Швидкі клавіші", + "removeQuickKey": "Видалити", + "resetDefaults": "Скинути до налаштувань за замовчуванням", + "shift": "Зсув", + "tab": "Вкладка" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", - "closeTab": "Close", - "connecting": "Connecting...", - "connectionLost": "Connection lost", - "connectionRejected": "Connection rejected by server. Please check your authentication and network configuration.", - "connectionTimeout": "Connection timeout", - "enableAutoTmuxAction": "Enable Auto-Tmux", - "hostKeyRejected": "SSH host key verification rejected. Connection cancelled.", - "linkDialogCopy": "Copy", - "linkDialogOpen": "Open", - "linkDialogTitle": "Open Link", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "noHostSelected": "No host selected", - "passwordPromptFillTitle": "Fill the saved password into this prompt?", - "reconnect": "Reconnect", - "reconnected": "Reconnected successfully", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionTakenOver": "Session was opened in another tab. Reconnecting...", - "tmuxAttached": "Attached clients", - "tmuxAttachedCount": "{{count}} attached", - "tmuxCopyHint": "Adjust selection and press Enter to copy to clipboard", - "tmuxCreateNew": "Start new session", - "tmuxDetached": "Detached from tmux session", - "tmuxLastActivity": "Last activity", - "tmuxSessionAttached": "tmux session attached: {{name}}", - "tmuxSessionCreated": "tmux session created: {{name}}", - "tmuxSessionPickerDesc": "Existing tmux sessions found on this host. Select one to reattach or create a new session.", - "tmuxSessionPickerTitle": "tmux Sessions", - "tmuxTimeDays": "{{count}}d ago", - "tmuxTimeHours": "{{count}}h ago", - "tmuxTimeJustNow": "just now", - "tmuxTimeMinutes": "{{count}}m ago", - "tmuxUnavailable": "tmux is not installed on the remote host, falling back to standard shell", - "tmuxWindowCount": "{{count}} window", - "tmuxWindows": "Windows", - "unknownError": "Unknown error occurred", - "websocketAbnormalClose": "Connection closed unexpectedly. This may be due to a reverse proxy or SSL configuration issue. Please check server logs.", - "websocketError": "WebSocket connection error", - "clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", - "clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost.", - "connected": "Connected", - "totpCodeLabel": "Verification Code", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "autoTmuxEnableFailed": "Не вдалося ввімкнути Auto-Tmux", + "autoTmuxEnabled": "Автоматичне Tmux-змінення увімкнено для {{host}}. Застосовується з наступного підключення.", + "clipboardHttpWarning": "Не вдалося прочитати буфер обміну. Деякі браузери обмежують доступ до буфера обміну поза HTTPS — спробуйте Ctrl+V або обслуговуйте Termix через HTTPS.", + "closeTab": "Закрити", + "connecting": "Підключення...", + "connectionLost": "З’єднання втрачено", + "connectionRejected": "З’єднання відхилено сервером. Перевірте автентифікацію та конфігурацію мережі.", + "connectionTimeout": "Тайм-аут з'єднання", + "enableAutoTmuxAction": "Увімкнути автоматичне Tmux", + "hostKeyRejected": "Перевірку ключа хоста SSH відхилено. З'єднання скасовано.", + "linkDialogCopy": "Копіювати", + "linkDialogOpen": "ВІДЧИНЕНО", + "linkDialogTitle": "Відкрити посилання", + "maxReconnectAttemptsReached": "Досягнуто максимальної кількості спроб повторного підключення", + "noHostSelected": "Хост не вибрано", + "passwordPromptFillTitle": "Введіть збережений пароль у цей запит?", + "reconnect": "Знову підключитися", + "reconnected": "Успішно відновлено підключення", + "reconnecting": "Повторне підключення... ({{attempt}}/{{max}})", + "autoReconnecting": "З’єднання втрачено, під’єднання повторне...", + "searchCaseSensitive": "Зіставте регістр", + "searchClose": "Закрити (Escape)", + "searchNext": "Наступний матч (Enter)", + "searchNoResults": "Немає результатів", + "searchPlaceholder": "Знайти", + "searchPrevious": "Попередній збіг (Shift+Enter)", + "searchRegex": "Використовуйте регулярний вираз", + "searchResultCount": "{{index}} з {{count}}", + "searchWholeWord": "Зіставлення цілого слова", + "sessionExpiredNotice": "Ваш попередній сеанс на {{host}} завершився через {{minutes}} хвилин після відключення; оболонка та все, що в ній працює, зникли. Увімкніть Auto-Tmux на цьому хості, щоб підтримувати сеанси активними.", + "sessionExpiredNoticeNoMinutes": "Ваш попередній сеанс на {{host}} закінчився під час відключення; оболонка та все, що в ній працює, зникли. Увімкніть Auto-Tmux на цьому хості, щоб підтримувати сеанси активними.", + "sessionTakenOver": "Сеанс відкрито в іншій вкладці. Повторне підключення...", + "tmuxAttached": "Підключені клієнти", + "tmuxAttachedCount": "{{count}} додається", + "tmuxCopyHint": "Відрегулюйте виділення та натисніть Enter, щоб скопіювати його в буфер обміну", + "tmuxCreateNew": "Почати новий сеанс", + "tmuxDetached": "Від’єднано від сеансу tmux", + "tmuxLastActivity": "Остання активність", + "tmuxSessionAttached": "додано сеанс tmux: {{name}}", + "tmuxSessionCreated": "Створено сеанс tmux: {{name}}", + "tmuxSessionPickerDesc": "На цьому хості знайдено існуючі сеанси tmux. Виберіть один для повторного підключення або створення нового сеансу.", + "tmuxSessionPickerTitle": "Сесії tmux", + "tmuxTimeDays": "{{count}}днів тому", + "tmuxTimeHours": "{{count}}год тому", + "tmuxTimeJustNow": "щойно", + "tmuxTimeMinutes": "{{count}}хв тому", + "tmuxUnavailable": "tmux не встановлено на віддаленому хості, повертається до стандартної оболонки", + "tmuxWindowCount": "вікно {{count}}", + "tmuxWindows": "Вікна", + "unknownError": "Сталася невідома помилка", + "websocketAbnormalClose": "З’єднання несподівано завершилося. Можливо, це пов’язано зі зворотним проксі-сервером або проблемою конфігурації SSL. Перевірте журнали сервера.", + "websocketError": "Помилка підключення WebSocket", + "clipboardReadFailed": "Не вдалося прочитати з буфера обміну. Переконайтеся, що надано дозволи на доступ до буфера обміну.", + "clipboardWriteFailed": "Не вдалося скопіювати в буфер обміну. Переконайтеся, що сторінка обслуговується через HTTPS або localhost.", + "connected": "Підключено", + "totpCodeLabel": "Код підтвердження", + "duplicateTab": "Дублікат вкладки", + "imageChooseFile": "Виберіть файл зображення", + "imageUploaded": "Завантажене зображення: {{path}}", + "imageClipboardUnavailable": "Цей браузер не може читати зображення з буфера обміну", + "imageClipboardEmpty": "У буфері обміну не знайдено зображення", + "localShell": "Локальна термінальна оболонка", + "autocompleteHintComplete": "Tab або Enter для завершення", + "autocompleteHintNavigate": "↑↓ для навігації", + "autocompleteHintClose": "Esc для закриття" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", - "retry": "Retry", - "showToolbar": "Expand toolbar", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", - "uploadingImage": "Uploading..." + "detachTmux": "Від’єднати tmux", + "detachTmuxDescription": "Від’єднати сеанс tmux", + "dismissError": "Помилка відхилення зображення", + "hideToolbar": "Приховати панель інструментів", + "image": "Дії із зображеннями (лише зображення)", + "imageActionFailed": "Не вдалося виконати дію із зображенням", + "layout": "Режим відображення панелі інструментів", + "layoutExpanded": "Розширено показниками", + "layoutIcon": "Тільки значок", + "layoutLabeled": "Піктограми та мітки", + "moveToolbar": "Переміщення панелі інструментів", + "moveToolbarHint": "Перетягніть, щоб змінити положення панелі інструментів", + "paste": "Вставити зображення", + "pasteImage": "Вставити зображення з буфера обміну (лише зображення)", + "retry": "Повторити спробу", + "showToolbar": "Розгорнути панель інструментів", + "upload": "Завантажити зображення", + "uploadImage": "Завантажте зображення на хостинг", + "uploadingImage": "Завантаження..." }, "history": { - "noTerminalSelected": "No terminal selected", - "noTerminalSelectedHint": "Open an SSH terminal tab to view its command history", - "searchPlaceholder": "Search history...", - "clearAll": "Clear All", - "noHistoryEntries": "No history entries", - "trackingDisabled": "History tracking is disabled", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "noTerminalSelected": "Термінал не вибрано", + "noTerminalSelectedHint": "Відкрийте вкладку терміналу SSH, щоб переглянути історію його команд", + "searchPlaceholder": "Історія пошуку...", + "clearAll": "Очистити все", + "noHistoryEntries": "Немає записів в історії", + "trackingDisabled": "Відстеження історії вимкнено", + "trackingDisabledHint": "Увімкніть історію команд на вкладці SSH-терміналу цього хоста.", + "commandCount_one": "команда {{count}}", + "commandCount_other": "команди {{count}}" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", - "resetDefaults": "Reset to defaults", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "enabled": "Увімкнути сенсорне введення", + "enabledDesc": "Дозволити прокручування одним пальцем у терміналах", + "momentumEnabled": "Увімкнути імпульс", + "momentumEnabledDesc": "Продовжуйте прокручувати ненадовго після проведення пальцем", + "advanced": "Розширений", + "resetDefaults": "Скинути до налаштувань за замовчуванням", + "dragThreshold": "Поріг перетягування", + "maxWheelDelta": "Максимальна дельта коліс", + "momentumSampleWindow": "Вікно вибірки імпульсу", + "releaseGracePeriod": "Пільговий період випуску", + "minimumVelocity": "Мінімальна швидкість", + "maximumVelocity": "Максимальна швидкість", + "maximumDuration": "Максимальна тривалість", + "maximumTravel": "Максимальний хід", + "decayTime": "Час розпаду", + "pixelsPerTick": "Пікселів на такт", + "maximumFrameInterval": "Максимальний інтервал кадру", + "maximumTicksPerFrame": "Максимальна кількість тиків на кадр" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", - "test": "Test", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "instanceId": "Ідентифікатор екземпляра термінального сеансу", + "instanceIdDesc": "Ідентифікатор екземпляра однієї з ваших підключених вкладок терміналу, що використовується для перевірки видимості.", + "selectedModeUnavailable": "Недоступно", + "test": "Тест", + "testing": "Тестування...", + "testFailed": "Не вдалося перевірити сховище зображень", + "testConnected": "Термінальний сеанс підключено.", + "testNotConnected": "Немає підключеного термінального сеансу з цим ідентифікатором екземпляра.", + "testSelectedMode": "Для завантаження буде використано: {{mode}}", + "testLocalVisible": "Локальний каталог видно з підключеного хоста.", + "testLocalNotVisible": "Локальний каталог НЕ видно з підключеного хоста." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", - "sessions": "Sessions", - "newHosts": "New Hosts" + "touch": "Сенсорний ввід", + "images": "Зберігання зображень", + "sessions": "Сесії", + "newHosts": "Нові господарі" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Збереження термінального сеансу", + "description": "Як довго відключений термінал залишається активним на сервері, перш ніж його буде закрито. Мін. 1, макс. 1440 хвилин. Для сеансів, які мають тривати довше цього часу, увімкніть Auto-Tmux на хості." }, "commandHistoryEnabled": { - "label": "Command History", - "description": "Allow command history recording. When disabled, history is not saved regardless of per-host settings." + "label": "Історія команд", + "description": "Дозволити запис історії команд. Якщо вимкнено, історія не зберігається незалежно від налаштувань для кожного хоста." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Історія команд для нових хостів", + "description": "Чи нові хости запускаються з увімкненою історією команд." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", - "auto": "Auto", - "local": "Local", - "remoteSftp": "Remote (SFTP)" + "label": "Режим зберігання", + "description": "Куди записуються вставлені та завантажені образи терміналів. Виправлено автоматичний вибір за підключенням, локальним та віддаленим (SFTP).", + "auto": "Авто", + "local": "Місцевий", + "remoteSftp": "Віддалений (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Локальний каталог", + "description": "Абсолютний шлях на серверній частині Termix, де локальний режим записує зображення. Ніколи не відображається після збереження. Порожній шлях використовує TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Шлях хоста", + "description": "Вигляд локального каталогу, який отримують агенти терміналів, з боку хоста." }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "TTL (мс)", + "description": "Як довго зберігається завантажене зображення, у мілісекундах. Порожнє значення використовує TERMIX_IMAGE_TTL_MS або одну годину." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Максимальна кількість зображень", + "description": "Більшість зображень зберігається одночасно. Порожнє значення використовує TERMIX_MAX_IMAGE_COUNT або 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Максимальна кількість байтів пам'яті", + "description": "Найбільше байтів зображень зберігається одночасно. Порожнє значення використовує TERMIX_MAX_IMAGE_STORAGE_BYTES або 5 ГіБ." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Зберегти сеанси після відключення", + "description": "Зберігайте відключений термінал активним на сервері протягом зазначеного вище часу, щоб повторне відкриття його вкладки продовжило роботу з того місця, де вона була зупинена." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Запускати термінали нових хостів всередині tmux, щоб сесії пережили відключення (потрібен tmux на хості)" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Тема для нових хостів", + "description": "Тема терміналу, з якої починається новий хост." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Шрифт для нових хостів", + "description": "Шрифт терміналу, з якого починається новий хост." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Розмір шрифту для нових хостів", + "description": "Розмір шрифту терміналу, з якого починається новий хост, у пікселях." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Стиль курсора для нових хостів" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Миготливий курсор для нових хостів" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Увімкнути панель інструментів термінала", + "description": "Показати панель швидкого доступу, прикріплену до активного терміналу, для інструментів цього хоста та статистики в реальному часі" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Положення панелі інструментів", + "description": "Там, де розташована панель інструментів у терміналі. Ви все ще можете перетягнути її звідти.", + "bottom": "Внизу по центру", + "bottomLeft": "Внизу ліворуч", + "bottomRight": "Внизу праворуч", + "top": "Верхній центр", + "topLeft": "Угорі ліворуч", + "topRight": "Угорі праворуч" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Початковий стан панелі інструментів", + "description": "Чи відкривається панель інструментів розгорнутим чи згорнутим під час підключення терміналу", + "expanded": "Розгорнуто", + "collapsed": "Згорнуто" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Режим відображення панелі інструментів", + "description": "Як відображаються кнопки панелі інструментів. «Останній використаний» зберігає вибрані вами кнопки на панелі інструментів.", + "remember": "Останнє використання", + "icon": "Тільки значок", + "labeled": "Піктограми та мітки", + "expanded": "Розширено статистикою" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Показати статистику в реальному часі", + "description": "Показувати статистику ведучого в реальному часі над кнопками панелі інструментів у розгорнутому режимі" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Згасання під час очікування", + "description": "Зменшення масштабу панелі інструментів, доки не наведете на неї курсор" }, "enableCommandHistory": { - "label": "Command History", - "description": "Record commands run in this terminal for history and autocomplete" + "label": "Історія команд", + "description": "Запис команд, що виконуються в цьому терміналі, для історії та автозаповнення" }, "enableTerminal": { - "label": "Enable Terminal", - "description": "Offer an SSH terminal for this host." + "label": "Увімкнути термінал", + "description": "Запропонуйте SSH-термінал для цього хоста." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Використовувати налаштування користувача за замовчуванням" }, "theme": { - "label": "Theme" + "label": "Тема" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Миготливий курсор" }, "cursorStyle": { - "label": "Cursor style" + "label": "Стиль курсора" }, "fontSize": { - "label": "Font size" + "label": "Розмір шрифту" }, "fontFamily": { - "label": "Font" + "label": "Шрифт" }, "scrollback": { - "label": "Scrollback" + "label": "Прокрутка назад" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Інтервал між літерами" }, "lineHeight": { - "label": "Line height" + "label": "Висота рядка" }, "bellStyle": { - "label": "Bell" + "label": "Дзвін" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Мінімальний коефіцієнт контрастності" }, "backgroundImage": { - "label": "Background image" + "label": "Фонове зображення" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Непрозорість фонового зображення" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Кольори користувацьких тем" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Клацніть правою кнопкою миші, щоб вибрати слово" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Варіант – це Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Клавіша швидкого прокручування" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Швидка швидкість прокручування" }, "backspaceMode": { - "label": "Backspace" + "label": "Назад" }, "autoMosh": { - "label": "Auto mosh" + "label": "Авто мош" }, "moshCommand": { - "label": "Mosh command" + "label": "Команда Мош" }, "autoTmux": { - "label": "Auto tmux" + "label": "Автоматичний tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Використовуйте заголовок SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Підсвічування синтаксису" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Категорії підсвічування синтаксису" }, "linkClickBehavior": { - "label": "Link click" + "label": "Клік по посиланню" }, "localEcho": { - "label": "Local echo" + "label": "Локальне відлуння" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Пропонувати заповнити запити на введення пароля" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Заповніть запити sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Автоматичне повторне підключення" } }, "user": { "commandAutocomplete": { - "label": "Command Autocomplete", - "description": "Show autocomplete while typing if you press tab" + "label": "Автозаповнення команд", + "description": "Показувати автозаповнення під час введення тексту, якщо натиснути клавішу Tab" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Локальне відлуння", + "description": "Зменште сприйняту затримку введення за допомогою безпечного локального передбачення натискання клавіш" }, "linkClickBehavior": { - "label": "Terminal Link Click", - "description": "Default behavior when clicking links in the terminal" + "label": "Натисніть посилання терміналу", + "description": "Поведінка за замовчуванням під час натискання посилань у терміналі" }, "customThemes": { - "label": "Saved themes" + "label": "Збережені теми" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Місцевий термінал" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Використання термінальних сесій у реальному часі", + "description": "Дозволяє іншим функціям, таким як спільний доступ до сеансів та запис, отримувати доступ до ваших термінальних сеансів у реальному часі." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Читати історію команд", + "description": "Дозволяє іншим функціям, таким як помічник зі штучним інтелектом, зчитувати історію ваших команд." } }, "hosts": { - "tabTerminal": "Terminal", - "addHost": "Add Host", - "applyGlobalThemeTooltip": "Apply this theme", - "backgroundImageDesc": "Optional URL for a terminal background image", - "backgroundImageLabel": "Background Image URL", - "backgroundImageOpacityLabel": "Background Image Opacity", - "backspaceMode": "Backspace Mode", - "backspaceModeControlH": "Control-H (BS)", - "backspaceModeLabel": "Backspace Mode", - "backspaceModeNormal": "Normal (DEL)", - "behaviorAndAdvanced": "Behavior & Advanced", - "bellStyle": "Bell Style", - "bellStyleBoth": "Both", - "bellStyleLabel": "Bell Style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "colorTheme": "Color Theme", - "cursorBlink": "Cursor Blink", - "cursorBlinking": "Cursor Blinking", - "cursorBlinkingDesc": "Enable blinking animation for the terminal cursor", - "cursorStyle": "Cursor Style", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", - "cursorStyleLabel": "Cursor Style", - "cursorStyleUnderline": "Underline", - "customThemeAnsiColors": "ANSI Colors", - "customThemeBackground": "Background", - "customThemeBlack": "Black", - "customThemeBlue": "Blue", - "customThemeBrightBlack": "Bright Black", - "customThemeBrightBlue": "Bright Blue", - "customThemeBrightCyan": "Bright Cyan", - "customThemeBrightGreen": "Bright Green", - "customThemeBrightMagenta": "Bright Magenta", - "customThemeBrightRed": "Bright Red", - "customThemeBrightWhite": "Bright White", - "customThemeBrightYellow": "Bright Yellow", - "customThemeColors": "Custom Colors", - "customThemeCursor": "Cursor", - "customThemeCursorAccent": "Cursor Accent", - "customThemeCyan": "Cyan", - "customThemeForeground": "Foreground", - "customThemeGreen": "Green", - "customThemeMagenta": "Magenta", - "customThemeRed": "Red", - "customThemeResetTooltip": "Reset to defaults", - "customThemeSelection": "Selection", - "customThemeWhite": "White", - "customThemeYellow": "Yellow", - "deleteGlobalThemeTooltip": "Delete this theme", - "docsLink": "View docs", - "enableAutoMosh": "Enable Auto-Mosh", - "enableAutoMoshDesc": "Prefer Mosh over SSH if available", - "enableAutoTmux": "Enable Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", - "fastScrollModifier": "Fast Scroll Modifier", - "fastScrollModifierAlt": "Alt", + "tabTerminal": "Термінал", + "addHost": "Додати хоста", + "applyGlobalThemeTooltip": "Застосувати цю тему", + "backgroundImageDesc": "Додаткова URL-адреса для фонового зображення терміналу", + "backgroundImageLabel": "URL-адреса фонового зображення", + "backgroundImageOpacityLabel": "Непрозорість фонового зображення", + "backspaceMode": "Режим повернення", + "backspaceModeControlH": "Контроль-H (BS)", + "backspaceModeLabel": "Режим повернення", + "backspaceModeNormal": "Звичайний (DEL)", + "behaviorAndAdvanced": "Поведінка та просунуті навички", + "bellStyle": "Стиль дзвона", + "bellStyleBoth": "Обидва", + "bellStyleLabel": "Стиль дзвона", + "bellStyleNone": "Жоден", + "bellStyleSound": "Звук", + "bellStyleVisual": "Візуальний", + "colorTheme": "Колірна тема", + "cursorBlink": "Блимання курсора", + "cursorBlinking": "Миготіння курсора", + "cursorBlinkingDesc": "Увімкнути миготливу анімацію для курсора терміналу", + "cursorStyle": "Стиль курсора", + "cursorStyleBar": "Бар", + "cursorStyleBlock": "Блок", + "cursorStyleLabel": "Стиль курсора", + "cursorStyleUnderline": "Підкреслення", + "customThemeAnsiColors": "Кольори ANSI", + "customThemeBackground": "Передісторія", + "customThemeBlack": "Чорний", + "customThemeBlue": "Синій", + "customThemeBrightBlack": "Яскраво-чорний", + "customThemeBrightBlue": "Яскраво-синій", + "customThemeBrightCyan": "Яскравий блакитний", + "customThemeBrightGreen": "Яскраво-зелений", + "customThemeBrightMagenta": "Яскраво-пурпуровий", + "customThemeBrightRed": "Яскраво-червоний", + "customThemeBrightWhite": "Яскраво-білий", + "customThemeBrightYellow": "Яскраво-жовтий", + "customThemeColors": "Користувацькі кольори", + "customThemeCursor": "Курсор", + "customThemeCursorAccent": "Акцент курсора", + "customThemeCyan": "Блакитний", + "customThemeForeground": "Передній план", + "customThemeGreen": "Зелений", + "customThemeMagenta": "Магента", + "customThemeRed": "Червоний", + "customThemeResetTooltip": "Скинути до налаштувань за замовчуванням", + "customThemeSelection": "Вибір", + "customThemeWhite": "Білий", + "customThemeYellow": "Жовтий", + "deleteGlobalThemeTooltip": "Видалити цю тему", + "docsLink": "Переглянути документи", + "enableAutoMosh": "Увімкнути Auto-Mosh", + "enableAutoMoshDesc": "Надавати перевагу Mosh над SSH, якщо доступно", + "enableAutoTmux": "Увімкнути автоматичне Tmux", + "enableAutoTmuxDesc": "Зберігайте вашу оболонку та все, що в ній працює, активними після відключень та перезапусків браузера, запускаючи її всередині tmux (tmux має бути встановлений на хості)", + "fastScrollModifier": "Модифікатор швидкої прокрутки", + "fastScrollModifierAlt": "Альтернативний", "fastScrollModifierCtrl": "Ctrl", - "fastScrollModifierLabel": "Fast Scroll Modifier", - "fastScrollModifierShift": "Shift", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityLabel": "Fast Scroll Sensitivity", - "fontFamily": "Font Family", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", - "fontFamilyLabel": "Font Family", - "fontSize": "Font Size", - "fontSizeLabel": "Font Size", - "hostNotFound": "Host not found", - "letterSpacing": "Letter Spacing", - "letterSpacingPx": "Letter Spacing (px)", - "lineHeight": "Line Height", - "lineHeightLabel": "Line Height", - "linkClickBehaviorConfirm": "Show popup to open or copy", - "linkClickBehaviorDesc": "Controls what happens when you click a link in the terminal. Use 'Default' to follow the app-level setting.", - "linkClickBehaviorDirect": "Open directly", - "linkClickBehaviorLabel": "Link Click Behavior", - "loadingHost": "Loading host...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", - "localEchoOff": "Off", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", - "moshCommand": "MOSH Command", - "moshCommandLabel": "Mosh Command", - "noSavedThemes": "No saved themes yet", - "none": "None", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordLabel": "Right-click Selects Word", - "rightClickSelectsWordShortDesc": "Select the word under cursor on right-click", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", - "scrollbackBufferLabel": "Scrollback Buffer", - "scrollbackMaxLines": "Maximum number of lines kept in history", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.", - "sudoPasswordAutoFillLabel": "Sudo Password Auto-fill", - "syntaxCategoryIpAddresses": "IP Addresses", + "fastScrollModifierLabel": "Модифікатор швидкої прокрутки", + "fastScrollModifierShift": "Зсув", + "fastScrollSensitivity": "Чутливість швидкого прокручування", + "fastScrollSensitivityLabel": "Чутливість швидкого прокручування", + "fontFamily": "Сімейство шрифтів", + "fontFamilyCustomHint": "Виберіть шрифт зі списку або виберіть «Налаштування» та введіть точну назву шрифту, який уже встановлено у вашій системі (наприклад, MesloLGS NF, Noto Sans Mono). Termix не може встановити шрифти за вас, спочатку встановіть його у вашій ОС.", + "fontFamilyCustomOption": "Користувацькі...", + "fontFamilyCustomPlaceholder": "Точна назва шрифту, наприклад, MesloLGS NF", + "fontFamilyLabel": "Сімейство шрифтів", + "fontSize": "Розмір шрифту", + "fontSizeLabel": "Розмір шрифту", + "hostNotFound": "Хост не знайдено", + "letterSpacing": "Міжлітерний інтервал", + "letterSpacingPx": "Міжлітерний інтервал (пікселі)", + "lineHeight": "Висота рядка", + "lineHeightLabel": "Висота рядка", + "linkClickBehaviorConfirm": "Показати спливаюче вікно для відкриття або копіювання", + "linkClickBehaviorDesc": "Керує тим, що відбувається, коли ви натискаєте посилання в терміналі. Використовуйте «За замовчуванням», щоб дотримуватися налаштувань рівня програми.", + "linkClickBehaviorDirect": "Відкрити безпосередньо", + "linkClickBehaviorLabel": "Поведінка кліків посилань", + "loadingHost": "Завантаження хоста...", + "localEchoAuto": "Автоматичний", + "localEchoDesc": "Передбачати безпечні для друку натискання клавіш локально на повільних з'єднаннях. Запити на введення пароля та введені елементи керування ніколи не відображаються.", + "localEchoLabel": "Локальне відлуння", + "localEchoOff": "Вимкнено", + "localEchoOn": "Завжди увімкнено", + "macOptionIsMetaLabel": "Клавіша Option надсилає метадані", + "macOptionIsMetaShortDesc": "Вимкнути введення спеціальних символів (наприклад, @ або |) за допомогою клавіші Option/Alt у macOS замість надсилання Meta", + "moshCommand": "Команда MOSH", + "moshCommandLabel": "Команда Моша", + "noSavedThemes": "Ще немає збережених тем", + "none": "Жоден", + "passwordPromptAutoFillDesc": "Пропонувати ввести збережений пароль, коли термінал запитує його. Вимкніть, щоб ніколи не вводити пароль автоматично на цьому хості.", + "passwordPromptAutoFillLabel": "Автоматичне заповнення пароля пропозиції", + "autoReconnectLabel": "Автоматичне повторне підключення", + "autoReconnectDesc": "Самостійно перепідключається, коли SSH-з'єднання обривається, наприклад, після збою мережі або сну. Зберігає прокрутку назад.", + "rightClickSelectsWord": "Вибір слова клацанням правою кнопкою миші", + "rightClickSelectsWordLabel": "Клацання правою кнопкою миші Вибір слова", + "rightClickSelectsWordShortDesc": "Вибір слова під курсором при клацанні правою кнопкою миші", + "saveAsGlobalTheme": "Зберегти як глобальну тему", + "saveGlobalThemeError": "Не вдалося зберегти тему", + "saveGlobalThemeNamePrompt": "Введіть назву для цієї теми", + "saveGlobalThemeSuccess": "Тему збережено", + "savedThemesLabel": "Збережені теми", + "scrollbackBufferLabel": "Буфер прокручування", + "scrollbackMaxLines": "Максимальна кількість рядків, що зберігаються в історії", + "sudoPasswordAutoFill": "Автозаповнення пароля Sudo", + "sudoPasswordAutoFillDesc": "Зберігайте пароль sudo, щоб метрики хоста, запити терміналу та інші могли автоматично запускати привілейовані команди.", + "sudoPasswordAutoFillLabel": "Автозаповнення пароля Sudo", + "syntaxCategoryIpAddresses": "IP-адреси", "syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080", - "syntaxCategoryLogLevels": "Log Levels", - "syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal", - "syntaxCategoryNumbers": "Labeled Numbers", - "syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404", - "syntaxCategoryPaths": "File Paths", - "syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt", - "syntaxCategoryTimestamps": "Timestamps", - "syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15", - "syntaxCategoryUrls": "URLs", + "syntaxCategoryLogLevels": "Рівні журналів", + "syntaxCategoryLogLevelsDesc": "помилка, попередження, інформація, налагодження, фатальний", + "syntaxCategoryNumbers": "Позначені числа", + "syntaxCategoryNumbersDesc": "порт 8080, вихід 1, статус 404", + "syntaxCategoryPaths": "Шляхи до файлів", + "syntaxCategoryPathsDesc": "/usr/share/doc, ~/файл.txt", + "syntaxCategoryTimestamps": "Позначки часу", + "syntaxCategoryTimestampsDesc": "[12:34:56], 15 січня 2024 р.", + "syntaxCategoryUrls": "URL-адреси", "syntaxCategoryUrlsDesc": "https://example.com", - "syntaxHighlightingDesc": "Colorize terminal output (errors, paths, IPs, timestamps)", - "syntaxHighlightingLabel": "Syntax Highlighting", - "terminalAppearance": "Terminal Appearance", - "theme": "Theme", - "themePreview": "Theme Preview", - "useSSHTitleDesc": "Update the tab title from the shell's window title instead of the host name", - "useSSHTitleLabel": "Use SSH Window Title", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "enableDocker": "Enable Docker", - "startupSnippet": "Startup Snippet", - "quickActions": "Quick Actions", + "syntaxHighlightingDesc": "Розфарбувати вивід терміналу (помилки, шляхи, IP-адреси, позначки часу)", + "syntaxHighlightingLabel": "Підсвічування синтаксису", + "terminalAppearance": "Зовнішній вигляд терміналу", + "theme": "Тема", + "themePreview": "Попередній перегляд теми", + "useSSHTitleDesc": "Оновіть заголовок вкладки з заголовка вікна оболонки, а не з назви хоста.", + "useSSHTitleLabel": "Використовувати заголовок вікна SSH", + "enableTunnel": "Увімкнути тунель", + "enableFileManager": "Увімкнути файловий менеджер", + "enableDocker": "Увімкнути Докер", + "startupSnippet": "Фрагмент запуску", + "quickActions": "Швидкі дії", "proxmoxLastSyncStatus": { - "success": "Success" + "success": "Успіх" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", - "rdpUrlCopied": "RDP URL copied", - "vncUrlCopied": "VNC URL copied", - "filterAuthStepca": "Step CA", + "proxmoxResultSkippedNoIp": "{{count}} пропущено (IP-адресу не знайдено)", + "proxmoxStatsUrlCopied": "URL-адресу статистики Proxmox скопійовано в буфер обміну", + "rdpUrlCopied": "URL-адресу RDP скопійовано", + "vncUrlCopied": "URL-адресу VNC скопійовано", + "filterAuthStepca": "Крок CA", "guac": { - "noCredential": "No credential (direct credentials below)", - "authTypeDirect": "Direct", - "authTypeCredential": "Credential", - "authTypeNone": "None", - "recordingPath": "Recording Path", - "recordingName": "Recording Name", - "saveHostFirst": "Save the host first.", - "sharingOptionsAfterSave": "Sharing options are available after the host has been saved.", - "permissionLevel": "Permission Level", - "typeHeader": "Type", - "targetHeader": "Target", - "permissionHeader": "Permission", - "cancelBtn": "Cancel", - "savingBtn": "Saving...", - "updateHostBtn": "Update Host", - "addHostBtn": "Add Host" + "noCredential": "Без посвідчень (прямі посвідчення нижче)", + "authTypeDirect": "Прямий", + "authTypeCredential": "Посвідчення", + "authTypeNone": "Жоден", + "recordingPath": "Шлях запису", + "recordingName": "Назва запису", + "saveHostFirst": "Спочатку збережіть хост.", + "sharingOptionsAfterSave": "Опції спільного доступу доступні після збереження хоста.", + "permissionLevel": "Рівень дозволів", + "typeHeader": "Тип", + "targetHeader": "Ціль", + "permissionHeader": "Дозвіл", + "cancelBtn": "Скасувати", + "savingBtn": "Збереження...", + "updateHostBtn": "Оновити хост", + "addHostBtn": "Додати хоста" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Сховище" }, "nav": { - "history": "History", - "localTerminal": "Local Terminal", - "sshTools": "SSH Tools", - "terminal": "Terminal", - "macros": "Macros" + "history": "Історія", + "localTerminal": "Місцевий термінал", + "sshTools": "SSH-інструменти", + "terminal": "Термінал", + "macros": "Макроси" }, "sshTools": { - "broadcastInputPlaceholder": "Type here to broadcast keystrokes...", - "copyOnSelect": "Copy selected text automatically", - "enableRightClickCopyPaste": "Enable right-click copy/paste", - "fillPassword": "Fill password", - "fillPasswordMissing": "No saved password for {{count}} selected terminal(s)", - "fillPasswordSuccess": "Filled password into {{count}} terminal(s)", - "keyRecordingTitle": "Key Recording", - "noTerminalTabsOpen": "No terminal tabs open", - "recordToTerminals": "Record to terminals", - "selectAll": "All", - "selectNone": "None", - "selectTerminalsAbove": "Select terminals above", - "settingsTitle": "Settings", - "startRecording": "Start Recording", - "stopRecording": "Stop Recording" + "broadcastInputPlaceholder": "Введіть тут, щоб транслювати натискання клавіш...", + "copyOnSelect": "Автоматичне копіювання вибраного тексту", + "enableRightClickCopyPaste": "Увімкнути копіювання/вставку, клацнувши правою кнопкою миші", + "fillPassword": "Заповніть пароль", + "fillPasswordMissing": "Немає збереженого пароля для {{count}} вибраних терміналів", + "fillPasswordSuccess": "Пароль введено в {{count}} термінал(и)", + "keyRecordingTitle": "Запис клавіш", + "noTerminalTabsOpen": "Немає відкритих вкладок терміналу", + "recordToTerminals": "Запис на термінали", + "selectAll": "Усі", + "selectNone": "Жоден", + "selectTerminalsAbove": "Виберіть термінали вище", + "settingsTitle": "Налаштування", + "startRecording": "Почати запис", + "stopRecording": "Зупинити запис" }, "keybindings": { - "copy": "Copy selection", - "paste": "Paste", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "copy": "Копіювати виділення", + "paste": "Вставити", + "sendControlCode": "Надіслати сигнал Ctrl+літера", + "sendText": "Надіслати текст", + "controlCodeLabel": "Лист", + "textLabel": "Текст для надсилання", + "appendEnterLabel": "Натисніть Enter після відправлення", + "clipboardPermissionNote": "У деяких браузерах може запитуватися дозвіл на використання буфера обміну під час першого використання.", + "textRequired": "Введіть текст для надсилання", + "controlCodeRequired": "Введіть одну літеру для контрольного коду", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Копіювати виділення (Ctrl+C, лише якщо виділено текст)", + "copyCtrlShiftC": "Копіювати виділення (Ctrl+Shift+C)", + "copyCmdC": "Копіювати виділення (Cmd+C)", + "pasteCtrlShiftV": "Вставити з буфера обміну (Ctrl+Shift+V)", + "ctrlW": "Надіслати Ctrl+W до оболонки (блоковано закриття вкладки браузера)", + "ctrlT": "Надіслати Ctrl+T до оболонки (заблоковано відкриття вкладки браузера)", + "ctrlN": "Надіслати Ctrl+N до оболонки (заблоковано відкриття вікна браузера)", + "ctrlQ": "Надіслати Ctrl+Q до оболонки (заблоковано закриття браузера)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", - "target": "Target", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", - "name": "Name", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", - "descriptionLabel": "Description", - "descriptionPlaceholder": "What this macro does (optional)", - "unsaved": "Unsaved changes", - "save": "Save", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", - "delete": "Delete", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", - "cancel": "Cancel", - "run": "Run", - "stop": "Stop", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "title": "Макроси", + "description": "Виконайте збережену серію команд у терміналі та відреагуйте на те, що надсилає сервер.", + "target": "Ціль", + "noTerminal": "Термінал не відкритий", + "empty": "Поки що немає макросів", + "emptyHint": "Створіть макрос для автоматизації процесу роботи термінала, такого як вхід у систему, перезапуск служби або відповідь на запити.", + "create": "Новий макрос", + "back": "Повернутися до макросів", + "name": "Ім'я", + "namePlaceholder": "Перезапустіть веб-сервер", + "nameRequired": "Дайте макросу ім'я перед збереженням", + "descriptionLabel": "Опис", + "descriptionPlaceholder": "Що робить цей макрос (необов'язково)", + "unsaved": "Незбережені зміни", + "save": "Зберегти", + "saved": "Макрос збережено", + "saveFailed": "Не вдалося зберегти макрос", + "delete": "Видалити", + "deleteTitle": "Видалити цей макрос?", + "deleteBody": "«{{name}}» буде видалено назавжди. Цю дію неможливо скасувати.", + "deleted": "Макрос видалено", + "cancel": "Скасувати", + "run": "Бігти", + "stop": "СТІЙ", + "running": "Біг...", + "completed": "Макрос завершено", + "failed": "Помилка макросу", + "loadFailed": "Не вдалося завантажити макроси", + "needTerminal": "Спочатку відкрийте та підключіть термінал", + "noSteps": "Цей макрос ще не має кроків. Додайте один нижче.", + "addStep": "Додати крок", + "stepNumber": "Крок {{number}}", + "removeStep": "Видалити крок", + "confirmRunTitle": "Запустити цей макрос?", + "confirmRunBody": "\"{{name}}\" надсилатиме команди до {{host}}.", + "confirmRunAction": "Запустити макрос", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Надіслати команду", + "help": "Вводить текст у термінал так само, як і надруковано." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Зачекайте на вивід", + "help": "Призупиняється, доки сервер не надрукує вказаний вами текст, наприклад, запит на пароль." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Пауза", + "help": "Очікує фіксований проміжок часу перед наступним кроком." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Якщо вихід містить", + "help": "Перевіряє все, що сервер надрукував до цього часу, а потім запускає одну з двох гілок." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Повторити", + "help": "Виконує кроки всередині нього задану кількість разів." } }, "send": { - "text": "Command or text", - "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "text": "Команда або текст", + "textPlaceholder": "перезапуск systemctl nginx", + "pressEnter": "Натисніть Enter після відправлення", + "pressEnterHelp": "Вимкніть цю функцію, щоб вводити текст, не надсилаючи його." }, "wait": { - "pattern": "Wait until the output contains", - "patternPlaceholder": "password:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "pattern": "Зачекайте, поки вихідні дані міститимуть", + "patternPlaceholder": "пароль:", + "timeout": "Здайся після", + "onTimeout": "Якщо воно ніколи не з'явиться", + "stop": "Зупинити макрос", + "continue": "Продовжуй у будь-якому разі" }, "delay": { - "duration": "Wait for" + "duration": "Зачекайте" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Якщо вихід містить", + "patternPlaceholder": "Активний: активний (працює)", + "then": "Тоді зробіть це", + "else": "Інакше зробіть це", + "emptyBranch": "Без сходинок" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Кількість разів", + "times": "рази" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "Зіставлення з регулярним виразом", + "useRegexHelp": "Не виключайте це, щоб текст точно відповідав написаному.", + "invalidRegex": "Недійсний регулярний вираз, буде знайдено звичайний текст" }, - "seconds": "seconds", - "secondsShort": "{{count}}s" + "seconds": "секунди", + "secondsShort": "{{count}}с" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Потрібен віддалений сервер. Підключіться до віддаленого сервера в налаштуваннях, щоб використовувати цей тип підключення." } } diff --git a/plugins/ssh-terminal/locales/translated/vi_VN.json b/plugins/ssh-terminal/locales/translated/vi_VN.json index d5d232e9b..82b5ece70 100644 --- a/plugins/ssh-terminal/locales/translated/vi_VN.json +++ b/plugins/ssh-terminal/locales/translated/vi_VN.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "Không thể bật Auto-Tmux.", + "autoTmuxEnabled": "Tính năng Auto-Tmux đã được bật cho {{host}}. Tính năng này sẽ được áp dụng từ lần kết nối tiếp theo.", + "clipboardHttpWarning": "Không thể đọc nội dung clipboard. Một số trình duyệt hạn chế quyền truy cập clipboard khi không sử dụng HTTPS - hãy thử Ctrl+V hoặc sử dụng HTTPS để chạy Termix.", "closeTab": "Đóng", "connecting": "Đang kết nối...", "connectionLost": "Mất kết nối", @@ -44,18 +44,18 @@ "reconnect": "Kết nối lại", "reconnected": "Đã kết nối lại thành công", "reconnecting": "Đang kết nối lại... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "Mất kết nối, đang kết nối lại...", + "searchCaseSensitive": "Hộp diêm", + "searchClose": "Đóng (Thoát)", + "searchNext": "Trận đấu tiếp theo (Nhập)", + "searchNoResults": "Không có kết quả", + "searchPlaceholder": "Tìm thấy", + "searchPrevious": "Kết quả khớp trước đó (Shift+Enter)", + "searchRegex": "Sử dụng biểu thức chính quy", + "searchResultCount": "{{index}} của {{count}}", + "searchWholeWord": "Ghép toàn bộ từ", + "sessionExpiredNotice": "Phiên làm việc trước của bạn trên {{host}} đã hết hạn sau {{minutes}} phút bị ngắt kết nối; shell và mọi thứ đang chạy trong đó đều đã biến mất. Hãy bật Auto-Tmux trên máy chủ này để duy trì các phiên làm việc.", + "sessionExpiredNoticeNoMinutes": "Phiên làm việc trước của bạn trên {{host}} đã hết hạn khi bị ngắt kết nối; shell và mọi thứ đang chạy trong đó đều đã biến mất. Hãy bật Auto-Tmux trên máy chủ này để duy trì các phiên làm việc.", "sessionTakenOver": "Phiên đã được mở trong tab khác. Đang kết nối lại...", "tmuxAttached": "Các máy khách đã gắn kết", "tmuxAttachedCount": "{{count}} đã gắn kết", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "Sao chép vào clipboard thất bại. Đảm bảo trang được phục vụ qua HTTPS hoặc localhost.", "connected": "Đã kết nối", "totpCodeLabel": "Mã xác minh", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "Tab trùng lặp", + "imageChooseFile": "Chọn một tệp hình ảnh", + "imageUploaded": "Ảnh đã tải lên: {{path}}", + "imageClipboardUnavailable": "Trình duyệt này không thể đọc hình ảnh từ clipboard", + "imageClipboardEmpty": "Không tìm thấy hình ảnh trong bộ nhớ tạm", + "localShell": "Vỏ thiết bị đầu cuối cục bộ", + "autocompleteHintComplete": "Nhấn phím Tab hoặc Enter để hoàn tất", + "autocompleteHintNavigate": "↑↓ để điều hướng", + "autocompleteHintClose": "Nhấn Esc để đóng" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "Tách tmux", + "detachTmuxDescription": "Tách phiên tmux", + "dismissError": "Bỏ qua lỗi hình ảnh", + "hideToolbar": "Ẩn thanh công cụ", + "image": "Thao tác với hình ảnh (chỉ áp dụng cho hình ảnh)", + "imageActionFailed": "Thao tác xử lý hình ảnh thất bại", + "layout": "Chế độ hiển thị thanh công cụ", + "layoutExpanded": "Đã mở rộng với các số liệu", + "layoutIcon": "Chỉ có biểu tượng", + "layoutLabeled": "Biểu tượng và nhãn", + "moveToolbar": "Di chuyển thanh công cụ", + "moveToolbarHint": "Kéo để định vị lại thanh công cụ", + "paste": "Dán hình ảnh", + "pasteImage": "Dán hình ảnh từ clipboard (chỉ áp dụng cho hình ảnh)", "retry": "Thử lại", "showToolbar": "Mở rộng thanh công cụ", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "Tải ảnh lên", + "uploadImage": "Tải ảnh lên máy chủ", "uploadingImage": "Đang tải lên..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "Xóa tất cả", "noHistoryEntries": "Không có mục lịch sử", "trackingDisabled": "Tính năng ghi lịch sử đã bị tắt", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "Bật Lịch sử lệnh trong tab Thiết bị đầu cuối SSH của máy chủ này.", + "commandCount_one": "{{count}} lệnh", + "commandCount_other": "{{count}} lệnh" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", - "advanced": "Advanced", + "enabled": "Cho phép nhập liệu cảm ứng", + "enabledDesc": "Cho phép cuộn bằng một ngón tay trong cửa sổ dòng lệnh.", + "momentumEnabled": "Tạo đà", + "momentumEnabledDesc": "Tiếp tục cuộn xuống một chút sau khi vuốt.", + "advanced": "Trình độ cao", "resetDefaults": "Đặt lại mặc định", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "Ngưỡng kéo", + "maxWheelDelta": "Chênh lệch bánh xe tối đa", + "momentumSampleWindow": "Cửa sổ mẫu động lượng", + "releaseGracePeriod": "thời gian ân hạn thả", + "minimumVelocity": "Vận tốc tối thiểu", + "maximumVelocity": "Vận tốc tối đa", + "maximumDuration": "Thời gian tối đa", + "maximumTravel": "Hành trình tối đa", + "decayTime": "Thời gian phân rã", + "pixelsPerTick": "Số pixel trên mỗi tick", + "maximumFrameInterval": "Khoảng thời gian khung hình tối đa", + "maximumTicksPerFrame": "Số tick tối đa mỗi khung hình" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "ID phiên bản phiên thiết bị đầu cuối", + "instanceIdDesc": "ID phiên bản của một trong các tab thiết bị đầu cuối được kết nối của bạn, được sử dụng để kiểm tra khả năng hiển thị.", + "selectedModeUnavailable": "Không khả dụng", "test": "Kiểm tra", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "Đang thử nghiệm...", + "testFailed": "Không thể kiểm tra lưu trữ hình ảnh", + "testConnected": "Phiên kết nối terminal đã được thiết lập.", + "testNotConnected": "Không có phiên làm việc thiết bị đầu cuối nào được kết nối với ID phiên bản này.", + "testSelectedMode": "Quá trình tải lên sẽ sử dụng: {{mode}}", + "testLocalVisible": "Thư mục cục bộ có thể được nhìn thấy từ máy chủ được kết nối.", + "testLocalNotVisible": "Thư mục cục bộ KHÔNG hiển thị từ máy chủ được kết nối." }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "Nhập liệu cảm ứng", + "images": "Lưu trữ hình ảnh", "sessions": "Phiên", - "newHosts": "New Hosts" + "newHosts": "Người dẫn chương trình mới" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "Duy trì phiên đầu cuối", + "description": "Thời gian duy trì kết nối của một thiết bị đầu cuối bị ngắt kết nối trên máy chủ trước khi nó bị đóng. Tối thiểu 1 phút, tối đa 1440 phút. Đối với các phiên cần duy trì lâu hơn thời gian này, hãy bật Auto-Tmux trên máy chủ." }, "commandHistoryEnabled": { "label": "Lịch sử lệnh", "description": "Cho phép ghi lịch sử lệnh. Khi tắt, lịch sử sẽ không được lưu bất kể cài đặt từng máy chủ." }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "Lịch sử lệnh cho máy chủ mới", + "description": "Liệu các máy chủ mới có bật lịch sử lệnh ngay từ đầu hay không." }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "Chế độ lưu trữ", + "description": "Nơi hiển thị hình ảnh từ thiết bị đầu cuối được dán và tải lên. Chức năng tự động chọn theo kết nối, cục bộ và từ xa (SFTP) được cố định.", "auto": "Tự động", "local": "Cục bộ", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "Từ xa (SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "Thư mục cục bộ", + "description": "Đường dẫn tuyệt đối trên máy chủ Termix nơi chế độ cục bộ ghi hình ảnh. Không bao giờ được hiển thị sau khi lưu. Giá trị trống sử dụng TERMIX_IMAGE_DIR." }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "Đường dẫn máy chủ", + "description": "Đây là giao diện phía máy chủ của thư mục cục bộ mà các tác nhân đầu cuối nhận được." }, "imageTtlMs": { "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "description": "Thời gian lưu giữ ảnh đã tải lên, tính bằng mili giây. Giá trị trống sử dụng TERMIX_IMAGE_TTL_MS hoặc một giờ." }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "Số lượng ảnh tối đa", + "description": "Hầu hết các hình ảnh được lưu giữ cùng một lúc. Trường hợp trống thì sử dụng TERMIX_MAX_IMAGE_COUNT hoặc 100." }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "Số byte lưu trữ tối đa", + "description": "Số byte tối đa của hình ảnh được lưu trữ cùng một lúc. Khi trống, nó sử dụng TERMIX_MAX_IMAGE_STORAGE_BYTES hoặc 5 GiB." }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "Giữ lại các phiên sau khi ngắt kết nối", + "description": "Giữ cho cửa sổ terminal đang kết nối với máy chủ hoạt động trong khoảng thời gian nêu trên, để khi mở lại tab đó sẽ tiếp tục từ chỗ đã dừng lại." }, "newHostAutoTmux": { "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "description": "Chạy các cửa sổ terminal của máy chủ mới bên trong tmux để đảm bảo phiên làm việc vẫn hoạt động sau khi ngắt kết nối (cần cài đặt tmux trên máy chủ)." }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "Giao diện dành cho người dẫn chương trình mới", + "description": "Giao diện dòng lệnh mà một máy chủ mới khởi động sử dụng." }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "Phông chữ dành cho máy chủ mới", + "description": "Phông chữ giao diện dòng lệnh mà một máy chủ mới khởi động." }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "Kích thước phông chữ cho người dùng mới", + "description": "Kích thước phông chữ của thiết bị đầu cuối mà một máy chủ mới bắt đầu sử dụng, tính bằng pixel." }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "Kiểu con trỏ dành cho máy chủ mới" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "Con trỏ nhấp nháy khi có máy chủ mới." } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "Kích hoạt thanh công cụ Terminal", + "description": "Hiển thị thanh công cụ truy cập nhanh được gắn vào cửa sổ terminal đang hoạt động để xem các công cụ và số liệu thống kê trực tiếp của máy chủ này." }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "Vị trí thanh công cụ", + "description": "Vị trí thanh công cụ trong cửa sổ terminal. Bạn vẫn có thể kéo nó từ đó.", + "bottom": "Phía dưới trung tâm", + "bottomLeft": "Góc dưới bên trái", + "bottomRight": "Góc dưới bên phải", + "top": "Trên cùng ở giữa", + "topLeft": "Góc trên bên trái", + "topRight": "Góc trên bên phải" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "Trạng thái khởi động của thanh công cụ", + "description": "Liệu thanh công cụ có mở ở chế độ toàn màn hình hay thu nhỏ khi thiết bị đầu cuối kết nối hay không.", + "expanded": "Mở rộng", + "collapsed": "Giảm thiểu" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "Chế độ hiển thị thanh công cụ", + "description": "Cách hiển thị các nút trên thanh công cụ. Nút được sử dụng lần cuối sẽ giữ nguyên vị trí bạn đã chọn trên thanh công cụ.", + "remember": "Lần cuối sử dụng", + "icon": "Chỉ có biểu tượng", + "labeled": "Biểu tượng và nhãn", + "expanded": "Đã mở rộng với số liệu thống kê" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "Hiển thị số liệu thống kê trực tiếp", + "description": "Hiển thị số liệu thống kê trực tiếp của máy chủ phía trên các nút trên thanh công cụ ở chế độ mở rộng." }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "Mờ dần khi không hoạt động", + "description": "Làm mờ thanh công cụ cho đến khi bạn di chuột qua nó." }, "enableCommandHistory": { "label": "Lịch sử lệnh", @@ -273,157 +273,157 @@ }, "enableTerminal": { "label": "Bật Terminal", - "description": "Offer an SSH terminal for this host." + "description": "Cung cấp giao diện dòng lệnh SSH cho máy chủ này." }, "inheritAppearance": { - "label": "Use user defaults" + "label": "Sử dụng cài đặt mặc định của người dùng" }, "theme": { "label": "Giao diện" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "Con trỏ nhấp nháy" }, "cursorStyle": { - "label": "Cursor style" + "label": "Kiểu con trỏ" }, "fontSize": { - "label": "Font size" + "label": "Kích thước phông chữ" }, "fontFamily": { - "label": "Font" + "label": "Phông chữ" }, "scrollback": { - "label": "Scrollback" + "label": "Cuộn trở lại" }, "letterSpacing": { - "label": "Letter spacing" + "label": "Khoảng cách chữ" }, "lineHeight": { - "label": "Line height" + "label": "Chiều cao dòng" }, "bellStyle": { - "label": "Bell" + "label": "Chuông" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "Tỷ lệ tương phản tối thiểu" }, "backgroundImage": { - "label": "Background image" + "label": "Hình nền" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "Độ mờ của hình nền" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "Màu sắc chủ đề tùy chỉnh" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "Nhấp chuột phải chọn từ" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "Tùy chọn là Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "Phím cuộn nhanh" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "Tốc độ cuộn nhanh" }, "backspaceMode": { - "label": "Backspace" + "label": "Xóa" }, "autoMosh": { - "label": "Auto mosh" + "label": "Tự động mosh" }, "moshCommand": { - "label": "Mosh command" + "label": "Lệnh Mosh" }, "autoTmux": { "label": "Auto tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "Sử dụng tiêu đề SSH" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "Tô sáng cú pháp" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "Các danh mục tô sáng cú pháp" }, "linkClickBehavior": { - "label": "Link click" + "label": "Nhấp chuột vào liên kết" }, "localEcho": { - "label": "Local echo" + "label": "Tiếng vọng cục bộ" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "Đề nghị điền thông tin mật khẩu khi được yêu cầu" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "Điền thông tin vào các lời nhắc sudo" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "Tự động kết nối lại" } }, "user": { "commandAutocomplete": { "label": "Tự động hoàn thành lệnh", - "description": "Show autocomplete while typing if you press tab" + "description": "Hiển thị tính năng tự động hoàn thành khi gõ nếu bạn nhấn phím Tab" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "Tiếng vọng địa phương", + "description": "Giảm độ trễ đầu vào cảm nhận được bằng cách sử dụng tính năng dự đoán thao tác gõ phím cục bộ an toàn." }, "linkClickBehavior": { "label": "Hành vi khi nhấp liên kết trong Terminal", "description": "Hành vi mặc định khi nhấp vào liên kết trong terminal" }, "customThemes": { - "label": "Saved themes" + "label": "Chủ đề đã lưu" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "Ga địa phương" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "Sử dụng các phiên thiết bị đầu cuối trực tiếp", + "description": "Cho phép các tính năng khác, chẳng hạn như chia sẻ và ghi lại phiên làm việc, được tích hợp vào các phiên làm việc trực tiếp trên thiết bị đầu cuối của bạn." }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "Đọc lịch sử lệnh", + "description": "Cho phép các tính năng khác, chẳng hạn như trợ lý AI, đọc lịch sử lệnh của bạn." } }, "hosts": { "tabTerminal": "Terminal", "addHost": "Thêm máy chủ", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "Áp dụng chủ đề này", "backgroundImageDesc": "URL tùy chọn cho ảnh nền terminal", "backgroundImageLabel": "URL ảnh nền", "backgroundImageOpacityLabel": "Độ mờ ảnh nền", "backspaceMode": "Chế độ Backspace", "backspaceModeControlH": "Control-H (BS)", "backspaceModeLabel": "Chế độ Backspace", - "backspaceModeNormal": "Normal (DEL)", + "backspaceModeNormal": "Bình thường (DEL)", "behaviorAndAdvanced": "Hành vi & Nâng cao", "bellStyle": "Kiểu chuông", - "bellStyleBoth": "Both", + "bellStyleBoth": "Cả hai", "bellStyleLabel": "Kiểu chuông", "bellStyleNone": "Không chọn", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "Âm thanh", + "bellStyleVisual": "Thị giác", "colorTheme": "Chủ đề màu", "cursorBlink": "Con trỏ nhấp nháy", "cursorBlinking": "Nhấp nháy con trỏ", "cursorBlinkingDesc": "Bật hiệu ứng nhấp nháy cho con trỏ terminal", "cursorStyle": "Kiểu con trỏ", - "cursorStyleBar": "Bar", - "cursorStyleBlock": "Block", + "cursorStyleBar": "Thanh", + "cursorStyleBlock": "Khối", "cursorStyleLabel": "Kiểu con trỏ", - "cursorStyleUnderline": "Underline", + "cursorStyleUnderline": "Gạch chân", "customThemeAnsiColors": "Màu ANSI", "customThemeBackground": "Nền", "customThemeBlack": "Đen", @@ -448,12 +448,12 @@ "customThemeSelection": "Vùng chọn", "customThemeWhite": "Trắng", "customThemeYellow": "Vàng", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "Xóa chủ đề này", "docsLink": "Xem tài liệu", "enableAutoMosh": "Kích hoạt Auto-Mosh", "enableAutoMoshDesc": "Ưu tiên Mosh hơn SSH nếu có", "enableAutoTmux": "Kích hoạt Auto-Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "Giữ cho shell và mọi thứ đang chạy trong đó hoạt động bình thường ngay cả khi bị ngắt kết nối hoặc khởi động lại trình duyệt bằng cách chạy bên trong tmux (tmux phải được cài đặt trên máy chủ).", "fastScrollModifier": "Phím bổ trợ cuộn nhanh", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "Độ nhạy cuộn nhanh", "fastScrollSensitivityLabel": "Độ nhạy cuộn nhanh", "fontFamily": "Phông chữ", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "Chọn một phông chữ có sẵn hoặc chọn Tùy chỉnh và nhập chính xác tên của một phông chữ đã được cài đặt trên hệ thống của bạn (ví dụ: MesloLGS NF, Noto Sans Mono). Termix không thể cài đặt phông chữ cho bạn, hãy cài đặt nó trên hệ điều hành của bạn trước.", + "fontFamilyCustomOption": "Phong tục...", + "fontFamilyCustomPlaceholder": "Tên phông chữ chính xác, ví dụ: MesloLGS NF", "fontFamilyLabel": "Họ phông chữ", "fontSize": "Cỡ chữ", "fontSizeLabel": "Cỡ chữ", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "Mở trực tiếp", "linkClickBehaviorLabel": "Hành vi nhấp liên kết", "loadingHost": "Đang tải máy chủ...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "Tự động", + "localEchoDesc": "Dự đoán các thao tác gõ phím an toàn có thể in được cục bộ trên các kết nối chậm. Lời nhắc nhập mật khẩu và đầu vào điều khiển không bao giờ được hiển thị lại.", + "localEchoLabel": "Tiếng vọng địa phương", "localEchoOff": "Tắt", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "Luôn bật", + "macOptionIsMetaLabel": "Phím Tùy chọn gửi dữ liệu meta", + "macOptionIsMetaShortDesc": "Tắt tính năng gõ các ký tự đặc biệt (như @ hoặc |) bằng phím Option/Alt trên macOS thay vì gửi dữ liệu Meta.", "moshCommand": "Lệnh MOSH", "moshCommandLabel": "Lệnh Mosh", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "Chưa có chủ đề nào được lưu.", "none": "Không có", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "Đề nghị điền mật khẩu đã lưu khi thiết bị đầu cuối yêu cầu. Tắt tùy chọn này để không bao giờ tự động điền bất kỳ mật khẩu nào trên máy chủ này.", + "passwordPromptAutoFillLabel": "Ưu đãi tự động điền mật khẩu", + "autoReconnectLabel": "Tự động kết nối lại", + "autoReconnectDesc": "Tự động kết nối lại khi kết nối SSH bị ngắt, ví dụ như sau sự cố mạng hoặc khi thiết bị ở chế độ ngủ. Giữ nguyên dữ liệu cuộn ngược lại.", "rightClickSelectsWord": "Nhấp chuột phải chọn từ", "rightClickSelectsWordLabel": "Nhấp chuột phải chọn từ", "rightClickSelectsWordShortDesc": "Chọn từ dưới con trỏ khi nhấp chuột phải", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "Lưu dưới dạng Chủ đề toàn cầu", + "saveGlobalThemeError": "Không thể lưu chủ đề", + "saveGlobalThemeNamePrompt": "Nhập tên cho chủ đề này", + "saveGlobalThemeSuccess": "Chủ đề đã được lưu", + "savedThemesLabel": "Chủ đề đã lưu", "scrollbackBufferLabel": "Bộ đệm cuộn ngược", "scrollbackMaxLines": "Số dòng tối đa được giữ trong lịch sử", "sudoPasswordAutoFill": "Tự động điền mật khẩu Sudo", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "Thành công" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} đã bỏ qua (không tìm thấy địa chỉ IP)", + "proxmoxStatsUrlCopied": "URL Thống kê Proxmox đã được sao chép vào clipboard", "rdpUrlCopied": "Đã sao chép URL RDP", "vncUrlCopied": "Đã sao chép URL VNC", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "Bước CA", "guac": { "noCredential": "Không có thông tin xác thực (thông tin trực tiếp bên dưới)", "authTypeDirect": "Trực tiếp", @@ -556,18 +556,18 @@ "updateHostBtn": "Cập nhật máy chủ", "addHostBtn": "Thêm máy chủ" }, - "filterAuthVault": "Vault" + "filterAuthVault": "Kho tiền" }, "nav": { "history": "Lịch sử", - "localTerminal": "Local Terminal", + "localTerminal": "Ga địa phương", "sshTools": "Công cụ SSH", "terminal": "Terminal", - "macros": "Macros" + "macros": "Macro" }, "sshTools": { "broadcastInputPlaceholder": "Nhập vào đây để phát tán thao tác phím...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "Sao chép văn bản đã chọn tự động", "enableRightClickCopyPaste": "Bật sao chép/dán bằng chuột phải", "fillPassword": "Điền mật khẩu", "fillPasswordMissing": "Không có mật khẩu đã lưu cho {{count}} terminal đã chọn", @@ -583,123 +583,123 @@ "stopRecording": "Dừng ghi" }, "keybindings": { - "copy": "Copy selection", + "copy": "Sao chép lựa chọn", "paste": "Dán", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "Gửi tín hiệu Ctrl+chữ cái", + "sendText": "Gửi tin nhắn", + "controlCodeLabel": "Thư", + "textLabel": "Văn bản để gửi", + "appendEnterLabel": "Nhấn Enter sau khi gửi", + "clipboardPermissionNote": "Một số trình duyệt có thể yêu cầu quyền truy cập clipboard khi sử dụng lần đầu.", + "textRequired": "Nhập văn bản cần gửi", + "controlCodeRequired": "Nhập một chữ cái duy nhất cho mã điều khiển.", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "Sao chép vùng chọn (Ctrl+C, chỉ khi văn bản được chọn)", + "copyCtrlShiftC": "Sao chép vùng chọn (Ctrl+Shift+C)", + "copyCmdC": "Sao chép vùng chọn (Cmd+C)", + "pasteCtrlShiftV": "Sao chép từ clipboard (Ctrl+Shift+V)", + "ctrlW": "Gửi tổ hợp phím Ctrl+W đến cửa sổ dòng lệnh (chặn việc đóng tab trình duyệt)", + "ctrlT": "Gửi tổ hợp phím Ctrl+T để vào cửa sổ dòng lệnh (chặn việc mở tab trình duyệt)", + "ctrlN": "Gửi tổ hợp phím Ctrl+N để vào cửa sổ dòng lệnh (chặn việc mở cửa sổ trình duyệt)", + "ctrlQ": "Gửi tổ hợp phím Ctrl+Q để vào cửa sổ dòng lệnh (chặn không cho thoát trình duyệt)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "Macro", + "description": "Chạy một chuỗi lệnh đã lưu trong cửa sổ dòng lệnh và phản hồi lại những gì máy chủ gửi về.", "target": "Đích", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "Không có thiết bị đầu cuối nào đang mở", + "empty": "Chưa có macro nào.", + "emptyHint": "Tạo macro để tự động hóa quy trình trên thiết bị đầu cuối, chẳng hạn như đăng nhập, khởi động lại dịch vụ hoặc trả lời các lời nhắc.", + "create": "Macro mới", + "back": "Quay lại phần macro", "name": "Tên", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "Khởi động lại máy chủ web", + "nameRequired": "Hãy đặt tên cho macro trước khi lưu.", "descriptionLabel": "Mô tả", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "Chức năng của macro này (tùy chọn)", "unsaved": "Thay đổi chưa lưu", "save": "Lưu", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "Macro đã được lưu", + "saveFailed": "Không thể lưu macro", "delete": "Xóa", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "Xóa macro này?", + "deleteBody": "\"{{name}}\" sẽ bị xóa vĩnh viễn. Không thể hoàn tác.", + "deleted": "Macro đã bị xóa", "cancel": "Hủy", "run": "Chạy", "stop": "Bit dừng", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "Đang chạy...", + "completed": "Macro đã hoàn thành", + "failed": "Macro bị lỗi", + "loadFailed": "Không thể tải macro", + "needTerminal": "Trước tiên hãy mở và kết nối thiết bị đầu cuối.", + "noSteps": "Macro này chưa có bước nào. Hãy thêm một bước bên dưới.", + "addStep": "Thêm bước", + "stepNumber": "Bước {{number}}", + "removeStep": "Xóa bước", + "confirmRunTitle": "Chạy macro này?", + "confirmRunBody": "\"{{name}}\" sẽ gửi lệnh đến {{host}}.", + "confirmRunAction": "Chạy macro", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "Gửi lệnh", + "help": "Nhập văn bản vào cửa sổ dòng lệnh, giống như khi bạn tự nhập văn bản." }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "Chờ kết quả đầu ra", + "help": "Tạm dừng cho đến khi máy chủ in ra đoạn văn bản bạn đã đặt tên, ví dụ như lời nhắc nhập mật khẩu." }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "Tạm dừng", + "help": "Chờ một khoảng thời gian cố định trước khi thực hiện bước tiếp theo." }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "Nếu đầu ra chứa", + "help": "Kiểm tra tất cả những gì máy chủ đã in ra cho đến nay, sau đó chạy một trong hai nhánh." }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "Lặp lại", + "help": "Thực thi các bước bên trong nó một số lần nhất định." } }, "send": { - "text": "Command or text", + "text": "Lệnh hoặc văn bản", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "Nhấn Enter sau khi gửi", + "pressEnterHelp": "Tắt tùy chọn này để nhập văn bản mà không cần gửi đi." }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "Chờ cho đến khi đầu ra chứa", "patternPlaceholder": "mật khẩu:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "Bỏ cuộc sau", + "onTimeout": "Nếu nó không bao giờ xuất hiện", + "stop": "Dừng macro", + "continue": "Cứ tiếp tục đi nhé" }, "delay": { - "duration": "Wait for" + "duration": "Chờ đợi" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "Nếu đầu ra chứa", + "patternPlaceholder": "Đang hoạt động: đang hoạt động (đang chạy)", + "then": "Sau đó hãy làm như thế này", + "else": "Nếu không thì hãy làm như thế này", + "emptyBranch": "Không có bước nào" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "Số lần", + "times": "lần" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "So khớp với biểu thức chính quy", + "useRegexHelp": "Bỏ phần này đi để văn bản khớp chính xác với nội dung đã viết.", + "invalidRegex": "Đây không phải là biểu thức chính quy hợp lệ, nó sẽ được so khớp như văn bản thuần túy." }, "seconds": "giây", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "Cần có máy chủ từ xa. Kết nối máy chủ từ xa trong Cài đặt để sử dụng loại kết nối này." } } diff --git a/plugins/ssh-terminal/locales/translated/zh_CN.json b/plugins/ssh-terminal/locales/translated/zh_CN.json index 4a25bacf4..1f85db485 100644 --- a/plugins/ssh-terminal/locales/translated/zh_CN.json +++ b/plugins/ssh-terminal/locales/translated/zh_CN.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "启用自动 Tmux 失败", + "autoTmuxEnabled": "对 {{host}}启用自动 Tmux。它从下一个连接开始生效。", + "clipboardHttpWarning": "无法读取剪贴板内容。部分浏览器限制在 HTTPS 协议之外访问剪贴板——请尝试使用 Ctrl+V 粘贴,或通过 HTTPS 协议访问 Termix。", "closeTab": "关闭", "connecting": "正在连接…", "connectionLost": "连接丢失", @@ -44,18 +44,18 @@ "reconnect": "重新连接", "reconnected": "重新连接成功", "reconnecting": "正在重新连接…({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", + "autoReconnecting": "连接丢失,正在重新连接……", "searchCaseSensitive": "区分大小写", "searchClose": "关闭(Esc)", "searchNext": "下一个匹配(Enter)", - "searchNoResults": "No results", + "searchNoResults": "没有结果", "searchPlaceholder": "搜索", "searchPrevious": "上一个匹配(Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", + "searchRegex": "使用正则表达式", + "searchResultCount": "{{index}} 的 {{count}}", "searchWholeWord": "全字匹配", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "sessionExpiredNotice": "您之前在 {{host}} 上的会话已在 {{minutes}} 分钟后断开连接并过期;shell 及其中运行的所有内容均已丢失。请在此主机上启用 Auto-Tmux 以保持会话连接。", + "sessionExpiredNoticeNoMinutes": "您之前在 {{host}} 上的会话已过期,且已断开连接;shell 及其中运行的所有内容均已丢失。请在此主机上启用 Auto-Tmux 以保持会话有效。", "sessionTakenOver": "会话已在另一个标签页中打开。正在重新连接...", "tmuxAttached": "已连接客户端", "tmuxAttachedCount": "{{count}} 个已连接", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "复制到剪贴板失败。请确保页面通过 HTTPS 或 localhost 提供服务。", "connected": "已连接", "totpCodeLabel": "验证码", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "重复标签页", + "imageChooseFile": "选择图像文件", + "imageUploaded": "上传图片: {{path}}", + "imageClipboardUnavailable": "此浏览器无法读取剪贴板中的图像", + "imageClipboardEmpty": "剪贴板中未找到图像", + "localShell": "本地终端 shell", + "autocompleteHintComplete": "按 Tab 键或 Enter 键完成", + "autocompleteHintNavigate": "向上向下导航", + "autocompleteHintClose": "按 Esc 键关闭" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "分离 tmux", + "detachTmuxDescription": "分离 tmux 会话", + "dismissError": "忽略图像错误", + "hideToolbar": "隐藏工具栏", + "image": "图片操作(仅限图片)", + "imageActionFailed": "图片操作失败", + "layout": "工具栏显示模式", + "layoutExpanded": "扩展了指标", + "layoutIcon": "仅图标", + "layoutLabeled": "图标和标签", + "moveToolbar": "移动工具栏", + "moveToolbarHint": "拖动即可重新定位工具栏", + "paste": "粘贴图片", + "pasteImage": "从剪贴板粘贴图片(仅限图片)", "retry": "重试", "showToolbar": "展开工具栏", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "上传图片", + "uploadImage": "将图片上传到主机", "uploadingImage": "上传中..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "全部清除", "noHistoryEntries": "无历史记录", "trackingDisabled": "历史跟踪已禁用", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "在该主机的 SSH 终端选项卡中启用命令历史记录。", + "commandCount_one": "{{count}} 命令", + "commandCount_other": "{{count}} 命令" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", + "enabled": "启用触摸输入", + "enabledDesc": "允许终端单指触摸滚动", + "momentumEnabled": "启用动能", + "momentumEnabledDesc": "滑动后继续短暂滚动。", "advanced": "高级", "resetDefaults": "重置为默认值", "dragThreshold": "拖动阈值", "maxWheelDelta": "最大滚轮增量", - "momentumSampleWindow": "Momentum sample window", + "momentumSampleWindow": "动量样本窗口", "releaseGracePeriod": "释放宽限期", "minimumVelocity": "最小速度", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", + "maximumVelocity": "最大速度", + "maximumDuration": "最长持续时间", + "maximumTravel": "最大行程", + "decayTime": "衰减时间", + "pixelsPerTick": "每刻像素数", + "maximumFrameInterval": "最大帧间隔", "maximumTicksPerFrame": "每帧最大刻度数" }, "imageStorage": { - "instanceId": "Terminal session instance ID", + "instanceId": "终端会话实例 ID", "instanceIdDesc": "用于测试可见性的已连接终端标签页的实例 ID。", - "selectedModeUnavailable": "Unavailable", + "selectedModeUnavailable": "不可用", "test": "测试", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", + "testing": "测试中……", + "testFailed": "图像存储测试失败", + "testConnected": "终端会话已连接。", + "testNotConnected": "没有与此实例 ID 连接的终端会话。", "testSelectedMode": "上传将使用:{{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testLocalVisible": "本地目录对连接的主机可见。", + "testLocalNotVisible": "从连接的主机上看不到本地目录。" }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "触摸输入", + "images": "图像存储", "sessions": "会话", - "newHosts": "New Hosts" + "newHosts": "新主持人" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "终端会话持久性", + "description": "断开连接的终端在服务器上保持活动状态的时间,最短 1 分钟,最长 1440 分钟。对于必须保持活动状态超过此时间的会话,请在主机上启用自动终端复用 (Auto-Tmux)。" }, "commandHistoryEnabled": { "label": "命令历史", "description": "允许记录命令历史。禁用后,无论各主机设置如何,均不保存历史记录。" }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "新主机的命令历史记录", + "description": "是否开启新主机的命令历史记录功能。" }, "imageStorageMode": { - "label": "Storage Mode", + "label": "存储模式", "description": "粘贴和上传的终端图片的写入位置。自动模式根据连接自动选择,本地和远程(SFTP)为固定模式。", "auto": "自动", "local": "本地", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "远程(SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "本地目录", + "description": "Termix 后端本地模式写入图像的绝对路径。保存后不再显示。空路径使用 TERMIX_IMAGE_DIR。" }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "主机路径", + "description": "终端代理接收到的本地目录的主机端视图。" }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "TTL(毫秒)", + "description": "上传的图片保留时间,以毫秒为单位。空图片使用 TERMIX_IMAGE_TTL_MS,即一小时。" }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "最大图像数量", + "description": "一次保留大部分图像。空集使用 TERMIX_MAX_IMAGE_COUNT 或 100。" }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "最大存储字节", + "description": "一次性保存最多字节的图像。空图像使用 TERMIX_MAX_IMAGE_STORAGE_BYTES 或 5 GiB。" }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "断开连接后仍保持会话", + "description": "在上述时间内,保持服务器上断开连接的终端处于活动状态,以便重新打开其标签页时可以从上次中断的地方继续操作。" }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "自动 Tmux", + "description": "在 tmux 中运行新主机的终端,以便会话在断开连接后仍然存在(主机上需要安装 tmux)。" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "新主持人主题", + "description": "新主机启动时使用的终端主题。" }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "新主机字体", + "description": "新主机启动时使用的终端字体。" }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "新主机字体大小", + "description": "新主机启动时使用的终端字体大小,以像素为单位。" }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "新主机的光标样式" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "新主机闪烁光标" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", + "label": "启用终端工具栏", "description": "在当前终端上显示该主机的工具和实时信息的 Dock栏" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "工具栏位置", + "description": "工具栏位于终端中的位置。您仍然可以从那里拖动它。", + "bottom": "底部中心", + "bottomLeft": "左下角", + "bottomRight": "右下角", + "top": "顶部中心", + "topLeft": "左上", + "topRight": "右上角" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "工具栏起始状态", + "description": "终端连接时工具栏是以展开形式还是最小化形式打开", + "expanded": "扩展", + "collapsed": "最小化" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "工具栏显示模式", + "description": "工具栏按钮的显示方式。“上次使用”选项会保留您在工具栏中选择的内容。", + "remember": "上次使用", + "icon": "仅图标", + "labeled": "图标和标签", + "expanded": "补充统计数据" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "显示实时统计数据", + "description": "在展开模式下,工具栏按钮上方显示实时主持人统计信息" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "空闲时淡出", + "description": "将工具栏淡出,直到鼠标悬停在其上方。" }, "enableCommandHistory": { "label": "命令历史", @@ -273,139 +273,139 @@ }, "enableTerminal": { "label": "启用终端", - "description": "Offer an SSH terminal for this host." + "description": "为该主机提供 SSH 终端。" }, "inheritAppearance": { - "label": "Use user defaults" + "label": "使用用户默认设置" }, "theme": { "label": "主题" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "闪烁的光标" }, "cursorStyle": { - "label": "Cursor style" + "label": "光标样式" }, "fontSize": { - "label": "Font size" + "label": "字体大小" }, "fontFamily": { - "label": "Font" + "label": "字体" }, "scrollback": { - "label": "Scrollback" + "label": "返回" }, "letterSpacing": { - "label": "Letter spacing" + "label": "字母间距" }, "lineHeight": { - "label": "Line height" + "label": "行高" }, "bellStyle": { - "label": "Bell" + "label": "钟" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "最小对比度" }, "backgroundImage": { - "label": "Background image" + "label": "背景图片" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "背景图像不透明度" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "自定义主题颜色" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "右键单击选择单词" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "选项是 Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "快速滚动键" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "快速滚动速度" }, "backspaceMode": { - "label": "Backspace" + "label": "退格键" }, "autoMosh": { - "label": "Auto mosh" + "label": "自动摇滚" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh 命令" }, "autoTmux": { - "label": "Auto tmux" + "label": "自动 tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "使用 SSH 标题" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "语法高亮" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "语法高亮类别" }, "linkClickBehavior": { - "label": "Link click" + "label": "点击链接" }, "localEcho": { - "label": "Local echo" + "label": "本地回声" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "主动提供密码提示信息" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "填写 sudo 提示符" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "自动重新连接" } }, "user": { "commandAutocomplete": { "label": "命令自动补全", - "description": "Show autocomplete while typing if you press tab" + "description": "输入时按 Tab 键可显示自动完成功能。" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "本地回声", + "description": "利用安全的本地按键预测来降低感知输入延迟" }, "linkClickBehavior": { "label": "终端链接点击", "description": "点击终端内链接时的默认行为" }, "customThemes": { - "label": "Saved themes" + "label": "已保存的主题" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "本地终端" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "使用实时终端会话", + "description": "允许其他功能(例如会话共享和录制)访问您的实时终端会话。" }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "读取命令历史记录", + "description": "允许其他功能(例如 AI 助手)读取您的命令历史记录。" } }, "hosts": { "tabTerminal": "终端", "addHost": "添加主机", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "应用此主题", "backgroundImageDesc": "终端背景图片的可选 URL", "backgroundImageLabel": "背景图片 URL", "backgroundImageOpacityLabel": "背景图片不透明度", "backspaceMode": "退格模式", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Control-H(BS)", "backspaceModeLabel": "退格模式", "backspaceModeNormal": "标准(DEL)", "behaviorAndAdvanced": "行为与高级设置", @@ -413,7 +413,7 @@ "bellStyleBoth": "两者皆有", "bellStyleLabel": "响铃样式", "bellStyleNone": "全不选", - "bellStyleSound": "Sound", + "bellStyleSound": "声音", "bellStyleVisual": "视觉", "colorTheme": "颜色主题", "cursorBlink": "光标闪烁", @@ -448,12 +448,12 @@ "customThemeSelection": "选中色", "customThemeWhite": "白色", "customThemeYellow": "黄色", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "删除此主题", "docsLink": "查看文档", "enableAutoMosh": "启用自动 Mosh", "enableAutoMoshDesc": "若可用,优先使用 Mosh 而非 SSH", "enableAutoTmux": "启用自动 Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "通过在 tmux 中运行(tmux 必须安装在主机上),可以在断开连接和浏览器重启后保持 shell 及其中运行的所有内容处于活动状态。", "fastScrollModifier": "快速滚动修饰键", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "快速滚动灵敏度", "fastScrollSensitivityLabel": "快速滚动灵敏度", "fontFamily": "字体族", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", + "fontFamilyCustomHint": "您可以选择一个内置字体,或者选择“自定义”并输入系统中已安装字体的确切名称(例如 MesloLGS NF、Noto Sans Mono)。Termix 无法自动安装字体,请先在您的操作系统上安装字体。", "fontFamilyCustomOption": "自定义...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomPlaceholder": "确切的字体名称,例如 MesloLGS NF", "fontFamilyLabel": "字体", "fontSize": "字体大小", "fontSizeLabel": "字体大小", @@ -479,28 +479,28 @@ "linkClickBehaviorLabel": "链接点击行为", "loadingHost": "正在加载主机...", "localEchoAuto": "自动", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoDesc": "在连接速度较慢的情况下,本地预测可安全打印的按键操作。密码提示和控制输入永远不会被回显。", + "localEchoLabel": "本地回声", "localEchoOff": "关闭", - "localEchoOn": "Always on", + "localEchoOn": "始终开启", "macOptionIsMetaLabel": "选项键发送 Meta", "macOptionIsMetaShortDesc": "禁用后,可在 macOS 上使用 Option/Alt 键输入特殊字符(例如 @ 或 |),而不是发送 Meta。", "moshCommand": "MOSH 命令", "moshCommandLabel": "Mosh 命令", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "尚未保存任何主题", "none": "无", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "当终端要求输入密码时,提示输入已保存的密码。关闭此选项可使此主机上的任何密码永不自动填充。", + "passwordPromptAutoFillLabel": "提供密码自动填充功能", + "autoReconnectLabel": "自动重新连接", + "autoReconnectDesc": "当 SSH 连接断开时(例如网络中断或睡眠后),会自动重新连接。保留滚动条。", "rightClickSelectsWord": "右键单击选择单词", "rightClickSelectsWordLabel": "右键选择单词", "rightClickSelectsWordShortDesc": "右键点击时选中光标下的单词", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "另存为全局主题", + "saveGlobalThemeError": "主题保存失败", + "saveGlobalThemeNamePrompt": "请为此主题输入名称", + "saveGlobalThemeSuccess": "主题已保存", + "savedThemesLabel": "已保存的主题", "scrollbackBufferLabel": "回滚缓冲区", "scrollbackMaxLines": "保留在历史记录中的最大行数", "sudoPasswordAutoFill": "Sudo 密码自动填充", @@ -534,10 +534,10 @@ "success": "成功" }, "proxmoxResultSkippedNoIp": "{{count}} 已跳过(未找到 IP )", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxStatsUrlCopied": "Proxmox 统计信息 URL 已复制到剪贴板", "rdpUrlCopied": "RDP URL 已复制", "vncUrlCopied": "VNC URL 已复制", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "步骤 CA", "guac": { "noCredential": "无凭据(下方直接填写凭据)", "authTypeDirect": "直接", @@ -556,18 +556,18 @@ "updateHostBtn": "更新主机", "addHostBtn": "添加主机" }, - "filterAuthVault": "Vault" + "filterAuthVault": "保险库" }, "nav": { "history": "历史记录", - "localTerminal": "Local Terminal", + "localTerminal": "本地终端", "sshTools": "SSH 工具", "terminal": "终端", - "macros": "Macros" + "macros": "宏" }, "sshTools": { "broadcastInputPlaceholder": "在此输入以广播按键...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "自动复制选定文本", "enableRightClickCopyPaste": "启用右键复制/粘贴", "fillPassword": "填充密码", "fillPasswordMissing": "{{count}} 个所选终端无保存的密码", @@ -583,123 +583,123 @@ "stopRecording": "停止录制" }, "keybindings": { - "copy": "Copy selection", + "copy": "复制选择", "paste": "粘贴", - "sendControlCode": "Send Ctrl+letter signal", + "sendControlCode": "发送 Ctrl+字母信号", "sendText": "发送文本", "controlCodeLabel": "字母", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "textLabel": "发送的文本", + "appendEnterLabel": "发送后按回车键", + "clipboardPermissionNote": "某些浏览器在首次使用时可能会提示授予剪贴板权限。", + "textRequired": "请输入要发送的文本", + "controlCodeRequired": "请输入单个字母作为控制码", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "复制所选内容(Ctrl+C,仅当选中文本时可用)", + "copyCtrlShiftC": "复制所选内容(Ctrl+Shift+C)", + "copyCmdC": "复制选定内容(Cmd+C)", + "pasteCtrlShiftV": "从剪贴板粘贴(Ctrl+Shift+V)", + "ctrlW": "向 shell 发送 Ctrl+W(阻止关闭浏览器标签页)", + "ctrlT": "向 shell 发送 Ctrl+T(阻止打开浏览器标签页)", + "ctrlN": "向 shell 发送 Ctrl+N(阻止打开浏览器窗口)", + "ctrlQ": "向 shell 发送 Ctrl+Q(阻止退出浏览器)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "宏", + "description": "在终端中运行已保存的一系列命令,并对服务器返回的内容做出反应。", "target": "目标", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "没有终端打开", + "empty": "暂无宏", + "emptyHint": "创建宏来自动化终端流程,例如登录、重启服务或回答提示。", + "create": "新宏", + "back": "返回宏", "name": "名称", "namePlaceholder": "重启 Web 服务器", - "nameRequired": "Give the macro a name before saving", + "nameRequired": "保存之前,请给宏命名。", "descriptionLabel": "描述", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "此宏的功能(可选)", "unsaved": "未保存的更改", "save": "保存", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "宏已保存", + "saveFailed": "无法保存宏", "delete": "删除", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "删除这个宏?", + "deleteBody": "\"{{name}}\" 将被永久删除。此操作无法撤销。", + "deleted": "宏已删除", "cancel": "取消", "run": "运行", "stop": "停止", "running": "运行中...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "completed": "宏已完成", + "failed": "宏失败", + "loadFailed": "无法加载宏。", + "needTerminal": "首先打开并连接终端。", + "noSteps": "此宏目前尚无步骤。请在下方添加步骤。", + "addStep": "添加步骤", + "stepNumber": "步骤 {{number}}", + "removeStep": "移除步骤", + "confirmRunTitle": "运行这个宏?", + "confirmRunBody": "\"{{name}}\" 将向 {{host}} 发送命令。", + "confirmRunAction": "运行宏", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "发送命令", + "help": "在终端中输入文本,就像你手动输入一样。" }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "等待输出", + "help": "暂停,直到服务器打印出您指定的文本,例如密码提示。" }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "暂停", + "help": "等待一段固定时间后再执行下一步操作。" }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "如果输出包含", + "help": "检查服务器目前为止打印的所有内容,然后运行两个分支中的一个。" }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "重复", + "help": "将其中的步骤执行设定的次数。" } }, "send": { - "text": "Command or text", + "text": "命令或文本", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "发送后按回车键", + "pressEnterHelp": "关闭此功能即可输入文本而不提交。" }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "等待输出包含", "patternPlaceholder": "密码:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", + "timeout": "放弃", + "onTimeout": "如果它从未出现", + "stop": "停止宏", "continue": "无论如何都继续" }, "delay": { - "duration": "Wait for" + "duration": "等待" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "如果输出包含", + "patternPlaceholder": "活跃:正在运行", + "then": "然后这样做", + "else": "否则就这样做", + "emptyBranch": "没有步骤" }, "repeat": { - "count": "Number of times", + "count": "次数", "times": "次" }, "match": { - "useRegex": "Match with a regular expression", + "useRegex": "使用正则表达式进行匹配", "useRegexHelp": "关闭此选项以完全按原文匹配文本。", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "invalidRegex": "这不是有效的正则表达式,它将被匹配为纯文本。" }, "seconds": "秒", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要远程服务器。请在“设置”中连接远程服务器以使用此连接类型。" } } diff --git a/plugins/ssh-terminal/locales/translated/zh_TW.json b/plugins/ssh-terminal/locales/translated/zh_TW.json index bcde638c3..ba375c82c 100644 --- a/plugins/ssh-terminal/locales/translated/zh_TW.json +++ b/plugins/ssh-terminal/locales/translated/zh_TW.json @@ -25,9 +25,9 @@ "tab": "Tab" }, "terminal": { - "autoTmuxEnableFailed": "Failed to enable Auto-Tmux", - "autoTmuxEnabled": "Auto-Tmux enabled for {{host}}. It applies from the next connection.", - "clipboardHttpWarning": "Couldn't read the clipboard. Some browsers restrict clipboard access outside HTTPS - try Ctrl+V instead, or serve Termix over HTTPS.", + "autoTmuxEnableFailed": "啟用自動 Tmux 失敗", + "autoTmuxEnabled": "對 {{host}}啟用自動 Tmux。它從下一個連接開始生效。", + "clipboardHttpWarning": "無法讀取剪貼簿內容。部分瀏覽器限制在 HTTPS 協定之外存取剪貼簿-請嘗試使用 Ctrl+V 貼上,或透過 HTTPS 協定存取 Termix。", "closeTab": "關閉", "connecting": "連線中...", "connectionLost": "連線中斷", @@ -44,18 +44,18 @@ "reconnect": "重新連線", "reconnected": "已成功重新連線", "reconnecting": "重新連線中... ({{attempt}}/{{max}})", - "autoReconnecting": "Connection lost, reconnecting...", - "searchCaseSensitive": "Match Case", - "searchClose": "Close (Escape)", - "searchNext": "Next Match (Enter)", - "searchNoResults": "No results", - "searchPlaceholder": "Find", - "searchPrevious": "Previous Match (Shift+Enter)", - "searchRegex": "Use Regular Expression", - "searchResultCount": "{{index}} of {{count}}", - "searchWholeWord": "Match Whole Word", - "sessionExpiredNotice": "Your previous session on {{host}} expired after {{minutes}} minutes disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", - "sessionExpiredNoticeNoMinutes": "Your previous session on {{host}} expired while disconnected; the shell and anything running in it are gone. Enable Auto-Tmux on this host to keep sessions alive.", + "autoReconnecting": "連線遺失,正在重新連線…", + "searchCaseSensitive": "火柴盒", + "searchClose": "關閉(退出)", + "searchNext": "下一場比賽(輸入)", + "searchNoResults": "沒有結果", + "searchPlaceholder": "尋找", + "searchPrevious": "最後一場比賽(Shift+Enter)", + "searchRegex": "使用正規表示式", + "searchResultCount": "{{index}} 的 {{count}}", + "searchWholeWord": "整詞匹配", + "sessionExpiredNotice": "您之前在 {{host}} 上的會話已在 {{minutes}} 分鐘後斷開連接並過期;shell 及其中運行的所有內容均已丟失。請在此主機上啟用 Auto-Tmux 以保持會話連線。", + "sessionExpiredNoticeNoMinutes": "您先前在 {{host}} 上的會話已過期,且已斷線;shell 及其中執行的所有內容均已遺失。請在此主機上啟用 Auto-Tmux 以保持會話有效。", "sessionTakenOver": "工作階段已在另一個分頁中開啟。正在重新連線…", "tmuxAttached": "已附加的用戶端", "tmuxAttachedCount": "{{count}} 個已附加", @@ -81,35 +81,35 @@ "clipboardWriteFailed": "複製到剪貼簿失敗。請確認頁面是透過 HTTPS 或 localhost 提供。", "connected": "已連線", "totpCodeLabel": "驗證碼", - "duplicateTab": "Duplicate tab", - "imageChooseFile": "Choose an image file", - "imageUploaded": "Image uploaded: {{path}}", - "imageClipboardUnavailable": "This browser cannot read images from the clipboard", - "imageClipboardEmpty": "No image found in the clipboard", - "localShell": "Local terminal shell", - "autocompleteHintComplete": "Tab or Enter to complete", - "autocompleteHintNavigate": "↑↓ to navigate", - "autocompleteHintClose": "Esc to close" + "duplicateTab": "重複標籤頁", + "imageChooseFile": "選擇圖像文件", + "imageUploaded": "上傳圖片: {{path}}", + "imageClipboardUnavailable": "此瀏覽器無法讀取剪貼簿中的圖像", + "imageClipboardEmpty": "剪貼簿中未找到影像", + "localShell": "本地端 shell", + "autocompleteHintComplete": "按 Tab 鍵或 Enter 鍵完成", + "autocompleteHintNavigate": "向上向下導航", + "autocompleteHintClose": "按 Esc 鍵關閉" }, "terminalToolbar": { - "detachTmux": "Detach tmux", - "detachTmuxDescription": "Detach tmux session", - "dismissError": "Dismiss image error", - "hideToolbar": "Hide toolbar", - "image": "Image actions (images only)", - "imageActionFailed": "Image action failed", - "layout": "Toolbar display mode", - "layoutExpanded": "Expanded with metrics", - "layoutIcon": "Icon only", - "layoutLabeled": "Icons and labels", - "moveToolbar": "Move toolbar", - "moveToolbarHint": "Drag to reposition the toolbar", - "paste": "Paste image", - "pasteImage": "Paste image from clipboard (images only)", + "detachTmux": "分離 tmux", + "detachTmuxDescription": "分離 tmux 會話", + "dismissError": "忽略圖像錯誤", + "hideToolbar": "隱藏工具列", + "image": "圖片操作(僅限圖片)", + "imageActionFailed": "圖片操作失敗", + "layout": "工具列顯示模式", + "layoutExpanded": "擴展了指標", + "layoutIcon": "僅圖示", + "layoutLabeled": "圖標和標籤", + "moveToolbar": "移動工具列", + "moveToolbarHint": "拖曳即可重新定位工具列", + "paste": "貼上圖片", + "pasteImage": "從剪貼簿貼上圖片(僅限圖片)", "retry": "重試", "showToolbar": "展開工具列", - "upload": "Upload image", - "uploadImage": "Upload an image to the host", + "upload": "上傳圖片", + "uploadImage": "將圖片上傳到主機", "uploadingImage": "上傳中..." }, "history": { @@ -119,153 +119,153 @@ "clearAll": "全部清除", "noHistoryEntries": "無歷史記錄項目", "trackingDisabled": "歷史記錄追蹤已停用", - "trackingDisabledHint": "Turn on Command History in this host's SSH Terminal tab.", - "commandCount_one": "{{count}} command", - "commandCount_other": "{{count}} commands" + "trackingDisabledHint": "在該主機的 SSH 終端機標籤中啟用命令歷史記錄。", + "commandCount_one": "{{count}} 指令", + "commandCount_other": "{{count}} 指令" }, "touchInput": { - "enabled": "Enable Touch Input", - "enabledDesc": "Allow one-finger touch scrolling in terminals", - "momentumEnabled": "Enable Momentum", - "momentumEnabledDesc": "Continue scrolling briefly after a swipe", + "enabled": "啟用觸控輸入", + "enabledDesc": "允許終端單指觸摸滾動", + "momentumEnabled": "啟用動能", + "momentumEnabledDesc": "滑動後繼續短暫滾動。", "advanced": "進階", "resetDefaults": "重設為預設值", - "dragThreshold": "Drag threshold", - "maxWheelDelta": "Maximum wheel delta", - "momentumSampleWindow": "Momentum sample window", - "releaseGracePeriod": "Release grace period", - "minimumVelocity": "Minimum velocity", - "maximumVelocity": "Maximum velocity", - "maximumDuration": "Maximum duration", - "maximumTravel": "Maximum travel", - "decayTime": "Decay time", - "pixelsPerTick": "Pixels per tick", - "maximumFrameInterval": "Maximum frame interval", - "maximumTicksPerFrame": "Maximum ticks per frame" + "dragThreshold": "阻力閾值", + "maxWheelDelta": "最大車輪增量", + "momentumSampleWindow": "動量樣本窗口", + "releaseGracePeriod": "發布寬限期", + "minimumVelocity": "最低速度", + "maximumVelocity": "最大速度", + "maximumDuration": "最長持續時間", + "maximumTravel": "最大行程", + "decayTime": "衰減時間", + "pixelsPerTick": "每刻像素數", + "maximumFrameInterval": "最大訊框間隔", + "maximumTicksPerFrame": "每格最大幀數" }, "imageStorage": { - "instanceId": "Terminal session instance ID", - "instanceIdDesc": "Instance ID of one of your connected terminal tabs, used to test visibility.", - "selectedModeUnavailable": "Unavailable", + "instanceId": "終端機會話實例 ID", + "instanceIdDesc": "用於測試可見性的已連接終端選項卡的實例 ID。", + "selectedModeUnavailable": "不可用", "test": "測試", - "testing": "Testing...", - "testFailed": "Failed to test image storage", - "testConnected": "Terminal session is connected.", - "testNotConnected": "No connected terminal session with this instance ID.", - "testSelectedMode": "An upload would use: {{mode}}", - "testLocalVisible": "The local directory is visible from the connected host.", - "testLocalNotVisible": "The local directory is NOT visible from the connected host." + "testing": "測試中…", + "testFailed": "影像儲存測試失敗", + "testConnected": "終端會話已連線。", + "testNotConnected": "沒有與此實例 ID 連線的終端會話。", + "testSelectedMode": "上傳時請使用: {{mode}}", + "testLocalVisible": "本機目錄對連接的主機可見。", + "testLocalNotVisible": "從連線的主機上看不到本機目錄。" }, "settings": { "admin": { "group": { - "touch": "Touch Input", - "images": "Image Storage", + "touch": "觸摸輸入", + "images": "影像儲存", "sessions": "工作階段", - "newHosts": "New Hosts" + "newHosts": "新主持人" }, "sessionTimeoutMinutes": { - "label": "Terminal Session Persistence", - "description": "How long a disconnected terminal is kept alive on the server before it is closed. Min 1, max 1440 minutes. For sessions that must outlive this, enable Auto-Tmux on the host." + "label": "終端會話持久性", + "description": "斷開連線的終端機在伺服器上保持活動狀態的時間,最短 1 分鐘,最長 1440 分鐘。對於必須保持活動狀態超過此時間的會話,請在主機上啟用自動終端機重複使用 (Auto-Tmux)。" }, "commandHistoryEnabled": { "label": "指令歷程", "description": "允許記錄指令歷史記錄。停用時,無論各主機設定如何,都不會儲存歷史記錄。" }, "commandHistoryForNewHosts": { - "label": "Command history for new hosts", - "description": "Whether new hosts start with command history on." + "label": "新主機的命令歷史記錄", + "description": "是否開啟新主機的命令歷史記錄功能。" }, "imageStorageMode": { - "label": "Storage Mode", - "description": "Where pasted and uploaded terminal images are written. Auto picks by connection, Local and Remote (SFTP) are fixed.", + "label": "儲存模式", + "description": "終端鏡像貼上和上傳位置已設定。自動選擇連接、本機和遠端(SFTP)鏡像的功能已修復。", "auto": "自動", "local": "本機", - "remoteSftp": "Remote (SFTP)" + "remoteSftp": "遠端(SFTP)" }, "imageLocalDir": { - "label": "Local directory", - "description": "Absolute path on the Termix backend where local mode writes images. Never shown after saving. Empty uses TERMIX_IMAGE_DIR." + "label": "本地目錄", + "description": "Termix 後端本機模式寫入映像的絕對路徑。儲存後不再顯示。空路徑使用 TERMIX_IMAGE_DIR。" }, "imageHostPath": { - "label": "Host path", - "description": "The host-side view of the local directory that terminal agents receive." + "label": "主機路徑", + "description": "終端代理接收到的本機目錄的主機端視圖。" }, "imageTtlMs": { - "label": "TTL (ms)", - "description": "How long an uploaded image is kept, in milliseconds. Empty uses TERMIX_IMAGE_TTL_MS or one hour." + "label": "TTL(毫秒)", + "description": "上傳的圖片保留時間,以毫秒為單位。空圖片使用 TERMIX_IMAGE_TTL_MS,即一小時。" }, "imageMaxCount": { - "label": "Max image count", - "description": "Most images kept at once. Empty uses TERMIX_MAX_IMAGE_COUNT or 100." + "label": "最大影像數量", + "description": "一次保留大部分影像。空集合使用 TERMIX_MAX_IMAGE_COUNT 或 100。" }, "imageMaxBytes": { - "label": "Max storage bytes", - "description": "Most bytes of images kept at once. Empty uses TERMIX_MAX_IMAGE_STORAGE_BYTES or 5 GiB." + "label": "最大儲存位元組", + "description": "一次儲存最多位元組的圖像。空影像使用 TERMIX_MAX_IMAGE_STORAGE_BYTES 或 5 GiB。" }, "sessionPersistence": { - "label": "Keep sessions after disconnect", - "description": "Keep a disconnected terminal alive on the server for the time above, so reopening its tab picks up where it left off." + "label": "斷開連線後仍保持會話", + "description": "在上述時間內,保持伺服器上斷開連線的終端機處於活動狀態,以便重新開啟其標籤頁時可以從上次中斷的地方繼續操作。" }, "newHostAutoTmux": { - "label": "Auto-Tmux", - "description": "Run new hosts' terminals inside tmux so sessions survive disconnects (needs tmux on the host)" + "label": "自動 Tmux", + "description": "在 tmux 中執行新主機的終端,以便在斷開連線後會話仍然存在(主機上需要安裝 tmux)。" }, "newHostTheme": { - "label": "Theme for new hosts", - "description": "The terminal theme a new host starts with." + "label": "新主持人主題", + "description": "新主機啟動時所使用的終端主題。" }, "newHostFontFamily": { - "label": "Font for new hosts", - "description": "The terminal font a new host starts with." + "label": "新主機字體", + "description": "新主機啟動時所使用的終端字體。" }, "newHostFontSize": { - "label": "Font size for new hosts", - "description": "The terminal font size a new host starts with, in pixels." + "label": "新主機字體大小", + "description": "新主機啟動時所使用的終端字體大小,以像素為單位。" }, "newHostCursorStyle": { - "label": "Cursor style for new hosts" + "label": "新主機的遊標樣式" }, "newHostCursorBlink": { - "label": "Blinking cursor for new hosts" + "label": "新主機閃爍遊標" } }, "host": { "enableTerminalToolbar": { - "label": "Enable Terminal Toolbar", - "description": "Show a quick-access toolbar docked to the active terminal for this host's tools and live stats" + "label": "啟用終端機工具列", + "description": "在目前終端上顯示一個快速存取工具列,用於存取該主機的工具和即時統計資訊。" }, "terminalToolbarPosition": { - "label": "Toolbar Position", - "description": "Where the toolbar sits in the terminal. You can still drag it from there.", - "bottom": "Bottom center", - "bottomLeft": "Bottom left", - "bottomRight": "Bottom right", - "top": "Top center", - "topLeft": "Top left", - "topRight": "Top right" + "label": "工具列位置", + "description": "工具列位於終端機中的位置。您仍然可以從那裡拖曳它。", + "bottom": "底部中心", + "bottomLeft": "左下角", + "bottomRight": "右下角", + "top": "頂部中心", + "topLeft": "左上", + "topRight": "右上角" }, "terminalToolbarStartState": { - "label": "Toolbar Start State", - "description": "Whether the toolbar opens expanded or minimized when the terminal connects", - "expanded": "Expanded", - "collapsed": "Minimized" + "label": "工具列起始狀態", + "description": "終端連接時工具列是以展開形式還是最小化形式打開", + "expanded": "擴充", + "collapsed": "最小化" }, "terminalToolbarDisplay": { - "label": "Toolbar Display Mode", - "description": "How toolbar buttons are shown. Last used keeps whatever you picked in the toolbar.", - "remember": "Last used", - "icon": "Icon only", - "labeled": "Icons and labels", - "expanded": "Expanded with stats" + "label": "工具列顯示模式", + "description": "工具列按鈕的顯示方式。 「上次使用」選項會保留您在工具列中選擇的內容。", + "remember": "上次使用", + "icon": "僅圖示", + "labeled": "圖標和標籤", + "expanded": "補充統計數據" }, "terminalToolbarShowStatus": { - "label": "Show Live Stats", - "description": "Show live host stats above the toolbar buttons in expanded mode" + "label": "顯示即時統計數據", + "description": "在展開模式下,工具列按鈕上方顯示即時主持人統計訊息" }, "terminalToolbarFade": { - "label": "Fade When Idle", - "description": "Fade the toolbar out until you hover over it" + "label": "空閒時淡出", + "description": "將工具列淡出,直到滑鼠懸停在其上方。" }, "enableCommandHistory": { "label": "指令歷程", @@ -273,148 +273,148 @@ }, "enableTerminal": { "label": "啟用終端機", - "description": "Offer an SSH terminal for this host." + "description": "為該主機提供 SSH 終端。" }, "inheritAppearance": { - "label": "Use user defaults" + "label": "使用用戶預設設定" }, "theme": { "label": "主題" }, "cursorBlink": { - "label": "Blinking cursor" + "label": "閃爍的遊標" }, "cursorStyle": { - "label": "Cursor style" + "label": "遊標樣式" }, "fontSize": { - "label": "Font size" + "label": "字體大小" }, "fontFamily": { - "label": "Font" + "label": "字體" }, "scrollback": { - "label": "Scrollback" + "label": "返回" }, "letterSpacing": { - "label": "Letter spacing" + "label": "字母間距" }, "lineHeight": { - "label": "Line height" + "label": "行高" }, "bellStyle": { - "label": "Bell" + "label": "鐘" }, "minimumContrastRatio": { - "label": "Minimum contrast ratio" + "label": "最小對比度" }, "backgroundImage": { - "label": "Background image" + "label": "背景圖片" }, "backgroundImageOpacity": { - "label": "Background image opacity" + "label": "背景圖像不透明度" }, "customThemeColors": { - "label": "Custom theme colors" + "label": "自訂主題顏色" }, "rightClickSelectsWord": { - "label": "Right click selects word" + "label": "右鍵單擊選擇單字" }, "macOptionIsMeta": { - "label": "Option is Meta" + "label": "選項是 Meta" }, "fastScrollModifier": { - "label": "Fast scroll key" + "label": "快速滾動鍵" }, "fastScrollSensitivity": { - "label": "Fast scroll speed" + "label": "快速滾動速度" }, "backspaceMode": { - "label": "Backspace" + "label": "退格鍵" }, "autoMosh": { - "label": "Auto mosh" + "label": "自動衝撞" }, "moshCommand": { - "label": "Mosh command" + "label": "Mosh 指令" }, "autoTmux": { - "label": "Auto tmux" + "label": "自動 tmux" }, "useSSHTitle": { - "label": "Use the SSH title" + "label": "使用 SSH 標題" }, "syntaxHighlighting": { - "label": "Syntax highlighting" + "label": "語法高亮" }, "syntaxHighlightingOptions": { - "label": "Syntax highlighting categories" + "label": "語法高亮類別" }, "linkClickBehavior": { - "label": "Link click" + "label": "點擊連結" }, "localEcho": { - "label": "Local echo" + "label": "本地迴聲" }, "passwordPromptAutoFill": { - "label": "Offer to fill password prompts" + "label": "主動提供密碼提示訊息" }, "sudoPasswordAutoFill": { - "label": "Fill sudo prompts" + "label": "填寫 sudo 提示符" }, "autoReconnect": { - "label": "Reconnect automatically" + "label": "自動重新連接" } }, "user": { "commandAutocomplete": { "label": "指令自動完成", - "description": "Show autocomplete while typing if you press tab" + "description": "輸入時按 Tab 鍵可顯示自動完成功能。" }, "localEcho": { - "label": "Local Echo", - "description": "Reduce perceived input latency using safe local keystroke prediction" + "label": "本地迴聲", + "description": "利用安全的本地按鍵預測來降低感知輸入延遲" }, "linkClickBehavior": { "label": "終端機連結點選", "description": "在終端機中點選連結時的預設行為" }, "customThemes": { - "label": "Saved themes" + "label": "已儲存的主題" } } }, "palette": { - "localTerminal": "Local Terminal" + "localTerminal": "本地端" }, "permissions": { "sessions": { - "title": "Use live terminal sessions", - "description": "Lets other features, such as session sharing and recording, reach your live terminal sessions." + "title": "使用即時終端會話", + "description": "允許其他功能(例如會話共享和錄製)存取您的即時終端會話。" }, "history": { - "title": "Read command history", - "description": "Lets other features, such as the AI assistant, read your command history." + "title": "讀取命令歷史記錄", + "description": "允許其他功能(例如 AI 助理)讀取您的命令歷史記錄。" } }, "hosts": { "tabTerminal": "終端機", "addHost": "新增主機", - "applyGlobalThemeTooltip": "Apply this theme", + "applyGlobalThemeTooltip": "應用此主題", "backgroundImageDesc": "選用的終端機背景圖片 URL", "backgroundImageLabel": "背景圖片 URL", "backgroundImageOpacityLabel": "背景圖片不透明度", "backspaceMode": "退格鍵模式", - "backspaceModeControlH": "Control-H (BS)", + "backspaceModeControlH": "Control-H(BS)", "backspaceModeLabel": "退格鍵模式", - "backspaceModeNormal": "Normal (DEL)", + "backspaceModeNormal": "正常(DEL)", "behaviorAndAdvanced": "行為與進階", "bellStyle": "鈴聲樣式", - "bellStyleBoth": "Both", + "bellStyleBoth": "兩個都", "bellStyleLabel": "鈴聲樣式", "bellStyleNone": "沒有", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", + "bellStyleSound": "聲音", + "bellStyleVisual": "視覺的", "colorTheme": "色彩主題", "cursorBlink": "游標閃爍", "cursorBlinking": "游標閃爍", @@ -448,12 +448,12 @@ "customThemeSelection": "選取範圍", "customThemeWhite": "白色", "customThemeYellow": "黃色", - "deleteGlobalThemeTooltip": "Delete this theme", + "deleteGlobalThemeTooltip": "刪除此主題", "docsLink": "檢視文件", "enableAutoMosh": "啟用自動 Mosh", "enableAutoMoshDesc": "如果可用,優先使用 Mosh 而非 SSH", "enableAutoTmux": "啟用自動 Tmux", - "enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)", + "enableAutoTmuxDesc": "透過在 tmux 中執行(tmux 必須安裝在主機上),可以在斷開連線和瀏覽器重新啟動後保持 shell 及其中執行的所有內容處於活動狀態。", "fastScrollModifier": "快速捲動修飾鍵", "fastScrollModifierAlt": "Alt", "fastScrollModifierCtrl": "Ctrl", @@ -462,9 +462,9 @@ "fastScrollSensitivity": "快速捲動靈敏度", "fastScrollSensitivityLabel": "快速捲動靈敏度", "fontFamily": "字型系列", - "fontFamilyCustomHint": "Pick a bundled font, or choose Custom and type the exact name of a font already installed on your system (e.g. MesloLGS NF, Noto Sans Mono). Termix cannot install fonts for you, install it on your OS first.", - "fontFamilyCustomOption": "Custom...", - "fontFamilyCustomPlaceholder": "Exact font name, e.g. MesloLGS NF", + "fontFamilyCustomHint": "您可以選擇內建字體,或選擇「自訂」並輸入系統中已安裝字體的確切名稱(例如 MesloLGS NF、Noto Sans Mono)。 Termix 無法自動安裝字體,請先在您的作業系統上安裝字體。", + "fontFamilyCustomOption": "風俗...", + "fontFamilyCustomPlaceholder": "確切的字體名稱,例如 MesloLGS NF", "fontFamilyLabel": "字型系列", "fontSize": "字型大小", "fontSizeLabel": "字型大小", @@ -478,29 +478,29 @@ "linkClickBehaviorDirect": "直接開啟", "linkClickBehaviorLabel": "連結點擊行為", "loadingHost": "正在載入主機...", - "localEchoAuto": "Automatic", - "localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.", - "localEchoLabel": "Local Echo", + "localEchoAuto": "自動的", + "localEchoDesc": "在連線速度較慢的情況下,本地預測可安全列印的按鍵操作。密碼提示和控制輸入永遠不會被回顯。", + "localEchoLabel": "本地迴聲", "localEchoOff": "關閉", - "localEchoOn": "Always on", - "macOptionIsMetaLabel": "Option Key Sends Meta", - "macOptionIsMetaShortDesc": "Disable to type special characters (like @ or |) with the Option/Alt key on macOS instead of sending Meta", + "localEchoOn": "始終開啟", + "macOptionIsMetaLabel": "選項鍵發送元數據", + "macOptionIsMetaShortDesc": "停用在 macOS 上使用 Option/Alt 鍵輸入特殊字元(例如 @ 或 |)而不是傳送 Meta 訊息的功能。", "moshCommand": "MOSH 指令", "moshCommandLabel": "Mosh 命令", - "noSavedThemes": "No saved themes yet", + "noSavedThemes": "尚未儲存任何主題", "none": "無", - "passwordPromptAutoFillDesc": "Offer to fill in the saved password when the terminal asks for one. Turn off to never auto-fill any password on this host.", - "passwordPromptAutoFillLabel": "Offer Password Auto-fill", - "autoReconnectLabel": "Auto Reconnect", - "autoReconnectDesc": "Reconnect on its own when the SSH connection drops, like after a network blip or sleep. Keeps the scrollback.", + "passwordPromptAutoFillDesc": "當終端機要求輸入密碼時,提示輸入已儲存的密碼。關閉此選項可使此主機上的任何密碼永不自動填入。", + "passwordPromptAutoFillLabel": "提供密碼自動填入功能", + "autoReconnectLabel": "自動重新連接", + "autoReconnectDesc": "當 SSH 連線中斷時(例如網路中斷或睡眠後),會自動重新連線。保留滾動條。", "rightClickSelectsWord": "按右鍵選取單字", "rightClickSelectsWordLabel": "右鍵選取單字", "rightClickSelectsWordShortDesc": "右鍵點擊時選取游標下的單字", - "saveAsGlobalTheme": "Save as Global Theme", - "saveGlobalThemeError": "Failed to save theme", - "saveGlobalThemeNamePrompt": "Enter a name for this theme", - "saveGlobalThemeSuccess": "Theme saved", - "savedThemesLabel": "Saved Themes", + "saveAsGlobalTheme": "另存為全域主題", + "saveGlobalThemeError": "主題保存失敗", + "saveGlobalThemeNamePrompt": "請為此主題輸入名稱", + "saveGlobalThemeSuccess": "主題已儲存", + "savedThemesLabel": "已儲存的主題", "scrollbackBufferLabel": "回滾緩衝區", "scrollbackMaxLines": "歷史記錄保留的最大行數", "sudoPasswordAutoFill": "Sudo 密碼自動填寫", @@ -533,11 +533,11 @@ "proxmoxLastSyncStatus": { "success": "成功" }, - "proxmoxResultSkippedNoIp": "{{count}} skipped (no IP found)", - "proxmoxStatsUrlCopied": "Proxmox Stats URL copied to clipboard", + "proxmoxResultSkippedNoIp": "{{count}} 已跳過(找不到 IP 位址)", + "proxmoxStatsUrlCopied": "Proxmox 統計資料 URL 已複製到剪貼簿", "rdpUrlCopied": "RDP URL 已複製", "vncUrlCopied": "VNC URL 已複製", - "filterAuthStepca": "Step CA", + "filterAuthStepca": "步驟 CA", "guac": { "noCredential": "無憑證(下方直接輸入憑證)", "authTypeDirect": "直接", @@ -556,18 +556,18 @@ "updateHostBtn": "更新主機", "addHostBtn": "新增主機" }, - "filterAuthVault": "Vault" + "filterAuthVault": "保險庫" }, "nav": { "history": "歷史記錄", - "localTerminal": "Local Terminal", + "localTerminal": "本地端", "sshTools": "SSH 工具", "terminal": "終端機", - "macros": "Macros" + "macros": "宏" }, "sshTools": { "broadcastInputPlaceholder": "在此輸入以廣播按鍵輸入...", - "copyOnSelect": "Copy selected text automatically", + "copyOnSelect": "自動複製選取文本", "enableRightClickCopyPaste": "啟用右鍵複製/貼上", "fillPassword": "填入密碼", "fillPasswordMissing": "選取的 {{count}} 個終端機沒有已儲存的密碼", @@ -583,123 +583,123 @@ "stopRecording": "停止錄製" }, "keybindings": { - "copy": "Copy selection", + "copy": "複製選擇", "paste": "貼上", - "sendControlCode": "Send Ctrl+letter signal", - "sendText": "Send text", - "controlCodeLabel": "Letter", - "textLabel": "Text to send", - "appendEnterLabel": "Press Enter after sending", - "clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.", - "textRequired": "Enter the text to send", - "controlCodeRequired": "Enter a single letter for the control code", + "sendControlCode": "發送 Ctrl+字母訊號", + "sendText": "傳簡訊", + "controlCodeLabel": "信", + "textLabel": "發送的文字", + "appendEnterLabel": "發送後按回車鍵", + "clipboardPermissionNote": "某些瀏覽器在首次使用時可能會提示授予剪貼簿權限。", + "textRequired": "請輸入要發送的文字", + "controlCodeRequired": "請輸入單一字母作為控制碼", "builtIn": { - "copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)", - "copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)", - "copyCmdC": "Copy selection (Cmd+C)", - "pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)", - "ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)", - "ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)", - "ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)", - "ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)" + "copyCtrlC": "複製所選內容(Ctrl+C,僅在選取文字時可用)", + "copyCtrlShiftC": "複製所選內容(Ctrl+Shift+C)", + "copyCmdC": "複製選定內容(Cmd+C)", + "pasteCtrlShiftV": "從剪貼簿貼上(Ctrl+Shift+V)", + "ctrlW": "向 shell 發送 Ctrl+W(阻止關閉瀏覽器標籤頁)", + "ctrlT": "向 shell 發送 Ctrl+T(阻止開啟瀏覽器標籤頁)", + "ctrlN": "向 shell 發送 Ctrl+N(阻止開啟瀏覽器視窗)", + "ctrlQ": "向 shell 發送 Ctrl+Q(阻止退出瀏覽器)" } }, "macros": { - "title": "Macros", - "description": "Run a saved series of commands in a terminal, and react to what the server sends back.", + "title": "宏", + "description": "在終端機中執行已儲存的一系列命令,並對伺服器傳回的內容做出反應。", "target": "目標", - "noTerminal": "No terminal open", - "empty": "No macros yet", - "emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.", - "create": "New macro", - "back": "Back to macros", + "noTerminal": "沒有終端機打開", + "empty": "暫無宏", + "emptyHint": "建立一個巨集來自動化終端流程,例如登入、重新啟動服務或回答提示。", + "create": "新宏", + "back": "回傳宏", "name": "名稱", - "namePlaceholder": "Restart web server", - "nameRequired": "Give the macro a name before saving", + "namePlaceholder": "重啟Web伺服器", + "nameRequired": "儲存之前,請先為巨集命名。", "descriptionLabel": "說明", - "descriptionPlaceholder": "What this macro does (optional)", + "descriptionPlaceholder": "此巨集的功能(選用)", "unsaved": "未儲存的變更", "save": "儲存", - "saved": "Macro saved", - "saveFailed": "Could not save the macro", + "saved": "巨集已儲存", + "saveFailed": "無法保存巨集", "delete": "刪除", - "deleteTitle": "Delete this macro?", - "deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.", - "deleted": "Macro deleted", + "deleteTitle": "刪除這個巨集?", + "deleteBody": "“{{name}}”將永久刪除。此操作無法撤銷。", + "deleted": "巨集已刪除", "cancel": "取消", "run": "執行", "stop": "停止位元", - "running": "Running...", - "completed": "Macro finished", - "failed": "Macro failed", - "loadFailed": "Could not load macros", - "needTerminal": "Open and connect a terminal first", - "noSteps": "This macro has no steps yet. Add one below.", - "addStep": "Add step", - "stepNumber": "Step {{number}}", - "removeStep": "Remove step", - "confirmRunTitle": "Run this macro?", - "confirmRunBody": "\"{{name}}\" will send commands to {{host}}.", - "confirmRunAction": "Run macro", + "running": "跑步...", + "completed": "巨集已完成", + "failed": "巨集失敗", + "loadFailed": "無法載入巨集。", + "needTerminal": "首先打開並連接終端。", + "noSteps": "此巨集目前尚無步驟。請在下方新增步驟。", + "addStep": "新增步驟", + "stepNumber": "步驟 {{number}}", + "removeStep": "移除步驟", + "confirmRunTitle": "運行這個巨集?", + "confirmRunBody": "\"{{name}}\" 將向 {{host}} 傳送指令。", + "confirmRunAction": "運行巨集", "stepTypes": { "send": { - "label": "Send command", - "help": "Types text into the terminal, the same as if you typed it." + "label": "發送命令", + "help": "在終端機中輸入文本,就像你手動輸入一樣。" }, "wait": { - "label": "Wait for output", - "help": "Pauses until the server prints the text you name, like a password prompt." + "label": "等待輸出", + "help": "暫停,直到伺服器列印您指定的文本,例如密碼提示。" }, "delay": { - "label": "Pause", - "help": "Waits a fixed amount of time before the next step." + "label": "暫停", + "help": "等待一段固定時間後再執行下一步操作。" }, "if": { - "label": "If output contains", - "help": "Checks everything the server has printed so far, then runs one of two branches." + "label": "如果輸出包含", + "help": "檢查伺服器目前為止列印的所有內容,然後執行兩個分支中的一個。" }, "repeat": { - "label": "Repeat", - "help": "Runs the steps inside it a set number of times." + "label": "重複", + "help": "將其中的步驟執行設定的次數。" } }, "send": { - "text": "Command or text", + "text": "命令或文字", "textPlaceholder": "systemctl restart nginx", - "pressEnter": "Press Enter after sending", - "pressEnterHelp": "Turn this off to type text without submitting it." + "pressEnter": "發送後按回車鍵", + "pressEnterHelp": "關閉此功能即可輸入文字而不提交。" }, "wait": { - "pattern": "Wait until the output contains", + "pattern": "等待輸出包含", "patternPlaceholder": "密碼:", - "timeout": "Give up after", - "onTimeout": "If it never appears", - "stop": "Stop the macro", - "continue": "Keep going anyway" + "timeout": "放棄", + "onTimeout": "如果它從未出現", + "stop": "停止宏", + "continue": "無論如何,繼續前進。" }, "delay": { - "duration": "Wait for" + "duration": "等待" }, "ifStep": { - "pattern": "If the output contains", - "patternPlaceholder": "Active: active (running)", - "then": "Then do this", - "else": "Otherwise do this", - "emptyBranch": "No steps" + "pattern": "如果輸出包含", + "patternPlaceholder": "活躍:正在運行", + "then": "然後這樣做", + "else": "否則就這樣做", + "emptyBranch": "沒有步驟" }, "repeat": { - "count": "Number of times", - "times": "times" + "count": "次數", + "times": "時代" }, "match": { - "useRegex": "Match with a regular expression", - "useRegexHelp": "Leave this off to match the text exactly as written.", - "invalidRegex": "Not a valid regular expression, it will be matched as plain text" + "useRegex": "使用正規表示式進行匹配", + "useRegexHelp": "請刪除此行以完全按照原文填寫。", + "invalidRegex": "這不是有效的正規表示式,它將被匹配為純文字。" }, "seconds": "秒", "secondsShort": "{{count}}s" }, "errors": { - "remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." + "remoteServerRequired": "需要遠端伺服器。請在「設定」中連接遠端伺服器以使用此連線類型。" } } diff --git a/plugins/sso/locales/translated/bn_BD.json b/plugins/sso/locales/translated/bn_BD.json index 9e2735ede..85b806db6 100644 --- a/plugins/sso/locales/translated/bn_BD.json +++ b/plugins/sso/locales/translated/bn_BD.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "SSO দিয়ে সাইন ইন করুন", + "loginWithProvider": "{{name}} দিয়ে লগইন করুন", + "loading": "লোড হচ্ছে...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "SSO প্রোভাইডারদের পরিচালনা করুন", + "description": "ব্যবহারকারীরা যেসব SSO প্রোভাইডারের মাধ্যমে সাইন ইন করতে পারবেন, সেগুলো যোগ করুন, পরিবর্তন করুন এবং সরিয়ে ফেলুন।" } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "নথি দেখুন", + "none": "কোনো SSO প্রদানকারী কনফিগার করা নেই।", + "add": "প্রদানকারী যোগ করুন", + "edit": "সম্পাদনা প্রদানকারী", + "delete": "প্রোভাইডার মুছুন", + "deleteConfirm": "এই প্রোভাইডারটি মুছে ফেললে সংশ্লিষ্ট ব্যবহারকারীরা লগইন করতে পারবেন না।", + "name": "প্রদর্শনের নাম", + "namePlaceholder": "আমার SSO প্রদানকারী", + "nameRequired": "একটি প্রদর্শনের নাম প্রয়োজন", + "type": "প্রদানকারীর ধরণ", + "enabled": "সক্ষম করা হয়েছে", + "save": "সরবরাহকারীকে সংরক্ষণ করুন", + "saving": "সঞ্চয়...", + "saved": "সংরক্ষিত", + "saveFailed": "সংরক্ষণ করতে ব্যর্থ হয়েছে", + "deleted": "মুছে ফেলা হয়েছে", + "deleteFailed": "মুছে ফেলতে ব্যর্থ হয়েছে", + "loadFailed": "SSO প্রোভাইডার লোড করতে ব্যর্থ হয়েছে", + "cancel": "বাতিল করুন", + "copy": "অনুলিপি", + "copied": "অনুলিপি করা হয়েছে", + "redirectUri": "পুনঃনির্দেশ URI", + "redirectUriDesc": "আপনার আইডেন্টিটি প্রোভাইডারে এই URL-টিকে রিডাইরেক্ট বা কলব্যাক URL হিসেবে রেজিস্টার করুন।", + "legacyCallback": "পুরানো রিডাইরেক্ট ইউআরআই রাখুন", + "legacyCallbackDesc": "এই প্রোভাইডারটি Termix 2.9-এর আগে সেট আপ করা হয়েছিল এবং এখনও পুরানো রিডাইরেক্ট URI ব্যবহার করে, যা এখনও কাজ করছে। নতুনটিতে যেতে, প্রথমে আপনার আইডেন্টিটি প্রোভাইডারে {{uri}} যোগ করুন, তারপর এটি বন্ধ করে দিন।", + "authorizationUrl": "অনুমোদন ইউআরএল: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "ক্লায়েন্ট আইডি", + "clientSecret": "ক্লায়েন্ট গোপনীয়", + "secretKeep": "একটি গোপন বিষয় সংরক্ষিত আছে। এটি গোপন রাখতে এই অংশটি খালি রাখুন।", + "issuerUrl": "ইস্যুকারী ইউআরএল", + "authUrl": "অনুমোদন ইউআরএল", + "tokenUrl": "টোকেন ইউআরএল", + "userIdentifier": "ব্যবহারকারী শনাক্তকারী পথ", + "displayName": "ডিসপ্লে নেম পাথ", + "scopes": "স্কোপ", + "userinfoUrl": "ব্যবহারকারীর তথ্য ইউআরএল ওভাররাইড করুন", + "groupClaim": "গোষ্ঠী দাবি", + "groupClaimDesc": "ঐচ্ছিক। এটি হলো সেই ক্লেইম পাথ যেখানে ব্যবহারকারীর গ্রুপগুলো থাকে। ডিফল্ট হিসেবে প্রথমে গ্রুপ, তারপর রোল, এবং সবশেষে গ্রুপ থাকে। কাস্টম ক্লেইম আছে এমন প্রোভাইডারদের (যেমন জিটাডেল) জন্য এটি ব্যবহার করুন।", + "allowedUsers": "অনুমোদিত ব্যবহারকারী", + "allowedUsersDesc": "প্রতি লাইনে একটি ইমেল। সবগুলো দেখানোর জন্য খালি রাখুন।", + "adminGroup": "অ্যাডমিন গ্রুপ", + "adminGroupDesc": "এই গ্রুপের ব্যবহারকারীদের অ্যাডমিন অ্যাক্সেস দেওয়া হয়েছে। গ্রুপ সিঙ্ক নিষ্ক্রিয় করতে এটি খালি রাখুন।", + "caCert": "কাস্টম সিএ সার্টিফিকেট", + "caCertDesc": "ঐচ্ছিক। প্রাইভেট বা সেলফ-সাইন্ড CA ব্যবহারকারী OIDC প্রোভাইডারদের জন্য PEM-এনকোডেড CA সার্টিফিকেট। সিস্টেম ট্রাস্ট স্টোর ব্যবহার করতে এটি খালি রাখুন।" }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "SSO দিয়ে স্বয়ংক্রিয়ভাবে সাইন ইন করুন", + "description": "লগইন ফর্ম দেখানোর পরিবর্তে ভিজিটরদের সরাসরি প্রথম SSO প্রোভাইডারের কাছে পাঠান। OIDC_SILENT_LOGIN_DEFAULT এনভায়রনমেন্ট ভেরিয়েবলটি এই প্রক্রিয়াটিকে ওভাররাইড করে।" } } } diff --git a/plugins/sso/locales/translated/hi_IN.json b/plugins/sso/locales/translated/hi_IN.json index 35c7ec3a0..8ea04be8c 100644 --- a/plugins/sso/locales/translated/hi_IN.json +++ b/plugins/sso/locales/translated/hi_IN.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "एसएसओ के साथ साइन इन करें", "loginWithProvider": "{{name}} से लॉगिन करें", "loading": "लोड हो रहा है...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "एसएसओ प्रदाताओं का प्रबंधन करें", + "description": "उन एसएसओ प्रदाताओं को जोड़ें, बदलें और हटाएं जिनके माध्यम से लोग साइन इन कर सकते हैं।" } }, "providers": { @@ -16,8 +16,8 @@ "delete": "प्रदाता हटाएँ", "deleteConfirm": "इस प्रदाता को हटाएँ? इससे जुड़े उपयोगकर्ता लॉगिन नहीं कर पाएंगे।", "name": "प्रदर्शन नाम", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "मेरा एसएसओ प्रदाता", + "nameRequired": "एक डिस्प्ले नाम आवश्यक है", "type": "प्रदाता प्रकार", "enabled": "सक्षम", "save": "प्रदाता सहेजें", @@ -26,20 +26,20 @@ "saveFailed": "सहेजने में विफल", "deleted": "हटाया गया", "deleteFailed": "हटाने में विफल", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "एसएसओ प्रदाताओं को लोड करने में विफल।", "cancel": "रद्द करें", "copy": "कॉपी", "copied": "कॉपी किया गया", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "रीडायरेक्ट यूआरआई", + "redirectUriDesc": "इस यूआरएल को अपने आइडेंटिटी प्रोवाइडर में रीडायरेक्ट या कॉलबैक यूआरएल के रूप में रजिस्टर करें।", + "legacyCallback": "पुराने रीडायरेक्ट यूआरआई को बनाए रखें", + "legacyCallbackDesc": "यह प्रोवाइडर Termix 2.9 से पहले स्थापित किया गया था और अभी भी पुराने रीडायरेक्ट URI का उपयोग करता है, जो काम करता रहता है। नए URI पर जाने के लिए, पहले अपने आइडेंटिटी प्रोवाइडर में {{uri}} जोड़ें, फिर इसे बंद कर दें।", + "authorizationUrl": "प्राधिकरण यूआरएल: {{url}}" }, "fields": { "clientId": "क्लाइंट आईडी", "clientSecret": "क्लाइंट सीक्रेट", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "एक राज़ सुरक्षित रखा गया है। इसे सुरक्षित रखने के लिए इसे खाली छोड़ दें।", "issuerUrl": "जारीकर्ता URL", "authUrl": "प्राधिकरण URL", "tokenUrl": "टोकन URL", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "एसएसओ के साथ स्वचालित रूप से साइन इन करें", + "description": "लॉगिन फ़ॉर्म दिखाने के बजाय आगंतुकों को सीधे पहले एसएसओ प्रदाता पर भेजें। OIDC_SILENT_LOGIN_DEFAULT पर्यावरण चर इसे ओवरराइड करता है।" } } } diff --git a/plugins/sso/locales/translated/id_ID.json b/plugins/sso/locales/translated/id_ID.json index 9e2735ede..7413c388a 100644 --- a/plugins/sso/locales/translated/id_ID.json +++ b/plugins/sso/locales/translated/id_ID.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "Masuk dengan SSO", + "loginWithProvider": "Masuk dengan {{name}}", + "loading": "Memuat...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Kelola penyedia SSO", + "description": "Tambahkan, ubah, dan hapus penyedia SSO yang dapat digunakan pengguna untuk masuk." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "Lihat dokumen", + "none": "Tidak ada penyedia SSO yang dikonfigurasi.", + "add": "Tambahkan Penyedia", + "edit": "Edit Penyedia", + "delete": "Hapus Penyedia", + "deleteConfirm": "Hapus penyedia ini? Pengguna terkait tidak akan dapat masuk.", + "name": "Nama Tampilan", + "namePlaceholder": "Penyedia SSO saya", + "nameRequired": "Nama tampilan wajib diisi.", + "type": "Jenis Penyedia", + "enabled": "Diaktifkan", + "save": "Simpan Penyedia", + "saving": "Penghematan...", + "saved": "Tersimpan", + "saveFailed": "Gagal menyimpan", + "deleted": "Dihapus", + "deleteFailed": "Gagal menghapus", + "loadFailed": "Gagal memuat penyedia SSO", + "cancel": "Membatalkan", + "copy": "Menyalin", + "copied": "Disalin", + "redirectUri": "URI Pengalihan", + "redirectUriDesc": "Daftarkan URL ini sebagai URL pengalihan atau panggilan balik di penyedia identitas Anda.", + "legacyCallback": "Pertahankan URI pengalihan lama.", + "legacyCallbackDesc": "Penyedia ini diatur sebelum Termix 2.9 dan masih menggunakan URI pengalihan lama, yang masih berfungsi. Untuk beralih ke yang baru, tambahkan {{uri}} di penyedia identitas Anda terlebih dahulu, lalu matikan ini.", + "authorizationUrl": "URL Otorisasi: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "ID Klien", + "clientSecret": "Rahasia Klien", + "secretKeep": "Sebuah rahasia telah tersimpan. Biarkan kosong untuk menyimpannya.", + "issuerUrl": "URL Penerbit", + "authUrl": "URL Otorisasi", + "tokenUrl": "URL Token", + "userIdentifier": "Jalur Pengidentifikasi Pengguna", + "displayName": "Jalur Nama Tampilan", + "scopes": "Lingkup", + "userinfoUrl": "Ganti URL Informasi Pengguna", + "groupClaim": "Klaim Kelompok", + "groupClaimDesc": "Opsional. Jalur klaim yang berisi grup pengguna. Secara default berupa grup, peran, lalu grup. Gunakan ini untuk penyedia dengan klaim khusus (misalnya Zitadel).", + "allowedUsers": "Pengguna yang Diizinkan", + "allowedUsersDesc": "Satu email per baris. Biarkan kosong untuk mengizinkan semua email.", + "adminGroup": "Grup Admin", + "adminGroupDesc": "Pengguna dalam grup ini diberikan hak admin. Biarkan kosong untuk menonaktifkan sinkronisasi grup.", + "caCert": "Sertifikat CA Kustom", + "caCertDesc": "Opsional. Sertifikat CA berkode PEM untuk penyedia OIDC yang menggunakan CA pribadi atau yang ditandatangani sendiri. Biarkan kosong untuk menggunakan penyimpanan kepercayaan sistem." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Masuk dengan SSO secara otomatis", + "description": "Arahkan pengunjung langsung ke penyedia SSO pertama alih-alih menampilkan formulir login. Variabel lingkungan OIDC_SILENT_LOGIN_DEFAULT mengesampingkan hal ini." } } } diff --git a/plugins/sso/locales/translated/nl_NL.json b/plugins/sso/locales/translated/nl_NL.json index 9e2735ede..111a6c443 100644 --- a/plugins/sso/locales/translated/nl_NL.json +++ b/plugins/sso/locales/translated/nl_NL.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "Aanmelden met SSO", + "loginWithProvider": "Inloggen met {{name}}", + "loading": "Laden...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Beheer SSO-providers", + "description": "Voeg SSO-providers toe, wijzig ze en verwijder ze waarmee mensen zich kunnen aanmelden." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "Documenten bekijken", + "none": "Er zijn geen SSO-providers geconfigureerd.", + "add": "Aanbieder toevoegen", + "edit": "Bewerk provider", + "delete": "Provider verwijderen", + "deleteConfirm": "Deze provider verwijderen? Gekoppelde gebruikers kunnen dan niet meer inloggen.", + "name": "Weergavenaam", + "namePlaceholder": "Mijn SSO-provider", + "nameRequired": "Een weergavenaam is vereist.", + "type": "Aanbiedertype", + "enabled": "Ingeschakeld", + "save": "Aanbieder opslaan", + "saving": "Besparing...", + "saved": "Opgeslagen", + "saveFailed": "Opslaan mislukt", + "deleted": "Verwijderd", + "deleteFailed": "Verwijderen mislukt", + "loadFailed": "Het laden van SSO-providers is mislukt.", + "cancel": "Annuleren", + "copy": "Kopiëren", + "copied": "Gekopieerd", + "redirectUri": "Omleidings-URI", + "redirectUriDesc": "Registreer deze URL als de redirect- of callback-URL in uw identiteitsprovider.", + "legacyCallback": "Behoud de oude omleidings-URI", + "legacyCallbackDesc": "Deze provider is ingesteld vóór Termix 2.9 en gebruikt nog steeds de oude omleidings-URI, die nog steeds werkt. Om over te stappen naar de nieuwe, voeg eerst {{uri}} toe aan uw identiteitsprovider en schakel dit vervolgens uit.", + "authorizationUrl": "Autorisatie-URL: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", + "clientId": "Klant-ID", + "clientSecret": "Klantgeheim", + "secretKeep": "Een geheim wordt bewaard. Laat dit veld leeg om het geheim te houden.", + "issuerUrl": "URL van de uitgever", + "authUrl": "Autorisatie-URL", + "tokenUrl": "Token-URL", + "userIdentifier": "Gebruikersidentificatiepad", + "displayName": "Weergavenaam Pad", "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "userinfoUrl": "Gebruikersinfo-URL overschrijven", + "groupClaim": "Groepsclaim", + "groupClaimDesc": "Optioneel. Het pad naar de claim dat de groepen van de gebruiker bevat. Standaard is dit: groepen, rollen, vervolgens groep. Gebruik dit voor providers met een aangepaste claim (bijv. Zitadel).", + "allowedUsers": "Toegestane gebruikers", + "allowedUsersDesc": "Eén e-mailadres per regel. Laat dit veld leeg om alle e-mailadressen toe te staan.", + "adminGroup": "Beheerdersgroep", + "adminGroupDesc": "Gebruikers in deze groep hebben beheerdersrechten. Laat dit veld leeg om groepssynchronisatie uit te schakelen.", + "caCert": "Aangepast CA-certificaat", + "caCertDesc": "Optioneel. PEM-gecodeerd CA-certificaat voor OIDC-providers die gebruikmaken van een privé- of zelfondertekende CA. Laat dit veld leeg om het systeemvertrouwensarchief te gebruiken." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Meld u automatisch aan met SSO.", + "description": "Stuur bezoekers direct door naar de eerste SSO-provider in plaats van het inlogformulier weer te geven. De omgevingsvariabele OIDC_SILENT_LOGIN_DEFAULT overschrijft dit." } } } diff --git a/plugins/sso/locales/translated/no_NO.json b/plugins/sso/locales/translated/no_NO.json index f026cd15d..3262bcf8d 100644 --- a/plugins/sso/locales/translated/no_NO.json +++ b/plugins/sso/locales/translated/no_NO.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", + "loginWithSso": "Logg inn med SSO", + "loginWithProvider": "Logg inn med {{name}}", "loading": "Laster...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Administrer SSO-leverandører", + "description": "Legg til, endre og fjern SSO-leverandørene som folk kan logge på med." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", + "docsLink": "Vis dokumenter", + "none": "Ingen SSO-leverandører er konfigurert.", + "add": "Legg til leverandør", + "edit": "Rediger leverandør", + "delete": "Slett leverandør", + "deleteConfirm": "Vil du slette denne leverandøren? Tilknyttede brukere vil ikke kunne logge inn.", + "name": "Visningsnavn", + "namePlaceholder": "Min SSO-leverandør", + "nameRequired": "Et visningsnavn er obligatorisk", + "type": "Leverandørtype", "enabled": "Aktivert", - "save": "Save Provider", + "save": "Lagre leverandør", "saving": "Lagrer...", - "saved": "Saved", + "saved": "Lagret", "saveFailed": "Kunne ikke lagre", - "deleted": "Deleted", + "deleted": "Slettet", "deleteFailed": "Kunne ikke slette", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Kunne ikke laste inn SSO-leverandører", "cancel": "Avbryt", "copy": "Kopier", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "copied": "Kopiert", + "redirectUri": "Omdirigerings-URI", + "redirectUriDesc": "Registrer denne URL-en som omdirigerings- eller tilbakeringings-URL hos identitetsleverandøren din.", + "legacyCallback": "Behold den gamle omdirigerings-URI-en", + "legacyCallbackDesc": "Denne leverandøren ble satt opp før Termix 2.9 og bruker fortsatt den gamle omdirigerings-URI-en, som fortsatt fungerer. For å gå over til den nye, legg først til {{uri}} i identitetsleverandøren din, og slå deretter av dette.", + "authorizationUrl": "Autorisasjons-URL: {{url}}" }, "fields": { "clientId": "Klient-ID", "clientSecret": "Klienthemmelighet", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "En hemmelighet er lagret. La dette feltet stå tomt for å beholde den.", "issuerUrl": "Utsteder-URL", "authUrl": "Autorisasjons-URL", "tokenUrl": "Token-URL", "userIdentifier": "Sti til brukeridentifikator", "displayName": "Sti til visningsnavn", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "scopes": "Omfang", + "userinfoUrl": "Overstyr brukerinfo-URL", + "groupClaim": "Gruppekrav", + "groupClaimDesc": "Valgfritt. Kravbanen som inneholder brukerens grupper. Standardinnstillingen er grupper, roller og deretter gruppe. Bruk dette for leverandører med et tilpasset krav (f.eks. Zitadel).", + "allowedUsers": "Tillatte brukere", + "allowedUsersDesc": "Én e-post per linje. La stå tomt for å tillate alle.", + "adminGroup": "Admingruppe", + "adminGroupDesc": "Brukere i denne gruppen har administratorrettigheter. La feltet stå tomt for å deaktivere gruppesynkronisering.", + "caCert": "Tilpasset CA-sertifikat", + "caCertDesc": "Valgfritt. PEM-kodet CA-sertifikat for OIDC-leverandører som bruker en privat eller selvsignert CA. La stå tomt for å bruke systemets klareringslager." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Logg inn med SSO automatisk", + "description": "Send besøkende direkte til den første SSO-leverandøren i stedet for å vise innloggingsskjemaet. Miljøvariabelen OIDC_SILENT_LOGIN_DEFAULT overstyrer dette." } } } diff --git a/plugins/sso/locales/translated/pl_PL.json b/plugins/sso/locales/translated/pl_PL.json index 08168d2d9..db3e5f752 100644 --- a/plugins/sso/locales/translated/pl_PL.json +++ b/plugins/sso/locales/translated/pl_PL.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "Zaloguj się za pomocą SSO", "loginWithProvider": "Zaloguj się za pomocą {{name}}", "loading": "Ładowanie...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Zarządzaj dostawcami SSO", + "description": "Dodaj, zmień i usuń dostawców SSO, u których użytkownicy mogą się logować." } }, "providers": { @@ -16,8 +16,8 @@ "delete": "Usuń dostawcę", "deleteConfirm": "Usunąć tego dostawcę? Powiązani użytkownicy nie będą mogli się zalogować.", "name": "Nazwa wyświetlana", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "Mój dostawca SSO", + "nameRequired": "Wymagana jest nazwa wyświetlana", "type": "Typ dostawcy", "enabled": "Włączona", "save": "Zapisz dostawcę", @@ -26,20 +26,20 @@ "saveFailed": "Nie udało się zapisać", "deleted": "Usunięto", "deleteFailed": "Nie udało się usunąć", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Nie udało się załadować dostawców SSO", "cancel": "Anuluj", "copy": "Kopiuj", "copied": "Skopiowano", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "Przekieruj URI", + "redirectUriDesc": "Zarejestruj ten adres URL jako adres przekierowania lub adres URL wywołania zwrotnego u swojego dostawcy tożsamości.", + "legacyCallback": "Zachowaj stary adres URI przekierowania", + "legacyCallbackDesc": "Ten dostawca został skonfigurowany przed wersją Termix 2.9 i nadal korzysta ze starego adresu URI przekierowania, który nadal działa. Aby przejść na nowy, najpierw dodaj {{uri}} w swoim dostawcy tożsamości, a następnie wyłącz go.", + "authorizationUrl": "Adres URL autoryzacji: {{url}}" }, "fields": { "clientId": "Identyfikator klienta", "clientSecret": "Sekret klienta", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "Sekret został zapisany. Pozostaw to pole puste, aby go zachować.", "issuerUrl": "Adres URL wystawcy", "authUrl": "Adres URL autoryzacji", "tokenUrl": "Adres URL tokena", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Zaloguj się automatycznie za pomocą SSO", + "description": "Zamiast wyświetlać formularz logowania, przekieruj odwiedzających bezpośrednio do pierwszego dostawcy SSO. Zmienna środowiskowa OIDC_SILENT_LOGIN_DEFAULT zastępuje to ustawienie." } } } diff --git a/plugins/sso/locales/translated/pt_BR.json b/plugins/sso/locales/translated/pt_BR.json index 02080c8f9..304908e46 100644 --- a/plugins/sso/locales/translated/pt_BR.json +++ b/plugins/sso/locales/translated/pt_BR.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", + "loginWithSso": "Entrar com SSO", + "loginWithProvider": "Faça login com {{name}}", "loading": "Carregando...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Gerenciar provedores de SSO", + "description": "Adicione, altere e remova os provedores de SSO que os usuários podem usar para fazer login." } }, "providers": { "docsLink": "Documentação", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", + "none": "Nenhum provedor de SSO configurado.", + "add": "Adicionar provedor", + "edit": "Editar provedor", + "delete": "Excluir provedor", + "deleteConfirm": "Excluir este provedor? Os usuários associados não poderão fazer login.", + "name": "Nome de exibição", + "namePlaceholder": "Meu provedor de SSO", + "nameRequired": "É necessário um nome de exibição.", + "type": "Tipo de provedor", + "enabled": "Habilitado", + "save": "Salvar provedor", "saving": "Salvando...", "saved": "Salvo", "saveFailed": "Falha ao salvar", "deleted": "Apagado", "deleteFailed": "Falha ao apagar", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Falha ao carregar os provedores de SSO", "cancel": "Cancelar", "copy": "Copiar", "copied": "Copiado", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "URI de redirecionamento", + "redirectUriDesc": "Registre este URL como URL de redirecionamento ou de retorno de chamada em seu provedor de identidade.", + "legacyCallback": "Mantenha o URI de redirecionamento antigo.", + "legacyCallbackDesc": "Este provedor foi configurado antes do Termix 2.9 e ainda usa o URI de redirecionamento antigo, que continua funcionando. Para migrar para o novo, adicione {{uri}} no seu provedor de identidade primeiro e depois desative-o.", + "authorizationUrl": "URL de autorização: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "ID do cliente", + "clientSecret": "Segredo do cliente", + "secretKeep": "Um segredo foi guardado. Deixe este campo vazio para mantê-lo.", + "issuerUrl": "URL do emissor", + "authUrl": "URL de autorização", + "tokenUrl": "URL do token", + "userIdentifier": "Caminho do identificador do usuário", + "displayName": "Nome de exibição Caminho", + "scopes": "Escopos", + "userinfoUrl": "Substituir URL de informações do usuário", + "groupClaim": "Reivindicação de grupo", + "groupClaimDesc": "Opcional. O caminho da declaração que contém os grupos do usuário. O padrão é grupos, funções e, em seguida, grupo. Use isso para provedores com uma declaração personalizada (por exemplo, Zitadel).", + "allowedUsers": "Usuários autorizados", + "allowedUsersDesc": "Um e-mail por linha. Deixe em branco para permitir todos.", + "adminGroup": "Grupo de Administração", + "adminGroupDesc": "Os usuários deste grupo têm privilégios de administrador. Deixe em branco para desativar a sincronização do grupo.", + "caCert": "Certificado CA personalizado", + "caCertDesc": "Opcional. Certificado CA codificado em PEM para provedores OIDC que utilizam uma CA privada ou autoassinada. Deixe em branco para usar o repositório de certificados confiáveis do sistema." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Faça login automaticamente com SSO.", + "description": "Direcione os visitantes diretamente para o primeiro provedor de SSO em vez de exibir o formulário de login. A variável de ambiente OIDC_SILENT_LOGIN_DEFAULT substitui essa configuração." } } } diff --git a/plugins/sso/locales/translated/pt_PT.json b/plugins/sso/locales/translated/pt_PT.json index 31dd5ba76..5050af00b 100644 --- a/plugins/sso/locales/translated/pt_PT.json +++ b/plugins/sso/locales/translated/pt_PT.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "Entrar com SSO", "loginWithProvider": "Iniciar sessão com {{name}}", "loading": "A carregar...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Gerir fornecedores de SSO", + "description": "Adicione, altere e remova os fornecedores de SSO que os utilizadores podem utilizar para iniciar sessão." } }, "providers": { @@ -16,8 +16,8 @@ "delete": "Eliminar Provedor", "deleteConfirm": "Eliminar este provedor? Os utilizadores associados não poderão iniciar sessão.", "name": "Nome de exibição", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "O meu provedor de SSO", + "nameRequired": "É necessário um nome de utilizador.", "type": "Tipo de Provedor", "enabled": "Ativado", "save": "Guardar Provedor", @@ -26,20 +26,20 @@ "saveFailed": "Falha ao guardar", "deleted": "Eliminado", "deleteFailed": "Falha ao eliminar", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Falha ao carregar os fornecedores de SSO", "cancel": "Cancelar", "copy": "Copiar", "copied": "Copiado", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "URI de redireccionamento", + "redirectUriDesc": "Registe este URL como URL de redireccionamento ou de retorno de chamada no seu fornecedor de identidade.", + "legacyCallback": "Mantenha o URI de redireccionamento antigo.", + "legacyCallbackDesc": "Este fornecedor foi configurado antes do Termix 2.9 e ainda utiliza o URI de redireccionamento antigo, que continua a funcionar. Para migrar para o novo, adicione {{uri}} no seu fornecedor de identidade primeiro e depois desative-o.", + "authorizationUrl": "URL de autorização: {{url}}" }, "fields": { "clientId": "ID do cliente", "clientSecret": "Segredo do cliente", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "Um segredo foi guardado. Deixe este campo vazio para o manter.", "issuerUrl": "URL do emissor", "authUrl": "URL de autorização", "tokenUrl": "URL do token", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Faça login automaticamente com o SSO.", + "description": "Dirija os visitantes diretamente para o primeiro fornecedor de SSO em vez de apresentar o formulário de início de sessão. A variável de ambiente OIDC_SILENT_LOGIN_DEFAULT substitui esta definição." } } } diff --git a/plugins/sso/locales/translated/ru_RU.json b/plugins/sso/locales/translated/ru_RU.json index 31775c808..a9cd9f2ca 100644 --- a/plugins/sso/locales/translated/ru_RU.json +++ b/plugins/sso/locales/translated/ru_RU.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "Вход с помощью единого входа (SSO)", "loginWithProvider": "Войти через {{name}}", "loading": "Загрузка...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Управление поставщиками SSO", + "description": "Добавляйте, изменяйте и удаляйте поставщиков единого входа (SSO), с помощью которых пользователи могут входить в систему." } }, "providers": { @@ -16,8 +16,8 @@ "delete": "Удалить провайдера", "deleteConfirm": "Удалить провайдера? Связанные пользователи не смогут войти.", "name": "Отображаемое имя", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "Мой поставщик SSO", + "nameRequired": "Необходимо указать отображаемое имя.", "type": "Тип провайдера", "enabled": "Включено", "save": "Сохранить провайдера", @@ -26,20 +26,20 @@ "saveFailed": "Не удалось сохранить", "deleted": "Удалено", "deleteFailed": "Не удалось удалить", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Не удалось загрузить поставщиков SSO.", "cancel": "Отмена", "copy": "Копировать", "copied": "Скопировано", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "URI перенаправления", + "redirectUriDesc": "Зарегистрируйте этот URL-адрес в качестве URL-адреса перенаправления или обратного вызова в вашем поставщике идентификации.", + "legacyCallback": "Сохраните старый URI перенаправления.", + "legacyCallbackDesc": "Этот провайдер был настроен до Termix 2.9 и до сих пор использует старый URI перенаправления, который продолжает работать. Чтобы перейти на новый, сначала добавьте {{uri}} в свой провайдер идентификации, а затем отключите эту функцию.", + "authorizationUrl": "URL авторизации: {{url}}" }, "fields": { "clientId": "Client ID", "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "Секрет сохранен. Оставьте это поле пустым, чтобы сохранить его.", "issuerUrl": "URL издателя", "authUrl": "URL авторизации", "tokenUrl": "URL токена", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Автоматический вход через SSO.", + "description": "Вместо отображения формы входа, посетители будут направляться непосредственно к первому поставщику единого входа (SSO). Это определяется переменной среды OIDC_SILENT_LOGIN_DEFAULT." } } } diff --git a/plugins/sso/locales/translated/sr_SP.json b/plugins/sso/locales/translated/sr_SP.json index 9e2735ede..3aa0c013a 100644 --- a/plugins/sso/locales/translated/sr_SP.json +++ b/plugins/sso/locales/translated/sr_SP.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "Пријавите се помоћу SSO-а", + "loginWithProvider": "Пријавите се са {{name}}", + "loading": "Учитавање...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Управљајте добављачима SSO", + "description": "Додајте, промените и уклоните добављаче SSO помоћу којих се људи могу пријавити." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "Прикажи документе", + "none": "Није конфигурисан ниједан SSO добављач.", + "add": "Додај добављача", + "edit": "Измени добављача", + "delete": "Обриши добављача", + "deleteConfirm": "Да ли желите да обришете овог добављача? Повезани корисници неће моћи да се пријаве.", + "name": "Приказано име", + "namePlaceholder": "Мој добављач SSO-а", + "nameRequired": "Потребно је приказано име", + "type": "Тип добављача", + "enabled": "Омогућено", + "save": "Сачувај добављача", + "saving": "Чување...", + "saved": "Сачувано", + "saveFailed": "Чување није успело", + "deleted": "Избрисано", + "deleteFailed": "Брисање није успело", + "loadFailed": "Учитавање добављача SSO није успело", + "cancel": "Откажи", + "copy": "Копија", + "copied": "Копирано", + "redirectUri": "URI за преусмеравање", + "redirectUriDesc": "Региструјте ову URL адресу као URL адресу за преусмеравање или повратни позив код вашег добављача идентитета.", + "legacyCallback": "Задржи стари URI преусмеравања", + "legacyCallbackDesc": "Овај провајдер је подешен пре Termix-а 2.9 и још увек користи стари URI за преусмеравање, који и даље ради. Да бисте прешли на нови, прво додајте {{uri}} у свом провајдеру идентитета, а затим га искључите.", + "authorizationUrl": "URL адреса за ауторизацију: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "ИД клијента", + "clientSecret": "Тајна порука клијента", + "secretKeep": "Тајна је сачувана. Оставите ово празно да бисте је задржали.", + "issuerUrl": "URL издаваоца", + "authUrl": "URL за ауторизацију", + "tokenUrl": "URL адреса токена", + "userIdentifier": "Путања идентификатора корисника", + "displayName": "Путања приказаног имена", + "scopes": "Опсези", + "userinfoUrl": "Замени URL са корисничким информацијама", + "groupClaim": "Групни захтев", + "groupClaimDesc": "Опционо. Путања захтева која садржи групе корисника. Подразумевано је да су групе, улоге, па група. Користите ово за добављаче са прилагођеним захтевом (нпр. Zitadel).", + "allowedUsers": "Дозвољени корисници", + "allowedUsersDesc": "Једна имејл адреса по реду. Оставите празно да бисте дозволили све.", + "adminGroup": "Администраторска група", + "adminGroupDesc": "Корисницима у овој групи је додељена администраторска позиција. Оставите празно да бисте онемогућили синхронизацију групе.", + "caCert": "Прилагођени CA сертификат", + "caCertDesc": "Опционо. PEM-кодирани CA сертификат за OIDC добављаче који користе приватни или самопотписани CA. Оставите празно да бисте користили складиште поверења система." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Аутоматски се пријавите помоћу SSO-а", + "description": "Шаљите посетиоце директно првом SSO провајдеру уместо приказивања формулара за пријаву. Променљива окружења OIDC_SILENT_LOGIN_DEFAULT ово поништава." } } } diff --git a/plugins/sso/locales/translated/sv_SE.json b/plugins/sso/locales/translated/sv_SE.json index 9e2735ede..a2e8845f8 100644 --- a/plugins/sso/locales/translated/sv_SE.json +++ b/plugins/sso/locales/translated/sv_SE.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "Logga in med SSO", + "loginWithProvider": "Logga in med {{name}}", + "loading": "Belastning...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Hantera SSO-leverantörer", + "description": "Lägg till, ändra och ta bort de SSO-leverantörer som personer kan logga in med." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "Visa dokument", + "none": "Inga SSO-leverantörer har konfigurerats.", + "add": "Lägg till leverantör", + "edit": "Redigera leverantör", + "delete": "Ta bort leverantör", + "deleteConfirm": "Vill du ta bort den här leverantören? Associerade användare kommer inte att kunna logga in.", + "name": "Visningsnamn", + "namePlaceholder": "Min SSO-leverantör", + "nameRequired": "Ett visningsnamn krävs", + "type": "Leverantörstyp", + "enabled": "Aktiverad", + "save": "Spara leverantör", + "saving": "Sparande...", + "saved": "Sparad", + "saveFailed": "Misslyckades med att spara", + "deleted": "Borttagen", + "deleteFailed": "Misslyckades med att radera", + "loadFailed": "Det gick inte att läsa in SSO-leverantörer", + "cancel": "Avboka", + "copy": "Kopiera", + "copied": "Kopierad", + "redirectUri": "Omdirigerings-URI", + "redirectUriDesc": "Registrera den här URL:en som omdirigerings- eller återuppringnings-URL i din identitetsleverantör.", + "legacyCallback": "Behåll den gamla omdirigerings-URI:n", + "legacyCallbackDesc": "Denna leverantör konfigurerades före Termix 2.9 och använder fortfarande den gamla omdirigerings-URI:n, som fortsätter att fungera. För att byta till den nya, lägg först till {{uri}} i din identitetsleverantör och stäng sedan av den.", + "authorizationUrl": "Auktoriserings-URL: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "Klient-ID", + "clientSecret": "Klienthemlighet", + "secretKeep": "En hemlighet är sparad. Lämna detta tomt för att behålla den.", + "issuerUrl": "Utgivarens URL", + "authUrl": "Auktoriserings-URL", + "tokenUrl": "Token-URL", + "userIdentifier": "Sökväg till användaridentifierare", + "displayName": "Sökväg för visningsnamn", + "scopes": "Omfattningar", + "userinfoUrl": "Åsidosätt användarinformations-URL", + "groupClaim": "Gruppanspråk", + "groupClaimDesc": "Valfritt. Anspråkssökvägen som innehåller användarens grupper. Standardinställningen är grupper, roller och sedan grupp. Använd detta för leverantörer med ett anpassat anspråk (t.ex. Zitadel).", + "allowedUsers": "Tillåtna användare", + "allowedUsersDesc": "Ett e-postmeddelande per rad. Lämna tomt för att tillåta alla.", + "adminGroup": "Administratörsgrupp", + "adminGroupDesc": "Användare i den här gruppen har administratörsrättigheter. Lämna tomt för att inaktivera gruppsynkronisering.", + "caCert": "Anpassat CA-certifikat", + "caCertDesc": "Valfritt. PEM-kodat CA-certifikat för OIDC-leverantörer som använder en privat eller självsignerad CA. Lämna tomt för att använda systemets förtroendearkiv." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Logga in med SSO automatiskt", + "description": "Skicka besökare direkt till den första SSO-leverantören istället för att visa inloggningsformuläret. Miljövariabeln OIDC_SILENT_LOGIN_DEFAULT åsidosätter detta." } } } diff --git a/plugins/sso/locales/translated/th_TH.json b/plugins/sso/locales/translated/th_TH.json index 9e2735ede..e532814e9 100644 --- a/plugins/sso/locales/translated/th_TH.json +++ b/plugins/sso/locales/translated/th_TH.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "ลงชื่อเข้าใช้ด้วย SSO", + "loginWithProvider": "เข้าสู่ระบบด้วย {{name}}", + "loading": "กำลังโหลด...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "จัดการผู้ให้บริการ SSO", + "description": "เพิ่ม เปลี่ยนแปลง และลบผู้ให้บริการ SSO ที่ผู้ใช้สามารถเข้าสู่ระบบได้" } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "ดูเอกสาร", + "none": "ไม่ได้กำหนดค่าผู้ให้บริการ SSO ใดๆ ไว้", + "add": "เพิ่มผู้ให้บริการ", + "edit": "แก้ไขผู้ให้บริการ", + "delete": "ลบผู้ให้บริการ", + "deleteConfirm": "ลบผู้ให้บริการนี้หรือไม่? ผู้ใช้ที่เกี่ยวข้องจะไม่สามารถเข้าสู่ระบบได้", + "name": "ชื่อที่แสดง", + "namePlaceholder": "ผู้ให้บริการ SSO ของฉัน", + "nameRequired": "จำเป็นต้องระบุชื่อที่แสดง", + "type": "ประเภทผู้ให้บริการ", + "enabled": "เปิดใช้งาน", + "save": "บันทึกผู้ให้บริการ", + "saving": "ประหยัด...", + "saved": "บันทึกแล้ว", + "saveFailed": "บันทึกไม่สำเร็จ", + "deleted": "ลบแล้ว", + "deleteFailed": "ลบไม่สำเร็จ", + "loadFailed": "ไม่สามารถโหลดผู้ให้บริการ SSO ได้", + "cancel": "ยกเลิก", + "copy": "สำเนา", + "copied": "คัดลอกแล้ว", + "redirectUri": "URI การเปลี่ยนเส้นทาง", + "redirectUriDesc": "ลงทะเบียน URL นี้เป็น URL สำหรับการเปลี่ยนเส้นทางหรือ URL เรียกกลับในผู้ให้บริการยืนยันตัวตนของคุณ", + "legacyCallback": "คงค่า URI การเปลี่ยนเส้นทางเดิมไว้", + "legacyCallbackDesc": "ผู้ให้บริการนี้ถูกตั้งค่าไว้ก่อน Termix เวอร์ชัน 2.9 และยังคงใช้ URI การเปลี่ยนเส้นทางแบบเก่า ซึ่งยังคงใช้งานได้ หากต้องการเปลี่ยนไปใช้แบบใหม่ ให้เพิ่ม {{uri}} ในผู้ให้บริการข้อมูลประจำตัวของคุณก่อน จากนั้นจึงปิดใช้งาน", + "authorizationUrl": "URL สำหรับการอนุญาต: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "รหัสลูกค้า", + "clientSecret": "ความลับของลูกค้า", + "secretKeep": "ความลับถูกเก็บรักษาไว้แล้ว เว้นช่องว่างนี้ไว้เพื่อรักษาความลับนั้นไว้", + "issuerUrl": "URL ของผู้ออก", + "authUrl": "URL การอนุญาต", + "tokenUrl": "URL โทเค็น", + "userIdentifier": "เส้นทางตัวระบุผู้ใช้", + "displayName": "ชื่อที่แสดง เส้นทาง", + "scopes": "กล้องส่องทางไกล", + "userinfoUrl": "แทนที่ URL ข้อมูลผู้ใช้", + "groupClaim": "การเรียกร้องค่าสินไหมทดแทนแบบกลุ่ม", + "groupClaimDesc": "ตัวเลือกเสริม เส้นทางการอ้างสิทธิ์ที่ประกอบด้วยกลุ่มของผู้ใช้ ค่าเริ่มต้นคือ กลุ่ม บทบาท แล้วจึงเป็นกลุ่ม ใช้สำหรับผู้ให้บริการที่มีการอ้างสิทธิ์แบบกำหนดเอง (เช่น Zitadel)", + "allowedUsers": "ผู้ใช้ที่ได้รับอนุญาต", + "allowedUsersDesc": "อีเมลหนึ่งฉบับต่อหนึ่งบรรทัด หากเว้นว่างไว้จะอนุญาตให้ใช้ทั้งหมด", + "adminGroup": "กลุ่มผู้ดูแลระบบ", + "adminGroupDesc": "ผู้ใช้ในกลุ่มนี้จะได้รับสิทธิ์ผู้ดูแลระบบ เว้นว่างไว้เพื่อปิดใช้งานการซิงค์กลุ่ม", + "caCert": "ใบรับรอง CA แบบกำหนดเอง", + "caCertDesc": "ตัวเลือกเสริม ใบรับรอง CA ที่เข้ารหัสแบบ PEM สำหรับผู้ให้บริการ OIDC ที่ใช้ CA ส่วนตัวหรือ CA ที่ลงนามด้วยตนเอง เว้นว่างไว้เพื่อใช้ที่เก็บใบรับรองความเชื่อถือของระบบ" }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "ลงชื่อเข้าใช้ด้วย SSO โดยอัตโนมัติ", + "description": "ส่งผู้เข้าชมไปยังผู้ให้บริการ SSO ตัวแรกโดยตรงแทนที่จะแสดงแบบฟอร์มล็อกอิน ตัวแปรสภาพแวดล้อม OIDC_SILENT_LOGIN_DEFAULT จะแทนที่การตั้งค่านี้" } } } diff --git a/plugins/sso/locales/translated/tr_TR.json b/plugins/sso/locales/translated/tr_TR.json index e6366147d..ff25d4ef7 100644 --- a/plugins/sso/locales/translated/tr_TR.json +++ b/plugins/sso/locales/translated/tr_TR.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "SSO ile giriş yapın", "loginWithProvider": "{{name}} ile giriş yap", "loading": "Yükleniyor...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "SSO sağlayıcılarını yönetin", + "description": "Kullanıcıların oturum açabileceği SSO sağlayıcılarını ekleyin, değiştirin ve kaldırın." } }, "providers": { @@ -16,8 +16,8 @@ "delete": "Sağlayıcıyı Sil", "deleteConfirm": "Bu sağlayıcı silinsin mi? İlişkili kullanıcılar oturum açamaz.", "name": "Görünen Ad", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "SSO sağlayıcım", + "nameRequired": "Görünen ad gereklidir.", "type": "Sağlayıcı Türü", "enabled": "Etkin", "save": "Sağlayıcıyı Kaydet", @@ -26,20 +26,20 @@ "saveFailed": "Kaydedilemedi", "deleted": "Silindi", "deleteFailed": "Silinemedi", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "SSO sağlayıcıları yüklenemedi.", "cancel": "İptal", "copy": "Kopyala", "copied": "Kopyalandı", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "Yönlendirme URI'si", + "redirectUriDesc": "Bu URL'yi kimlik sağlayıcınızda yönlendirme veya geri çağırma URL'si olarak kaydedin.", + "legacyCallback": "Eski yönlendirme URI'sini koruyun.", + "legacyCallbackDesc": "Bu sağlayıcı Termix 2.9'dan önce kuruldu ve hala çalışmaya devam eden eski yönlendirme URI'sini kullanıyor. Yenisine geçmek için önce kimlik sağlayıcınıza {{uri}} ekleyin, ardından bunu devre dışı bırakın.", + "authorizationUrl": "Yetkilendirme URL'si: {{url}}" }, "fields": { "clientId": "İstemci Kimliği", "clientSecret": "İstemci Sırrı", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "Bir sır saklanıyor. Sırrı korumak için burayı boş bırakın.", "issuerUrl": "Sağlayıcı URL'si", "authUrl": "Yetkilendirme URL'si", "tokenUrl": "Belirteç URL'si", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "SSO ile otomatik olarak giriş yap", + "description": "Ziyaretçileri giriş formunu göstermek yerine doğrudan ilk SSO sağlayıcısına yönlendirin. OIDC_SILENT_LOGIN_DEFAULT ortam değişkeni bunu geçersiz kılar." } } } diff --git a/plugins/sso/locales/translated/uk_UA.json b/plugins/sso/locales/translated/uk_UA.json index 9e2735ede..874c92596 100644 --- a/plugins/sso/locales/translated/uk_UA.json +++ b/plugins/sso/locales/translated/uk_UA.json @@ -1,65 +1,65 @@ { - "loginWithSso": "Sign in with SSO", - "loginWithProvider": "Login with {{name}}", - "loading": "Loading...", + "loginWithSso": "Увійти за допомогою єдиного входу", + "loginWithProvider": "Увійти за допомогою {{name}}", + "loading": "Завантаження...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Керування постачальниками SSO", + "description": "Додавайте, змінюйте та видаляйте постачальників SSO, за допомогою яких користувачі можуть входити в систему." } }, "providers": { - "docsLink": "View docs", - "none": "No SSO providers configured.", - "add": "Add Provider", - "edit": "Edit Provider", - "delete": "Delete Provider", - "deleteConfirm": "Delete this provider? Associated users will be unable to login.", - "name": "Display Name", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", - "type": "Provider Type", - "enabled": "Enabled", - "save": "Save Provider", - "saving": "Saving...", - "saved": "Saved", - "saveFailed": "Failed to save", - "deleted": "Deleted", - "deleteFailed": "Failed to delete", - "loadFailed": "Failed to load SSO providers", - "cancel": "Cancel", - "copy": "Copy", - "copied": "Copied", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "docsLink": "Переглянути документи", + "none": "Постачальників SSO не налаштовано.", + "add": "Додати постачальника", + "edit": "Редагувати постачальника", + "delete": "Видалити постачальника", + "deleteConfirm": "Видалити цього постачальника? Пов’язані користувачі не зможуть увійти.", + "name": "Відображуване ім'я", + "namePlaceholder": "Мій постачальник SSO", + "nameRequired": "Потрібне відображуване ім'я", + "type": "Тип постачальника", + "enabled": "Увімкнено", + "save": "Зберегти постачальника", + "saving": "Збереження...", + "saved": "Збережено", + "saveFailed": "Не вдалося зберегти", + "deleted": "Видалено", + "deleteFailed": "Не вдалося видалити", + "loadFailed": "Не вдалося завантажити постачальників SSO", + "cancel": "Скасувати", + "copy": "Копіювати", + "copied": "Скопійовано", + "redirectUri": "URI перенаправлення", + "redirectUriDesc": "Зареєструйте цю URL-адресу як URL-адресу перенаправлення або зворотного виклику у вашому постачальнику ідентифікаційних даних.", + "legacyCallback": "Зберегти старий URI перенаправлення", + "legacyCallbackDesc": "Цей провайдер було налаштовано до версії Termix 2.9 і досі використовує старий URI перенаправлення, який продовжує працювати. Щоб перейти на новий, спочатку додайте {{uri}} до свого провайдера ідентифікації, а потім вимкніть його.", + "authorizationUrl": "URL-адреса авторизації: {{url}}" }, "fields": { - "clientId": "Client ID", - "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", - "issuerUrl": "Issuer URL", - "authUrl": "Authorization URL", - "tokenUrl": "Token URL", - "userIdentifier": "User Identifier Path", - "displayName": "Display Name Path", - "scopes": "Scopes", - "userinfoUrl": "Override Userinfo URL", - "groupClaim": "Group Claim", - "groupClaimDesc": "Optional. The claim path that contains the user's groups. Defaults to groups, roles, then group. Use this for providers with a custom claim (e.g. Zitadel).", - "allowedUsers": "Allowed Users", - "allowedUsersDesc": "One email per line. Leave empty to allow all.", - "adminGroup": "Admin Group", - "adminGroupDesc": "Users in this group are granted admin. Leave empty to disable group sync.", - "caCert": "Custom CA Certificate", - "caCertDesc": "Optional. PEM-encoded CA certificate for OIDC providers using a private or self-signed CA. Leave empty to use the system trust store." + "clientId": "Ідентифікатор клієнта", + "clientSecret": "Секрет клієнта", + "secretKeep": "Секрет збережено. Залиште це поле порожнім, щоб зберегти його.", + "issuerUrl": "URL-адреса емітента", + "authUrl": "URL-адреса авторизації", + "tokenUrl": "URL-адреса токена", + "userIdentifier": "Шлях ідентифікатора користувача", + "displayName": "Шлях до відображуваного імені", + "scopes": "Області застосування", + "userinfoUrl": "Перевизначити URL-адресу інформації користувача", + "groupClaim": "Групова претензія", + "groupClaimDesc": "Необов'язково. Шлях до заяви, що містить групи користувача. За замовчуванням використовуються групи, ролі, а потім група. Використовуйте це для постачальників із власною заявою (наприклад, Zitadel).", + "allowedUsers": "Дозволені користувачі", + "allowedUsersDesc": "Одна електронна адреса на рядок. Залиште поле порожнім, щоб дозволити всім.", + "adminGroup": "Група адміністраторів", + "adminGroupDesc": "Користувачам у цій групі надано права адміністратора. Залиште поле порожнім, щоб вимкнути синхронізацію групи.", + "caCert": "Спеціальний сертифікат CA", + "caCertDesc": "Необов’язково. Сертифікат CA з PEM-кодуванням для постачальників OIDC, які використовують приватний або самопідписаний CA. Залиште поле порожнім, щоб використовувати системне сховище довірених сертифікатів." }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Автоматичний вхід за допомогою єдиного входу", + "description": "Надсилати відвідувачів безпосередньо до першого постачальника SSO замість відображення форми входу. Змінна середовища OIDC_SILENT_LOGIN_DEFAULT замінює це." } } } diff --git a/plugins/sso/locales/translated/vi_VN.json b/plugins/sso/locales/translated/vi_VN.json index 787905d48..67d381791 100644 --- a/plugins/sso/locales/translated/vi_VN.json +++ b/plugins/sso/locales/translated/vi_VN.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "Đăng nhập bằng SSO", "loginWithProvider": "Đăng nhập bằng {{name}}", "loading": "Đang tải...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "Quản lý các nhà cung cấp SSO", + "description": "Thêm, thay đổi và xóa các nhà cung cấp SSO mà người dùng có thể sử dụng để đăng nhập." } }, "providers": { @@ -16,8 +16,8 @@ "delete": "Xóa nhà cung cấp", "deleteConfirm": "Xóa nhà cung cấp này? Người dùng liên kết sẽ không thể đăng nhập.", "name": "Tên hiển thị", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "Nhà cung cấp SSO của tôi", + "nameRequired": "Tên hiển thị là bắt buộc", "type": "Loại nhà cung cấp", "enabled": "Đã bật", "save": "Lưu nhà cung cấp", @@ -26,20 +26,20 @@ "saveFailed": "Không thể lưu", "deleted": "Đã xóa", "deleteFailed": "Không thể xóa", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "Không thể tải nhà cung cấp SSO", "cancel": "Hủy", "copy": "Sao chép", "copied": "Đã sao chép", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "URI chuyển hướng", + "redirectUriDesc": "Hãy đăng ký URL này làm URL chuyển hướng hoặc URL gọi lại trong nhà cung cấp định danh của bạn.", + "legacyCallback": "Giữ nguyên URI chuyển hướng cũ.", + "legacyCallbackDesc": "Nhà cung cấp này được thiết lập trước Termix 2.9 và vẫn sử dụng URI chuyển hướng cũ, vẫn hoạt động bình thường. Để chuyển sang URI mới, trước tiên hãy thêm {{uri}} vào nhà cung cấp định danh của bạn, sau đó tắt chức năng này đi.", + "authorizationUrl": "URL xác thực: {{url}}" }, "fields": { "clientId": "Client ID", "clientSecret": "Client Secret", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "Một bí mật đã được giữ kín. Hãy để trống phần này để bảo vệ nó.", "issuerUrl": "Issuer URL", "authUrl": "URL ủy quyền", "tokenUrl": "Token URL", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "Đăng nhập tự động bằng SSO", + "description": "Hãy chuyển hướng khách truy cập trực tiếp đến nhà cung cấp SSO đầu tiên thay vì hiển thị biểu mẫu đăng nhập. Biến môi trường OIDC_SILENT_LOGIN_DEFAULT sẽ ghi đè lên cài đặt này." } } } diff --git a/plugins/sso/locales/translated/zh_CN.json b/plugins/sso/locales/translated/zh_CN.json index d8fd19404..95fc9153c 100644 --- a/plugins/sso/locales/translated/zh_CN.json +++ b/plugins/sso/locales/translated/zh_CN.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "使用 SSO 登录", "loginWithProvider": "使用{{name}}登录", "loading": "加载中...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "管理 SSO 提供商", + "description": "添加、更改和删除用户可用于登录的 SSO 提供商。" } }, "providers": { @@ -16,8 +16,8 @@ "delete": "删除提供商", "deleteConfirm": "删除此提供商?关联用户将无法登录。", "name": "显示名称", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "我的 SSO 提供商", + "nameRequired": "必须填写显示名称。", "type": "提供商类型", "enabled": "已启用", "save": "保存提供商", @@ -26,20 +26,20 @@ "saveFailed": "保存失败", "deleted": "已删除", "deleteFailed": "删除失败", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "加载 SSO 提供程序失败", "cancel": "取消", "copy": "复制", "copied": "已复制", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "重定向 URI", + "redirectUriDesc": "将此 URL 注册为身份提供商中的重定向或回调 URL。", + "legacyCallback": "保留旧的重定向 URI", + "legacyCallbackDesc": "此身份提供程序是在 Termix 2.9 版本之前设置的,目前仍使用旧的重定向 URI,该 URI 仍然有效。要迁移到新的重定向 URI,请先在身份提供程序中添加 {{uri}} ,然后再将其关闭。", + "authorizationUrl": "授权网址: {{url}}" }, "fields": { "clientId": "客户端 ID", "clientSecret": "客户端密钥", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "一个秘密被保守。留空即可保密。", "issuerUrl": "颁发者 URL", "authUrl": "授权 URL", "tokenUrl": "令牌 URL", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "使用 SSO 自动登录", + "description": "将访客直接引导至第一个单点登录 (SSO) 提供商,而不是显示登录表单。环境变量 OIDC_SILENT_LOGIN_DEFAULT 会覆盖此设置。" } } } diff --git a/plugins/sso/locales/translated/zh_TW.json b/plugins/sso/locales/translated/zh_TW.json index a31e9ff39..4fc50db2f 100644 --- a/plugins/sso/locales/translated/zh_TW.json +++ b/plugins/sso/locales/translated/zh_TW.json @@ -1,11 +1,11 @@ { - "loginWithSso": "Sign in with SSO", + "loginWithSso": "使用 SSO 登入", "loginWithProvider": "使用 {{name}} 登入", "loading": "載入中...", "permissions": { "manage": { - "title": "Manage SSO providers", - "description": "Add, change and remove the SSO providers people can sign in with." + "title": "管理 SSO 提供者", + "description": "新增、變更和刪除使用者可用於登入的 SSO 提供者。" } }, "providers": { @@ -16,8 +16,8 @@ "delete": "刪除提供者", "deleteConfirm": "刪除此提供者?相關使用者將無法登入。", "name": "顯示名稱", - "namePlaceholder": "My SSO provider", - "nameRequired": "A display name is required", + "namePlaceholder": "我的 SSO 提供者", + "nameRequired": "必須填寫顯示名稱。", "type": "提供者類型", "enabled": "已啟用", "save": "儲存提供者", @@ -26,20 +26,20 @@ "saveFailed": "儲存失敗", "deleted": "已刪除", "deleteFailed": "刪除失敗", - "loadFailed": "Failed to load SSO providers", + "loadFailed": "載入 SSO 提供者失敗", "cancel": "取消", "copy": "複製", "copied": "已複製", - "redirectUri": "Redirect URI", - "redirectUriDesc": "Register this URL as the redirect or callback URL in your identity provider.", - "legacyCallback": "Keep the old redirect URI", - "legacyCallbackDesc": "This provider was set up before Termix 2.9 and still uses the old redirect URI, which keeps working. To move to the new one, add {{uri}} in your identity provider first, then turn this off.", - "authorizationUrl": "Authorization URL: {{url}}" + "redirectUri": "重定向 URI", + "redirectUriDesc": "將此 URL 註冊為身分提供者中的重新導向或回調 URL。", + "legacyCallback": "保留舊的重定向 URI", + "legacyCallbackDesc": "此身分提供者是在 Termix 2.9 版本之前設定的,目前仍使用舊的重定向 URI,該 URI 仍然有效。若要遷移到新的重定向 URI,請先在身分提供者中新增 {{uri}} ,然後再將其關閉。", + "authorizationUrl": "授權網址: {{url}}" }, "fields": { "clientId": "用戶端 ID", "clientSecret": "用戶端密鑰", - "secretKeep": "A secret is saved. Leave this empty to keep it.", + "secretKeep": "一個秘密被保守。留空即可保密。", "issuerUrl": "發行者 URL", "authUrl": "授權 URL", "tokenUrl": "權杖 URL", @@ -58,8 +58,8 @@ }, "settings": { "silentLoginDefault": { - "label": "Sign in with SSO automatically", - "description": "Send visitors straight to the first SSO provider instead of showing the login form. The OIDC_SILENT_LOGIN_DEFAULT environment variable overrides this." + "label": "使用 SSO 自動登入", + "description": "將訪客直接引導至第一個單一登入 (SSO) 供應商,而不是顯示登入表單。環境變數 OIDC_SILENT_LOGIN_DEFAULT 會覆寫此設定。" } } } diff --git a/plugins/step-ca/locales/translated/bn_BD.json b/plugins/step-ca/locales/translated/bn_BD.json index 30af15734..f89371178 100644 --- a/plugins/step-ca/locales/translated/bn_BD.json +++ b/plugins/step-ca/locales/translated/bn_BD.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "স্টেপ সিএ" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "স্টেপ সিএ", + "description": "আপনার আইডেন্টিটি প্রোভাইডারের মাধ্যমে সাইন ইন করুন এবং আপনার স্টেপ সিএ-কে এই হোস্টের জন্য একটি স্বল্পস্থায়ী এসএসএইচ সার্টিফিকেট ইস্যু করতে দিন। সিএ ইউআরএল, রুট ফিঙ্গারপ্রিন্ট এবং ওআইডিসি প্রোভিশনার একজন অ্যাডমিনিস্ট্রেটর দ্বারা অ্যাডমিন সেটিংস-এর স্টেপ সিএ সেকশনে সেট করা হয়।", + "docs": "নথি দেখুন" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "ধাপ CA প্রমাণীকরণ আবশ্যক", + "description": "চালিয়ে যাওয়ার জন্য আপনার ব্রাউজারে প্রমাণীকরণ সম্পন্ন করুন। আপনার CA যতক্ষণ অনুমতি দেয়, ততক্ষণ সার্টিফিকেটটি বৈধ থাকবে।", + "openBrowser": "প্রমাণীকরণের জন্য ব্রাউজার খুলুন", + "waiting": "ব্রাউজারে প্রমাণীকরণের জন্য অপেক্ষা করা হচ্ছে...", + "authenticating": "প্রমাণীকরণ প্রক্রিয়া চলছে..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "প্রমাণীকরণ ব্যর্থ হয়েছে। অনুগ্রহ করে আপনার পরিচয়পত্র যাচাই করে আবার চেষ্টা করুন।", + "timeout": "প্রমাণীকরণের সময়সীমা শেষ হয়ে গেছে। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "আপনার smallstep CA-এর https URL। Step CA বন্ধ করতে CA URL, fingerprint এবং provisioner খালি রাখুন।", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "রুট ফিঙ্গারপ্রিন্ট (SHA-256)", + "description": "রুট সার্টিফিকেটের ফিঙ্গারপ্রিন্ট, যা ca bootstrap ধাপে দেখানো হয়েছে।" }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC সরবরাহকারীর নাম", + "description": "CA-এর OIDC প্রোভিশনারের নাম। তারপর হোস্টের অথেনটিকেশন টাইপ হিসেবে \"স্টেপ CA\" বেছে নিন।" }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "ব্যক্তিগত স্টেপ সিএ হোস্টদের অনুমতি দেওয়া হয়েছে", + "description": "স্টেপ সিএ সার্টিফিকেট ফ্লো যেসব প্রাইভেট হোস্টের সাথে যোগাযোগ করতে পারে, সেগুলো হলো: স্বয়ং সিএ (CA) এবং, যদি অভ্যন্তরীণ হয়, আপনার আইডেন্টিটি প্রোভাইডার। এদেরকে কমা অথবা নতুন লাইন দিয়ে আলাদা করুন।" }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "পুনঃনির্দেশ URI", + "description": "OIDC প্রোভিশনারের পেছনের আইডেন্টিটি প্রোভাইডারের কাছে এই URL-টিকে একটি অনুমোদিত রিডাইরেক্ট URI হিসেবে নিবন্ধন করুন।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "পুরানো রিডাইরেক্ট ইউআরআই ব্যবহার করুন", + "description": "/host/step-ca-callback, অর্থাৎ ২.৯-এর আগে ব্যবহৃত রিডাইরেক্ট ইউআরআইটি পাঠানো চালিয়ে যান। আপনার আইডেন্টিটি প্রোভাইডার নতুনটির অনুমতি দিলে এটি বন্ধ করে দিন।" } } } diff --git a/plugins/step-ca/locales/translated/hi_IN.json b/plugins/step-ca/locales/translated/hi_IN.json index ee5cc12f0..0b463419b 100644 --- a/plugins/step-ca/locales/translated/hi_IN.json +++ b/plugins/step-ca/locales/translated/hi_IN.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "स्टेप सीए" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "स्टेप सीए", + "description": "अपने आइडेंटिटी प्रोवाइडर के माध्यम से साइन इन करें और अपने स्टेप सीए को इस होस्ट के लिए एक अल्पकालिक एसएसएच प्रमाणपत्र जारी करने दें। सीए यूआरएल, रूट फिंगरप्रिंट और ओआईडीसी प्रोविजनर को एडमिनिस्ट्रेटर द्वारा एडमिन सेटिंग्स के स्टेप सीए सेक्शन में सेट किया जाता है।", "docs": "दस्तावेज़ देखें" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "चरण CA प्रमाणीकरण आवश्यक है", + "description": "आगे बढ़ने के लिए अपने ब्राउज़र में प्रमाणीकरण पूरा करें। प्रमाणपत्र तब तक वैध रहेगा जब तक आपका CA इसकी अनुमति देता है।", "openBrowser": "प्रमाणीकरण के लिए ब्राउज़र खोलें", "waiting": "ब्राउज़र में प्रमाणीकरण की प्रतीक्षा हो रही है...", "authenticating": "प्रमाणीकरण प्रक्रिया में है..." @@ -20,29 +20,29 @@ }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "सीए यूआरएल", + "description": "आपके SmallStep CA का HTTPS URL। Step CA को बंद करने के लिए CA URL, फिंगरप्रिंट और प्रोविज़नर को खाली छोड़ दें।", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "रूट फिंगरप्रिंट (SHA-256)", + "description": "रूट सर्टिफिकेट फिंगरप्रिंट, जैसा कि स्टेप सीए बूटस्ट्रैप द्वारा दिखाया गया है।" }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC प्रोविज़नर नाम", + "description": "सीए के ओआईडीसी प्रोविजनर का नाम। फिर होस्ट के प्रमाणीकरण प्रकार के रूप में \"स्टेप सीए\" चुनें।" }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "निजी स्टेप सीए होस्ट की अनुमति है", + "description": "निजी होस्ट, स्टेप सीए प्रमाणपत्र प्रवाह के दौरान निम्नलिखित से संपर्क कर सकते हैं: सीए स्वयं और, यदि आंतरिक है, तो आपका पहचान प्रदाता। इन्हें अल्पविराम या नई पंक्तियों से अलग करें।" }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "रीडायरेक्ट यूआरआई", + "description": "इस यूआरएल को ओआईडीसी प्रोविजनर के पीछे स्थित आइडेंटिटी प्रोवाइडर के साथ एक अनुमत रीडायरेक्ट यूआरआई के रूप में पंजीकृत करें।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "पुराने रीडायरेक्ट यूआरआई का उपयोग करें", + "description": "पहले 2.9 से पहले इस्तेमाल होने वाले रीडायरेक्ट यूआरआई /host/step-ca-callback को भेजते रहें। जब आपका आइडेंटिटी प्रोवाइडर नए यूआरआई की अनुमति दे दे, तो इसे बंद कर दें।" } } } diff --git a/plugins/step-ca/locales/translated/id_ID.json b/plugins/step-ca/locales/translated/id_ID.json index 30af15734..a276106d1 100644 --- a/plugins/step-ca/locales/translated/id_ID.json +++ b/plugins/step-ca/locales/translated/id_ID.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Langkah CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Langkah CA", + "description": "Masuk melalui penyedia identitas Anda dan biarkan Step CA menerbitkan sertifikat SSH berumur pendek untuk host ini. URL CA, sidik jari root, dan penyedia OIDC diatur oleh administrator di bagian Step CA pada Pengaturan Admin.", + "docs": "Lihat dokumen" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Langkah Otentikasi CA Diperlukan", + "description": "Selesaikan otentikasi di browser Anda untuk melanjutkan. Sertifikat tetap berlaku selama Otoritas Sertifikasi (CA) Anda mengizinkan.", + "openBrowser": "Buka Browser untuk Melakukan Otentikasi", + "waiting": "Menunggu otentikasi di browser...", + "authenticating": "Memproses otentikasi..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentikasi gagal. Silakan periksa kredensial Anda dan coba lagi.", + "timeout": "Autentikasi habis waktu. Silakan coba lagi." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "URL CA", + "description": "URL https CA SmallStep Anda. Biarkan URL CA, fingerprint, dan provisioner kosong untuk menonaktifkan Step CA.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Sidik jari akar (SHA-256)", + "description": "Sidik jari sertifikat root, seperti yang ditunjukkan oleh langkah ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Nama penyedia OIDC", + "description": "Nama penyedia OIDC CA. Kemudian pilih \"Step CA\" sebagai tipe otentikasi host." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Host CA Langkah pribadi yang diizinkan", + "description": "Host privat yang dapat dihubungi oleh alur sertifikat Step CA adalah: CA itu sendiri dan, jika internal, penyedia identitas Anda. Pisahkan mereka dengan koma atau baris baru." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI Pengalihan", + "description": "Daftarkan URL ini sebagai URI pengalihan yang diizinkan dengan penyedia identitas di balik penyedia OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Gunakan URI pengalihan lama.", + "description": "Tetap kirimkan /host/step-ca-callback, URI pengalihan yang digunakan sebelum versi 2.9. Matikan ini setelah penyedia identitas Anda mengizinkan yang baru." } } } diff --git a/plugins/step-ca/locales/translated/nl_NL.json b/plugins/step-ca/locales/translated/nl_NL.json index 30af15734..6fa21d418 100644 --- a/plugins/step-ca/locales/translated/nl_NL.json +++ b/plugins/step-ca/locales/translated/nl_NL.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Stap CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Stap CA", + "description": "Meld u aan via uw identiteitsprovider en laat uw Step CA een kortstondig SSH-certificaat voor deze host uitgeven. De CA-URL, root-fingerprint en OIDC-provisioner worden door een beheerder ingesteld in het Step CA-gedeelte van de beheerdersinstellingen.", + "docs": "Documenten bekijken" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Stap CA-authenticatie vereist", + "description": "Voltooi de authenticatie in uw browser om verder te gaan. Het certificaat blijft geldig zolang uw certificeringsinstantie dit toestaat.", + "openBrowser": "Open de browser om te authenticeren.", + "waiting": "Wachten op authenticatie in de browser...", + "authenticating": "Authenticatie wordt verwerkt..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Authenticatie mislukt. Controleer uw inloggegevens en probeer het opnieuw.", + "timeout": "De authenticatie is mislukt vanwege een time-out. Probeer het opnieuw." }, "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "De https-URL van uw Smallstep CA. Laat de CA-URL, vingerafdruk en provisioner leeg om Step CA uit te schakelen.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Root-vingerafdruk (SHA-256)", + "description": "De vingerafdruk van het rootcertificaat, zoals weergegeven in stap ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Naam van de OIDC-leverancier", + "description": "De naam van de OIDC-provisioner van de CA. Kies vervolgens \"Step CA\" als authenticatietype voor de host." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Toegestane privé Step CA-hosts", + "description": "De private hosts waarmee de Step CA-certificaatstroom contact kan opnemen, zijn: de certificeringsinstantie zelf en, indien intern, uw identiteitsprovider. Scheid deze met komma's of nieuwe regels." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "Omleidings-URI", + "description": "Registreer deze URL als een toegestane omleidings-URI bij de identiteitsprovider achter de OIDC-provisioner." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Gebruik de oude omleidings-URI", + "description": "Blijf /host/step-ca-callback verzenden, de omleidings-URI die vóór versie 2.9 werd gebruikt. Schakel dit uit zodra uw identiteitsprovider de nieuwe URI toestaat." } } } diff --git a/plugins/step-ca/locales/translated/no_NO.json b/plugins/step-ca/locales/translated/no_NO.json index 30af15734..a5986cbec 100644 --- a/plugins/step-ca/locales/translated/no_NO.json +++ b/plugins/step-ca/locales/translated/no_NO.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Trinn CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Trinn CA", + "description": "Logg på via identitetsleverandøren din, og la Step CA utstede et kortvarig SSH-sertifikat for denne verten. CA-URL-en, rotfingeravtrykket og OIDC-provisioneren angis av en administrator i Step CA-delen av administratorinnstillingene.", + "docs": "Vis dokumenter" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Trinn CA-autentisering kreves", + "description": "Fullfør autentiseringen i nettleseren din for å fortsette. Sertifikatet forblir gyldig så lenge CA-en din tillater det.", + "openBrowser": "Åpne nettleseren for å autentisere", + "waiting": "Venter på autentisering i nettleseren...", + "authenticating": "Behandler autentisering ..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentiseringen mislyktes. Sjekk legitimasjonen din og prøv på nytt.", + "timeout": "Autentiseringen ble tidsavbrutt. Prøv på nytt." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "CA-URL", + "description": "https-URL-en til din smallstep CA. La CA-URL-en, fingeravtrykket og provisioneren stå tomme for å slå av Step CA.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Rotfingeravtrykk (SHA-256)", + "description": "Rotsertifikatets fingeravtrykk, som vist i trinn ca. bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC-provisionernavn", + "description": "Navnet på CA-ens OIDC-provisioner. Velg deretter «Step CA» som verts autentiseringstype." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Tillatte private Step CA-verter", + "description": "Private verter som Step CA-sertifikatflyten kan kontakte: selve CA-en og, hvis intern, identitetsleverandøren din. Skill dem med komma eller nye linjer." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "Omdirigerings-URI", + "description": "Registrer denne URL-en som en tillatt omdirigerings-URI hos identitetsleverandøren bak OIDC-klargjøreren." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Bruk den gamle omdirigerings-URI-en", + "description": "Fortsett å sende /host/step-ca-callback, omdirigerings-URI-en som ble brukt før 2.9. Slå av dette når identitetsleverandøren din tillater den nye." } } } diff --git a/plugins/step-ca/locales/translated/pl_PL.json b/plugins/step-ca/locales/translated/pl_PL.json index 7d81f2d25..f11756541 100644 --- a/plugins/step-ca/locales/translated/pl_PL.json +++ b/plugins/step-ca/locales/translated/pl_PL.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Krok CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Krok CA", + "description": "Zaloguj się za pomocą swojego dostawcy tożsamości i pozwól, aby urząd certyfikacji Step CA wydał tymczasowy certyfikat SSH dla tego hosta. Adres URL urzędu certyfikacji, odcisk palca głównego i dostawca OIDC są ustawiane przez administratora w sekcji Step CA w Ustawieniach administratora.", "docs": "Zobacz dokumentację" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "Wymagane uwierzytelnienie CA", + "description": "Aby kontynuować, dokończ uwierzytelnianie w przeglądarce. Certyfikat pozostaje ważny tak długo, jak pozwala na to Twój urząd certyfikacji.", "openBrowser": "Otwórz przeglądarkę, aby uwierzytelnić", "waiting": "Oczekiwanie na uwierzytelnienie w przeglądarce...", "authenticating": "Przetwarzanie uwierzytelniania..." @@ -20,29 +20,29 @@ }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "Adres URL CA", + "description": "Adres URL https Twojego urzędu certyfikacji SmallStep. Pozostaw puste pola adresu URL urzędu certyfikacji, odcisku palca i provisionera, aby wyłączyć urząd certyfikacji Step CA.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Odcisk palca głównego (SHA-256)", + "description": "Odcisk palca certyfikatu głównego, jak pokazano w kroku ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Nazwa dostawcy OIDC", + "description": "Nazwa dostawcy OIDC urzędu certyfikacji. Następnie wybierz „Urząd certyfikacji krok po kroku” jako typ uwierzytelniania hosta." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Dozwolone prywatne hosty Step CA", + "description": "Prywatni hosty, z których przepływ certyfikatów Step CA może się kontaktować: z samym CA oraz, jeśli jest wewnętrzny, z dostawcą tożsamości. Rozdziel je przecinkami lub znakami nowej linii." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "Przekieruj URI", + "description": "Zarejestruj ten adres URL jako dozwolony adres URI przekierowania u dostawcy tożsamości stojącego za programem OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Użyj starego adresu URI przekierowania", + "description": "Nadal wysyłaj /host/step-ca-callback, czyli URI przekierowania używane przed wersją 2.9. Wyłącz tę opcję, gdy Twój dostawca tożsamości zezwoli na nową." } } } diff --git a/plugins/step-ca/locales/translated/pt_BR.json b/plugins/step-ca/locales/translated/pt_BR.json index 5a1e33677..e7ec0021f 100644 --- a/plugins/step-ca/locales/translated/pt_BR.json +++ b/plugins/step-ca/locales/translated/pt_BR.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Etapa CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Etapa CA", + "description": "Faça login através do seu provedor de identidade e permita que sua Autoridade Certificadora (CA) Step emita um certificado SSH de curta duração para este host. O URL da CA, a impressão digital da raiz e o provisionador OIDC são definidos por um administrador na seção CA Step das Configurações de Administração.", "docs": "Documentação" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Etapa: Autenticação CA necessária", + "description": "Para continuar, complete a autenticação no seu navegador. O certificado permanecerá válido enquanto sua Autoridade Certificadora (CA) permitir.", + "openBrowser": "Abra o navegador para autenticar.", + "waiting": "Aguardando autenticação no navegador...", + "authenticating": "Processando autenticação..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "A autenticação falhou. Verifique suas credenciais e tente novamente.", + "timeout": "A autenticação expirou. Tente novamente." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "URL CA", + "description": "O URL https da sua CA Smallstep. Deixe o URL da CA, a impressão digital e o provisionador em branco para desativar a CA da Step.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Impressão digital raiz (SHA-256)", + "description": "A impressão digital do certificado raiz, conforme mostrado pela etapa ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "nome do provisionador OIDC", + "description": "O nome do provisionador OIDC da CA. Em seguida, escolha \"CA de Etapa\" como o tipo de autenticação do host." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Hosts CA privados permitidos", + "description": "Para hosts privados, o fluxo de certificados da Step CA pode contatar: a própria CA e, se interna, seu provedor de identidade. Separe-os com vírgulas ou novas linhas." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI de redirecionamento", + "description": "Registre este URL como um URI de redirecionamento permitido junto ao provedor de identidade por trás do provisionador OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Use o URI de redirecionamento antigo", + "description": "Continue enviando /host/step-ca-callback, o URI de redirecionamento usado antes da versão 2.9. Desative-o assim que seu provedor de identidade permitir o novo." } } } diff --git a/plugins/step-ca/locales/translated/pt_PT.json b/plugins/step-ca/locales/translated/pt_PT.json index d7f75e1b9..a28c89a85 100644 --- a/plugins/step-ca/locales/translated/pt_PT.json +++ b/plugins/step-ca/locales/translated/pt_PT.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Etapa CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Etapa CA", + "description": "Faça login através do seu fornecedor de identidade e permita que a sua Autoridade Certificadora (CA) Step emita um certificado SSH de curta duração para este host. O URL da CA, a impressão digital da raiz e o provisionador OIDC são definidos por um administrador na secção CA Step das Definições de Administração.", "docs": "Ver docs" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "Passo: Autenticação CA necessária", + "description": "Para continuar, complete a autenticação no seu browser. O certificado permanecerá válido enquanto a sua Autoridade Certificadora (CA) o permitir.", "openBrowser": "Abrir navegador para autenticar", "waiting": "A aguardar autenticação no navegador...", "authenticating": "A processar autenticação..." @@ -20,29 +20,29 @@ }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "URL CA", + "description": "O URL https da sua CA Smallstep. Deixe o URL da AC, a impressão digital e o provisionador em branco para desativar a AC da Step.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Impressão digital de raiz (SHA-256)", + "description": "A impressão digital do certificado raiz, conforme mostrado pela etapa ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "nome do provisionador OIDC", + "description": "O nome do provisionador OIDC da CA. Em seguida, escolha \"CA de Passo\" como tipo de autenticação do host." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Hosts CA privados permitidos", + "description": "Para hosts privados, o fluxo de certificados da AC (Autoridade Certificadora) pode contactar: a própria AC e, se for interna, o seu fornecedor de identidade. Separe-os com vírgulas ou com novas linhas." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI de redireccionamento", + "description": "Registe este URL como um URI de redireccionamento permitido junto do fornecedor de identidade por trás do provisionador OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Utilize o URI de redirecionamento antigo", + "description": "Continue a enviar /host/step-ca-callback, o URI de redireccionamento utilizado antes da versão 2.9. Desative-o assim que o seu fornecedor de identidade permitir o novo." } } } diff --git a/plugins/step-ca/locales/translated/ru_RU.json b/plugins/step-ca/locales/translated/ru_RU.json index 090e6a3cd..8e9b1dca3 100644 --- a/plugins/step-ca/locales/translated/ru_RU.json +++ b/plugins/step-ca/locales/translated/ru_RU.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Шаг CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Шаг CA", + "description": "Войдите в систему через своего поставщика идентификации и позвольте вашему центру сертификации Step CA выдать краткосрочный SSH-сертификат для этого хоста. URL-адрес центра сертификации, отпечаток корневого сертификата и средство подготовки OIDC задаются администратором в разделе Step CA в настройках администратора.", "docs": "Документация" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "Требуется аутентификация центра сертификации (CA) на этапе Step.", + "description": "Для продолжения необходимо пройти полную аутентификацию в браузере. Сертификат остается действительным до тех пор, пока это разрешает ваш центр сертификации.", "openBrowser": "Открыть браузер для аутентификации", "waiting": "Ожидание аутентификации в браузере...", "authenticating": "Обработка аутентификации..." @@ -21,28 +21,28 @@ "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "URL-адрес вашего центра сертификации smallstep с протоколом HTTPS. Оставьте поля URL-адреса центра сертификации, отпечатка и инициализатора пустыми, чтобы отключить центр сертификации step.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Отпечаток корневого ключа (SHA-256)", + "description": "Отпечаток корневого сертификата, как показано на шаге загрузки ca." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "имя поставщика OIDC", + "description": "Имя средства подготовки OIDC центра сертификации. Затем выберите \"Step CA\" в качестве типа аутентификации хоста." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Разрешены частные хосты Step CA", + "description": "Частные хосты, для которых процесс сертификации Step CA может взаимодействовать с центром сертификации, могут связываться с самим центром сертификации и, если он внутренний, с вашим поставщиком идентификации. Разделяйте их запятыми или переносами строк." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI перенаправления", + "description": "Зарегистрируйте этот URL-адрес в качестве разрешенного URI перенаправления у поставщика идентификационных данных, стоящего за устройством предоставления OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Используйте старый URI перенаправления.", + "description": "Продолжайте отправлять /host/step-ca-callback, URI перенаправления, использовавшийся до версии 2.9. Отключите эту функцию, как только ваш поставщик идентификации разрешит использование нового URI." } } } diff --git a/plugins/step-ca/locales/translated/sr_SP.json b/plugins/step-ca/locales/translated/sr_SP.json index 30af15734..24ea76211 100644 --- a/plugins/step-ca/locales/translated/sr_SP.json +++ b/plugins/step-ca/locales/translated/sr_SP.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Корак CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Корак CA", + "description": "Пријавите се преко свог добављача идентитета и дозволите свом Step CA да изда краткотрајни SSH сертификат за овај хост. CA URL, root отисак прста и OIDC provisioner подешава администратор у одељку Step CA у администраторским подешавањима.", + "docs": "Прикажи документе" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Потребна је аутентификација CA корака", + "description": "Завршите аутентификацију у прегледачу да бисте наставили. Сертификат остаје важећи онолико дуго колико вам то дозвољава ваш ЦА.", + "openBrowser": "Отворите прегледач за аутентификацију", + "waiting": "Чекање аутентификације у прегледачу...", + "authenticating": "Обрада аутентификације..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Аутентификација није успела. Проверите своје акредитиве и покушајте поново.", + "timeout": "Временско ограничење за аутентификацију је истекло. Молимо покушајте поново." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", - "placeholder": "https://ca.internal:9000" + "label": "URL адреса у Калифорнији", + "description": "https URL вашег smallstep CA. Оставите CA URL, отисак прста и provisioner празне да бисте искључили Step CA.", + "placeholder": "хттпс://ца.интернал:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Отисак коренског идентификатора (SHA-256)", + "description": "Отисак прста коренског сертификата, као што је приказано у кораку ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Име OIDC провизора", + "description": "Име OIDC провизора CA. Затим изаберите „Корак CA“ као тип аутентификације хоста." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Дозвољени приватни хостови Step CA", + "description": "Приватни хостови које ток сертификата Step CA може контактирати: сам CA и, ако је интерно, ваш добављач идентитета. Раздвојите их зарезима или новим редовима." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI за преусмеравање", + "description": "Региструјте ову URL адресу као дозвољени URI за преусмеравање код добављача идентитета иза OIDC провизора." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Користите стари URI за преусмеравање", + "description": "Наставите да шаљете /host/step-ca-callback, URI за преусмеравање који је коришћен пре верзије 2.9. Искључите ово када ваш добављач идентитета дозволи нови." } } } diff --git a/plugins/step-ca/locales/translated/sv_SE.json b/plugins/step-ca/locales/translated/sv_SE.json index 30af15734..545e60d9e 100644 --- a/plugins/step-ca/locales/translated/sv_SE.json +++ b/plugins/step-ca/locales/translated/sv_SE.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Steg CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Steg CA", + "description": "Logga in via din identitetsleverantör och låt din Step CA utfärda ett kortlivat SSH-certifikat för den här värden. CA-URL:en, rotfingeravtrycket och OIDC-provisionern ställs in av en administratör i avsnittet Step CA i administratörsinställningarna.", + "docs": "Visa dokument" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Steg CA-autentisering krävs", + "description": "Slutför autentiseringen i din webbläsare för att fortsätta. Certifikatet är giltigt så länge din certifikatutfärdare tillåter det.", + "openBrowser": "Öppna webbläsaren för att autentisera", + "waiting": "Väntar på autentisering i webbläsaren...", + "authenticating": "Bearbetar autentisering..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Autentiseringen misslyckades. Kontrollera dina inloggningsuppgifter och försök igen.", + "timeout": "Autentiseringen har gått ut. Försök igen." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "CA-URL", + "description": "https-URL:en för din smallstep CA. Lämna CA-URL:en, fingeravtrycket och provisionern tomma för att inaktivera Step CA.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Rotfingeravtryck (SHA-256)", + "description": "Rotcertifikatets fingeravtryck, som visas i steg ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC-provisioneringsnamn", + "description": "Namnet på CA:s OIDC-provisionerare. Välj sedan \"Step CA\" som värdens autentiseringstyp." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Tillåtna privata Step CA-värdar", + "description": "Privata värdar som Step CA-certifikatflödet kan kontakta: själva CA:n och, om den är intern, din identitetsleverantör. Separera dem med kommatecken eller radskift." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "Omdirigerings-URI", + "description": "Registrera den här URL:en som en tillåten omdirigerings-URI hos identitetsleverantören bakom OIDC-provisioneraren." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Använd den gamla omdirigerings-URI:n", + "description": "Fortsätt skicka /host/step-ca-callback, den omdirigerings-URI som användes före version 2.9. Stäng av detta när din identitetsleverantör tillåter den nya." } } } diff --git a/plugins/step-ca/locales/translated/th_TH.json b/plugins/step-ca/locales/translated/th_TH.json index 30af15734..a4adbc2e9 100644 --- a/plugins/step-ca/locales/translated/th_TH.json +++ b/plugins/step-ca/locales/translated/th_TH.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "ขั้นตอน CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "ขั้นตอน CA", + "description": "ลงชื่อเข้าใช้ผ่านผู้ให้บริการยืนยันตัวตนของคุณ และให้ Step CA ออกใบรับรอง SSH ที่มีอายุสั้นสำหรับโฮสต์นี้ URL ของ CA, ลายนิ้วมือรูท และตัวจัดเตรียม OIDC จะถูกตั้งค่าโดยผู้ดูแลระบบในส่วน Step CA ของการตั้งค่าผู้ดูแลระบบ", + "docs": "ดูเอกสาร" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "ต้องมีการตรวจสอบสิทธิ์ CA ในขั้นตอนนี้", + "description": "โปรดยืนยันตัวตนในเบราว์เซอร์ของคุณเพื่อดำเนินการต่อ ใบรับรองจะยังคงใช้งานได้ตราบเท่าที่หน่วยงานออกใบรับรอง (CA) ของคุณอนุญาต", + "openBrowser": "เปิดเบราว์เซอร์เพื่อยืนยันตัวตน", + "waiting": "กำลังรอการยืนยันตัวตนในเบราว์เซอร์...", + "authenticating": "กำลังตรวจสอบสิทธิ์..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "การตรวจสอบสิทธิ์ล้มเหลว โปรดตรวจสอบข้อมูลประจำตัวของคุณและลองอีกครั้ง", + "timeout": "การตรวจสอบสิทธิ์หมดเวลา โปรดลองอีกครั้ง" }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "แคลิฟอร์เนีย URL", + "description": "URL https ของ CA smallstep ของคุณ เว้นว่าง URL ของ CA, ลายนิ้วมือ และ provisioner ไว้เพื่อปิดใช้งาน Step CA", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "ลายนิ้วมือราก (SHA-256)", + "description": "ลายนิ้วมือของใบรับรองราก ดังที่แสดงโดยขั้นตอน ca bootstrap" }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "ชื่อผู้จัดเตรียม OIDC", + "description": "ชื่อของตัวจัดเตรียม OIDC ของ CA จากนั้นเลือก \"Step CA\" เป็นประเภทการตรวจสอบสิทธิ์ของโฮสต์" }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "อนุญาตให้โฮสต์ Step CA ส่วนตัว", + "description": "สำหรับโฮสต์ส่วนตัว กระบวนการขอใบรับรอง Step CA อาจติดต่อกับ: CA เอง และหากเป็นโฮสต์ภายใน ก็อาจติดต่อกับผู้ให้บริการยืนยันตัวตนของคุณด้วย คั่นด้วยเครื่องหมายจุลภาคหรือขึ้นบรรทัดใหม่" }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI การเปลี่ยนเส้นทาง", + "description": "ลงทะเบียน URL นี้เป็น URI ที่อนุญาตให้เปลี่ยนเส้นทางได้กับผู้ให้บริการข้อมูลประจำตัวที่อยู่เบื้องหลังตัวจัดเตรียม OIDC" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "ใช้ URI การเปลี่ยนเส้นทางแบบเดิม", + "description": "ส่ง /host/step-ca-callback ต่อไป ซึ่งเป็น URI สำหรับการเปลี่ยนเส้นทางที่ใช้ก่อนเวอร์ชัน 2.9 ปิดใช้งานเมื่อผู้ให้บริการยืนยันตัวตนของคุณอนุญาตให้ใช้ URI ใหม่แล้ว" } } } diff --git a/plugins/step-ca/locales/translated/tr_TR.json b/plugins/step-ca/locales/translated/tr_TR.json index f46b9fcb4..1a3577cab 100644 --- a/plugins/step-ca/locales/translated/tr_TR.json +++ b/plugins/step-ca/locales/translated/tr_TR.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Adım CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Adım CA", + "description": "Kimlik sağlayıcınız aracılığıyla oturum açın ve Step CA'nızın bu sunucu için kısa süreli bir SSH sertifikası düzenlemesine izin verin. CA URL'si, kök parmak izi ve OIDC sağlayıcısı, Yönetici Ayarları'nın Step CA bölümünde bir yönetici tarafından ayarlanır.", "docs": "Belgelere bak" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "CA Kimlik Doğrulaması Gerekli Adım", + "description": "Devam etmek için tarayıcınızda kimlik doğrulamasını tamamlayın. Sertifika, sertifika yetkilinizin izin verdiği süre boyunca geçerli kalır.", "openBrowser": "Kimlik Doğrulaması için Tarayıcı Aç", "waiting": "Tarayıcıda kimlik doğrulaması bekleniyor...", "authenticating": "Kimlik doğrulaması işleniyor..." @@ -21,28 +21,28 @@ "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "Smallstep CA'nızın https URL'si. Step CA'yı devre dışı bırakmak için CA URL'sini, parmak izini ve provizyon sağlayıcısını boş bırakın.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Kök parmak izi (SHA-256)", + "description": "Kök sertifika parmak izi, ca bootstrap adımı tarafından gösterildiği gibidir." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC tedarikçi adı", + "description": "CA'nın OIDC sağlayıcısının adını girin. Ardından, ana bilgisayarın kimlik doğrulama türü olarak \"Adım CA\"yı seçin." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Özel Step CA sunucularına izin verildi.", + "description": "Özel sunucular, Step CA sertifika akışı kapsamında şu kuruluşlarla iletişime geçebilir: CA'nın kendisi ve (dahili ise) kimlik sağlayıcınız. Bunları virgül veya yeni satırlarla ayırın." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "Yönlendirme URI'si", + "description": "Bu URL'yi, OIDC sağlayıcısının arkasındaki kimlik sağlayıcısında izin verilen yönlendirme URI'si olarak kaydedin." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Eski yönlendirme URI'sini kullanın.", + "description": "2.9 öncesinde kullanılan yönlendirme URI'si olan /host/step-ca-callback'i göndermeye devam edin. Kimlik sağlayıcınız yenisine izin verdiğinde bunu kapatın." } } } diff --git a/plugins/step-ca/locales/translated/uk_UA.json b/plugins/step-ca/locales/translated/uk_UA.json index 30af15734..ba2b0d523 100644 --- a/plugins/step-ca/locales/translated/uk_UA.json +++ b/plugins/step-ca/locales/translated/uk_UA.json @@ -1,48 +1,48 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Крок CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", - "docs": "View docs" + "label": "Крок CA", + "description": "Увійдіть через свого постачальника ідентифікаційних даних і дозвольте вашому центру сертифікації Step CA видати короткочасний SSH-сертифікат для цього хоста. URL-адресу центру сертифікації CA, кореневий відбиток і постачальник OIDC встановлює адміністратор у розділі «Центральна сертифікація Step» у налаштуваннях адміністратора.", + "docs": "Переглянути документи" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", - "openBrowser": "Open Browser to Authenticate", - "waiting": "Waiting for authentication in browser...", - "authenticating": "Processing authentication..." + "title": "Крок автентифікації CA Потрібна", + "description": "Щоб продовжити, завершіть автентифікацію у вашому браузері. Сертифікат залишається дійсним стільки, скільки дозволяє ваш центр сертифікації.", + "openBrowser": "Відкрийте браузер для автентифікації", + "waiting": "Очікування автентифікації у браузері...", + "authenticating": "Обробка автентифікації..." }, "errors": { - "authFailed": "Authentication failed. Please check your credentials and try again.", - "timeout": "Authentication timed out. Please try again." + "authFailed": "Помилка автентифікації. Перевірте свої облікові дані та спробуйте ще раз.", + "timeout": "Час очікування автентифікації минув. Спробуйте ще раз." }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "URL-адреса Каліфорнії", + "description": "URL-адреса https вашого центру сертифікації SmallStep. Залиште поля URL-адреса центру сертифікації, відбиток пальця та провайдер порожніми, щоб вимкнути Step CA.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Кореневий відбиток (SHA-256)", + "description": "Відбиток кореневого сертифіката, як показано на кроці ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Ім'я постачальника OIDC", + "description": "Ім'я постачальника OIDC CA. Потім виберіть \"Step CA\" як тип автентифікації хоста." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Дозволені приватні хости Step CA", + "description": "Приватні хости, з якими може зв’язатися потік сертифікатів Step CA: сам CA та, якщо внутрішній, ваш постачальник ідентифікаційних даних. Розділяйте їх комами або переведіть у новий рядок." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI перенаправлення", + "description": "Зареєструйте цю URL-адресу як дозволений URI перенаправлення у постачальника ідентифікаційних даних, що стоїть за провайдером OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Використовувати старий URI перенаправлення", + "description": "Продовжуйте надсилати /host/step-ca-callback, URI перенаправлення, який використовувався до версії 2.9. Вимкніть цю функцію, щойно ваш постачальник ідентифікаційних даних дозволить новий." } } } diff --git a/plugins/step-ca/locales/translated/vi_VN.json b/plugins/step-ca/locales/translated/vi_VN.json index da9747a48..4a4b21772 100644 --- a/plugins/step-ca/locales/translated/vi_VN.json +++ b/plugins/step-ca/locales/translated/vi_VN.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "Bước CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "Bước CA", + "description": "Đăng nhập thông qua nhà cung cấp danh tính của bạn và cho phép Step CA cấp chứng chỉ SSH có thời hạn ngắn cho máy chủ này. URL CA, dấu vân tay gốc và trình cung cấp OIDC được quản trị viên thiết lập trong phần Step CA của Cài đặt quản trị.", "docs": "Xem tài liệu" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "Bước xác thực CA bắt buộc", + "description": "Hoàn tất xác thực trên trình duyệt của bạn để tiếp tục. Chứng chỉ sẽ có hiệu lực miễn là CA của bạn cho phép.", "openBrowser": "Mở trình duyệt để xác thực", "waiting": "Đang chờ xác thực trên trình duyệt...", "authenticating": "Đang xử lý xác thực..." @@ -20,29 +20,29 @@ }, "settings": { "caUrl": { - "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "label": "URL CA", + "description": "URL HTTPS của CA Smallstep của bạn. Để trống URL CA, dấu vân tay và trình cung cấp để tắt CA Smallstep.", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "Dấu vân tay gốc (SHA-256)", + "description": "Dấu vân tay của chứng chỉ gốc, như được hiển thị bởi bước ca bootstrap." }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "Tên trình cung cấp OIDC", + "description": "Tên của trình cung cấp OIDC của CA. Sau đó chọn \"Step CA\" làm loại xác thực của máy chủ." }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "Cho phép máy chủ Step CA riêng tư", + "description": "Các máy chủ riêng mà quy trình chứng chỉ CA từng bước có thể liên hệ: chính CA và, nếu là máy chủ nội bộ, nhà cung cấp danh tính của bạn. Phân tách chúng bằng dấu phẩy hoặc xuống dòng." }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "URI chuyển hướng", + "description": "Đăng ký URL này như một URI chuyển hướng được cho phép với nhà cung cấp danh tính đứng sau trình cung cấp OIDC." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "Sử dụng URI chuyển hướng cũ.", + "description": "Tiếp tục gửi /host/step-ca-callback, URI chuyển hướng được sử dụng trước phiên bản 2.9. Tắt chức năng này khi nhà cung cấp định danh của bạn cho phép sử dụng URI mới." } } } diff --git a/plugins/step-ca/locales/translated/zh_CN.json b/plugins/step-ca/locales/translated/zh_CN.json index ef09db769..83d860937 100644 --- a/plugins/step-ca/locales/translated/zh_CN.json +++ b/plugins/step-ca/locales/translated/zh_CN.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "步骤 CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "步骤 CA", + "description": "通过您的身份提供商登录,并让您的 Step CA 为此主机颁发一个短期 SSH 证书。CA URL、根指纹和 OIDC 配置器由管理员在“管理设置”的 Step CA 部分中设置。", "docs": "查看文档" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "步骤 CA 身份验证是必需的", + "description": "请在浏览器中完成身份验证以继续。证书的有效期取决于您的证书颁发机构 (CA) 的许可期限。", "openBrowser": "打开浏览器进行认证", "waiting": "等待浏览器认证...", "authenticating": "正在处理认证..." @@ -21,28 +21,28 @@ "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "您的 SmallStep CA 的 HTTPS URL。如果将 CA URL、指纹和配置器留空,则禁用 Step CA。", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "根指纹(SHA-256)", + "description": "根证书指纹,如步骤 ca bootstrap 所示。" }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC配置器名称", + "description": "CA 的 OIDC 配置器的名称。然后选择“步骤 CA”作为主机的身份验证类型。" }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "允许的私有步骤 CA 主机", + "description": "步骤 CA 证书流程中的私有主机可能会联系:CA 本身,以及(如果是内部)您的身份提供商。请用逗号或换行符分隔它们。" }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "重定向 URI", + "description": "将此 URL 注册为 OIDC 配置器后面的身份提供商允许的重定向 URI。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "使用旧的重定向 URI", + "description": "继续发送 /host/step-ca-callback,这是 2.9 版本之前使用的重定向 URI。一旦您的身份提供商允许使用新的重定向 URI,就将其关闭。" } } } diff --git a/plugins/step-ca/locales/translated/zh_TW.json b/plugins/step-ca/locales/translated/zh_TW.json index 596cb1029..5c63ab157 100644 --- a/plugins/step-ca/locales/translated/zh_TW.json +++ b/plugins/step-ca/locales/translated/zh_TW.json @@ -1,15 +1,15 @@ { "hosts": { - "filterAuthStepca": "Step CA" + "filterAuthStepca": "步驟 CA" }, "editor": { - "label": "Step CA", - "description": "Sign in through your identity provider and let your Step CA issue a short-lived SSH certificate for this host. The CA URL, root fingerprint and OIDC provisioner are set by an administrator in the Step CA section of Admin Settings.", + "label": "步驟 CA", + "description": "透過您的身分提供者登錄,並讓您的 Step CA 為此主機頒發短期 SSH 憑證。 CA URL、根指紋和 OIDC 配置器由管理員在「管理設定」的 Step CA 部分中設定。", "docs": "檢視文件" }, "dialog": { - "title": "Step CA Authentication Required", - "description": "Complete authentication in your browser to continue. The certificate stays valid for as long as your CA allows.", + "title": "步驟 CA 身份驗證是必需的", + "description": "請在瀏覽器中完成身份驗證以繼續。憑證的有效期限取決於您的憑證授權單位 (CA) 的許可期限。", "openBrowser": "開啟瀏覽器以進行驗證", "waiting": "正在等待瀏覽器中的驗證…", "authenticating": "正在處理驗證…" @@ -21,28 +21,28 @@ "settings": { "caUrl": { "label": "CA URL", - "description": "The https URL of your smallstep CA. Leave the CA URL, fingerprint and provisioner empty to turn Step CA off.", + "description": "您的 SmallStep CA 的 HTTPS URL。如果將 CA URL、指紋和配置器留空,則停用 Step CA。", "placeholder": "https://ca.internal:9000" }, "fingerprint": { - "label": "Root fingerprint (SHA-256)", - "description": "The root certificate fingerprint, as shown by step ca bootstrap." + "label": "根指紋(SHA-256)", + "description": "根證書指紋,如步驟 ca bootstrap 所示。" }, "provisioner": { - "label": "OIDC provisioner name", - "description": "The name of the CA's OIDC provisioner. Then choose \"Step CA\" as a host's authentication type." + "label": "OIDC配置器名稱", + "description": "CA 的 OIDC 配置器的名稱。然後選擇“步驟 CA”作為主機的身份驗證類型。" }, "privateEndpoints": { - "label": "Allowed private Step CA hosts", - "description": "Private hosts the Step CA certificate flow may contact: the CA itself and, if internal, your identity provider. Separate them with commas or new lines." + "label": "允許的私有步驟 CA 主機", + "description": "步驟 CA 憑證流程中的私人主機可能會聯絡:CA 本身,以及(如果是內部)您的身分提供者。請用逗號或換行符號分隔它們。" }, "redirectUri": { - "label": "Redirect URI", - "description": "Register this URL as an allowed redirect URI with the identity provider behind the OIDC provisioner." + "label": "重定向 URI", + "description": "將此 URL 註冊為 OIDC 配置器後面的身分提供者允許的重定向 URI。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /host/step-ca-callback, the redirect URI used before 2.9. Turn this off once your identity provider allows the new one." + "label": "使用舊的重定向 URI", + "description": "繼續發送 /host/step-ca-callback,這是 2.9 版本之前使用的重定向 URI。一旦您的身分提供者允許使用新的重定向 URI,就將其關閉。" } } } diff --git a/plugins/tailscale/locales/translated/bn_BD.json b/plugins/tailscale/locales/translated/bn_BD.json index 706848e1c..32fba23f7 100644 --- a/plugins/tailscale/locales/translated/bn_BD.json +++ b/plugins/tailscale/locales/translated/bn_BD.json @@ -1,85 +1,85 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "টেইলনেট ডিভাইসগুলি দেখুন", + "description": "সংযুক্ত টেইলনেটে থাকা ডিভাইসগুলো দেখুন।" } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "টেইলস্কেল এপিআই", + "devices": "লেজজাল" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "এপিআই কী", + "description": "আপনার টেইলনেটে থাকা ডিভাইসগুলোর তালিকা করতে ব্যবহৃত হয়। এটি টেইলস্কেল বা হেডস্কেল কী-এর সাথে কাজ করে।", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "এপিআই বেস ইউআরএল", + "description": "টেইলস্কেলের জন্য খালি রাখুন। এটিকে একটি হেডস্কেল ইনস্ট্যান্সের দিকে নির্দেশ করতে সেট করুন।", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "ডিভাইসের তালিকা", + "checking": "টেলনেট পরীক্ষা করা হচ্ছে...", + "noKey": "এখনো কোনো এপিআই কী সেট করা হয়নি।", + "error": "টেইলনেটে পৌঁছানো যায়নি। এপিআই কী যাচাই করুন।", + "count": "{{count}} ডিভাইসটি পৌঁছানো সম্ভব", + "count_other": "{{count}} ডিভাইস পৌঁছানো সম্ভব", + "refresh": "চেক" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "লেজের স্কেল" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "এটি অবশ্যই একজন ইউনিক্স ব্যবহারকারী হতে হবে, যার মাধ্যমে আপনার টেইলনেট-এর SSH ACL-এ আপনার টেইলস্কেল পরিচয়কে অনুমতি দেওয়া হয়; এটি রুট হওয়া আবশ্যক নয়।", + "tailscaleDeviceSelect": "টেইলস্কেল ডিভাইস নির্বাচন করুন", + "tailscaleDeviceSelectPlaceholder": "একটি ডিভাইস নির্বাচন করুন...", + "tailscaleNoApiKey": "কোনো টেইলস্কেল এপিআই কী কনফিগার করা নেই। ডিভাইস ডিসকভারি সক্ষম করতে অ্যাডমিন সেটিংসে একটি যোগ করুন।", + "tailscaleDocsLink": "নথি দেখুন", + "tailscaleLoadingDevices": "ডিভাইস লোড হচ্ছে...", + "tailscaleDeviceLoadFailed": "টেইলস্কেল ডিভাইসগুলো লোড করা সম্ভব হয়নি। এপিআই ইউআরএল এবং নেটওয়ার্ক সংযোগ যাচাই করুন।", + "tailscaleNoDevices": "আপনার টেইলনেটে কোনো ডিভাইস খুঁজে পাওয়া যায়নি।", + "tailscaleDeviceAutoFill": "ডিভাইস নির্বাচন করলে হোস্ট আইপি অ্যাড্রেসটি স্বয়ংক্রিয়ভাবে পূরণ হয়ে যাবে।", + "tailscaleAddHost": "হোস্ট যোগ করুন", + "tailscaleCopyIp": "টেইলস্কেল আইপি কপি করুন", + "tailscaleIpCopied": "আইপি কপি করা হয়েছে", + "tailscaleIpCopyFailed": "আইপি কপি করা যায়নি", + "filterAuthTailscale": "লেজের স্কেল" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "টেইলস্কেল প্রমাণীকরণ আবশ্যক", + "tailscaleCheckDescription": "টেইলস্কেল SSH-এর জন্য একটি অতিরিক্ত যাচাইকরণ প্রয়োজন। চালিয়ে যাওয়ার জন্য আপনার ব্রাউজারে প্রমাণীকরণ করুন।", + "tailscaleCheckOpenBrowser": "প্রমাণীকরণের জন্য ব্রাউজার খুলুন", + "tailscaleCheckWaiting": "টেইলস্কেল প্রমাণীকরণের জন্য অপেক্ষা করা হচ্ছে...", + "tailscaleCheckTimeout": "টেইলস্কেল প্রমাণীকরণের সময়সীমা শেষ হয়ে গেছে। অনুগ্রহ করে আবার চেষ্টা করুন।" }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "লেজের স্কেল", + "refresh": "রিফ্রেশ", + "retry": "পুনরায় চেষ্টা করুন", + "sudoHint": "উচ্চতর কার্যক্রমের অনুমতি দেওয়ার জন্য এই হোস্টের জন্য একটি sudo পাসওয়ার্ড সেট করুন।", + "noData": "কোন ডেটা উপলব্ধ নেই", + "filter": "ফিল্টার...", + "tsNotInstalled": "এই হোস্টে টেইলস্কেল ইনস্টল করা নেই।", + "tsRunning": "দৌড়ানো", + "tsStopped": "থামানো হয়েছে", + "tsEnable": "সংযোগ করুন", + "tsDisable": "সংযোগ বিচ্ছিন্ন করুন", + "tsEnabling": "টেইলস্কেলের সাথে সংযোগ স্থাপন করা হচ্ছে...", + "tsDisabling": "টেইলস্কেল থেকে সংযোগ বিচ্ছিন্ন হচ্ছে...", + "tsEnabled": "টেলস্কেল সংযুক্ত", + "tsDisabled": "টেলস্কেল সংযোগ বিচ্ছিন্ন", + "tsExitNode": "প্রস্থান নোড", + "tsExitNodeActive": "প্রস্থান নোড সক্রিয়" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "টার্মিনালের সাথে সংযোগ করুন", + "usernameLabel": "ব্যবহারকারীর নাম" } } } diff --git a/plugins/tailscale/locales/translated/hi_IN.json b/plugins/tailscale/locales/translated/hi_IN.json index 900cddd79..0313d2949 100644 --- a/plugins/tailscale/locales/translated/hi_IN.json +++ b/plugins/tailscale/locales/translated/hi_IN.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "टेलनेट उपकरणों को देखें", + "description": "कनेक्टेड टेलनेट पर मौजूद डिवाइस देखें।" } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "टेलस्केल एपीआई", + "devices": "टेलनेट" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "एपीआई कुंजी", + "description": "इसका उपयोग टेलनेट पर मौजूद उपकरणों की सूची बनाने के लिए किया जाता है। यह टेलस्केल या हेडस्केल कुंजी के साथ काम करता है।", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "एपीआई आधारित यूआरएल", + "description": "टेलस्केल के लिए इसे खाली छोड़ दें। इसे हेडस्केल इंस्टेंस की ओर इंगित करने के लिए सेट करें।", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "डिवाइस सूची", + "checking": "टेलनेट की जाँच कर रहा हूँ...", + "noKey": "अभी तक कोई एपीआई कुंजी सेट नहीं की गई है।", + "error": "टेलनेट तक नहीं पहुंच सका। कृपया एपीआई कुंजी की जांच करें।", + "count": "{{count}} डिवाइस पहुंच योग्य है", + "count_other": "{{count}} पहुंच योग्य उपकरण", + "refresh": "जाँच करना" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "यह एक यूनिक्स उपयोगकर्ता होना चाहिए जिसे टेलनेट के एसएसएच एसीएल में आपकी टेलस्केल पहचान प्रदान की गई हो, जरूरी नहीं कि यह रूट हो।", "tailscaleDeviceSelect": "Tailscale डिवाइस चुनें", "tailscaleDeviceSelectPlaceholder": "एक डिवाइस चुनें...", "tailscaleNoApiKey": "कोई Tailscale API कुंजी कॉन्फ़िगर नहीं की गई है। डिवाइस खोज सक्षम करने के लिए व्यवस्थापक सेटिंग में एक जोड़ें।", "tailscaleDocsLink": "दस्तावेज़ देखें", "tailscaleLoadingDevices": "उपकरण लोड हो रहे हैं...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "टेलस्केल डिवाइस लोड करने में विफल। कृपया एपीआई यूआरएल और नेटवर्क कनेक्शन की जांच करें।", "tailscaleNoDevices": "आपके टेलनेट में कोई उपकरण नहीं मिला।", "tailscaleDeviceAutoFill": "डिवाइस चुनने पर होस्ट IP पता स्वतः भर जाएगा।", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "होस्ट जोड़ें", + "tailscaleCopyIp": "टेलस्केल आईपी कॉपी करें", + "tailscaleIpCopied": "आईपी कॉपी हो गया", + "tailscaleIpCopyFailed": "आईपी कॉपी नहीं हो सकी", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "टेलस्केल प्रमाणीकरण आवश्यक है", + "tailscaleCheckDescription": "Tailscale SSH के लिए एक अतिरिक्त जांच की आवश्यकता है। जारी रखने के लिए अपने ब्राउज़र में प्रमाणीकरण करें।", "tailscaleCheckOpenBrowser": "प्रमाणीकरण के लिए ब्राउज़र खोलें", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "टेलस्केल प्रमाणीकरण की प्रतीक्षा की जा रही है...", + "tailscaleCheckTimeout": "टेलस्केल प्रमाणीकरण का समय समाप्त हो गया। कृपया पुनः प्रयास करें।" }, "manager": { "title": "Tailscale", "refresh": "रीफ़्रेश", "retry": "पुनः प्रयास करें", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "इस होस्ट के लिए एक सूडो पासवर्ड सेट करें ताकि उच्च स्तरीय कार्रवाई की अनुमति मिल सके।", "noData": "कोई डेटा उपलब्ध नहीं", "filter": "फ़िल्टर...", "tsNotInstalled": "Tailscale इस होस्ट पर स्थापित नहीं है", diff --git a/plugins/tailscale/locales/translated/id_ID.json b/plugins/tailscale/locales/translated/id_ID.json index a8f0f1a21..d1349caf1 100644 --- a/plugins/tailscale/locales/translated/id_ID.json +++ b/plugins/tailscale/locales/translated/id_ID.json @@ -1,84 +1,84 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Lihat perangkat tailnet.", + "description": "Lihat perangkat-perangkat yang terhubung ke tailnet." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Jaring ekor" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "Kunci API", + "description": "Digunakan untuk menampilkan daftar perangkat pada tailnet Anda. Bekerja dengan tombol Tailscale atau Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "URL dasar API", + "description": "Biarkan Tailscale kosong. Atur ini agar mengarah ke instance Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Daftar perangkat", + "checking": "Memeriksa jaring ekor...", + "noKey": "Kunci API belum diatur.", + "error": "Tidak dapat terhubung ke tailnet. Periksa kunci API.", + "count": "{{count}} perangkat dapat dijangkau", + "count_other": "{{count}} perangkat yang dapat dijangkau", + "refresh": "Memeriksa" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Skala ekor" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Ini harus berupa pengguna Unix yang identitas Tailscale Anda diberikan dalam ACL SSH tailnet, tidak harus root.", + "tailscaleDeviceSelect": "Pilih perangkat Tailscale", + "tailscaleDeviceSelectPlaceholder": "Pilih perangkat...", + "tailscaleNoApiKey": "Belum ada kunci API Tailscale yang dikonfigurasi. Tambahkan satu di Pengaturan Admin untuk mengaktifkan penemuan perangkat.", + "tailscaleDocsLink": "Lihat dokumen", + "tailscaleLoadingDevices": "Memuat perangkat...", + "tailscaleDeviceLoadFailed": "Gagal memuat perangkat Tailscale. Periksa URL API dan koneksi jaringan.", + "tailscaleNoDevices": "Tidak ada perangkat yang terdeteksi di tailnet Anda.", + "tailscaleDeviceAutoFill": "Memilih perangkat akan secara otomatis mengisi alamat IP host.", + "tailscaleAddHost": "Tambahkan host", + "tailscaleCopyIp": "Salin IP Tailscale", + "tailscaleIpCopied": "IP disalin", + "tailscaleIpCopyFailed": "IP tidak dapat disalin", + "filterAuthTailscale": "Skala ekor" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Diperlukan Otentikasi Sisik Ekor", + "tailscaleCheckDescription": "Tailscale SSH memerlukan pemeriksaan tambahan. Lakukan otentikasi di browser Anda untuk melanjutkan.", + "tailscaleCheckOpenBrowser": "Buka Browser untuk Melakukan Otentikasi", + "tailscaleCheckWaiting": "Menunggu autentikasi Tailscale...", + "tailscaleCheckTimeout": "Autentikasi Tailscale habis waktu. Silakan coba lagi." }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "Skala ekor", + "refresh": "Menyegarkan", + "retry": "Mencoba kembali", + "sudoHint": "Tetapkan kata sandi sudo untuk host ini agar memungkinkan tindakan dengan hak akses administrator.", + "noData": "Tidak ada data yang tersedia", + "filter": "Menyaring...", + "tsNotInstalled": "Tailscale tidak terpasang pada host ini.", + "tsRunning": "Berlari", + "tsStopped": "Berhenti", + "tsEnable": "Menghubungkan", + "tsDisable": "Memutuskan", + "tsEnabling": "Menghubungkan ke Tailscale...", + "tsDisabling": "Memutus koneksi dari Tailscale...", + "tsEnabled": "Sisik ekor terhubung", + "tsDisabled": "Sisik ekor terputus", + "tsExitNode": "Node keluar", + "tsExitNodeActive": "Node keluar aktif" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", + "connectToTerminal": "Hubungkan ke Terminal", "usernameLabel": "Nama pengguna" } } diff --git a/plugins/tailscale/locales/translated/nl_NL.json b/plugins/tailscale/locales/translated/nl_NL.json index 706848e1c..16712c683 100644 --- a/plugins/tailscale/locales/translated/nl_NL.json +++ b/plugins/tailscale/locales/translated/nl_NL.json @@ -1,8 +1,8 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Bekijk tailnet-apparaten", + "description": "Bekijk de apparaten op het aangesloten netwerk." } }, "settings": { @@ -11,75 +11,75 @@ "devices": "Tailnet" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "API-sleutel", + "description": "Wordt gebruikt om de apparaten op uw tailnet weer te geven. Werkt met een Tailscale- of Headscale-sleutel.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API-basis-URL", + "description": "Laat dit veld leeg voor Tailscale. Stel dit in om naar een Headscale-instantie te verwijzen.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Apparatenlijst", + "checking": "Het staartnet controleren...", + "noKey": "Er is nog geen API-sleutel ingesteld.", + "error": "Kon geen verbinding maken met het tailnet. Controleer de API-sleutel.", + "count": "{{count}} apparaat bereikbaar", + "count_other": "{{count}} apparaten bereikbaar", + "refresh": "Rekening" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Staartschaal" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Dit moet een Unix-gebruiker zijn die aan uw Tailscale-identiteit is toegekend in de SSH-toegangsregel van het tailnet, niet per se root.", + "tailscaleDeviceSelect": "Selecteer het Tailscale-apparaat", + "tailscaleDeviceSelectPlaceholder": "Selecteer een apparaat...", + "tailscaleNoApiKey": "Er is geen Tailscale API-sleutel geconfigureerd. Voeg er een toe in de beheerdersinstellingen om apparaatdetectie in te schakelen.", + "tailscaleDocsLink": "Documenten bekijken", + "tailscaleLoadingDevices": "Apparaten laden...", + "tailscaleDeviceLoadFailed": "Het laden van Tailscale-apparaten is mislukt. Controleer de API-URL en de netwerkverbinding.", + "tailscaleNoDevices": "Geen apparaten gevonden in uw achternet.", + "tailscaleDeviceAutoFill": "Als je een apparaat selecteert, wordt het IP-adres van de host automatisch ingevuld.", + "tailscaleAddHost": "Voeg een host toe", + "tailscaleCopyIp": "Kopieer het Tailscale IP-adres", + "tailscaleIpCopied": "IP-adres gekopieerd", + "tailscaleIpCopyFailed": "Het IP-adres kon niet worden gekopieerd.", + "filterAuthTailscale": "Staartschaal" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Tailscale-authenticatie vereist", + "tailscaleCheckDescription": "Tailscale SSH vereist een extra controle. Authenticeer in uw browser om verder te gaan.", + "tailscaleCheckOpenBrowser": "Open de browser om te authenticeren.", + "tailscaleCheckWaiting": "Wachten op Tailscale-authenticatie...", + "tailscaleCheckTimeout": "De authenticatie bij Tailscale is mislukt vanwege een time-out. Probeer het opnieuw." }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", + "title": "Staartschaal", + "refresh": "Vernieuwen", + "retry": "Opnieuw proberen", + "sudoHint": "Stel een sudo-wachtwoord in voor deze host om acties met verhoogde bevoegdheden toe te staan.", + "noData": "Geen gegevens beschikbaar", "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "tsNotInstalled": "Tailscale is niet geïnstalleerd op deze host.", + "tsRunning": "Rennen", + "tsStopped": "Gestopt", + "tsEnable": "Verbinden", + "tsDisable": "Verbinding verbreken", + "tsEnabling": "Verbinding maken met Tailscale...", + "tsDisabling": "Verbinding met Tailscale verbreken...", + "tsEnabled": "Aangesloten staartschaal", + "tsDisabled": "Staartschaal losgekoppeld", + "tsExitNode": "Uitgangsknooppunt", + "tsExitNodeActive": "Uitgangsknooppunt actief" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "Verbinden met de terminal", + "usernameLabel": "Gebruikersnaam" } } } diff --git a/plugins/tailscale/locales/translated/no_NO.json b/plugins/tailscale/locales/translated/no_NO.json index 213aa4d16..95ee3dc78 100644 --- a/plugins/tailscale/locales/translated/no_NO.json +++ b/plugins/tailscale/locales/translated/no_NO.json @@ -1,84 +1,84 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Vis halenettenheter", + "description": "Se enhetene på det tilkoblede halenettet." } }, "settings": { "group": { "api": "Tailscale API", - "devices": "Tailnet" + "devices": "Halenett" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "API-nøkkel", + "description": "Brukes til å liste opp enhetene på tailnet-en din. Fungerer med en Tailscale- eller Headscale-nøkkel.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API-basis-URL", + "description": "La stå tomt for Tailscale. Sett dette til å peke mot en Headscale-instans.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Enhetsliste", + "checking": "Sjekker baknettet...", + "noKey": "Ingen API-nøkkel angitt ennå.", + "error": "Kunne ikke nå tailnet. Sjekk API-nøkkelen.", + "count": "{{count}} enhet tilgjengelig", + "count_other": "{{count}} enheter tilgjengelige", + "refresh": "Sjekke" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Haleskala" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Dette må være en Unix-bruker som Tailscale-identiteten din er gitt i tailnets SSH ACL, ikke nødvendigvis root.", + "tailscaleDeviceSelect": "Velg Tailscale-enhet", + "tailscaleDeviceSelectPlaceholder": "Velg en enhet...", + "tailscaleNoApiKey": "Ingen Tailscale API-nøkkel konfigurert. Legg til en i administratorinnstillingene for å aktivere enhetsgjenkjenning.", + "tailscaleDocsLink": "Vis dokumenter", + "tailscaleLoadingDevices": "Laster inn enheter ...", + "tailscaleDeviceLoadFailed": "Kunne ikke laste inn Tailscale-enheter. Sjekk API-URL-en og nettverkstilkoblingen.", + "tailscaleNoDevices": "Ingen enheter funnet i halenettverket ditt.", + "tailscaleDeviceAutoFill": "Hvis du velger en enhet, fylles verts-IP-adressen automatisk ut.", + "tailscaleAddHost": "Legg til vert", + "tailscaleCopyIp": "Kopier Tailscale-IP", + "tailscaleIpCopied": "IP-adressen er kopiert", + "tailscaleIpCopyFailed": "Kunne ikke kopiere IP-adressen", + "filterAuthTailscale": "Haleskala" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Tailscale-autentisering kreves", + "tailscaleCheckDescription": "Tailscale SSH krever en ekstra sjekk. Autentiser i nettleseren din for å fortsette.", + "tailscaleCheckOpenBrowser": "Åpne nettleseren for å autentisere", + "tailscaleCheckWaiting": "Venter på Tailscale-autentisering...", + "tailscaleCheckTimeout": "Tailscale-autentiseringen er tidsavbrutt. Prøv på nytt." }, "manager": { - "title": "Tailscale", + "title": "Haleskala", "refresh": "Oppdater", "retry": "Prøv igjen", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", + "sudoHint": "Angi et sudo-passord for denne verten for å tillate forhøyede handlinger.", + "noData": "Ingen data tilgjengelig", "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", + "tsNotInstalled": "Tailscale er ikke installert på denne verten", "tsRunning": "Kjører", - "tsStopped": "Stopped", + "tsStopped": "Stoppet", "tsEnable": "Koble til", "tsDisable": "Koble fra", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "tsEnabling": "Kobler til Tailscale...", + "tsDisabling": "Kobler fra Tailscale...", + "tsEnabled": "Haleskala tilkoblet", + "tsDisabled": "Haleskala frakoblet", + "tsExitNode": "Utgangsnode", + "tsExitNodeActive": "Avslutt node aktiv" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", + "connectToTerminal": "Koble til terminalen", "usernameLabel": "Brukernavn" } } diff --git a/plugins/tailscale/locales/translated/pl_PL.json b/plugins/tailscale/locales/translated/pl_PL.json index 57cd5145b..a64cd2057 100644 --- a/plugins/tailscale/locales/translated/pl_PL.json +++ b/plugins/tailscale/locales/translated/pl_PL.json @@ -1,33 +1,33 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Wyświetl urządzenia sieci ogonowej", + "description": "Zobacz urządzenia na podłączonej sieci tailnet." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Siatka ogonowa" }, "apiKey": { "label": "Klucz API", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "description": "Służy do wyświetlania listy urządzeń w sieci Tailnet. Działa z kluczem Tailscale lub Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "Podstawowy adres URL API", + "description": "Pozostaw puste dla Tailscale. Ustaw to tak, aby wskazywało na instancję Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Lista urządzeń", + "checking": "Sprawdzanie siatki ogonowej...", + "noKey": "Klucz API nie został jeszcze ustawiony.", + "error": "Nie udało się połączyć z siecią ogonową. Sprawdź klucz API.", + "count": "{{count}} urządzenie jest dostępne", + "count_other": "{{count}} urządzeń dostępnych", + "refresh": "Sprawdzać" } }, "nav": { @@ -43,10 +43,10 @@ "tailscaleDeviceLoadFailed": "Nie udało się załadować urządzeń Tailscale. Sprawdź adres URL API i połączenie sieciowe.", "tailscaleNoDevices": "Nie znaleziono urządzeń w Twojej sieci tailnet.", "tailscaleDeviceAutoFill": "Wybranie urządzenia spowoduje automatyczne wypełnienie adresu IP hosta.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "Dodaj hosta", + "tailscaleCopyIp": "Kopiuj Tailscale IP", + "tailscaleIpCopied": "Skopiowano adres IP", + "tailscaleIpCopyFailed": "Nie udało się skopiować adresu IP", "filterAuthTailscale": "Tailscale" }, "terminal": { @@ -60,7 +60,7 @@ "title": "Tailscale", "refresh": "Odśwież", "retry": "Ponów", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "Ustaw hasło sudo dla tego hosta, aby umożliwić wykonywanie podwyższonych uprawnień.", "noData": "Brak dostępnych danych", "filter": "Filtr...", "tsNotInstalled": "Tailscale nie jest zainstalowany na tym hoście", diff --git a/plugins/tailscale/locales/translated/pt_BR.json b/plugins/tailscale/locales/translated/pt_BR.json index 8f5ef58a6..54ce3cd72 100644 --- a/plugins/tailscale/locales/translated/pt_BR.json +++ b/plugins/tailscale/locales/translated/pt_BR.json @@ -1,84 +1,84 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Visualizar dispositivos de rede de cauda", + "description": "Veja os dispositivos na rede de cauda conectada." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Rede de cauda" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "Chave de API", + "description": "Utilizado para listar os dispositivos na sua rede de cauda. Funciona com uma chave Tailscale ou Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "URL base da API", + "description": "Deixe em branco para Tailscale. Defina isso para apontar para uma instância de Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Lista de dispositivos", + "checking": "Verificando a rede traseira...", + "noKey": "Nenhuma chave de API foi definida ainda.", + "error": "Não foi possível acessar a tailnet. Verifique a chave da API.", + "count": "{{count}} dispositivo acessível", + "count_other": "{{count}} dispositivos acessíveis", + "refresh": "Verificar" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Escama da cauda" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "Este deve ser um usuário Unix cuja identidade Tailscale é concedida na ACL SSH da tailnet, não necessariamente o usuário root.", "tailscaleDeviceSelect": "Selecionar dispositivo Tailscale", "tailscaleDeviceSelectPlaceholder": "Selecione um dispositivo...", "tailscaleNoApiKey": "Nenhuma chave de API Tailscale configurada. Adicione uma nas configurações do Admin para habilitar a descoberta do dispositivo.", "tailscaleDocsLink": "Documentação", "tailscaleLoadingDevices": "Carregando dispositivos...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "Falha ao carregar os dispositivos Tailscale. Verifique o URL da API e a conexão de rede.", "tailscaleNoDevices": "Nenhum dispositivo encontrado na sua rede tail.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleDeviceAutoFill": "Ao selecionar um dispositivo, o endereço IP do host será preenchido automaticamente.", + "tailscaleAddHost": "Adicionar host", + "tailscaleCopyIp": "Copiar IP da Tailscale", + "tailscaleIpCopied": "IP copiado", + "tailscaleIpCopyFailed": "Não foi possível copiar o endereço IP.", + "filterAuthTailscale": "Escama da cauda" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Autenticação Tailscale necessária", + "tailscaleCheckDescription": "O Tailscale SSH requer uma verificação adicional. Autentique-se no seu navegador para continuar.", + "tailscaleCheckOpenBrowser": "Abra o navegador para autenticar.", + "tailscaleCheckWaiting": "Aguardando autenticação do Tailscale...", + "tailscaleCheckTimeout": "A autenticação no Tailscale expirou. Tente novamente." }, "manager": { - "title": "Tailscale", + "title": "Escama da cauda", "refresh": "Atualizar", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", + "retry": "Tentar novamente", + "sudoHint": "Defina uma senha sudo para este host para permitir ações com privilégios elevados.", + "noData": "Não há dados disponíveis.", + "filter": "Filtro...", + "tsNotInstalled": "O Tailscale não está instalado neste host.", + "tsRunning": "Correndo", + "tsStopped": "Parou", "tsEnable": "Conectar", "tsDisable": "Desconectar", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "tsEnabling": "Conectando-se à Tailscale...", + "tsDisabling": "Desconectando-se do Tailscale...", + "tsEnabled": "Escama de cauda conectada", + "tsDisabled": "Escama de cauda desconectada", + "tsExitNode": "Nó de saída", + "tsExitNodeActive": "Nó de saída ativo" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", + "connectToTerminal": "Conectar ao terminal", "usernameLabel": "Nome de usuário" } } diff --git a/plugins/tailscale/locales/translated/pt_PT.json b/plugins/tailscale/locales/translated/pt_PT.json index 0fbba1c1a..0019e2369 100644 --- a/plugins/tailscale/locales/translated/pt_PT.json +++ b/plugins/tailscale/locales/translated/pt_PT.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Visualizar dispositivos de rede de cauda", + "description": "Veja os dispositivos na rede de cauda ligada." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Rede de cauda" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "Chave API", + "description": "Utilizado para listar os dispositivos na sua rede de cauda. Funciona com uma chave Tailscale ou Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "URL base da API", + "description": "Deixe em branco para Tailscale. Defina isto para apontar para uma instância de Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Lista de dispositivos", + "checking": "Verificação da rede traseira...", + "noKey": "Nenhuma chave API foi definida ainda.", + "error": "Não foi possível aceder à tailnet. Verifique a chave API.", + "count": "{{count}} dispositivo acessível", + "count_other": "{{count}} dispositivos acessíveis", + "refresh": "Verificação" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "Este deve ser um utilizador Unix cuja identidade Tailscale é concedida na ACL SSH da tailnet, não necessariamente o utilizador root.", "tailscaleDeviceSelect": "Selecionar dispositivo Tailscale", "tailscaleDeviceSelectPlaceholder": "Selecionar um dispositivo...", "tailscaleNoApiKey": "Nenhuma chave de API Tailscale configurada. Adicione uma nas Definições de Administrador para ativar a descoberta de dispositivos.", "tailscaleDocsLink": "Ver documentação", "tailscaleLoadingDevices": "A carregar dispositivos...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "Falha ao carregar os dispositivos Tailscale. Verifique o URL da API e a ligação de rede.", "tailscaleNoDevices": "Nenhum dispositivo encontrado na sua tailnet.", "tailscaleDeviceAutoFill": "Selecionar um dispositivo preencherá automaticamente o endereço IP do host.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "Adicionar host", + "tailscaleCopyIp": "Copiar IP da Tailscale", + "tailscaleIpCopied": "IP copiado", + "tailscaleIpCopyFailed": "Não foi possível copiar o endereço IP.", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "Autenticação Tailscale necessária", + "tailscaleCheckDescription": "O Tailscale SSH requer uma verificação adicional. Autentique-se no seu browser para continuar.", "tailscaleCheckOpenBrowser": "Abrir navegador para autenticar", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "Aguarda-se autenticação do Tailscale...", + "tailscaleCheckTimeout": "A autenticação no Tailscale expirou. Tente novamente." }, "manager": { "title": "Tailscale", "refresh": "Atualizar", "retry": "Repetir", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "Defina uma palavra-passe sudo para este host para permitir ações com privilégios elevados.", "noData": "Sem dados disponíveis", "filter": "Filtrar...", "tsNotInstalled": "O Tailscale não está instalado neste host", diff --git a/plugins/tailscale/locales/translated/ru_RU.json b/plugins/tailscale/locales/translated/ru_RU.json index dbbb22af9..2c955203c 100644 --- a/plugins/tailscale/locales/translated/ru_RU.json +++ b/plugins/tailscale/locales/translated/ru_RU.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Просмотреть устройства хвостовой сети", + "description": "Посмотрите на устройства в подключенной сети." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API масштабирования хвоста", + "devices": "Хвостовая сеть" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "ключ API", + "description": "Используется для отображения списка устройств в вашей сети. Работает с ключом Tailscale или Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "Базовый URL API", + "description": "Оставьте поле Tailscale пустым. Установите его так, чтобы оно указывало на экземпляр Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Список устройств", + "checking": "Проверка задней сетки...", + "noKey": "API-ключ пока не установлен.", + "error": "Не удалось подключиться к сети. Проверьте ключ API.", + "count": "{{count}} устройство доступно", + "count_other": "{{count}} доступных устройств", + "refresh": "Проверять" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "Это должен быть пользователь Unix, которому предоставлена идентификация Tailscale в списке контроля доступа SSH сети TailNet, а не обязательно root.", "tailscaleDeviceSelect": "Выберите устройство Tailscale", "tailscaleDeviceSelectPlaceholder": "Выберите устройство...", "tailscaleNoApiKey": "Ключ API Tailscale не настроен. Добавьте его в настройках администратора, чтобы включить обнаружение устройств.", "tailscaleDocsLink": "Документация", "tailscaleLoadingDevices": "Загрузка устройств...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "Не удалось загрузить устройства Tailscale. Проверьте URL-адрес API и сетевое соединение.", "tailscaleNoDevices": "В вашем tailnet не найдено устройств.", "tailscaleDeviceAutoFill": "При выборе устройства IP-адрес хоста будет заполнен автоматически.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "Добавить хост", + "tailscaleCopyIp": "Копировать IP-адрес хвостовой части", + "tailscaleIpCopied": "IP-адрес скопирован", + "tailscaleIpCopyFailed": "Не удалось скопировать IP-адрес.", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "Требуется аутентификация Tailscale", + "tailscaleCheckDescription": "Для работы Tailscale SSH требуется дополнительная проверка. Для продолжения выполните аутентификацию в браузере.", "tailscaleCheckOpenBrowser": "Открыть браузер для аутентификации", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "Ожидание аутентификации Tailscale...", + "tailscaleCheckTimeout": "Время ожидания аутентификации Tailscale истекло. Пожалуйста, попробуйте еще раз." }, "manager": { "title": "Tailscale", "refresh": "Обновить", "retry": "Повторить", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "Установите пароль sudo для этого хоста, чтобы разрешить действия с повышенными правами.", "noData": "Нет данных", "filter": "Фильтр...", "tsNotInstalled": "Tailscale не установлен на этом хосте", diff --git a/plugins/tailscale/locales/translated/sr_SP.json b/plugins/tailscale/locales/translated/sr_SP.json index 706848e1c..788616841 100644 --- a/plugins/tailscale/locales/translated/sr_SP.json +++ b/plugins/tailscale/locales/translated/sr_SP.json @@ -1,85 +1,85 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Погледајте уређаје са задње мреже", + "description": "Погледајте уређаје на повезаној задњој мрежи." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API за таилскејл", + "devices": "Мрежа за реп" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", - "placeholder": "tskey-api-... / hskey-api-..." + "label": "API кључ", + "description": "Користи се за навођење уређаја на вашој мрежи. Ради са кључем Tailscale или Headscale.", + "placeholder": "тскеј-апи-... / хскеј-апи-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", - "placeholder": "https://api.tailscale.com/api/v2" + "label": "Основни URL API-ја", + "description": "Оставите празно за Tailscale. Поставите ово да показује на инстанцу Headscale-а.", + "placeholder": "хттпс://апи.таилсцале.цом/апи/в2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Листа уређаја", + "checking": "Провера мреже на задњем делу...", + "noKey": "Још увек није подешен API кључ.", + "error": "Није могуће доћи до мреже Tailnet. Проверите API кључ.", + "count": "{{count}} уређај је доступан", + "count_other": "{{count}} уређаја доступних", + "refresh": "Провери" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Репна скала" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Ово мора бити Unix корисник чији је идентитет на Tailscale-у додељен у SSH ACL-у Tailnet-а, не нужно root.", + "tailscaleDeviceSelect": "Изаберите уређај Tailscale", + "tailscaleDeviceSelectPlaceholder": "Изаберите уређај...", + "tailscaleNoApiKey": "Није конфигурисан Tailscale API кључ. Додајте га у администраторским подешавањима да бисте омогућили откривање уређаја.", + "tailscaleDocsLink": "Прикажи документе", + "tailscaleLoadingDevices": "Учитавање уређаја...", + "tailscaleDeviceLoadFailed": "Учитавање Tailscale уређаја није успело. Проверите API URL и мрежну везу.", + "tailscaleNoDevices": "Није пронађен ниједан уређај у вашој мрежи.", + "tailscaleDeviceAutoFill": "Избором уређаја ће се аутоматски попунити ИП адреса хоста.", + "tailscaleAddHost": "Додај хоста", + "tailscaleCopyIp": "Копирај ИП адресу Tailscale-а", + "tailscaleIpCopied": "ИП адреса је копирана", + "tailscaleIpCopyFailed": "Није могуће копирати ИП адресу", + "filterAuthTailscale": "Репна скала" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Потребна је аутентификација на таилскалу", + "tailscaleCheckDescription": "Tailscale SSH захтева додатну проверу. Аутентификујте се у прегледачу да бисте наставили.", + "tailscaleCheckOpenBrowser": "Отворите прегледач за аутентификацију", + "tailscaleCheckWaiting": "Чекање на Tailscale аутентификацију...", + "tailscaleCheckTimeout": "Временско ограничење за аутентификацију Tailscale-а је истекло. Молимо покушајте поново." }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "Репна скала", + "refresh": "Освежи", + "retry": "Покушај поново", + "sudoHint": "Поставите sudo лозинку за овај хост да бисте омогућили акције са повишеним привилегијама.", + "noData": "Нема доступних података", + "filter": "Филтер...", + "tsNotInstalled": "Tailscale није инсталиран на овом хосту", + "tsRunning": "Трчање", + "tsStopped": "Заустављено", + "tsEnable": "Повежи се", + "tsDisable": "Прекини везу", + "tsEnabling": "Повезивање са Tailscale-ом...", + "tsDisabling": "Искључивање из мреже Tailscale...", + "tsEnabled": "Повезана је задња скала", + "tsDisabled": "Реалскале су искључене", + "tsExitNode": "Излазни чвор", + "tsExitNodeActive": "Излазни чвор је активан" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "Повежи се са терминалом", + "usernameLabel": "Корисничко име" } } } diff --git a/plugins/tailscale/locales/translated/sv_SE.json b/plugins/tailscale/locales/translated/sv_SE.json index 706848e1c..08873e19d 100644 --- a/plugins/tailscale/locales/translated/sv_SE.json +++ b/plugins/tailscale/locales/translated/sv_SE.json @@ -1,8 +1,8 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Visa tailnet-enheter", + "description": "Se enheterna på det anslutna tailnätet." } }, "settings": { @@ -11,75 +11,75 @@ "devices": "Tailnet" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "API-nyckel", + "description": "Används för att lista enheterna på ditt tailnet. Fungerar med en Tailscale- eller Headscale-nyckel.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API-bas-URL", + "description": "Lämna tomt för Tailscale. Ställ in detta för att peka på en Headscale-instans.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Enhetslista", + "checking": "Kontrollerar baknätet...", + "noKey": "Ingen API-nyckel är ännu angiven.", + "error": "Kunde inte nå tailnet. Kontrollera API-nyckeln.", + "count": "{{count}} enhet nåbar", + "count_other": "{{count}} enheter nåbara", + "refresh": "Kontrollera" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Svansskala" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Detta måste vara en Unix-användare som din Tailscale-identitet är beviljad i tailnätets SSH ACL, inte nödvändigtvis root.", + "tailscaleDeviceSelect": "Välj Tailscale-enhet", + "tailscaleDeviceSelectPlaceholder": "Välj en enhet...", + "tailscaleNoApiKey": "Ingen Tailscale API-nyckel konfigurerad. Lägg till en i administratörsinställningarna för att aktivera enhetsidentifiering.", + "tailscaleDocsLink": "Visa dokument", + "tailscaleLoadingDevices": "Laddar enheter...", + "tailscaleDeviceLoadFailed": "Misslyckades med att läsa in Tailscale-enheter. Kontrollera API-URL:en och nätverksanslutningen.", + "tailscaleNoDevices": "Inga enheter hittades i ditt tailnet.", + "tailscaleDeviceAutoFill": "Om du väljer en enhet fylls värdens IP-adress automatiskt i.", + "tailscaleAddHost": "Lägg till värd", + "tailscaleCopyIp": "Kopiera Tailscale-IP", + "tailscaleIpCopied": "IP-adressen kopierades", + "tailscaleIpCopyFailed": "Kunde inte kopiera IP-adressen", + "filterAuthTailscale": "Svansskala" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Tailscale-autentisering krävs", + "tailscaleCheckDescription": "Tailscale SSH kräver en ytterligare kontroll. Autentisera i din webbläsare för att fortsätta.", + "tailscaleCheckOpenBrowser": "Öppna webbläsaren för att autentisera", + "tailscaleCheckWaiting": "Väntar på Tailscale-autentisering...", + "tailscaleCheckTimeout": "Tailscale-autentiseringen har gått ut. Försök igen." }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "Svansskala", + "refresh": "Uppdatera", + "retry": "Försöka igen", + "sudoHint": "Ange ett sudo-lösenord för den här värden för att tillåta förhöjda åtgärder.", + "noData": "Inga data tillgängliga", + "filter": "Filtrera...", + "tsNotInstalled": "Tailscale är inte installerat på den här värddatorn", + "tsRunning": "Spring", + "tsStopped": "Stoppad", + "tsEnable": "Ansluta", + "tsDisable": "Koppla från", + "tsEnabling": "Ansluter till Tailscale...", + "tsDisabling": "Kopplar från Tailscale...", + "tsEnabled": "Svanskalan ansluten", + "tsDisabled": "Svanskalan frånkopplad", + "tsExitNode": "Utgångsnod", + "tsExitNodeActive": "Avslutsnod aktiv" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "Anslut till terminalen", + "usernameLabel": "Användarnamn" } } } diff --git a/plugins/tailscale/locales/translated/th_TH.json b/plugins/tailscale/locales/translated/th_TH.json index 706848e1c..c0feaafe1 100644 --- a/plugins/tailscale/locales/translated/th_TH.json +++ b/plugins/tailscale/locales/translated/th_TH.json @@ -1,85 +1,85 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "ดูอุปกรณ์เทลเน็ต", + "description": "ดูอุปกรณ์ต่างๆ บนเครือข่ายหางที่เชื่อมต่ออยู่" } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API เทลสเกล", + "devices": "เทลเน็ต" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "คีย์ API", + "description": "ใช้สำหรับแสดงรายการอุปกรณ์ในเครือข่ายหาง (tailnet) ของคุณ ใช้งานได้กับคีย์ Tailscale หรือ Headscale", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "URL พื้นฐานของ API", + "description": "เว้นช่อง Tailscale ว่างไว้ ตั้งค่าให้ชี้ไปยังอินสแตนซ์ Headscale", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "รายการอุปกรณ์", + "checking": "กำลังตรวจสอบสายเชื่อมต่อ...", + "noKey": "ยังไม่ได้ตั้งค่าคีย์ API", + "error": "ไม่สามารถเชื่อมต่อกับ tailnet ได้ โปรดตรวจสอบคีย์ API", + "count": "{{count}} อุปกรณ์สามารถเข้าถึงได้", + "count_other": "อุปกรณ์ {{count}} ที่สามารถเข้าถึงได้", + "refresh": "ตรวจสอบ" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "เกล็ดหาง" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "ผู้ใช้งานนี้ต้องเป็นผู้ใช้ Unix ที่ได้รับสิทธิ์การใช้งาน Tailscale ใน SSH ACL ของ tailnet ไม่จำเป็นต้องเป็น root เสมอไป", + "tailscaleDeviceSelect": "เลือกอุปกรณ์ Tailscale", + "tailscaleDeviceSelectPlaceholder": "เลือกอุปกรณ์...", + "tailscaleNoApiKey": "ไม่ได้กำหนดค่าคีย์ API ของ Tailscale ไว้ โปรดเพิ่มคีย์ใน การตั้งค่าผู้ดูแลระบบ เพื่อเปิดใช้งานการค้นหาอุปกรณ์", + "tailscaleDocsLink": "ดูเอกสาร", + "tailscaleLoadingDevices": "กำลังโหลดอุปกรณ์...", + "tailscaleDeviceLoadFailed": "ไม่สามารถโหลดอุปกรณ์ Tailscale ได้ โปรดตรวจสอบ URL API และการเชื่อมต่อเครือข่าย", + "tailscaleNoDevices": "ไม่พบอุปกรณ์ใดๆ ในเครือข่ายของคุณ", + "tailscaleDeviceAutoFill": "การเลือกอุปกรณ์จะทำให้ระบบกรอกที่อยู่ IP ของโฮสต์โดยอัตโนมัติ", + "tailscaleAddHost": "เพิ่มโฮสต์", + "tailscaleCopyIp": "คัดลอก Tailscale IP", + "tailscaleIpCopied": "คัดลอก IP แล้ว", + "tailscaleIpCopyFailed": "ไม่สามารถคัดลอก IP ได้", + "filterAuthTailscale": "เกล็ดหาง" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "ต้องยืนยันตัวตนด้วย Tailscale", + "tailscaleCheckDescription": "การเชื่อมต่อ Tailscale SSH ต้องการการตรวจสอบเพิ่มเติม โปรดยืนยันตัวตนในเบราว์เซอร์ของคุณเพื่อดำเนินการต่อ", + "tailscaleCheckOpenBrowser": "เปิดเบราว์เซอร์เพื่อยืนยันตัวตน", + "tailscaleCheckWaiting": "กำลังรอการยืนยันตัวตนจาก Tailscale...", + "tailscaleCheckTimeout": "การตรวจสอบสิทธิ์ Tailscale หมดเวลา โปรดลองอีกครั้ง" }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "เกล็ดหาง", + "refresh": "รีเฟรช", + "retry": "ลองใหม่อีกครั้ง", + "sudoHint": "ตั้งรหัสผ่าน sudo สำหรับโฮสต์นี้เพื่ออนุญาตการดำเนินการในระดับสิทธิ์สูง", + "noData": "ไม่มีข้อมูล", + "filter": "กรอง...", + "tsNotInstalled": "Tailscale ไม่ได้ติดตั้งอยู่ในเครื่องนี้", + "tsRunning": "วิ่ง", + "tsStopped": "หยุด", + "tsEnable": "เชื่อมต่อ", + "tsDisable": "ตัดการเชื่อมต่อ", + "tsEnabling": "กำลังเชื่อมต่อกับ Tailscale...", + "tsDisabling": "กำลังตัดการเชื่อมต่อจาก Tailscale...", + "tsEnabled": "เกล็ดหางเชื่อมต่อ", + "tsDisabled": "เกล็ดหางหลุด", + "tsExitNode": "โหนดทางออก", + "tsExitNodeActive": "โหนดทางออกทำงานอยู่" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "เชื่อมต่อกับเทอร์มินัล", + "usernameLabel": "ชื่อผู้ใช้" } } } diff --git a/plugins/tailscale/locales/translated/tr_TR.json b/plugins/tailscale/locales/translated/tr_TR.json index f62a6f75a..1455cd218 100644 --- a/plugins/tailscale/locales/translated/tr_TR.json +++ b/plugins/tailscale/locales/translated/tr_TR.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Kuyruk ağı cihazlarını görüntüle", + "description": "Bağlı kuyruk ağındaki cihazları inceleyin." } }, "settings": { "group": { "api": "Tailscale API", - "devices": "Tailnet" + "devices": "Kuyruk ağı" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "API anahtarı", + "description": "Tailnet'inizdeki cihazları listelemek için kullanılır. Tailscale veya Headscale anahtarıyla çalışır.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API temel URL'si", + "description": "Tailscale için boş bırakın. Bunu bir Headscale örneğine işaret edecek şekilde ayarlayın.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Cihaz listesi", + "checking": "Kuyruk ağını kontrol ediyoruz...", + "noKey": "Henüz bir API anahtarı ayarlanmadı.", + "error": "Tailnet'e ulaşılamadı. API anahtarını kontrol edin.", + "count": "{{count}} cihaza erişilebilir", + "count_other": "{{count}} erişilebilir cihaz", + "refresh": "Kontrol etmek" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "Bu, Tailscale kimliğinizin tailnet'in SSH erişim kontrol listesinde (ACL) verildiği bir Unix kullanıcısı olmalıdır, mutlaka root olması gerekmez.", "tailscaleDeviceSelect": "Tailscale cihazı seçin", "tailscaleDeviceSelectPlaceholder": "Bir cihaz seçin...", "tailscaleNoApiKey": "Tailscale API anahtarı yapılandırılmamış. Cihaz keşfini etkinleştirmek için Yönetici Ayarları'ndan bir tane ekleyin.", "tailscaleDocsLink": "Dokümanları görüntüle", "tailscaleLoadingDevices": "Aygıtlar yükleniyor...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "Tailscale cihazları yüklenemedi. API URL'sini ve ağ bağlantısını kontrol edin.", "tailscaleNoDevices": "Tailnet'inizde aygıt bulunamadı.", "tailscaleDeviceAutoFill": "Bir aygıt seçmek, host IP adresini otomatik dolduracaktır.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "Sunucu ekle", + "tailscaleCopyIp": "Tailscale IP adresini kopyala", + "tailscaleIpCopied": "IP kopyalandı", + "tailscaleIpCopyFailed": "IP adresi kopyalanamadı.", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "Tailscale Kimlik Doğrulaması Gerekli", + "tailscaleCheckDescription": "Tailscale SSH ek bir doğrulama gerektiriyor. Devam etmek için tarayıcınızda kimlik doğrulaması yapın.", "tailscaleCheckOpenBrowser": "Kimlik Doğrulaması için Tarayıcı Aç", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "Tailscale kimlik doğrulamasının tamamlanmasını bekliyoruz...", + "tailscaleCheckTimeout": "Tailscale kimlik doğrulama işlemi zaman aşımına uğradı. Lütfen tekrar deneyin." }, "manager": { "title": "Tailscale", "refresh": "Yenile", "retry": "Yeniden dene", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "Bu sunucu için sudo parolası belirleyerek üst düzey işlemlere izin verin.", "noData": "Veri yok", "filter": "Filtrele...", "tsNotInstalled": "Bu sunucuda Tailscale yüklü değil", diff --git a/plugins/tailscale/locales/translated/uk_UA.json b/plugins/tailscale/locales/translated/uk_UA.json index 706848e1c..085f2cc66 100644 --- a/plugins/tailscale/locales/translated/uk_UA.json +++ b/plugins/tailscale/locales/translated/uk_UA.json @@ -1,85 +1,85 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Переглянути пристрої для хвостової мережі", + "description": "Перегляньте пристрої в підключеній мережі Tailnet." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Хвостова сітка" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "Ключ API", + "description": "Використовується для переліку пристроїв у вашій мережі Tailnet. Працює з ключем Tailscale або Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "Базова URL-адреса API", + "description": "Залиште порожнім для Tailscale. Встановіть це значення, щоб воно вказувало на екземпляр Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Список пристроїв", + "checking": "Перевірка задньої сітки...", + "noKey": "Ключ API ще не встановлено.", + "error": "Не вдалося зв'язатися з tailnet. Перевірте ключ API.", + "count": "{{count}} пристрій доступний", + "count_other": "{{count}} пристроїв доступно", + "refresh": "Перевірити" } }, "nav": { - "tailscale": "Tailscale" + "tailscale": "Хвостова шкала" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", - "tailscaleDeviceSelect": "Select Tailscale device", - "tailscaleDeviceSelectPlaceholder": "Select a device...", - "tailscaleNoApiKey": "No Tailscale API key configured. Add one in Admin Settings to enable device discovery.", - "tailscaleDocsLink": "View docs", - "tailscaleLoadingDevices": "Loading devices...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", - "tailscaleNoDevices": "No devices found in your tailnet.", - "tailscaleDeviceAutoFill": "Selecting a device will auto-fill the host IP address.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", - "filterAuthTailscale": "Tailscale" + "tailscaleUsernameHint": "Це має бути користувач Unix, якому надано ідентифікатор Tailscale у SSH ACL tailnet, не обов'язково root.", + "tailscaleDeviceSelect": "Виберіть пристрій Tailscale", + "tailscaleDeviceSelectPlaceholder": "Виберіть пристрій...", + "tailscaleNoApiKey": "Ключ API Tailscale не налаштовано. Додайте його в налаштуваннях адміністратора, щоб увімкнути виявлення пристроїв.", + "tailscaleDocsLink": "Переглянути документи", + "tailscaleLoadingDevices": "Завантаження пристроїв...", + "tailscaleDeviceLoadFailed": "Не вдалося завантажити пристрої Tailscale. Перевірте URL-адресу API та мережеве з’єднання.", + "tailscaleNoDevices": "У вашій мережі не знайдено жодних пристроїв.", + "tailscaleDeviceAutoFill": "Вибір пристрою призведе до автоматичного заповнення IP-адреси хоста.", + "tailscaleAddHost": "Додати хоста", + "tailscaleCopyIp": "Копіювати IP-адресу Tailscale", + "tailscaleIpCopied": "IP-адресу скопійовано", + "tailscaleIpCopyFailed": "Не вдалося скопіювати IP-адресу", + "filterAuthTailscale": "Хвостова шкала" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", - "tailscaleCheckOpenBrowser": "Open Browser to Authenticate", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckRequired": "Потрібна автентифікація Tailscale", + "tailscaleCheckDescription": "Для Tailscale SSH потрібна додаткова перевірка. Щоб продовжити, автентифікуйтеся у своєму браузері.", + "tailscaleCheckOpenBrowser": "Відкрийте браузер для автентифікації", + "tailscaleCheckWaiting": "Очікування автентифікації Tailscale...", + "tailscaleCheckTimeout": "Час очікування автентифікації Tailscale минув. Будь ласка, спробуйте ще раз." }, "manager": { - "title": "Tailscale", - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", - "noData": "No data available", - "filter": "Filter...", - "tsNotInstalled": "Tailscale is not installed on this host", - "tsRunning": "Running", - "tsStopped": "Stopped", - "tsEnable": "Connect", - "tsDisable": "Disconnect", - "tsEnabling": "Connecting to Tailscale...", - "tsDisabling": "Disconnecting from Tailscale...", - "tsEnabled": "Tailscale connected", - "tsDisabled": "Tailscale disconnected", - "tsExitNode": "Exit node", - "tsExitNodeActive": "Exit node active" + "title": "Хвостова шкала", + "refresh": "Оновити", + "retry": "Повторити спробу", + "sudoHint": "Встановіть пароль sudo для цього хоста, щоб дозволити дії з підвищеними правами.", + "noData": "Дані недоступні", + "filter": "Фільтр...", + "tsNotInstalled": "Tailscale не встановлено на цьому хості", + "tsRunning": "Біг", + "tsStopped": "Зупинено", + "tsEnable": "Підключитися", + "tsDisable": "Відключитися", + "tsEnabling": "Підключення до Tailscale...", + "tsDisabling": "Відключення від Tailscale...", + "tsEnabled": "Підключено хвостову шкалу", + "tsDisabled": "Хвостова шкала відключена", + "tsExitNode": "Вихідний вузол", + "tsExitNodeActive": "Вихідний вузол активний" }, "newUi": { "sidebar": { "quickConnect": { - "connectToTerminal": "Connect to Terminal", - "usernameLabel": "Username" + "connectToTerminal": "Підключення до терміналу", + "usernameLabel": "Ім'я користувача" } } } diff --git a/plugins/tailscale/locales/translated/vi_VN.json b/plugins/tailscale/locales/translated/vi_VN.json index 186f6c375..f9baf0a61 100644 --- a/plugins/tailscale/locales/translated/vi_VN.json +++ b/plugins/tailscale/locales/translated/vi_VN.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "Xem các thiết bị đuôi tàu", + "description": "Xem các thiết bị trên mạng kết nối." } }, "settings": { "group": { - "api": "Tailscale API", - "devices": "Tailnet" + "api": "API Tailscale", + "devices": "Lưới đuôi" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "Khóa API", + "description": "Dùng để liệt kê các thiết bị trên mạng đuôi tàu của bạn. Hoạt động với khóa Tailscale hoặc Headscale.", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "URL cơ sở của API", + "description": "Để trống phần Tailscale. Đặt giá trị này trỏ đến một thể hiện của Headscale.", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "Danh sách thiết bị", + "checking": "Kiểm tra lưới chắn đuôi xe...", + "noKey": "Chưa thiết lập khóa API.", + "error": "Không thể kết nối với tailnet. Vui lòng kiểm tra khóa API.", + "count": "{{count}} thiết bị có thể truy cập", + "count_other": "{{count}} thiết bị có thể truy cập", + "refresh": "Kiểm tra" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "Đây phải là người dùng Unix mà danh tính Tailscale của bạn được cấp trong ACL SSH của tailnet, không nhất thiết phải là người dùng root.", "tailscaleDeviceSelect": "Chọn thiết bị Tailscale", "tailscaleDeviceSelectPlaceholder": "Chọn thiết bị...", "tailscaleNoApiKey": "Chưa cấu hình khóa API Tailscale. Thêm một khóa trong Cài đặt Quản trị để bật khám phá thiết bị.", "tailscaleDocsLink": "Xem tài liệu", "tailscaleLoadingDevices": "Đang tải thiết bị...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "Không thể tải thiết bị Tailscale. Vui lòng kiểm tra URL API và kết nối mạng.", "tailscaleNoDevices": "Không tìm thấy thiết bị nào trong tailnet của bạn.", "tailscaleDeviceAutoFill": "Chọn thiết bị sẽ tự động điền địa chỉ IP máy chủ.", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "Thêm máy chủ", + "tailscaleCopyIp": "Sao chép IP của Tailscale", + "tailscaleIpCopied": "Địa chỉ IP đã được sao chép", + "tailscaleIpCopyFailed": "Không thể sao chép địa chỉ IP", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "Cần xác thực Tailscale", + "tailscaleCheckDescription": "Tailscale SSH yêu cầu kiểm tra bổ sung. Vui lòng xác thực trong trình duyệt của bạn để tiếp tục.", "tailscaleCheckOpenBrowser": "Mở trình duyệt để xác thực", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "Đang chờ xác thực Tailscale...", + "tailscaleCheckTimeout": "Quá trình xác thực Tailscale đã hết hạn. Vui lòng thử lại." }, "manager": { "title": "Tailscale", "refresh": "Làm mới", "retry": "Thử lại", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "Hãy đặt mật khẩu sudo cho máy chủ này để cho phép thực hiện các thao tác với quyền quản trị viên.", "noData": "Không có dữ liệu", "filter": "Lọc...", "tsNotInstalled": "Tailscale chưa được cài đặt trên máy chủ này", diff --git a/plugins/tailscale/locales/translated/zh_CN.json b/plugins/tailscale/locales/translated/zh_CN.json index f85ef9034..a3318e7af 100644 --- a/plugins/tailscale/locales/translated/zh_CN.json +++ b/plugins/tailscale/locales/translated/zh_CN.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "查看尾网设备", + "description": "查看已连接尾网上的设备。" } }, "settings": { "group": { "api": "Tailscale API", - "devices": "Tailnet" + "devices": "尾网" }, "apiKey": { "label": "API 密钥", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "description": "用于列出尾网中的设备。可与 Tailscale 或 Headscale 密钥配合使用。", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API 基本 URL", + "description": "留空表示 Tailscale。设置此项可指向 Headscale 实例。", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "设备列表", + "checking": "检查尾网……", + "noKey": "尚未设置 API 密钥。", + "error": "无法连接到尾网。请检查API密钥。", + "count": "{{count}} 设备可达", + "count_other": "{{count}} 设备可达", + "refresh": "查看" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "这必须是您在 Tailscale 身份中被授予的 Unix 用户,但不一定是 root 用户。", "tailscaleDeviceSelect": "选择 Tailscale 设备", "tailscaleDeviceSelectPlaceholder": "选择设备...", "tailscaleNoApiKey": "未配置 Tailscale API 密钥。请在管理设置中添加一个以启用设备发现。", "tailscaleDocsLink": "查看文档", "tailscaleLoadingDevices": "正在加载设备...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "加载 Tailscale 设备失败。请检查 API URL 和网络连接。", "tailscaleNoDevices": "在您的 tailnet 中未找到设备。", "tailscaleDeviceAutoFill": "选择设备将自动填充主机 IP 地址。", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "添加主机", + "tailscaleCopyIp": "复制 Tailscale IP", + "tailscaleIpCopied": "IP地址已复制", + "tailscaleIpCopyFailed": "无法复制IP地址", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "需要 Tailscale 身份验证", + "tailscaleCheckDescription": "Tailscale SSH 需要进行额外的验证。请在浏览器中进行身份验证以继续。", "tailscaleCheckOpenBrowser": "打开浏览器进行认证", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", + "tailscaleCheckWaiting": "正在等待 Tailscale 身份验证……", "tailscaleCheckTimeout": "Tailscale 身份验证超时,请重试。" }, "manager": { "title": "Tailscale", "refresh": "刷新", "retry": "重试", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "为该主机设置 sudo 密码以允许执行提升权限的操作。", "noData": "暂无数据", "filter": "筛选...", "tsNotInstalled": "此主机未安装 Tailscale", diff --git a/plugins/tailscale/locales/translated/zh_TW.json b/plugins/tailscale/locales/translated/zh_TW.json index 8c0699fea..fd830b09e 100644 --- a/plugins/tailscale/locales/translated/zh_TW.json +++ b/plugins/tailscale/locales/translated/zh_TW.json @@ -1,66 +1,66 @@ { "permissions": { "devices.view": { - "title": "View tailnet devices", - "description": "See the devices on the connected tailnet." + "title": "查看尾網設備", + "description": "查看已連接尾網上的裝置。" } }, "settings": { "group": { "api": "Tailscale API", - "devices": "Tailnet" + "devices": "尾網" }, "apiKey": { - "label": "API key", - "description": "Used to list the devices on your tailnet. Works with a Tailscale or Headscale key.", + "label": "API金鑰", + "description": "用於列出尾網中的設備。可與 Tailscale 或 Headscale 金鑰搭配使用。", "placeholder": "tskey-api-... / hskey-api-..." }, "apiBaseUrl": { - "label": "API base URL", - "description": "Leave empty for Tailscale. Set this to point at a Headscale instance.", + "label": "API 基本 URL", + "description": "留空表示 Tailscale。設定此項可指向 Headscale 實例。", "placeholder": "https://api.tailscale.com/api/v2" }, "devices": { - "label": "Device list", - "checking": "Checking the tailnet...", - "noKey": "No API key set yet.", - "error": "Could not reach the tailnet. Check the API key.", - "count": "{{count}} device reachable", - "count_other": "{{count}} devices reachable", - "refresh": "Check" + "label": "設備列表", + "checking": "檢查尾網…", + "noKey": "尚未設定 API 金鑰。", + "error": "無法連接到尾網。請檢查API密鑰。", + "count": "{{count}} 設備可達", + "count_other": "{{count}} 設備可達", + "refresh": "查看" } }, "nav": { "tailscale": "Tailscale" }, "hosts": { - "tailscaleUsernameHint": "This must be a Unix user your Tailscale identity is granted in the tailnet's SSH ACL, not necessarily root.", + "tailscaleUsernameHint": "這必須是您在 Tailscale 身分中被授予的 Unix 用戶,但不一定是 root 用戶。", "tailscaleDeviceSelect": "選取 Tailscale 裝置", "tailscaleDeviceSelectPlaceholder": "選取裝置...", "tailscaleNoApiKey": "未設定 Tailscale API 金鑰。請在管理設定中新增一個以啟用裝置探索。", "tailscaleDocsLink": "檢視文件", "tailscaleLoadingDevices": "正在載入裝置...", - "tailscaleDeviceLoadFailed": "Failed to load Tailscale devices. Check the API URL and network connection.", + "tailscaleDeviceLoadFailed": "載入 Tailscale 設備失敗。請檢查 API URL 和網路連線。", "tailscaleNoDevices": "在您的 tailnet 中找不到裝置。", "tailscaleDeviceAutoFill": "選取裝置將自動填入主機 IP 位址。", - "tailscaleAddHost": "Add host", - "tailscaleCopyIp": "Copy Tailscale IP", - "tailscaleIpCopied": "IP copied", - "tailscaleIpCopyFailed": "Could not copy the IP", + "tailscaleAddHost": "新增主機", + "tailscaleCopyIp": "複製 Tailscale IP", + "tailscaleIpCopied": "IP位址已複製", + "tailscaleIpCopyFailed": "無法複製IP位址", "filterAuthTailscale": "Tailscale" }, "terminal": { - "tailscaleCheckRequired": "Tailscale Authentication Required", - "tailscaleCheckDescription": "Tailscale SSH requires an additional check. Authenticate in your browser to continue.", + "tailscaleCheckRequired": "需要 Tailscale 身份驗證", + "tailscaleCheckDescription": "Tailscale SSH 需要額外的驗證。請在瀏覽器中進行身份驗證以繼續。", "tailscaleCheckOpenBrowser": "開啟瀏覽器以進行驗證", - "tailscaleCheckWaiting": "Waiting for Tailscale authentication...", - "tailscaleCheckTimeout": "Tailscale authentication timed out. Please try again." + "tailscaleCheckWaiting": "正在等待 Tailscale 身份驗證…", + "tailscaleCheckTimeout": "Tailscale身份驗證逾時,請重試。" }, "manager": { "title": "Tailscale", "refresh": "重新整理", "retry": "重試", - "sudoHint": "Set a sudo password for this host to allow elevated actions.", + "sudoHint": "為該主機設定 sudo 密碼以允許執行提升權限的操作。", "noData": "無可用資料", "filter": "篩選...", "tsNotInstalled": "此主機上未安裝 Tailscale", diff --git a/plugins/telemetry/locales/translated/bn_BD.json b/plugins/telemetry/locales/translated/bn_BD.json index 83a0016c0..5555d100f 100644 --- a/plugins/telemetry/locales/translated/bn_BD.json +++ b/plugins/telemetry/locales/translated/bn_BD.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "ব্যবহারের পরিসংখ্যান পরিচালনা করুন", + "description": "কী ব্যবহারের পরিসংখ্যান পাঠানো হয়েছে তা দেখুন, এখনই সেগুলো পাঠান এবং ইনস্ট্যান্স আইডি রিসেট করুন।" } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "বেনামী ব্যবহারের পরিসংখ্যান শেয়ার করুন", + "description": "টারমিক্স উন্নত করতে সাহায্য করার জন্য দিনে একবার একটি সংক্ষিপ্ত, বেনামী সারসংক্ষেপ পাঠানো হয়। এতে কখনও ইউজারনেম, হোস্টনেম, আইপি অ্যাড্রেস বা ক্রেডেনশিয়াল অন্তর্ভুক্ত থাকে না।" }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "প্ল্যাটফর্মের তথ্য অন্তর্ভুক্ত করুন", + "description": "অপারেটিং সিস্টেম, সিপিইউ আর্কিটেকচার, নোড.জেএস ভার্সন, ডেটাবেসের ধরন এবং টারমিক্স কীভাবে ইনস্টল করা হয়েছে (ডকার, ডেস্কটপ অ্যাপ বা সার্ভার)।" }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "বৈশিষ্ট্য ব্যবহার অন্তর্ভুক্ত করুন", + "description": "শেষ প্রতিবেদনের পর থেকে প্রতিটি ধরণের ট্যাব কতবার খোলা হয়েছে এবং কতবার SSH লগইন হয়েছে। ব্যবহারকারীরা তাদের প্রোফাইলে এই অংশটি বন্ধ করতে পারেন।" }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "ইনস্টল করা বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করুন", + "description": "কোন বিল্ট-ইন ফিচারগুলো ইনস্টল এবং চালু আছে।" }, "instanceId": { - "label": "Instance ID" + "label": "ইনস্ট্যান্স আইডি" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "আমার বৈশিষ্ট্য ব্যবহার অন্তর্ভুক্ত করুন", + "description": "বেনামী ব্যবহারের পরিসংখ্যানে আপনি কোন ধরনের ট্যাব খোলেন তা গণনা করা হয়। আপনার বা আপনার হোস্টদের সম্পর্কে কোনো তথ্য পাঠানো হয় না।" } }, "status": { - "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "title": "অবস্থা", + "on": "দিনে একবার ব্যবহারের পরিসংখ্যান শেয়ার করা", + "off": "ব্যবহারের পরিসংখ্যান শেয়ার করা হচ্ছে না", + "lockedOn": "ENABLE_TELEMETRY এনভায়রনমেন্ট ভেরিয়েবল দ্বারা এটি চালু করা হয়। সেখানে এটি পরিবর্তন করুন।", + "lockedOff": "ENABLE_TELEMETRY এনভায়রনমেন্ট ভেরিয়েবল দ্বারা এটি বন্ধ করা আছে। সেখানে এটি পরিবর্তন করুন।", + "instanceId": "ইনস্ট্যান্স আইডি: {{id}}", + "noInstanceId": "এখনও কোনো ইনস্ট্যান্স আইডি নেই", + "lastSent": "সর্বশেষ পাঠানো {{date}}", + "neverSent": "এখনো পাঠানো হয়নি", + "nextSend": "পরবর্তী প্রতিবেদন জমা দেওয়ার শেষ তারিখ {{date}}", + "lastError": "শেষ চেষ্টা ব্যর্থ: {{error}}", + "preview": "পূর্বরূপ প্রতিবেদন", + "sendNow": "এখনই পাঠান", + "sending": "পাঠানো হচ্ছে...", + "sent": "ব্যবহারের পরিসংখ্যান পাঠানো হয়েছে", + "notSent": "ব্যবহারের পরিসংখ্যান বন্ধ করা আছে, কিছুই পাঠানো হয়নি।", + "resetId": "ইনস্ট্যান্স আইডি রিসেট করুন", + "resetIdConfirm": "ইনস্ট্যান্স আইডি রিসেট করবেন? ভবিষ্যতের রিপোর্টগুলো নতুন ইনস্টলের মতো দেখাবে।", + "resetIdDone": "ইনস্ট্যান্স আইডি রিসেট", + "previewTitle": "পরবর্তী প্রতিবেদন", + "previewDescription": "ঠিক এই মুহূর্তে এটাই পাঠানো হবে।", + "close": "বন্ধ করুন", + "loadFailed": "ব্যবহারের পরিসংখ্যানের স্থিতি লোড করা যায়নি" } } diff --git a/plugins/telemetry/locales/translated/hi_IN.json b/plugins/telemetry/locales/translated/hi_IN.json index 642e46e67..3753386b5 100644 --- a/plugins/telemetry/locales/translated/hi_IN.json +++ b/plugins/telemetry/locales/translated/hi_IN.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "उपयोग सांख्यिकी प्रबंधित करें", + "description": "देखें कि उपयोग संबंधी कौन से आंकड़े भेजे जा रहे हैं, उन्हें अभी भेजें और इंस्टेंस आईडी को रीसेट करें।" } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "अनाम उपयोग के आँकड़े साझा करें", + "description": "यह Termix को बेहतर बनाने में मदद करने के लिए दिन में एक बार एक छोटा, गुमनाम सारांश भेजता है। इसमें कभी भी उपयोगकर्ता नाम, होस्टनाम, आईपी पते या पहचान संबंधी जानकारी शामिल नहीं होती है।" }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "प्लेटफ़ॉर्म की जानकारी शामिल करें", + "description": "ऑपरेटिंग सिस्टम, सीपीयू आर्किटेक्चर, नोड.जेएस संस्करण, डेटाबेस का प्रकार और टर्मिक्स कैसे स्थापित किया गया है (डॉकर, डेस्कटॉप ऐप या सर्वर)।" }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "फ़ीचर उपयोग को शामिल करें", + "description": "पिछली रिपोर्ट के बाद से प्रत्येक प्रकार के टैब कितनी बार खोले गए और कितने SSH लॉगिन हुए। उपयोगकर्ता अपनी प्रोफ़ाइल में इस जानकारी को बंद कर सकते हैं।" }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "स्थापित सुविधाओं को शामिल करें", + "description": "कौन-कौन सी अंतर्निहित सुविधाएं स्थापित हैं और चल रही हैं।" }, "instanceId": { - "label": "Instance ID" + "label": "उदाहरण आईडी" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "मेरे फ़ीचर उपयोग को शामिल करें", + "description": "यह गुमनाम उपयोग आंकड़ों में आपके द्वारा खोले गए टैब के प्रकारों की गणना करता है। आपके या आपके होस्ट के बारे में कोई भी जानकारी नहीं भेजी जाती है।" } }, "status": { "title": "स्थिति", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "उपयोग के आंकड़े दिन में एक बार साझा करना", + "off": "उपयोग के आंकड़े साझा नहीं किए जा रहे हैं", + "lockedOn": "यह ENABLE_TELEMETRY एनवायरनमेंट वेरिएबल द्वारा चालू किया जाता है। इसे वहां बदलें।", + "lockedOff": "इसे ENABLE_TELEMETRY एनवायरनमेंट वेरिएबल द्वारा बंद किया गया है। इसे वहां बदलें।", + "instanceId": "इंस्टेंस आईडी: {{id}}", + "noInstanceId": "अभी तक कोई इंस्टेंस आईडी नहीं है", + "lastSent": "अंतिम बार भेजा गया {{date}}", + "neverSent": "अभी तक भेजा नहीं गया", + "nextSend": "अगली रिपोर्ट जमा करने की तिथि {{date}}", + "lastError": "अंतिम प्रयास विफल रहा: {{error}}", + "preview": "पूर्वावलोकन रिपोर्ट", + "sendNow": "अब भेजें", + "sending": "भेजा जा रहा है...", + "sent": "उपयोग संबंधी आंकड़े भेजे गए", + "notSent": "उपयोग संबंधी आंकड़े बंद हैं, कुछ भी नहीं भेजा गया।", + "resetId": "इंस्टेंस आईडी रीसेट करें", + "resetIdConfirm": "क्या इंस्टेंस आईडी रीसेट करें? भविष्य की रिपोर्टें एक नए इंस्टॉलेशन की तरह दिखेंगी।", + "resetIdDone": "इंस्टेंस आईडी रीसेट", + "previewTitle": "अगली रिपोर्ट", + "previewDescription": "ठीक यही चीज़ अभी भेजी जाएगी।", "close": "बंद करें", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "उपयोग सांख्यिकी स्थिति लोड नहीं हो सकी" } } diff --git a/plugins/telemetry/locales/translated/id_ID.json b/plugins/telemetry/locales/translated/id_ID.json index 9f5d24f76..b9d9f2e7e 100644 --- a/plugins/telemetry/locales/translated/id_ID.json +++ b/plugins/telemetry/locales/translated/id_ID.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Kelola statistik penggunaan", + "description": "Lihat statistik penggunaan apa yang dikirim, kirimkan sekarang, dan atur ulang ID instance." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Bagikan statistik penggunaan anonim.", + "description": "Mengirimkan ringkasan anonim singkat sekali sehari untuk membantu meningkatkan Termix. Ringkasan ini tidak pernah menyertakan nama pengguna, nama host, alamat IP, atau kredensial." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Sertakan informasi platform.", + "description": "Sistem operasi, arsitektur CPU, versi Node.js, tipe basis data, dan cara Termix diinstal (Docker, aplikasi desktop, atau server)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Sertakan penggunaan fitur", + "description": "Berapa kali setiap jenis tab dibuka dan berapa kali login SSH terjadi sejak laporan terakhir. Pengguna dapat menonaktifkan bagian mereka sendiri di profil mereka." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Termasuk fitur yang terpasang", + "description": "Fitur bawaan mana yang terpasang dan berjalan." }, "instanceId": { - "label": "Instance ID" + "label": "ID Instansi" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Sertakan penggunaan fitur saya", + "description": "Menghitung jenis tab yang Anda buka dalam statistik penggunaan anonim. Tidak ada informasi tentang Anda atau penyedia hosting Anda yang dikirimkan." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Membagikan statistik penggunaan sekali sehari.", + "off": "Tidak membagikan statistik penggunaan", + "lockedOn": "Diaktifkan oleh variabel lingkungan ENABLE_TELEMETRY. Ubah di sana.", + "lockedOff": "Dinonaktifkan oleh variabel lingkungan ENABLE_TELEMETRY. Ubah di sana.", + "instanceId": "ID Instansi: {{id}}", + "noInstanceId": "Belum ada ID instance.", + "lastSent": "Terakhir dikirim {{date}}", + "neverSent": "Belum dikirim", + "nextSend": "Laporan selanjutnya jatuh tempo {{date}}", + "lastError": "Upaya terakhir gagal: {{error}}", + "preview": "Pratinjau laporan", + "sendNow": "Kirim sekarang", + "sending": "Mengirim...", + "sent": "Statistik penggunaan telah dikirim.", + "notSent": "Statistik penggunaan dimatikan, tidak ada yang dikirim.", + "resetId": "Atur ulang ID instance", + "resetIdConfirm": "Apakah Anda mengatur ulang ID instance? Laporan selanjutnya akan terlihat seperti instalasi baru.", + "resetIdDone": "ID Instansi diatur ulang", + "previewTitle": "Laporan selanjutnya", + "previewDescription": "Inilah yang akan dikirimkan sekarang juga.", "close": "Tutup", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Tidak dapat memuat status statistik penggunaan." } } diff --git a/plugins/telemetry/locales/translated/nl_NL.json b/plugins/telemetry/locales/translated/nl_NL.json index 83a0016c0..70243cc2a 100644 --- a/plugins/telemetry/locales/translated/nl_NL.json +++ b/plugins/telemetry/locales/translated/nl_NL.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Beheer gebruiksstatistieken", + "description": "Bekijk welke gebruiksstatistieken worden verzonden, verzend ze nu en reset de instantie-ID." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Deel anonieme gebruiksstatistieken", + "description": "Verstuurt eenmaal per dag een korte, anonieme samenvatting om Termix te helpen verbeteren. Deze samenvatting bevat nooit gebruikersnamen, hostnamen, IP-adressen of inloggegevens." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Voeg platforminformatie toe", + "description": "Het besturingssysteem, de CPU-architectuur, de Node.js-versie, het type database en hoe Termix is geïnstalleerd (Docker, desktop-app of server)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Inclusief gebruik van functies", + "description": "Hoe vaak elk type tabblad is geopend en hoeveel SSH-aanmeldingen er hebben plaatsgevonden sinds het laatste rapport. Gebruikers kunnen dit onderdeel zelf uitschakelen in hun profiel." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Inclusief geïnstalleerde functies", + "description": "Welke ingebouwde functies zijn geïnstalleerd en actief?" }, "instanceId": { - "label": "Instance ID" + "label": "Instantie-ID" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Voeg mijn functiegebruik toe", + "description": "Deze tool telt welke soorten tabbladen je opent in de anonieme gebruiksstatistieken. Er wordt niets over jou of je hostingprovider verzonden." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "on": "Gebruiksstatistieken worden eenmaal per dag gedeeld.", + "off": "Gebruiksstatistieken worden niet gedeeld.", + "lockedOn": "Ingeschakeld via de omgevingsvariabele ENABLE_TELEMETRY. Wijzig deze daar.", + "lockedOff": "Uitgeschakeld door de omgevingsvariabele ENABLE_TELEMETRY. Wijzig deze daar.", + "instanceId": "Instantie-ID: {{id}}", + "noInstanceId": "Nog geen instantie-ID", + "lastSent": "Laatst verzonden {{date}}", + "neverSent": "Nog niet verzonden", + "nextSend": "Volgende rapport verschuldigd {{date}}", + "lastError": "Laatste poging mislukt: {{error}}", + "preview": "Voorbeeldrapport", + "sendNow": "Verzend nu", + "sending": "Verzenden...", + "sent": "Gebruiksstatistieken verzonden", + "notSent": "Gebruiksstatistieken zijn uitgeschakeld, er is niets verzonden.", + "resetId": "Instantie-ID opnieuw instellen", + "resetIdConfirm": "Is de instantie-ID gereset? Toekomstige rapporten zullen eruitzien alsof het een nieuwe installatie betreft.", + "resetIdDone": "Instantie-ID gereset", + "previewTitle": "Volgend rapport", + "previewDescription": "Dit is precies wat er nu verzonden zou worden.", + "close": "Dichtbij", + "loadFailed": "De status van de gebruiksstatistieken kon niet worden geladen." } } diff --git a/plugins/telemetry/locales/translated/no_NO.json b/plugins/telemetry/locales/translated/no_NO.json index 1b2f020cc..a66ff7faf 100644 --- a/plugins/telemetry/locales/translated/no_NO.json +++ b/plugins/telemetry/locales/translated/no_NO.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Administrer bruksstatistikk", + "description": "Se hvilken bruksstatistikk som sendes, send den nå og tilbakestill forekomst-ID-en." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Del anonym bruksstatistikk", + "description": "Sender et lite anonymt sammendrag én gang daglig for å forbedre Termix. Det inkluderer aldri brukernavn, vertsnavn, IP-adresser eller påloggingsinformasjon." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Inkluder plattforminformasjon", + "description": "Operativsystemet, CPU-arkitekturen, Node.js-versjonen, databasetypen og hvordan Termix er installert (Docker, skrivebordsapp eller server)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Inkluder bruk av funksjoner", + "description": "Hvor mange ganger hver type fane ble åpnet, og hvor mange SSH-pålogginger som skjedde siden forrige rapport. Brukere kan slå av sin egen del i profilen sin." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Inkluder installerte funksjoner", + "description": "Hvilke innebygde funksjoner som er installert og kjører." }, "instanceId": { - "label": "Instance ID" + "label": "Forekomst-ID" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Inkluder min funksjonsbruk", + "description": "Teller hvilke typer faner du åpner i den anonyme bruksstatistikken. Ingenting om deg eller vertene dine sendes." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Deler bruksstatistikk én gang om dagen", + "off": "Deler ikke bruksstatistikk", + "lockedOn": "Slått på av miljøvariabelen ENABLE_TELEMETRY. Endre den der.", + "lockedOff": "Slått av av miljøvariabelen ENABLE_TELEMETRY. Endre den der.", + "instanceId": "Forekomst-ID: {{id}}", + "noInstanceId": "Ingen forekomst-ID ennå", + "lastSent": "Sist sendt {{date}}", + "neverSent": "Ikke sendt ennå", + "nextSend": "Neste rapport forfaller {{date}}", + "lastError": "Siste forsøk mislyktes: {{error}}", + "preview": "Forhåndsvisningsrapport", + "sendNow": "Send nå", + "sending": "Sender...", + "sent": "Bruksstatistikk sendt", + "notSent": "Bruksstatistikk er slått av, ingenting ble sendt", + "resetId": "Tilbakestill forekomst-ID", + "resetIdConfirm": "Vil du tilbakestille instans-ID-en? Fremtidige rapporter vil se ut som en ny installasjon.", + "resetIdDone": "Tilbakestilling av forekomst-ID", + "previewTitle": "Neste rapport", + "previewDescription": "Dette er akkurat det som ville bli sendt akkurat nå.", "close": "Lukk", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Kunne ikke laste inn statusen for bruksstatistikken" } } diff --git a/plugins/telemetry/locales/translated/pl_PL.json b/plugins/telemetry/locales/translated/pl_PL.json index bc225797a..4e06963ce 100644 --- a/plugins/telemetry/locales/translated/pl_PL.json +++ b/plugins/telemetry/locales/translated/pl_PL.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Zarządzaj statystykami użytkowania", + "description": "Zobacz, jakie statystyki użytkowania są wysyłane, wyślij je teraz i zresetuj identyfikator instancji." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Udostępnij anonimowe statystyki użytkowania", + "description": "Wysyła raz dziennie krótkie, anonimowe podsumowanie, aby pomóc w ulepszaniu Termix. Nigdy nie zawiera nazw użytkowników, nazw hostów, adresów IP ani danych uwierzytelniających." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Uwzględnij informacje o platformie", + "description": "System operacyjny, architektura procesora, wersja Node.js, typ bazy danych i sposób instalacji Termix (Docker, aplikacja stacjonarna lub serwer)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Uwzględnij użycie funkcji", + "description": "Ile razy otwierano poszczególne zakładki i ile logowań SSH miało miejsce od ostatniego raportu. Użytkownicy mogą wyłączyć tę funkcję w swoim profilu." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Uwzględnij zainstalowane funkcje", + "description": "Jakie wbudowane funkcje są zainstalowane i uruchomione." }, "instanceId": { - "label": "Instance ID" + "label": "Identyfikator instancji" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Uwzględnij moje wykorzystanie funkcji", + "description": "Zlicza rodzaje otwieranych przez Ciebie kart w anonimowych statystykach użytkowania. Nie są wysyłane żadne informacje o Tobie ani o Twoich hostach." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Udostępnianie statystyk użytkowania raz dziennie", + "off": "Nieudostępnianie statystyk użytkowania", + "lockedOn": "Włączane przez zmienną środowiskową ENABLE_TELEMETRY. Zmień to w tym miejscu.", + "lockedOff": "Wyłączone przez zmienną środowiskową ENABLE_TELEMETRY. Zmień ją w tym miejscu.", + "instanceId": "Identyfikator instancji: {{id}}", + "noInstanceId": "Brak jeszcze identyfikatora instancji", + "lastSent": "Ostatnio wysłano {{date}}", + "neverSent": "Jeszcze nie wysłano", + "nextSend": "Następny raport należy przesłać {{date}}", + "lastError": "Ostatnia próba nieudana: {{error}}", + "preview": "Podgląd raportu", + "sendNow": "Wyślij teraz", + "sending": "Przesyłka...", + "sent": "Wysłano statystyki użytkowania", + "notSent": "Statystyki użytkowania są wyłączone, nic nie zostało wysłane", + "resetId": "Zresetuj identyfikator instancji", + "resetIdConfirm": "Zresetować identyfikator instancji? Przyszłe raporty będą wyglądać jak nowa instalacja.", + "resetIdDone": "Resetowanie identyfikatora instancji", + "previewTitle": "Następny raport", + "previewDescription": "Dokładnie to samo zostałoby wysłane w tej chwili.", "close": "Zamknij", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Nie można załadować statusu statystyk użytkowania" } } diff --git a/plugins/telemetry/locales/translated/pt_BR.json b/plugins/telemetry/locales/translated/pt_BR.json index a2e7dff6f..01cba4599 100644 --- a/plugins/telemetry/locales/translated/pt_BR.json +++ b/plugins/telemetry/locales/translated/pt_BR.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Gerenciar estatísticas de uso", + "description": "Veja quais estatísticas de uso foram enviadas, envie-as agora e redefina o ID da instância." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Compartilhar estatísticas de uso anônimas", + "description": "Envia um pequeno resumo anônimo uma vez por dia para ajudar a melhorar o Termix. Ele nunca inclui nomes de usuário, nomes de host, endereços IP ou credenciais." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Incluir informações da plataforma", + "description": "O sistema operacional, a arquitetura da CPU, a versão do Node.js, o tipo de banco de dados e como o Termix está instalado (Docker, aplicativo desktop ou servidor)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Incluir utilização do recurso", + "description": "Quantas vezes cada tipo de aba foi aberta e quantos logins SSH ocorreram desde o último relatório. Os usuários podem desativar essa funcionalidade em seus perfis." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Incluir recursos instalados", + "description": "Quais recursos integrados estão instalados e em execução?" }, "instanceId": { - "label": "Instance ID" + "label": "ID da instância" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Inclua meu uso do recurso", + "description": "Registra os tipos de abas que você abre nas estatísticas de uso anônimas. Nenhuma informação sobre você ou seus servidores é enviada." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Compartilhar estatísticas de uso uma vez por dia.", + "off": "Não compartilhar estatísticas de uso", + "lockedOn": "Ativado pela variável de ambiente ENABLE_TELEMETRY. Altere-a lá.", + "lockedOff": "Desativado pela variável de ambiente ENABLE_TELEMETRY. Altere-a lá.", + "instanceId": "ID da instância: {{id}}", + "noInstanceId": "Ainda não há ID de instância.", + "lastSent": "Última mensagem enviada {{date}}", + "neverSent": "Ainda não foi enviado", + "nextSend": "Próximo relatório a ser entregue {{date}}", + "lastError": "Última tentativa falhou: {{error}}", + "preview": "Relatório de pré-visualização", + "sendNow": "Enviar agora", + "sending": "Enviando...", + "sent": "Estatísticas de utilização enviadas", + "notSent": "As estatísticas de uso estão desativadas, nada foi enviado.", + "resetId": "Redefinir ID da instância", + "resetIdConfirm": "Redefinir o ID da instância? Os relatórios futuros serão exibidos como uma nova instalação.", + "resetIdDone": "Redefinição do ID da instância", + "previewTitle": "Próximo relatório", + "previewDescription": "É exatamente isso que seria enviado agora.", "close": "Fechar", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Não foi possível carregar o status das estatísticas de uso." } } diff --git a/plugins/telemetry/locales/translated/pt_PT.json b/plugins/telemetry/locales/translated/pt_PT.json index b94cf4aae..943d1d915 100644 --- a/plugins/telemetry/locales/translated/pt_PT.json +++ b/plugins/telemetry/locales/translated/pt_PT.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Gerir estatísticas de uso", + "description": "Veja quais as estatísticas de utilização que foram enviadas, envie-as agora e redefina o ID da instância." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Partilhar estatísticas de uso anónimas", + "description": "Envia um pequeno resumo anónimo uma vez por dia para ajudar a melhorar o Termix. Nunca inclui nomes de utilizador, nomes de host, endereços IP ou credenciais." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Incluir informações da plataforma", + "description": "O sistema operativo, a arquitetura do CPU, a versão do Node. js, o tipo de base de dados e como o Termix está instalado (Docker, aplicação desktop ou servidor)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Incluir utilização do recurso", + "description": "Quantas vezes foi aberto cada tipo de separador e quantos logins SSH ocorreram desde o último relatório. Os utilizadores podem desativar esta funcionalidade nos seus perfis." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Incluir recursos instalados", + "description": "Que recursos integrados estão instalados e em execução?" }, "instanceId": { - "label": "Instance ID" + "label": "ID da instância" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Incluir o meu uso do recurso", + "description": "Regista os tipos de separadores que abre nas estatísticas de utilização anónimas. Nenhuma informação sobre si ou os seus servidores é enviada." } }, "status": { "title": "Estado", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Partilhar estatísticas de utilização uma vez por dia.", + "off": "Não partilhar estatísticas de utilização", + "lockedOn": "Ativado pela variável de ambiente ENABLE_TELEMETRY. Altere-a aí.", + "lockedOff": "Desativado pela variável de ambiente ENABLE_TELEMETRY. Altere-a aí.", + "instanceId": "ID da instância: {{id}}", + "noInstanceId": "Ainda não há ID de instância.", + "lastSent": "Última mensagem enviada {{date}}", + "neverSent": "Ainda não foi enviado", + "nextSend": "Próximo relatório a ser entregue {{date}}", + "lastError": "Última tentativa falhada: {{error}}", + "preview": "Relatório de pré-visualização", + "sendNow": "Enviar agora", + "sending": "Enviando...", + "sent": "Estatísticas de utilização enviadas", + "notSent": "As estatísticas de utilização estão desativadas, nada foi enviado.", + "resetId": "Repor ID da instância", + "resetIdConfirm": "Repor o ID da instância? Os relatórios futuros serão apresentados como uma nova instalação.", + "resetIdDone": "Redefinição do ID da instância", + "previewTitle": "Próximo relatório", + "previewDescription": "É exatamente isso que seria enviado agora.", "close": "Fechar", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Não foi possível carregar o estado das estatísticas de utilização." } } diff --git a/plugins/telemetry/locales/translated/ru_RU.json b/plugins/telemetry/locales/translated/ru_RU.json index f4760cb06..5b84ffe4c 100644 --- a/plugins/telemetry/locales/translated/ru_RU.json +++ b/plugins/telemetry/locales/translated/ru_RU.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Управление статистикой использования", + "description": "Посмотрите, какие статистические данные об использовании были отправлены, отправьте их сейчас и сбросьте идентификатор экземпляра." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Делитесь анонимной статистикой использования", + "description": "Ежедневно отправляет небольшую анонимную сводку для улучшения работы Termix. Она никогда не содержит имен пользователей, имен хостов, IP-адресов или учетных данных." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Укажите информацию о платформе.", + "description": "Операционная система, архитектура процессора, версия Node.js, тип базы данных и способ установки Termix (Docker, настольное приложение или сервер)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Включите информацию об использовании функций.", + "description": "Сколько раз открывались вкладки каждого типа и сколько раз происходили SSH-подключения с момента последнего отчета. Пользователи могут отключить эту функцию в своем профиле." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Включить установленные функции", + "description": "Какие встроенные функции установлены и запущены?" }, "instanceId": { - "label": "Instance ID" + "label": "Идентификатор экземпляра" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Включите информацию об использовании мной этой функции.", + "description": "В анонимной статистике использования подсчитывается, какие типы вкладок вы открываете. Никакая информация о вас или ваших хостах не отправляется." } }, "status": { "title": "Статус", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Ежедневное предоставление статистики использования.", + "off": "Не разглашаем статистику использования", + "lockedOn": "Включается с помощью переменной среды ENABLE_TELEMETRY. Измените её там.", + "lockedOff": "Отключается с помощью переменной среды ENABLE_TELEMETRY. Измените её там.", + "instanceId": "Идентификатор экземпляра: {{id}}", + "noInstanceId": "Идентификатор экземпляра пока отсутствует.", + "lastSent": "Последнее отправленное {{date}}", + "neverSent": "Ещё не отправлено", + "nextSend": "Следующий отчет должен быть представлен {{date}}", + "lastError": "Последняя попытка не удалась: {{error}}", + "preview": "Предварительный просмотр отчета", + "sendNow": "Отправить сейчас", + "sending": "Отправка...", + "sent": "Отправлены статистические данные об использовании.", + "notSent": "Статистика использования отключена, ничего не было отправлено.", + "resetId": "Сбросить идентификатор экземпляра", + "resetIdConfirm": "Сбросить идентификатор экземпляра? В будущих отчетах будет отображаться информация о новой установке.", + "resetIdDone": "Сброс идентификатора экземпляра", + "previewTitle": "Следующий отчет", + "previewDescription": "Именно это сейчас и отправили бы.", "close": "Закрыть", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Не удалось загрузить статистику использования." } } diff --git a/plugins/telemetry/locales/translated/sr_SP.json b/plugins/telemetry/locales/translated/sr_SP.json index 83a0016c0..f775291f4 100644 --- a/plugins/telemetry/locales/translated/sr_SP.json +++ b/plugins/telemetry/locales/translated/sr_SP.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Управљајте статистиком коришћења", + "description": "Погледајте које се статистике коришћења шаљу, пошаљите их сада и ресетујте ИД инстанце." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Делите анонимну статистику коришћења", + "description": "Шаље мали анонимни резиме једном дневно како би помогао у побољшању Termix-а. Никада не садржи корисничка имена, имена хостова, IP адресе или акредитиве." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Укључи информације о платформи", + "description": "Оперативни систем, архитектура процесора, верзија Node.js-а, тип базе података и начин инсталирања Termix-а (Docker, десктоп апликација или сервер)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Укључи коришћење функција", + "description": "Колико пута је свака врста картице отворена и колико се SSH пријављивања догодило од последњег извештаја. Корисници могу да искључе свој део у свом профилу." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Укључи инсталиране функције", + "description": "Које уграђене функције су инсталиране и покрећу се." }, "instanceId": { - "label": "Instance ID" + "label": "ИД инстанце" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Укључи моје коришћење функција", + "description": "У анонимној статистици коришћења рачуна које врсте картица отварате. Не шаље се ништа о вама или вашим хостовима." } }, "status": { - "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "title": "Статус", + "on": "Дељење статистике коришћења једном дневно", + "off": "Не дели статистику коришћења", + "lockedOn": "Укључује променљива окружења ENABLE_TELEMETRY. Промените је тамо.", + "lockedOff": "Искључено променљивом окружења ENABLE_TELEMETRY. Промените је тамо.", + "instanceId": "ИД инстанце: {{id}}", + "noInstanceId": "Још увек нема ИД-а инстанце", + "lastSent": "Последње послато {{date}}", + "neverSent": "Још није послато", + "nextSend": "Следећи извештај {{date}}", + "lastError": "Последњи покушај није успео: {{error}}", + "preview": "Преглед извештаја", + "sendNow": "Пошаљи сада", + "sending": "Слање...", + "sent": "Послата је статистика коришћења", + "notSent": "Статистика коришћења је искључена, ништа није послато", + "resetId": "Ресетуј ИД инстанце", + "resetIdConfirm": "Ресетовати ИД инстанце? Будући извештаји ће изгледати као нова инсталација.", + "resetIdDone": "Ресетовање ИД-а инстанце", + "previewTitle": "Следећи извештај", + "previewDescription": "Управо ово би сада било послато.", + "close": "Затвори", + "loadFailed": "Није могуће учитати статус статистике коришћења" } } diff --git a/plugins/telemetry/locales/translated/sv_SE.json b/plugins/telemetry/locales/translated/sv_SE.json index 83a0016c0..706e1da23 100644 --- a/plugins/telemetry/locales/translated/sv_SE.json +++ b/plugins/telemetry/locales/translated/sv_SE.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Hantera användningsstatistik", + "description": "Se vilken användningsstatistik som skickas, skicka den nu och återställ instans-ID:t." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Dela anonym användningsstatistik", + "description": "Skickar en liten anonym sammanfattning en gång om dagen för att förbättra Termix. Den inkluderar aldrig användarnamn, värdnamn, IP-adresser eller inloggningsuppgifter." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Inkludera plattformsinformation", + "description": "Operativsystemet, CPU-arkitekturen, Node.js-versionen, databastypen och hur Termix är installerat (Docker, skrivbordsapp eller server)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Inkludera funktionsanvändning", + "description": "Hur många gånger varje typ av flik öppnades och hur många SSH-inloggningar som skett sedan den senaste rapporten. Användare kan inaktivera sin egen del i sin profil." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Inkludera installerade funktioner", + "description": "Vilka inbyggda funktioner som är installerade och körs." }, "instanceId": { - "label": "Instance ID" + "label": "Instans-ID" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Inkludera min funktionsanvändning", + "description": "Räknar vilka typer av flikar du öppnar i den anonyma användningsstatistiken. Ingenting om dig eller dina värdar skickas." } }, "status": { "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "on": "Delar användningsstatistik en gång om dagen", + "off": "Delar inte användningsstatistik", + "lockedOn": "Aktiveras av miljövariabeln ENABLE_TELEMETRY. Ändra den där.", + "lockedOff": "Avstängd av miljövariabeln ENABLE_TELEMETRY. Ändra den där.", + "instanceId": "Instans-ID: {{id}}", + "noInstanceId": "Inget instans-ID ännu", + "lastSent": "Senast skickad {{date}}", + "neverSent": "Inte skickat än", + "nextSend": "Nästa rapport ska vara klar {{date}}", + "lastError": "Senaste försöket misslyckades: {{error}}", + "preview": "Förhandsgranska rapport", + "sendNow": "Skicka nu", + "sending": "Sändning...", + "sent": "Användningsstatistik skickad", + "notSent": "Användningsstatistiken är avstängd, ingenting skickades", + "resetId": "Återställ instans-ID", + "resetIdConfirm": "Återställa instans-ID:t? Framtida rapporter kommer att se ut som en nyinstallation.", + "resetIdDone": "Återställning av instans-ID", + "previewTitle": "Nästa rapport", + "previewDescription": "Det här är precis vad som skulle skickas just nu.", + "close": "Nära", + "loadFailed": "Kunde inte ladda användningsstatistikens status" } } diff --git a/plugins/telemetry/locales/translated/th_TH.json b/plugins/telemetry/locales/translated/th_TH.json index 83a0016c0..0e639dc79 100644 --- a/plugins/telemetry/locales/translated/th_TH.json +++ b/plugins/telemetry/locales/translated/th_TH.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "จัดการสถิติการใช้งาน", + "description": "ดูว่ามีการส่งข้อมูลสถิติการใช้งานอะไรบ้าง ส่งข้อมูลเหล่านั้นตอนนี้ แล้วรีเซ็ต Instance ID" } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "แบ่งปันสถิติการใช้งานแบบไม่ระบุตัวตน", + "description": "ส่งสรุปข้อมูลแบบไม่ระบุชื่อขนาดสั้นวันละครั้งเพื่อช่วยปรับปรุง Termix โดยจะไม่รวมชื่อผู้ใช้ ชื่อโฮสต์ ที่อยู่ IP หรือข้อมูลประจำตัวใดๆ ทั้งสิ้น" }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "ระบุข้อมูลแพลตฟอร์ม", + "description": "ระบบปฏิบัติการ สถาปัตยกรรม CPU เวอร์ชัน Node.js ประเภทฐานข้อมูล และวิธีการติดตั้ง Termix (Docker แอปเดสก์ท็อป หรือเซิร์ฟเวอร์)" }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "รวมถึงการใช้งานฟีเจอร์ต่างๆ", + "description": "จำนวนครั้งที่แท็บแต่ละประเภทถูกเปิด และจำนวนการเข้าสู่ระบบ SSH ที่เกิดขึ้นนับตั้งแต่รายงานครั้งล่าสุด ผู้ใช้สามารถปิดส่วนนี้ได้ด้วยตนเองในโปรไฟล์" }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "รวมคุณสมบัติที่ติดตั้งไว้", + "description": "มีฟีเจอร์ในตัวใดบ้างที่ติดตั้งและใช้งานอยู่" }, "instanceId": { - "label": "Instance ID" + "label": "รหัสอินสแตนซ์" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "รวมการใช้งานฟีเจอร์ของฉันด้วย", + "description": "แอปนี้จะนับจำนวนแท็บที่คุณเปิดในสถิติการใช้งานแบบไม่ระบุตัวตน โดยไม่มีการส่งข้อมูลเกี่ยวกับตัวคุณหรือโฮสต์ของคุณแต่อย่างใด" } }, "status": { - "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "title": "สถานะ", + "on": "เผยสถิติการใช้งานวันละครั้ง", + "off": "ไม่เปิดเผยสถิติการใช้งาน", + "lockedOn": "เปิดใช้งานโดยตัวแปรสภาพแวดล้อม ENABLE_TELEMETRY เปลี่ยนค่าที่นั่น", + "lockedOff": "ปิดใช้งานโดยตัวแปรสภาพแวดล้อม ENABLE_TELEMETRY เปลี่ยนค่าที่นั่น", + "instanceId": "รหัสอินสแตนซ์: {{id}}", + "noInstanceId": "ยังไม่มีหมายเลขประจำตัวอินสแตนซ์", + "lastSent": "ส่งครั้งล่าสุด {{date}}", + "neverSent": "ยังไม่ได้ส่ง", + "nextSend": "รายงานฉบับต่อไปส่งภายในวันที่ {{date}}", + "lastError": "ความพยายามครั้งล่าสุดล้มเหลว: {{error}}", + "preview": "รายงานฉบับย่อ", + "sendNow": "ส่งเลย", + "sending": "กำลังส่ง...", + "sent": "ส่งสถิติการใช้งานแล้ว", + "notSent": "สถิติการใช้งานถูกปิดใช้งาน ไม่มีการส่งใด ๆ", + "resetId": "รีเซ็ต ID อินสแตนซ์", + "resetIdConfirm": "รีเซ็ต Instance ID หรือไม่? รายงานในอนาคตจะแสดงผลเหมือนกับการติดตั้งใหม่", + "resetIdDone": "รีเซ็ต Instance ID", + "previewTitle": "รายงานฉบับต่อไป", + "previewDescription": "นี่คือสิ่งที่จะถูกส่งไปในตอนนี้อย่างแน่นอน", + "close": "ปิด", + "loadFailed": "ไม่สามารถโหลดสถานะสถิติการใช้งานได้" } } diff --git a/plugins/telemetry/locales/translated/tr_TR.json b/plugins/telemetry/locales/translated/tr_TR.json index 29086f017..152d185d0 100644 --- a/plugins/telemetry/locales/translated/tr_TR.json +++ b/plugins/telemetry/locales/translated/tr_TR.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Kullanım istatistiklerini yönetin", + "description": "Gönderilen kullanım istatistiklerine bakın, bunları şimdi gönderin ve örnek kimliğini sıfırlayın." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Anonim kullanım istatistiklerini paylaşın", + "description": "Termix'in geliştirilmesine yardımcı olmak amacıyla günde bir kez küçük, anonim bir özet gönderir. Bu özet asla kullanıcı adlarını, sunucu adlarını, IP adreslerini veya kimlik bilgilerini içermez." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Platform bilgilerini ekleyin", + "description": "İşletim sistemi, işlemci mimarisi, Node.js sürümü, veritabanı türü ve Termix'in nasıl kurulduğu (Docker, masaüstü uygulaması veya sunucu)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Özellik kullanımını dahil et", + "description": "Son rapordan bu yana her sekme türünün kaç kez açıldığı ve kaç SSH oturum açma işleminin gerçekleştiği. Kullanıcılar profillerinden kendi bölümlerini kapatabilirler." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Kurulu özellikleri dahil et", + "description": "Hangi yerleşik özellikler yüklü ve çalışıyor?" }, "instanceId": { - "label": "Instance ID" + "label": "Örnek Kimliği" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Özellik kullanımımı dahil et", + "description": "Anonim kullanım istatistiklerinde hangi tür sekmeleri açtığınızı sayar. Sizin veya sunucularınız hakkında hiçbir bilgi gönderilmez." } }, "status": { "title": "Durum", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Kullanım istatistikleri günde bir kez paylaşılıyor.", + "off": "Kullanım istatistiklerini paylaşmamak", + "lockedOn": "ENABLE_TELEMETRY ortam değişkeni tarafından etkinleştirilir. Orada değiştirin.", + "lockedOff": "ENABLE_TELEMETRY ortam değişkeni tarafından devre dışı bırakılmıştır. Lütfen bu değişkeni orada değiştirin.", + "instanceId": "Örnek Kimliği: {{id}}", + "noInstanceId": "Henüz bir örnek kimliği yok.", + "lastSent": "Son gönderilen {{date}}", + "neverSent": "Henüz gönderilmedi", + "nextSend": "Sonraki raporun teslim tarihi {{date}}", + "lastError": "Son deneme başarısız oldu: {{error}}", + "preview": "Önizleme raporu", + "sendNow": "Şimdi gönder", + "sending": "Gönderiliyor...", + "sent": "Kullanım istatistikleri gönderildi", + "notSent": "Kullanım istatistikleri kapalı, hiçbir şey gönderilmedi.", + "resetId": "Örnek kimliğini sıfırla", + "resetIdConfirm": "Örnek kimliğini sıfırla? Gelecekteki raporlar yeni bir kurulum gibi görünecektir.", + "resetIdDone": "Örnek Kimliği sıfırlandı", + "previewTitle": "Sonraki rapor", + "previewDescription": "Şu anda gönderilecek olan tam olarak bu.", "close": "Kapat", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Kullanım istatistikleri durumu yüklenemedi." } } diff --git a/plugins/telemetry/locales/translated/uk_UA.json b/plugins/telemetry/locales/translated/uk_UA.json index 83a0016c0..4ddbdb480 100644 --- a/plugins/telemetry/locales/translated/uk_UA.json +++ b/plugins/telemetry/locales/translated/uk_UA.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Керування статистикою використання", + "description": "Перегляньте, яка статистика використання надсилається, надішліть її зараз і скиньте ідентифікатор екземпляра." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Діліться анонімною статистикою використання", + "description": "Надсилає невеликий анонімний звіт раз на день, щоб допомогти покращити Termix. Він ніколи не містить імен користувачів, імен хостів, IP-адрес чи облікових даних." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Включити інформацію про платформу", + "description": "Операційна система, архітектура процесора, версія Node.js, тип бази даних та спосіб встановлення Termix (Docker, десктопний додаток чи сервер)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Включити використання функцій", + "description": "Скільки разів було відкрито кожен тип вкладки та скільки разів відбулося входів через SSH з моменту останнього звіту. Користувачі можуть вимкнути власну частину у своєму профілі." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Включити встановлені функції", + "description": "Які вбудовані функції встановлено та працюють." }, "instanceId": { - "label": "Instance ID" + "label": "Ідентифікатор екземпляра" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Включити використання мною функцій", + "description": "Враховує, які типи вкладок ви відкриваєте, в анонімній статистиці використання. Нічого про вас чи ваші хости не надсилається." } }, "status": { - "title": "Status", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", - "close": "Close", - "loadFailed": "Could not load the usage statistics status" + "title": "Статус", + "on": "Надання статистики використання раз на день", + "off": "Не поширюється статистика використання", + "lockedOn": "Вмикається змінною середовища ENABLE_TELEMETRY. Змініть її там.", + "lockedOff": "Вимкнено змінною середовища ENABLE_TELEMETRY. Змініть це там.", + "instanceId": "Ідентифікатор екземпляра: {{id}}", + "noInstanceId": "Ідентифікатора екземпляра ще немає", + "lastSent": "Останнє відправлення {{date}}", + "neverSent": "Ще не надіслано", + "nextSend": "Наступний звіт має бути {{date}}", + "lastError": "Остання спроба не вдалася: {{error}}", + "preview": "Попередній перегляд звіту", + "sendNow": "Надіслати зараз", + "sending": "Надсилання...", + "sent": "Надіслано статистику використання", + "notSent": "Статистику використання вимкнено, нічого не надіслано", + "resetId": "Скинути ідентифікатор екземпляра", + "resetIdConfirm": "Скинути ідентифікатор екземпляра? Майбутні звіти виглядатимуть як нова інсталяція.", + "resetIdDone": "Скидання ідентифікатора екземпляра", + "previewTitle": "Наступний звіт", + "previewDescription": "Саме це зараз і було б надіслано.", + "close": "Закрити", + "loadFailed": "Не вдалося завантажити статус статистики використання" } } diff --git a/plugins/telemetry/locales/translated/vi_VN.json b/plugins/telemetry/locales/translated/vi_VN.json index 1d195c2be..ff0c95f1a 100644 --- a/plugins/telemetry/locales/translated/vi_VN.json +++ b/plugins/telemetry/locales/translated/vi_VN.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "Quản lý số liệu thống kê sử dụng", + "description": "Hãy xem các số liệu thống kê sử dụng nào đang được gửi, gửi chúng ngay bây giờ và đặt lại ID phiên bản." } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "Chia sẻ số liệu thống kê sử dụng ẩn danh", + "description": "Gửi một bản tóm tắt ngắn gọn, ẩn danh mỗi ngày một lần để giúp cải thiện Termix. Bản tóm tắt này không bao giờ bao gồm tên người dùng, tên máy chủ, địa chỉ IP hoặc thông tin đăng nhập." }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "Bao gồm thông tin nền tảng", + "description": "Hệ điều hành, kiến trúc CPU, phiên bản Node.js, loại cơ sở dữ liệu và cách cài đặt Termix (Docker, ứng dụng máy tính để bàn hoặc máy chủ)." }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "Bao gồm việc sử dụng tính năng", + "description": "Số lần mỗi loại tab được mở và số lần đăng nhập SSH kể từ báo cáo gần nhất. Người dùng có thể tắt phần này trong hồ sơ của mình." }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "Bao gồm các tính năng đã được cài đặt", + "description": "Những tính năng tích hợp nào đã được cài đặt và đang hoạt động?" }, "instanceId": { - "label": "Instance ID" + "label": "ID phiên bản" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "Bao gồm cả việc tôi sử dụng tính năng này.", + "description": "Ứng dụng này đếm số loại tab bạn mở trong thống kê sử dụng ẩn danh. Không có thông tin nào về bạn hoặc máy chủ của bạn được gửi đi." } }, "status": { "title": "Trạng thái", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "Chia sẻ số liệu thống kê sử dụng một lần mỗi ngày", + "off": "Không chia sẻ số liệu thống kê sử dụng", + "lockedOn": "Chức năng này được bật bởi biến môi trường ENABLE_TELEMETRY. Hãy thay đổi nó ở đó.", + "lockedOff": "Chức năng này bị tắt bởi biến môi trường ENABLE_TELEMETRY. Hãy thay đổi nó ở đó.", + "instanceId": "ID phiên bản: {{id}}", + "noInstanceId": "Chưa có ID phiên bản", + "lastSent": "Lần gửi cuối cùng {{date}}", + "neverSent": "Chưa gửi", + "nextSend": "Báo cáo tiếp theo sẽ đến hạn {{date}}", + "lastError": "Lần thử cuối cùng thất bại: {{error}}", + "preview": "Báo cáo xem trước", + "sendNow": "Gửi ngay", + "sending": "Đang gửi...", + "sent": "Số liệu thống kê sử dụng đã được gửi", + "notSent": "Thống kê sử dụng đã bị tắt, không có dữ liệu nào được gửi đi.", + "resetId": "Đặt lại ID phiên bản", + "resetIdConfirm": "Đặt lại ID phiên bản? Các báo cáo trong tương lai sẽ trông giống như một bản cài đặt mới.", + "resetIdDone": "Đặt lại ID phiên bản", + "previewTitle": "Báo cáo tiếp theo", + "previewDescription": "Đây chính xác là những gì sẽ được gửi ngay bây giờ.", "close": "Đóng", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "Không thể tải trạng thái thống kê sử dụng" } } diff --git a/plugins/telemetry/locales/translated/zh_CN.json b/plugins/telemetry/locales/translated/zh_CN.json index 119f48aed..aba15aa27 100644 --- a/plugins/telemetry/locales/translated/zh_CN.json +++ b/plugins/telemetry/locales/translated/zh_CN.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "管理使用情况统计信息", + "description": "查看已发送的使用统计信息,立即发送并重置实例 ID。" } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "分享匿名使用统计数据", + "description": "每天发送一份简短的匿名摘要,以帮助改进 Termix。摘要中绝不包含用户名、主机名、IP 地址或凭据。" }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "包含平台信息", + "description": "操作系统、CPU架构、Node.js版本、数据库类型以及Termix的安装方式(Docker、桌面应用程序或服务器)。" }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "包含功能使用", + "description": "自上次报告以来,各类标签页的打开次数以及 SSH 登录次数总计是多少?用户可以在个人资料中关闭自己的相关功能。" }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "包含已安装的功能", + "description": "哪些内置功能已安装并正在运行?" }, "instanceId": { - "label": "Instance ID" + "label": "实例 ID" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "请包含我的功能使用情况", + "description": "匿名使用统计数据会统计您打开的标签页类型。不会发送任何关于您或您的主机的信息。" } }, "status": { "title": "状态", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "每天分享一次使用统计数据。", + "off": "不分享使用统计数据", + "lockedOn": "此功能由 ENABLE_TELEMETRY 环境变量启用。请修改该变量。", + "lockedOff": "此功能已通过 ENABLE_TELEMETRY 环境变量关闭。请更改该变量。", + "instanceId": "实例 ID: {{id}}", + "noInstanceId": "暂无实例 ID", + "lastSent": "最后发送 {{date}}", + "neverSent": "尚未发送", + "nextSend": "下一份报告截止日期 {{date}}", + "lastError": "最后一次尝试失败: {{error}}", + "preview": "预览报告", + "sendNow": "立即发送", + "sending": "正在发送...", + "sent": "已发送使用统计信息", + "notSent": "使用情况统计已关闭,未发送任何内容。", + "resetId": "重置实例 ID", + "resetIdConfirm": "重置实例 ID?以后的报告将显示为新安装的实例。", + "resetIdDone": "实例 ID 重置", + "previewTitle": "下一篇报告", + "previewDescription": "这正是现在会发送的内容。", "close": "关闭", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "无法加载使用情况统计状态" } } diff --git a/plugins/telemetry/locales/translated/zh_TW.json b/plugins/telemetry/locales/translated/zh_TW.json index 5be9bac99..c10f07f24 100644 --- a/plugins/telemetry/locales/translated/zh_TW.json +++ b/plugins/telemetry/locales/translated/zh_TW.json @@ -1,58 +1,58 @@ { "permissions": { "manage": { - "title": "Manage usage statistics", - "description": "See what usage statistics are sent, send them now and reset the instance ID." + "title": "管理使用情況統計信息", + "description": "查看已傳送的使用統計訊息,立即傳送並重設實例 ID。" } }, "settings": { "enabled": { - "label": "Share anonymous usage statistics", - "description": "Sends a small anonymous summary once a day to help improve Termix. It never includes usernames, hostnames, IP addresses or credentials." + "label": "分享匿名使用統計數據", + "description": "每天發送一份簡短的匿名摘要,以幫助改善 Termix。摘要中絕不包含使用者名稱、主機名稱、IP 位址或憑證。" }, "includePlatform": { - "label": "Include platform info", - "description": "The operating system, CPU architecture, Node.js version, database type and how Termix is installed (Docker, desktop app or server)." + "label": "包含平台訊息", + "description": "作業系統、CPU架構、Node.js版本、資料庫類型以及Termix的安裝方式(Docker、桌面應用程式或伺服器)。" }, "includeFeatureUsage": { - "label": "Include feature usage", - "description": "How many times each kind of tab was opened and how many SSH logins happened since the last report. Users can turn off their own part in their profile." + "label": "包含功能使用", + "description": "自上次報告以來,各類標籤頁的開啟次數以及 SSH 登入次數總計是多少?用戶可以在個人資料中關閉此功能。" }, "includePlugins": { - "label": "Include installed features", - "description": "Which built-in features are installed and running." + "label": "包含已安裝的功能", + "description": "哪些內建功能已安裝並正在運作?" }, "instanceId": { - "label": "Instance ID" + "label": "實例 ID" }, "shareFeatureUsage": { - "label": "Include my feature usage", - "description": "Counts which kinds of tabs you open in the anonymous usage statistics. Nothing about you or your hosts is sent." + "label": "請包含我的功能使用情況", + "description": "匿名使用統計資料會統計您開啟的標籤頁類型。不會發送任何關於您或您的主機的資訊。" } }, "status": { "title": "狀態", - "on": "Sharing usage statistics once a day", - "off": "Not sharing usage statistics", - "lockedOn": "Turned on by the ENABLE_TELEMETRY environment variable. Change it there.", - "lockedOff": "Turned off by the ENABLE_TELEMETRY environment variable. Change it there.", - "instanceId": "Instance ID: {{id}}", - "noInstanceId": "No instance ID yet", - "lastSent": "Last sent {{date}}", - "neverSent": "Not sent yet", - "nextSend": "Next report due {{date}}", - "lastError": "Last attempt failed: {{error}}", - "preview": "Preview report", - "sendNow": "Send now", - "sending": "Sending...", - "sent": "Usage statistics sent", - "notSent": "Usage statistics are turned off, nothing was sent", - "resetId": "Reset instance ID", - "resetIdConfirm": "Reset the instance ID? Future reports will look like a new install.", - "resetIdDone": "Instance ID reset", - "previewTitle": "Next report", - "previewDescription": "This is exactly what would be sent right now.", + "on": "每天分享一次使用統計資料。", + "off": "不分享使用統計數據", + "lockedOn": "此功能由 ENABLE_TELEMETRY 環境變數啟用。請修改該變數。", + "lockedOff": "此功能已透過 ENABLE_TELEMETRY 環境變數關閉。請更改該變數。", + "instanceId": "實例 ID: {{id}}", + "noInstanceId": "暫無執行個體 ID", + "lastSent": "最後發送 {{date}}", + "neverSent": "尚未發送", + "nextSend": "下一份報告截止日期 {{date}}", + "lastError": "最後嘗試失敗: {{error}}", + "preview": "預覽報告", + "sendNow": "立即發送", + "sending": "正在發送...", + "sent": "已發送使用統計訊息", + "notSent": "使用情況統計已關閉,未發送任何內容。", + "resetId": "重置實例 ID", + "resetIdConfirm": "重置實例 ID?以後的報告將顯示為新安裝的實例。", + "resetIdDone": "實例 ID 重置", + "previewTitle": "下一篇報告", + "previewDescription": "這正是現在會發送的內容。", "close": "關閉", - "loadFailed": "Could not load the usage statistics status" + "loadFailed": "無法載入使用情況統計狀態" } } diff --git a/plugins/termix-identity/locales/translated/bn_BD.json b/plugins/termix-identity/locales/translated/bn_BD.json index 906322bdf..10e08ca21 100644 --- a/plugins/termix-identity/locales/translated/bn_BD.json +++ b/plugins/termix-identity/locales/translated/bn_BD.json @@ -1,86 +1,86 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", + "title": "টার্মিক্স আইডি", + "loadFailed": "টার্মিক্স আইডি লোড করতে ব্যর্থ হয়েছে", + "claimTitle": "আপনার টার্মিক্স আইডি দাবি করুন", + "claimIntro": "একটি অনন্য হ্যান্ডেল বেছে নিন। আপনার SSH পাবলিক কীগুলো একটি পাবলিক URL-এ প্রকাশ করা হবে, যা আপনি যেকোনো সার্ভারের authorized_keys ফাইলে যোগ করতে পারবেন।", + "handleLabel": "হাতল", + "handlePlaceholder": "অ্যালিস", + "checking": "… পরীক্ষা করা হচ্ছে", + "available": "উপলব্ধ", + "taken": "ইতিমধ্যে নেওয়া হয়েছে", + "invalidHandle": "শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা, - এবং _", + "descriptionLabel": "বিবরণ (ঐচ্ছিক)", + "descriptionPlaceholder": "কাজের ল্যাপটপ ও ফোনের চাবি", + "create": "টার্মিক্স আইডি তৈরি করুন", + "created": "টার্মিক্স আইডি তৈরি করা হয়েছে", + "createFailed": "টার্মিক্স আইডি তৈরি করতে ব্যর্থ হয়েছে", + "deleteConfirm": "আপনার টার্মিক্স আইডি এবং সমস্ত প্রকাশিত কী মুছে ফেলবেন? আপনার প্রোভিশন করা সার্ভারগুলিতে কীগুলি থেকে যাবে যতক্ষণ না আপনি সেগুলি ম্যানুয়ালি সরিয়ে ফেলেন।", + "deleted": "টার্মিক্স আইডি মুছে ফেলা হয়েছে", + "deleteFailed": "Termix ID মুছে ফেলা সম্ভব হয়নি", + "copyFailed": "কপি ব্যর্থ হয়েছে", + "resolverUrlLabel": "পাবলিক রিজলভার ইউআরএল", + "provisionLabel": "একটি সার্ভার সরবরাহ করুন", + "publishTitle": "একটি পাবলিক কী প্রকাশ করুন", + "generate": "তৈরি করুন", + "generateTooltip": "একটি Ed25519 কী পেয়ার তৈরি করুন। এটি পাবলিক কী প্রকাশ করে এবং প্রাইভেট কী আপনার ডিভাইসে ডাউনলোড করে।", + "saveToVault": "পরিচয়পত্রে সংরক্ষণ করুন", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "labelPlaceholder": "লেবেল (ঐচ্ছিক)", + "add": "যোগ করুন", + "importFromCredential": "অথবা সংরক্ষিত পরিচয়পত্র থেকে আমদানি করুন", + "keyPublished": "মূল প্রকাশিত", + "addKeyFailed": "কী যোগ করতে ব্যর্থ হয়েছে", + "generatedSaved": "কী পেয়ার তৈরি করে আপনার ক্রেডেনশিয়ালস ভল্টে সংরক্ষণ করা হয়েছে। প্রাইভেট কী-টিও ডাউনলোড করা হয়েছে।", + "generatedOnly": "কী পেয়ার তৈরি হয়েছে। প্রাইভেট কী ডাউনলোড করা হয়েছে (শুধুমাত্র একবার দেখানো হবে)।", + "generateFailed": "কী তৈরি করতে ব্যর্থ হয়েছে", + "imported": "ক্রেডেনশিয়াল থেকে আমদানি করা কী", + "importFailed": "কী আমদানি করতে ব্যর্থ হয়েছে", + "noKeys": "এখনো কোনো পাবলিক কী প্রকাশ করা হয়নি।", + "keysTitle": "প্রকাশিত চাবিগুলি", + "published": "প্রকাশিত", + "hidden": "লুকানো", + "keyRemoved": "চাবি সরানো হয়েছে", + "removeKeyFailed": "চাবি সরাতে ব্যর্থ হয়েছে", + "updateKeyFailed": "কী আপডেট করতে ব্যর্থ হয়েছে", + "fromVault": "ক্রেডেনশিয়াল ভল্ট থেকে", + "linkedToTermixId": "টারমিক্স আইডি-এর মাধ্যমে প্রকাশিত", + "selectCredential": "একটি শংসাপত্র নির্বাচন করুন...", + "import": "আমদানি", + "caTitle": "শংসাপত্র কর্তৃপক্ষ", + "caIntro": "সার্ভারে এই CA-কে বিশ্বাস করলে, এটি আপনার স্বাক্ষরিত যেকোনো সার্টিফিকেট গ্রহণ করে। একবারে সবকিছু বাতিল করতে পর্যায়ক্রমে পরিবর্তন করুন; সার্টিফিকেটগুলো আপনাআপনি মেয়াদোত্তীর্ণও হয়ে যায়।", + "caEnable": "CA সক্ষম করুন", + "caEnabled": "CA সক্ষম", + "caCreateFailed": "CA সক্রিয় করতে ব্যর্থ হয়েছে", + "caPublicKeyLabel": "CA পাবলিক কী", + "caTrustLabel": "সার্ভারে বিশ্বাস (রুট হিসেবে চালান)", + "caRotate": "ঘোরান", + "caRotateConfirm": "CA পরিবর্তন করবেন? এর দ্বারা স্বাক্ষরিত প্রতিটি সার্টিফিকেট আর গ্রহণ করা হবে না এবং পুনরায় ইস্যু করতে হবে।", + "caRotated": "CA পরিবর্তিত হয়েছে। পূর্ববর্তী সার্টিফিকেটগুলো বাতিল করা হয়েছে।", + "caRotateFailed": "CA ঘোরানো ব্যর্থ হয়েছে", + "caDelete": "CA অপসারণ করুন", + "caDeleteConfirm": "সার্টিফিকেট কর্তৃপক্ষকে অপসারণ করবেন?", + "caDeleted": "CA অপসারণ করেছে", + "caDeleteFailed": "CA অপসারণ করতে ব্যর্থ হয়েছে", + "caValidityLabel": "সার্টিফিকেটের বৈধতা (দিন)", + "issueCert": "সার্টিফিকেট", + "issueCertTooltip": "এই কী-টির জন্য আপনার CA দ্বারা স্বাক্ষরিত একটি SSH সার্টিফিকেট ইস্যু করুন।", + "certIssued": "সার্টিফিকেট ইস্যু এবং ডাউনলোড করা হয়েছে", + "certIssueFailed": "সার্টিফিকেট ইস্যু করতে ব্যর্থ হয়েছে", + "docsLink": "নথি দেখুন", + "principalsLabel": "এসএসএইচ অধ্যক্ষরা", + "principalsPlaceholder": "SSH প্রিন্সিপাল(গুলি), যেমন রুট" }, "nav": { - "termixId": "ID" + "termixId": "আইডি" }, "credentials": { - "idBadge": "ID" + "idBadge": "আইডি" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "টার্মিক্স আইডি ব্যবহার করুন", + "description": "একটি পাবলিক হ্যান্ডেল দাবি করুন, SSH কী প্রকাশ করুন এবং একটি সার্টিফিকেট অথরিটি চালান।" } } } diff --git a/plugins/termix-identity/locales/translated/hi_IN.json b/plugins/termix-identity/locales/translated/hi_IN.json index ad6f376e2..9d8e7b76d 100644 --- a/plugins/termix-identity/locales/translated/hi_IN.json +++ b/plugins/termix-identity/locales/translated/hi_IN.json @@ -23,7 +23,7 @@ "provisionLabel": "सर्वर प्रोविज़न करें", "publishTitle": "सार्वजनिक कुंजी प्रकाशित करें", "generate": "जनरेट करें", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Ed25519 कुंजी युग्म उत्पन्न करें। यह सार्वजनिक कुंजी प्रकाशित करता है और निजी कुंजी को आपके डिवाइस पर डाउनलोड करता है।", "saveToVault": "क्रेडेंशियल में सहेजें", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "लेबल (वैकल्पिक)", @@ -32,7 +32,7 @@ "keyPublished": "कुंजी प्रकाशित", "addKeyFailed": "कुंजी जोड़ने में विफल", "generatedSaved": "कुंजी युग्म जनरेट हुआ और आपके क्रेडेंशियल वॉल्ट में सहेजा गया। निजी कुंजी भी डाउनलोड की गई।", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "कुंजी युग्म उत्पन्न हो गया। निजी कुंजी डाउनलोड हो गई (केवल एक बार दिखाई गई)।", "generateFailed": "कुंजी जनरेट करने में विफल", "imported": "क्रेडेंशियल से कुंजी आयात की गई", "importFailed": "कुंजी आयात करने में विफल", @@ -56,7 +56,7 @@ "caTrustLabel": "सर्वर पर भरोसा करें (रूट के रूप में चलाएँ)", "caRotate": "रोटेट करें", "caRotateConfirm": "CA को रोटेट करें? इसके द्वारा हस्ताक्षरित प्रत्येक प्रमाणपत्र स्वीकार करना बंद कर दिया जाएगा और उन्हें फिर से जारी करना होगा।", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "सीए का तबादला हो गया। पिछले प्रमाणपत्र रद्द कर दिए गए।", "caRotateFailed": "CA रोटेट करने में विफल", "caDelete": "CA हटाएँ", "caDeleteConfirm": "प्रमाणपत्र प्राधिकरण हटाएँ?", @@ -68,8 +68,8 @@ "certIssued": "प्रमाणपत्र जारी और डाउनलोड किया गया", "certIssueFailed": "प्रमाणपत्र जारी करने में विफल", "docsLink": "दस्तावेज़ देखें", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "एसएसएच प्रिंसिपल", + "principalsPlaceholder": "SSH प्रिंसिपल(ओं), उदाहरण के लिए रूट" }, "nav": { "termixId": "आईडी" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "टर्मिक्स आईडी का उपयोग करें", + "description": "एक सार्वजनिक हैंडल का दावा करें, एसएसएच कुंजी प्रकाशित करें और एक प्रमाणपत्र प्राधिकरण चलाएं।" } } } diff --git a/plugins/termix-identity/locales/translated/id_ID.json b/plugins/termix-identity/locales/translated/id_ID.json index 906322bdf..8d5afb422 100644 --- a/plugins/termix-identity/locales/translated/id_ID.json +++ b/plugins/termix-identity/locales/translated/id_ID.json @@ -1,86 +1,86 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", + "title": "ID Termix", + "loadFailed": "Gagal memuat ID Termix", + "claimTitle": "Klaim ID Termix Anda", + "claimIntro": "Pilih nama pengguna yang unik. Kunci publik SSH Anda akan dipublikasikan di URL publik yang dapat Anda tambahkan ke file authorized_keys server mana pun.", + "handleLabel": "Menangani", + "handlePlaceholder": "Alice", + "checking": "Memeriksa…", + "available": "Tersedia", + "taken": "Sudah diambil", + "invalidHandle": "Hanya huruf kecil, angka, - dan _", + "descriptionLabel": "Deskripsi (opsional)", + "descriptionPlaceholder": "Kunci laptop dan telepon kerja", + "create": "Buat ID Termix", + "created": "ID Termix telah dibuat", + "createFailed": "Gagal membuat ID Termix", + "deleteConfirm": "Apakah Anda menghapus ID Termix dan semua kunci yang dipublikasikan? Server yang Anda sediakan akan tetap menyimpan kunci tersebut hingga Anda menghapusnya secara manual.", + "deleted": "ID Termix dihapus", + "deleteFailed": "Gagal menghapus ID Termix", + "copyFailed": "Penyalinan gagal", + "resolverUrlLabel": "URL resolver publik", + "provisionLabel": "Menyediakan server", + "publishTitle": "Publikasikan kunci publik", + "generate": "Menghasilkan", + "generateTooltip": "Menghasilkan pasangan kunci Ed25519. Menerbitkan kunci publik dan mengunduh kunci pribadi ke perangkat Anda.", + "saveToVault": "Simpan ke Kredensial", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "labelPlaceholder": "Label (opsional)", + "add": "Menambahkan", + "importFromCredential": "Atau impor dari kredensial yang tersimpan.", + "keyPublished": "Kunci telah diterbitkan", + "addKeyFailed": "Gagal menambahkan kunci", + "generatedSaved": "Pasangan kunci telah dibuat dan disimpan ke brankas kredensial Anda. Kunci pribadi juga telah diunduh.", + "generatedOnly": "Pasangan kunci telah dibuat. Kunci pribadi telah diunduh (hanya ditampilkan sekali).", + "generateFailed": "Gagal menghasilkan kunci", + "imported": "Kunci diimpor dari kredensial", + "importFailed": "Gagal mengimpor kunci", + "noKeys": "Belum ada kunci publik yang dipublikasikan.", + "keysTitle": "Kunci yang diterbitkan", + "published": "Diterbitkan", + "hidden": "Tersembunyi", + "keyRemoved": "Kunci dilepas", + "removeKeyFailed": "Gagal melepas kunci", + "updateKeyFailed": "Gagal memperbarui kunci", + "fromVault": "Dari brankas kredensial", + "linkedToTermixId": "Diterbitkan melalui Termix ID", + "selectCredential": "Pilih kredensial...", + "import": "Impor", + "caTitle": "Lembaga sertifikasi", + "caIntro": "Percayai CA ini pada server dan CA ini akan menerima sertifikat apa pun yang Anda tandatangani. Lakukan rotasi untuk mencabut semuanya sekaligus; sertifikat juga akan kedaluwarsa dengan sendirinya.", + "caEnable": "Aktifkan CA", + "caEnabled": "CA diaktifkan", + "caCreateFailed": "Gagal mengaktifkan CA", + "caPublicKeyLabel": "Kunci publik CA", + "caTrustLabel": "Kepercayaan pada server (jalankan sebagai root)", + "caRotate": "Memutar", + "caRotateConfirm": "Apakah CA (Certificate Authority) perlu diganti? Setiap sertifikat yang telah ditandatanganinya akan berhenti diterima dan harus diterbitkan ulang.", + "caRotated": "CA dirotasi. Sertifikat sebelumnya dicabut.", + "caRotateFailed": "Gagal memutar CA", + "caDelete": "Hapus CA", + "caDeleteConfirm": "Hapus otoritas sertifikat?", + "caDeleted": "CA dihapus", + "caDeleteFailed": "Gagal menghapus CA", + "caValidityLabel": "Masa berlaku sertifikat (hari)", + "issueCert": "Sertifikat", + "issueCertTooltip": "Terbitkan sertifikat SSH untuk kunci ini, yang ditandatangani oleh CA Anda.", + "certIssued": "Sertifikat telah diterbitkan dan diunduh.", + "certIssueFailed": "Gagal menerbitkan sertifikat", + "docsLink": "Lihat dokumen", + "principalsLabel": "Kepala Sekolah SSH", + "principalsPlaceholder": "Prinsipal SSH, misalnya root" }, "nav": { - "termixId": "ID" + "termixId": "PENGENAL" }, "credentials": { - "idBadge": "ID" + "idBadge": "PENGENAL" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Gunakan ID Termix", + "description": "Klaim nama pengguna publik, publikasikan kunci SSH, dan jalankan otoritas sertifikat." } } } diff --git a/plugins/termix-identity/locales/translated/nl_NL.json b/plugins/termix-identity/locales/translated/nl_NL.json index 906322bdf..01288d105 100644 --- a/plugins/termix-identity/locales/translated/nl_NL.json +++ b/plugins/termix-identity/locales/translated/nl_NL.json @@ -1,75 +1,75 @@ { "termixId": { "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", + "loadFailed": "Het laden van de Termix-ID is mislukt.", + "claimTitle": "Vraag je Termix ID aan", + "claimIntro": "Kies een unieke gebruikersnaam. Uw openbare SSH-sleutels worden gepubliceerd op een openbare URL die u kunt toevoegen aan het authorized_keys-bestand van elke server.", + "handleLabel": "Hendel", + "handlePlaceholder": "Alice", + "checking": "Controleren…", + "available": "Beschikbaar", + "taken": "Reeds meegenomen", + "invalidHandle": "Alleen kleine letters, cijfers, - en _", + "descriptionLabel": "Beschrijving (optioneel)", + "descriptionPlaceholder": "Werklaptop en telefoonsleutels", + "create": "Maak een Termix ID aan", + "created": "Termix ID aangemaakt", + "createFailed": "Het aanmaken van een Termix ID is mislukt.", + "deleteConfirm": "Wil je je Termix ID en alle gepubliceerde sleutels verwijderen? Servers die je hebt geconfigureerd, bewaren de sleutels totdat je ze handmatig verwijdert.", + "deleted": "Termix ID verwijderd", + "deleteFailed": "Het verwijderen van de Termix-ID is mislukt.", + "copyFailed": "Kopiëren mislukt", + "resolverUrlLabel": "Openbare resolver-URL", + "provisionLabel": "Een server inrichten", + "publishTitle": "Publiceer een openbare sleutel", + "generate": "Genereren", + "generateTooltip": "Genereer een Ed25519-sleutelpaar. Publiceert de publieke sleutel en downloadt de privésleutel naar uw apparaat.", + "saveToVault": "Opslaan in inloggegevens", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "labelPlaceholder": "Label (optioneel)", + "add": "Toevoegen", + "importFromCredential": "Of importeren vanuit opgeslagen inloggegevens", + "keyPublished": "Sleutel gepubliceerd", + "addKeyFailed": "Sleutel toevoegen mislukt", + "generatedSaved": "Sleutelpaar gegenereerd en opgeslagen in uw inloggegevenskluis. Privésleutel ook gedownload.", + "generatedOnly": "Sleutelpaar gegenereerd. Privésleutel gedownload (wordt slechts één keer weergegeven).", + "generateFailed": "Sleutel genereren mislukt", + "imported": "Sleutel geïmporteerd uit inloggegevens", + "importFailed": "Het importeren van de sleutel is mislukt.", + "noKeys": "Er zijn nog geen openbare sleutels gepubliceerd.", + "keysTitle": "Gepubliceerde sleutels", + "published": "Gepubliceerd", + "hidden": "Verborgen", + "keyRemoved": "Sleutel verwijderd", + "removeKeyFailed": "Het verwijderen van de sleutel is mislukt.", + "updateKeyFailed": "Sleutel bijwerken mislukt", + "fromVault": "Vanuit de inloggegevenskluis", + "linkedToTermixId": "Gepubliceerd via Termix ID", + "selectCredential": "Selecteer een certificaat...", + "import": "Importeren", + "caTitle": "Certificeringsinstantie", + "caIntro": "Vertrouw deze certificeringsinstantie op een server en deze accepteert elk certificaat dat u ondertekent. Roteer de certificaten om ze allemaal tegelijk in te trekken; certificaten verlopen ook automatisch.", + "caEnable": "CA inschakelen", + "caEnabled": "CA ingeschakeld", + "caCreateFailed": "CA inschakelen mislukt", + "caPublicKeyLabel": "CA openbare sleutel", + "caTrustLabel": "Vertrouwen op een server (uitvoeren als root)", + "caRotate": "Draaien", + "caRotateConfirm": "Als u de certificeringsinstantie (CA) wijzigt, worden alle certificaten die door die instantie zijn ondertekend niet langer geaccepteerd en moeten ze opnieuw worden uitgegeven.", + "caRotated": "CA geroteerd. Eerdere certificaten ingetrokken.", + "caRotateFailed": "CA-rotatie mislukt", + "caDelete": "Verwijder CA", + "caDeleteConfirm": "De certificeringsinstantie verwijderen?", + "caDeleted": "CA verwijderd", + "caDeleteFailed": "Het verwijderen van CA is mislukt.", + "caValidityLabel": "Geldigheidsduur certificaat (dagen)", + "issueCert": "Certificaat", + "issueCertTooltip": "Geef een SSH-certificaat uit voor deze sleutel, ondertekend door uw certificeringsinstantie (CA).", + "certIssued": "Certificaat uitgegeven en gedownload", + "certIssueFailed": "Certificaat kon niet worden uitgegeven", + "docsLink": "Documenten bekijken", + "principalsLabel": "SSH-principes", + "principalsPlaceholder": "SSH-principal(len), bijvoorbeeld root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Gebruik Termix ID", + "description": "Claim een openbare handle, publiceer SSH-sleutels en beheer een certificeringsinstantie." } } } diff --git a/plugins/termix-identity/locales/translated/no_NO.json b/plugins/termix-identity/locales/translated/no_NO.json index 1da2e38b2..c404c6757 100644 --- a/plugins/termix-identity/locales/translated/no_NO.json +++ b/plugins/termix-identity/locales/translated/no_NO.json @@ -1,75 +1,75 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", + "title": "Termix-ID", + "loadFailed": "Kunne ikke laste inn Termix-ID", + "claimTitle": "Krev din Termix-ID", + "claimIntro": "Velg en unik brukernavn. Dine offentlige SSH-nøkler publiseres på en offentlig URL som du kan legge til i en hvilken som helst servers authorized_keys-fil.", + "handleLabel": "Håndtak", + "handlePlaceholder": "Alice", + "checking": "Sjekker…", "available": "Tilgjengelig", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", - "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", + "taken": "Allerede tatt", + "invalidHandle": "Bare små bokstaver, tall, - og _", + "descriptionLabel": "Beskrivelse (valgfritt)", + "descriptionPlaceholder": "Jobb-laptop og telefonnøkler", + "create": "Opprett Termix-ID", + "created": "Termix-ID opprettet", + "createFailed": "Kunne ikke opprette Termix-ID", + "deleteConfirm": "Vil du slette Termix-ID-en din og alle publiserte nøkler? Servere du har klargjort vil beholde nøklene til du fjerner dem manuelt.", + "deleted": "Termix-ID slettet", + "deleteFailed": "Kunne ikke slette Termix-ID", + "copyFailed": "Kopieringen mislyktes", + "resolverUrlLabel": "Offentlig resolver-URL", + "provisionLabel": "Klargjør en server", + "publishTitle": "Publiser en offentlig nøkkel", + "generate": "Generere", + "generateTooltip": "Generer et Ed25519-nøkkelpar. Publiserer den offentlige nøkkelen og laster ned den private nøkkelen til enheten din.", + "saveToVault": "Lagre til legitimasjon", + "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... bruker@vert", + "labelPlaceholder": "Etikett (valgfritt)", "add": "Legg til", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", + "importFromCredential": "Eller importer fra en lagret legitimasjon", + "keyPublished": "Nøkkel publisert", + "addKeyFailed": "Kunne ikke legge til nøkkel", + "generatedSaved": "Nøkkelpar generert og lagret i påloggingshvelvet ditt. Privatnøkkelen er også lastet ned.", + "generatedOnly": "Nøkkelpar generert. Privat nøkkel lastet ned (vises kun én gang).", + "generateFailed": "Kunne ikke generere nøkkel", + "imported": "Nøkkel importert fra legitimasjon", + "importFailed": "Kunne ikke importere nøkkelen", + "noKeys": "Ingen offentlige nøkler er publisert ennå.", + "keysTitle": "Publiserte nøkler", + "published": "Publisert", + "hidden": "Skjult", + "keyRemoved": "Nøkkelen er fjernet", + "removeKeyFailed": "Kunne ikke fjerne nøkkelen", + "updateKeyFailed": "Kunne ikke oppdatere nøkkelen", + "fromVault": "Fra legitimasjonshvelvet", + "linkedToTermixId": "Publisert via Termix-ID", + "selectCredential": "Velg en legitimasjon...", "import": "Importer", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", + "caTitle": "Sertifikatmyndighet", + "caIntro": "Stol på denne sertifikatutstederen på en server, og den godtar alle sertifikater du signerer. Roter for å tilbakekalle alt samtidig; sertifikater utløper også av seg selv.", + "caEnable": "Aktiver CA", + "caEnabled": "CA-aktivert", + "caCreateFailed": "Kunne ikke aktivere CA", + "caPublicKeyLabel": "CA offentlig nøkkel", + "caTrustLabel": "Stol på en server (kjør som root)", "caRotate": "Roter", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "caRotateConfirm": "Roter CA-en? Alle sertifikater den har signert vil slutte å bli akseptert og må utstedes på nytt.", + "caRotated": "CA rotert. Tidligere sertifikater inndratt.", + "caRotateFailed": "Kunne ikke rotere CA", + "caDelete": "Fjern CA", + "caDeleteConfirm": "Fjerne sertifikatmyndigheten?", + "caDeleted": "CA fjernet", + "caDeleteFailed": "Kunne ikke fjerne CA", + "caValidityLabel": "Sertifikatgyldighet (dager)", + "issueCert": "Sertifikat", + "issueCertTooltip": "Utsted et SSH-sertifikat for denne nøkkelen, signert av din CA", + "certIssued": "Sertifikat utstedt og nedlastet", + "certIssueFailed": "Kunne ikke utstede sertifikatet", + "docsLink": "Vis dokumenter", + "principalsLabel": "SSH-prinsipper", + "principalsPlaceholder": "SSH-prinsipp(er), f.eks. root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Bruk Termix-ID", + "description": "Gjør krav på en offentlig referanse, publiser SSH-nøkler og kjør en sertifikatmyndighet." } } } diff --git a/plugins/termix-identity/locales/translated/pl_PL.json b/plugins/termix-identity/locales/translated/pl_PL.json index adaa56afa..f70eb9a07 100644 --- a/plugins/termix-identity/locales/translated/pl_PL.json +++ b/plugins/termix-identity/locales/translated/pl_PL.json @@ -23,7 +23,7 @@ "provisionLabel": "Skonfiguruj serwer", "publishTitle": "Opublikuj klucz publiczny", "generate": "Generuj", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Wygeneruj parę kluczy Ed25519. Opublikuj klucz publiczny i pobierz klucz prywatny na swoje urządzenie.", "saveToVault": "Zapisz w poświadczeniach", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "Etykieta (opcjonalnie)", @@ -32,7 +32,7 @@ "keyPublished": "Klucz opublikowany", "addKeyFailed": "Nie udało się dodać klucza", "generatedSaved": "Wygenerowano parę kluczy i zapisano w sejfie poświadczeń. Klucz prywatny został również pobrany.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "Wygenerowano parę kluczy. Pobrano klucz prywatny (wyświetlany tylko raz).", "generateFailed": "Nie udało się wygenerować klucza", "imported": "Zaimportowano klucz z poświadczenia", "importFailed": "Nie udało się zaimportować klucza", @@ -56,7 +56,7 @@ "caTrustLabel": "Zaufanie na serwerze (uruchom jako root)", "caRotate": "Rotuj", "caRotateConfirm": "Wykonać rotację CA? Każdy podpisany przez niego certyfikat przestanie być akceptowany i trzeba go wystawić ponownie.", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "Urząd certyfikacji został zmieniony. Poprzednie certyfikaty zostały unieważnione.", "caRotateFailed": "Nie udało się wykonać rotacji CA", "caDelete": "Usuń CA", "caDeleteConfirm": "Usunąć CA?", @@ -68,8 +68,8 @@ "certIssued": "Wystawiono i pobrano certyfikat", "certIssueFailed": "Nie udało się wystawić certyfikatu", "docsLink": "Zobacz dokumentację", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "Zasady SSH", + "principalsPlaceholder": "Podmiot(y) zarządzający SSH, np. root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Użyj identyfikatora Termix", + "description": "Złóż wniosek o publiczny uchwyt, opublikuj klucze SSH i uruchom urząd certyfikacji." } } } diff --git a/plugins/termix-identity/locales/translated/pt_BR.json b/plugins/termix-identity/locales/translated/pt_BR.json index 43e134aaf..edae62684 100644 --- a/plugins/termix-identity/locales/translated/pt_BR.json +++ b/plugins/termix-identity/locales/translated/pt_BR.json @@ -1,86 +1,86 @@ { "termixId": { "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", - "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", + "loadFailed": "Falha ao carregar o ID do Termix", + "claimTitle": "Reivindique seu ID Termix", + "claimIntro": "Escolha um nome de usuário exclusivo. Suas chaves públicas SSH serão publicadas em um URL público que você pode adicionar ao arquivo authorized_keys de qualquer servidor.", + "handleLabel": "Lidar", + "handlePlaceholder": "Alice", + "checking": "Verificando…", + "available": "Disponível", + "taken": "Já tomadas", + "invalidHandle": "Somente letras minúsculas, números, hífens e sublinhados.", + "descriptionLabel": "Descrição (opcional)", + "descriptionPlaceholder": "Chaves do laptop e do celular de trabalho", + "create": "Criar ID Termix", + "created": "Termix ID criado", + "createFailed": "Falha ao criar o ID do Termix", + "deleteConfirm": "Excluir seu ID do Termix e todas as chaves publicadas? Os servidores que você provisionou manterão as chaves até que você as remova manualmente.", + "deleted": "ID do Termix excluído", + "deleteFailed": "Falha ao excluir o ID do Termix", + "copyFailed": "Falha na cópia", + "resolverUrlLabel": "URL do resolvedor público", + "provisionLabel": "Provisione um servidor", + "publishTitle": "Publicar uma chave pública", + "generate": "Gerar", + "generateTooltip": "Gera um par de chaves Ed25519. Publica a chave pública e baixa a chave privada para o seu dispositivo.", + "saveToVault": "Salvar nas credenciais", + "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... usuário@host", + "labelPlaceholder": "Rótulo (opcional)", "add": "Adicionar", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", + "importFromCredential": "Ou importe a partir de uma credencial armazenada.", + "keyPublished": "Chave publicada", + "addKeyFailed": "Falha ao adicionar a chave", + "generatedSaved": "O par de chaves foi gerado e salvo em seu cofre de credenciais. A chave privada também foi baixada.", + "generatedOnly": "Par de chaves gerado. Chave privada baixada (exibida apenas uma vez).", + "generateFailed": "Falha ao gerar a chave", + "imported": "Chave importada da credencial", + "importFailed": "Falha ao importar a chave", + "noKeys": "Nenhuma chave pública foi publicada ainda.", + "keysTitle": "Chaves publicadas", + "published": "Publicado", + "hidden": "Escondido", + "keyRemoved": "Chave removida", + "removeKeyFailed": "Falha ao remover a chave", + "updateKeyFailed": "Falha ao atualizar a chave", + "fromVault": "Do cofre de credenciais", + "linkedToTermixId": "Publicado via Termix ID", "selectCredential": "Selecione uma credencial...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", + "import": "Importar", + "caTitle": "Autoridade certificadora", + "caIntro": "Confie nesta Autoridade Certificadora (CA) em um servidor e ela aceitará qualquer certificado que você assinar. Rotacione os certificados para revogar todos de uma só vez; os certificados também expiram automaticamente.", + "caEnable": "Habilitar CA", + "caEnabled": "CA habilitado", + "caCreateFailed": "Falha ao ativar a CA", + "caPublicKeyLabel": "chave pública CA", + "caTrustLabel": "Confie em um servidor (execute como root)", + "caRotate": "Girar", + "caRotateConfirm": "Rotacionar a Autoridade Certificadora? Todos os certificados assinados por ela deixarão de ser aceitos e precisarão ser reemitidos.", + "caRotated": "Autoridade Certificadora rotacionada. Certificados anteriores revogados.", + "caRotateFailed": "Falha ao rotacionar o CA", + "caDelete": "Remover CA", + "caDeleteConfirm": "Remover a autoridade certificadora?", + "caDeleted": "CA removido", + "caDeleteFailed": "Falha ao remover a CA", + "caValidityLabel": "Validade do certificado (dias)", + "issueCert": "Certificado", + "issueCertTooltip": "Emita um certificado SSH para esta chave, assinado pela sua Autoridade Certificadora (CA).", + "certIssued": "Certificado emitido e baixado", + "certIssueFailed": "Falha na emissão do certificado", "docsLink": "Documentação", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "Princípios SSH", + "principalsPlaceholder": "Principal(is) SSH, por exemplo, root" }, "nav": { - "termixId": "ID" + "termixId": "EU IA" }, "credentials": { - "idBadge": "ID" + "idBadge": "EU IA" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Use o ID Termix", + "description": "Reivindique um nome de usuário público, publique chaves SSH e execute uma autoridade de certificação." } } } diff --git a/plugins/termix-identity/locales/translated/pt_PT.json b/plugins/termix-identity/locales/translated/pt_PT.json index 110db3189..b2dedbab9 100644 --- a/plugins/termix-identity/locales/translated/pt_PT.json +++ b/plugins/termix-identity/locales/translated/pt_PT.json @@ -23,7 +23,7 @@ "provisionLabel": "Provisionar um servidor", "publishTitle": "Publicar uma chave pública", "generate": "Gerar", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Gera um par de chaves Ed25519. Publica a chave pública e descarrega a chave privada para o seu dispositivo.", "saveToVault": "Guardar nas credenciais", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "Etiqueta (opcional)", @@ -32,7 +32,7 @@ "keyPublished": "Chave publicada", "addKeyFailed": "Falha ao adicionar chave", "generatedSaved": "Par de chaves gerado e guardado no cofre de credenciais. A chave privada também foi descarregada.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "Par de chaves gerado. Chave privada descarregada (exibida apenas uma vez).", "generateFailed": "Falha ao gerar chave", "imported": "Chave importada da credencial", "importFailed": "Falha ao importar chave", @@ -56,7 +56,7 @@ "caTrustLabel": "Confiar num servidor (executar como root)", "caRotate": "Rodar", "caRotateConfirm": "Rodar a CA? Todos os certificados que assinou deixarão de ser aceites e terão de ser reemitidos.", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "Autoridade Certificadora rotada. Certificados anteriores revogados.", "caRotateFailed": "Falha ao rodar CA", "caDelete": "Remover CA", "caDeleteConfirm": "Remover a CA?", @@ -68,8 +68,8 @@ "certIssued": "Certificado emitido e transferido", "certIssueFailed": "Falha ao emitir certificado", "docsLink": "Ver docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "Princípios SSH", + "principalsPlaceholder": "Principal(is) SSH, por exemplo, root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Utilize o ID Termix", + "description": "Reivindique um nome de utilizador público, publique chaves SSH e execute uma autoridade de certificação." } } } diff --git a/plugins/termix-identity/locales/translated/ru_RU.json b/plugins/termix-identity/locales/translated/ru_RU.json index c85d42cb5..6a37dfade 100644 --- a/plugins/termix-identity/locales/translated/ru_RU.json +++ b/plugins/termix-identity/locales/translated/ru_RU.json @@ -23,7 +23,7 @@ "provisionLabel": "Настроить сервер", "publishTitle": "Опубликовать открытый ключ", "generate": "Сгенерировать", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Сгенерируйте пару ключей Ed25519. Опубликуйте открытый ключ и загрузите закрытый ключ на ваше устройство.", "saveToVault": "Сохранить в учётные данные", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "Метка (необязательно)", @@ -32,7 +32,7 @@ "keyPublished": "Ключ опубликован", "addKeyFailed": "Не удалось добавить ключ", "generatedSaved": "Пара ключей сгенерирована и сохранена в хранилище учётных данных. Закрытый ключ также загружен.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "Пара ключей сгенерирована. Закрытый ключ загружен (отображается только один раз).", "generateFailed": "Не удалось сгенерировать ключ", "imported": "Ключ импортирован из учётных данных", "importFailed": "Не удалось импортировать ключ", @@ -56,7 +56,7 @@ "caTrustLabel": "Доверие на сервере (запустите от root)", "caRotate": "Ротировать", "caRotateConfirm": "Ротировать ЦС? Все выданные им сертификаты перестанут приниматься и потребуют перевыпуска.", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "Центр сертификации был перезапущен. Предыдущие сертификаты аннулированы.", "caRotateFailed": "Не удалось ротировать ЦС", "caDelete": "Удалить ЦС", "caDeleteConfirm": "Удалить центр сертификации?", @@ -68,8 +68,8 @@ "certIssued": "Сертификат выпущен и загружен", "certIssueFailed": "Не удалось выпустить сертификат", "docsLink": "Документация", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "Принципы SSH", + "principalsPlaceholder": "Основные пользователи SSH, например, root." }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Используйте идентификатор Termix.", + "description": "Получите публичный IP-адрес, опубликуйте SSH-ключи и запустите центр сертификации." } } } diff --git a/plugins/termix-identity/locales/translated/sr_SP.json b/plugins/termix-identity/locales/translated/sr_SP.json index 906322bdf..dc2fa11de 100644 --- a/plugins/termix-identity/locales/translated/sr_SP.json +++ b/plugins/termix-identity/locales/translated/sr_SP.json @@ -1,86 +1,86 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", - "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "title": "Термикс ИД", + "loadFailed": "Учитавање Termix ID-а није успело", + "claimTitle": "Преузмите свој Termix ID", + "claimIntro": "Изаберите јединствени идентификатор. Ваши SSH јавни кључеви биће објављени на јавној URL адреси коју можете додати у датотеку authorized_keys било ког сервера.", + "handleLabel": "Ручка", + "handlePlaceholder": "Алиса", + "checking": "Провера…", + "available": "Доступно", + "taken": "Већ је заузето", + "invalidHandle": "Само мала слова, бројеви, - и _", + "descriptionLabel": "Опис (опционо)", + "descriptionPlaceholder": "Кључеви за лаптоп и телефон за посао", + "create": "Креирај Termix ID", + "created": "Termix ID је креиран", + "createFailed": "Није успело креирање Termix ID-а", + "deleteConfirm": "Желите да обришете свој Termix ID и све објављене кључеве? Сервери које сте обезбедили ће чувати кључеве док их ручно не уклоните.", + "deleted": "ИД Termix-а је обрисан", + "deleteFailed": "Брисање Termix ID-а није успело", + "copyFailed": "Копирање није успело", + "resolverUrlLabel": "Јавни URL резолвера", + "provisionLabel": "Опремите сервер", + "publishTitle": "Објавите јавни кључ", + "generate": "Генериши", + "generateTooltip": "Генеришите пар кључева Ed25519. Објављује јавни кључ и преузима приватни кључ на ваш уређај.", + "saveToVault": "Сачувај у акредитиве", + "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... корисник@домаћин", + "labelPlaceholder": "Ознака (опционо)", + "add": "Додај", + "importFromCredential": "Или увезите из сачуваних акредитива", + "keyPublished": "Кључ објављен", + "addKeyFailed": "Додавање кључа није успело", + "generatedSaved": "Пар кључева је генерисан и сачуван у вашем трезору акредитива. Приватни кључ је такође преузет.", + "generatedOnly": "Пар кључева је генерисан. Приватни кључ је преузет (приказан само једном).", + "generateFailed": "Генерисање кључа није успело", + "imported": "Кључ увезен из акредитива", + "importFailed": "Увоз кључа није успео", + "noKeys": "Још увек нису објављени јавни кључеви.", + "keysTitle": "Објављени кључеви", + "published": "Објављено", + "hidden": "Скривено", + "keyRemoved": "Кључ уклоњен", + "removeKeyFailed": "Уклањање кључа није успело", + "updateKeyFailed": "Ажурирање кључа није успело", + "fromVault": "Из трезора акредитива", + "linkedToTermixId": "Објављено преко Termix ID-а", + "selectCredential": "Изаберите акредитив...", + "import": "Увоз", + "caTitle": "Сертификатски ауторитет", + "caIntro": "Верујте овом ЦА на серверу и он ће прихватити сваки сертификат који потпишете. Ротирајте да бисте опозвали све одједном; сертификати такође сами истичу.", + "caEnable": "Омогући CA", + "caEnabled": "ЦА омогућен", + "caCreateFailed": "Омогућавање CA није успело", + "caPublicKeyLabel": "Јавни кључ CA", + "caTrustLabel": "Поверење на серверу (покрени као root)", + "caRotate": "Ротирај", + "caRotateConfirm": "Ротирати CA? Сваки сертификат који је потписао престаће да се прихвата и мораће се поново издати.", + "caRotated": "ЦА ротиран. Претходни сертификати опозвани.", + "caRotateFailed": "Ротација CA није успела", + "caDelete": "Уклони CA", + "caDeleteConfirm": "Уклонити ауторитет за сертификате?", + "caDeleted": "ЦА је уклоњен", + "caDeleteFailed": "Уклањање CA није успело", + "caValidityLabel": "Важење сертификата (дани)", + "issueCert": "Сертификат", + "issueCertTooltip": "Издајте SSH сертификат за овај кључ, потписан од стране вашег CA", + "certIssued": "Сертификат издат и преузет", + "certIssueFailed": "Издавање сертификата није успело", + "docsLink": "Прикажи документе", + "principalsLabel": "SSH принципали", + "principalsPlaceholder": "SSH принципал(и), нпр. root" }, "nav": { - "termixId": "ID" + "termixId": "ИД" }, "credentials": { - "idBadge": "ID" + "idBadge": "ИД" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Користите Termix ID", + "description": "Преузмите јавни идентификатор, објавите SSH кључеве и покрените ауторитет за сертификате." } } } diff --git a/plugins/termix-identity/locales/translated/sv_SE.json b/plugins/termix-identity/locales/translated/sv_SE.json index 906322bdf..2dc00de4f 100644 --- a/plugins/termix-identity/locales/translated/sv_SE.json +++ b/plugins/termix-identity/locales/translated/sv_SE.json @@ -1,75 +1,75 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", - "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "title": "Termix-ID", + "loadFailed": "Misslyckades med att ladda Termix-ID", + "claimTitle": "Hämta ditt Termix-ID", + "claimIntro": "Välj ett unikt användarnamn. Dina publika SSH-nycklar kommer att publiceras på en offentlig URL som du kan lägga till i valfri servers authorized_keys-fil.", + "handleLabel": "Hantera", + "handlePlaceholder": "Alice", + "checking": "Kontrollerar…", + "available": "Tillgänglig", + "taken": "Redan upptagen", + "invalidHandle": "Endast små bokstäver, siffror, - och _", + "descriptionLabel": "Beskrivning (valfritt)", + "descriptionPlaceholder": "Arbetslaptop och telefonnycklar", + "create": "Skapa Termix-ID", + "created": "Termix-ID skapat", + "createFailed": "Misslyckades med att skapa Termix-ID", + "deleteConfirm": "Vill du ta bort ditt Termix-ID och alla publicerade nycklar? Servrar som du har etablerat kommer att behålla nycklarna tills du tar bort dem manuellt.", + "deleted": "Termix-ID raderat", + "deleteFailed": "Misslyckades med att ta bort Termix-ID", + "copyFailed": "Kopieringen misslyckades", + "resolverUrlLabel": "Offentlig resolver-URL", + "provisionLabel": "Provisionera en server", + "publishTitle": "Publicera en offentlig nyckel", + "generate": "Generera", + "generateTooltip": "Generera ett Ed25519-nyckelpar. Publicerar den offentliga nyckeln och laddar ner den privata nyckeln till din enhet.", + "saveToVault": "Spara till autentiseringsuppgifter", + "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... användare@värd", + "labelPlaceholder": "Etikett (valfritt)", + "add": "Tillägga", + "importFromCredential": "Eller importera från en lagrad autentiseringsuppgift", + "keyPublished": "Nyckel publicerad", + "addKeyFailed": "Misslyckades med att lägga till nyckel", + "generatedSaved": "Nyckelpar genererat och sparat i ditt inloggningsvalv. Privat nyckel laddades också ner.", + "generatedOnly": "Nyckelpar genererat. Privat nyckel nedladdad (visas endast en gång).", + "generateFailed": "Misslyckades med att generera nyckeln", + "imported": "Nyckel importerad från autentiseringsuppgifter", + "importFailed": "Misslyckades med att importera nyckeln", + "noKeys": "Inga publika nycklar publicerade än.", + "keysTitle": "Publicerade nycklar", + "published": "Publicerad", + "hidden": "Dold", + "keyRemoved": "Nyckel borttagen", + "removeKeyFailed": "Misslyckades med att ta bort nyckeln", + "updateKeyFailed": "Misslyckades med att uppdatera nyckeln", + "fromVault": "Från inloggningsvalvet", + "linkedToTermixId": "Publicerad via Termix-ID", + "selectCredential": "Välj en behörighetsinloggning...", + "import": "Importera", + "caTitle": "Certifikatutfärdare", + "caIntro": "Lita på denna certifikatutfärdare på en server så accepterar den alla certifikat du signerar. Rotera för att återkalla allt på en gång; certifikat upphör också att gälla av sig själva.", + "caEnable": "Aktivera CA", + "caEnabled": "CA-aktiverad", + "caCreateFailed": "Misslyckades med att aktivera CA", + "caPublicKeyLabel": "CA:s offentliga nyckel", + "caTrustLabel": "Lita på en server (kör som root)", + "caRotate": "Rotera", + "caRotateConfirm": "Rotera CA:n? Alla certifikat som den har signerat kommer att sluta accepteras och måste utfärdas på nytt.", + "caRotated": "CA roterad. Tidigare certifikat återkallade.", + "caRotateFailed": "Misslyckades med att rotera CA", + "caDelete": "Ta bort certifikatutfärdare", + "caDeleteConfirm": "Ta bort certifikatutfärdaren?", + "caDeleted": "CA borttagen", + "caDeleteFailed": "Misslyckades med att ta bort certifikatutfärdaren", + "caValidityLabel": "Certifikatets giltighetstid (dagar)", + "issueCert": "Certifikat", + "issueCertTooltip": "Utfärda ett SSH-certifikat för den här nyckeln, signerat av din CA", + "certIssued": "Certifikat utfärdat och nedladdat", + "certIssueFailed": "Misslyckades med att utfärda certifikat", + "docsLink": "Visa dokument", + "principalsLabel": "SSH-principer", + "principalsPlaceholder": "SSH-principal(er), t.ex. root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Använd Termix-ID", + "description": "Gör anspråk på ett offentligt referensnamn, publicera SSH-nycklar och kör en certifikatutfärdare." } } } diff --git a/plugins/termix-identity/locales/translated/th_TH.json b/plugins/termix-identity/locales/translated/th_TH.json index 906322bdf..a91af01de 100644 --- a/plugins/termix-identity/locales/translated/th_TH.json +++ b/plugins/termix-identity/locales/translated/th_TH.json @@ -1,86 +1,86 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", + "title": "เทอร์มิกซ์ ไอดี", + "loadFailed": "ไม่สามารถโหลด Termix ID ได้", + "claimTitle": "รับรหัส Termix ของคุณ", + "claimIntro": "เลือกชื่อผู้ใช้ที่ไม่ซ้ำกัน คีย์สาธารณะ SSH ของคุณจะถูกเผยแพร่ที่ URL สาธารณะที่คุณสามารถเพิ่มลงในไฟล์ authorized_keys ของเซิร์ฟเวอร์ใดก็ได้", + "handleLabel": "รับมือ", + "handlePlaceholder": "อลิซ", + "checking": "กำลังตรวจสอบ…", + "available": "มีอยู่", + "taken": "เอาไปแล้ว", + "invalidHandle": "ใช้เฉพาะตัวอักษรพิมพ์เล็ก ตัวเลข และเครื่องหมายขีดกลาง (-) เท่านั้น", + "descriptionLabel": "คำอธิบาย (ไม่บังคับ)", + "descriptionPlaceholder": "ปุ่มสำหรับแล็ปท็อปและโทรศัพท์ที่ใช้ในการทำงาน", + "create": "สร้าง Termix ID", + "created": "สร้าง Termix ID แล้ว", + "createFailed": "ไม่สามารถสร้าง Termix ID ได้", + "deleteConfirm": "ลบ Termix ID และคีย์ที่เผยแพร่ทั้งหมดของคุณแล้วหรือยัง? เซิร์ฟเวอร์ที่คุณตั้งค่าไว้จะเก็บคีย์เหล่านั้นไว้จนกว่าคุณจะลบออกด้วยตนเอง", + "deleted": "รหัส Termix ถูกลบแล้ว", + "deleteFailed": "ไม่สามารถลบ Termix ID ได้", + "copyFailed": "การคัดลอกล้มเหลว", + "resolverUrlLabel": "URL ตัวแก้ไขสาธารณะ", + "provisionLabel": "จัดเตรียมเซิร์ฟเวอร์", + "publishTitle": "เผยแพร่คีย์สาธารณะ", + "generate": "สร้าง", + "generateTooltip": "สร้างคู่คีย์ Ed25519 เผยแพร่คีย์สาธารณะและดาวน์โหลดคีย์ส่วนตัวไปยังอุปกรณ์ของคุณ", + "saveToVault": "บันทึกไปยังข้อมูลรับรอง", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "labelPlaceholder": "ป้ายกำกับ (ไม่บังคับ)", + "add": "เพิ่ม", + "importFromCredential": "หรือนำเข้าจากข้อมูลรับรองที่บันทึกไว้", + "keyPublished": "คีย์ที่เผยแพร่", + "addKeyFailed": "ไม่สามารถเพิ่มคีย์ได้", + "generatedSaved": "สร้างและบันทึกคู่คีย์ลงในคลังข้อมูลประจำตัวของคุณเรียบร้อยแล้ว คีย์ส่วนตัวก็ถูกดาวน์โหลดด้วยเช่นกัน", + "generatedOnly": "สร้างคู่คีย์แล้ว ดาวน์โหลดคีย์ส่วนตัวแล้ว (แสดงเพียงครั้งเดียว)", + "generateFailed": "ไม่สามารถสร้างคีย์ได้", + "imported": "คีย์ที่นำเข้าจากข้อมูลประจำตัว", + "importFailed": "ไม่สามารถนำเข้าคีย์ได้", + "noKeys": "ยังไม่มีการเผยแพร่คีย์สาธารณะใดๆ", + "keysTitle": "คีย์ที่เผยแพร่", + "published": "ที่ตีพิมพ์", + "hidden": "ที่ซ่อนอยู่", + "keyRemoved": "กุญแจถูกถอดออก", + "removeKeyFailed": "ไม่สามารถถอดกุญแจได้", + "updateKeyFailed": "ไม่สามารถอัปเดตคีย์ได้", + "fromVault": "จากคลังข้อมูลประจำตัว", + "linkedToTermixId": "เผยแพร่ผ่าน Termix ID", + "selectCredential": "เลือกข้อมูลประจำตัว...", + "import": "นำเข้า", + "caTitle": "หน่วยงานออกใบรับรอง", + "caIntro": "เชื่อถือ CA นี้บนเซิร์ฟเวอร์ และมันจะยอมรับใบรับรองใดๆ ก็ตามที่คุณลงนาม หมุนเวียนใบรับรองเพื่อยกเลิกทุกอย่างพร้อมกัน ใบรับรองจะหมดอายุเองโดยอัตโนมัติ", + "caEnable": "เปิดใช้งาน CA", + "caEnabled": "CA เปิดใช้งานแล้ว", + "caCreateFailed": "ไม่สามารถเปิดใช้งาน CA ได้", + "caPublicKeyLabel": "คีย์สาธารณะ CA", + "caTrustLabel": "เชื่อถือเซิร์ฟเวอร์ (เรียกใช้ในฐานะ root)", + "caRotate": "หมุน", + "caRotateConfirm": "หมุนเวียน CA? ใบรับรองทั้งหมดที่ CA นั้นได้ลงนามไปแล้วจะไม่ได้รับการยอมรับอีกต่อไป และจะต้องออกใหม่", + "caRotated": "หน่วยงานออกใบรับรองได้หมุนเวียนแล้ว ใบรับรองเดิมถูกเพิกถอน", + "caRotateFailed": "ไม่สามารถหมุน CA ได้", + "caDelete": "ลบ CA", + "caDeleteConfirm": "ลบหน่วยงานออกใบรับรองหรือไม่?", + "caDeleted": "CA ถูกลบออก", + "caDeleteFailed": "ไม่สามารถลบ CA ได้", + "caValidityLabel": "ระยะเวลาที่ใบรับรองมีผลบังคับใช้ (วัน)", + "issueCert": "ใบรับรอง", + "issueCertTooltip": "ออกใบรับรอง SSH สำหรับคีย์นี้ โดยให้หน่วยงานออกใบรับรอง (CA) ของคุณเป็นผู้ลงนาม", + "certIssued": "ออกและดาวน์โหลดใบรับรองแล้ว", + "certIssueFailed": "ไม่สามารถออกใบรับรองได้", + "docsLink": "ดูเอกสาร", + "principalsLabel": "หลักการของ SSH", + "principalsPlaceholder": "สิทธิ์การเข้าถึง SSH (เช่น root)" }, "nav": { - "termixId": "ID" + "termixId": "รหัสประจำตัว" }, "credentials": { - "idBadge": "ID" + "idBadge": "รหัสประจำตัว" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "ใช้ Termix ID", + "description": "ขอรับชื่อผู้ใช้สาธารณะ เผยแพร่คีย์ SSH และเรียกใช้หน่วยงานออกใบรับรอง" } } } diff --git a/plugins/termix-identity/locales/translated/tr_TR.json b/plugins/termix-identity/locales/translated/tr_TR.json index 91e9752d5..120a8b9ea 100644 --- a/plugins/termix-identity/locales/translated/tr_TR.json +++ b/plugins/termix-identity/locales/translated/tr_TR.json @@ -23,7 +23,7 @@ "provisionLabel": "Sunucu hazırla", "publishTitle": "Genel anahtar yayımla", "generate": "Oluştur", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Ed25519 anahtar çifti oluşturun. Genel anahtarı yayınlayın ve özel anahtarı cihazınıza indirin.", "saveToVault": "Kimlik Bilgilerine Kaydet", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "Etiket (isteğe bağlı)", @@ -32,7 +32,7 @@ "keyPublished": "Anahtar yayımlandı", "addKeyFailed": "Anahtar eklenemedi", "generatedSaved": "Anahtar çifti oluşturuldu ve kimlik bilgileri kasanıza kaydedildi. Özel anahtar da indirildi.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "Anahtar çifti oluşturuldu. Özel anahtar indirildi (yalnızca bir kez gösterilir).", "generateFailed": "Anahtar oluşturulamadı", "imported": "Anahtar kimlik bilgisinden içe aktarıldı", "importFailed": "Anahtar içe aktarılamadı", @@ -56,7 +56,7 @@ "caTrustLabel": "Sunucuda güven (root olarak çalıştırın)", "caRotate": "Döndür", "caRotateConfirm": "CA'yı döndürmek istediğinize emin misiniz? İmzaladığı tüm sertifikalar kabul edilmeyecek ve yeniden düzenlenmeleri gerekecek.", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "CA görevinden alındı. Önceki sertifikalar iptal edildi.", "caRotateFailed": "CA döndürülemedi", "caDelete": "CA'yı kaldır", "caDeleteConfirm": "Sertifika yetkilisi kaldırılsın mı?", @@ -68,8 +68,8 @@ "certIssued": "Sertifika düzenlendi ve indirildi", "certIssueFailed": "Sertifika düzenlenemedi", "docsLink": "Belgelere bak", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "SSH prensipleri", + "principalsPlaceholder": "SSH sorumlusu(ları), örneğin root" }, "nav": { "termixId": "Kimlik" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Termix ID'nizi kullanın.", + "description": "Herkese açık bir kullanıcı adı alın, SSH anahtarlarını yayınlayın ve bir sertifika yetkilisi çalıştırın." } } } diff --git a/plugins/termix-identity/locales/translated/uk_UA.json b/plugins/termix-identity/locales/translated/uk_UA.json index 906322bdf..2051085a0 100644 --- a/plugins/termix-identity/locales/translated/uk_UA.json +++ b/plugins/termix-identity/locales/translated/uk_UA.json @@ -1,86 +1,86 @@ { "termixId": { - "title": "Termix ID", - "loadFailed": "Failed to load Termix ID", - "claimTitle": "Claim your Termix ID", - "claimIntro": "Pick a unique handle. Your SSH public keys will be published at a public URL you can add to any server's authorized_keys file.", - "handleLabel": "Handle", - "handlePlaceholder": "alice", - "checking": "Checking…", - "available": "Available", - "taken": "Already taken", - "invalidHandle": "Lowercase letters, numbers, - and _ only", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "Work laptop & phone keys", - "create": "Create Termix ID", - "created": "Termix ID created", - "createFailed": "Failed to create Termix ID", - "deleteConfirm": "Delete your Termix ID and all published keys? Servers you provisioned will keep the keys until you remove them manually.", - "deleted": "Termix ID deleted", - "deleteFailed": "Failed to delete Termix ID", - "copyFailed": "Copy failed", - "resolverUrlLabel": "Public resolver URL", - "provisionLabel": "Provision a server", - "publishTitle": "Publish a public key", - "generate": "Generate", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", - "saveToVault": "Save To Credentials", - "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", - "labelPlaceholder": "Label (optional)", - "add": "Add", - "importFromCredential": "Or import from a stored credential", - "keyPublished": "Key published", - "addKeyFailed": "Failed to add key", - "generatedSaved": "Key pair generated and saved to your credentials vault. Private key also downloaded.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", - "generateFailed": "Failed to generate key", - "imported": "Key imported from credential", - "importFailed": "Failed to import key", - "noKeys": "No public keys published yet.", - "keysTitle": "Published keys", - "published": "Published", - "hidden": "Hidden", - "keyRemoved": "Key removed", - "removeKeyFailed": "Failed to remove key", - "updateKeyFailed": "Failed to update key", - "fromVault": "From credentials vault", - "linkedToTermixId": "Published via Termix ID", - "selectCredential": "Select a credential...", - "import": "Import", - "caTitle": "Certificate authority", - "caIntro": "Trust this CA on a server and it accepts any certificate you sign. Rotate to revoke everything at once; certificates also expire on their own.", - "caEnable": "Enable CA", - "caEnabled": "CA enabled", - "caCreateFailed": "Failed to enable CA", - "caPublicKeyLabel": "CA public key", - "caTrustLabel": "Trust on a server (run as root)", - "caRotate": "Rotate", - "caRotateConfirm": "Rotate the CA? Every certificate it has signed will stop being accepted and must be re-issued.", - "caRotated": "CA rotated. Previous certificates revoked.", - "caRotateFailed": "Failed to rotate CA", - "caDelete": "Remove CA", - "caDeleteConfirm": "Remove the certificate authority?", - "caDeleted": "CA removed", - "caDeleteFailed": "Failed to remove CA", - "caValidityLabel": "Cert validity (days)", - "issueCert": "Certificate", - "issueCertTooltip": "Issue an SSH certificate for this key, signed by your CA", - "certIssued": "Certificate issued and downloaded", - "certIssueFailed": "Failed to issue certificate", - "docsLink": "View docs", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "title": "Ідентифікатор Termix", + "loadFailed": "Не вдалося завантажити ідентифікатор Termix", + "claimTitle": "Отримайте свій ідентифікатор Termix", + "claimIntro": "Виберіть унікальний дескриптор. Ваші публічні ключі SSH будуть опубліковані за публічною URL-адресою, яку можна додати до файлу authorized_keys будь-якого сервера.", + "handleLabel": "Ручка", + "handlePlaceholder": "Аліса", + "checking": "Перевірка…", + "available": "Доступно", + "taken": "Вже зайнято", + "invalidHandle": "Тільки малі літери, цифри, - та _", + "descriptionLabel": "Опис (необов'язково)", + "descriptionPlaceholder": "Клавіші для робочого ноутбука та телефону", + "create": "Створити ідентифікатор Termix", + "created": "Ідентифікатор Termix створено", + "createFailed": "Не вдалося створити ідентифікатор Termix", + "deleteConfirm": "Видалити свій Termix ID та всі опубліковані ключі? Сервери, які ви налаштували, зберігатимуть ключі, доки ви не видалите їх вручну.", + "deleted": "Ідентифікатор Termix видалено", + "deleteFailed": "Не вдалося видалити ідентифікатор Termix", + "copyFailed": "Не вдалося скопіювати", + "resolverUrlLabel": "URL-адреса публічного резолвера", + "provisionLabel": "Підготовка сервера", + "publishTitle": "Опублікувати відкритий ключ", + "generate": "Згенерувати", + "generateTooltip": "Згенерувати пару ключів Ed25519. Публікує відкритий ключ і завантажує закритий ключ на ваш пристрій.", + "saveToVault": "Зберегти в облікові дані", + "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... користувач@хост", + "labelPlaceholder": "Мітка (необов'язково)", + "add": "Додати", + "importFromCredential": "Або імпортувати зі збережених облікових даних", + "keyPublished": "Ключ опубліковано", + "addKeyFailed": "Не вдалося додати ключ", + "generatedSaved": "Пару ключів згенеровано та збережено у вашому сховищі облікових даних. Також завантажено закритий ключ.", + "generatedOnly": "Пара ключів згенерована. Закритий ключ завантажено (відображається лише один раз).", + "generateFailed": "Не вдалося згенерувати ключ", + "imported": "Ключ імпортовано з облікових даних", + "importFailed": "Не вдалося імпортувати ключ", + "noKeys": "Відкриті ключі ще не опубліковані.", + "keysTitle": "Опубліковані ключі", + "published": "Опубліковано", + "hidden": "Прихований", + "keyRemoved": "Ключ вилучено", + "removeKeyFailed": "Не вдалося видалити ключ", + "updateKeyFailed": "Не вдалося оновити ключ", + "fromVault": "Зі сховища облікових даних", + "linkedToTermixId": "Опубліковано через Termix ID", + "selectCredential": "Виберіть облікові дані...", + "import": "Імпорт", + "caTitle": "Центр сертифікації", + "caIntro": "Довіртеся цьому ЦС на сервері, і він прийматиме будь-який підписаний вами сертифікат. Зробіть поворот, щоб скасувати все одразу; сертифікати також закінчуються самостійно.", + "caEnable": "Увімкнути ЦС", + "caEnabled": "ЦС увімкнено", + "caCreateFailed": "Не вдалося ввімкнути CA", + "caPublicKeyLabel": "Відкритий ключ CA", + "caTrustLabel": "Довіра на сервері (запуск від імені root)", + "caRotate": "Повернути", + "caRotateConfirm": "Ротувати ЦС? Кожен підписаний ним сертифікат більше не прийматиметься та має бути виданий повторно.", + "caRotated": "ЦС замінено. Попередні сертифікати анульовано.", + "caRotateFailed": "Не вдалося повернути CA", + "caDelete": "Видалити ЦС", + "caDeleteConfirm": "Видалити центр сертифікації?", + "caDeleted": "CA видалено", + "caDeleteFailed": "Не вдалося видалити CA", + "caValidityLabel": "Термін дії сертифіката (дні)", + "issueCert": "Сертифікат", + "issueCertTooltip": "Видайте SSH-сертифікат для цього ключа, підписаний вашим ЦС", + "certIssued": "Сертифікат видано та завантажено", + "certIssueFailed": "Не вдалося видати сертифікат", + "docsLink": "Переглянути документи", + "principalsLabel": "Принципи SSH", + "principalsPlaceholder": "SSH-принципал(и), наприклад, root" }, "nav": { - "termixId": "ID" + "termixId": "Ідентифікатор" }, "credentials": { - "idBadge": "ID" + "idBadge": "Ідентифікатор" }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Використовувати ідентифікатор Termix", + "description": "Отримайте публічний дескриптор, опублікуйте SSH-ключі та запустіть центр сертифікації." } } } diff --git a/plugins/termix-identity/locales/translated/vi_VN.json b/plugins/termix-identity/locales/translated/vi_VN.json index 771b6ff96..5533176a1 100644 --- a/plugins/termix-identity/locales/translated/vi_VN.json +++ b/plugins/termix-identity/locales/translated/vi_VN.json @@ -23,7 +23,7 @@ "provisionLabel": "Cung cấp máy chủ", "publishTitle": "Công bố khóa công khai", "generate": "Tạo", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "Tạo một cặp khóa Ed25519. Công bố khóa công khai và tải khóa riêng tư xuống thiết bị của bạn.", "saveToVault": "Lưu vào Kho thông tin", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "Nhãn (tùy chọn)", @@ -32,7 +32,7 @@ "keyPublished": "Đã công bố khóa", "addKeyFailed": "Thêm khóa thất bại", "generatedSaved": "Đã tạo cặp khóa và lưu vào kho thông tin đăng nhập của bạn. Khóa riêng cũng đã được tải xuống.", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "Cặp khóa đã được tạo. Khóa riêng tư đã được tải xuống (chỉ hiển thị một lần).", "generateFailed": "Tạo khóa thất bại", "imported": "Đã nhập khóa từ thông tin đăng nhập", "importFailed": "Nhập khóa thất bại", @@ -56,7 +56,7 @@ "caTrustLabel": "Tin cậy trên máy chủ (chạy với quyền root)", "caRotate": "Xoay", "caRotateConfirm": "Xoay CA? Mọi chứng chỉ do CA này ký sẽ không còn được chấp nhận và phải được cấp lại.", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "CA đã được xoay vòng. Các chứng chỉ trước đó đã bị thu hồi.", "caRotateFailed": "Xoay CA thất bại", "caDelete": "Gỡ bỏ CA", "caDeleteConfirm": "Gỡ bỏ cơ quan chứng thực?", @@ -68,8 +68,8 @@ "certIssued": "Chứng chỉ đã được cấp và tải xuống", "certIssueFailed": "Cấp chứng chỉ thất bại", "docsLink": "Xem tài liệu", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "Nguyên tắc SSH", + "principalsPlaceholder": "Người dùng SSH chính, ví dụ như root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "Sử dụng Termix ID", + "description": "Đăng ký một tên người dùng công khai, công bố khóa SSH và vận hành một cơ quan cấp chứng chỉ." } } } diff --git a/plugins/termix-identity/locales/translated/zh_CN.json b/plugins/termix-identity/locales/translated/zh_CN.json index ef7dd1b0e..17caef1d3 100644 --- a/plugins/termix-identity/locales/translated/zh_CN.json +++ b/plugins/termix-identity/locales/translated/zh_CN.json @@ -23,7 +23,7 @@ "provisionLabel": "配置服务器", "publishTitle": "发布公钥", "generate": "生成", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "生成 Ed25519 密钥对。发布公钥并将私钥下载到您的设备。", "saveToVault": "保存到凭据", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "标签(可选)", @@ -32,7 +32,7 @@ "keyPublished": "密钥已发布", "addKeyFailed": "添加密钥失败", "generatedSaved": "密钥对已生成并保存到您的凭据库。私钥也已下载。", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "密钥对已生成。私钥已下载(仅显示一次)。", "generateFailed": "密钥生成失败", "imported": "密钥已从凭据导入", "importFailed": "导入密钥失败", @@ -56,7 +56,7 @@ "caTrustLabel": "在服务器上信任(以 root 身份运行)", "caRotate": "轮换", "caRotateConfirm": "轮换 CA?其已签名的所有证书将停止被接受,必须重新签发。", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "CA已轮换。之前的证书已被吊销。", "caRotateFailed": "轮换 CA 失败", "caDelete": "移除 CA", "caDeleteConfirm": "移除证书颁发机构?", @@ -68,8 +68,8 @@ "certIssued": "证书已签发并下载", "certIssueFailed": "签发证书失败", "docsLink": "查看文档", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "SSH主体", + "principalsPlaceholder": "SSH主体,例如root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "使用 Termix ID", + "description": "申请一个公共句柄,发布 SSH 密钥并运行证书颁发机构。" } } } diff --git a/plugins/termix-identity/locales/translated/zh_TW.json b/plugins/termix-identity/locales/translated/zh_TW.json index 998ca1760..95a674008 100644 --- a/plugins/termix-identity/locales/translated/zh_TW.json +++ b/plugins/termix-identity/locales/translated/zh_TW.json @@ -23,7 +23,7 @@ "provisionLabel": "佈建伺服器", "publishTitle": "發佈公開金鑰", "generate": "產生", - "generateTooltip": "Generate an Ed25519 key pair. Publishes the public key and downloads the private key to your device.", + "generateTooltip": "產生 Ed25519 金鑰對。發佈公鑰並將私鑰下載到您的裝置。", "saveToVault": "儲存至憑證庫", "keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... user@host", "labelPlaceholder": "標籤(選填)", @@ -32,7 +32,7 @@ "keyPublished": "金鑰已發佈", "addKeyFailed": "無法新增金鑰", "generatedSaved": "金鑰對已產生並儲存至您的憑證庫。私密金鑰也已下載。", - "generatedOnly": "Key pair generated. Private key downloaded (shown only once).", + "generatedOnly": "密鑰對已產生。私鑰已下載(僅顯示一次)。", "generateFailed": "無法產生金鑰", "imported": "已從憑證匯入金鑰", "importFailed": "匯入金鑰失敗", @@ -56,7 +56,7 @@ "caTrustLabel": "在伺服器上信任(以 root 執行)", "caRotate": "輪替", "caRotateConfirm": "輪替 CA?所有由其簽署的憑證將不再被接受,必須重新簽發。", - "caRotated": "CA rotated. Previous certificates revoked.", + "caRotated": "CA已輪調。之前的證書已被吊銷。", "caRotateFailed": "輪替 CA 失敗", "caDelete": "移除 CA", "caDeleteConfirm": "移除憑證授權中心?", @@ -68,8 +68,8 @@ "certIssued": "憑證已簽發並下載", "certIssueFailed": "簽發憑證失敗", "docsLink": "檢視文件", - "principalsLabel": "SSH principals", - "principalsPlaceholder": "SSH principal(s), e.g. root" + "principalsLabel": "SSH主體", + "principalsPlaceholder": "SSH主體,例如root" }, "nav": { "termixId": "ID" @@ -79,8 +79,8 @@ }, "permissions": { "use": { - "title": "Use Termix ID", - "description": "Claim a public handle, publish SSH keys and run a certificate authority." + "title": "使用 Termix ID", + "description": "申請一個公開句柄,發布 SSH 金鑰並執行憑證授權單位。" } } } diff --git a/plugins/tmux-monitor/locales/translated/bn_BD.json b/plugins/tmux-monitor/locales/translated/bn_BD.json index 2f7f1b2dc..c1909c82f 100644 --- a/plugins/tmux-monitor/locales/translated/bn_BD.json +++ b/plugins/tmux-monitor/locales/translated/bn_BD.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Tmux মনিটর সক্রিয় করুন", + "enableTmuxMonitorDesc": "এই হোস্টটিকে Tmux মনিটরে দেখান এবং এর tmux অ্যাকশনগুলো সাইডবারে যোগ করুন।", + "tabTmuxMonitor": "Tmux মনিটর", + "docsLink": "নথি দেখুন" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Tmux মনিটর" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Tmux মনিটর", + "tmuxMonitorDesc": "আপনার হোস্ট জুড়ে tmux সেশনগুলি নিরীক্ষণ করুন" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Tmux মনিটর ব্যবহার করুন", + "description": "যেসব হোস্টে মনিটর সক্রিয় আছে, সেগুলোতে tmux সেশন, উইন্ডো এবং প্যান ব্রাউজ ও নিয়ন্ত্রণ করুন।" } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Tmux মনিটর সক্রিয় করুন", + "description": "এই হোস্টে চলমান tmux সেশনগুলো পর্যবেক্ষণ করুন এবং সেগুলোতে সংযুক্ত হন।" }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "tmux মাউস সমর্থন সক্রিয় করুন", + "description": "সেশন সংযুক্ত বা তৈরি করার সময় tmux সেশনে মাউস সাপোর্ট প্রয়োগ করুন। অন্যান্য সেশন এবং গ্লোবাল tmux সেটিংস অপরিবর্তিত থাকবে।" } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "title": "Tmux মনিটর", + "failedToLoadHosts": "হোস্ট লোড করতে ব্যর্থ হয়েছে", + "failedToLoad": "tmux সেশন লোড করতে ব্যর্থ হয়েছে", + "tmuxUnavailable": "এই হোস্টে tmux ইনস্টল করা নেই", + "noSessions": "এই হোস্টে কোনো tmux সেশন নেই", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "attached": "সংযুক্ত", + "detached": "বিচ্ছিন্ন", + "attach": "সংযুক্ত করুন", + "editTags": "ট্যাগ সম্পাদনা করুন", + "tagsHint": "কমা দ্বারা পৃথক করা ট্যাগ (যেমন YOLO, lab, training)", + "tagsSaved": "ট্যাগগুলি সংরক্ষিত হয়েছে", + "tagsSaveFailed": "ট্যাগ সংরক্ষণ করতে ব্যর্থ হয়েছে", + "searchPlaceholder": "বিভিন্ন সেশন জুড়ে অনুসন্ধানের ফলাফল...", + "searchResults": "{{count}} মিল", + "searchFailed": "অনুসন্ধান ব্যর্থ হয়েছে", + "selectPaneHint": "এর আউটপুট প্রিভিউ করতে একটি প্যান নির্বাচন করুন।", + "closePreview": "ক্লোজ প্রিভিউ", + "newSession": "নতুন অধিবেশন", + "newSessionHint": "সেশনের নাম (অক্ষর, সংখ্যা, _ @ % + = -)", + "newSessionPlaceholder": "আমার-সেশন", + "create": "তৈরি করুন", + "sessionCreated": "সেশন \"{{name}}\" তৈরি করা হয়েছে", + "sessionCreateFailed": "সেশন তৈরি করতে ব্যর্থ হয়েছে", + "splitRight": "ডানদিকে বিভক্ত", + "splitDown": "বিভক্ত করুন", + "splitFailed": "প্যান বিভক্ত করতে ব্যর্থ হয়েছে", + "newWindow": "নতুন জানালা", + "windowCreateFailed": "উইন্ডো তৈরি করতে ব্যর্থ হয়েছে", + "attachSessionTooltip": "{{session}} এর সাথে সংযুক্ত করুন", + "refresh": "রিফ্রেশ", + "refreshFailed": "সেশনগুলি রিফ্রেশ করতে ব্যর্থ হয়েছে", + "collapseAll": "সবগুলো সংকুচিত করুন", + "expandAll": "সবগুলো প্রসারিত করুন", + "moreActions": "আরও পদক্ষেপ", + "sessionStats": "সেশন পরিসংখ্যান", + "renameSessionTitle": "সেশনটির নাম পরিবর্তন করুন \"{{name}}\"", + "rename": "নাম পরিবর্তন", + "sessionRenamed": "সেশনের নাম পরিবর্তন করে \"{{name}} \" রাখা হয়েছে", + "sessionRenameFailed": "সেশনের নাম পরিবর্তন করতে ব্যর্থ হয়েছে", + "editTagsTitle": "\"{{name}} \" এর জন্য ট্যাগ সম্পাদনা করুন", + "killPane": "কিল প্যান", + "resizeTree": "আকার পরিবর্তন করতে টেনে আনুন, রিসেট করতে ডাবল-ক্লিক করুন।", + "reattach": "পুনরায় সংযুক্ত করুন (বিকৃত দৃশ্য ঠিক করে)", + "killWindow": "কিল উইন্ডো", + "killWindowTitle": "\"{{session}} \" উইন্ডোটি {{index}} বন্ধ করুন?", + "killWindowBody": "এই উইন্ডোর প্রতিটি প্যান এবং প্রসেস বন্ধ করে দেওয়া হবে। সর্বশেষ উইন্ডোটি বন্ধ করলে সেশনটি শেষ হয়ে যায়।", + "windowKillFailed": "উইন্ডো বন্ধ করতে ব্যর্থ হয়েছে", + "statusActivity": "কার্যকলাপ", + "statusWindows": "উইন্ডোজ", + "statusPanes": "প্যান", + "statusTags": "ট্যাগ", + "killPaneTitle": "প্যান বন্ধ করুন {{id}}?", + "killPaneBody": "এই প্যানে চলমান প্রসেসটি বন্ধ করে দেওয়া হবে। সর্বশেষ প্যানটি কিল করলে তার উইন্ডোটি বন্ধ হয়ে যায়।", + "paneKillFailed": "প্যানটি বন্ধ করতে ব্যর্থ হয়েছে", + "killSessionTitle": "সেশন বন্ধ করুন \"{{name}}\"?", + "killSessionBody": "এই সেশনের সমস্ত উইন্ডো এবং চলমান প্রসেস বন্ধ করে দেওয়া হবে। এটি পূর্বাবস্থায় ফেরানো যাবে না।", + "kill": "হত্যা করুন", + "sessionKilled": "সেশন \"{{name}}\" বাতিল করা হয়েছে", + "sessionKillFailed": "সেশন বন্ধ করতে ব্যর্থ হয়েছে", + "hostUnreachable": "হোস্টের সাথে সংযোগ স্থাপন করা যায়নি। এটি অনলাইন এবং অ্যাক্সেসযোগ্য আছে কিনা তা যাচাই করুন।", + "noServer": "এই হোস্টে কোনো tmux সার্ভার চালু নেই।", + "searchTruncated": "আংশিক ফলাফল। অনুসন্ধান প্রতিটি পেনের শেষ {{lines}} টি লাইন এবং সর্বাধিক {{panes}} টি পেন পর্যন্ত সীমাবদ্ধ।", + "closeSearchResults": "অনুসন্ধানের ফলাফল বন্ধ করুন", + "retry": "পুনরায় চেষ্টা করুন", + "noHosts": "কোন SSH হোস্ট উপলব্ধ নেই", + "noHostsHint": "একটি SSH হোস্টের tmux সেশনগুলো নিরীক্ষণ করার জন্য, হোস্ট ম্যানেজারের Tmux মনিটর ট্যাবে Tmux মনিটর অপশনটি সক্রিয় করুন।", + "tmuxInstallHint": "হোস্টে এটি ইনস্টল করুন:", + "attachTooltip": "{{host}} এ একটি টার্মিনাল খুলুন", + "attachTooltipPane": "{{host}}-এ একটি টার্মিনাল খুলুন, {{session}} tmux সেশন", + "timeJustNow": "এইমাত্র", + "timeMinutes": "{{count}}মিনিট আগে", + "timeHours": "{{count}}ঘণ্টা আগে", + "timeDays": "{{count}}দিন আগে", + "allHosts": "সকল হোস্ট", + "singleHost": "একক হোস্ট", + "hostScope": "মনিটরের পরিধি", + "filterHosts": "নাম বা ঠিকানা অনুসারে হোস্ট ফিল্টার করুন", + "selectHost": "হোস্ট নির্বাচন করুন", + "toggleHost": "প্রসারিত করুন বা সংকুচিত করুন {{host}}", + "noMatchingHosts": "কোনো মিলযুক্ত হোস্ট নেই", + "toggleSession": "প্রসারিত করুন বা সংকুচিত করুন {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/hi_IN.json b/plugins/tmux-monitor/locales/translated/hi_IN.json index 1b880b49f..7688e3bd1 100644 --- a/plugins/tmux-monitor/locales/translated/hi_IN.json +++ b/plugins/tmux-monitor/locales/translated/hi_IN.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Tmux मॉनिटर का उपयोग करें", + "description": "मॉनिटर चालू होने पर होस्ट पर tmux सेशन, विंडो और पैन को ब्राउज़ करें और नियंत्रित करें।" } }, "settings": { "host": { "enable": { "label": "Tmux मॉनिटर सक्षम करें", - "description": "Watch and attach to tmux sessions running on this host." + "description": "इस होस्ट पर चल रहे tmux सत्रों को देखें और उनसे जुड़ें।" }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "tmux माउस समर्थन सक्षम करें", + "description": "सेशन अटैच करते या बनाते समय tmux सेशन में माउस सपोर्ट लागू करें। अन्य सेशन और ग्लोबल tmux सेटिंग्स अपरिवर्तित रहेंगी।" } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "सत्र का नाम बदलने में विफल", "editTagsTitle": "\"{{name}}\" के लिए टैग संपादित करें", "killPane": "पेन नष्ट करें", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "आकार बदलने के लिए खींचें, रीसेट करने के लिए डबल-क्लिक करें", "reattach": "पुनः अटैच करें (विकृत दृश्य को ठीक करता है)", "killWindow": "विंडो नष्ट करें", "killWindowTitle": "क्या \"{{session}}\" की विंडो {{index}} नष्ट करें?", @@ -93,25 +93,25 @@ "sessionKillFailed": "सत्र नष्ट करने में विफल", "hostUnreachable": "होस्ट से कनेक्ट नहीं हो सका। जाँचें कि यह ऑनलाइन और पहुँच योग्य है।", "noServer": "इस होस्ट पर कोई tmux सर्वर नहीं चल रहा है।", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "आंशिक परिणाम। खोज प्रत्येक फलक की अंतिम {{lines}} पंक्तियों और अधिकतम {{panes}} फलकों को कवर करती है।", "closeSearchResults": "खोज परिणाम बंद करें", "retry": "पुनः प्रयास करें", "noHosts": "कोई SSH होस्ट उपलब्ध नहीं है", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "किसी SSH होस्ट पर Tmux Monitor विकल्प को सक्षम करें (होस्ट मैनेजर, Tmux Monitor टैब) ताकि उसके tmux सत्रों की निगरानी की जा सके।", "tmuxInstallHint": "इसे होस्ट पर इंस्टॉल करें:", "attachTooltip": "{{host}} पर टर्मिनल खोलें", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "{{host}}पर एक टर्मिनल खोलें, tmux सत्र {{session}}", "timeJustNow": "अभी", "timeMinutes": "{{count}}m पहले", "timeHours": "{{count}}h पहले", "timeDays": "{{count}}d पहले", "allHosts": "सभी होस्ट", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "एकल होस्ट", + "hostScope": "मॉनिटर स्कोप", + "filterHosts": "होस्ट को नाम या पते के आधार पर फ़िल्टर करें", + "selectHost": "होस्ट का चयन करें", + "toggleHost": "विस्तार करें या संक्षिप्त करें {{host}}", + "noMatchingHosts": "कोई मेल खाने वाले होस्ट नहीं मिले", + "toggleSession": "विस्तार करें या संक्षिप्त करें {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/id_ID.json b/plugins/tmux-monitor/locales/translated/id_ID.json index 75e4bc784..b7fecbd16 100644 --- a/plugins/tmux-monitor/locales/translated/id_ID.json +++ b/plugins/tmux-monitor/locales/translated/id_ID.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Aktifkan Monitor Tmux", + "enableTmuxMonitorDesc": "Tampilkan host ini di Tmux Monitor dan tambahkan aksi tmux-nya ke sidebar.", + "tabTmuxMonitor": "Monitor Tmux", + "docsLink": "Lihat dokumen" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Monitor Tmux" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Monitor Tmux", + "tmuxMonitorDesc": "Pantau sesi tmux di seluruh host Anda." }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Gunakan Tmux Monitor", + "description": "Telusuri dan kendalikan sesi, jendela, dan panel tmux pada host dengan monitor yang diaktifkan." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Aktifkan Monitor Tmux", + "description": "Pantau dan hubungkan ke sesi tmux yang berjalan di host ini." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Aktifkan dukungan mouse tmux", + "description": "Terapkan dukungan mouse ke sesi tmux saat melampirkan atau membuat sesi. Sesi lain dan pengaturan tmux global tidak berubah." } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", + "title": "Monitor Tmux", + "failedToLoadHosts": "Gagal memuat host", + "failedToLoad": "Gagal memuat sesi tmux", + "tmuxUnavailable": "tmux tidak terinstal pada host ini", + "noSessions": "Tidak ada sesi tmux di host ini.", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "attached": "Terlampir", + "detached": "Terpisah", + "attach": "Menempel", + "editTags": "Edit tag", + "tagsHint": "Tag yang dipisahkan koma (misalnya YOLO, lab, training)", + "tagsSaved": "Tag tersimpan", + "tagsSaveFailed": "Gagal menyimpan tag.", + "searchPlaceholder": "Hasil pencarian di seluruh sesi...", + "searchResults": "{{count}} cocok", + "searchFailed": "Pencarian gagal", + "selectPaneHint": "Pilih panel untuk melihat pratinjau hasilnya.", + "closePreview": "Tutup pratinjau", + "newSession": "Sesi baru", + "newSessionHint": "Nama sesi (huruf, angka, _ @ % + = -)", + "newSessionPlaceholder": "sesi saya", + "create": "Membuat", + "sessionCreated": "Sesi \"{{name}}\" dibuat", + "sessionCreateFailed": "Gagal membuat sesi", + "splitRight": "Belah kanan", + "splitDown": "Terbagi", + "splitFailed": "Gagal membagi panel", + "newWindow": "Jendela baru", + "windowCreateFailed": "Gagal membuat jendela", + "attachSessionTooltip": "Lampirkan ke {{session}}", + "refresh": "Menyegarkan", + "refreshFailed": "Gagal memperbarui sesi", + "collapseAll": "Ciutkan semua", + "expandAll": "Perluas semua", + "moreActions": "Tindakan lainnya", + "sessionStats": "Statistik sesi", + "renameSessionTitle": "Ganti nama sesi \"{{name}}\"", + "rename": "Ganti nama", + "sessionRenamed": "Sesi diubah namanya menjadi \"{{name}}\"", + "sessionRenameFailed": "Gagal mengganti nama sesi", + "editTagsTitle": "Edit tag untuk \"{{name}}\"", + "killPane": "Panel pembunuh", + "resizeTree": "Seret untuk mengubah ukuran, klik dua kali untuk mengatur ulang.", + "reattach": "Pasangkan kembali (memperbaiki tampilan yang kacau)", + "killWindow": "Jendela pembunuhan", + "killWindowTitle": "Hapus jendela {{index}} dari \"{{session}}\"?", + "killWindowBody": "Semua panel dan proses di jendela ini akan dihentikan. Menghentikan jendela terakhir akan mengakhiri sesi.", + "windowKillFailed": "Gagal menutup jendela", + "statusActivity": "Aktivitas", "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "statusPanes": "panel", + "statusTags": "Tag", + "killPaneTitle": "Hapus panel {{id}}?", + "killPaneBody": "Proses yang berjalan di panel ini akan dihentikan. Menghentikan proses di panel terakhir akan menutup jendelanya.", + "paneKillFailed": "Gagal mematikan panel", + "killSessionTitle": "Hentikan sesi \"{{name}}\"?", + "killSessionBody": "Semua jendela dan proses yang berjalan dalam sesi ini akan dihentikan. Tindakan ini tidak dapat dibatalkan.", + "kill": "Membunuh", + "sessionKilled": "Sesi \"{{name}}\" dihentikan", + "sessionKillFailed": "Gagal mengakhiri sesi", + "hostUnreachable": "Tidak dapat terhubung ke host. Periksa apakah host tersebut online dan dapat dijangkau.", + "noServer": "Tidak ada server tmux yang berjalan di host ini.", + "searchTruncated": "Hasil parsial. Pencarian mencakup {{lines}} baris terakhir dari setiap panel dan paling banyak {{panes}} panel.", + "closeSearchResults": "Tutup hasil pencarian", + "retry": "Mencoba kembali", + "noHosts": "Tidak ada host SSH yang tersedia.", + "noHostsHint": "Aktifkan opsi Tmux Monitor pada host SSH (Host Manager, tab Tmux Monitor) untuk memantau sesi tmux-nya.", + "tmuxInstallHint": "Instal di host dengan cara:", + "attachTooltip": "Buka terminal ke {{host}}", + "attachTooltipPane": "Buka terminal ke {{host}}, sesi tmux {{session}}", "timeJustNow": "baru saja", "timeMinutes": "{{count}} menit lalu", "timeHours": "{{count}} jam lalu", "timeDays": "{{count}} detik lalu", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "allHosts": "Semua tuan rumah", + "singleHost": "Host tunggal", + "hostScope": "Ruang lingkup pemantauan", + "filterHosts": "Saring host berdasarkan nama atau alamat.", + "selectHost": "Pilih tuan rumah", + "toggleHost": "Perluas atau ciutkan {{host}}", + "noMatchingHosts": "Tidak ada host yang cocok", + "toggleSession": "Perluas atau ciutkan {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/nl_NL.json b/plugins/tmux-monitor/locales/translated/nl_NL.json index 2f7f1b2dc..4b88374b5 100644 --- a/plugins/tmux-monitor/locales/translated/nl_NL.json +++ b/plugins/tmux-monitor/locales/translated/nl_NL.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", + "enableTmuxMonitor": "Tmux Monitor inschakelen", + "enableTmuxMonitorDesc": "Toon deze host in de Tmux Monitor en voeg de bijbehorende Tmux-acties toe aan de zijbalk.", "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "docsLink": "Documenten bekijken" }, "nav": { "tmuxMonitor": "Tmux Monitor" }, "dashboard": { "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitorDesc": "Monitor tmux-sessies op al je hosts." }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Gebruik Tmux Monitor", + "description": "Blader door en beheer tmux-sessies, -vensters en -panelen op hosts waarop de monitor is ingeschakeld." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Tmux Monitor inschakelen", + "description": "Observeer en koppel je aan tmux-sessies die op deze host draaien." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Schakel tmux-muisondersteuning in", + "description": "Voeg muisondersteuning toe aan de tmux-sessie bij het koppelen of creëren van een sessie. Andere sessies en algemene tmux-instellingen blijven ongewijzigd." } } }, "tmuxMonitor": { "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", + "failedToLoadHosts": "Het laden van hosts is mislukt.", + "failedToLoad": "Het laden van tmux-sessies is mislukt.", + "tmuxUnavailable": "Tmux is niet geïnstalleerd op deze host.", + "noSessions": "Er zijn geen tmux-sessies op deze host.", + "noHostSelected": "Geen host geselecteerd", + "attached": "Bijgevoegd", + "detached": "Losgemaakt", + "attach": "Bijvoegen", + "editTags": "Labels bewerken", + "tagsHint": "Tags gescheiden door komma's (bijv. YOLO, lab, training)", + "tagsSaved": "Tags opgeslagen", + "tagsSaveFailed": "Het opslaan van tags is mislukt.", + "searchPlaceholder": "Zoekresultaten over meerdere sessies heen...", + "searchResults": "{{count}} overeenkomsten", + "searchFailed": "Zoeken mislukt", + "selectPaneHint": "Selecteer een venster om de uitvoer ervan te bekijken.", + "closePreview": "Voorbeeld sluiten", + "newSession": "Nieuwe sessie", + "newSessionHint": "Sessienaam (letters, cijfers, _ @ % + = -)", + "newSessionPlaceholder": "mijn sessie", + "create": "Creëren", + "sessionCreated": "Sessie \"{{name}}\" aangemaakt", + "sessionCreateFailed": "Het aanmaken van de sessie is mislukt.", + "splitRight": "Rechts gesplitst", + "splitDown": "Splitsen", + "splitFailed": "Het splitsen van het venster is mislukt.", + "newWindow": "Nieuw venster", + "windowCreateFailed": "Het is niet gelukt om het venster te maken.", + "attachSessionTooltip": "Bevestigen aan {{session}}", + "refresh": "Vernieuwen", + "refreshFailed": "Sessies konden niet worden vernieuwd.", + "collapseAll": "Alles inklappen", + "expandAll": "Alles uitvouwen", + "moreActions": "Meer acties", + "sessionStats": "Sessiestatistieken", + "renameSessionTitle": "Sessie hernoemen \"{{name}}\"", + "rename": "Naam wijzigen", + "sessionRenamed": "Sessie hernoemd naar \"{{name}}\"", + "sessionRenameFailed": "Het hernoemen van de sessie is mislukt.", + "editTagsTitle": "Bewerk tags voor \"{{name}}\"", + "killPane": "Doodvenster", + "resizeTree": "Sleep om het formaat aan te passen, dubbelklik om het te resetten.", + "reattach": "Opnieuw koppelen (corrigeert een vervormde weergave)", + "killWindow": "Dood venster", + "killWindowTitle": "Venster {{index}} van \"{{session}} \" verwijderen?", + "killWindowBody": "Alle vensters en processen in dit venster worden beëindigd. Het sluiten van het laatste venster beëindigt de sessie.", + "windowKillFailed": "Het is niet gelukt om het venster te sluiten.", + "statusActivity": "Activiteit", "statusWindows": "Windows", - "statusPanes": "panes", + "statusPanes": "ruiten", "statusTags": "Tags", "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "killPaneBody": "Het proces dat in dit venster wordt uitgevoerd, wordt beëindigd. Door het laatste venster te sluiten, wordt het bijbehorende venster gesloten.", + "paneKillFailed": "Het is niet gelukt om het venster te sluiten.", + "killSessionTitle": "Sessie beëindigen \"{{name}}\"?", + "killSessionBody": "Alle vensters en actieve processen in deze sessie worden beëindigd. Dit kan niet ongedaan worden gemaakt.", + "kill": "Doden", + "sessionKilled": "Sessie \"{{name}}\" is beëindigd", + "sessionKillFailed": "Sessie kon niet worden beëindigd", + "hostUnreachable": "Er kon geen verbinding met de host worden gemaakt. Controleer of deze online en bereikbaar is.", + "noServer": "Er draait geen tmux-server op deze host.", + "searchTruncated": "Gedeeltelijke resultaten. De zoekopdracht omvat de laatste {{lines}} regels van elk venster en maximaal {{panes}} vensters.", + "closeSearchResults": "Zoekresultaten sluiten", + "retry": "Opnieuw proberen", + "noHosts": "Geen SSH-hosts beschikbaar", + "noHostsHint": "Schakel de optie Tmux Monitor in op een SSH-host (Host Manager, tabblad Tmux Monitor) om de tmux-sessies te bewaken.", + "tmuxInstallHint": "Installeer het op de host met:", + "attachTooltip": "Open een terminal naar {{host}}", + "attachTooltipPane": "Open een terminal naar {{host}}, tmux-sessie {{session}}", + "timeJustNow": "zojuist", + "timeMinutes": "{{count}}m geleden", + "timeHours": "{{count}}uur geleden", + "timeDays": "{{count}}dagen geleden", + "allHosts": "Alle hosts", + "singleHost": "Eén host", + "hostScope": "Monitorbereik", + "filterHosts": "Filter hosts op naam of adres.", + "selectHost": "Selecteer host", + "toggleHost": "Uitbreiden of inklappen {{host}}", + "noMatchingHosts": "Geen overeenkomende hosts gevonden", + "toggleSession": "Uitbreiden of inklappen {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/no_NO.json b/plugins/tmux-monitor/locales/translated/no_NO.json index 5d0d46ebb..bdc735b4f 100644 --- a/plugins/tmux-monitor/locales/translated/no_NO.json +++ b/plugins/tmux-monitor/locales/translated/no_NO.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Aktiver Tmux-monitor", + "enableTmuxMonitorDesc": "Vis denne verten i Tmux-monitoren og legg til tmux-handlingene i sidefeltet", + "tabTmuxMonitor": "Tmux-skjerm", + "docsLink": "Vis dokumenter" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Tmux-skjerm" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Tmux-skjerm", + "tmuxMonitorDesc": "Overvåk tmux-økter på tvers av vertene dine" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Bruk Tmux-skjermen", + "description": "Bla gjennom og kontroller tmux-økter, vinduer og ruter på verter med skjermen aktivert." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Aktiver Tmux-monitor", + "description": "Se og koble til tmux-økter som kjører på denne verten." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Aktiver tmux-musstøtte", + "description": "Bruk musestøtte på tmux-økten når du kobler til eller oppretter en økt. Andre økter og globale tmux-innstillinger forblir uendret." } } }, "tmuxMonitor": { - "title": "Tmux Monitor", + "title": "Tmux-skjerm", "failedToLoadHosts": "Kunne ikke laste verter", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", + "failedToLoad": "Kunne ikke laste inn tmux-økter", + "tmuxUnavailable": "tmux er ikke installert på denne verten", + "noSessions": "Ingen tmux-økter på denne verten", "noHostSelected": "Ingen vert valgt", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", + "attached": "Vedlagt", + "detached": "Frittstående", + "attach": "Feste", + "editTags": "Rediger tagger", + "tagsHint": "Kommaseparerte tagger (f.eks. YOLO, lab, trening)", + "tagsSaved": "Tagger lagret", + "tagsSaveFailed": "Kunne ikke lagre taggene", + "searchPlaceholder": "Søk i utdata på tvers av økter...", + "searchResults": "{{count}} treff", + "searchFailed": "Søket mislyktes", + "selectPaneHint": "Velg en rute for å forhåndsvise resultatet", + "closePreview": "Lukk forhåndsvisning", + "newSession": "Ny økt", + "newSessionHint": "Øktnavn (bokstaver, sifre, _ @ % + = -)", + "newSessionPlaceholder": "min-økt", + "create": "Skape", + "sessionCreated": "Økt «{{name}}» opprettet", + "sessionCreateFailed": "Kunne ikke opprette økten", + "splitRight": "Del høyre", + "splitDown": "Del ned", + "splitFailed": "Kunne ikke dele ruten", + "newWindow": "Nytt vindu", + "windowCreateFailed": "Kunne ikke opprette vinduet", + "attachSessionTooltip": "Fest til {{session}}", "refresh": "Oppdater", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", + "refreshFailed": "Kunne ikke oppdatere øktene", + "collapseAll": "Skjul alle", + "expandAll": "Utvid alle", + "moreActions": "Flere handlinger", + "sessionStats": "Øktstatistikk", + "renameSessionTitle": "Gi økten nytt navn «{{name}}»", "rename": "Gi nytt navn", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", + "sessionRenamed": "Økten har fått nytt navn til «{{name}}»", + "sessionRenameFailed": "Kunne ikke gi økten nytt navn", + "editTagsTitle": "Rediger tagger for «{{name}}»", + "killPane": "Drep ruten", + "resizeTree": "Dra for å endre størrelse, dobbeltklikk for å tilbakestille", + "reattach": "Fest på nytt (fikser en forvrengt visning)", + "killWindow": "Drep vinduet", + "killWindowTitle": "Drep vinduet {{index}} av «{{session}}»?", + "killWindowBody": "Alle ruter og prosesser i dette vinduet vil bli avsluttet. Hvis du avslutter det siste vinduet, avsluttes økten.", + "windowKillFailed": "Klarte ikke å avslutte vinduet", + "statusActivity": "Aktivitet", + "statusWindows": "Vinduer", + "statusPanes": "ruter", "statusTags": "Tagger", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", + "killPaneTitle": "Drep ruten {{id}}?", + "killPaneBody": "Prosessen som kjører i denne ruten vil bli avsluttet. Hvis du avslutter den siste ruten, lukkes vinduet.", + "paneKillFailed": "Kunne ikke avslutte ruten", + "killSessionTitle": "Avslutt økten «{{name}}»?", + "killSessionBody": "Alle vinduer og kjørende prosesser i denne økten vil bli avsluttet. Dette kan ikke angres.", + "kill": "Drepe", + "sessionKilled": "Økten «{{name}}» ble drept", + "sessionKillFailed": "Klarte ikke å avslutte økten", + "hostUnreachable": "Kunne ikke koble til verten. Sjekk at den er online og tilgjengelig.", + "noServer": "Ingen tmux-server kjører på denne verten.", + "searchTruncated": "Delvise resultater. Søket dekker de siste {{lines}} linjene i hver rute og maksimalt {{panes}} ruter.", + "closeSearchResults": "Lukk søkeresultatene", "retry": "Prøv igjen", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "noHosts": "Ingen SSH-verter tilgjengelig", + "noHostsHint": "Aktiver Tmux Monitor-alternativet på en SSH-vert (Vertsadministrator, Tmux Monitor-fanen) for å overvåke tmux-øktene.", + "tmuxInstallHint": "Installer den på verten med:", + "attachTooltip": "Åpne en terminal til {{host}}", + "attachTooltipPane": "Åpne en terminal til {{host}}, tmux-økt {{session}}", + "timeJustNow": "akkurat nå", + "timeMinutes": "For {{count}}minutter siden", + "timeHours": "for {{count}}t siden", + "timeDays": "for {{count}}dager siden", + "allHosts": "Alle verter", + "singleHost": "Enkelt vert", + "hostScope": "Overvåkingsomfang", + "filterHosts": "Filtrer verter etter navn eller adresse", + "selectHost": "Velg vert", + "toggleHost": "Utvid eller skjul {{host}}", + "noMatchingHosts": "Ingen samsvarende verter", + "toggleSession": "Utvid eller skjul {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/pl_PL.json b/plugins/tmux-monitor/locales/translated/pl_PL.json index 3689490a4..51643b2df 100644 --- a/plugins/tmux-monitor/locales/translated/pl_PL.json +++ b/plugins/tmux-monitor/locales/translated/pl_PL.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Użyj monitora Tmux", + "description": "Przeglądaj i kontroluj sesje, okna i panele tmux na hostach z włączonym monitorem." } }, "settings": { "host": { "enable": { "label": "Włącz monitor Tmux", - "description": "Watch and attach to tmux sessions running on this host." + "description": "Obserwuj i dołącz do sesji tmux działających na tym hoście." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Włącz obsługę myszy tmux", + "description": "Zastosuj obsługę myszy do sesji tmux podczas dołączania lub tworzenia sesji. Pozostałe sesje i globalne ustawienia tmux pozostają niezmienione." } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "Nie udało się zmienić nazwy sesji", "editTagsTitle": "Edytuj tagi dla „{{name}}”", "killPane": "Zakończ panel", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "Przeciągnij, aby zmienić rozmiar, kliknij dwukrotnie, aby zresetować", "reattach": "Dołącz ponownie (naprawia zniekształcony widok)", "killWindow": "Zakończ okno", "killWindowTitle": "Zakończyć okno {{index}} sesji „{{session}}”?", @@ -93,25 +93,25 @@ "sessionKillFailed": "Nie udało się zakończyć sesji", "hostUnreachable": "Nie udało się połączyć z hostem. Sprawdź, czy jest on online i osiągalny.", "noServer": "Na tym hoście nie działa żaden serwer tmux.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "Wyniki częściowe. Przeszukiwanie obejmuje ostatnie {{lines}} wierszy każdego panelu i maksymalnie {{panes}} paneli.", "closeSearchResults": "Zamknij wyniki wyszukiwania", "retry": "Ponów", "noHosts": "Brak dostępnych hostów SSH", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "Włącz opcję Monitor Tmux na hoście SSH (Menedżer hostów, zakładka Monitor Tmux), aby monitorować jego sesje Tmux.", "tmuxInstallHint": "Zainstaluj go na hoście za pomocą:", "attachTooltip": "Otwórz terminal do {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "Otwórz terminal do {{host}}, sesja tmux {{session}}", "timeJustNow": "przed chwilą", "timeMinutes": "{{count}} min temu", "timeHours": "{{count}} godz. temu", "timeDays": "{{count}} dni temu", "allHosts": "Wszystkie hosty", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", + "singleHost": "Pojedynczy host", + "hostScope": "Zakres monitora", + "filterHosts": "Filtruj hosty według nazwy lub adresu", + "selectHost": "Wybierz hosta", + "toggleHost": "Rozwiń lub zwiń {{host}}", "noMatchingHosts": "Brak pasujących hostów", - "toggleSession": "Expand or collapse {{session}}" + "toggleSession": "Rozwiń lub zwiń {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/pt_BR.json b/plugins/tmux-monitor/locales/translated/pt_BR.json index 5cad34b3c..596fb65d1 100644 --- a/plugins/tmux-monitor/locales/translated/pt_BR.json +++ b/plugins/tmux-monitor/locales/translated/pt_BR.json @@ -1,7 +1,7 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", + "enableTmuxMonitor": "Ativar monitor Tmux", + "enableTmuxMonitorDesc": "Exiba este host no Monitor Tmux e adicione suas ações tmux à barra lateral.", "tabTmuxMonitor": "Monitor Tmux", "docsLink": "Documentação" }, @@ -10,108 +10,108 @@ }, "dashboard": { "tmuxMonitor": "Monitor Tmux", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitorDesc": "Monitore as sessões do tmux em seus hosts." }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Use o monitor Tmux", + "description": "Navegue e controle sessões, janelas e painéis do tmux em hosts com o monitor ativado." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Ativar monitor Tmux", + "description": "Monitore e conecte-se às sessões do tmux em execução neste host." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Ativar suporte para mouse no tmux", + "description": "Ao conectar ou criar uma sessão, o suporte a mouse será ativado na sessão do tmux. As demais sessões e configurações globais do tmux permanecem inalteradas." } } }, "tmuxMonitor": { "title": "Monitor Tmux", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", + "failedToLoadHosts": "Falha ao carregar os hosts", + "failedToLoad": "Falha ao carregar as sessões do tmux", + "tmuxUnavailable": "O tmux não está instalado neste host.", + "noSessions": "Não há sessões tmux neste host.", + "noHostSelected": "Nenhum host selecionado", + "attached": "Apegado", + "detached": "Desapegado", + "attach": "Anexar", + "editTags": "Editar etiquetas", + "tagsHint": "Etiquetas separadas por vírgulas (ex: YOLO, laboratório, treinamento)", + "tagsSaved": "Etiquetas salvas", + "tagsSaveFailed": "Falha ao salvar as tags", + "searchPlaceholder": "Resultados da pesquisa em todas as sessões...", + "searchResults": "{{count}} correspondências", + "searchFailed": "A busca falhou", + "selectPaneHint": "Selecione um painel para visualizar sua saída.", + "closePreview": "Fechar pré-visualização", + "newSession": "Nova sessão", + "newSessionHint": "Nome da sessão (letras, dígitos, _ @ % + = -)", + "newSessionPlaceholder": "minha-sessão", "create": "Criar", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", + "sessionCreated": "Sessão \"{{name}}\" criada", + "sessionCreateFailed": "Falha ao criar sessão", + "splitRight": "Dividir à direita", + "splitDown": "Dividir em partes", + "splitFailed": "Falha ao dividir o painel", + "newWindow": "Nova janela", + "windowCreateFailed": "Falha ao criar a janela", + "attachSessionTooltip": "Anexe a {{session}}", "refresh": "Atualizar", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", + "refreshFailed": "Falha ao atualizar as sessões", + "collapseAll": "Recolher tudo", + "expandAll": "Expandir tudo", + "moreActions": "Mais ações", + "sessionStats": "Estatísticas da sessão", + "renameSessionTitle": "Renomear sessão \"{{name}}\"", "rename": "Renomear", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", + "sessionRenamed": "Sessão renomeada para \"{{name}}\"", + "sessionRenameFailed": "Falha ao renomear a sessão", + "editTagsTitle": "Editar tags para \"{{name}}\"", + "killPane": "Painel de eliminação", + "resizeTree": "Arraste para redimensionar, clique duas vezes para redefinir.", + "reattach": "Reconectar (corrige uma visualização distorcida)", + "killWindow": "Janela de eliminação", + "killWindowTitle": "Fechar janela {{index}} de \"{{session}}\"?", + "killWindowBody": "Todos os painéis e processos nesta janela serão encerrados. Fechar a última janela finaliza a sessão.", + "windowKillFailed": "Falha ao fechar a janela", + "statusActivity": "Atividade", "statusWindows": "Windows", - "statusPanes": "panes", + "statusPanes": "painéis", "statusTags": "Marcadores", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "killPaneTitle": "Painel de encerramento {{id}}?", + "killPaneBody": "O processo em execução neste painel será encerrado. Fechar o último painel fecha a janela correspondente.", + "paneKillFailed": "Falha ao desligar o painel", + "killSessionTitle": "Sessão de encerramento \"{{name}}\"?", + "killSessionBody": "Todas as janelas e processos em execução nesta sessão serão encerrados. Esta ação é irreversível.", + "kill": "Matar", + "sessionKilled": "Sessão \"{{name}}\" encerrada", + "sessionKillFailed": "Falha ao encerrar a sessão", + "hostUnreachable": "Não foi possível conectar ao host. Verifique se ele está online e acessível.", + "noServer": "Não há nenhum servidor tmux em execução neste host.", + "searchTruncated": "Resultados parciais. A pesquisa abrange as últimas {{lines}} linhas de cada painel e no máximo {{panes}} painéis.", + "closeSearchResults": "Fechar resultados da pesquisa", + "retry": "Tentar novamente", + "noHosts": "Não há hosts SSH disponíveis.", + "noHostsHint": "Habilite a opção Monitor do Tmux em um host SSH (Gerenciador de Hosts, guia Monitor do Tmux) para monitorar suas sessões do tmux.", + "tmuxInstallHint": "Instale-o no host com:", + "attachTooltip": "Abra um terminal para {{host}}", + "attachTooltipPane": "Abra um terminal para {{host}}, sessão tmux {{session}}", + "timeJustNow": "agora mesmo", + "timeMinutes": "{{count}}m atrás", + "timeHours": "{{count}}h atrás", + "timeDays": "{{count}}há alguns dias", + "allHosts": "Todos os anfitriões", + "singleHost": "Host único", + "hostScope": "Escopo do monitor", + "filterHosts": "Filtre os hosts por nome ou endereço.", + "selectHost": "Selecione o host", + "toggleHost": "Expandir ou recolher {{host}}", + "noMatchingHosts": "Nenhum host correspondente", + "toggleSession": "Expandir ou recolher {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/pt_PT.json b/plugins/tmux-monitor/locales/translated/pt_PT.json index f9d316e2a..d5ee0b82b 100644 --- a/plugins/tmux-monitor/locales/translated/pt_PT.json +++ b/plugins/tmux-monitor/locales/translated/pt_PT.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Utilize o monitor Tmux", + "description": "Navegue e controle as sessões, janelas e painéis do tmux em hosts com o monitor activado." } }, "settings": { "host": { "enable": { "label": "Ativar Monitor Tmux", - "description": "Watch and attach to tmux sessions running on this host." + "description": "Monitorize e ligue-se às sessões tmux em execução neste host." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Activar suporte para rato no tmux", + "description": "Ao ligar ou criar uma sessão, o suporte do rato será ativado na sessão tmux. As restantes sessões e definições globais do tmux permanecem inalteradas." } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "Falha ao renomear sessão", "editTagsTitle": "Editar etiquetas para \"{{name}}\"", "killPane": "Terminar painel", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "Arraste para redimensionar, clique duas vezes para repor.", "reattach": "Reanexar (corrige uma visualização distorcida)", "killWindow": "Terminar janela", "killWindowTitle": "Terminar janela {{index}} de \"{{session}}\"?", @@ -93,25 +93,25 @@ "sessionKillFailed": "Falha ao terminar sessão", "hostUnreachable": "Não foi possível ligar ao anfitrião. Verifique se está online e acessível.", "noServer": "Não há nenhum servidor tmux em execução neste anfitrião.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "Resultados parciais. A pesquisa abrange as últimas {{lines}} linhas de cada painel e no máximo {{panes}} painéis.", "closeSearchResults": "Fechar resultados da pesquisa", "retry": "Tentar novamente", "noHosts": "Nenhum anfitrião SSH disponível", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "Active a opção Monitor do Tmux num host SSH (Gestor de Hosts, separador Monitor do Tmux) para monitorizar as suas sessões do tmux.", "tmuxInstallHint": "Instale-o no anfitrião com:", "attachTooltip": "Abrir um terminal para {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "Abra um terminal para {{host}}, sessão tmux {{session}}", "timeJustNow": "agora mesmo", "timeMinutes": "há {{count}} min", "timeHours": "há {{count}} h", "timeDays": "há {{count}} d", "allHosts": "Todos os hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "Host único", + "hostScope": "Escopo do monitor", + "filterHosts": "Filtre os hosts por nome ou endereço.", + "selectHost": "Selecione o host", + "toggleHost": "Expandir ou recolher {{host}}", + "noMatchingHosts": "Nenhum host correspondente", + "toggleSession": "Expandir ou recolher {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/ru_RU.json b/plugins/tmux-monitor/locales/translated/ru_RU.json index 200cb9bf3..336b07f7f 100644 --- a/plugins/tmux-monitor/locales/translated/ru_RU.json +++ b/plugins/tmux-monitor/locales/translated/ru_RU.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Используйте монитор Tmux.", + "description": "Просматривайте и управляйте сессиями, окнами и панелями tmux на хостах с включенным монитором." } }, "settings": { "host": { "enable": { "label": "Включить монитор Tmux", - "description": "Watch and attach to tmux sessions running on this host." + "description": "Отслеживайте и подключайтесь к сессиям tmux, запущенным на этом хосте." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Включить поддержку мыши в tmux", + "description": "При подключении или создании сессии в сессии tmux должна быть добавлена поддержка мыши. Другие сессии и глобальные настройки tmux остаются без изменений." } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "Не удалось переименовать сессию", "editTagsTitle": "Изменить теги для \"{{name}}\"", "killPane": "Завершить панель", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "Перетащите для изменения размера, дважды щелкните для сброса.", "reattach": "Переподключиться (исправляет искажённое отображение)", "killWindow": "Завершить окно", "killWindowTitle": "Завершить окно {{index}} сессии \"{{session}}\"?", @@ -93,11 +93,11 @@ "sessionKillFailed": "Не удалось завершить сессию", "hostUnreachable": "Не удалось подключиться к хосту. Проверьте, что он онлайн и доступен.", "noServer": "На этом хосте не запущен сервер tmux.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "Частичные результаты. Поиск охватывает последние {{lines}} строк каждой панели и не более {{panes}} панелей.", "closeSearchResults": "Закрыть результаты поиска", "retry": "Повторить", "noHosts": "Нет доступных SSH-хостов", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "Включите параметр Tmux Monitor на SSH-хосте (Диспетчер хостов, вкладка Tmux Monitor), чтобы отслеживать его tmux-сессии.", "tmuxInstallHint": "Установите его на хост с помощью:", "attachTooltip": "Открыть терминал на {{host}}", "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", @@ -106,12 +106,12 @@ "timeHours": "{{count}}ч назад", "timeDays": "{{count}}д назад", "allHosts": "Все хосты", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "Один хост", + "hostScope": "Область действия монитора", + "filterHosts": "Фильтрация хостов по имени или адресу", + "selectHost": "Выберите хост", + "toggleHost": "Развернуть или свернуть {{host}}", + "noMatchingHosts": "Нет подходящих хостов", + "toggleSession": "Развернуть или свернуть {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/sr_SP.json b/plugins/tmux-monitor/locales/translated/sr_SP.json index 2f7f1b2dc..8165fc6a8 100644 --- a/plugins/tmux-monitor/locales/translated/sr_SP.json +++ b/plugins/tmux-monitor/locales/translated/sr_SP.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Омогући Tmux монитор", + "enableTmuxMonitorDesc": "Прикажи овај хост у Tmux монитору и додај његове tmux акције у бочну траку", + "tabTmuxMonitor": "Tmux монитор", + "docsLink": "Прикажи документе" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Tmux монитор" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Tmux монитор", + "tmuxMonitorDesc": "Пратите tmux сесије на свим вашим хостовима" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Користите Tmux монитор", + "description": "Прегледајте и контролишите tmux сесије, прозоре и окна на хостовима са омогућеним монитором." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Омогући Tmux монитор", + "description": "Гледајте и прикључите се tmux сесијама које се покрећу на овом хосту." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Омогући подршку за tmux миш", + "description": "Примени подршку за миш на tmux сесију приликом прикључивања или креирања сесије. Остале сесије и глобална tmux подешавања остају непромењена." } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "title": "Tmux монитор", + "failedToLoadHosts": "Учитавање хостова није успело", + "failedToLoad": "Учитавање tmux сесија није успело", + "tmuxUnavailable": "tmux није инсталиран на овом хосту", + "noSessions": "Нема tmux сесија на овом хосту", + "noHostSelected": "Није изабран домаћин", + "attached": "Приложено", + "detached": "Одвојено", + "attach": "Приложи", + "editTags": "Уреди ознаке", + "tagsHint": "Ознаке одвојене зарезима (нпр. YOLO, лабораторија, обука)", + "tagsSaved": "Ознаке сачуване", + "tagsSaveFailed": "Чување ознака није успело", + "searchPlaceholder": "Претрага резултата у свим сесијама...", + "searchResults": "{{count}} подударања", + "searchFailed": "Претрага није успела", + "selectPaneHint": "Изаберите окно да бисте прегледали његов резултат", + "closePreview": "Затвори преглед", + "newSession": "Нова сесија", + "newSessionHint": "Назив сесије (слова, цифре, _ @ % + = -)", + "newSessionPlaceholder": "моја-сесија", + "create": "Креирај", + "sessionCreated": "Сесија „{{name}}“ је креирана", + "sessionCreateFailed": "Није успело креирање сесије", + "splitRight": "Подели десно", + "splitDown": "Подели", + "splitFailed": "Подела окна није успела", + "newWindow": "Нови прозор", + "windowCreateFailed": "Није успело креирање прозора", + "attachSessionTooltip": "Приложи уз {{session}}", + "refresh": "Освежи", + "refreshFailed": "Освежавање сесија није успело", + "collapseAll": "Скупи све", + "expandAll": "Прошири све", + "moreActions": "Више акција", + "sessionStats": "Статистика сесије", + "renameSessionTitle": "Преименуј сесију „{{name}}“", + "rename": "Преименуј", + "sessionRenamed": "Сесија је преименована у „{{name}}“", + "sessionRenameFailed": "Преименовање сесије није успело", + "editTagsTitle": "Уреди ознаке за „{{name}}“", + "killPane": "Окно за заустављање", + "resizeTree": "Превуците да бисте променили величину, кликните двапут да бисте ресетовали", + "reattach": "Поново причврстите (поправља искривљени приказ)", + "killWindow": "Затвори прозор", + "killWindowTitle": "Да ли да затворим прозор {{index}} од „{{session}}“?", + "killWindowBody": "Сваки панел и процес у овом прозору биће завршени. Затварањем последњег прозора завршава се сесија.", + "windowKillFailed": "Затварање прозора није успело", + "statusActivity": "Активност", + "statusWindows": "Прозори", + "statusPanes": "окна", + "statusTags": "Ознаке", + "killPaneTitle": "Затвори окно {{id}}?", + "killPaneBody": "Процес који се извршава у овом окну биће прекинут. Затварањем последњег окна затвара се његов прозор.", + "paneKillFailed": "Није успело затварање окна", + "killSessionTitle": "Укинути сесију „{{name}}“?", + "killSessionBody": "Сви прозори и покренути процеси у овој сесији биће прекинути. Ова радња се не може поништити.", + "kill": "Убити", + "sessionKilled": "Сесија „{{name}}“ је завршена", + "sessionKillFailed": "Завршавање сесије није успело", + "hostUnreachable": "Није могуће повезати се са хостом. Проверите да ли је онлајн и доступан.", + "noServer": "Ниједан tmux сервер не ради на овом хосту.", + "searchTruncated": "Делимични резултати. Претрага обухвата последњих {{lines}} редова сваког панела и највише {{panes}} панела.", + "closeSearchResults": "Затвори резултате претраге", + "retry": "Покушај поново", + "noHosts": "Нема доступних SSH хостова", + "noHostsHint": "Омогућите опцију Tmux Monitor на SSH хосту (Host Manager, картица Tmux Monitor) да бисте пратили његове tmux сесије.", + "tmuxInstallHint": "Инсталирајте га на хост помоћу:", + "attachTooltip": "Отворите терминал за {{host}}", + "attachTooltipPane": "Отворите терминал за {{host}}, tmux сесију {{session}}", + "timeJustNow": "управо сада", + "timeMinutes": "{{count}}пре мин", + "timeHours": "{{count}}пре сати", + "timeDays": "{{count}}пре д", + "allHosts": "Сви домаћини", + "singleHost": "Један домаћин", + "hostScope": "Опсег монитора", + "filterHosts": "Филтрирајте хостове по имену или адреси", + "selectHost": "Изаберите хоста", + "toggleHost": "Прошири или скупи {{host}}", + "noMatchingHosts": "Нема одговарајућих хостова", + "toggleSession": "Прошири или скупи {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/sv_SE.json b/plugins/tmux-monitor/locales/translated/sv_SE.json index 2f7f1b2dc..584bbb4c8 100644 --- a/plugins/tmux-monitor/locales/translated/sv_SE.json +++ b/plugins/tmux-monitor/locales/translated/sv_SE.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Aktivera Tmux-monitor", + "enableTmuxMonitorDesc": "Visa denna värd i Tmux Monitor och lägg till dess tmux-åtgärder i sidofältet", + "tabTmuxMonitor": "Tmux-monitor", + "docsLink": "Visa dokument" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Tmux-monitor" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Tmux-monitor", + "tmuxMonitorDesc": "Övervaka tmux-sessioner över dina värdar" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Använd Tmux Monitor", + "description": "Bläddra bland och kontrollera tmux-sessioner, fönster och rutor på värdar med bildskärmen aktiverad." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Aktivera Tmux-monitorn", + "description": "Titta på och anslut till tmux-sessioner som körs på den här värden." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Aktivera stöd för tmux-mus", + "description": "Använd musstöd för tmux-sessionen när du ansluter eller skapar en session. Andra sessioner och globala tmux-inställningar är oförändrade." } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "title": "Tmux-monitor", + "failedToLoadHosts": "Misslyckades med att ladda värdar", + "failedToLoad": "Misslyckades med att ladda tmux-sessioner", + "tmuxUnavailable": "tmux är inte installerat på den här värddatorn", + "noSessions": "Inga tmux-sessioner på den här värden", + "noHostSelected": "Ingen värd vald", + "attached": "Bunden", + "detached": "Fristående", + "attach": "Bifoga", + "editTags": "Redigera taggar", + "tagsHint": "Kommaavgränsade taggar (t.ex. YOLO, lab, utbildning)", + "tagsSaved": "Taggar sparade", + "tagsSaveFailed": "Det gick inte att spara taggarna", + "searchPlaceholder": "Sök utdata över flera sessioner...", + "searchResults": "{{count}} matchningar", + "searchFailed": "Sökningen misslyckades", + "selectPaneHint": "Välj en ruta för att förhandsgranska dess utdata", + "closePreview": "Stäng förhandsgranskningen", + "newSession": "Ny session", + "newSessionHint": "Sessionsnamn (bokstäver, siffror, _ @ % + = -)", + "newSessionPlaceholder": "min-session", + "create": "Skapa", + "sessionCreated": "Sessionen \"{{name}}\" skapades", + "sessionCreateFailed": "Misslyckades med att skapa sessionen", + "splitRight": "Dela höger", + "splitDown": "Dela upp", + "splitFailed": "Misslyckades med att dela rutan", + "newWindow": "Nytt fönster", + "windowCreateFailed": "Misslyckades med att skapa fönstret", + "attachSessionTooltip": "Bifoga till {{session}}", + "refresh": "Uppdatera", + "refreshFailed": "Det gick inte att uppdatera sessionerna", + "collapseAll": "Komprimera alla", + "expandAll": "Expandera alla", + "moreActions": "Fler åtgärder", + "sessionStats": "Sessionsstatistik", + "renameSessionTitle": "Byt namn på sessionen \"{{name}}\"", + "rename": "Döpa om", + "sessionRenamed": "Sessionen har bytt namn till \"{{name}}\"", + "sessionRenameFailed": "Misslyckades med att byta namn på sessionen", + "editTagsTitle": "Redigera taggar för \"{{name}}\"", + "killPane": "Döda rutan", + "resizeTree": "Dra för att ändra storlek, dubbelklicka för att återställa", + "reattach": "Sätt tillbaka (åtgärdar en förvrängd bild)", + "killWindow": "Döda fönstret", + "killWindowTitle": "Avsluta fönstret {{index}} för \"{{session}}\"?", + "killWindowBody": "Varje ruta och process i det här fönstret avslutas. Om du avslutar det sista fönstret avslutas sessionen.", + "windowKillFailed": "Misslyckades med att avsluta fönstret", + "statusActivity": "Aktivitet", + "statusWindows": "Fönster", + "statusPanes": "rutor", + "statusTags": "Taggar", + "killPaneTitle": "Avsluta rutan {{id}}?", + "killPaneBody": "Processen som körs i den här rutan kommer att avslutas. Om du avslutar den sista rutan stängs dess fönster.", + "paneKillFailed": "Misslyckades med att avsluta rutan", + "killSessionTitle": "Avsluta sessionen \"{{name}}\"?", + "killSessionBody": "Alla fönster och processer som körs i den här sessionen kommer att avslutas. Detta kan inte ångras.", + "kill": "Döda", + "sessionKilled": "Sessionen \"{{name}}\" avstängd", + "sessionKillFailed": "Misslyckades med att avsluta sessionen", + "hostUnreachable": "Kunde inte ansluta till värden. Kontrollera att den är online och nåbar.", + "noServer": "Ingen tmux-server körs på den här värden.", + "searchTruncated": "Delvisa resultat. Sökningen täcker de sista {{lines}} raderna i varje ruta och högst {{panes}} rutor.", + "closeSearchResults": "Stäng sökresultaten", + "retry": "Försöka igen", + "noHosts": "Inga SSH-värdar tillgängliga", + "noHostsHint": "Aktivera alternativet Tmux Monitor på en SSH-värd (Värdhanteraren, fliken Tmux Monitor) för att övervaka dess tmux-sessioner.", + "tmuxInstallHint": "Installera det på värden med:", + "attachTooltip": "Öppna en terminal till {{host}}", + "attachTooltipPane": "Öppna en terminal till {{host}}, tmux-session {{session}}", + "timeJustNow": "just nu", + "timeMinutes": "för {{count}}minuter sedan", + "timeHours": "för {{count}}timmar sedan", + "timeDays": "för {{count}}dagar sedan", + "allHosts": "Alla värdar", + "singleHost": "Enskild värd", + "hostScope": "Övervakningsomfattning", + "filterHosts": "Filtrera värdar efter namn eller adress", + "selectHost": "Välj värd", + "toggleHost": "Expandera eller komprimera {{host}}", + "noMatchingHosts": "Inga matchande värdar", + "toggleSession": "Expandera eller komprimera {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/th_TH.json b/plugins/tmux-monitor/locales/translated/th_TH.json index 2f7f1b2dc..86d9c98e8 100644 --- a/plugins/tmux-monitor/locales/translated/th_TH.json +++ b/plugins/tmux-monitor/locales/translated/th_TH.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "เปิดใช้งาน Tmux Monitor", + "enableTmuxMonitorDesc": "แสดงโฮสต์นี้ใน Tmux Monitor และเพิ่มการดำเนินการ tmux ของโฮสต์นี้ลงในแถบด้านข้าง", + "tabTmuxMonitor": "มอนิเตอร์ Tmux", + "docsLink": "ดูเอกสาร" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "มอนิเตอร์ Tmux" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "มอนิเตอร์ Tmux", + "tmuxMonitorDesc": "ตรวจสอบเซสชัน tmux บนโฮสต์ต่างๆ ของคุณ" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "ใช้ Tmux Monitor", + "description": "เรียกดูและควบคุมเซสชัน หน้าต่าง และบานหน้าต่างของ tmux บนโฮสต์ที่เปิดใช้งานมอนิเตอร์ไว้" } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "เปิดใช้งาน Tmux Monitor", + "description": "เฝ้าดูและเชื่อมต่อกับเซสชัน tmux ที่กำลังทำงานอยู่บนโฮสต์นี้" }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "เปิดใช้งานการรองรับเมาส์ tmux", + "description": "เปิดใช้งานการรองรับเมาส์สำหรับเซสชัน tmux เมื่อเชื่อมต่อหรือสร้างเซสชัน การตั้งค่าเซสชันอื่นๆ และการตั้งค่า tmux ทั่วไปจะไม่มีการเปลี่ยนแปลง" } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "title": "มอนิเตอร์ Tmux", + "failedToLoadHosts": "ไม่สามารถโหลดโฮสต์ได้", + "failedToLoad": "ไม่สามารถโหลดเซสชัน tmux ได้", + "tmuxUnavailable": "tmux ไม่ได้ติดตั้งอยู่ในโฮสต์นี้", + "noSessions": "ไม่มีเซสชัน tmux บนโฮสต์นี้", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "attached": "ที่แนบมา", + "detached": "แยกออก", + "attach": "แนบ", + "editTags": "แก้ไขแท็ก", + "tagsHint": "แท็กที่คั่นด้วยเครื่องหมายจุลภาค (เช่น YOLO, lab, training)", + "tagsSaved": "แท็กถูกบันทึกแล้ว", + "tagsSaveFailed": "ไม่สามารถบันทึกแท็กได้", + "searchPlaceholder": "ผลการค้นหาข้ามเซสชัน...", + "searchResults": "{{count}} ตรงกัน", + "searchFailed": "การค้นหาล้มเหลว", + "selectPaneHint": "เลือกบานหน้าต่างเพื่อดูตัวอย่างผลลัพธ์", + "closePreview": "ปิดการแสดงตัวอย่าง", + "newSession": "เซสชั่นใหม่", + "newSessionHint": "ชื่อเซสชัน (ตัวอักษร ตัวเลข _ @ % + = -)", + "newSessionPlaceholder": "เซสชั่นของฉัน", + "create": "สร้าง", + "sessionCreated": "เซสชัน \"{{name}}\" ถูกสร้างขึ้น", + "sessionCreateFailed": "ไม่สามารถสร้างเซสชันได้", + "splitRight": "แยกขวา", + "splitDown": "แยกออก", + "splitFailed": "ไม่สามารถแบ่งหน้าต่างได้", + "newWindow": "หน้าต่างใหม่", + "windowCreateFailed": "ไม่สามารถสร้างหน้าต่างได้", + "attachSessionTooltip": "แนบกับ {{session}}", + "refresh": "รีเฟรช", + "refreshFailed": "ไม่สามารถรีเฟรชเซสชันได้", + "collapseAll": "ยุบทั้งหมด", + "expandAll": "ขยายทั้งหมด", + "moreActions": "การดำเนินการเพิ่มเติม", + "sessionStats": "สถิติเซสชั่น", + "renameSessionTitle": "เปลี่ยนชื่อเซสชัน \"{{name}}\"", + "rename": "เปลี่ยนชื่อ", + "sessionRenamed": "เปลี่ยนชื่อเซสชันเป็น \"{{name}}\"", + "sessionRenameFailed": "ไม่สามารถเปลี่ยนชื่อเซสชันได้", + "editTagsTitle": "แก้ไขแท็กสำหรับ \"{{name}}\"", + "killPane": "หน้าต่างสังหาร", + "resizeTree": "ลากเพื่อปรับขนาด ดับเบิ้ลคลิกเพื่อรีเซ็ต", + "reattach": "เชื่อมต่อใหม่ (แก้ไขภาพที่แสดงผลผิดเพี้ยน)", + "killWindow": "หน้าต่างสังหาร", + "killWindowTitle": "ปิดหน้าต่าง {{index}} ของ \"{{session}}\"?", + "killWindowBody": "หน้าต่างและกระบวนการทั้งหมดในหน้าต่างนี้จะถูกยุติ การปิดหน้าต่างสุดท้ายจะเป็นการสิ้นสุดเซสชัน", + "windowKillFailed": "ไม่สามารถปิดหน้าต่างได้", + "statusActivity": "กิจกรรม", + "statusWindows": "วินโดวส์", + "statusPanes": "บานหน้าต่าง", + "statusTags": "แท็ก", + "killPaneTitle": "แผงปิดการทำงาน {{id}}?", + "killPaneBody": "กระบวนการที่กำลังทำงานอยู่ในบานหน้าต่างนี้จะถูกยุติ การยุติบานหน้าต่างสุดท้ายจะปิดหน้าต่างนั้นลง", + "paneKillFailed": "ไม่สามารถปิดหน้าต่างได้", + "killSessionTitle": "เซสชั่นสังหาร \"{{name}}\"?", + "killSessionBody": "หน้าต่างและกระบวนการทำงานทั้งหมดในเซสชันนี้จะถูกปิดลง การดำเนินการนี้ไม่สามารถย้อนกลับได้", + "kill": "ฆ่า", + "sessionKilled": "เซสชั่น \"{{name}}\" ถูกฆ่า", + "sessionKillFailed": "ไม่สามารถยุติเซสชันได้", + "hostUnreachable": "ไม่สามารถเชื่อมต่อกับโฮสต์ได้ โปรดตรวจสอบว่าโฮสต์ออนไลน์และสามารถเข้าถึงได้", + "noServer": "ไม่มีเซิร์ฟเวอร์ tmux ทำงานอยู่บนโฮสต์นี้", + "searchTruncated": "ผลลัพธ์บางส่วน การค้นหาครอบคลุมบรรทัดสุดท้าย {{lines}} บรรทัดของแต่ละบานหน้าต่าง และอย่างมากที่สุด {{panes}} บานหน้าต่าง", + "closeSearchResults": "ปิดผลการค้นหา", + "retry": "ลองใหม่อีกครั้ง", + "noHosts": "ไม่มีโฮสต์ SSH ให้บริการ", + "noHostsHint": "เปิดใช้งานตัวเลือก Tmux Monitor บนโฮสต์ SSH (ตัวจัดการโฮสต์ แท็บ Tmux Monitor) เพื่อตรวจสอบเซสชัน tmux ของโฮสต์นั้น", + "tmuxInstallHint": "ติดตั้งบนเครื่องโฮสต์ด้วยคำสั่ง:", + "attachTooltip": "เปิดเทอร์มินัลไปที่ {{host}}", + "attachTooltipPane": "เปิดเทอร์มินัลไปที่ {{host}}, เซสชัน tmux {{session}}", + "timeJustNow": "เมื่อสักครู่นี้เอง", + "timeMinutes": "{{count}}นาทีที่แล้ว", + "timeHours": "{{count}}ชั่วโมงที่แล้ว", + "timeDays": "{{count}}วันก่อน", + "allHosts": "โฮสต์ทั้งหมด", + "singleHost": "โฮสต์เดี่ยว", + "hostScope": "ขอบเขตการตรวจสอบ", + "filterHosts": "กรองโฮสต์ตามชื่อหรือที่อยู่", + "selectHost": "เลือกโฮสต์", + "toggleHost": "ขยายหรือยุบ {{host}}", + "noMatchingHosts": "ไม่พบโฮสต์ที่ตรงกัน", + "toggleSession": "ขยายหรือยุบ {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/tr_TR.json b/plugins/tmux-monitor/locales/translated/tr_TR.json index b9d4ac0b2..4c392b2fd 100644 --- a/plugins/tmux-monitor/locales/translated/tr_TR.json +++ b/plugins/tmux-monitor/locales/translated/tr_TR.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Tmux Monitor'ü kullanın.", + "description": "İzleme özelliği etkinleştirilmiş sunucularda tmux oturumlarını, pencerelerini ve bölmelerini inceleyin ve kontrol edin." } }, "settings": { "host": { "enable": { "label": "Tmux İzleyiciyi Etkinleştir", - "description": "Watch and attach to tmux sessions running on this host." + "description": "Bu sunucuda çalışan tmux oturumlarını izleyin ve bunlara bağlanın." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Tmux fare desteğini etkinleştirin", + "description": "Bir oturum eklerken veya oluştururken tmux oturumuna fare desteği uygulayın. Diğer oturumlar ve genel tmux ayarları değişmeden kalır." } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "Oturum yeniden adlandırılamadı", "editTagsTitle": "\"{{name}}\" için etiketleri düzenle", "killPane": "Paneyi sonlandır", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "Boyutunu değiştirmek için sürükleyin, sıfırlamak için çift tıklayın.", "reattach": "Yeniden bağlan (bozuk görünümü düzeltir)", "killWindow": "Pencereyi sonlandır", "killWindowTitle": "\"{{session}}\" oturumundaki {{index}} numaralı pencere sonlandırılsın mı?", @@ -93,25 +93,25 @@ "sessionKillFailed": "Oturum sonlandırılamadı", "hostUnreachable": "Ana bilgisayara bağlanılamadı. Çevrimiçi ve erişilebilir olduğunu kontrol edin.", "noServer": "Bu ana bilgisayarda tmux sunucusu çalışmıyor.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "Kısmi sonuçlar. Arama, her bölmenin son {{lines}} satırını ve en fazla {{panes}} bölmeyi kapsar.", "closeSearchResults": "Arama sonuçlarını kapat", "retry": "Yeniden dene", "noHosts": "Kullanılabilir SSH ana bilgisayarı yok", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "SSH sunucusunda (Sunucu Yöneticisi, Tmux İzleme sekmesi) Tmux İzleme seçeneğini etkinleştirerek tmux oturumlarını izleyebilirsiniz.", "tmuxInstallHint": "Ana bilgisayara şu komutla yükleyin:", "attachTooltip": "{{host}} için bir terminal aç", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "{{host}}, tmux session {{session}} için bir terminal açın.", "timeJustNow": "az önce", "timeMinutes": "{{count}} dakika önce", "timeHours": "{{count}} saat önce", "timeDays": "{{count}} gün önce", "allHosts": "Tüm sunucular", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "Tek ev sahibi", + "hostScope": "İzleme kapsamı", + "filterHosts": "Sunucuları ada veya adrese göre filtrele", + "selectHost": "Sunucu seçin", + "toggleHost": "Genişlet veya daralt {{host}}", + "noMatchingHosts": "Eşleşen sunucu bulunamadı.", + "toggleSession": "Genişlet veya daralt {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/uk_UA.json b/plugins/tmux-monitor/locales/translated/uk_UA.json index 2f7f1b2dc..cdc334c6a 100644 --- a/plugins/tmux-monitor/locales/translated/uk_UA.json +++ b/plugins/tmux-monitor/locales/translated/uk_UA.json @@ -1,117 +1,117 @@ { "hosts": { - "enableTmuxMonitor": "Enable Tmux Monitor", - "enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar", - "tabTmuxMonitor": "Tmux Monitor", - "docsLink": "View docs" + "enableTmuxMonitor": "Увімкнути монітор Tmux", + "enableTmuxMonitorDesc": "Показати цей хост у моніторі Tmux та додати його дії tmux до бічної панелі", + "tabTmuxMonitor": "Монітор Tmux", + "docsLink": "Переглянути документи" }, "nav": { - "tmuxMonitor": "Tmux Monitor" + "tmuxMonitor": "Монітор Tmux" }, "dashboard": { - "tmuxMonitor": "Tmux Monitor", - "tmuxMonitorDesc": "Monitor tmux sessions across your hosts" + "tmuxMonitor": "Монітор Tmux", + "tmuxMonitorDesc": "Моніторинг сесій tmux на ваших хостах" }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Використовуйте монітор Tmux", + "description": "Переглядайте та керуйте сеансами tmux, вікнами та панелями на хостах з увімкненим монітором." } }, "settings": { "host": { "enable": { - "label": "Enable Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "label": "Увімкнути монітор Tmux", + "description": "Переглядати та приєднуватися до сеансів tmux, що працюють на цьому хості." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Увімкнути підтримку миші tmux", + "description": "Застосовувати підтримку миші до сеансу tmux під час підключення або створення сеансу. Інші сеанси та глобальні налаштування tmux залишаються незмінними." } } }, "tmuxMonitor": { - "title": "Tmux Monitor", - "failedToLoadHosts": "Failed to load hosts", - "failedToLoad": "Failed to load tmux sessions", - "tmuxUnavailable": "tmux is not installed on this host", - "noSessions": "No tmux sessions on this host", - "noHostSelected": "No host selected", - "attached": "Attached", - "detached": "Detached", - "attach": "Attach", - "editTags": "Edit tags", - "tagsHint": "Comma-separated tags (e.g. YOLO, lab, training)", - "tagsSaved": "Tags saved", - "tagsSaveFailed": "Failed to save tags", - "searchPlaceholder": "Search output across sessions...", - "searchResults": "{{count}} matches", - "searchFailed": "Search failed", - "selectPaneHint": "Select a pane to preview its output", - "closePreview": "Close preview", - "newSession": "New session", - "newSessionHint": "Session name (letters, digits, _ @ % + = -)", - "newSessionPlaceholder": "my-session", - "create": "Create", - "sessionCreated": "Session \"{{name}}\" created", - "sessionCreateFailed": "Failed to create session", - "splitRight": "Split right", - "splitDown": "Split down", - "splitFailed": "Failed to split pane", - "newWindow": "New window", - "windowCreateFailed": "Failed to create window", - "attachSessionTooltip": "Attach to {{session}}", - "refresh": "Refresh", - "refreshFailed": "Failed to refresh sessions", - "collapseAll": "Collapse all", - "expandAll": "Expand all", - "moreActions": "More actions", - "sessionStats": "Session stats", - "renameSessionTitle": "Rename session \"{{name}}\"", - "rename": "Rename", - "sessionRenamed": "Session renamed to \"{{name}}\"", - "sessionRenameFailed": "Failed to rename session", - "editTagsTitle": "Edit tags for \"{{name}}\"", - "killPane": "Kill pane", - "resizeTree": "Drag to resize, double-click to reset", - "reattach": "Re-attach (fixes a garbled view)", - "killWindow": "Kill window", - "killWindowTitle": "Kill window {{index}} of \"{{session}}\"?", - "killWindowBody": "Every pane and process in this window will be terminated. Killing the last window ends the session.", - "windowKillFailed": "Failed to kill window", - "statusActivity": "Activity", - "statusWindows": "Windows", - "statusPanes": "panes", - "statusTags": "Tags", - "killPaneTitle": "Kill pane {{id}}?", - "killPaneBody": "The process running in this pane will be terminated. Killing the last pane closes its window.", - "paneKillFailed": "Failed to kill pane", - "killSessionTitle": "Kill session \"{{name}}\"?", - "killSessionBody": "All windows and running processes in this session will be terminated. This cannot be undone.", - "kill": "Kill", - "sessionKilled": "Session \"{{name}}\" killed", - "sessionKillFailed": "Failed to kill session", - "hostUnreachable": "Could not connect to the host. Check that it is online and reachable.", - "noServer": "No tmux server is running on this host.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", - "closeSearchResults": "Close search results", - "retry": "Retry", - "noHosts": "No SSH hosts available", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", - "tmuxInstallHint": "Install it on the host with:", - "attachTooltip": "Open a terminal to {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", - "timeJustNow": "just now", - "timeMinutes": "{{count}}m ago", - "timeHours": "{{count}}h ago", - "timeDays": "{{count}}d ago", - "allHosts": "All hosts", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "title": "Монітор Tmux", + "failedToLoadHosts": "Не вдалося завантажити хости", + "failedToLoad": "Не вдалося завантажити сеанси tmux", + "tmuxUnavailable": "tmux не встановлено на цьому хості", + "noSessions": "На цьому хості немає сеансів tmux", + "noHostSelected": "Хост не вибрано", + "attached": "Додано", + "detached": "Окремий", + "attach": "Прикріпити", + "editTags": "Редагувати теги", + "tagsHint": "Теги, розділені комами (наприклад, YOLO, лабораторія, навчання)", + "tagsSaved": "Теги збережено", + "tagsSaveFailed": "Не вдалося зберегти теги", + "searchPlaceholder": "Пошук результатів у сеансах...", + "searchResults": "{{count}} збігів", + "searchFailed": "Пошук не вдався", + "selectPaneHint": "Виберіть панель для попереднього перегляду її виводу", + "closePreview": "Закрити попередній перегляд", + "newSession": "Новий сеанс", + "newSessionHint": "Назва сеансу (літери, цифри, _ @ % + = -)", + "newSessionPlaceholder": "моя сесія", + "create": "Створити", + "sessionCreated": "Сеанс «{{name}}» створено", + "sessionCreateFailed": "Не вдалося створити сеанс", + "splitRight": "Розділити праворуч", + "splitDown": "Розділити", + "splitFailed": "Не вдалося розділити панель", + "newWindow": "Нове вікно", + "windowCreateFailed": "Не вдалося створити вікно", + "attachSessionTooltip": "Прикріпити до {{session}}", + "refresh": "Оновити", + "refreshFailed": "Не вдалося оновити сеанси", + "collapseAll": "Згорнути все", + "expandAll": "Розгорнути все", + "moreActions": "Більше дій", + "sessionStats": "Статистика сеансу", + "renameSessionTitle": "Перейменувати сеанс \"{{name}}\"", + "rename": "Перейменувати", + "sessionRenamed": "Сеанс перейменовано на «{{name}}»", + "sessionRenameFailed": "Не вдалося перейменувати сеанс", + "editTagsTitle": "Редагувати теги для \"{{name}}\"", + "killPane": "Панель «Вийти»", + "resizeTree": "Перетягніть, щоб змінити розмір, двічі клацніть, щоб скинути налаштування", + "reattach": "Повторно прикріпити (виправляє спотворене зображення)", + "killWindow": "Вікно для знищення", + "killWindowTitle": "Закрити вікно {{index}} з \"{{session}}\"?", + "killWindowBody": "Кожна панель і процес у цьому вікні будуть завершені. Закриття останнього вікна завершує сеанс.", + "windowKillFailed": "Не вдалося завершити роботу вікна", + "statusActivity": "Активність", + "statusWindows": "Вікна", + "statusPanes": "панелі", + "statusTags": "Теги", + "killPaneTitle": "Закрити панель {{id}}?", + "killPaneBody": "Процес, що виконується в цій панелі, буде завершено. Закриття останньої панелі закриває її вікно.", + "paneKillFailed": "Не вдалося завершити роботу панелі", + "killSessionTitle": "Закінчити сеанс \"{{name}}\"?", + "killSessionBody": "Усі вікна та запущені процеси в цьому сеансі будуть завершені. Цю дію неможливо скасувати.", + "kill": "Вбити", + "sessionKilled": "Сеанс «{{name}}» завершено", + "sessionKillFailed": "Не вдалося завершити сеанс", + "hostUnreachable": "Не вдалося підключитися до хоста. Перевірте, чи він онлайн і доступний.", + "noServer": "На цьому хості не працює жоден сервер tmux.", + "searchTruncated": "Часткові результати. Пошук охоплює останні {{lines}} рядків кожної панелі та щонайбільше {{panes}} панелей.", + "closeSearchResults": "Закрити результати пошуку", + "retry": "Повторити спробу", + "noHosts": "Немає доступних SSH-хостів", + "noHostsHint": "Увімкніть опцію Tmux Monitor на SSH-хості (Host Manager, вкладка Tmux Monitor), щоб контролювати його сеанси tmux.", + "tmuxInstallHint": "Встановіть його на хост за допомогою:", + "attachTooltip": "Відкрийте термінал для {{host}}", + "attachTooltipPane": "Відкрийте термінал для {{host}}, сеанс tmux {{session}}", + "timeJustNow": "щойно", + "timeMinutes": "{{count}}хв тому", + "timeHours": "{{count}}год тому", + "timeDays": "{{count}}днів тому", + "allHosts": "Усі хости", + "singleHost": "Один хост", + "hostScope": "Область моніторингу", + "filterHosts": "Фільтрувати хости за назвою або адресою", + "selectHost": "Виберіть хоста", + "toggleHost": "Розгорнути або згорнути {{host}}", + "noMatchingHosts": "Немає відповідних хостів", + "toggleSession": "Розгорнути або згорнути {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/vi_VN.json b/plugins/tmux-monitor/locales/translated/vi_VN.json index c9c5daf14..9c1f49dc1 100644 --- a/plugins/tmux-monitor/locales/translated/vi_VN.json +++ b/plugins/tmux-monitor/locales/translated/vi_VN.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "Sử dụng Tmux Monitor", + "description": "Duyệt và điều khiển các phiên, cửa sổ và khung tmux trên các máy chủ có bật tính năng giám sát." } }, "settings": { "host": { "enable": { "label": "Bật Tmux Monitor", - "description": "Watch and attach to tmux sessions running on this host." + "description": "Theo dõi và kết nối với các phiên tmux đang chạy trên máy chủ này." }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "Bật hỗ trợ chuột tmux", + "description": "Áp dụng hỗ trợ chuột cho phiên tmux khi gắn kết hoặc tạo phiên. Các phiên khác và cài đặt tmux toàn cục không thay đổi." } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "Đổi tên phiên thất bại", "editTagsTitle": "Sửa nhãn cho \"{{name}}\"", "killPane": "Hủy pane", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "Kéo để thay đổi kích thước, nhấp đúp để đặt lại về kích thước ban đầu.", "reattach": "Gắn lại (sửa hiển thị bị rối)", "killWindow": "Hủy cửa sổ", "killWindowTitle": "Hủy cửa sổ {{index}} của \"{{session}}\"?", @@ -93,25 +93,25 @@ "sessionKillFailed": "Không thể hủy phiên", "hostUnreachable": "Không thể kết nối đến máy chủ. Kiểm tra xem máy chủ có trực tuyến và có thể truy cập được không.", "noServer": "Không có máy chủ tmux nào đang chạy trên máy chủ này.", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "Kết quả một phần. Tìm kiếm bao gồm {{lines}} dòng cuối cùng của mỗi khung và tối đa {{panes}} khung.", "closeSearchResults": "Đóng kết quả tìm kiếm", "retry": "Thử lại", "noHosts": "Không có máy chủ SSH nào", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "Kích hoạt tùy chọn Tmux Monitor trên máy chủ SSH (Trình quản lý máy chủ, tab Tmux Monitor) để giám sát các phiên tmux của nó.", "tmuxInstallHint": "Cài đặt nó trên máy chủ bằng lệnh:", "attachTooltip": "Mở terminal đến {{host}}", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "Mở cửa sổ dòng lệnh tại {{host}}, phiên tmux {{session}}", "timeJustNow": "vừa xong", "timeMinutes": "{{count}} phút trước", "timeHours": "{{count}} giờ trước", "timeDays": "{{count}} ngày trước", "allHosts": "Tất cả máy chủ", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "Máy chủ đơn lẻ", + "hostScope": "Phạm vi giám sát", + "filterHosts": "Lọc máy chủ theo tên hoặc địa chỉ", + "selectHost": "Chọn máy chủ", + "toggleHost": "Mở rộng hoặc thu gọn {{host}}", + "noMatchingHosts": "Không tìm thấy máy chủ phù hợp", + "toggleSession": "Mở rộng hoặc thu gọn {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/zh_CN.json b/plugins/tmux-monitor/locales/translated/zh_CN.json index 8714521f0..755b70491 100644 --- a/plugins/tmux-monitor/locales/translated/zh_CN.json +++ b/plugins/tmux-monitor/locales/translated/zh_CN.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "使用 Tmux Monitor", + "description": "浏览和控制已启用监视器的主机上的 tmux 会话、窗口和窗格。" } }, "settings": { "host": { "enable": { "label": "启用 Tmux 监控", - "description": "Watch and attach to tmux sessions running on this host." + "description": "监视并附加到在此主机上运行的 tmux 会话。" }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "启用 tmux 鼠标支持", + "description": "在附加或创建 tmux 会话时,为该会话启用鼠标支持。其他会话和全局 tmux 设置保持不变。" } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "重命名会话失败", "editTagsTitle": "编辑 \"{{name}}\" 的标签", "killPane": "终止窗格", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "拖动调整大小,双击重置", "reattach": "重新附加(修复显示错乱)", "killWindow": "终止窗口", "killWindowTitle": "终止会话 \"{{session}}\" 的窗口 {{index}}?", @@ -93,25 +93,25 @@ "sessionKillFailed": "终止会话失败", "hostUnreachable": "无法连接到主机。请检查主机是否在线且可访问。", "noServer": "此主机上未运行 tmux 服务器。", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "部分结果。搜索范围涵盖每个窗格的最后 {{lines}} 行,最多涵盖 {{panes}} 个窗格。", "closeSearchResults": "关闭搜索结果", "retry": "重试", "noHosts": "没有可用的 SSH 主机", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "在 SSH 主机上启用 Tmux 监视器选项(主机管理器,Tmux 监视器选项卡)以监视其 tmux 会话。", "tmuxInstallHint": "使用以下命令在主机上安装:", "attachTooltip": "打开到 {{host}} 的终端", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "打开终端到 {{host}},tmux 会话 {{session}}", "timeJustNow": "刚刚", "timeMinutes": "{{count}} 分钟前", "timeHours": "{{count}} 小时前", "timeDays": "{{count}} 天前", "allHosts": "所有主机", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "单主机", + "hostScope": "监控范围", + "filterHosts": "按名称或地址筛选主机", + "selectHost": "选择主机", + "toggleHost": "展开或收起 {{host}}", + "noMatchingHosts": "没有匹配的主机", + "toggleSession": "展开或收起 {{session}}" } } diff --git a/plugins/tmux-monitor/locales/translated/zh_TW.json b/plugins/tmux-monitor/locales/translated/zh_TW.json index 875fa970f..8a49c98b0 100644 --- a/plugins/tmux-monitor/locales/translated/zh_TW.json +++ b/plugins/tmux-monitor/locales/translated/zh_TW.json @@ -14,19 +14,19 @@ }, "permissions": { "use": { - "title": "Use Tmux Monitor", - "description": "Browse and control tmux sessions, windows and panes on hosts with the monitor enabled." + "title": "使用 Tmux Monitor", + "description": "瀏覽和控制已啟用監視器的主機上的 tmux 會話、視窗和窗格。" } }, "settings": { "host": { "enable": { "label": "啟用 Tmux 監控器", - "description": "Watch and attach to tmux sessions running on this host." + "description": "監控並附加到在此主機上執行的 tmux 會話。" }, "mouseEnabled": { - "label": "Enable tmux mouse support", - "description": "Apply mouse support to the tmux session when attaching or creating a session. Other sessions and global tmux settings are unchanged." + "label": "啟用 tmux 滑鼠支持", + "description": "在附加或建立 tmux 會話時,為該會話啟用滑鼠支援。其他會話和全域 tmux 設定保持不變。" } } }, @@ -73,7 +73,7 @@ "sessionRenameFailed": "重新命名會話失敗", "editTagsTitle": "編輯「{{name}}」的標籤", "killPane": "終止窗格", - "resizeTree": "Drag to resize, double-click to reset", + "resizeTree": "拖曳調整大小,雙擊重置", "reattach": "重新附加(修復亂碼畫面)", "killWindow": "終止視窗", "killWindowTitle": "終止「{{session}}」的視窗 {{index}}?", @@ -93,25 +93,25 @@ "sessionKillFailed": "無法終止工作階段", "hostUnreachable": "無法連線至主機。請檢查主機是否在線上且可連線。", "noServer": "此主機上沒有正在執行的 tmux 伺服器。", - "searchTruncated": "Partial results. Search covers the last {{lines}} lines of each pane and at most {{panes}} panes.", + "searchTruncated": "部分結果。搜尋範圍涵蓋每個窗格的最後 {{lines}} 行,最多涵蓋 {{panes}} 個窗格。", "closeSearchResults": "關閉搜尋結果", "retry": "重試", "noHosts": "沒有可用的 SSH 主機", - "noHostsHint": "Enable the Tmux Monitor option on an SSH host (Host Manager, Tmux Monitor tab) to monitor its tmux sessions.", + "noHostsHint": "在 SSH 主機上啟用 Tmux 監視器選項(主機管理器,Tmux 監視器標籤)以監視其 tmux 會話。", "tmuxInstallHint": "在主機上使用以下指令安裝:", "attachTooltip": "開啟連至 {{host}} 的終端機", - "attachTooltipPane": "Open a terminal to {{host}}, tmux session {{session}}", + "attachTooltipPane": "開啟終端機到 {{host}},tmux 會話 {{session}}", "timeJustNow": "剛剛", "timeMinutes": "{{count}} 分鐘前", "timeHours": "{{count}} 小時前", "timeDays": "{{count}} 天前", "allHosts": "所有主機", - "singleHost": "Single host", - "hostScope": "Monitor scope", - "filterHosts": "Filter hosts by name or address", - "selectHost": "Select host", - "toggleHost": "Expand or collapse {{host}}", - "noMatchingHosts": "No matching hosts", - "toggleSession": "Expand or collapse {{session}}" + "singleHost": "單主機", + "hostScope": "監控範圍", + "filterHosts": "依名稱或位址篩選主機", + "selectHost": "選擇主機", + "toggleHost": "展開或收起 {{host}}", + "noMatchingHosts": "沒有符合的主機", + "toggleSession": "展開或收起 {{session}}" } } diff --git a/plugins/totp/locales/translated/bn_BD.json b/plugins/totp/locales/translated/bn_BD.json index 4610c7ac3..7bc8b1ff2 100644 --- a/plugins/totp/locales/translated/bn_BD.json +++ b/plugins/totp/locales/translated/bn_BD.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "প্রমাণীকরণ অ্যাপ", + "factor": "প্রমাণীকরণ কোড", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "যাচাইকরণ কোড প্রবেশ করান", + "verify": "কোড যাচাই করুন", + "backupCodeHint": "আপনি আপনার ব্যাকআপ কোডগুলোর মধ্যে একটিও প্রবেশ করাতে পারেন।" }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "TOTP প্রমাণীকরণকারী", + "docs": "ডাক্তাররা", + "on": "2FA সক্রিয় করা হয়েছে", + "off": "অতিরিক্ত লগইন নিরাপত্তা যোগ করুন", + "enable": "সক্ষম করুন", + "disable": "অক্ষম করুন", + "addDevice": "ডিভাইস যোগ করুন", + "addTitle": "প্রমাণীকরণ ডিভাইস যোগ করুন", + "addDescription": "একই কী ব্যবহার করে অন্য একটি ডিভাইস এনরোল করতে, আপনার অথেন্টিকেটর থেকে পাওয়া কোড অথবা একটি ব্যাকআপ কোড দিয়ে নিশ্চিত করুন।", + "addScanInstructions": "অতিরিক্ত অথেন্টিকেটর দিয়ে এই কিউআর কোডটি স্ক্যান করুন। বিদ্যমান অথেন্টিকেটরগুলো কাজ করতে থাকবে।", + "addSuccess": "অতিরিক্ত প্রমাণীকরণকারী নথিভুক্ত করা হয়েছে", + "addFailed": "প্রমাণীকরণকারী যোগ করতে ব্যর্থ হয়েছে", + "codeRequired": "একটি TOTP কোড অথবা ব্যাকআপ কোড প্রবেশ করান।", + "codePlaceholder": "TOTP কোড বা ব্যাকআপ কোড", + "setupTitle": "TOTP সেটআপ করুন", + "setupFailed": "TOTP সেটআপ শুরু করতে ব্যর্থ হয়েছে", + "qrCode": "কিউআর কোড", + "secretCopied": "গোপনীয় তথ্য ক্লিপবোর্ডে কপি করা হয়েছে", + "instructions": "কিউআর কোডটি স্ক্যান করুন অথবা আপনার অথেন্টিকেটর অ্যাপে সিক্রেটটি প্রবেশ করান, তারপর ৬-সংখ্যার কোডটি প্রবেশ করান।", + "continueVerify": "যাচাই চালিয়ে যান", + "verifyTitle": "কোড যাচাই করুন", + "verify": "যাচাই করুন", + "enter6Digits": "একটি ৬-সংখ্যার কোড প্রবেশ করান", + "enabledSuccess": "দ্বি-স্তর প্রমাণীকরণ সক্রিয় করা হয়েছে", + "invalidCode": "কোডটি ভুল, অনুগ্রহ করে আবার চেষ্টা করুন।", + "disableTitle": "2FA নিষ্ক্রিয় করুন", + "disabledSuccess": "দ্বি-স্তর প্রমাণীকরণ নিষ্ক্রিয় করা হয়েছে", + "disableFailed": "2FA নিষ্ক্রিয় করতে ব্যর্থ হয়েছে", + "backupTitle": "ব্যাকআপ কোড", + "downloadBackup": "ব্যাকআপ কোড ডাউনলোড করুন", + "done": "সম্পন্ন হয়েছে" } } diff --git a/plugins/totp/locales/translated/hi_IN.json b/plugins/totp/locales/translated/hi_IN.json index f9f5e3e75..9ec76c3b2 100644 --- a/plugins/totp/locales/translated/hi_IN.json +++ b/plugins/totp/locales/translated/hi_IN.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "प्रमाणीकरण ऐप", + "factor": "प्रमाणीकरण कोड", "challenge": { "enterCode": "सत्यापन कोड दर्ज करें", "verify": "कोड सत्यापित करें", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "आप अपने बैकअप कोड में से एक भी दर्ज कर सकते हैं।" }, "enrollment": { "title": "TOTP प्रमाणक", @@ -13,19 +13,19 @@ "off": "अतिरिक्त लॉगिन सुरक्षा जोड़ें", "enable": "सक्षम करें", "disable": "अक्षम करें", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "डिवाइस जोडे", + "addTitle": "प्रमाणीकरण उपकरण जोड़ें", + "addDescription": "अपने प्रमाणीकरणकर्ता से प्राप्त कोड या बैकअप कोड का उपयोग करके पुष्टि करें ताकि उसी कुंजी के साथ किसी अन्य डिवाइस को नामांकित किया जा सके।", + "addScanInstructions": "इस क्यूआर कोड को अतिरिक्त प्रमाणीकरण उपकरण से स्कैन करें। मौजूदा प्रमाणीकरण उपकरण काम करते रहेंगे।", + "addSuccess": "अतिरिक्त प्रमाणीकरणकर्ता नामांकित किया गया", + "addFailed": "प्रमाणीकरणकर्ता जोड़ने में विफल", + "codeRequired": "टीओटीपी कोड या बैकअप कोड दर्ज करें", + "codePlaceholder": "टीओटीपी कोड या बैकअप कोड", "setupTitle": "TOTP सेटअप करें", "setupFailed": "TOTP सेटअप शुरू करने में विफल", "qrCode": "QR कोड", "secretCopied": "सीक्रेट क्लिपबोर्ड पर कॉपी किया गया", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "क्यूआर कोड को स्कैन करें या अपने प्रमाणीकरण ऐप में गुप्त जानकारी दर्ज करें, फिर 6 अंकों का कोड दर्ज करें।", "continueVerify": "सत्यापन जारी रखें", "verifyTitle": "कोड सत्यापित करें", "verify": "सत्यापित करें", diff --git a/plugins/totp/locales/translated/id_ID.json b/plugins/totp/locales/translated/id_ID.json index 4610c7ac3..ac67af602 100644 --- a/plugins/totp/locales/translated/id_ID.json +++ b/plugins/totp/locales/translated/id_ID.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Aplikasi Otentikator", + "factor": "Kode otentikasi", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Masukkan kode verifikasi", + "verify": "Verifikasi Kode", + "backupCodeHint": "Anda juga dapat memasukkan salah satu kode cadangan Anda." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "Otentikator TOTP", + "docs": "Dokumen", + "on": "Otentikasi dua faktor (2FA) diaktifkan.", + "off": "Tambahkan keamanan login ekstra", + "enable": "Memungkinkan", + "disable": "Cacat", + "addDevice": "Tambahkan perangkat", + "addTitle": "Tambahkan perangkat otentikasi", + "addDescription": "Konfirmasikan dengan kode dari aplikasi otentikasi Anda atau kode cadangan untuk mendaftarkan perangkat lain dengan kunci yang sama.", + "addScanInstructions": "Pindai kode QR ini dengan otentikator tambahan. Otentikator yang sudah ada akan tetap berfungsi.", + "addSuccess": "Autentikator tambahan terdaftar", + "addFailed": "Gagal menambahkan autentikator", + "codeRequired": "Masukkan kode TOTP atau kode cadangan.", + "codePlaceholder": "Kode TOTP atau kode cadangan", + "setupTitle": "Pengaturan TOTP", + "setupFailed": "Gagal memulai pengaturan TOTP", + "qrCode": "Kode QR", + "secretCopied": "Rahasia disalin ke papan klip", + "instructions": "Pindai kode QR atau masukkan kode rahasia di aplikasi otentikasi Anda, lalu masukkan kode 6 digit.", + "continueVerify": "Lanjutkan Verifikasi", + "verifyTitle": "Verifikasi Kode", + "verify": "Memeriksa", + "enter6Digits": "Masukkan kode 6 digit", + "enabledSuccess": "Autentikasi dua faktor diaktifkan", + "invalidCode": "Kode tidak valid, silakan coba lagi.", + "disableTitle": "Nonaktifkan otentikasi dua faktor (2FA).", + "disabledSuccess": "Autentikasi dua faktor dinonaktifkan", + "disableFailed": "Gagal menonaktifkan 2FA.", + "backupTitle": "Kode Cadangan", + "downloadBackup": "Unduh Kode Cadangan", + "done": "Selesai" } } diff --git a/plugins/totp/locales/translated/nl_NL.json b/plugins/totp/locales/translated/nl_NL.json index 4610c7ac3..4b82ac17f 100644 --- a/plugins/totp/locales/translated/nl_NL.json +++ b/plugins/totp/locales/translated/nl_NL.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Authenticator-app", + "factor": "Authenticatiecode", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Voer de verificatiecode in.", + "verify": "Code verifiëren", + "backupCodeHint": "Je kunt ook een van je back-upcodes invoeren." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "TOTP-authenticator", + "docs": "Dokters", + "on": "Tweefactorauthenticatie (2FA) is ingeschakeld.", + "off": "Voeg extra inlogbeveiliging toe.", + "enable": "Inschakelen", + "disable": "Uitzetten", + "addDevice": "Apparaat toevoegen", + "addTitle": "Authenticatorapparaat toevoegen", + "addDescription": "Bevestig met een code van uw authenticatieapparaat of een back-upcode om een ander apparaat met dezelfde sleutel te registreren.", + "addScanInstructions": "Scan deze QR-code met de extra authenticatie-app. Bestaande authenticatie-apps blijven gewoon werken.", + "addSuccess": "Extra authenticatie-app geregistreerd", + "addFailed": "Authenticator toevoegen mislukt", + "codeRequired": "Voer een TOTP-code of back-upcode in.", + "codePlaceholder": "TOTP-code of back-upcode", + "setupTitle": "TOTP instellen", + "setupFailed": "Het starten van de TOTP-configuratie is mislukt.", + "qrCode": "QR-code", + "secretCopied": "Geheim gekopieerd naar het klembord", + "instructions": "Scan de QR-code of voer het geheim in uw authenticatie-app in en voer vervolgens de 6-cijferige code in.", + "continueVerify": "Doorgaan met verifiëren", + "verifyTitle": "Code verifiëren", + "verify": "Verifiëren", + "enter6Digits": "Voer een 6-cijferige code in", + "enabledSuccess": "Tweefactorauthenticatie ingeschakeld", + "invalidCode": "Ongeldige code, probeer het opnieuw.", + "disableTitle": "Schakel 2FA uit", + "disabledSuccess": "Tweefactorauthenticatie uitgeschakeld", + "disableFailed": "Het uitschakelen van 2FA is mislukt.", + "backupTitle": "Back-upcodes", + "downloadBackup": "Back-upcodes downloaden", + "done": "Klaar" } } diff --git a/plugins/totp/locales/translated/no_NO.json b/plugins/totp/locales/translated/no_NO.json index 167e5c04a..8b2806720 100644 --- a/plugins/totp/locales/translated/no_NO.json +++ b/plugins/totp/locales/translated/no_NO.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Autentiseringsapp", + "factor": "Autentiseringskode", "challenge": { "enterCode": "Angi verifikasjonskode", "verify": "Bekreft kode", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Du kan også oppgi en av reservekodene dine." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", + "title": "TOTP-autentisering", + "docs": "Dokumenter", + "on": "2FA er aktivert", + "off": "Legg til ekstra sikkerhet for pålogging", + "enable": "Aktiver", + "disable": "Deaktiver", + "addDevice": "Legg til enhet", + "addTitle": "Legg til autentiseringsenhet", + "addDescription": "Bekreft med en kode fra autentiseringsverktøyet ditt eller en reservekode for å registrere en annen enhet med samme nøkkel.", + "addScanInstructions": "Skann denne QR-koden med den ekstra autentiseringsfunksjonen. Eksisterende autentiseringsfunksjoner vil fortsette å fungere.", + "addSuccess": "Ekstra autentiseringsfunksjon registrert", + "addFailed": "Kunne ikke legge til autentiseringsfunksjonen", + "codeRequired": "Skriv inn en TOTP-kode eller sikkerhetskode", + "codePlaceholder": "TOTP-kode eller sikkerhetskode", + "setupTitle": "Konfigurer TOTP", "setupFailed": "Kunne ikke starte TOTP-oppsett", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", + "qrCode": "QR-kode", + "secretCopied": "Hemmelighet kopiert til utklippstavlen", + "instructions": "Skann QR-koden eller skriv inn hemmeligheten i autentiseringsappen din, og skriv deretter inn den 6-sifrede koden", + "continueVerify": "Fortsett å bekrefte", "verifyTitle": "Bekreft kode", "verify": "Verifiser", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", + "enter6Digits": "Skriv inn en 6-sifret kode", + "enabledSuccess": "Tofaktorautentisering aktivert", + "invalidCode": "Ugyldig kode, prøv på nytt", "disableTitle": "Deaktiver 2FA", "disabledSuccess": "Tofaktorautentisering er deaktivert", - "disableFailed": "Failed to disable 2FA", + "disableFailed": "Kunne ikke deaktivere 2FA", "backupTitle": "Reservekoder", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "downloadBackup": "Last ned sikkerhetskoder", + "done": "Ferdig" } } diff --git a/plugins/totp/locales/translated/pl_PL.json b/plugins/totp/locales/translated/pl_PL.json index 3331e2b6e..2da7f3c72 100644 --- a/plugins/totp/locales/translated/pl_PL.json +++ b/plugins/totp/locales/translated/pl_PL.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Aplikacja uwierzytelniająca", + "factor": "Kod uwierzytelniający", "challenge": { "enterCode": "Wprowadź kod weryfikacyjny", "verify": "Zweryfikuj kod", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Możesz również wpisać jeden ze swoich kodów zapasowych." }, "enrollment": { "title": "Aplikacja TOTP", @@ -13,19 +13,19 @@ "off": "Dodaj dodatkowe zabezpieczenia logowania", "enable": "Włącz", "disable": "Wyłącz", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "Dodaj urządzenie", + "addTitle": "Dodaj urządzenie uwierzytelniające", + "addDescription": "Potwierdź kodem z uwierzytelniacza lub kodem zapasowym, aby zarejestrować inne urządzenie za pomocą tego samego klucza.", + "addScanInstructions": "Zeskanuj ten kod QR za pomocą dodatkowego uwierzytelniacza. Istniejące uwierzytelniacze będą nadal działać.", + "addSuccess": "Zarejestrowano dodatkowego uwierzytelniacza", + "addFailed": "Nie udało się dodać uwierzytelniacza", + "codeRequired": "Wprowadź kod TOTP lub kod zapasowy", + "codePlaceholder": "Kod TOTP lub kod zapasowy", "setupTitle": "Skonfiguruj TOTP", "setupFailed": "Nie udało się uruchomić konfiguracji TOTP", "qrCode": "Kod QR", "secretCopied": "Skopiowano sekret do schowka", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "Zeskanuj kod QR lub wprowadź kod w aplikacji uwierzytelniającej, a następnie wprowadź 6-cyfrowy kod", "continueVerify": "Kontynuuj weryfikację", "verifyTitle": "Zweryfikuj kod", "verify": "Zweryfikuj", diff --git a/plugins/totp/locales/translated/pt_BR.json b/plugins/totp/locales/translated/pt_BR.json index 4610c7ac3..d4cc4a343 100644 --- a/plugins/totp/locales/translated/pt_BR.json +++ b/plugins/totp/locales/translated/pt_BR.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Aplicativo autenticador", + "factor": "Código de autenticação", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Insira o código de verificação", + "verify": "Código de verificação", + "backupCodeHint": "Você também pode inserir um de seus códigos de backup." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "Autenticador TOTP", + "docs": "Documentos", + "on": "A autenticação de dois fatores está ativada.", + "off": "Adicione segurança extra ao login.", + "enable": "Habilitar", + "disable": "Desativar", + "addDevice": "Adicionar dispositivo", + "addTitle": "Adicionar dispositivo autenticador", + "addDescription": "Confirme com um código do seu autenticador ou um código de backup para cadastrar outro dispositivo com a mesma chave.", + "addScanInstructions": "Escaneie este código QR com o autenticador adicional. Os autenticadores existentes continuarão funcionando.", + "addSuccess": "Autenticador adicional cadastrado", + "addFailed": "Falha ao adicionar autenticador", + "codeRequired": "Insira um código TOTP ou um código de backup.", + "codePlaceholder": "Código TOTP ou código de backup", + "setupTitle": "Configurar TOTP", + "setupFailed": "Falha ao iniciar a configuração TOTP", + "qrCode": "Código QR", + "secretCopied": "Segredo copiado para a área de transferência", + "instructions": "Escaneie o código QR ou insira a chave secreta no seu aplicativo autenticador e, em seguida, digite o código de 6 dígitos.", + "continueVerify": "Continuar a verificar", + "verifyTitle": "Código de verificação", + "verify": "Verificar", + "enter6Digits": "Digite um código de 6 dígitos", + "enabledSuccess": "Autenticação de dois fatores ativada", + "invalidCode": "Código inválido, tente novamente.", + "disableTitle": "Desative a autenticação de dois fatores (2FA).", + "disabledSuccess": "Autenticação de dois fatores desativada", + "disableFailed": "Falha ao desativar a autenticação de dois fatores (2FA).", + "backupTitle": "Códigos de backup", + "downloadBackup": "Baixar códigos de backup", + "done": "Feito" } } diff --git a/plugins/totp/locales/translated/pt_PT.json b/plugins/totp/locales/translated/pt_PT.json index 9f400b3be..4a15055db 100644 --- a/plugins/totp/locales/translated/pt_PT.json +++ b/plugins/totp/locales/translated/pt_PT.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Aplicativo autenticador", + "factor": "Código de autenticação", "challenge": { "enterCode": "Introduza o código de verificação", "verify": "Verificar Código", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Também pode inserir um dos seus códigos de backup." }, "enrollment": { "title": "Autenticador TOTP", @@ -13,19 +13,19 @@ "off": "Adicionar segurança extra de início de sessão", "enable": "Ativar", "disable": "Desativar", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "Adicionar dispositivo", + "addTitle": "Adicionar dispositivo autenticador", + "addDescription": "Confirme com um código do seu autenticador ou um código de cópia de segurança para registar outro dispositivo com a mesma chave.", + "addScanInstructions": "Digitalize este código QR com o autenticador adicional. Os autenticadores existentes continuarão a funcionar.", + "addSuccess": "Autenticador adicional registado", + "addFailed": "Falha ao adicionar autenticador", + "codeRequired": "Introduza um código TOTP ou um código de cópia de segurança.", + "codePlaceholder": "Código TOTP ou código de cópia de segurança", "setupTitle": "Configurar TOTP", "setupFailed": "Falha ao iniciar a configuração de TOTP", "qrCode": "Código QR", "secretCopied": "Segredo copiado para a área de transferência", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "Digitalize o código QR ou introduza a chave secreta na sua aplicação autenticadora e, em seguida, introduza o código de 6 dígitos.", "continueVerify": "Continuar para Verificação", "verifyTitle": "Verificar Código", "verify": "Verificar", diff --git a/plugins/totp/locales/translated/ru_RU.json b/plugins/totp/locales/translated/ru_RU.json index 721ddbab1..440dc8488 100644 --- a/plugins/totp/locales/translated/ru_RU.json +++ b/plugins/totp/locales/translated/ru_RU.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Приложение-аутентификатор", + "factor": "Код аутентификатора", "challenge": { "enterCode": "Введите код подтверждения", "verify": "Проверка кода", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Вы также можете ввести один из своих резервных кодов." }, "enrollment": { "title": "Аутентификатор TOTP", @@ -13,19 +13,19 @@ "off": "Добавить дополнительную защиту", "enable": "Включить", "disable": "Отключить", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "Добавить устройство", + "addTitle": "Добавить устройство аутентификации", + "addDescription": "Для регистрации другого устройства с тем же ключом подтвердите действие с помощью кода от вашего аутентификатора или резервного кода.", + "addScanInstructions": "Отсканируйте этот QR-код с помощью дополнительного аутентификатора. Существующие аутентификаторы продолжат работать.", + "addSuccess": "Зарегистрирован дополнительный аутентификатор.", + "addFailed": "Не удалось добавить аутентификатор.", + "codeRequired": "Введите TOTP-код или резервный код.", + "codePlaceholder": "TOTP-код или резервный код", "setupTitle": "Настроить TOTP", "setupFailed": "Не удалось запустить настройку TOTP", "qrCode": "QR-код", "secretCopied": "Секрет скопирован в буфер обмена", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "Отсканируйте QR-код или введите секретный код в приложении-аутентификаторе, затем введите 6-значный код.", "continueVerify": "Продолжить проверку", "verifyTitle": "Проверка кода", "verify": "Подтвердить", diff --git a/plugins/totp/locales/translated/sr_SP.json b/plugins/totp/locales/translated/sr_SP.json index 4610c7ac3..62a97afd0 100644 --- a/plugins/totp/locales/translated/sr_SP.json +++ b/plugins/totp/locales/translated/sr_SP.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Апликација за аутентификатор", + "factor": "Код за аутентификатор", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Унесите верификациони код", + "verify": "Верификујте код", + "backupCodeHint": "Такође можете унети један од својих резервних кодова." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "TOTP аутентификатор", + "docs": "Документи", + "on": "2FA је омогућена", + "off": "Додајте додатну безбедност пријављивања", + "enable": "Омогући", + "disable": "Онемогући", + "addDevice": "Додај уређај", + "addTitle": "Додај уређај за аутентификовање", + "addDescription": "Потврдите помоћу кода са вашег аутентификатора или резервног кода да бисте регистровали други уређај са истим кључем.", + "addScanInstructions": "Скенирајте овај QR код додатним аутентификатором. Постојећи аутентификатори ће наставити да раде.", + "addSuccess": "Додатни аутентификатор је регистрован", + "addFailed": "Додавање аутентификатора није успело", + "codeRequired": "Унесите TOTP код или резервни код", + "codePlaceholder": "TOTP код или резервни код", + "setupTitle": "Подешавање TOTP-а", + "setupFailed": "Покретање подешавања TOTP-а није успело", + "qrCode": "QR код", + "secretCopied": "Тајни токен је копиран у међуспремник", + "instructions": "Скенирајте QR код или унесите тајни код у апликацију за аутентификацију, а затим унесите шестоцифрени код", + "continueVerify": "Настави са верификацијом", + "verifyTitle": "Верификујте код", + "verify": "Верификуј", + "enter6Digits": "Унесите шестоцифрени код", + "enabledSuccess": "Омогућена је двофакторска аутентификација", + "invalidCode": "Неважећи код, покушајте поново", + "disableTitle": "Онемогући 2FA", + "disabledSuccess": "Двофакторска аутентификација је онемогућена", + "disableFailed": "Онемогућавање 2FA није успело", + "backupTitle": "Резервни кодови", + "downloadBackup": "Преузмите резервне кодове", + "done": "Готово" } } diff --git a/plugins/totp/locales/translated/sv_SE.json b/plugins/totp/locales/translated/sv_SE.json index 4610c7ac3..0b9310fa5 100644 --- a/plugins/totp/locales/translated/sv_SE.json +++ b/plugins/totp/locales/translated/sv_SE.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Autentiseringsapp", + "factor": "Autentiseringskod", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Ange verifieringskod", + "verify": "Verifiera kod", + "backupCodeHint": "Du kan också ange en av dina reservkoder." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "TOTP-autentiserare", + "docs": "Dokument", + "on": "2FA är aktiverat", + "off": "Lägg till extra inloggningssäkerhet", + "enable": "Aktivera", + "disable": "Inaktivera", + "addDevice": "Lägg till enhet", + "addTitle": "Lägg till autentiseringsenhet", + "addDescription": "Bekräfta med en kod från din autentiserare eller en reservkod för att registrera en annan enhet med samma nyckel.", + "addScanInstructions": "Skanna den här QR-koden med den extra autentiseringsfunktionen. Befintliga autentiseringsfunktioner kommer att fortsätta fungera.", + "addSuccess": "Ytterligare autentiserare registrerad", + "addFailed": "Misslyckades med att lägga till autentiserare", + "codeRequired": "Ange en TOTP-kod eller reservkod", + "codePlaceholder": "TOTP-kod eller reservkod", + "setupTitle": "Konfigurera TOTP", + "setupFailed": "Misslyckades med att starta TOTP-installationen", + "qrCode": "QR-kod", + "secretCopied": "Hemlighet kopierad till urklipp", + "instructions": "Skanna QR-koden eller ange hemligheten i din autentiseringsapp och ange sedan den 6-siffriga koden", + "continueVerify": "Fortsätt att verifiera", + "verifyTitle": "Verifiera kod", + "verify": "Kontrollera", + "enter6Digits": "Ange en 6-siffrig kod", + "enabledSuccess": "Tvåfaktorsautentisering aktiverad", + "invalidCode": "Ogiltig kod, försök igen", + "disableTitle": "Inaktivera 2FA", + "disabledSuccess": "Tvåfaktorsautentisering inaktiverad", + "disableFailed": "Misslyckades med att inaktivera 2FA", + "backupTitle": "Reservkoder", + "downloadBackup": "Ladda ner reservkoder", + "done": "Gjort" } } diff --git a/plugins/totp/locales/translated/th_TH.json b/plugins/totp/locales/translated/th_TH.json index 4610c7ac3..b0f590c65 100644 --- a/plugins/totp/locales/translated/th_TH.json +++ b/plugins/totp/locales/translated/th_TH.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "แอปตรวจสอบสิทธิ์", + "factor": "รหัสยืนยันตัวตน", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "ป้อนรหัสยืนยัน", + "verify": "ยืนยันรหัส", + "backupCodeHint": "คุณสามารถป้อนรหัสสำรองของคุณได้เช่นกัน" }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "ตัวตรวจสอบสิทธิ์ TOTP", + "docs": "เอกสาร", + "on": "เปิดใช้งาน 2FA แล้ว", + "off": "เพิ่มระบบรักษาความปลอดภัยในการเข้าสู่ระบบเพิ่มเติม", + "enable": "เปิดใช้งาน", + "disable": "ปิดใช้งาน", + "addDevice": "เพิ่มอุปกรณ์", + "addTitle": "เพิ่มอุปกรณ์ยืนยันตัวตน", + "addDescription": "ยืนยันด้วยรหัสจากแอปยืนยันตัวตนของคุณ หรือใช้รหัสสำรองเพื่อลงทะเบียนอุปกรณ์อื่นด้วยรหัสเดียวกัน", + "addScanInstructions": "สแกนคิวอาร์โค้ดนี้ด้วยอุปกรณ์ยืนยันตัวตนเพิ่มเติม อุปกรณ์ยืนยันตัวตนที่มีอยู่เดิมยังคงใช้งานได้ต่อไป", + "addSuccess": "ลงทะเบียนตัวยืนยันตัวตนเพิ่มเติมแล้ว", + "addFailed": "ไม่สามารถเพิ่มตัวตรวจสอบสิทธิ์ได้", + "codeRequired": "ป้อนรหัส TOTP หรือรหัสสำรอง", + "codePlaceholder": "รหัส TOTP หรือรหัสสำรอง", + "setupTitle": "ตั้งค่า TOTP", + "setupFailed": "ไม่สามารถเริ่มการตั้งค่า TOTP ได้", + "qrCode": "รหัส QR", + "secretCopied": "คัดลอกข้อมูลลับไปยังคลิปบอร์ดแล้ว", + "instructions": "สแกนคิวอาร์โค้ดหรือป้อนรหัสลับในแอปยืนยันตัวตนของคุณ จากนั้นป้อนรหัส 6 หลัก", + "continueVerify": "ดำเนินการตรวจสอบต่อไป", + "verifyTitle": "ยืนยันรหัส", + "verify": "ตรวจสอบ", + "enter6Digits": "ป้อนรหัส 6 หลัก", + "enabledSuccess": "เปิดใช้งานการตรวจสอบสิทธิ์แบบสองขั้นตอน", + "invalidCode": "รหัสไม่ถูกต้อง โปรดลองอีกครั้ง", + "disableTitle": "ปิดใช้งาน 2FA", + "disabledSuccess": "ปิดใช้งานการตรวจสอบสิทธิ์แบบสองขั้นตอน", + "disableFailed": "ไม่สามารถปิดใช้งาน 2FA ได้", + "backupTitle": "รหัสสำรอง", + "downloadBackup": "ดาวน์โหลดรหัสสำรอง", + "done": "เสร็จแล้ว" } } diff --git a/plugins/totp/locales/translated/tr_TR.json b/plugins/totp/locales/translated/tr_TR.json index e90967fa9..2917fd57c 100644 --- a/plugins/totp/locales/translated/tr_TR.json +++ b/plugins/totp/locales/translated/tr_TR.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Kimlik Doğrulama Uygulaması", + "factor": "Kimlik doğrulama kodu", "challenge": { "enterCode": "Doğrulama kodunu girin", "verify": "Kodu Doğrula", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Yedek kodlarınızdan birini de girebilirsiniz." }, "enrollment": { "title": "TOTP Kimlik Doğrulayıcı", @@ -13,19 +13,19 @@ "off": "Ek giriş güvenliği ekleyin", "enable": "Etkinleştir", "disable": "Devre Dışı Bırak", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "Cihaz ekle", + "addTitle": "Kimlik doğrulama cihazı ekle", + "addDescription": "Kimlik doğrulayıcınızdan aldığınız bir kodla veya aynı anahtarı kullanan başka bir cihazı kaydetmek için yedek bir kodla onaylayın.", + "addScanInstructions": "Bu QR kodunu ek kimlik doğrulayıcı ile tarayın. Mevcut kimlik doğrulayıcılar çalışmaya devam edecektir.", + "addSuccess": "Ek kimlik doğrulayıcı kaydedildi.", + "addFailed": "Kimlik doğrulayıcı eklenemedi.", + "codeRequired": "TOTP kodunu veya yedek kodu girin.", + "codePlaceholder": "TOTP kodu veya yedek kod", "setupTitle": "TOTP Kurulumu", "setupFailed": "TOTP kurulumu başlatılamadı", "qrCode": "QR Kodu", "secretCopied": "Gizli anahtar panoya kopyalandı", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "QR kodunu tarayın veya kimlik doğrulama uygulamanıza gizli kodu girin, ardından 6 haneli kodu girin.", "continueVerify": "Doğrulamaya Devam Et", "verifyTitle": "Kodu Doğrula", "verify": "Doğrula", diff --git a/plugins/totp/locales/translated/uk_UA.json b/plugins/totp/locales/translated/uk_UA.json index 4610c7ac3..932318796 100644 --- a/plugins/totp/locales/translated/uk_UA.json +++ b/plugins/totp/locales/translated/uk_UA.json @@ -1,42 +1,42 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Додаток для автентифікатора", + "factor": "Код автентифікатора", "challenge": { - "enterCode": "Enter verification code", - "verify": "Verify Code", - "backupCodeHint": "You can also enter one of your backup codes." + "enterCode": "Введіть код підтвердження", + "verify": "Підтвердити код", + "backupCodeHint": "Ви також можете ввести один зі своїх резервних кодів." }, "enrollment": { - "title": "TOTP Authenticator", - "docs": "Docs", - "on": "2FA is enabled", - "off": "Add extra login security", - "enable": "Enable", - "disable": "Disable", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", - "setupTitle": "Setup TOTP", - "setupFailed": "Failed to start TOTP setup", - "qrCode": "QR Code", - "secretCopied": "Secret copied to clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", - "continueVerify": "Continue to Verify", - "verifyTitle": "Verify Code", - "verify": "Verify", - "enter6Digits": "Enter a 6-digit code", - "enabledSuccess": "Two-factor authentication enabled", - "invalidCode": "Invalid code, please try again", - "disableTitle": "Disable 2FA", - "disabledSuccess": "Two-factor authentication disabled", - "disableFailed": "Failed to disable 2FA", - "backupTitle": "Backup Codes", - "downloadBackup": "Download Backup Codes", - "done": "Done" + "title": "Аутентифікатор TOTP", + "docs": "Документи", + "on": "Двофакторна аутентифікація (2FA) увімкнена", + "off": "Додайте додаткову безпеку входу", + "enable": "Увімкнути", + "disable": "Вимкнути", + "addDevice": "Додати пристрій", + "addTitle": "Додати пристрій автентифікатора", + "addDescription": "Підтвердьте кодом зі свого автентифікатора або резервним кодом, щоб зареєструвати інший пристрій з тим самим ключем.", + "addScanInstructions": "Відскануйте цей QR-код за допомогою додаткового автентифікатора. Існуючі автентифікатори продовжуватимуть працювати.", + "addSuccess": "Зареєстровано додатковий автентифікатор", + "addFailed": "Не вдалося додати автентифікатор", + "codeRequired": "Введіть код TOTP або резервний код", + "codePlaceholder": "Код TOTP або резервний код", + "setupTitle": "Налаштування TOTP", + "setupFailed": "Не вдалося розпочати налаштування TOTP", + "qrCode": "QR-код", + "secretCopied": "Секрет скопійовано в буфер обміну", + "instructions": "Відскануйте QR-код або введіть секретний код у вашому додатку для автентифікації, а потім введіть 6-значний код", + "continueVerify": "Продовжити перевірку", + "verifyTitle": "Підтвердити код", + "verify": "Перевірити", + "enter6Digits": "Введіть 6-значний код", + "enabledSuccess": "Двофакторна автентифікація ввімкнена", + "invalidCode": "Недійсний код, спробуйте ще раз", + "disableTitle": "Вимкнути 2FA", + "disabledSuccess": "Двофакторну автентифікацію вимкнено", + "disableFailed": "Не вдалося вимкнути 2FA", + "backupTitle": "Резервні коди", + "downloadBackup": "Завантажити резервні коди", + "done": "Готово" } } diff --git a/plugins/totp/locales/translated/vi_VN.json b/plugins/totp/locales/translated/vi_VN.json index 52d1e5db3..12ff823b7 100644 --- a/plugins/totp/locales/translated/vi_VN.json +++ b/plugins/totp/locales/translated/vi_VN.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "Ứng dụng xác thực", + "factor": "Mã xác thực", "challenge": { "enterCode": "Nhập mã xác minh", "verify": "Xác minh mã", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "Bạn cũng có thể nhập một trong các mã dự phòng của mình." }, "enrollment": { "title": "Trình xác thực TOTP", @@ -13,19 +13,19 @@ "off": "Thêm bảo mật đăng nhập bổ sung", "enable": "Bật", "disable": "Tắt", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "Thêm thiết bị", + "addTitle": "Thêm thiết bị xác thực", + "addDescription": "Xác nhận bằng mã từ thiết bị xác thực của bạn hoặc mã dự phòng để đăng ký thiết bị khác với cùng một khóa.", + "addScanInstructions": "Quét mã QR này bằng thiết bị xác thực bổ sung. Các thiết bị xác thực hiện có vẫn sẽ hoạt động bình thường.", + "addSuccess": "Đã đăng ký thêm trình xác thực.", + "addFailed": "Thêm trình xác thực không thành công", + "codeRequired": "Nhập mã TOTP hoặc mã dự phòng.", + "codePlaceholder": "Mã TOTP hoặc mã dự phòng", "setupTitle": "Thiết lập TOTP", "setupFailed": "Không khởi động được cài đặt TOTP", "qrCode": "Mã QR", "secretCopied": "Đã sao chép mã bí mật vào clipboard", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "Quét mã QR hoặc nhập mã bí mật vào ứng dụng xác thực của bạn, sau đó nhập mã 6 chữ số.", "continueVerify": "Tiếp tục xác minh", "verifyTitle": "Xác minh mã", "verify": "Xác minh", diff --git a/plugins/totp/locales/translated/zh_CN.json b/plugins/totp/locales/translated/zh_CN.json index cd3e61792..e89071e4c 100644 --- a/plugins/totp/locales/translated/zh_CN.json +++ b/plugins/totp/locales/translated/zh_CN.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "身份验证器应用程序", + "factor": "验证码", "challenge": { "enterCode": "输入验证码", "verify": "验证", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "您也可以输入备用代码之一。" }, "enrollment": { "title": "TOTP 身份验证器", @@ -13,19 +13,19 @@ "off": "添加额外的登录安全", "enable": "启用", "disable": "禁用", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "添加设备", + "addTitle": "添加身份验证器设备", + "addDescription": "使用验证器中的验证码或备用验证码进行确认,以便使用同一密钥注册另一台设备。", + "addScanInstructions": "请使用新增的验证器扫描此二维码。现有验证器将继续有效。", + "addSuccess": "已注册其他身份验证器", + "addFailed": "添加身份验证器失败", + "codeRequired": "输入 TOTP 代码或备用代码", + "codePlaceholder": "TOTP 代码或备用代码", "setupTitle": "设置 TOTP", "setupFailed": "启动 TOTP 设置失败", "qrCode": "二维码", "secretCopied": "密钥已复制到剪贴板", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "扫描二维码或在身份验证器应用中输入密钥,然后输入 6 位数验证码", "continueVerify": "继续验证", "verifyTitle": "验证", "verify": "验证", diff --git a/plugins/totp/locales/translated/zh_TW.json b/plugins/totp/locales/translated/zh_TW.json index c71c6c207..9fe0f6bb2 100644 --- a/plugins/totp/locales/translated/zh_TW.json +++ b/plugins/totp/locales/translated/zh_TW.json @@ -1,10 +1,10 @@ { - "title": "Authenticator App", - "factor": "Authenticator code", + "title": "身份驗證器應用程式", + "factor": "驗證碼", "challenge": { "enterCode": "請輸入驗證碼", "verify": "驗證碼", - "backupCodeHint": "You can also enter one of your backup codes." + "backupCodeHint": "您也可以輸入備用代碼之一。" }, "enrollment": { "title": "TOTP 驗證器", @@ -13,19 +13,19 @@ "off": "新增額外的登入安全性", "enable": "啟用", "disable": "停用", - "addDevice": "Add device", - "addTitle": "Add authenticator device", - "addDescription": "Confirm with a code from your authenticator or a backup code to enroll another device with the same key.", - "addScanInstructions": "Scan this QR code with the additional authenticator. Existing authenticators will continue to work.", - "addSuccess": "Additional authenticator enrolled", - "addFailed": "Failed to add authenticator", - "codeRequired": "Enter a TOTP code or backup code", - "codePlaceholder": "TOTP code or backup code", + "addDevice": "新增設備", + "addTitle": "新增身份驗證器設備", + "addDescription": "使用驗證器中的驗證碼或備用驗證碼進行確認,以便使用相同金鑰註冊另一台裝置。", + "addScanInstructions": "請使用新增的驗證器掃描此二維碼。現有驗證器將繼續有效。", + "addSuccess": "已註冊其他身份驗證器", + "addFailed": "新增身份驗證器失敗", + "codeRequired": "輸入 TOTP 代碼或備用代碼", + "codePlaceholder": "TOTP 代碼或備用代碼", "setupTitle": "設定 TOTP", "setupFailed": "無法啟動 TOTP 設定", "qrCode": "QR 碼", "secretCopied": "密鑰已複製到剪貼簿", - "instructions": "Scan the QR code or enter the secret in your authenticator app, then enter the 6-digit code", + "instructions": "掃描二維碼或在驗證器應用程式中輸入金鑰,然後輸入 6 位數驗證碼", "continueVerify": "繼續驗證", "verifyTitle": "驗證碼", "verify": "驗證", diff --git a/plugins/tunnels/locales/translated/bn_BD.json b/plugins/tunnels/locales/translated/bn_BD.json index fd37e8918..ed2586ad6 100644 --- a/plugins/tunnels/locales/translated/bn_BD.json +++ b/plugins/tunnels/locales/translated/bn_BD.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", - "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "addTunnelBtn": "টানেল যোগ করুন", + "autoStartDesc": "হোস্ট লোড হলে এই টানেলটি স্বয়ংক্রিয়ভাবে সংযুক্ত করুন।", + "autoStartLabel": "স্বয়ংক্রিয়-শুরু", + "connectBtn": "সংযোগ করুন", + "disconnectBtn": "সংযোগ বিচ্ছিন্ন করুন", + "enableTunneling": "টানেলিং সক্ষম করুন", + "enableTunnelingDesc": "এই হোস্টের জন্য SSH টানেল কার্যকারিতা সক্রিয় করুন", + "endpointHost": "এন্ডপয়েন্ট হোস্ট", + "endpointHostPlaceholder": "একই হোস্ট, SSH হোস্ট, অথবা পৌঁছানো যায় এমন হোস্ট/আইপি", + "endpointPort": "এন্ডপয়েন্ট পোর্ট", + "failedToConnectTunnel": "সংযোগ করতে ব্যর্থ হয়েছে", + "failedToDisconnectTunnel": "সংযোগ বিচ্ছিন্ন করতে ব্যর্থ হয়েছে", + "maxRetries": "সর্বোচ্চ পুনঃপ্রচেষ্টা", + "noTunnelsConfigured": "কোনো টানেল কনফিগার করা নেই।", + "retryIntervalS": "পুনরায় চেষ্টার ব্যবধান (সেকেন্ড)", + "serverTunnelsSection": "সার্ভার টানেল", + "sourcePort": "উৎস বন্দর", + "tabTunnels": "টানেল", + "tunnelConnecting": "সংযোগকারী টানেল...", + "tunnelDisconnected": "টানেল বিচ্ছিন্ন", + "tunnelLabel": "টানেল {{number}}", + "tunnelModeDynamicDesc": "ডাইনামিক পোর্ট ফরওয়ার্ডিংয়ের জন্য লোকাল পোর্টে একটি SOCKS5 প্রক্সি তৈরি করুন।", + "tunnelModeLocalDesc": "একটি স্থানীয় পোর্টকে রিমোট সার্ভারের (বা সেখান থেকে পৌঁছানো যায় এমন কোনো হোস্টের) একটি পোর্টে ফরওয়ার্ড করুন।", + "tunnelModeRemoteDesc": "রিমোট সার্ভারের একটি পোর্ট আপনার মেশিনের লোকাল পোর্টে ফরওয়ার্ড করুন।", + "tunnelRequirementsText": "SSH সার্ভারের /etc/ssh/sshd_config ফাইলে GatewayPorts yes, AllowTcpForwarding yes, এবং PermitRootLogin yes সেট করা থাকতে হবে।", + "tunnelSettings": "টানেল সেটিংস", + "tunnelType": "টানেল টাইপ", + "bindHost": "হোস্টকে বাঁধুন", + "docsLink": "নথি দেখুন", + "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি", + "loadingHost": "হোস্ট লোড হচ্ছে..." }, "nav": { - "portForwarding": "Forwarding", - "tunnels": "Tunnels" + "portForwarding": "ফরোয়ার্ডিং", + "tunnels": "টানেল" }, "placeholders": { - "defaultEndpointPort": "224", - "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", - "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", - "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "defaultEndpointPort": "২২৪", + "defaultPort": "২২", + "localListenerHost": "১২৭.০.০.১ (স্থানীয়ভাবে শুনুন)", + "localTargetHost": "১২৭.০.০.১ (এই কম্পিউটারে লক্ষ্যবস্তু)", + "maxRetries": "৩", + "remoteBindHost": "১২৭.০.০.১ (এন্ডপয়েন্টে শুনুন)", + "remoteTargetHost": "১২৭.০.০.১ (এন্ডপয়েন্ট থেকে টার্গেট)", + "retryInterval": "১০", + "socksListenerHost": "১২৭.০.০.১ (SOCKS লিসেনার)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "এই ডেস্কটপে {{count}} টি স্থানীয় ক্লায়েন্ট টানেল কনফিগার করা হয়েছে।", + "c2sLoadPreset": "লোড", + "c2sNoPresetSelected": "কোনো পূর্বনির্ধারিত সেট নির্বাচন করা হয়নি", + "c2sNoPresets": "কোন প্রিসেট সংরক্ষণ করা হয়নি", + "c2sPresetDeleted": "ক্লায়েন্ট টানেল প্রিসেট মুছে ফেলা হয়েছে", + "c2sPresetLoadError": "ক্লায়েন্ট টানেল প্রিসেট লোড করতে ব্যর্থ হয়েছে", + "c2sPresetLoaded": "ক্লায়েন্ট টানেল প্রিসেট স্থানীয়ভাবে লোড করা হয়েছে", + "c2sPresetName": "পূর্বনির্ধারিত নাম", + "c2sPresetNamePlaceholder": "ক্লায়েন্টের পূর্বনির্ধারিত নাম", + "c2sPresetRenamed": "ক্লায়েন্ট টানেল প্রিসেটের নাম পরিবর্তন করা হয়েছে", + "c2sPresetSaved": "ক্লায়েন্ট টানেল প্রিসেট সংরক্ষিত", + "c2sPresetSyncNote": "প্রিসেটগুলি হলো সুনির্দিষ্ট স্ন্যাপশট; এর কোনো একটি লোড করলে এই ডেস্কটপ ক্লায়েন্টের স্থানীয় ক্লায়েন্ট টানেল তালিকা প্রতিস্থাপিত হয়।", + "c2sPresetToLoad": "লোড করার জন্য প্রিসেট", + "c2sTunnelPresets": "ক্লায়েন্ট টানেল প্রিসেট", + "c2sTunnelPresetsUnavailable": "ক্লায়েন্ট টানেল প্রিসেটগুলো শুধুমাত্র ডেস্কটপ ক্লায়েন্টে পাওয়া যায়।", + "c2sPresetRenameError": "প্রিসেটটির নাম পরিবর্তন করতে ব্যর্থ হয়েছে", + "c2sPresetDeleteError": "প্রিসেটটি মুছে ফেলা সম্ভব হয়নি" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", + "attempt": "{{max}} এর {{current}} প্রচেষ্টা", + "autoNameClientDynamic": "মোজা {{localPort}} {{endpoint}} এর মাধ্যমে", + "autoNameClientLocal": "স্থানীয় {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → স্থানীয় {{localPort}}", + "autoStart": "অটো স্টার্ট", + "cancel": "বাতিল করুন", + "canceling": "বাতিল করা হচ্ছে...", + "clientAutoStartDesc": "এই ডেস্কটপ ক্লায়েন্টটি খুললে এটি চালু হয় এবং সংযুক্ত থাকে।", + "clientManualStartDesc": "এই সারি থেকে স্টার্ট এবং স্টপ ব্যবহার করুন। টারমিক্স এটি স্বয়ংক্রিয়ভাবে খুলবে না।", + "clientRemoteServerNote": "রিমোট ফরওয়ার্ডিংয়ের জন্য এন্ডপয়েন্ট SSH সার্ভারে AllowTcpForwarding এবং GatewayPorts চালু করার প্রয়োজন হতে পারে। এই ডেস্কটপটি সংযোগ বিচ্ছিন্ন করলে রিমোট পোর্টটি বন্ধ হয়ে যায়।", + "clientTunnelStarted": "ক্লায়েন্ট টানেল শুরু হয়েছে", + "clientTunnelStopped": "ক্লায়েন্ট টানেল বন্ধ হয়ে গেছে", + "clientTunnels": "ক্লায়েন্ট টানেল", + "connected": "সংযুক্ত", + "connecting": "সংযোগ স্থাপন...", + "createFirstTunnelMessage": "আপনি এখনও কোনো SSH টানেল তৈরি করেননি। শুরু করার জন্য হোস্ট ম্যানেজারে টানেল সংযোগগুলি কনফিগার করুন।", + "currentHostPort": "বর্তমান হোস্ট পোর্ট", + "destination": "গন্তব্য", + "destinationAddress": "গন্তব্য ঠিকানা", + "destinationPort": "গন্তব্য বন্দর", + "disconnected": "বিচ্ছিন্ন", + "duplicateAutoStartBind": "শুধুমাত্র একটি অটো-স্টার্ট ক্লায়েন্ট টানেল {{bind}} ব্যবহার করতে পারে।", + "endpointPort": "এন্ডপয়েন্ট পোর্ট", + "endpointSshHost": "এন্ডপয়েন্ট SSH হোস্ট", + "endpointSshHostPlaceholder": "একটি কনফিগার করা হোস্ট নির্বাচন করুন", + "endpointSshHostRequired": "প্রতিটি ক্লায়েন্ট টানেলের জন্য একটি এন্ডপয়েন্ট SSH হোস্ট নির্বাচন করুন।", + "error": "ত্রুটি", + "forwardDescriptionClientDynamic": "স্থানীয় পোর্ট {{sourcePort}}-এ SOCKS।", + "forwardDescriptionClientLocal": "স্থানীয় {{sourcePort}} → দূরবর্তী {{endpointPort}}.", + "forwardDescriptionClientRemote": "রিমোট {{sourcePort}} → লোকাল {{endpointPort}}.", + "forwardDescriptionServerDynamic": "বর্তমান হোস্টে SOCKS {{sourcePort}}।", + "forwardDescriptionServerLocal": "বর্তমান হোস্ট {{sourcePort}} → শেষ বিন্দু {{endpointPort}}.", + "forwardDescriptionServerRemote": "এন্ডপয়েন্ট {{endpointPort}} → বর্তমান হোস্ট {{sourcePort}}.", + "host": "হোস্ট", + "intermediateHost": "মধ্যবর্তী হোস্ট", + "invalidBindIp": "লোকাল আইপি অবশ্যই একটি বৈধ IPv4 অ্যাড্রেস হতে হবে।", + "invalidEndpointPort": "এন্ডপয়েন্ট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।", + "invalidLocalPort": "স্থানীয় পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।", + "invalidLocalTargetIp": "স্থানীয় টার্গেট আইপি অবশ্যই একটি বৈধ IPv4 অ্যাড্রেস হতে হবে।", + "invalidLocalTargetPort": "স্থানীয় টার্গেট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।", + "invalidRemoteAddress": "দূরবর্তী ঠিকানা প্রয়োজন।", + "invalidRemotePort": "রিমোট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।", + "lastError": "শেষ ত্রুটি", + "lastStarted": "সর্বশেষ শুরু হয়েছে", + "lastTested": "সর্বশেষ পরীক্ষা করা হয়েছে", + "localAddress": "স্থানীয় ঠিকানা", + "localPort": "স্থানীয় বন্দর", + "localSaveError": "স্থানীয় ক্লায়েন্ট টানেলগুলি সংরক্ষণ করতে ব্যর্থ হয়েছে", + "localSaved": "ক্লায়েন্ট টানেলগুলি সংরক্ষিত হয়েছে", + "manualControlError": "টানেলের অবস্থা আপডেট করতে ব্যর্থ হয়েছে।", + "maxRetries": "সর্বোচ্চ পুনঃপ্রচেষ্টা", + "mode": "মোড", + "nextRetryIn": "{{seconds}} সেকেন্ড পর আবার চেষ্টা করা হবে।", + "noClientTunnels": "এই ডেস্কটপে কোনো ক্লায়েন্ট টানেল কনফিগার করা নেই।", + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "noSshTunnels": "কোন SSH টানেল নেই", + "port": "বন্দর", + "remoteBindAddress": "রিমোট বাইন্ড অ্যাড্রেস", + "remoteHost": "রিমোট হোস্ট", + "remotePort": "রিমোট পোর্ট", + "retryInterval": "পুনরায় চেষ্টার ব্যবধান (সেকেন্ড)", + "route": "পথ:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} {{endpoint}} এর মাধ্যমে", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} {{endpoint}} এর উপর → {{localHost}}:{{localPort}}", + "test": "পরীক্ষা", + "tunnelName": "টানেলের নাম", + "tunnelTestFailed": "টানেল পরীক্ষা ব্যর্থ হয়েছে", + "tunnelTestSucceeded": "টানেল পরীক্ষা সফল হয়েছে", + "type": "টানেল টাইপ", + "typeDynamic": "গতিশীল (-D)", + "typeLocal": "স্থানীয় (-L)", + "typeRemote": "রিমোট (-R)", + "working": "কাজ চলছে...", + "activeCount": "{{connected}}/{{total}} সক্রিয়", + "listensOn": "লোকালহোস্টের সাথে সংযুক্ত:{{port}}", + "socksProxy": "SOCKS5 প্রক্সি", + "waiting": "অপেক্ষা", + "remoteSessionExpired": "রিমোট সিঙ্ক সেশনের মেয়াদ শেষ হয়ে গেছে। রিমোট সিঙ্ক পুনরায় সংযোগ করুন এবং আবার চেষ্টা করুন।", + "activeTunnels": "সক্রিয় টানেল", + "start": "শুরু করুন", + "stop": "থামুন", + "authTitle": "টানেল প্রমাণীকরণ", + "authRetry": "পূর্ববর্তী কোডটি গৃহীত হয়নি। একটি নতুন কোড প্রবেশ করান।", + "authAnswer": "প্রমাণীকরণ প্রতিক্রিয়া", + "authContinue": "চালিয়ে যান" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "টানেল ব্যবহার করুন", + "description": "SSH টানেল চালু, বন্ধ ও পর্যবেক্ষণ করুন এবং ক্লায়েন্ট টানেল প্রিসেট সংরক্ষণ করুন।" } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "টানেলগুলি সক্ষম করুন", + "description": "এই হোস্টের মাধ্যমে SSH টানেল স্থাপন করুন।" } } }, "onboarding": { - "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels": "টানেল", + "feature_tunnels_desc": "যেসব পরিষেবা উন্মুক্ত নয়, সেগুলোতে পৌঁছানোর জন্য পোর্টগুলো একটি সার্ভারের মাধ্যমে ফরওয়ার্ড করুন।" } } diff --git a/plugins/tunnels/locales/translated/hi_IN.json b/plugins/tunnels/locales/translated/hi_IN.json index f3bbd7b22..94389b4d9 100644 --- a/plugins/tunnels/locales/translated/hi_IN.json +++ b/plugins/tunnels/locales/translated/hi_IN.json @@ -33,7 +33,7 @@ "loadingHost": "होस्ट लोड हो रहा है..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "अग्रेषित करना", "tunnels": "टनल" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (स्थानीय रूप से सुनें)", "localTargetHost": "127.0.0.1 (इस कंप्यूटर पर लक्ष्य)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (एंडपॉइंट पर सुनें)", + "remoteTargetHost": "127.0.0.1 (एंडपॉइंट से लक्ष्य)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (SOCKS श्रोता)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "लोड करने के लिए प्रीसेट", "c2sTunnelPresets": "क्लाइंट टनल प्रीसेट", "c2sTunnelPresetsUnavailable": "क्लाइंट टनल प्रीसेट केवल डेस्कटॉप क्लाइंट में उपलब्ध हैं।", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "प्रीसेट का नाम बदलने में विफलता", + "c2sPresetDeleteError": "प्रीसेट को हटाने में विफल रहा" }, "tunnels": { "attempt": "प्रयास {{current}} / {{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "आपने अभी तक कोई SSH टनल नहीं बनाई है। शुरू करने के लिए होस्ट प्रबंधक में टनल कनेक्शन कॉन्फ़िगर करें।", "currentHostPort": "वर्तमान होस्ट पोर्ट", "destination": "डेस्टिनेशन", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "गंतव्य पता", + "destinationPort": "गंतव्य बंदरगाह", "disconnected": "डिस्कनेक्टेड", "duplicateAutoStartBind": "केवल एक स्वतः-आरंभ क्लाइंट टनल {{bind}} का उपयोग कर सकती है।", "endpointPort": "एंडपॉइंट पोर्ट", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "वर्तमान होस्ट {{sourcePort}} → एंडपॉइंट {{endpointPort}}।", "forwardDescriptionServerRemote": "एंडपॉइंट {{endpointPort}} → वर्तमान होस्ट {{sourcePort}}।", "host": "होस्ट", - "intermediateHost": "Intermediate Host", + "intermediateHost": "मध्यवर्ती मेजबान", "invalidBindIp": "स्थानीय आईपी एक मान्य IPv4 पता होना चाहिए।", "invalidEndpointPort": "एंडपॉइंट पोर्ट 1 और 65535 के बीच होना चाहिए।", "invalidLocalPort": "स्थानीय पोर्ट 1 और 65535 के बीच होना चाहिए।", "invalidLocalTargetIp": "स्थानीय लक्ष्य आईपी एक मान्य IPv4 पता होना चाहिए।", "invalidLocalTargetPort": "स्थानीय लक्ष्य पोर्ट 1 और 65535 के बीच होना चाहिए।", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "रिमोट एड्रेस आवश्यक है।", "invalidRemotePort": "दूरस्थ पोर्ट 1 और 65535 के बीच होना चाहिए।", "lastError": "अंतिम त्रुटि", "lastStarted": "अंतिम बार शुरू हुआ", "lastTested": "अंतिम बार परीक्षण किया गया", - "localAddress": "Local Address", + "localAddress": "स्थानीय पता", "localPort": "स्थानीय पोर्ट", "localSaveError": "स्थानीय क्लाइंट टनल सहेजने में विफल", "localSaved": "क्लाइंट टनलें सहेजी गईं", @@ -124,13 +124,13 @@ "noHostSelected": "कोई होस्ट चयनित नहीं", "noSshTunnels": "कोई SSH टनल नहीं", "port": "पोर्ट", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "रिमोट बाइंड पता", "remoteHost": "दूरस्थ होस्ट", "remotePort": "दूरस्थ पोर्ट", "retryInterval": "पुनर्प्रयास अंतराल (सेकंड)", "route": "रूट:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} वाया {{endpoint}}", "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", "test": "परीक्षण करें", "tunnelName": "टनल का नाम", @@ -141,35 +141,35 @@ "typeLocal": "स्थानीय (-L)", "typeRemote": "दूरस्थ (-R)", "working": "कार्यरत...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} सक्रिय", + "listensOn": "लोकलहोस्ट से बंधा हुआ:{{port}}", + "socksProxy": "SOCKS5 प्रॉक्सी", + "waiting": "इंतज़ार में", + "remoteSessionExpired": "रिमोट सिंक सत्र समाप्त हो गया है। रिमोट सिंक से पुनः कनेक्ट करें और दोबारा प्रयास करें।", "activeTunnels": "सक्रिय टनल", "start": "शुरू करें", "stop": "बंद करें", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "टनल प्रमाणीकरण", + "authRetry": "पिछला कोड स्वीकार नहीं किया गया। कृपया नया कोड दर्ज करें।", + "authAnswer": "प्रमाणीकरण प्रतिक्रिया", "authContinue": "जारी रखें" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "सुरंगों का उपयोग करें", + "description": "एसएसएच टनल को शुरू करें, रोकें और देखें, और क्लाइंट टनल प्रीसेट को सेव करें।" } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "सुरंगों को सक्षम करें", + "description": "इस होस्ट के माध्यम से SSH टनल स्थापित करें।" } } }, "onboarding": { "feature_tunnels": "टनलें", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "सर्वर के माध्यम से पोर्ट को फॉरवर्ड करके उन सेवाओं तक पहुंचें जो उपलब्ध नहीं हैं।" } } diff --git a/plugins/tunnels/locales/translated/id_ID.json b/plugins/tunnels/locales/translated/id_ID.json index c00f3fd4c..3d3d19f23 100644 --- a/plugins/tunnels/locales/translated/id_ID.json +++ b/plugins/tunnels/locales/translated/id_ID.json @@ -1,175 +1,175 @@ { "hosts": { "addTunnelBtn": "Tambahkan Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", + "autoStartDesc": "Terowongan ini akan terhubung secara otomatis saat host dimuat.", + "autoStartLabel": "Mulai otomatis", + "connectBtn": "Menghubungkan", + "disconnectBtn": "Memutuskan", + "enableTunneling": "Aktifkan Tunneling", + "enableTunnelingDesc": "Aktifkan fungsi terowongan SSH untuk host ini.", + "endpointHost": "Host Titik Akhir", + "endpointHostPlaceholder": "Host yang sama, host SSH, atau host/IP yang dapat dijangkau", + "endpointPort": "Port Titik Akhir", + "failedToConnectTunnel": "Gagal terhubung", + "failedToDisconnectTunnel": "Gagal memutuskan koneksi", + "maxRetries": "Jumlah Percobaan Maksimum", + "noTunnelsConfigured": "Tidak ada terowongan yang dikonfigurasi.", + "retryIntervalS": "Interval Percobaan Ulang (detik)", + "serverTunnelsSection": "Terowongan Server", + "sourcePort": "Port Sumber", "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", + "tunnelConnecting": "Terowongan penghubung...", + "tunnelDisconnected": "Terowongan terputus", + "tunnelLabel": "Terowongan {{number}}", + "tunnelModeDynamicDesc": "Buat proxy SOCKS5 pada port lokal untuk penerusan port dinamis.", + "tunnelModeLocalDesc": "Teruskan port lokal ke port pada server jarak jauh (atau host yang dapat dijangkau dari server tersebut).", + "tunnelModeRemoteDesc": "Teruskan port pada server jarak jauh kembali ke port lokal pada mesin Anda.", + "tunnelRequirementsText": "Server SSH harus memiliki pengaturan GatewayPorts yes, AllowTcpForwarding yes, dan PermitRootLogin yes di /etc/ssh/sshd_config.", + "tunnelSettings": "Pengaturan Terowongan", "tunnelType": "Jenis Tunnel", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "bindHost": "Host Terikat", + "docsLink": "Lihat dokumen", + "hostNotFound": "Host tidak ditemukan", + "loadingHost": "Memuat host..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Meneruskan", "tunnels": "Tunnels" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (dengarkan secara lokal)", + "localTargetHost": "127.0.0.1 (target pada komputer ini)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (dengarkan di titik akhir)", + "remoteTargetHost": "127.0.0.1 (target dari titik akhir)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (Pendengar SOCKS)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} terowongan klien lokal yang dikonfigurasi pada desktop ini.", + "c2sLoadPreset": "Memuat", + "c2sNoPresetSelected": "Tidak ada preset yang dipilih.", + "c2sNoPresets": "Tidak ada preset yang tersimpan.", + "c2sPresetDeleted": "Pengaturan awal terowongan klien telah dihapus.", + "c2sPresetLoadError": "Gagal memuat preset terowongan klien", + "c2sPresetLoaded": "Pengaturan terowongan klien dimuat secara lokal.", + "c2sPresetName": "Nama Preset", + "c2sPresetNamePlaceholder": "Nama preset klien", + "c2sPresetRenamed": "Pengaturan terowongan klien diubah namanya.", + "c2sPresetSaved": "Pengaturan terowongan klien tersimpan.", + "c2sPresetSyncNote": "Preset adalah snapshot eksplisit; memuat salah satunya akan mengganti daftar terowongan klien lokal klien desktop ini.", + "c2sPresetToLoad": "Preset untuk Memuat", + "c2sTunnelPresets": "Pengaturan Awal Terowongan Klien", + "c2sTunnelPresetsUnavailable": "Pengaturan terowongan klien hanya tersedia di klien desktop.", + "c2sPresetRenameError": "Gagal mengganti nama preset.", + "c2sPresetDeleteError": "Gagal menghapus preset." }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", + "attempt": "Percobaan {{current}} dari {{max}}", + "autoNameClientDynamic": "KAOS KAKI {{localPort}} melalui {{endpoint}}", + "autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}", + "autoStart": "Mulai Otomatis", + "cancel": "Membatalkan", + "canceling": "Membatalkan...", + "clientAutoStartDesc": "Proses dimulai saat klien desktop ini dibuka dan tetap terhubung.", + "clientManualStartDesc": "Gunakan tombol Mulai dan Berhenti dari baris ini. Termix tidak akan membukanya secara otomatis.", + "clientRemoteServerNote": "Penerusan jarak jauh mungkin memerlukan AllowTcpForwarding dan GatewayPorts pada server SSH titik akhir. Port jarak jauh akan tertutup ketika desktop ini terputus.", + "clientTunnelStarted": "Terowongan klien telah dimulai.", + "clientTunnelStopped": "Terowongan klien dihentikan", + "clientTunnels": "Terowongan Klien", + "connected": "Terhubung", + "connecting": "Menghubungkan...", "createFirstTunnelMessage": "Anda belum membuat tunnel SSH apa pun. Konfigurasikan koneksi tunnel di Host Manager untuk memulai.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", + "currentHostPort": "Port Host Saat Ini", + "destination": "Tujuan", + "destinationAddress": "Alamat Tujuan", + "destinationPort": "Pelabuhan Tujuan", + "disconnected": "Terputus", + "duplicateAutoStartBind": "Hanya satu terowongan klien auto-start yang dapat menggunakan {{bind}}.", + "endpointPort": "Port Titik Akhir", + "endpointSshHost": "Host SSH Titik Akhir", + "endpointSshHostPlaceholder": "Pilih host yang telah dikonfigurasi.", + "endpointSshHostRequired": "Pilih host SSH titik akhir untuk setiap terowongan klien.", + "error": "Kesalahan", + "forwardDescriptionClientDynamic": "SOCKS pada port lokal {{sourcePort}}.", + "forwardDescriptionClientLocal": "Lokal {{sourcePort}} → jarak jauh {{endpointPort}}.", + "forwardDescriptionClientRemote": "Jarak jauh {{sourcePort}} → lokal {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS pada host saat ini {{sourcePort}}.", + "forwardDescriptionServerLocal": "Host saat ini {{sourcePort}} → titik akhir {{endpointPort}}.", + "forwardDescriptionServerRemote": "Titik akhir {{endpointPort}} → host saat ini {{sourcePort}}.", + "host": "Tuan rumah", + "intermediateHost": "Inang Perantara", + "invalidBindIp": "IP lokal harus berupa alamat IPv4 yang valid.", + "invalidEndpointPort": "Port endpoint harus berada di antara 1 dan 65535.", + "invalidLocalPort": "Port lokal harus berada di antara 1 dan 65535.", + "invalidLocalTargetIp": "Alamat IP target lokal harus berupa alamat IPv4 yang valid.", + "invalidLocalTargetPort": "Port target lokal harus berada di antara 1 dan 65535.", + "invalidRemoteAddress": "Alamat jarak jauh diperlukan.", + "invalidRemotePort": "Port jarak jauh harus berada di antara 1 dan 65535.", + "lastError": "Kesalahan terakhir", + "lastStarted": "Terakhir dimulai", + "lastTested": "Terakhir diuji", + "localAddress": "Alamat Lokal", + "localPort": "Pelabuhan Lokal", + "localSaveError": "Gagal menyimpan terowongan klien lokal", + "localSaved": "Terowongan klien tersimpan", + "manualControlError": "Gagal memperbarui status terowongan.", + "maxRetries": "Jumlah Percobaan Maksimum", "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", + "nextRetryIn": "Percobaan berikutnya dalam {{seconds}} detik", + "noClientTunnels": "Tidak ada terowongan klien yang dikonfigurasi pada desktop ini.", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", "noSshTunnels": "Tidak ada tunnel SSH", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", + "port": "Pelabuhan", + "remoteBindAddress": "Alamat Pengikatan Jarak Jauh", + "remoteHost": "Host Jarak Jauh", + "remotePort": "Port Jarak Jauh", + "retryInterval": "Interval Percobaan Ulang (detik)", + "route": "Rute:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → KAOS KAKI melalui {{endpoint}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} melalui {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} pada {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "Tes", "tunnelName": "Nama Tunnel", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", + "tunnelTestFailed": "Uji terowongan gagal", + "tunnelTestSucceeded": "Uji terowongan berhasil", "type": "Jenis Tunnel", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "typeDynamic": "Dinamis (-D)", + "typeLocal": "Lokal (-L)", + "typeRemote": "Jarak Jauh (-R)", + "working": "Bekerja...", + "activeCount": "{{connected}}/{{total}} aktif", + "listensOn": "Terhubung ke localhost:{{port}}", + "socksProxy": "Proxy SOCKS5", + "waiting": "Menunggu", + "remoteSessionExpired": "Sesi Sinkronisasi Jarak Jauh telah berakhir. Sambungkan kembali Sinkronisasi Jarak Jauh dan coba lagi.", + "activeTunnels": "Terowongan Aktif", + "start": "Awal", + "stop": "Berhenti", + "authTitle": "Autentikasi terowongan", + "authRetry": "Kode sebelumnya tidak diterima. Masukkan kode baru.", + "authAnswer": "Respons otentikasi", + "authContinue": "Melanjutkan" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Gunakan terowongan", + "description": "Memulai, menghentikan, dan memantau terowongan SSH, serta menyimpan pengaturan awal terowongan klien." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Aktifkan terowongan", + "description": "Buat terowongan SSH melalui host ini." } } }, "onboarding": { "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Meneruskan port melalui server untuk mengakses layanan yang tidak terekspos." } } diff --git a/plugins/tunnels/locales/translated/nl_NL.json b/plugins/tunnels/locales/translated/nl_NL.json index fd37e8918..78eff9e35 100644 --- a/plugins/tunnels/locales/translated/nl_NL.json +++ b/plugins/tunnels/locales/translated/nl_NL.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", + "addTunnelBtn": "Voeg tunnel toe", + "autoStartDesc": "Deze tunnel automatisch verbinden wanneer de host wordt geladen.", + "autoStartLabel": "Automatisch starten", + "connectBtn": "Verbinden", + "disconnectBtn": "Verbinding verbreken", + "enableTunneling": "Tunneling inschakelen", + "enableTunnelingDesc": "Schakel de SSH-tunnelfunctionaliteit voor deze host in.", + "endpointHost": "Eindpunthost", + "endpointHostPlaceholder": "Dezelfde host, SSH-host of bereikbare host/IP-adres", + "endpointPort": "Eindpuntpoort", + "failedToConnectTunnel": "Verbinding mislukt", + "failedToDisconnectTunnel": "Verbinding verbreken mislukt", + "maxRetries": "Max. aantal herhalingen", + "noTunnelsConfigured": "Er zijn geen tunnels geconfigureerd.", + "retryIntervalS": "Herhaalinterval (s)", + "serverTunnelsSection": "Servertunnels", + "sourcePort": "Bronpoort", "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", + "tunnelConnecting": "Tunnelverbinding...", + "tunnelDisconnected": "Tunnel losgekoppeld", "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", + "tunnelModeDynamicDesc": "Maak een SOCKS5-proxy aan op een lokale poort voor dynamische poortdoorsturing.", + "tunnelModeLocalDesc": "Een lokale poort doorsturen naar een poort op de externe server (of een host die vanaf die server bereikbaar is).", + "tunnelModeRemoteDesc": "Een poort op de externe server doorsturen naar een lokale poort op uw computer.", + "tunnelRequirementsText": "De SSH-server moet de volgende instellingen hebben: GatewayPorts yes, AllowTcpForwarding yes en PermitRootLogin yes in /etc/ssh/sshd_config.", + "tunnelSettings": "Tunnelinstellingen", + "tunnelType": "Tunneltype", "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "docsLink": "Documenten bekijken", + "hostNotFound": "Host niet gevonden", + "loadingHost": "Host wordt geladen..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Doorsturen", "tunnels": "Tunnels" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (lokaal luisteren)", + "localTargetHost": "127.0.0.1 (doel op deze computer)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (luisteren op eindpunt)", + "remoteTargetHost": "127.0.0.1 (doel van eindpunt)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (SOCKS-luisteraar)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} lokale clienttunnel(s) geconfigureerd op deze desktop.", + "c2sLoadPreset": "Laden", + "c2sNoPresetSelected": "Geen voorinstelling geselecteerd", + "c2sNoPresets": "Geen presets opgeslagen", + "c2sPresetDeleted": "Client tunnel-voorinstelling verwijderd", + "c2sPresetLoadError": "Het laden van de clienttunnelvoorinstellingen is mislukt.", + "c2sPresetLoaded": "Client tunnel preset lokaal geladen", + "c2sPresetName": "Voorinstellingnaam", + "c2sPresetNamePlaceholder": "Naam van de clientvoorinstelling", + "c2sPresetRenamed": "Client tunnel-voorinstelling hernoemd", + "c2sPresetSaved": "Voorinstelling voor clienttunnel opgeslagen", + "c2sPresetSyncNote": "Voorinstellingen zijn expliciete momentopnamen; het laden ervan vervangt de lokale lijst met clienttunnels van deze desktopclient.", + "c2sPresetToLoad": "Voorinstelling om te laden", + "c2sTunnelPresets": "Clienttunnel-voorinstellingen", + "c2sTunnelPresetsUnavailable": "Clienttunnelvoorinstellingen zijn alleen beschikbaar in de desktopclient.", + "c2sPresetRenameError": "Het hernoemen van de preset is mislukt.", + "c2sPresetDeleteError": "Het verwijderen van de voorinstelling is mislukt." }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", + "attempt": "Poging {{current}} van {{max}}", + "autoNameClientDynamic": "SOKKEN {{localPort}} via {{endpoint}}", + "autoNameClientLocal": "Lokaal {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokaal {{localPort}}", + "autoStart": "Automatische start", + "cancel": "Annuleren", + "canceling": "Annuleren...", + "clientAutoStartDesc": "Begint wanneer deze desktopclient wordt geopend en blijft verbonden.", + "clientManualStartDesc": "Gebruik Start en Stop vanuit deze regel. Termix opent deze niet automatisch.", + "clientRemoteServerNote": "Voor het doorsturen van externe poorten zijn mogelijk de instellingen AllowTcpForwarding en GatewayPorts vereist op de SSH-server van het eindpunt. De externe poort wordt gesloten wanneer deze desktop de verbinding verbreekt.", + "clientTunnelStarted": "Clienttunnel gestart", + "clientTunnelStopped": "Clienttunnel gestopt", + "clientTunnels": "Clienttunnels", + "connected": "Aangesloten", + "connecting": "Verbinden...", + "createFirstTunnelMessage": "Je hebt nog geen SSH-tunnels aangemaakt. Configureer tunnelverbindingen in de Host Manager om te beginnen.", + "currentHostPort": "Huidige hostpoort", + "destination": "Bestemming", + "destinationAddress": "Bestemmingsadres", + "destinationPort": "Bestemmingshaven", + "disconnected": "Verbinding verbroken", + "duplicateAutoStartBind": "Slechts één automatisch startende clienttunnel kan {{bind}} gebruiken.", + "endpointPort": "Eindpuntpoort", + "endpointSshHost": "Eindpunt SSH-host", + "endpointSshHostPlaceholder": "Selecteer een geconfigureerde host.", + "endpointSshHostRequired": "Selecteer een SSH-host voor elke clienttunnel.", + "error": "Fout", + "forwardDescriptionClientDynamic": "SOCKS op lokale poort {{sourcePort}}.", + "forwardDescriptionClientLocal": "Lokaal {{sourcePort}} → extern {{endpointPort}}.", + "forwardDescriptionClientRemote": "Extern {{sourcePort}} → lokaal {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS op de huidige host {{sourcePort}}.", + "forwardDescriptionServerLocal": "Huidige host {{sourcePort}} → eindpunt {{endpointPort}}.", + "forwardDescriptionServerRemote": "Eindpunt {{endpointPort}} → huidige host {{sourcePort}}.", + "host": "Gastheer", + "intermediateHost": "Tussenliggende gastheer", + "invalidBindIp": "Het lokale IP-adres moet een geldig IPv4-adres zijn.", + "invalidEndpointPort": "De eindpoort moet tussen 1 en 65535 liggen.", + "invalidLocalPort": "Het lokale poortnummer moet tussen 1 en 65535 liggen.", + "invalidLocalTargetIp": "Het lokale doel-IP-adres moet een geldig IPv4-adres zijn.", + "invalidLocalTargetPort": "De lokale doelpoort moet tussen 1 en 65535 liggen.", + "invalidRemoteAddress": "Een extern adres is vereist.", + "invalidRemotePort": "De externe poort moet tussen 1 en 65535 liggen.", + "lastError": "Laatste fout", + "lastStarted": "Laatst gestart", + "lastTested": "Laatst getest", + "localAddress": "Lokaal adres", + "localPort": "Lokale haven", + "localSaveError": "Het opslaan van lokale clienttunnels is mislukt.", + "localSaved": "Clienttunnels opgeslagen", + "manualControlError": "Het bijwerken van de tunnelstatus is mislukt.", + "maxRetries": "Max. aantal herhalingen", + "mode": "Modus", + "nextRetryIn": "Volgende poging over {{seconds}} seconden", + "noClientTunnels": "Er zijn geen clienttunnels geconfigureerd op deze desktop.", + "noHostSelected": "Geen host geselecteerd", + "noSshTunnels": "Geen SSH-tunnels", + "port": "Haven", + "remoteBindAddress": "Extern bindadres", + "remoteHost": "Externe host", + "remotePort": "Externe poort", + "retryInterval": "Interval tussen herhalingen (seconden)", "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOKKEN via {{endpoint}}", "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} op {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", + "tunnelName": "Tunnelnaam", + "tunnelTestFailed": "Tunneltest mislukt", + "tunnelTestSucceeded": "Tunneltest geslaagd", + "type": "Tunneltype", + "typeDynamic": "Dynamisch (-D)", + "typeLocal": "Lokaal (-L)", + "typeRemote": "Afstandsbediening (-R)", + "working": "Bezig met verwerken...", + "activeCount": "{{connected}}/{{total}} actief", + "listensOn": "Gebonden aan localhost:{{port}}", + "socksProxy": "SOCKS5-proxy", + "waiting": "Wachten", + "remoteSessionExpired": "De Remote Sync-sessie is verlopen. Maak opnieuw verbinding met Remote Sync en probeer het nogmaals.", + "activeTunnels": "Actieve tunnels", + "start": "Begin", "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "authTitle": "Tunnelauthenticatie", + "authRetry": "De vorige code werd niet geaccepteerd. Voer een nieuwe code in.", + "authAnswer": "Authenticatiereactie", + "authContinue": "Doorgaan" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Gebruik tunnels", + "description": "Start, stop en monitor SSH-tunnels en sla clienttunnelvoorinstellingen op." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Tunnels inschakelen", + "description": "Stel SSH-tunnels in via deze host." } } }, "onboarding": { "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Poorten doorsturen via een server om toegang te krijgen tot services die niet openbaar toegankelijk zijn." } } diff --git a/plugins/tunnels/locales/translated/no_NO.json b/plugins/tunnels/locales/translated/no_NO.json index 35adf7822..40da7465d 100644 --- a/plugins/tunnels/locales/translated/no_NO.json +++ b/plugins/tunnels/locales/translated/no_NO.json @@ -1,175 +1,175 @@ { "hosts": { "addTunnelBtn": "Legg til tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", + "autoStartDesc": "Koble til denne tunnelen automatisk når verten lastes inn", + "autoStartLabel": "Automatisk start", "connectBtn": "Koble til", "disconnectBtn": "Koble fra", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", + "enableTunneling": "Aktiver tunnelering", + "enableTunnelingDesc": "Aktiver SSH-tunnelfunksjonalitet for denne verten", + "endpointHost": "Endepunktvert", + "endpointHostPlaceholder": "Samme vert, SSH-vert eller tilgjengelig vert/IP", "endpointPort": "Endepunktport", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", + "failedToConnectTunnel": "Kunne ikke koble til", + "failedToDisconnectTunnel": "Kunne ikke koble fra", "maxRetries": "Maks forsøk", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", + "noTunnelsConfigured": "Ingen tunneler konfigurert.", + "retryIntervalS": "Intervall for nye forsøk (s)", + "serverTunnelsSection": "Servertunneler", "sourcePort": "Kildeport", "tabTunnels": "Tunneler", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", + "tunnelConnecting": "Tunnelforbindelse...", + "tunnelDisconnected": "Tunnelen frakoblet", "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tunnelModeDynamicDesc": "Opprett en SOCKS5-proxy på en lokal port for dynamisk portvideresending.", + "tunnelModeLocalDesc": "Videresend en lokal port til en port på den eksterne serveren (eller en vert som er tilgjengelig fra den).", + "tunnelModeRemoteDesc": "Videresend en port på den eksterne serveren tilbake til en lokal port på maskinen din.", + "tunnelRequirementsText": "SSH-serveren må ha GatewayPorts ja, AllowTcpForwarding ja og PermitRootLogin ja angitt i /etc/ssh/sshd_config.", + "tunnelSettings": "Tunnelinnstillinger", + "tunnelType": "Tunneltype", + "bindHost": "Bind vert", + "docsLink": "Vis dokumenter", + "hostNotFound": "Verten ble ikke funnet", + "loadingHost": "Laster inn vert ..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Videresending", "tunnels": "Tunneler" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (lytt lokalt)", + "localTargetHost": "127.0.0.1 (mål på denne datamaskinen)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (lytt på endepunkt)", + "remoteTargetHost": "127.0.0.1 (mål fra endepunkt)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (SOCKS-lytter)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", + "c2sCurrentLocalConfig": "{{count}} lokale klienttunneler konfigurert på dette skrivebordet.", "c2sLoadPreset": "Last", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sNoPresetSelected": "Ingen forhåndsinnstilling valgt", + "c2sNoPresets": "Ingen forhåndsinnstillinger lagret", + "c2sPresetDeleted": "Forhåndsinnstilling for klienttunnel slettet", + "c2sPresetLoadError": "Kunne ikke laste inn forhåndsinnstillinger for klienttunnel", + "c2sPresetLoaded": "Forhåndsinnstilling for klienttunnel lastes inn lokalt", + "c2sPresetName": "Forhåndsinnstilt navn", + "c2sPresetNamePlaceholder": "Klientens forhåndsinnstilte navn", + "c2sPresetRenamed": "Forhåndsinnstilling for klienttunnel omdøpt", + "c2sPresetSaved": "Forhåndsinnstilling for klienttunnel lagret", + "c2sPresetSyncNote": "Forhåndsinnstillinger er eksplisitte øyeblikksbilder; lasting av et erstatter denne skrivebordsklientens lokale klienttunnelliste.", + "c2sPresetToLoad": "Forhåndsinnstilt for lasting", + "c2sTunnelPresets": "Forhåndsinnstillinger for klienttunnel", + "c2sTunnelPresetsUnavailable": "Forhåndsinnstillinger for klienttunnel er bare tilgjengelige i skrivebordsklienten.", + "c2sPresetRenameError": "Kunne ikke gi nytt navn til forhåndsinnstillingen", + "c2sPresetDeleteError": "Kunne ikke slette forhåndsinnstillingen" }, "tunnels": { "attempt": "Forsøk {{current}} av {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", + "autoNameClientDynamic": "SOKKER {{localPort}} via {{endpoint}}", + "autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}", "autoStart": "Autostart", "cancel": "Avbryt", "canceling": "Avbryter...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", + "clientAutoStartDesc": "Starter når denne skrivebordsklienten åpnes og forblir tilkoblet.", + "clientManualStartDesc": "Bruk Start og Stopp fra denne raden. Termix vil ikke åpne den automatisk.", + "clientRemoteServerNote": "Ekstern videresending kan kreve AllowTcpForwarding og GatewayPorts på endepunktets SSH-server. Den eksterne porten lukkes når dette skrivebordet kobles fra.", + "clientTunnelStarted": "Klienttunnel startet", + "clientTunnelStopped": "Klienttunnelen stoppet", + "clientTunnels": "Klienttunneler", "connected": "Tilkoblet", "connecting": "Kobler til...", "createFirstTunnelMessage": "Du har ikke opprettet noen SSH-tunneler ennå. Konfigurer tunneltilkoblinger i Vertadministrator for å komme i gang.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "currentHostPort": "Gjeldende vertsport", + "destination": "Destinasjon", + "destinationAddress": "Destinasjonsadresse", + "destinationPort": "Destinasjonshavn", "disconnected": "Frakoblet", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", + "duplicateAutoStartBind": "Bare én automatisk-start klienttunnel kan bruke {{bind}}.", "endpointPort": "Endepunktport", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", + "endpointSshHost": "Endepunkt SSH-vert", + "endpointSshHostPlaceholder": "Velg en konfigurert vert", + "endpointSshHostRequired": "Velg en SSH-vert for endepunktet for hver klienttunnel.", "error": "Feil", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", + "forwardDescriptionClientDynamic": "SOCKS på lokal port {{sourcePort}}.", + "forwardDescriptionClientLocal": "Lokal {{sourcePort}} → ekstern {{endpointPort}}.", + "forwardDescriptionClientRemote": "Fjern {{sourcePort}} → lokal {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS på gjeldende vert {{sourcePort}}.", + "forwardDescriptionServerLocal": "Nåværende vert {{sourcePort}} → endepunkt {{endpointPort}}.", + "forwardDescriptionServerRemote": "Endepunkt {{endpointPort}} → gjeldende vert {{sourcePort}}.", + "host": "Vert", + "intermediateHost": "Mellomliggende vert", + "invalidBindIp": "Lokal IP-adresse må være en gyldig IPv4-adresse.", + "invalidEndpointPort": "Endepunktporten må være mellom 1 og 65535.", + "invalidLocalPort": "Lokal port må være mellom 1 og 65535.", + "invalidLocalTargetIp": "Den lokale mål-IP-adressen må være en gyldig IPv4-adresse.", + "invalidLocalTargetPort": "Den lokale målporten må være mellom 1 og 65535.", + "invalidRemoteAddress": "Ekstern adresse er påkrevd.", + "invalidRemotePort": "Ekstern port må være mellom 1 og 65535.", + "lastError": "Siste feil", + "lastStarted": "Sist startet", + "lastTested": "Sist testet", + "localAddress": "Lokal adresse", "localPort": "Lokal port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", + "localSaveError": "Kunne ikke lagre lokale klienttunneler", + "localSaved": "Klienttunneler lagret", + "manualControlError": "Kunne ikke oppdatere tunnelstatus.", "maxRetries": "Maks forsøk", - "mode": "Mode", + "mode": "Modus", "nextRetryIn": "Neste forsøk om {{seconds}} sekunder", - "noClientTunnels": "No client tunnels configured on this desktop.", + "noClientTunnels": "Ingen klienttunneler er konfigurert på dette skrivebordet.", "noHostSelected": "Ingen vert valgt", "noSshTunnels": "Ingen SSH-tunneler", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", + "port": "Havn", + "remoteBindAddress": "Fjernbindingsadresse", "remoteHost": "Fjernvert", "remotePort": "Fjernport", "retryInterval": "Intervall mellom forsøk (sekunder)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", + "route": "Rute:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOKKER via {{endpoint}}", "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} på {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Test", "tunnelName": "Tunnelnavn", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", + "tunnelTestFailed": "Tunneltest mislyktes", + "tunnelTestSucceeded": "Tunneltesten var vellykket", + "type": "Tunneltype", + "typeDynamic": "Dynamisk (-D)", + "typeLocal": "Lokal (-L)", + "typeRemote": "Fjernkontroll (-R)", + "working": "Arbeider...", + "activeCount": "{{connected}}/{{total}} aktiv", + "listensOn": "Bundet til lokal vert:{{port}}", + "socksProxy": "SOCKS5-proxy", "waiting": "Venter", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", + "remoteSessionExpired": "Fjernsynkroniseringsøkten er utløpt. Koble til fjernsynkroniseringen på nytt og prøv på nytt.", + "activeTunnels": "Aktive tunneler", "start": "Start", "stop": "Stopp", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "Tunnel-autentisering", + "authRetry": "Den forrige koden ble ikke godkjent. Skriv inn en ny kode.", + "authAnswer": "Autentiseringssvar", "authContinue": "Fortsett" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Bruk tunneler", + "description": "Start, stopp og overvåk SSH-tunneler, og lagre forhåndsinnstillinger for klienttunneler." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Aktiver tunneler", + "description": "Sett opp SSH-tunneler gjennom denne verten." } } }, "onboarding": { "feature_tunnels": "Tunneler", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Videresend porter gjennom en server for å nå tjenester som ikke er eksponert." } } diff --git a/plugins/tunnels/locales/translated/pl_PL.json b/plugins/tunnels/locales/translated/pl_PL.json index 40e2c6327..e70d6b117 100644 --- a/plugins/tunnels/locales/translated/pl_PL.json +++ b/plugins/tunnels/locales/translated/pl_PL.json @@ -33,7 +33,7 @@ "loadingHost": "Ładowanie hosta..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Przekierowanie", "tunnels": "Tunele" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (nasłuch lokalny)", "localTargetHost": "127.0.0.1 (cel na tym komputerze)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (nasłuchiwanie na punkcie końcowym)", + "remoteTargetHost": "127.0.0.1 (cel z punktu końcowego)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (nasłuch SOCKS)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "Zestaw do wczytania", "c2sTunnelPresets": "Zestawy tuneli klienta", "c2sTunnelPresetsUnavailable": "Zestawy tuneli klienta są dostępne tylko w aplikacji desktopowej.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "Nie udało się zmienić nazwy ustawienia wstępnego", + "c2sPresetDeleteError": "Nie udało się usunąć ustawienia wstępnego" }, "tunnels": { "attempt": "Próba {{current}} z {{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "Nie utworzono jeszcze żadnych tuneli SSH. Skonfiguruj połączenia tunelowe w Menedżerze hostów, aby zacząć.", "currentHostPort": "Aktualny port hosta", "destination": "Cel", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "Adres docelowy", + "destinationPort": "Port docelowy", "disconnected": "Rozłączono", "duplicateAutoStartBind": "Tylko jeden tunel klienta z automatycznym uruchomieniem może używać {{bind}}.", "endpointPort": "Port końcowy", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "Aktualny host {{sourcePort}} → punkt końcowy {{endpointPort}}.", "forwardDescriptionServerRemote": "Punkt końcowy {{endpointPort}} → bieżący host {{sourcePort}}.", "host": "Host", - "intermediateHost": "Intermediate Host", + "intermediateHost": "Żywiciel pośredni", "invalidBindIp": "Lokalny adres IP musi być prawidłowym adresem IPv4.", "invalidEndpointPort": "Port końcowy musi mieścić się w zakresie od 1 do 65535.", "invalidLocalPort": "Port lokalny musi mieścić się w zakresie od 1 do 65535.", "invalidLocalTargetIp": "Lokalny adres IP docelowy musi być prawidłowym adresem IPv4.", "invalidLocalTargetPort": "Lokalny port docelowy musi mieścić się w zakresie od 1 do 65535.", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "Wymagany jest adres zdalny.", "invalidRemotePort": "Port zdalny musi mieścić się w zakresie od 1 do 65535.", "lastError": "Ostatni błąd", "lastStarted": "Ostatnio uruchomiony", "lastTested": "Ostatnio testowane", - "localAddress": "Local Address", + "localAddress": "Adres lokalny", "localPort": "Port lokalny", "localSaveError": "Nie udało się zapisać lokalnych tuneli klienta", "localSaved": "Zapisano tunele klienta", @@ -124,14 +124,14 @@ "noHostSelected": "Nie wybrano hosta", "noSshTunnels": "Brak tuneli SSH", "port": "Port", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "Zdalny adres powiązania", "remoteHost": "Zdalny host", "remotePort": "Zdalny port", "retryInterval": "Interwał ponawiania (sekundy)", "route": "Trasa:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS przez {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} przez {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} na {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Test", "tunnelName": "Nazwa tunelu", "tunnelTestFailed": "Test tunelu nie powiódł się", @@ -141,30 +141,30 @@ "typeLocal": "Lokalny (-L)", "typeRemote": "Zdalny (-R)", "working": "Przetwarzanie...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} aktywny", + "listensOn": "Powiązane z localhost:{{port}}", + "socksProxy": "Serwer proxy SOCKS5", + "waiting": "Czekanie", + "remoteSessionExpired": "Sesja synchronizacji zdalnej wygasła. Połącz się ponownie z synchronizacją zdalną i spróbuj jeszcze raz.", "activeTunnels": "Aktywne tunele", "start": "Start", "stop": "Zatrzymaj", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "Uwierzytelnianie tunelowe", + "authRetry": "Poprzedni kod nie został zaakceptowany. Wprowadź nowy kod.", + "authAnswer": "Odpowiedź uwierzytelniania", "authContinue": "Kontynuuj" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Użyj tuneli", + "description": "Uruchamiaj, zatrzymuj i obserwuj tunele SSH oraz zapisuj ustawienia wstępne tuneli klienta." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Włącz tunele", + "description": "Skonfiguruj tunele SSH przez ten host." } } }, diff --git a/plugins/tunnels/locales/translated/pt_BR.json b/plugins/tunnels/locales/translated/pt_BR.json index 63b7d45fc..9aa028881 100644 --- a/plugins/tunnels/locales/translated/pt_BR.json +++ b/plugins/tunnels/locales/translated/pt_BR.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", + "addTunnelBtn": "Adicionar túnel", + "autoStartDesc": "Conecte este túnel automaticamente quando o host estiver carregado.", + "autoStartLabel": "Início automático", "connectBtn": "Conectar", "disconnectBtn": "Desconectar", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", + "enableTunneling": "Habilitar o tunelamento", + "enableTunnelingDesc": "Ative a funcionalidade de túnel SSH para este host.", + "endpointHost": "Host do ponto final", + "endpointHostPlaceholder": "Mesmo host, host SSH ou host/IP acessível", + "endpointPort": "Porta de ponto final", + "failedToConnectTunnel": "Falha ao conectar", + "failedToDisconnectTunnel": "Falha ao desconectar", + "maxRetries": "Número máximo de tentativas", + "noTunnelsConfigured": "Nenhum túnel configurado.", + "retryIntervalS": "Intervalo de tentativas (s)", + "serverTunnelsSection": "Túneis de servidor", + "sourcePort": "Porta de origem", "tabTunnels": "Túneis", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", + "tunnelConnecting": "Túnel de ligação...", + "tunnelDisconnected": "Túnel desconectado", + "tunnelLabel": "Túnel {{number}}", + "tunnelModeDynamicDesc": "Crie um proxy SOCKS5 em uma porta local para encaminhamento dinâmico de portas.", + "tunnelModeLocalDesc": "Encaminhar uma porta local para uma porta no servidor remoto (ou em um host acessível a partir dele).", + "tunnelModeRemoteDesc": "Encaminhe uma porta no servidor remoto de volta para uma porta local em sua máquina.", + "tunnelRequirementsText": "O servidor SSH deve ter as seguintes configurações definidas em /etc/ssh/sshd_config: GatewayPorts yes, AllowTcpForwarding yes e PermitRootLogin yes.", + "tunnelSettings": "Configurações do túnel", + "tunnelType": "Tipo de túnel", + "bindHost": "Vincular host", "docsLink": "Documentação", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "hostNotFound": "Host não encontrado", + "loadingHost": "Carregando host..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Encaminhamento", "tunnels": "Túneis" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (ouvir localmente)", + "localTargetHost": "127.0.0.1 (alvo neste computador)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (escutar no ponto de extremidade)", + "remoteTargetHost": "127.0.0.1 (destino do ponto de extremidade)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (ouvinte SOCKS)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} Túneis de cliente local configurados nesta área de trabalho.", + "c2sLoadPreset": "Carregar", + "c2sNoPresetSelected": "Nenhuma predefinição selecionada", + "c2sNoPresets": "Nenhuma predefinição salva", + "c2sPresetDeleted": "Configuração de túnel do cliente excluída", + "c2sPresetLoadError": "Falha ao carregar as predefinições do túnel do cliente.", + "c2sPresetLoaded": "Configuração predefinida do túnel do cliente carregada localmente", + "c2sPresetName": "Nome predefinido", + "c2sPresetNamePlaceholder": "Nome predefinido do cliente", + "c2sPresetRenamed": "A predefinição do túnel do cliente foi renomeada.", + "c2sPresetSaved": "Configuração predefinida do túnel do cliente salva", + "c2sPresetSyncNote": "As predefinições são instantâneos explícitos; carregar uma substitui a lista de túneis de clientes locais deste cliente de desktop.", + "c2sPresetToLoad": "Predefinido para carregar", + "c2sTunnelPresets": "Configurações predefinidas do túnel do cliente", + "c2sTunnelPresetsUnavailable": "As configurações predefinidas de túnel do cliente estão disponíveis apenas no cliente para desktop.", + "c2sPresetRenameError": "Falha ao renomear a predefinição", + "c2sPresetDeleteError": "Falha ao excluir a predefinição" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", + "attempt": "Tentativa {{current}} de {{max}}", + "autoNameClientDynamic": "MEIAS {{localPort}} via {{endpoint}}", "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", + "autoStart": "Início automático", "cancel": "Cancelar", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", + "canceling": "Cancelando...", + "clientAutoStartDesc": "Inicia quando este cliente de desktop é aberto e permanece conectado.", + "clientManualStartDesc": "Use os botões Iniciar e Parar a partir desta linha. O Termix não os abrirá automaticamente.", + "clientRemoteServerNote": "O encaminhamento remoto pode exigir as permissões AllowTcpForwarding e GatewayPorts no servidor SSH do endpoint. A porta remota é fechada quando esta área de trabalho se desconecta.", + "clientTunnelStarted": "O túnel do cliente foi iniciado.", + "clientTunnelStopped": "O túnel do cliente foi interrompido.", + "clientTunnels": "Túneis para clientes", + "connected": "Conectado", "connecting": "Conectando...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", + "createFirstTunnelMessage": "Você ainda não criou nenhum túnel SSH. Configure as conexões de túnel no Gerenciador de Hosts para começar.", + "currentHostPort": "Porta do host atual", + "destination": "Destino", + "destinationAddress": "Endereço de destino", + "destinationPort": "Porto de destino", + "disconnected": "Desconectado", + "duplicateAutoStartBind": "Apenas um túnel de cliente de inicialização automática pode usar {{bind}}.", + "endpointPort": "Porta de ponto final", + "endpointSshHost": "Host SSH de ponto final", + "endpointSshHostPlaceholder": "Selecione um host configurado", + "endpointSshHostRequired": "Selecione um host SSH de ponto final para cada túnel de cliente.", "error": "Erro", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", + "forwardDescriptionClientDynamic": "SOCKS na porta local {{sourcePort}}.", + "forwardDescriptionClientLocal": "Local {{sourcePort}} → remoto {{endpointPort}}.", + "forwardDescriptionClientRemote": "Remoto {{sourcePort}} → local {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS no host atual {{sourcePort}}.", + "forwardDescriptionServerLocal": "Host atual {{sourcePort}} → endpoint {{endpointPort}}.", + "forwardDescriptionServerRemote": "Ponto final {{endpointPort}} → host atual {{sourcePort}}.", + "host": "Hospedar", + "intermediateHost": "Anfitrião intermediário", + "invalidBindIp": "O endereço IP local deve ser um endereço IPv4 válido.", + "invalidEndpointPort": "A porta do ponto final deve estar entre 1 e 65535.", + "invalidLocalPort": "A porta local deve estar entre 1 e 65535.", + "invalidLocalTargetIp": "O endereço IP de destino local deve ser um endereço IPv4 válido.", + "invalidLocalTargetPort": "A porta de destino local deve estar entre 1 e 65535.", + "invalidRemoteAddress": "É necessário um endereço remoto.", + "invalidRemotePort": "A porta remota deve estar entre 1 e 65535.", + "lastError": "Último erro", + "lastStarted": "Última vez iniciado", + "lastTested": "Último teste", + "localAddress": "Endereço local", + "localPort": "Porto local", + "localSaveError": "Falha ao salvar os túneis do cliente local.", + "localSaved": "Túneis de clientes salvos", + "manualControlError": "Falha ao atualizar o estado do túnel.", + "maxRetries": "Número máximo de tentativas", + "mode": "Modo", + "nextRetryIn": "Próxima tentativa em {{seconds}} segundos", + "noClientTunnels": "Nenhum túnel de cliente configurado nesta área de trabalho.", + "noHostSelected": "Nenhum host selecionado", + "noSshTunnels": "Sem túneis SSH", "port": "Porta", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", + "remoteBindAddress": "Endereço de vinculação remota", + "remoteHost": "Host remoto", + "remotePort": "Porta remota", + "retryInterval": "Intervalo de tentativas (segundos)", + "route": "Rota:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → MEIAS via {{endpoint}}", "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} em {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "Teste", + "tunnelName": "Nome do túnel", + "tunnelTestFailed": "O teste do túnel falhou", + "tunnelTestSucceeded": "O teste no túnel foi bem-sucedido.", + "type": "Tipo de túnel", + "typeDynamic": "Dinâmico (-D)", "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", + "typeRemote": "Remoto (-R)", + "working": "Trabalhando...", + "activeCount": "{{connected}}/{{total}} ativo", + "listensOn": "Vinculado ao localhost:{{port}}", + "socksProxy": "proxy SOCKS5", + "waiting": "Esperando", + "remoteSessionExpired": "A sessão de Sincronização Remota expirou. Reconecte a Sincronização Remota e tente novamente.", + "activeTunnels": "Túneis ativos", "start": "Iniciar", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "stop": "Parar", + "authTitle": "Autenticação de túnel", + "authRetry": "O código anterior não foi aceito. Digite um novo código.", + "authAnswer": "Resposta de autenticação", "authContinue": "Continuar" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Use túneis", + "description": "Inicie, pare e monitore túneis SSH e salve configurações predefinidas de túneis de clientes." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Ativar túneis", + "description": "Configure túneis SSH através deste host." } } }, "onboarding": { "feature_tunnels": "Túneis", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Encaminhar portas através de um servidor para alcançar serviços que não estão expostos." } } diff --git a/plugins/tunnels/locales/translated/pt_PT.json b/plugins/tunnels/locales/translated/pt_PT.json index 1d5b222e0..0cda049e0 100644 --- a/plugins/tunnels/locales/translated/pt_PT.json +++ b/plugins/tunnels/locales/translated/pt_PT.json @@ -33,7 +33,7 @@ "loadingHost": "A carregar o host..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Encaminhamento", "tunnels": "Túneis" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (escuta localmente)", "localTargetHost": "127.0.0.1 (alvo neste computador)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (escutar no ponto final)", + "remoteTargetHost": "127.0.0.1 (destino do ponto final)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (escuta SOCKS)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "Predefinição a carregar", "c2sTunnelPresets": "Predefinições de túneis do cliente", "c2sTunnelPresetsUnavailable": "As predefinições de túneis do cliente estão disponíveis apenas no cliente de ambiente de trabalho.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "Falha ao renomear a predefinição", + "c2sPresetDeleteError": "Falha ao eliminar a predefinição" }, "tunnels": { "attempt": "Tentativa {{current}} de {{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "Ainda não criou nenhum túnel SSH. Configure as ligações de túnel no Gestor de Anfitriões para começar.", "currentHostPort": "Porta do host atual", "destination": "Destino", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "Endereço de destino", + "destinationPort": "Porto de destino", "disconnected": "Desligado", "duplicateAutoStartBind": "Apenas um túnel de cliente com arranque automático pode utilizar {{bind}}.", "endpointPort": "Porta do endpoint", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "Host atual {{sourcePort}} → endpoint {{endpointPort}}.", "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → host atual {{sourcePort}}.", "host": "Servidor", - "intermediateHost": "Intermediate Host", + "intermediateHost": "Anfitrião intermediário", "invalidBindIp": "O IP local deve ser um endereço IPv4 válido.", "invalidEndpointPort": "A porta do endpoint deve estar entre 1 e 65535.", "invalidLocalPort": "A porta local deve estar entre 1 e 65535.", "invalidLocalTargetIp": "O IP de destino local deve ser um endereço IPv4 válido.", "invalidLocalTargetPort": "A porta de destino local deve estar entre 1 e 65535.", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "É necessário um endereço remoto.", "invalidRemotePort": "A porta remota deve estar entre 1 e 65535.", "lastError": "Último erro", "lastStarted": "Último início", "lastTested": "Último teste", - "localAddress": "Local Address", + "localAddress": "Endereço local", "localPort": "Porta local", "localSaveError": "Falha ao guardar os túneis de cliente locais", "localSaved": "Túneis de cliente guardados", @@ -124,14 +124,14 @@ "noHostSelected": "Nenhum servidor selecionado", "noSshTunnels": "Sem túneis SSH", "port": "Porta", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "Endereço de ligação remota", "remoteHost": "Host remoto", "remotePort": "Porta remota", "retryInterval": "Intervalo de repetição (segundos)", "route": "Rota:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} em {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Testar", "tunnelName": "Nome do túnel", "tunnelTestFailed": "Teste do túnel falhou", @@ -141,35 +141,35 @@ "typeLocal": "Local (-L)", "typeRemote": "Remoto (-R)", "working": "A trabalhar...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} ativo", + "listensOn": "Ligado ao localhost:{{port}}", + "socksProxy": "proxy SOCKS5", + "waiting": "Espera", + "remoteSessionExpired": "A sessão de Sincronização Remota expirou. Volte a ligar a Sincronização Remota e tente novamente.", "activeTunnels": "Túneis Ativos", "start": "Iniciar", "stop": "Parar", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "Autenticação de túnel", + "authRetry": "O código anterior não foi aceite. Introduza um novo código.", + "authAnswer": "Resposta de autenticação", "authContinue": "Continuar" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Utilize túneis", + "description": "Inicie, pare e monitorize os túneis SSH e guarde as definições predefinidas dos túneis dos clientes." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Ativar túneis", + "description": "Configure túneis SSH através deste host." } } }, "onboarding": { "feature_tunnels": "Túneis", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Encaminhar portas através de um servidor para chegar a serviços que não estão expostos." } } diff --git a/plugins/tunnels/locales/translated/ru_RU.json b/plugins/tunnels/locales/translated/ru_RU.json index 7be8aa33a..fd1fb95db 100644 --- a/plugins/tunnels/locales/translated/ru_RU.json +++ b/plugins/tunnels/locales/translated/ru_RU.json @@ -33,7 +33,7 @@ "loadingHost": "Загрузка хоста..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Пересылка", "tunnels": "Туннели" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (слушать локально)", "localTargetHost": "127.0.0.1 (цель на этом компьютере)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (прослушивание конечной точки)", + "remoteTargetHost": "127.0.0.1 (цель с конечной точки)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (SOCKS-слушатель)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "Предустановка для загрузки", "c2sTunnelPresets": "Предустановки клиентских туннелей", "c2sTunnelPresetsUnavailable": "Предустановки клиентских туннелей доступны только в десктопном клиенте.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "Не удалось переименовать предустановку.", + "c2sPresetDeleteError": "Не удалось удалить предустановку." }, "tunnels": { "attempt": "Попытка {{current}} из {{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "Вы ещё не создали ни одного SSH-туннеля. Настройте туннельные соединения в Менеджере хостов, чтобы начать.", "currentHostPort": "Порт текущего хоста", "destination": "Назначение", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "Адрес назначения", + "destinationPort": "Порт назначения", "disconnected": "Отключено", "duplicateAutoStartBind": "Только один клиентский туннель с автозапуском может использовать {{bind}}.", "endpointPort": "Порт конечной точки", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "Текущий хост {{sourcePort}} → конечная точка {{endpointPort}}.", "forwardDescriptionServerRemote": "Конечная точка {{endpointPort}} → текущий хост {{sourcePort}}.", "host": "Хост", - "intermediateHost": "Intermediate Host", + "intermediateHost": "Промежуточный хост", "invalidBindIp": "Локальный IP-адрес должен быть действительным адресом IPv4.", "invalidEndpointPort": "Порт конечной точки должен быть в диапазоне от 1 до 65535.", "invalidLocalPort": "Локальный порт должен быть в диапазоне от 1 до 65535.", "invalidLocalTargetIp": "Локальный целевой IP-адрес должен быть действительным адресом IPv4.", "invalidLocalTargetPort": "Локальный целевой порт должен быть в диапазоне от 1 до 65535.", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "Требуется удаленный адрес.", "invalidRemotePort": "Удаленный порт должен быть в диапазоне от 1 до 65535.", "lastError": "Последняя ошибка", "lastStarted": "Последний запуск", "lastTested": "Последняя проверка", - "localAddress": "Local Address", + "localAddress": "Местный адрес", "localPort": "Локальный порт", "localSaveError": "Не удалось сохранить локальные клиентские туннели", "localSaved": "Клиентские туннели сохранены", @@ -124,14 +124,14 @@ "noHostSelected": "Хост не выбран", "noSshTunnels": "Нет SSH-туннелей", "port": "Порт", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "Удаленный адрес привязки", "remoteHost": "Удаленный хост", "remotePort": "Удаленный порт", "retryInterval": "Интервал повтора (секунд)", "route": "Маршрут:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS через {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} через {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Проверить", "tunnelName": "Имя туннеля", "tunnelTestFailed": "Проверка туннеля не удалась", @@ -141,35 +141,35 @@ "typeLocal": "Локальный (-L)", "typeRemote": "Удалённый (-R)", "working": "Выполняется...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} активный", + "listensOn": "Привязка к localhost:{{port}}", + "socksProxy": "SOCKS5 прокси", + "waiting": "Ожидающий", + "remoteSessionExpired": "Сеанс удаленной синхронизации истек. Переподключитесь к удаленной синхронизации и попробуйте снова.", "activeTunnels": "Активные туннели", "start": "Запустить", "stop": "Остановить", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "туннельная аутентификация", + "authRetry": "Предыдущий код не был принят. Введите новый код.", + "authAnswer": "Ответ аутентификации", "authContinue": "Продолжить" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Используйте туннели", + "description": "Запуск, остановка и мониторинг SSH-туннелей, а также сохранение настроек клиентских туннелей." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Включить туннели", + "description": "Настройте SSH-туннели через этот хост." } } }, "onboarding": { "feature_tunnels": "Туннели", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Перенаправляйте порты через сервер для доступа к службам, которые не доступны извне." } } diff --git a/plugins/tunnels/locales/translated/sr_SP.json b/plugins/tunnels/locales/translated/sr_SP.json index fd37e8918..1e2e0d1db 100644 --- a/plugins/tunnels/locales/translated/sr_SP.json +++ b/plugins/tunnels/locales/translated/sr_SP.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", - "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "addTunnelBtn": "Додај тунел", + "autoStartDesc": "Аутоматски повежи овај тунел када се хост учита", + "autoStartLabel": "Аутоматско покретање", + "connectBtn": "Повежи се", + "disconnectBtn": "Прекини везу", + "enableTunneling": "Омогући тунелирање", + "enableTunnelingDesc": "Омогући функционалност SSH тунела за овај хост", + "endpointHost": "Крајњи хост", + "endpointHostPlaceholder": "Исти хост, SSH хост или доступни хост/IP адреса", + "endpointPort": "Порт крајње тачке", + "failedToConnectTunnel": "Повезивање није успело", + "failedToDisconnectTunnel": "Прекид везе није успео", + "maxRetries": "Максималан број поновних покушаја", + "noTunnelsConfigured": "Није конфигурисан ниједан тунел.", + "retryIntervalS": "Интервал поновног покушаја (s)", + "serverTunnelsSection": "Серверски тунели", + "sourcePort": "Изворни порт", + "tabTunnels": "Тунели", + "tunnelConnecting": "Тунел који се повезује...", + "tunnelDisconnected": "Тунел је искључен", + "tunnelLabel": "Тунел {{number}}", + "tunnelModeDynamicDesc": "Направите SOCKS5 прокси на локалном порту за динамичко прослеђивање портова.", + "tunnelModeLocalDesc": "Прослеђује локални порт на порт на удаљеном серверу (или хосту који је доступан са њега).", + "tunnelModeRemoteDesc": "Проследите порт на удаљеном серверу назад на локални порт на вашој машини.", + "tunnelRequirementsText": "SSH сервер мора имати подешена подешавања за GatewayPorts, AllowTcpForwarding и PermitRootLogin у /etc/ssh/sshd_config.", + "tunnelSettings": "Подешавања тунела", + "tunnelType": "Тип тунела", + "bindHost": "Повежи хост", + "docsLink": "Прикажи документе", + "hostNotFound": "Хост није пронађен", + "loadingHost": "Учитавање хоста..." }, "nav": { - "portForwarding": "Forwarding", - "tunnels": "Tunnels" + "portForwarding": "Преусмеравање", + "tunnels": "Тунели" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (слушај локално)", + "localTargetHost": "127.0.0.1 (циљ на овом рачунару)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (слушање на крајњој тачки)", + "remoteTargetHost": "127.0.0.1 (циљ са крајње тачке)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (SOCKS слушалац)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} локалних клијентских тунела конфигурисаних на овој радној површини.", + "c2sLoadPreset": "Учитај", + "c2sNoPresetSelected": "Није изабран ниједан унапред подешени подешавања", + "c2sNoPresets": "Нема сачуваних предефинисаних подешавања", + "c2sPresetDeleted": "Унапред подешено подешавање тунела клијента је избрисано", + "c2sPresetLoadError": "Није успело учитавање унапред подешених подешавања клијентског тунела", + "c2sPresetLoaded": "Унапред подешено учитавање тунела клијента локално", + "c2sPresetName": "Име пресета", + "c2sPresetNamePlaceholder": "Име унапред подешеног подешавања клијента", + "c2sPresetRenamed": "Преименован је унапред одређен тунел клијента", + "c2sPresetSaved": "Унапред подешено подешавање тунела клијента је сачувано", + "c2sPresetSyncNote": "Унапред подешена подешавања су експлицитни снимци; учитавање једног замењује листу локалних тунела клијената овог десктоп клијента.", + "c2sPresetToLoad": "Унапред подешено за учитавање", + "c2sTunnelPresets": "Унапред подешена подешавања клијентског тунела", + "c2sTunnelPresetsUnavailable": "Унапред подешена подешавања тунела клијента доступна су само у десктоп клијенту.", + "c2sPresetRenameError": "Преименовање унапред подешеног подешавања није успело", + "c2sPresetDeleteError": "Брисање унапред подешеног подешавања није успело" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "attempt": "Покушај {{current}} од {{max}}", + "autoNameClientDynamic": "ЧАРАПЕ {{localPort}} преко {{endpoint}}", + "autoNameClientLocal": "Локално {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → локално {{localPort}}", + "autoStart": "Аутоматски старт", + "cancel": "Откажи", + "canceling": "Отказивање...", + "clientAutoStartDesc": "Покреће се када се овај десктоп клијент отвори и остане повезан.", + "clientManualStartDesc": "Користите опције „Старт“ и „Стоп“ из овог реда. Termix га неће аутоматски отворити.", + "clientRemoteServerNote": "Даљинско преусмеравање може захтевати AllowTcpForwarding и GatewayPorts на SSH серверу крајње тачке. Удаљени порт се затвара када се ова радна површина искључи.", + "clientTunnelStarted": "Тунел клијента је покренут", + "clientTunnelStopped": "Тунел клијента је заустављен", + "clientTunnels": "Клијентски тунели", + "connected": "Повезано", + "connecting": "Повезивање...", + "createFirstTunnelMessage": "Још увек нисте креирали ниједан SSH тунел. Конфигуришите тунелске везе у Host Manager-у да бисте започели.", + "currentHostPort": "Тренутни порт хоста", + "destination": "Одредиште", + "destinationAddress": "Адреса одредишта", + "destinationPort": "Одредишна лука", + "disconnected": "Искључено", + "duplicateAutoStartBind": "Само један аутоматски покренути клијентски тунел може да користи {{bind}}.", + "endpointPort": "Порт крајње тачке", + "endpointSshHost": "SSH хост крајње тачке", + "endpointSshHostPlaceholder": "Изаберите конфигурисани хост", + "endpointSshHostRequired": "Изаберите SSH хост крајње тачке за сваки клијентски тунел.", + "error": "Грешка", + "forwardDescriptionClientDynamic": "SOCKS на локалном порту {{sourcePort}}.", + "forwardDescriptionClientLocal": "Локално {{sourcePort}} → удаљено {{endpointPort}}.", + "forwardDescriptionClientRemote": "Удаљено {{sourcePort}} → локално {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS на тренутном хосту {{sourcePort}}.", + "forwardDescriptionServerLocal": "Тренутни хост {{sourcePort}} → крајња тачка {{endpointPort}}.", + "forwardDescriptionServerRemote": "Крајња тачка {{endpointPort}} → тренутни хост {{sourcePort}}.", + "host": "Домаћин", + "intermediateHost": "Посредни домаћин", + "invalidBindIp": "Локална IP адреса мора бити важећа IPv4 адреса.", + "invalidEndpointPort": "Порт крајње тачке мора бити између 1 и 65535.", + "invalidLocalPort": "Локални порт мора бити између 1 и 65535.", + "invalidLocalTargetIp": "Локална циљна IP адреса мора бити важећа IPv4 адреса.", + "invalidLocalTargetPort": "Локални циљни порт мора бити између 1 и 65535.", + "invalidRemoteAddress": "Удаљена адреса је обавезна.", + "invalidRemotePort": "Удаљени порт мора бити између 1 и 65535.", + "lastError": "Последња грешка", + "lastStarted": "Последњи пут започет", + "lastTested": "Последње тестирање", + "localAddress": "Локална адреса", + "localPort": "Локални порт", + "localSaveError": "Чување локалних клијентских тунела није успело", + "localSaved": "Тунели клијента сачувани", + "manualControlError": "Ажурирање стања тунела није успело.", + "maxRetries": "Максималан број поновних покушаја", + "mode": "Режим", + "nextRetryIn": "Следећи поновни покушај за {{seconds}} секунди", + "noClientTunnels": "Ниједан клијентски тунел није конфигурисан на овој радној површини.", + "noHostSelected": "Није изабран домаћин", + "noSshTunnels": "Нема SSH тунела", + "port": "Лука", + "remoteBindAddress": "Адреса за удаљено повезивање", + "remoteHost": "Удаљени хост", + "remotePort": "Удаљени порт", + "retryInterval": "Интервал поновног покушаја (секунде)", + "route": "Рута:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → ЧАРАПЕ преко {{endpoint}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} преко {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "Тест", + "tunnelName": "Назив тунела", + "tunnelTestFailed": "Тест тунела није успео", + "tunnelTestSucceeded": "Тест тунела је успешан", + "type": "Тип тунела", + "typeDynamic": "Динамички (-Д)", + "typeLocal": "Локално (-Л)", + "typeRemote": "Даљински (-R)", + "working": "Ради се...", + "activeCount": "{{connected}}/{{total}} активно", + "listensOn": "Везано са локалним хостом:{{port}}", + "socksProxy": "SOCKS5 прокси", + "waiting": "Чекање", + "remoteSessionExpired": "Сесија даљинске синхронизације је истекла. Поново се повежите са даљинском синхронизацијом и покушајте поново.", + "activeTunnels": "Активни тунели", + "start": "Почетак", + "stop": "Заустави", + "authTitle": "Аутентификација тунела", + "authRetry": "Претходни код није прихваћен. Унесите нови код.", + "authAnswer": "Одговор на аутентификацију", + "authContinue": "Настави" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Користите тунеле", + "description": "Покрените, зауставите и гледајте SSH тунеле и сачувајте унапред подешене поставке клијентских тунела." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Омогући тунеле", + "description": "Подесите SSH тунеле преко овог хоста." } } }, "onboarding": { - "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels": "Тунели", + "feature_tunnels_desc": "Прослеђујте портове кроз сервер да бисте дошли до сервиса који нису изложени." } } diff --git a/plugins/tunnels/locales/translated/sv_SE.json b/plugins/tunnels/locales/translated/sv_SE.json index fd37e8918..30eebfa5b 100644 --- a/plugins/tunnels/locales/translated/sv_SE.json +++ b/plugins/tunnels/locales/translated/sv_SE.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", - "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", + "addTunnelBtn": "Lägg till tunnel", + "autoStartDesc": "Anslut automatiskt den här tunneln när värden laddas", + "autoStartLabel": "Autostart", + "connectBtn": "Ansluta", + "disconnectBtn": "Koppla från", + "enableTunneling": "Aktivera tunnelering", + "enableTunnelingDesc": "Aktivera SSH-tunnelfunktionalitet för den här värden", + "endpointHost": "Slutpunktsvärd", + "endpointHostPlaceholder": "Samma värd, SSH-värd eller nåbar värd/IP", + "endpointPort": "Slutpunktsport", + "failedToConnectTunnel": "Misslyckades med att ansluta", + "failedToDisconnectTunnel": "Misslyckades med att koppla från", + "maxRetries": "Max antal återförsök", + "noTunnelsConfigured": "Inga tunnlar konfigurerade.", + "retryIntervalS": "Intervall för återförsök (s)", + "serverTunnelsSection": "Servertunnlar", + "sourcePort": "Källport", + "tabTunnels": "Tunnlar", + "tunnelConnecting": "Tunnelförbindelse...", + "tunnelDisconnected": "Tunneln frånkopplad", "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "tunnelModeDynamicDesc": "Skapa en SOCKS5-proxy på en lokal port för dynamisk portvidarebefordran.", + "tunnelModeLocalDesc": "Vidarebefordra en lokal port till en port på fjärrservern (eller en värd som är nåbar från den).", + "tunnelModeRemoteDesc": "Vidarebefordra en port på fjärrservern tillbaka till en lokal port på din maskin.", + "tunnelRequirementsText": "SSH-servern måste ha GatewayPorts ja, AllowTcpForwarding ja och PermitRootLogin ja angivna i /etc/ssh/sshd_config.", + "tunnelSettings": "Tunnelinställningar", + "tunnelType": "Tunneltyp", + "bindHost": "Bind värd", + "docsLink": "Visa dokument", + "hostNotFound": "Värden hittades inte", + "loadingHost": "Laddar värd..." }, "nav": { - "portForwarding": "Forwarding", - "tunnels": "Tunnels" + "portForwarding": "Spedition", + "tunnels": "Tunnlar" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (lyssna lokalt)", + "localTargetHost": "127.0.0.1 (mål på den här datorn)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (lyssna på slutpunkten)", + "remoteTargetHost": "127.0.0.1 (mål från slutpunkt)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (SOCKS-lyssnare)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} lokala klienttunnlar konfigurerade på den här skrivbordet.", + "c2sLoadPreset": "Ladda", + "c2sNoPresetSelected": "Ingen förinställning vald", + "c2sNoPresets": "Inga förinställningar sparade", + "c2sPresetDeleted": "Förinställningen för klienttunneln har raderats", + "c2sPresetLoadError": "Misslyckades med att läsa in förinställningar för klienttunneln", + "c2sPresetLoaded": "Förinställningen för klienttunnel laddas lokalt", + "c2sPresetName": "Förinställt namn", + "c2sPresetNamePlaceholder": "Klientförinställningsnamn", + "c2sPresetRenamed": "Förinställningen för klienttunneln har bytt namn", + "c2sPresetSaved": "Förinställningen för klienttunneln sparad", + "c2sPresetSyncNote": "Förinställningar är explicita ögonblicksbilder; om en sådan läses in ersätts den här skrivbordsklientens lokala klienttunnellista.", + "c2sPresetToLoad": "Förinställning att ladda", + "c2sTunnelPresets": "Förinställningar för klienttunnel", + "c2sTunnelPresetsUnavailable": "Förinställningar för klienttunneln är endast tillgängliga i skrivbordsklienten.", + "c2sPresetRenameError": "Misslyckades med att byta namn på förinställningen", + "c2sPresetDeleteError": "Misslyckades med att ta bort förinställningen" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", + "attempt": "Försök {{current}} av {{max}}", + "autoNameClientDynamic": "STRUMPOCKOR {{localPort}} via {{endpoint}}", + "autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}", + "autoStart": "Automatisk start", + "cancel": "Avboka", + "canceling": "Inställande...", + "clientAutoStartDesc": "Startar när den här skrivbordsklienten öppnas och förblir ansluten.", + "clientManualStartDesc": "Använd Start och Stopp från den här raden. Termix öppnar den inte automatiskt.", + "clientRemoteServerNote": "Fjärrvidarebefordran kan kräva AllowTcpForwarding och GatewayPorts på slutpunktens SSH-server. Fjärrporten stängs när den här skrivbordsmiljön kopplas bort.", + "clientTunnelStarted": "Klienttunneln har startats", + "clientTunnelStopped": "Klienttunneln stoppad", + "clientTunnels": "Klienttunnlar", + "connected": "Ansluten", + "connecting": "Ansluter...", + "createFirstTunnelMessage": "Du har inte skapat några SSH-tunnlar än. Konfigurera tunnelanslutningar i Host Manager för att komma igång.", + "currentHostPort": "Nuvarande värdport", "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", + "destinationAddress": "Destinationsadress", + "destinationPort": "Destinationshamn", + "disconnected": "Osammanhängande", + "duplicateAutoStartBind": "Endast en automatiskt startad klienttunnel kan använda {{bind}}.", + "endpointPort": "Slutpunktsport", + "endpointSshHost": "Slutpunkts-SSH-värd", + "endpointSshHostPlaceholder": "Välj en konfigurerad värd", + "endpointSshHostRequired": "Välj en SSH-värd för slutpunkten för varje klienttunnel.", + "error": "Fel", + "forwardDescriptionClientDynamic": "SOCKS på lokal port {{sourcePort}}.", + "forwardDescriptionClientLocal": "Lokal {{sourcePort}} → fjärrkontroll {{endpointPort}}.", + "forwardDescriptionClientRemote": "Fjärrstyrd {{sourcePort}} → lokal {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS på nuvarande värd {{sourcePort}}.", + "forwardDescriptionServerLocal": "Nuvarande värd {{sourcePort}} → slutpunkt {{endpointPort}}.", + "forwardDescriptionServerRemote": "Slutpunkt {{endpointPort}} → aktuell värd {{sourcePort}}.", + "host": "Värd", + "intermediateHost": "Mellanvärd", + "invalidBindIp": "Lokal IP-adress måste vara en giltig IPv4-adress.", + "invalidEndpointPort": "Slutpunktsporten måste vara mellan 1 och 65535.", + "invalidLocalPort": "Den lokala porten måste vara mellan 1 och 65535.", + "invalidLocalTargetIp": "Den lokala mål-IP-adressen måste vara en giltig IPv4-adress.", + "invalidLocalTargetPort": "Den lokala målporten måste vara mellan 1 och 65535.", + "invalidRemoteAddress": "Fjärradress krävs.", + "invalidRemotePort": "Fjärrporten måste vara mellan 1 och 65535.", + "lastError": "Senaste felet", + "lastStarted": "Senast startade", + "lastTested": "Senast testad", + "localAddress": "Lokal adress", + "localPort": "Lokal hamn", + "localSaveError": "Misslyckades med att spara lokala klienttunnlar", + "localSaved": "Klienttunnlar sparade", + "manualControlError": "Misslyckades med att uppdatera tunnelns tillstånd.", + "maxRetries": "Max antal återförsök", + "mode": "Läge", + "nextRetryIn": "Nästa försök om {{seconds}} sekunder", + "noClientTunnels": "Inga klienttunnlar konfigurerade på den här skrivbordet.", + "noHostSelected": "Ingen värd vald", + "noSshTunnels": "Inga SSH-tunnlar", + "port": "Hamn", + "remoteBindAddress": "Fjärrbindningsadress", + "remoteHost": "Fjärrvärd", + "remotePort": "Fjärrport", + "retryInterval": "Intervall för återförsök (sekunder)", + "route": "Rutt:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} på {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "Testa", + "tunnelName": "Tunnelnamn", + "tunnelTestFailed": "Tunneltestet misslyckades", + "tunnelTestSucceeded": "Tunneltestet lyckades", + "type": "Tunneltyp", + "typeDynamic": "Dynamisk (-D)", + "typeLocal": "Lokal (-L)", + "typeRemote": "Fjärrkontroll (-R)", + "working": "Arbetssätt...", + "activeCount": "{{connected}}/{{total}} aktiv", + "listensOn": "Bunden till lokalvärd:{{port}}", + "socksProxy": "SOCKS5-proxy", + "waiting": "Väntan", + "remoteSessionExpired": "Fjärrsynkroniseringssessionen har upphört. Återanslut fjärrsynkroniseringen och försök igen.", + "activeTunnels": "Aktiva tunnlar", "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "stop": "Stopp", + "authTitle": "Tunnelautentisering", + "authRetry": "Den tidigare koden accepterades inte. Ange en ny kod.", + "authAnswer": "Autentiseringssvar", + "authContinue": "Fortsätta" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Använd tunnlar", + "description": "Starta, stoppa och övervaka SSH-tunnlar och spara förinställningar för klienttunneln." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Aktivera tunnlar", + "description": "Konfigurera SSH-tunnlar genom den här värden." } } }, "onboarding": { - "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels": "Tunnlar", + "feature_tunnels_desc": "Vidarebefordra portar via en server för att nå tjänster som inte är exponerade." } } diff --git a/plugins/tunnels/locales/translated/th_TH.json b/plugins/tunnels/locales/translated/th_TH.json index fd37e8918..566f3bd07 100644 --- a/plugins/tunnels/locales/translated/th_TH.json +++ b/plugins/tunnels/locales/translated/th_TH.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", - "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "addTunnelBtn": "เพิ่มอุโมงค์", + "autoStartDesc": "เชื่อมต่ออุโมงค์นี้โดยอัตโนมัติเมื่อโหลดโฮสต์เสร็จ", + "autoStartLabel": "เริ่มอัตโนมัติ", + "connectBtn": "เชื่อมต่อ", + "disconnectBtn": "ตัดการเชื่อมต่อ", + "enableTunneling": "เปิดใช้งานการสร้างอุโมงค์", + "enableTunnelingDesc": "เปิดใช้งานฟังก์ชันอุโมงค์ SSH สำหรับโฮสต์นี้", + "endpointHost": "โฮสต์ปลายทาง", + "endpointHostPlaceholder": "โฮสต์เดียวกัน โฮสต์ SSH หรือโฮสต์/IP ที่สามารถเข้าถึงได้", + "endpointPort": "พอร์ตปลายทาง", + "failedToConnectTunnel": "ไม่สามารถเชื่อมต่อได้", + "failedToDisconnectTunnel": "ไม่สามารถตัดการเชื่อมต่อได้", + "maxRetries": "จำนวนครั้งการลองใหม่สูงสุด", + "noTunnelsConfigured": "ไม่มีการกำหนดค่าอุโมงค์ใดๆ", + "retryIntervalS": "ช่วงเวลาการลองใหม่ (วินาที)", + "serverTunnelsSection": "อุโมงค์เซิร์ฟเวอร์", + "sourcePort": "พอร์ตต้นทาง", + "tabTunnels": "อุโมงค์", + "tunnelConnecting": "อุโมงค์เชื่อมต่อ...", + "tunnelDisconnected": "อุโมงค์ถูกตัดการเชื่อมต่อ", + "tunnelLabel": "อุโมงค์ {{number}}", + "tunnelModeDynamicDesc": "สร้างพร็อกซี SOCKS5 บนพอร์ตภายในเครื่องเพื่อใช้ในการส่งต่อพอร์ตแบบไดนามิก", + "tunnelModeLocalDesc": "ส่งต่อพอร์ตภายในเครื่องไปยังพอร์ตบนเซิร์ฟเวอร์ระยะไกล (หรือโฮสต์ที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์นั้น)", + "tunnelModeRemoteDesc": "ส่งต่อพอร์ตบนเซิร์ฟเวอร์ระยะไกลกลับมายังพอร์ตภายในเครื่องของคุณ", + "tunnelRequirementsText": "เซิร์ฟเวอร์ SSH ต้องตั้งค่า GatewayPorts yes, AllowTcpForwarding yes และ PermitRootLogin yes ในไฟล์ /etc/ssh/sshd_config", + "tunnelSettings": "การตั้งค่าอุโมงค์", + "tunnelType": "ประเภทอุโมงค์", + "bindHost": "โฮสต์ผูก", + "docsLink": "ดูเอกสาร", + "hostNotFound": "ไม่พบโฮสต์", + "loadingHost": "กำลังโหลดโฮสต์..." }, "nav": { - "portForwarding": "Forwarding", - "tunnels": "Tunnels" + "portForwarding": "การส่งต่อ", + "tunnels": "อุโมงค์" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (ฟังในพื้นที่ของคุณ)", + "localTargetHost": "127.0.0.1 (เป้าหมายบนคอมพิวเตอร์เครื่องนี้)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (รับฟังที่ปลายทาง)", + "remoteTargetHost": "127.0.0.1 (เป้าหมายจากปลายทาง)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (ผู้ฟัง SOCKS)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} อุโมงค์ไคลเอ็นต์ภายในเครื่องที่กำหนดค่าไว้บนเดสก์ท็อปนี้", + "c2sLoadPreset": "โหลด", + "c2sNoPresetSelected": "ไม่ได้เลือกค่าที่ตั้งไว้ล่วงหน้า", + "c2sNoPresets": "ไม่มีการบันทึกค่าที่ตั้งไว้ล่วงหน้า", + "c2sPresetDeleted": "ลบการตั้งค่าล่วงหน้าของอุโมงค์ไคลเอ็นต์แล้ว", + "c2sPresetLoadError": "ไม่สามารถโหลดค่าที่ตั้งไว้ล่วงหน้าของอุโมงค์ไคลเอ็นต์ได้", + "c2sPresetLoaded": "โหลดค่าที่ตั้งไว้ล่วงหน้าของอุโมงค์ไคลเอ็นต์ในเครื่องแล้ว", + "c2sPresetName": "ชื่อพรีเซ็ต", + "c2sPresetNamePlaceholder": "ชื่อการตั้งค่าล่วงหน้าของลูกค้า", + "c2sPresetRenamed": "เปลี่ยนชื่อพรีเซ็ตอุโมงค์ไคลเอ็นต์แล้ว", + "c2sPresetSaved": "บันทึกการตั้งค่าอุโมงค์ไคลเอ็นต์ไว้แล้ว", + "c2sPresetSyncNote": "ค่าที่ตั้งไว้ล่วงหน้าเป็นภาพรวมที่ถูกกำหนดไว้อย่างชัดเจน การโหลดค่าใดค่าหนึ่งจะแทนที่รายการอุโมงค์ไคลเอ็นต์ในเครื่องของไคลเอ็นต์เดสก์ท็อปนี้", + "c2sPresetToLoad": "ตั้งค่าล่วงหน้าเพื่อโหลด", + "c2sTunnelPresets": "ค่าที่ตั้งไว้ล่วงหน้าสำหรับอุโมงค์ไคลเอ็นต์", + "c2sTunnelPresetsUnavailable": "การตั้งค่าล่วงหน้าสำหรับอุโมงค์ไคลเอ็นต์มีให้ใช้งานเฉพาะในไคลเอ็นต์เดสก์ท็อปเท่านั้น", + "c2sPresetRenameError": "ไม่สามารถเปลี่ยนชื่อพรีเซ็ตได้", + "c2sPresetDeleteError": "ไม่สามารถลบค่าที่ตั้งไว้ล่วงหน้าได้" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "attempt": "ความพยายาม {{current}} ของ {{max}}", + "autoNameClientDynamic": "ถุงเท้า {{localPort}} ผ่าน {{endpoint}}", + "autoNameClientLocal": "โลคอล {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → โลคอล {{localPort}}", + "autoStart": "เริ่มอัตโนมัติ", + "cancel": "ยกเลิก", + "canceling": "ยกเลิก...", + "clientAutoStartDesc": "เริ่มทำงานเมื่อโปรแกรมไคลเอ็นต์บนเดสก์ท็อปนี้เปิดขึ้นและเชื่อมต่ออยู่ตลอดเวลา", + "clientManualStartDesc": "ใช้ปุ่ม Start และ Stop จากแถวนี้ Termix จะไม่เปิดไฟล์นี้โดยอัตโนมัติ", + "clientRemoteServerNote": "การส่งต่อพอร์ตระยะไกลอาจต้องใช้การตั้งค่า AllowTcpForwarding และ GatewayPorts บนเซิร์ฟเวอร์ SSH ปลายทาง พอร์ตระยะไกลจะปิดลงเมื่อเดสก์ท็อปนี้ตัดการเชื่อมต่อ", + "clientTunnelStarted": "อุโมงค์ไคลเอ็นต์เริ่มต้นแล้ว", + "clientTunnelStopped": "อุโมงค์ไคลเอ็นต์หยุดทำงานแล้ว", + "clientTunnels": "อุโมงค์ไคลเอ็นต์", + "connected": "เชื่อมต่อแล้ว", + "connecting": "กำลังเชื่อมต่อ...", + "createFirstTunnelMessage": "คุณยังไม่ได้สร้างอุโมงค์ SSH ใดๆ เลย กำหนดค่าการเชื่อมต่ออุโมงค์ใน Host Manager เพื่อเริ่มต้นใช้งาน", + "currentHostPort": "พอร์ตโฮสต์ปัจจุบัน", + "destination": "ปลายทาง", + "destinationAddress": "ที่อยู่ปลายทาง", + "destinationPort": "ท่าเรือปลายทาง", + "disconnected": "ตัดการเชื่อมต่อ", + "duplicateAutoStartBind": "อุโมงค์ไคลเอ็นต์ที่เริ่มต้นอัตโนมัติเพียงหนึ่งเดียวเท่านั้นที่สามารถใช้ {{bind}} ได้", + "endpointPort": "พอร์ตปลายทาง", + "endpointSshHost": "โฮสต์ SSH ปลายทาง", + "endpointSshHostPlaceholder": "เลือกโฮสต์ที่กำหนดค่าไว้", + "endpointSshHostRequired": "เลือกโฮสต์ SSH ปลายทางสำหรับแต่ละอุโมงค์ไคลเอ็นต์", + "error": "ข้อผิดพลาด", + "forwardDescriptionClientDynamic": "SOCKS บนพอร์ตท้องถิ่น {{sourcePort}}", + "forwardDescriptionClientLocal": "เครื่องโลคอล {{sourcePort}} → รีโมท {{endpointPort}}", + "forwardDescriptionClientRemote": "รีโมท {{sourcePort}} → โลคอล {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS บนโฮสต์ปัจจุบัน {{sourcePort}}.", + "forwardDescriptionServerLocal": "โฮสต์ปัจจุบัน {{sourcePort}} → ปลายทาง {{endpointPort}}", + "forwardDescriptionServerRemote": "ปลายทาง {{endpointPort}} → โฮสต์ปัจจุบัน {{sourcePort}}", + "host": "เจ้าภาพ", + "intermediateHost": "โฮสต์ตัวกลาง", + "invalidBindIp": "ที่อยู่ IP ภายในเครื่องต้องเป็นที่อยู่ IPv4 ที่ถูกต้อง", + "invalidEndpointPort": "พอร์ตปลายทางต้องอยู่ระหว่าง 1 ถึง 65535", + "invalidLocalPort": "หมายเลขพอร์ตท้องถิ่นต้องอยู่ระหว่าง 1 ถึง 65535", + "invalidLocalTargetIp": "ที่อยู่ IP เป้าหมายในเครือข่ายท้องถิ่นต้องเป็นที่อยู่ IPv4 ที่ถูกต้อง", + "invalidLocalTargetPort": "พอร์ตเป้าหมายในเครื่องต้องอยู่ระหว่าง 1 ถึง 65535", + "invalidRemoteAddress": "ต้องระบุที่อยู่เครือข่ายระยะไกล", + "invalidRemotePort": "พอร์ตระยะไกลต้องอยู่ระหว่าง 1 ถึง 65535", + "lastError": "ข้อผิดพลาดล่าสุด", + "lastStarted": "เริ่มครั้งล่าสุด", + "lastTested": "ทดสอบครั้งล่าสุด", + "localAddress": "ที่อยู่ท้องถิ่น", + "localPort": "ท่าเรือท้องถิ่น", + "localSaveError": "ไม่สามารถบันทึกอุโมงค์ไคลเอ็นต์ในพื้นที่ได้", + "localSaved": "บันทึกอุโมงค์ไคลเอ็นต์แล้ว", + "manualControlError": "ไม่สามารถอัปเดตสถานะอุโมงค์ได้", + "maxRetries": "จำนวนครั้งการลองใหม่สูงสุด", + "mode": "โหมด", + "nextRetryIn": "ลองใหม่อีกครั้งใน {{seconds}} วินาที", + "noClientTunnels": "ไม่มีการกำหนดค่าอุโมงค์ไคลเอ็นต์บนเดสก์ท็อปนี้", + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "noSshTunnels": "ไม่มีอุโมงค์ SSH", + "port": "ท่าเรือ", + "remoteBindAddress": "ที่อยู่การเชื่อมต่อระยะไกล", + "remoteHost": "โฮสต์ระยะไกล", + "remotePort": "พอร์ตระยะไกล", + "retryInterval": "ช่วงเวลาการลองใหม่ (วินาที)", + "route": "เส้นทาง:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → ถุงเท้า ผ่านทาง {{endpoint}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} ผ่าน {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} บน {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "ทดสอบ", + "tunnelName": "ชื่ออุโมงค์", + "tunnelTestFailed": "การทดสอบอุโมงค์ล้มเหลว", + "tunnelTestSucceeded": "การทดสอบอุโมงค์ประสบความสำเร็จ", + "type": "ประเภทอุโมงค์", + "typeDynamic": "ไดนามิก (-D)", + "typeLocal": "ท้องถิ่น (-L)", + "typeRemote": "รีโมท (-R)", + "working": "การทำงาน...", + "activeCount": "{{connected}}/{{total}} ใช้งานอยู่", + "listensOn": "เชื่อมต่อกับ localhost:{{port}}", + "socksProxy": "พร็อกซี SOCKS5", + "waiting": "ซึ่งรอคอย", + "remoteSessionExpired": "เซสชั่นการซิงค์ระยะไกลหมดอายุแล้ว โปรดเชื่อมต่อการซิงค์ระยะไกลอีกครั้งแล้วลองใหม่อีกครั้ง", + "activeTunnels": "อุโมงค์ที่ใช้งานอยู่", + "start": "เริ่ม", + "stop": "หยุด", + "authTitle": "การตรวจสอบสิทธิ์อุโมงค์", + "authRetry": "รหัสก่อนหน้านี้ใช้ไม่ได้ โปรดป้อนรหัสใหม่", + "authAnswer": "การตอบสนองการตรวจสอบสิทธิ์", + "authContinue": "ดำเนินการต่อ" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "ใช้อุโมงค์", + "description": "เริ่ม หยุด และตรวจสอบอุโมงค์ SSH รวมถึงบันทึกการตั้งค่าล่วงหน้าของอุโมงค์ไคลเอ็นต์" } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "เปิดใช้งานอุโมงค์", + "description": "ตั้งค่าอุโมงค์ SSH ผ่านโฮสต์นี้" } } }, "onboarding": { - "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels": "อุโมงค์", + "feature_tunnels_desc": "ส่งต่อพอร์ตผ่านเซิร์ฟเวอร์เพื่อเข้าถึงบริการที่ไม่เปิดเผยต่อสาธารณะ" } } diff --git a/plugins/tunnels/locales/translated/tr_TR.json b/plugins/tunnels/locales/translated/tr_TR.json index dee084149..34051ac19 100644 --- a/plugins/tunnels/locales/translated/tr_TR.json +++ b/plugins/tunnels/locales/translated/tr_TR.json @@ -33,7 +33,7 @@ "loadingHost": "Host yükleniyor..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "İletme", "tunnels": "Tüneller" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (yerel olarak dinle)", "localTargetHost": "127.0.0.1 (bu bilgisayardaki hedef)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (uç noktada dinleme)", + "remoteTargetHost": "127.0.0.1 (uç noktadan hedef)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (SOCKS dinleyici)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "Yüklenecek Ön Ayar", "c2sTunnelPresets": "İstemci Tünel Ön Ayarları", "c2sTunnelPresetsUnavailable": "İstemci tünel ön ayarları yalnızca masaüstü istemcisinde kullanılabilir.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "Ön ayarın yeniden adlandırılması başarısız oldu.", + "c2sPresetDeleteError": "Ön ayar silinemedi." }, "tunnels": { "attempt": "Deneme {{current}}/{{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "Henüz hiç SSH tüneli oluşturmadınız. Başlamak için Ana Bilgisayar Yöneticisi'nde tünel bağlantılarını yapılandırın.", "currentHostPort": "Geçerli Sunucu Portu", "destination": "Hedef", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "Hedef Adresi", + "destinationPort": "Varış Limanı", "disconnected": "Bağlantı kesildi", "duplicateAutoStartBind": "Yalnızca bir otomatik başlatmalı istemci tüneli {{bind}} kullanabilir.", "endpointPort": "Uç Nokta Portu", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "Geçerli sunucu {{sourcePort}} → uç nokta {{endpointPort}}.", "forwardDescriptionServerRemote": "Uç nokta {{endpointPort}} → geçerli sunucu {{sourcePort}}.", "host": "Host", - "intermediateHost": "Intermediate Host", + "intermediateHost": "Ara Ev Sahibi", "invalidBindIp": "Yerel IP geçerli bir IPv4 adresi olmalıdır.", "invalidEndpointPort": "Uç nokta portu 1 ile 65535 arasında olmalıdır.", "invalidLocalPort": "Yerel port 1 ile 65535 arasında olmalıdır.", "invalidLocalTargetIp": "Yerel hedef IP geçerli bir IPv4 adresi olmalıdır.", "invalidLocalTargetPort": "Yerel hedef portu 1 ile 65535 arasında olmalıdır.", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "Uzak adres gereklidir.", "invalidRemotePort": "Uzak port 1 ile 65535 arasında olmalıdır.", "lastError": "Son hata", "lastStarted": "Son başlatma", "lastTested": "Son test", - "localAddress": "Local Address", + "localAddress": "Yerel Adres", "localPort": "Yerel Port", "localSaveError": "Yerel istemci tünelleri kaydedilemedi", "localSaved": "İstemci tünelleri kaydedildi", @@ -124,7 +124,7 @@ "noHostSelected": "Hiçbir host seçilmedi", "noSshTunnels": "SSH Tüneli yok", "port": "Port", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "Uzak Bağlantı Adresi", "remoteHost": "Uzak Sunucu", "remotePort": "Uzak Port", "retryInterval": "Yeniden Deneme Aralığı (saniye)", @@ -141,35 +141,35 @@ "typeLocal": "Yerel (-L)", "typeRemote": "Uzak (-R)", "working": "Çalışıyor...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", + "activeCount": "{{connected}}/{{total}} aktif", + "listensOn": "localhost'a bağlı:{{port}}", "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "waiting": "Beklemek", + "remoteSessionExpired": "Uzaktan Senkronizasyon oturumunun süresi doldu. Lütfen Uzaktan Senkronizasyona yeniden bağlanın ve tekrar deneyin.", "activeTunnels": "Etkin Tüneller", "start": "Başlat", "stop": "Durdur", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "Tünel kimlik doğrulaması", + "authRetry": "Önceki kod kabul edilmedi. Lütfen yeni bir kod girin.", + "authAnswer": "Kimlik doğrulama yanıtı", "authContinue": "Devam" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Tünelleri kullanın", + "description": "SSH tünellerini başlatın, durdurun ve izleyin, ayrıca istemci tünel ön ayarlarını kaydedin." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Tünelleri etkinleştirin", + "description": "Bu sunucu üzerinden SSH tünelleri kurun." } } }, "onboarding": { "feature_tunnels": "Tüneller", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Sunucu üzerinden port yönlendirmesi yaparak, doğrudan erişime açık olmayan hizmetlere ulaşabilirsiniz." } } diff --git a/plugins/tunnels/locales/translated/uk_UA.json b/plugins/tunnels/locales/translated/uk_UA.json index fd37e8918..2221edf30 100644 --- a/plugins/tunnels/locales/translated/uk_UA.json +++ b/plugins/tunnels/locales/translated/uk_UA.json @@ -1,175 +1,175 @@ { "hosts": { - "addTunnelBtn": "Add Tunnel", - "autoStartDesc": "Automatically connect this tunnel when the host is loaded", - "autoStartLabel": "Auto-start", - "connectBtn": "Connect", - "disconnectBtn": "Disconnect", - "enableTunneling": "Enable Tunneling", - "enableTunnelingDesc": "Enable SSH tunnel functionality for this host", - "endpointHost": "Endpoint Host", - "endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP", - "endpointPort": "Endpoint Port", - "failedToConnectTunnel": "Failed to connect", - "failedToDisconnectTunnel": "Failed to disconnect", - "maxRetries": "Max Retries", - "noTunnelsConfigured": "No tunnels configured.", - "retryIntervalS": "Retry Interval (s)", - "serverTunnelsSection": "Server Tunnels", - "sourcePort": "Source Port", - "tabTunnels": "Tunnels", - "tunnelConnecting": "Tunnel connecting...", - "tunnelDisconnected": "Tunnel disconnected", - "tunnelLabel": "Tunnel {{number}}", - "tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.", - "tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).", - "tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.", - "tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.", - "tunnelSettings": "Tunnel Settings", - "tunnelType": "Tunnel Type", - "bindHost": "Bind Host", - "docsLink": "View docs", - "hostNotFound": "Host not found", - "loadingHost": "Loading host..." + "addTunnelBtn": "Додати тунель", + "autoStartDesc": "Автоматично підключати цей тунель, коли хост завантажено", + "autoStartLabel": "Автоматичний запуск", + "connectBtn": "Підключитися", + "disconnectBtn": "Відключитися", + "enableTunneling": "Увімкнути тунелювання", + "enableTunnelingDesc": "Увімкнути функцію SSH-тунелю для цього хоста", + "endpointHost": "Кінцевий хост", + "endpointHostPlaceholder": "Той самий хост, хост SSH або доступний хост/IP-адреса", + "endpointPort": "Порт кінцевої точки", + "failedToConnectTunnel": "Не вдалося підключитися", + "failedToDisconnectTunnel": "Не вдалося відключитися", + "maxRetries": "Макс. кількість повторних спроб", + "noTunnelsConfigured": "Тунелі не налаштовано.", + "retryIntervalS": "Інтервал повторних спроб (с)", + "serverTunnelsSection": "Тунелі серверів", + "sourcePort": "Порт джерела", + "tabTunnels": "Тунелі", + "tunnelConnecting": "Тунель, що з'єднує...", + "tunnelDisconnected": "Тунель відключено", + "tunnelLabel": "Тунель {{number}}", + "tunnelModeDynamicDesc": "Створіть проксі-сервер SOCKS5 на локальному порту для динамічного переадресації портів.", + "tunnelModeLocalDesc": "Перенаправити локальний порт на порт на віддаленому сервері (або на хост, доступний з нього).", + "tunnelModeRemoteDesc": "Перенаправте порт на віддаленому сервері назад на локальний порт на вашому комп'ютері.", + "tunnelRequirementsText": "Для SSH-сервера у файлі /etc/ssh/sshd_config мають бути встановлені значення GatewayPorts: «так», AllowTcpForwarding: «так» та PermitRootLogin: «так».", + "tunnelSettings": "Налаштування тунелю", + "tunnelType": "Тип тунелю", + "bindHost": "Прив’язати хост", + "docsLink": "Переглянути документи", + "hostNotFound": "Хост не знайдено", + "loadingHost": "Завантаження хоста..." }, "nav": { - "portForwarding": "Forwarding", - "tunnels": "Tunnels" + "portForwarding": "Переадресація", + "tunnels": "Тунелі" }, "placeholders": { "defaultEndpointPort": "224", "defaultPort": "22", - "localListenerHost": "127.0.0.1 (listen locally)", - "localTargetHost": "127.0.0.1 (target on this computer)", + "localListenerHost": "127.0.0.1 (прослуховувати локально)", + "localTargetHost": "127.0.0.1 (ціль на цьому комп'ютері)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (прослуховування на кінцевій точці)", + "remoteTargetHost": "127.0.0.1 (ціль з кінцевої точки)", "retryInterval": "10", - "socksListenerHost": "127.0.0.1 (SOCKS listener)" + "socksListenerHost": "127.0.0.1 (слухач SOCKS)" }, "profile": { - "c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.", - "c2sLoadPreset": "Load", - "c2sNoPresetSelected": "No preset selected", - "c2sNoPresets": "No presets saved", - "c2sPresetDeleted": "Client tunnel preset deleted", - "c2sPresetLoadError": "Failed to load client tunnel presets", - "c2sPresetLoaded": "Client tunnel preset loaded locally", - "c2sPresetName": "Preset Name", - "c2sPresetNamePlaceholder": "Client preset name", - "c2sPresetRenamed": "Client tunnel preset renamed", - "c2sPresetSaved": "Client tunnel preset saved", - "c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.", - "c2sPresetToLoad": "Preset To Load", - "c2sTunnelPresets": "Client Tunnel Presets", - "c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sCurrentLocalConfig": "{{count}} локальних клієнтських тунелів, налаштованих на цьому робочому столі.", + "c2sLoadPreset": "Навантаження", + "c2sNoPresetSelected": "Не вибрано пресетів", + "c2sNoPresets": "Немає збережених пресетів", + "c2sPresetDeleted": "Попередній налаштування тунелю клієнта видалено", + "c2sPresetLoadError": "Не вдалося завантажити попередні налаштування тунелю клієнта", + "c2sPresetLoaded": "Попередній набір тунелю клієнта завантажено локально", + "c2sPresetName": "Назва пресета", + "c2sPresetNamePlaceholder": "Назва попереднього налаштування клієнта", + "c2sPresetRenamed": "Попередній набір клієнтського тунелю перейменовано", + "c2sPresetSaved": "Збережено пресет тунелю клієнта", + "c2sPresetSyncNote": "Пресети – це явні знімки; завантаження одного з них замінює список тунелів локальних клієнтів цього клієнта робочого столу.", + "c2sPresetToLoad": "Попередньо налаштовані для завантаження", + "c2sTunnelPresets": "Пресети тунелю клієнта", + "c2sTunnelPresetsUnavailable": "Попередні налаштування тунелю клієнта доступні лише у клієнтській версії для настільних комп'ютерів.", + "c2sPresetRenameError": "Не вдалося перейменувати пресет", + "c2sPresetDeleteError": "Не вдалося видалити пресет" }, "tunnels": { - "attempt": "Attempt {{current}} of {{max}}", - "autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}", - "autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}", - "autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}", - "autoStart": "Auto Start", - "cancel": "Cancel", - "canceling": "Canceling...", - "clientAutoStartDesc": "Starts when this desktop client opens and stays connected.", - "clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.", - "clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.", - "clientTunnelStarted": "Client tunnel started", - "clientTunnelStopped": "Client tunnel stopped", - "clientTunnels": "Client Tunnels", - "connected": "Connected", - "connecting": "Connecting...", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "currentHostPort": "Current Host Port", - "destination": "Destination", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", - "disconnected": "Disconnected", - "duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.", - "endpointPort": "Endpoint Port", - "endpointSshHost": "Endpoint SSH Host", - "endpointSshHostPlaceholder": "Select a configured host", - "endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.", - "error": "Error", - "forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.", - "forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.", - "forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.", - "forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.", - "forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.", - "forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.", - "host": "Host", - "intermediateHost": "Intermediate Host", - "invalidBindIp": "Local IP must be a valid IPv4 address.", - "invalidEndpointPort": "Endpoint port must be between 1 and 65535.", - "invalidLocalPort": "Local port must be between 1 and 65535.", - "invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.", - "invalidLocalTargetPort": "Local target port must be between 1 and 65535.", - "invalidRemoteAddress": "Remote address is required.", - "invalidRemotePort": "Remote port must be between 1 and 65535.", - "lastError": "Last error", - "lastStarted": "Last started", - "lastTested": "Last tested", - "localAddress": "Local Address", - "localPort": "Local Port", - "localSaveError": "Failed to save local client tunnels", - "localSaved": "Client tunnels saved", - "manualControlError": "Failed to update tunnel state.", - "maxRetries": "Max Retries", - "mode": "Mode", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "noClientTunnels": "No client tunnels configured on this desktop.", - "noHostSelected": "No host selected", - "noSshTunnels": "No SSH Tunnels", - "port": "Port", - "remoteBindAddress": "Remote Bind Address", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "retryInterval": "Retry Interval (seconds)", - "route": "Route:", - "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", - "test": "Test", - "tunnelName": "Tunnel Name", - "tunnelTestFailed": "Tunnel test failed", - "tunnelTestSucceeded": "Tunnel test succeeded", - "type": "Tunnel Type", - "typeDynamic": "Dynamic (-D)", - "typeLocal": "Local (-L)", - "typeRemote": "Remote (-R)", - "working": "Working...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", - "activeTunnels": "Active Tunnels", - "start": "Start", - "stop": "Stop", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", - "authContinue": "Continue" + "attempt": "Спроба {{current}} з {{max}}", + "autoNameClientDynamic": "ШКАРПЕТКИ {{localPort}} через {{endpoint}}", + "autoNameClientLocal": "Місцевий {{localPort}} → {{endpoint}} {{remotePort}}", + "autoNameClientRemote": "{{endpoint}} {{remotePort}} → місцевий {{localPort}}", + "autoStart": "Автоматичний запуск", + "cancel": "Скасувати", + "canceling": "Скасування...", + "clientAutoStartDesc": "Запускається, коли цей клієнт для робочого столу відкривається та залишається підключеним.", + "clientManualStartDesc": "Використовуйте «Пуск» і «Стоп» з цього рядка. Termix не відкриє його автоматично.", + "clientRemoteServerNote": "Для віддаленого переадресування можуть знадобитися параметри AllowTcpForwarding та GatewayPorts на SSH-сервері кінцевої точки. Віддалений порт закривається, коли цей робочий стіл відключається.", + "clientTunnelStarted": "Тунель клієнта розпочато", + "clientTunnelStopped": "Тунель клієнта зупинено", + "clientTunnels": "Тунелі клієнта", + "connected": "Підключено", + "connecting": "Підключення...", + "createFirstTunnelMessage": "Ви ще не створили жодного SSH-тунелю. Налаштуйте тунельні з’єднання в Host Manager, щоб розпочати.", + "currentHostPort": "Поточний порт хоста", + "destination": "Пункт призначення", + "destinationAddress": "Адреса призначення", + "destinationPort": "Порт призначення", + "disconnected": "Відключено", + "duplicateAutoStartBind": "Тільки один тунель клієнта з автозапуском може використовувати {{bind}}.", + "endpointPort": "Порт кінцевої точки", + "endpointSshHost": "Кінцева точка SSH-хост", + "endpointSshHostPlaceholder": "Виберіть налаштований хост", + "endpointSshHostRequired": "Виберіть кінцевий SSH-хост для кожного клієнтського тунелю.", + "error": "Помилка", + "forwardDescriptionClientDynamic": "SOCKS на локальному порту {{sourcePort}}.", + "forwardDescriptionClientLocal": "Локальний {{sourcePort}} → віддалений {{endpointPort}}.", + "forwardDescriptionClientRemote": "Віддалений {{sourcePort}} → локальний {{endpointPort}}.", + "forwardDescriptionServerDynamic": "SOCKS на поточному хості {{sourcePort}}.", + "forwardDescriptionServerLocal": "Поточний хост {{sourcePort}} → кінцева точка {{endpointPort}}.", + "forwardDescriptionServerRemote": "Кінцева точка {{endpointPort}} → поточний хост {{sourcePort}}.", + "host": "Хост", + "intermediateHost": "Проміжний господар", + "invalidBindIp": "Локальна IP-адреса має бути дійсною IPv4-адресою.", + "invalidEndpointPort": "Порт кінцевої точки має бути в діапазоні від 1 до 65535.", + "invalidLocalPort": "Локальний порт має бути в діапазоні від 1 до 65535.", + "invalidLocalTargetIp": "Локальна цільова IP-адреса має бути дійсною IPv4-адресою.", + "invalidLocalTargetPort": "Локальний цільовий порт має бути в діапазоні від 1 до 65535.", + "invalidRemoteAddress": "Потрібна віддалена адреса.", + "invalidRemotePort": "Віддалений порт має бути в діапазоні від 1 до 65535.", + "lastError": "Остання помилка", + "lastStarted": "Останній запуск", + "lastTested": "Останнє тестування", + "localAddress": "Локальна адреса", + "localPort": "Локальний порт", + "localSaveError": "Не вдалося зберегти локальні тунелі клієнта", + "localSaved": "Тунелі клієнтів збережено", + "manualControlError": "Не вдалося оновити стан тунелю.", + "maxRetries": "Макс. кількість повторних спроб", + "mode": "Режим", + "nextRetryIn": "Наступна спроба через {{seconds}} секунд", + "noClientTunnels": "На цьому робочому столі не налаштовано жодних клієнтських тунелів.", + "noHostSelected": "Хост не вибрано", + "noSshTunnels": "Без SSH-тунелів", + "port": "Порт", + "remoteBindAddress": "Адреса віддаленого зв'язування", + "remoteHost": "Віддалений хост", + "remotePort": "Віддалений порт", + "retryInterval": "Інтервал повторних спроб (секунди)", + "route": "Маршрут:", + "summaryClientDynamic": "{{localHost}}:{{localPort}} → ШКАРПЕТКИ через {{endpoint}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} через {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}", + "test": "Тест", + "tunnelName": "Назва тунелю", + "tunnelTestFailed": "Випробування тунелю не вдалося", + "tunnelTestSucceeded": "Випробування тунелю успішно", + "type": "Тип тунелю", + "typeDynamic": "Динамічний (-D)", + "typeLocal": "Місцевий (-L)", + "typeRemote": "Віддалений (-R)", + "working": "Працюємо...", + "activeCount": "{{connected}}/{{total}} активний", + "listensOn": "Прив'язано до локального хоста:{{port}}", + "socksProxy": "Проксі SOCKS5", + "waiting": "Очікування", + "remoteSessionExpired": "Сеанс віддаленої синхронізації завершився. Перепідключіться до віддаленої синхронізації та повторіть спробу.", + "activeTunnels": "Активні тунелі", + "start": "Початок", + "stop": "СТІЙ", + "authTitle": "Аутентифікація тунелю", + "authRetry": "Попередній код не прийнято. Введіть новий код.", + "authAnswer": "Відповідь на автентифікацію", + "authContinue": "Продовжити" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Використовуйте тунелі", + "description": "Запускайте, зупиняйте та переглядайте SSH-тунелі, а також зберігайте пресетні налаштування клієнтських тунелів." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Увімкнути тунелі", + "description": "Налаштуйте SSH-тунелі через цей хост." } } }, "onboarding": { - "feature_tunnels": "Tunnels", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels": "Тунелі", + "feature_tunnels_desc": "Переадресовувати порти через сервер для доступу до служб, які не піддаються впливу." } } diff --git a/plugins/tunnels/locales/translated/vi_VN.json b/plugins/tunnels/locales/translated/vi_VN.json index 8a80c9896..0838763de 100644 --- a/plugins/tunnels/locales/translated/vi_VN.json +++ b/plugins/tunnels/locales/translated/vi_VN.json @@ -33,7 +33,7 @@ "loadingHost": "Đang tải máy chủ..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "Chuyển tiếp", "tunnels": "Đường hầm" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (lắng nghe cục bộ)", "localTargetHost": "127.0.0.1 (đích trên máy này)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1 (lắng nghe trên điểm cuối)", + "remoteTargetHost": "127.0.0.1 (mục tiêu từ điểm cuối)", "retryInterval": "10", "socksListenerHost": "127.0.0.1 (Trình nghe SOCKS)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "Cài đặt sẵn để tải", "c2sTunnelPresets": "Cài đặt sẵn Đường hầm Máy khách", "c2sTunnelPresetsUnavailable": "Cài đặt sẵn đường hầm máy khách chỉ khả dụng trên ứng dụng máy tính.", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "Không thể đổi tên cài đặt sẵn", + "c2sPresetDeleteError": "Không thể xóa cài đặt sẵn" }, "tunnels": { "attempt": "Lần thử {{current}} / {{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "Bạn chưa tạo đường hầm SSH nào. Hãy cấu hình kết nối đường hầm trong Trình quản lý máy chủ để bắt đầu.", "currentHostPort": "Cổng máy hiện tại", "destination": "Điểm đến", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "Địa chỉ đích", + "destinationPort": "Cảng đích", "disconnected": "Đã ngắt kết nối", "duplicateAutoStartBind": "Chỉ một đường hầm máy khách tự động có thể sử dụng {{bind}}.", "endpointPort": "Cổng điểm cuối", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "Máy chủ hiện tại {{sourcePort}} → điểm cuối {{endpointPort}}.", "forwardDescriptionServerRemote": "Điểm cuối {{endpointPort}} → máy chủ hiện tại {{sourcePort}}.", "host": "Máy chủ", - "intermediateHost": "Intermediate Host", + "intermediateHost": "Máy chủ trung gian", "invalidBindIp": "IP cục bộ phải là địa chỉ IPv4 hợp lệ.", "invalidEndpointPort": "Cổng điểm cuối phải nằm trong khoảng 1 đến 65535.", "invalidLocalPort": "Cổng cục bộ phải nằm trong khoảng 1 đến 65535.", "invalidLocalTargetIp": "IP đích cục bộ phải là địa chỉ IPv4 hợp lệ.", "invalidLocalTargetPort": "Cổng đích cục bộ phải nằm trong khoảng 1 đến 65535.", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "Cần có địa chỉ từ xa.", "invalidRemotePort": "Cổng từ xa phải nằm trong khoảng 1 đến 65535.", "lastError": "Lỗi cuối cùng", "lastStarted": "Lần bắt đầu cuối", "lastTested": "Lần kiểm tra cuối", - "localAddress": "Local Address", + "localAddress": "Địa chỉ địa phương", "localPort": "Cổng cục bộ", "localSaveError": "Lưu đường hầm máy khách cục bộ thất bại", "localSaved": "Đã lưu đường hầm máy khách", @@ -124,14 +124,14 @@ "noHostSelected": "Chưa chọn máy chủ", "noSshTunnels": "Không có đường hầm SSH", "port": "Cổng", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "Địa chỉ liên kết từ xa", "remoteHost": "Máy chủ từ xa", "remotePort": "Cổng từ xa", "retryInterval": "Khoảng thời gian thử lại (giây)", "route": "Tuyến:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS qua {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} qua {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} trên {{endpoint}} → {{localHost}}:{{localPort}}", "test": "Kiểm tra", "tunnelName": "Tên đường hầm", "tunnelTestFailed": "Kiểm tra đường hầm thất bại", @@ -141,35 +141,35 @@ "typeLocal": "Cục bộ (-L)", "typeRemote": "Từ xa (-R)", "working": "Đang làm việc...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} đang hoạt động", + "listensOn": "Đã kết nối với máy chủ cục bộ:{{port}}", + "socksProxy": "Máy chủ proxy SOCKS5", + "waiting": "Chờ", + "remoteSessionExpired": "Phiên đồng bộ từ xa đã hết hạn. Vui lòng kết nối lại đồng bộ từ xa và thử lại.", "activeTunnels": "Đường hầm hoạt động", "start": "Bắt đầu", "stop": "Dừng", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "Xác thực đường hầm", + "authRetry": "Mã trước đó không được chấp nhận. Vui lòng nhập mã mới.", + "authAnswer": "Phản hồi xác thực", "authContinue": "Tiếp tục" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "Sử dụng đường hầm", + "description": "Khởi tạo, dừng và theo dõi các đường hầm SSH, cũng như lưu các thiết lập sẵn của đường hầm phía máy khách." } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "Kích hoạt đường hầm", + "description": "Thiết lập đường hầm SSH thông qua máy chủ này." } } }, "onboarding": { "feature_tunnels": "Đường hầm", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "Chuyển tiếp cổng thông qua máy chủ để truy cập các dịch vụ không được công khai." } } diff --git a/plugins/tunnels/locales/translated/zh_CN.json b/plugins/tunnels/locales/translated/zh_CN.json index 4d0e92703..eb8e347f6 100644 --- a/plugins/tunnels/locales/translated/zh_CN.json +++ b/plugins/tunnels/locales/translated/zh_CN.json @@ -33,7 +33,7 @@ "loadingHost": "正在加载主机..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "转发", "tunnels": "隧道" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (本地监听)", "localTargetHost": "127.0.0.1 (此计算机上的目标)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1(监听端点)", + "remoteTargetHost": "127.0.0.1(来自端点的目标)", "retryInterval": "10", "socksListenerHost": "127.0.0.1(SOCKS 监听器)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "要加载的预设", "c2sTunnelPresets": "客户端隧道预设", "c2sTunnelPresetsUnavailable": "客户端隧道预设仅在桌面客户端中可用。", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "重命名预设失败", + "c2sPresetDeleteError": "删除预设失败" }, "tunnels": { "attempt": "尝试 {{current}}/{{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "您尚未创建任何 SSH 隧道。在主机管理器中配置隧道连接以开始使用。", "currentHostPort": "当前主机端口", "destination": "目标", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "目的地地址", + "destinationPort": "目的港", "disconnected": "已断开", "duplicateAutoStartBind": "只有一个自启动客户端隧道可以使用 {{bind}}。", "endpointPort": "端点端口", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "当前主机 {{sourcePort}} → 端点 {{endpointPort}}。", "forwardDescriptionServerRemote": "端点 {{endpointPort}} → 当前主机 {{sourcePort}}。", "host": "主机", - "intermediateHost": "Intermediate Host", + "intermediateHost": "中间宿主", "invalidBindIp": "本地 IP 必须是有效的 IPv4 地址。", "invalidEndpointPort": "端点端口必须在 1 到 65535 之间。", "invalidLocalPort": "本地端口必须在 1 到 65535 之间。", "invalidLocalTargetIp": "本地目标 IP 必须是有效的 IPv4 地址。", "invalidLocalTargetPort": "本地目标端口必须在 1 到 65535 之间。", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "需要远程地址。", "invalidRemotePort": "远程端口必须在 1 到 65535 之间。", "lastError": "最后错误", "lastStarted": "最后启动", "lastTested": "最后测试", - "localAddress": "Local Address", + "localAddress": "本地地址", "localPort": "本地端口", "localSaveError": "保存本地客户端隧道失败", "localSaved": "客户端隧道已保存", @@ -124,14 +124,14 @@ "noHostSelected": "未选择主机", "noSshTunnels": "无 SSH 隧道", "port": "端口", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "远程绑定地址", "remoteHost": "远程主机", "remotePort": "远程端口", "retryInterval": "重试间隔(秒)", "route": "路由:", "summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS 通过 {{endpoint}}", - "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}", - "summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}", + "summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} 经由 {{endpoint}}", + "summaryClientRemote": "{{remoteHost}}:{{remotePort}} 在 {{endpoint}} → {{localHost}}:{{localPort}}", "test": "测试", "tunnelName": "隧道名称", "tunnelTestFailed": "隧道测试失败", @@ -141,30 +141,30 @@ "typeLocal": "本地 (-L)", "typeRemote": "远程 (-R)", "working": "处理中...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", + "activeCount": "{{connected}}/{{total}} 活动", + "listensOn": "绑定到本地主机:{{port}}", + "socksProxy": "SOCKS5代理", "waiting": "等待", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "remoteSessionExpired": "远程同步会话已过期。请重新连接远程同步并重试。", "activeTunnels": "活跃隧道", "start": "启动", "stop": "停止", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "隧道认证", + "authRetry": "之前的验证码无效。请输入新的验证码。", + "authAnswer": "身份验证响应", "authContinue": "继续" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "利用隧道", + "description": "启动、停止和监视 SSH 隧道,并保存客户端隧道预设。" } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "启用隧道", + "description": "通过此主机建立 SSH 隧道。" } } }, diff --git a/plugins/tunnels/locales/translated/zh_TW.json b/plugins/tunnels/locales/translated/zh_TW.json index fa2bb6e1d..706b05403 100644 --- a/plugins/tunnels/locales/translated/zh_TW.json +++ b/plugins/tunnels/locales/translated/zh_TW.json @@ -33,7 +33,7 @@ "loadingHost": "正在載入主機..." }, "nav": { - "portForwarding": "Forwarding", + "portForwarding": "轉發", "tunnels": "隧道" }, "placeholders": { @@ -42,8 +42,8 @@ "localListenerHost": "127.0.0.1 (本機監聽)", "localTargetHost": "127.0.0.1 (此電腦上的目標)", "maxRetries": "3", - "remoteBindHost": "127.0.0.1 (listen on endpoint)", - "remoteTargetHost": "127.0.0.1 (target from endpoint)", + "remoteBindHost": "127.0.0.1(監聽端點)", + "remoteTargetHost": "127.0.0.1(來自端點的目標)", "retryInterval": "10", "socksListenerHost": "127.0.0.1(SOCKS 監聽器)" }, @@ -63,8 +63,8 @@ "c2sPresetToLoad": "要載入的預設組", "c2sTunnelPresets": "用戶端通道預設組", "c2sTunnelPresetsUnavailable": "用戶端通道預設組僅在桌面用戶端中可用。", - "c2sPresetRenameError": "Failed to rename the preset", - "c2sPresetDeleteError": "Failed to delete the preset" + "c2sPresetRenameError": "重新命名預設失敗", + "c2sPresetDeleteError": "刪除預設失敗" }, "tunnels": { "attempt": "嘗試 {{current}}/{{max}}", @@ -85,8 +85,8 @@ "createFirstTunnelMessage": "您尚未建立任何 SSH 通道。請在主機管理員中設定通道連線以開始使用。", "currentHostPort": "目前主機連接埠", "destination": "目的地", - "destinationAddress": "Destination Address", - "destinationPort": "Destination Port", + "destinationAddress": "目的地地址", + "destinationPort": "目的港", "disconnected": "已離線", "duplicateAutoStartBind": "只有一個自動啟動的用戶端通道可以使用 {{bind}}。", "endpointPort": "端點連接埠", @@ -101,18 +101,18 @@ "forwardDescriptionServerLocal": "目前主機 {{sourcePort}} → 端點 {{endpointPort}}。", "forwardDescriptionServerRemote": "端點 {{endpointPort}} → 目前主機 {{sourcePort}}。", "host": "主機", - "intermediateHost": "Intermediate Host", + "intermediateHost": "中間宿主", "invalidBindIp": "本機 IP 必須是有效的 IPv4 位址。", "invalidEndpointPort": "端點連接埠必須介於 1 到 65535 之間。", "invalidLocalPort": "本機連接埠必須介於 1 到 65535 之間。", "invalidLocalTargetIp": "本機目標 IP 必須是有效的 IPv4 位址。", "invalidLocalTargetPort": "本機目標連接埠必須介於 1 到 65535 之間。", - "invalidRemoteAddress": "Remote address is required.", + "invalidRemoteAddress": "需要遠端位址。", "invalidRemotePort": "遠端連接埠必須介於 1 到 65535 之間。", "lastError": "上次錯誤", "lastStarted": "上次啟動", "lastTested": "上次測試", - "localAddress": "Local Address", + "localAddress": "本地地址", "localPort": "本機連接埠", "localSaveError": "無法儲存本機用戶端通道", "localSaved": "用戶端通道已儲存", @@ -124,7 +124,7 @@ "noHostSelected": "未選取主機", "noSshTunnels": "無 SSH 通道", "port": "連接埠", - "remoteBindAddress": "Remote Bind Address", + "remoteBindAddress": "遠端綁定位址", "remoteHost": "遠端主機", "remotePort": "遠端連接埠", "retryInterval": "重試間隔(秒)", @@ -141,35 +141,35 @@ "typeLocal": "本機 (-L)", "typeRemote": "遠端 (-R)", "working": "處理中...", - "activeCount": "{{connected}}/{{total}} active", - "listensOn": "Bound to localhost:{{port}}", - "socksProxy": "SOCKS5 proxy", - "waiting": "Waiting", - "remoteSessionExpired": "Remote Sync session expired. Reconnect Remote Sync and try again.", + "activeCount": "{{connected}}/{{total}} 活動", + "listensOn": "綁定到本地主機:{{port}}", + "socksProxy": "SOCKS5代理", + "waiting": "等待", + "remoteSessionExpired": "遠端同步會話已過期。請重新連線遠端同步並重試。", "activeTunnels": "活動通道", "start": "啟動", "stop": "停止", - "authTitle": "Tunnel authentication", - "authRetry": "The previous code was not accepted. Enter a new code.", - "authAnswer": "Authentication response", + "authTitle": "隧道認證", + "authRetry": "之前的驗證碼無效。請輸入新的驗證碼。", + "authAnswer": "身份驗證回應", "authContinue": "繼續" }, "permissions": { "use": { - "title": "Use tunnels", - "description": "Start, stop and watch SSH tunnels, and save client tunnel presets." + "title": "利用隧道", + "description": "啟動、停止和監視 SSH 隧道,並儲存用戶端隧道預設。" } }, "settings": { "host": { "enable": { - "label": "Enable tunnels", - "description": "Set up SSH tunnels through this host." + "label": "啟用隧道", + "description": "透過此主機建立 SSH 隧道。" } } }, "onboarding": { "feature_tunnels": "通道", - "feature_tunnels_desc": "Forward ports through a server to reach services that are not exposed." + "feature_tunnels_desc": "透過伺服器轉送連接埠以存取未公開的服務。" } } diff --git a/plugins/vault/locales/translated/bn_BD.json b/plugins/vault/locales/translated/bn_BD.json index 67e25b4e9..9234b1abc 100644 --- a/plugins/vault/locales/translated/bn_BD.json +++ b/plugins/vault/locales/translated/bn_BD.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "ভল্ট স্বাক্ষরকারীর প্রোফাইল", + "selectProfile": "একটি ভল্ট প্রোফাইল নির্বাচন করুন...", + "hint": "সেটিংস শেয়ার করা প্রোফাইল থেকে আসে; সংযোগ করার সময় আপনি OIDC-এর মাধ্যমে ভল্টে সাইন ইন করবেন। কোনো গোপনীয় তথ্য সংরক্ষিত থাকে না।", + "docs": "নথি দেখুন", + "sharedProfile": "{{name}} (ভাগ করা)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", + "new": "নতুন প্রোফাইল", + "manage": "ভল্ট প্রোফাইলগুলি পরিচালনা করুন", + "name": "বন্ধুত্বপূর্ণ নাম", + "vaultAddr": "ভল্ট ঠিকানা", + "namespace": "নেমস্পেস", + "oidcMount": "OIDC অথোরাইজেশন মাউন্ট", + "oidcRole": "OIDC ভূমিকা", + "sshMount": "SSH সিক্রেটস মাউন্ট", + "sshRole": "SSH স্বাক্ষরকারীর ভূমিকা", + "validPrincipals": "বৈধ অধ্যক্ষরা", + "keyType": "ক্ষণস্থায়ী কী টাইপ", + "shareWithAll": "সকল ব্যবহারকারীর সাথে শেয়ার করুন", + "create": "প্রোফাইল তৈরি করুন", + "created": "ভল্ট প্রোফাইল তৈরি করা হয়েছে", + "saved": "ভল্ট প্রোফাইল সংরক্ষিত হয়েছে", + "deleted": "ভল্ট প্রোফাইল মুছে ফেলা হয়েছে", + "saveFailed": "ভল্ট প্রোফাইল সংরক্ষণ করতে ব্যর্থ হয়েছে", + "deleteFailed": "ভল্ট প্রোফাইল মুছে ফেলা ব্যর্থ হয়েছে", + "save": "প্রোফাইল সংরক্ষণ করুন", + "validationError": "নাম, ভল্ট অ্যাড্রেস এবং SSH সাইনার রোল প্রয়োজন।", + "none": "এখনো কোনো ভল্ট প্রোফাইল তৈরি হয়নি।", "sharedBadge": "ভাগ করা হয়েছে", - "edit": "Edit", - "delete": "Delete" + "edit": "সম্পাদনা", + "delete": "মুছে ফেলুন" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "ভল্ট" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "ভল্টে সাইন-ইন করা আবশ্যক", + "description": "হ্যাশিকর্প ভল্টে সাইন ইন করার জন্য একটি উইন্ডো খুলেছে। সেখানে সাইন-ইন সম্পন্ন করুন; এই সংযোগটি স্বয়ংক্রিয়ভাবে চলতে থাকবে।", + "failed": "ভল্ট প্রমাণীকরণ ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "reopen": "সাইন-ইন উইন্ডো পুনরায় খুলুন" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "ভল্ট এসএসএইচ সাইনিং ব্যবহার করুন", + "description": "Vault স্বাক্ষরকারী প্রোফাইল তৈরি করুন এবং Vault ব্যবহারকারী হোস্টগুলির সাথে সংযোগ স্থাপন করুন।" }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "ভল্ট প্রোফাইল শেয়ার করুন", + "description": "একটি ভল্ট স্বাক্ষরকারীর প্রোফাইলকে শেয়ার করা হিসেবে চিহ্নিত করুন, যাতে প্রত্যেক ব্যবহারকারী সেটি বেছে নিতে পারে।" } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "পুনঃনির্দেশ URI", + "description": "Termix যেসব Vault OIDC রোলের মাধ্যমে সাইন ইন করে, সেগুলোর প্রতিটির allowed_redirect_uris-এ এই URL-টি যোগ করুন।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "পুরানো রিডাইরেক্ট ইউআরআই ব্যবহার করুন", + "description": "/vault/oidc/callback পাঠানো চালিয়ে যান, যেটি ২.৯ এর আগে ব্যবহৃত রিডাইরেক্ট ইউআরআই ছিল। আপনার ভল্ট রোলগুলো নতুনটি অনুমোদন করলে এটি বন্ধ করে দিন।" }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "ভল্ট স্বাক্ষরকারীর প্রোফাইল" } } } diff --git a/plugins/vault/locales/translated/hi_IN.json b/plugins/vault/locales/translated/hi_IN.json index 77b7a8cf5..0ac9d66f1 100644 --- a/plugins/vault/locales/translated/hi_IN.json +++ b/plugins/vault/locales/translated/hi_IN.json @@ -4,7 +4,7 @@ "selectProfile": "एक Vault प्रोफ़ाइल चुनें...", "hint": "सेटिंग साझा प्रोफ़ाइल से आती हैं; कनेक्ट करते समय आप OIDC के माध्यम से Vault में साइन इन करेंगे। कोई सीक्रेट संग्रहीत नहीं किए जाते।", "docs": "दस्तावेज़ देखें", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (साझा)" }, "profiles": { "new": "नई प्रोफ़ाइल", @@ -33,7 +33,7 @@ "delete": "हटाएँ" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "मेहराब" }, "dialog": { "title": "Vault साइन-इन आवश्यक है", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Vault SSH साइनिंग का उपयोग करें", + "description": "वॉल्ट साइनर प्रोफाइल बनाएं और वॉल्ट का उपयोग करने वाले होस्ट से कनेक्ट करें।" }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "वॉल्ट प्रोफाइल साझा करें", + "description": "वॉल्ट साइनर प्रोफाइल को साझा के रूप में चिह्नित करें ताकि हर उपयोगकर्ता इसे चुन सके।" } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "रीडायरेक्ट यूआरआई", + "description": "टर्मिक्स द्वारा साइन इन किए जाने वाले प्रत्येक वॉल्ट ओआईडीसी रोल में allowed_redirect_uris में इस URL को जोड़ें।" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "पुराने रीडायरेक्ट यूआरआई का उपयोग करें", + "description": "/vault/oidc/callback को भेजते रहें, यह रीडायरेक्ट यूआरआई 2.9 से पहले इस्तेमाल किया जाता था। जब आपके वॉल्ट रोल नए यूआरआई की अनुमति दे दें, तो इसे बंद कर दें।" }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "वॉल्ट हस्ताक्षरकर्ता प्रोफ़ाइल" } } } diff --git a/plugins/vault/locales/translated/id_ID.json b/plugins/vault/locales/translated/id_ID.json index ae77630c2..45f499993 100644 --- a/plugins/vault/locales/translated/id_ID.json +++ b/plugins/vault/locales/translated/id_ID.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Profil Penandatangan Vault", + "selectProfile": "Pilih profil Vault...", + "hint": "Pengaturan berasal dari profil bersama; Anda akan masuk ke Vault melalui OIDC saat terhubung. Tidak ada rahasia yang disimpan.", + "docs": "Lihat dokumen", + "sharedProfile": "{{name}} (dibagikan)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", + "new": "Profil baru", + "manage": "Kelola profil Vault", + "name": "Nama yang Ramah", + "vaultAddr": "Alamat Brankas", + "namespace": "Ruang nama", + "oidcMount": "OIDC Otorisasi Pemasangan", + "oidcRole": "Peran OIDC", + "sshMount": "Pemasangan Rahasia SSH", + "sshRole": "Peran Penandatangan SSH", + "validPrincipals": "Prinsip-prinsip yang Sah", + "keyType": "Jenis Kunci Sementara", + "shareWithAll": "Bagikan dengan semua pengguna", + "create": "Buat profil", + "created": "Profil Vault telah dibuat.", + "saved": "Profil Vault tersimpan", + "deleted": "Profil Vault dihapus", + "saveFailed": "Gagal menyimpan profil Vault", + "deleteFailed": "Gagal menghapus profil Vault", + "save": "Simpan profil", + "validationError": "Nama, alamat Vault, dan peran penandatangan SSH wajib diisi.", + "none": "Belum ada profil Vault.", "sharedBadge": "dibagikan", "edit": "Edit", - "delete": "Delete" + "delete": "Menghapus" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Kubah" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Login ke Vault diperlukan.", + "description": "Jendela telah terbuka untuk masuk ke HashiCorp Vault. Selesaikan proses masuk di sana; koneksi ini akan berlanjut secara otomatis.", + "failed": "Autentikasi Vault gagal. Silakan coba lagi.", + "reopen": "Buka kembali jendela masuk" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Gunakan penandatanganan SSH Vault.", + "description": "Buat profil penandatangan Vault dan hubungkan ke host yang menggunakan Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Bagikan profil Vault", + "description": "Tandai profil penandatangan Vault sebagai profil yang dibagikan agar setiap pengguna dapat memilihnya." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI Pengalihan", + "description": "Tambahkan URL ini ke allowed_redirect_uris di setiap peran Vault OIDC yang digunakan Termix untuk masuk." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Gunakan URI pengalihan lama.", + "description": "Tetap kirimkan /vault/oidc/callback, URI pengalihan yang digunakan sebelum versi 2.9. Matikan ini setelah peran Vault Anda mengizinkan yang baru." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Profil penandatangan Vault" } } } diff --git a/plugins/vault/locales/translated/nl_NL.json b/plugins/vault/locales/translated/nl_NL.json index 391846b5e..3614e27d9 100644 --- a/plugins/vault/locales/translated/nl_NL.json +++ b/plugins/vault/locales/translated/nl_NL.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Vault-ondertekenaarprofiel", + "selectProfile": "Selecteer een Vault-profiel...", + "hint": "De instellingen zijn afkomstig van het gedeelde profiel; u meldt zich bij Vault aan via OIDC wanneer u verbinding maakt. Er worden geen geheimen opgeslagen.", + "docs": "Documenten bekijken", + "sharedProfile": "{{name}} (gedeeld)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", - "edit": "Edit", - "delete": "Delete" + "new": "Nieuw profiel", + "manage": "Beheer Vault-profielen", + "name": "Vriendelijke naam", + "vaultAddr": "Kluisadres", + "namespace": "Naamruimte", + "oidcMount": "OIDC-authenticatiekoppeling", + "oidcRole": "OIDC-rol", + "sshMount": "SSH-geheimen Mount", + "sshRole": "SSH-ondertekenaarrol", + "validPrincipals": "Geldige principes", + "keyType": "Tijdelijk sleuteltype", + "shareWithAll": "Delen met alle gebruikers", + "create": "Profiel aanmaken", + "created": "Vault-profiel aangemaakt", + "saved": "Vault-profiel opgeslagen", + "deleted": "Kluisprofiel verwijderd", + "saveFailed": "Het opslaan van het Vault-profiel is mislukt.", + "deleteFailed": "Het verwijderen van het Vault-profiel is mislukt.", + "save": "Profiel opslaan", + "validationError": "Naam, kluisadres en SSH-ondertekeningsrol zijn vereist.", + "none": "Nog geen Vault-profielen beschikbaar.", + "sharedBadge": "gedeeld", + "edit": "Bewerking", + "delete": "Verwijderen" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Kluis" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Aanmelden bij Vault is vereist.", + "description": "Er is een venster geopend om in te loggen bij HashiCorp Vault. Voltooi de aanmelding daar; deze verbinding wordt automatisch tot stand gebracht.", + "failed": "Authenticatie voor de kluis is mislukt. Probeer het opnieuw.", + "reopen": "Heropen het aanmeldvenster" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Gebruik Vault SSH-ondertekening", + "description": "Maak Vault-ondertekeningsprofielen aan en maak verbinding met hosts die Vault gebruiken." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Deel Vault-profielen", + "description": "Markeer een Vault-ondertekeningsprofiel als gedeeld, zodat elke gebruiker het kan selecteren." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "Omleidings-URI", + "description": "Voeg deze URL toe aan allowed_redirect_uris in elke Vault OIDC-rol waarmee Termix zich aanmeldt." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Gebruik de oude omleidings-URI", + "description": "Blijf /vault/oidc/callback verzenden, de omleidings-URI die vóór versie 2.9 werd gebruikt. Schakel dit uit zodra uw Vault-rollen de nieuwe URI toestaan." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Vault-ondertekenaarprofiel" } } } diff --git a/plugins/vault/locales/translated/no_NO.json b/plugins/vault/locales/translated/no_NO.json index 623922fef..4c1ce8305 100644 --- a/plugins/vault/locales/translated/no_NO.json +++ b/plugins/vault/locales/translated/no_NO.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Profil for hvelvsigner", + "selectProfile": "Velg en Vault-profil...", + "hint": "Innstillingene kommer fra den delte profilen. Du logger deg på Vault via OIDC når du kobler til. Ingen hemmeligheter lagres.", + "docs": "Vis dokumenter", + "sharedProfile": "{{name}} (delt)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", + "new": "Ny profil", + "manage": "Administrer Vault-profiler", + "name": "Vennlig navn", + "vaultAddr": "Hvelvadresse", + "namespace": "Navnerom", + "oidcMount": "OIDC-autentiseringsmontering", + "oidcRole": "OIDC-rolle", + "sshMount": "SSH-hemmeligheter monteres", + "sshRole": "SSH-signatørrolle", + "validPrincipals": "Gyldige prinsipaler", + "keyType": "Kortvarig nøkkeltype", + "shareWithAll": "Del med alle brukere", + "create": "Opprett profil", + "created": "Vault-profil opprettet", + "saved": "Vault-profilen er lagret", + "deleted": "Vault-profilen er slettet", + "saveFailed": "Kunne ikke lagre Vault-profilen", + "deleteFailed": "Kunne ikke slette Vault-profilen", + "save": "Lagre profil", + "validationError": "Navn, hvelvadresse og SSH-signerrolle er obligatorisk", + "none": "Ingen Vault-profiler ennå.", + "sharedBadge": "delt", "edit": "Rediger", "delete": "Slett" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Hvelv" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Pålogging til arkivet kreves", + "description": "Et vindu har åpnet seg for å logge på HashiCorp Vault. Fullfør påloggingen der; denne tilkoblingen vil fortsette automatisk.", + "failed": "Hvelv-autentisering mislyktes. Prøv på nytt.", + "reopen": "Åpne påloggingsvinduet på nytt" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Bruk Vault SSH-signering", + "description": "Opprett Vault-signeringsprofiler og koble til verter som bruker Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Del Vault-profiler", + "description": "Merk en Vault-signeringsprofil som delt, slik at alle brukere kan velge den." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "Omdirigerings-URI", + "description": "Legg til denne URL-en i allowed_redirect_uris i hver Vault OIDC-rolle som Termix logger på med." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Bruk den gamle omdirigerings-URI-en", + "description": "Fortsett å sende /vault/oidc/callback, omdirigerings-URI-en som ble brukt før 2.9. Slå av dette når Vault-rollene dine tillater den nye." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Profil for arkivsigner" } } } diff --git a/plugins/vault/locales/translated/pl_PL.json b/plugins/vault/locales/translated/pl_PL.json index 1d3e7492e..3c2543997 100644 --- a/plugins/vault/locales/translated/pl_PL.json +++ b/plugins/vault/locales/translated/pl_PL.json @@ -33,7 +33,7 @@ "delete": "Usuń" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Sklepienie" }, "dialog": { "title": "Wymagane logowanie do Vault", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Użyj podpisu SSH Vault", + "description": "Utwórz profile sygnatariuszy Vault i połącz się z hostami korzystającymi z Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Udostępnij profile Vault", + "description": "Oznacz profil sygnatariusza Vault jako udostępniony, aby każdy użytkownik mógł z niego skorzystać." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "Przekieruj URI", + "description": "Dodaj ten adres URL do allowed_redirect_uris w każdej roli Vault OIDC, za pomocą której loguje się Termix." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Użyj starego adresu URI przekierowania", + "description": "Nadal wysyłaj /vault/oidc/callback, czyli przekierowanie URI używane przed wersją 2.9. Wyłącz tę opcję, gdy Twoje role Vaulta pozwolą na nową." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Profil sygnatariusza Vault" } } } diff --git a/plugins/vault/locales/translated/pt_BR.json b/plugins/vault/locales/translated/pt_BR.json index 1c1630000..c9480b161 100644 --- a/plugins/vault/locales/translated/pt_BR.json +++ b/plugins/vault/locales/translated/pt_BR.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", + "profile": "Perfil do assinante do Vault", + "selectProfile": "Selecione um perfil do Vault...", + "hint": "As configurações são provenientes do perfil compartilhado; você fará login no Vault via OIDC ao se conectar. Nenhum segredo é armazenado.", "docs": "Documentação", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (compartilhado)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", + "new": "Novo perfil", + "manage": "Gerenciar perfis do Vault", "name": "Nome Amigável", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", + "vaultAddr": "Endereço do cofre", + "namespace": "Espaço de nomes", + "oidcMount": "Montagem de autenticação OIDC", + "oidcRole": "Função OIDC", + "sshMount": "Montagem de segredos SSH", + "sshRole": "Função de assinatura SSH", + "validPrincipals": "Principais válidos", + "keyType": "Tipo de chave efêmera", + "shareWithAll": "Compartilhe com todos os usuários", + "create": "Criar perfil", + "created": "Perfil do Vault criado", + "saved": "Perfil do Vault salvo", + "deleted": "Perfil do Vault excluído", + "saveFailed": "Falha ao salvar o perfil do Vault", + "deleteFailed": "Falha ao excluir o perfil do Vault", + "save": "Salvar perfil", + "validationError": "Nome, endereço do Vault e função de assinatura SSH são obrigatórios.", + "none": "Ainda não há perfis no Vault.", + "sharedBadge": "compartilhado", "edit": "Editar", "delete": "Apagar" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Cofre" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "É necessário fazer login no cofre.", + "description": "Uma janela foi aberta para fazer login no HashiCorp Vault. Conclua o login; esta conexão será estabelecida automaticamente.", + "failed": "A autenticação do cofre falhou. Tente novamente.", + "reopen": "Reabrir janela de login" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Use a assinatura SSH do Vault", + "description": "Crie perfis de assinatura do Vault e conecte-se a hosts que usam o Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Perfis do Share Vault", + "description": "Marque um perfil de assinatura do Vault como compartilhado para que todos os usuários possam selecioná-lo." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI de redirecionamento", + "description": "Adicione este URL à lista allowed_redirect_uris em cada função OIDC do Vault que o Termix utiliza para fazer login." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Use o URI de redirecionamento antigo", + "description": "Continue enviando /vault/oidc/callback, o URI de redirecionamento usado antes da versão 2.9. Desative-o assim que suas funções no Vault permitirem o novo URI." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Perfil de assinatura do Vault" } } } diff --git a/plugins/vault/locales/translated/pt_PT.json b/plugins/vault/locales/translated/pt_PT.json index 58a6e5294..c3b09b6c3 100644 --- a/plugins/vault/locales/translated/pt_PT.json +++ b/plugins/vault/locales/translated/pt_PT.json @@ -4,7 +4,7 @@ "selectProfile": "Selecionar um perfil Vault...", "hint": "As definições provêm do perfil partilhado; ao ligar, iniciará sessão no Vault via OIDC. Nenhum segredo é armazenado.", "docs": "Ver docs", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (partilhado)" }, "profiles": { "new": "Novo perfil", @@ -33,7 +33,7 @@ "delete": "Eliminar" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Cofre" }, "dialog": { "title": "Início de sessão no Vault necessário", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Utilize a assinatura SSH do Vault", + "description": "Crie perfis de assinatura do Vault e ligue-se a hosts que utilizam o Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Perfis do Share Vault", + "description": "Marque um perfil de subscrição do Vault como partilhado para que todos os utilizadores o possam selecionar." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI de redireccionamento", + "description": "Adicione este URL à lista allowed_redirect_uris em cada função OIDC do Vault que o Termix utiliza para iniciar sessão." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Utilize o URI de redirecionamento antigo", + "description": "Continue a enviar /vault/oidc/callback, o URI de redireccionamento utilizado antes da versão 2.9. Desative-o assim que as suas funções no Vault permitirem o novo URI." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Perfil de assinatura do cofre" } } } diff --git a/plugins/vault/locales/translated/ru_RU.json b/plugins/vault/locales/translated/ru_RU.json index 207db2396..bca4313fa 100644 --- a/plugins/vault/locales/translated/ru_RU.json +++ b/plugins/vault/locales/translated/ru_RU.json @@ -4,7 +4,7 @@ "selectProfile": "Выберите профиль Vault...", "hint": "Настройки берутся из общего профиля; при подключении вы войдёте в Vault через OIDC. Секреты не хранятся.", "docs": "Документация", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (совместно)" }, "profiles": { "new": "Новый профиль", @@ -33,7 +33,7 @@ "delete": "Удалить" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Сейф" }, "dialog": { "title": "Требуется вход в Vault", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Используйте SSH-подпись Vault.", + "description": "Создайте профили подписантов Vault и подключитесь к хостам, использующим Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Поделиться профилями хранилища", + "description": "Отметьте профиль подписанта Vault как общий, чтобы каждый пользователь мог его выбрать." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI перенаправления", + "description": "Добавьте этот URL-адрес в параметр allowed_redirect_uris в каждой роли Vault OIDC, с которой Termix выполняет вход в систему." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Используйте старый URI перенаправления.", + "description": "Продолжайте отправлять /vault/oidc/callback, URI перенаправления, использовавшийся до версии 2.9. Отключите эту функцию, как только ваши роли Vault позволят использовать новый URI." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Профиль подписанта хранилища" } } } diff --git a/plugins/vault/locales/translated/sr_SP.json b/plugins/vault/locales/translated/sr_SP.json index 391846b5e..229a2295f 100644 --- a/plugins/vault/locales/translated/sr_SP.json +++ b/plugins/vault/locales/translated/sr_SP.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Профил потписника трезора", + "selectProfile": "Изаберите профил трезора...", + "hint": "Подешавања долазе из дељеног профила; пријавићете се у Vault преко OIDC-а када се повежете. Ниједне тајне се не чувају.", + "docs": "Прикажи документе", + "sharedProfile": "{{name}} (дељено)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", - "edit": "Edit", - "delete": "Delete" + "new": "Нови профил", + "manage": "Управљање профилима трезора", + "name": "Пријатељско име", + "vaultAddr": "Адреса трезора", + "namespace": "Именски простор", + "oidcMount": "OIDC аутентификација монтирања", + "oidcRole": "Улога OIDC-а", + "sshMount": "SSH тајне носач", + "sshRole": "Улога SSH потписника", + "validPrincipals": "Важећи принципали", + "keyType": "Тип ефемерног кључа", + "shareWithAll": "Подели са свим корисницима", + "create": "Направи профил", + "created": "Профил трезора је креиран", + "saved": "Профил трезора је сачуван", + "deleted": "Профил трезора је обрисан", + "saveFailed": "Чување профила у Трезору није успело", + "deleteFailed": "Брисање профила у Трезору није успело", + "save": "Сачувај профил", + "validationError": "Име, адреса трезора и улога SSH потписника су обавезни", + "none": "Још нема профила у Трезору.", + "sharedBadge": "дељено", + "edit": "Измени", + "delete": "Обриши" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Трезор" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Потребно је пријављивање у трезор", + "description": "Отворио се прозор за пријављивање на HashiCorp Vault. Завршите пријављивање тамо; ова веза ће се аутоматски наставити.", + "failed": "Аутентификација трезора није успела. Молимо покушајте поново.", + "reopen": "Поново отвори прозор за пријављивање" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Користите потписивање преко SSH-а у Vault-у", + "description": "Креирајте профиле потписника у Vault-у и повежите се са хостовима који користе Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Делите профиле у Трезору", + "description": "Означите профил потписника у Vault-у као дељен како би га сваки корисник могао изабрати." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI за преусмеравање", + "description": "Додајте ову URL адресу у allowed_redirect_uris у свакој Vault OIDC улози са којом се Termix пријављује." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Користите стари URI за преусмеравање", + "description": "Наставите да шаљете /vault/oidc/callback, URI за преусмеравање који је коришћен пре верзије 2.9. Искључите ово када ваше Vault улоге дозволе нови." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Профил потписника трезора" } } } diff --git a/plugins/vault/locales/translated/sv_SE.json b/plugins/vault/locales/translated/sv_SE.json index 391846b5e..f8f6c757c 100644 --- a/plugins/vault/locales/translated/sv_SE.json +++ b/plugins/vault/locales/translated/sv_SE.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Profil för valvsignerare", + "selectProfile": "Välj en Vault-profil...", + "hint": "Inställningarna kommer från den delade profilen; du loggar in på Vault via OIDC när du ansluter. Inga hemligheter lagras.", + "docs": "Visa dokument", + "sharedProfile": "{{name}} (delad)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", - "edit": "Edit", - "delete": "Delete" + "new": "Ny profil", + "manage": "Hantera Vault-profiler", + "name": "Vänligt namn", + "vaultAddr": "Valvadress", + "namespace": "Namnrymd", + "oidcMount": "OIDC-autentiseringsmontering", + "oidcRole": "OIDC-roll", + "sshMount": "SSH-hemligheter monteras", + "sshRole": "SSH-signerarroll", + "validPrincipals": "Giltiga principer", + "keyType": "Tillfällig nyckeltyp", + "shareWithAll": "Dela med alla användare", + "create": "Skapa profil", + "created": "Arkivprofil skapad", + "saved": "Arkivprofilen har sparats", + "deleted": "Arkivprofil raderad", + "saveFailed": "Kunde inte spara arkivprofilen", + "deleteFailed": "Misslyckades med att ta bort Arkiv-profilen", + "save": "Spara profil", + "validationError": "Namn, valvadress och SSH-signerarroll krävs", + "none": "Inga Vault-profiler ännu.", + "sharedBadge": "delad", + "edit": "Redigera", + "delete": "Radera" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Valv" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Inloggning till arkivet krävs", + "description": "Ett fönster har öppnats för att logga in på HashiCorp Vault. Slutför inloggningen där; anslutningen fortsätter automatiskt.", + "failed": "Valvautentisering misslyckades. Försök igen.", + "reopen": "Öppna inloggningsfönstret igen" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Använd SSH-signering i Vault", + "description": "Skapa profiler för Vault-signerare och anslut till värdar som använder Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Dela Vault-profiler", + "description": "Markera en Vault-signerarprofil som delad så att alla användare kan välja den." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "Omdirigerings-URI", + "description": "Lägg till denna URL till allowed_redirect_uris i varje Vault OIDC-roll som Termix loggar in med." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Använd den gamla omdirigerings-URI:n", + "description": "Fortsätt skicka /vault/oidc/callback, den omdirigerings-URI som användes före 2.9. Stäng av detta när dina Vault-roller tillåter den nya." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Profil för valvsignerare" } } } diff --git a/plugins/vault/locales/translated/th_TH.json b/plugins/vault/locales/translated/th_TH.json index 391846b5e..1b5730924 100644 --- a/plugins/vault/locales/translated/th_TH.json +++ b/plugins/vault/locales/translated/th_TH.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "โปรไฟล์ผู้ลงนาม Vault", + "selectProfile": "เลือกโปรไฟล์ Vault...", + "hint": "การตั้งค่าต่างๆ มาจากโปรไฟล์ที่ใช้ร่วมกัน คุณจะเข้าสู่ระบบ Vault ผ่าน OIDC เมื่อเชื่อมต่อ ไม่มีข้อมูลลับใดๆ ถูกจัดเก็บไว้", + "docs": "ดูเอกสาร", + "sharedProfile": "{{name}} (แชร์)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", + "new": "โปรไฟล์ใหม่", + "manage": "จัดการโปรไฟล์ Vault", + "name": "ชื่อที่เป็นมิตร", + "vaultAddr": "ที่อยู่ห้องนิรภัย", + "namespace": "เนมสเปซ", + "oidcMount": "การติดตั้งการตรวจสอบสิทธิ์ OIDC", + "oidcRole": "บทบาทของ OIDC", "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", - "edit": "Edit", - "delete": "Delete" + "sshRole": "บทบาทผู้ลงนาม SSH", + "validPrincipals": "หลักการที่ถูกต้อง", + "keyType": "ประเภทคีย์ชั่วคราว", + "shareWithAll": "แชร์กับผู้ใช้ทั้งหมด", + "create": "สร้างโปรไฟล์", + "created": "สร้างโปรไฟล์ Vault แล้ว", + "saved": "บันทึกโปรไฟล์ Vault แล้ว", + "deleted": "โปรไฟล์ Vault ถูกลบแล้ว", + "saveFailed": "ไม่สามารถบันทึกโปรไฟล์ Vault ได้", + "deleteFailed": "ไม่สามารถลบโปรไฟล์ Vault ได้", + "save": "บันทึกโปรไฟล์", + "validationError": "จำเป็นต้องระบุชื่อ ที่อยู่ Vault และบทบาทผู้ลงนาม SSH", + "none": "ยังไม่มีโปรไฟล์ Vault ใดๆ", + "sharedBadge": "แชร์", + "edit": "แก้ไข", + "delete": "ลบ" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "ห้องนิรภัย" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "ต้องลงชื่อเข้าใช้ Vault", + "description": "หน้าต่างสำหรับเข้าสู่ระบบ HashiCorp Vault ได้เปิดขึ้นแล้ว โปรดทำการเข้าสู่ระบบให้เสร็จสมบูรณ์ การเชื่อมต่อนี้จะดำเนินการต่อโดยอัตโนมัติ", + "failed": "การตรวจสอบสิทธิ์ Vault ล้มเหลว โปรดลองอีกครั้ง", + "reopen": "เปิดหน้าต่างเข้าสู่ระบบอีกครั้ง" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "ใช้การลงนาม SSH ของ Vault", + "description": "สร้างโปรไฟล์ผู้ลงนาม Vault และเชื่อมต่อกับโฮสต์ที่ใช้ Vault" }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "โปรไฟล์ Share Vault", + "description": "ตั้งค่าโปรไฟล์ผู้ลงนาม Vault เป็นแบบแชร์ เพื่อให้ผู้ใช้ทุกคนสามารถเลือกใช้ได้" } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI การเปลี่ยนเส้นทาง", + "description": "เพิ่ม URL นี้ลงใน allowed_redirect_uris ในแต่ละบทบาท OIDC ของ Vault ที่ Termix ใช้เข้าสู่ระบบ" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "ใช้ URI การเปลี่ยนเส้นทางแบบเดิม", + "description": "ส่ง /vault/oidc/callback ต่อไป ซึ่งเป็น URI สำหรับการเปลี่ยนเส้นทางที่ใช้ก่อนเวอร์ชัน 2.9 ปิดใช้งานเมื่อบทบาท Vault ของคุณอนุญาตให้ใช้ URI ใหม่แล้ว" }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "โปรไฟล์ผู้ลงนาม Vault" } } } diff --git a/plugins/vault/locales/translated/tr_TR.json b/plugins/vault/locales/translated/tr_TR.json index 402c01cd8..f047bfafc 100644 --- a/plugins/vault/locales/translated/tr_TR.json +++ b/plugins/vault/locales/translated/tr_TR.json @@ -4,7 +4,7 @@ "selectProfile": "Bir Vault profili seçin...", "hint": "Ayarlar paylaşılan profilden gelir; bağlandığınızda OIDC ile Vault'ta oturum açarsınız. Hiçbir gizli bilgi saklanmaz.", "docs": "Belgelere bak", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (paylaşılan)" }, "profiles": { "new": "Yeni profil", @@ -33,7 +33,7 @@ "delete": "Sil" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Kasa" }, "dialog": { "title": "Vault Oturum Açması Gerekli", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Vault SSH imzalama özelliğini kullanın.", + "description": "Vault imzalayıcı profilleri oluşturun ve Vault kullanan sunuculara bağlanın." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Share Vault profillerini paylaşın", + "description": "Bir Vault imzalayıcı profilini paylaşımlı olarak işaretleyin, böylece her kullanıcı onu seçebilir." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "Yönlendirme URI'si", + "description": "Termix'in oturum açtığı her Vault OIDC rolündeki allowed_redirect_uris alanına bu URL'yi ekleyin." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Eski yönlendirme URI'sini kullanın.", + "description": "2.9 öncesinde kullanılan yönlendirme URI'si olan /vault/oidc/callback'i göndermeye devam edin. Vault rolleriniz yeni URI'ye izin verdiğinde bunu kapatın." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Kasa imzalayıcı profili" } } } diff --git a/plugins/vault/locales/translated/uk_UA.json b/plugins/vault/locales/translated/uk_UA.json index 391846b5e..1a3bb368e 100644 --- a/plugins/vault/locales/translated/uk_UA.json +++ b/plugins/vault/locales/translated/uk_UA.json @@ -1,68 +1,68 @@ { "editor": { - "profile": "Vault Signer Profile", - "selectProfile": "Select a Vault profile...", - "hint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.", - "docs": "View docs", - "sharedProfile": "{{name}} (shared)" + "profile": "Профіль підписанта сховища", + "selectProfile": "Виберіть профіль Сховища...", + "hint": "Налаштування надходять зі спільного профілю; ви входите у Сейф через OIDC під час підключення. Секрети не зберігаються.", + "docs": "Переглянути документи", + "sharedProfile": "{{name}} (спільний доступ)" }, "profiles": { - "new": "New profile", - "manage": "Manage Vault profiles", - "name": "Friendly Name", - "vaultAddr": "Vault Address", - "namespace": "Namespace", - "oidcMount": "OIDC Auth Mount", - "oidcRole": "OIDC Role", - "sshMount": "SSH Secrets Mount", - "sshRole": "SSH Signer Role", - "validPrincipals": "Valid Principals", - "keyType": "Ephemeral Key Type", - "shareWithAll": "Share with all users", - "create": "Create profile", - "created": "Vault profile created", - "saved": "Vault profile saved", - "deleted": "Vault profile deleted", - "saveFailed": "Failed to save Vault profile", - "deleteFailed": "Failed to delete Vault profile", - "save": "Save profile", - "validationError": "Name, Vault address and SSH signer role are required", - "none": "No Vault profiles yet.", - "sharedBadge": "shared", - "edit": "Edit", - "delete": "Delete" + "new": "Новий профіль", + "manage": "Керування профілями Сховища", + "name": "Зрозуміле ім'я", + "vaultAddr": "Адреса сховища", + "namespace": "Простір імен", + "oidcMount": "Монтування автентифікації OIDC", + "oidcRole": "Роль OIDC", + "sshMount": "SSH-секрети кріплення", + "sshRole": "Роль підписувача SSH", + "validPrincipals": "Дійсні принципали", + "keyType": "Тип тимчасового ключа", + "shareWithAll": "Поділитися з усіма користувачами", + "create": "Створити профіль", + "created": "Профіль сховища створено", + "saved": "Профіль сховища збережено", + "deleted": "Профіль сховища видалено", + "saveFailed": "Не вдалося зберегти профіль Сейфа", + "deleteFailed": "Не вдалося видалити профіль Сейфа", + "save": "Зберегти профіль", + "validationError": "Ім'я, адреса сховища та роль підписувача SSH обов'язкові", + "none": "Поки що немає профілів Сейфа.", + "sharedBadge": "спільний", + "edit": "Редагувати", + "delete": "Видалити" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Сховище" }, "dialog": { - "title": "Vault sign-in required", - "description": "A window has opened to sign in to HashiCorp Vault. Complete the sign-in there; this connection will continue automatically.", - "failed": "Vault authentication failed. Please try again.", - "reopen": "Reopen sign-in window" + "title": "Потрібен вхід до Сейфа", + "description": "Відкрилося вікно для входу в HashiCorp Vault. Завершіть вхід там; це з’єднання продовжиться автоматично.", + "failed": "Не вдалося виконати автентифікацію сховища. Спробуйте ще раз.", + "reopen": "Знову відкрити вікно входу" }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Використовуйте підписування через Сейф SSH", + "description": "Створюйте профілі підписантів Vault та підключайтеся до хостів, які використовують Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Поділитися профілями Сейфа", + "description": "Позначте профіль підписанта Vault як спільний, щоб кожен користувач міг його вибрати." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI перенаправлення", + "description": "Додайте цю URL-адресу до allowed_redirect_uris у кожній ролі Vault OIDC, за допомогою якої Termix входить у систему." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Використовувати старий URI перенаправлення", + "description": "Продовжуйте надсилати /vault/oidc/callback, URI перенаправлення, який використовувався до версії 2.9. Вимкніть цю функцію, щойно ваші ролі Vault дозволять новий параметр." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Профіль підписанта сховища" } } } diff --git a/plugins/vault/locales/translated/vi_VN.json b/plugins/vault/locales/translated/vi_VN.json index c694c5849..38f0c44e4 100644 --- a/plugins/vault/locales/translated/vi_VN.json +++ b/plugins/vault/locales/translated/vi_VN.json @@ -4,7 +4,7 @@ "selectProfile": "Chọn hồ sơ Vault...", "hint": "Cài đặt từ hồ sơ dùng chung; bạn sẽ đăng nhập Vault qua OIDC khi kết nối. Không lưu bí mật.", "docs": "Xem tài liệu", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (được chia sẻ)" }, "profiles": { "new": "Hồ sơ mới", @@ -33,7 +33,7 @@ "delete": "Xóa" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "Kho tiền" }, "dialog": { "title": "Yêu cầu đăng nhập Vault", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "Sử dụng tính năng ký SSH của Vault.", + "description": "Tạo hồ sơ người ký Vault và kết nối với các máy chủ sử dụng Vault." }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "Chia sẻ hồ sơ Vault", + "description": "Đánh dấu hồ sơ người ký Vault là được chia sẻ để mọi người dùng đều có thể chọn hồ sơ đó." } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "URI chuyển hướng", + "description": "Thêm URL này vào allowed_redirect_uris trong mỗi vai trò Vault OIDC mà Termix sử dụng để đăng nhập." }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "Sử dụng URI chuyển hướng cũ.", + "description": "Tiếp tục gửi /vault/oidc/callback, URI chuyển hướng được sử dụng trước phiên bản 2.9. Tắt chức năng này khi các vai trò Vault của bạn cho phép sử dụng URI mới." }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Hồ sơ người ký Vault" } } } diff --git a/plugins/vault/locales/translated/zh_CN.json b/plugins/vault/locales/translated/zh_CN.json index 2a0587918..b6504b43f 100644 --- a/plugins/vault/locales/translated/zh_CN.json +++ b/plugins/vault/locales/translated/zh_CN.json @@ -33,7 +33,7 @@ "delete": "删除" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "保险库" }, "dialog": { "title": "需要 Vault 登录", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "使用 Vault SSH 签名", + "description": "创建 Vault 签名者配置文件并连接到使用 Vault 的主机。" }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "共享库配置文件", + "description": "将 Vault 签名者配置文件标记为共享,以便每个用户都可以选择它。" } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "重定向 URI", + "description": "将此 URL 添加到 Termix 登录的每个 Vault OIDC 角色的 allowed_redirect_uris 中。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "使用旧的重定向 URI", + "description": "继续发送 /vault/oidc/callback,这是 2.9 版本之前使用的重定向 URI。一旦您的 Vault 角色允许使用新的重定向 URI,就将其关闭。" }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Vault 签名者个人资料" } } } diff --git a/plugins/vault/locales/translated/zh_TW.json b/plugins/vault/locales/translated/zh_TW.json index 2867b2a0c..d67e217f5 100644 --- a/plugins/vault/locales/translated/zh_TW.json +++ b/plugins/vault/locales/translated/zh_TW.json @@ -4,7 +4,7 @@ "selectProfile": "選取 Vault 設定檔...", "hint": "設定來自共用設定檔;連線時您將透過 OIDC 登入 Vault。不會儲存任何機密。", "docs": "檢視文件", - "sharedProfile": "{{name}} (shared)" + "sharedProfile": "{{name}} (共享)" }, "profiles": { "new": "新增設定檔", @@ -33,7 +33,7 @@ "delete": "刪除" }, "hosts": { - "filterAuthVault": "Vault" + "filterAuthVault": "保險庫" }, "dialog": { "title": "需要 Vault 登入", @@ -43,26 +43,26 @@ }, "permissions": { "use": { - "title": "Use Vault SSH signing", - "description": "Create Vault signer profiles and connect to hosts that use Vault." + "title": "使用 Vault SSH 簽名", + "description": "建立 Vault 簽署者設定檔並連接到使用 Vault 的主機。" }, "share": { - "title": "Share Vault profiles", - "description": "Mark a Vault signer profile as shared so every user can pick it." + "title": "共享庫配置文件", + "description": "將 Vault 簽署者設定檔標記為共用,以便每個使用者都可以選擇它。" } }, "settings": { "redirectUri": { - "label": "Redirect URI", - "description": "Add this URL to allowed_redirect_uris in each Vault OIDC role that Termix signs in with." + "label": "重定向 URI", + "description": "將此 URL 新增至 Termix 登入的每個 Vault OIDC 角色的 allowed_redirect_uris 中。" }, "legacyCallback": { - "label": "Use the old redirect URI", - "description": "Keep sending /vault/oidc/callback, the redirect URI used before 2.9. Turn this off once your Vault roles allow the new one." + "label": "使用舊的重定向 URI", + "description": "繼續發送 /vault/oidc/callback,這是 2.9 版本之前使用的重定向 URI。一旦您的 Vault 角色允許使用新的重定向 URI,就將其關閉。" }, "host": { "profileId": { - "label": "Vault signer profile" + "label": "Vault 簽署者設定檔" } } } diff --git a/plugins/wake-on-lan/locales/translated/bn_BD.json b/plugins/wake-on-lan/locales/translated/bn_BD.json index 0bb729711..2eaa5bd55 100644 --- a/plugins/wake-on-lan/locales/translated/bn_BD.json +++ b/plugins/wake-on-lan/locales/translated/bn_BD.json @@ -1,26 +1,26 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "জাগরণ", + "sent": "ওয়েক-অন-ল্যান প্যাকেট পাঠানো হয়েছে", + "failed": "ওয়েক-অন-ল্যান প্যাকেট পাঠাতে ব্যর্থ হয়েছে" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "ওয়েক-অন-ল্যান প্যাকেট পাঠান", + "description": "কোনো হোস্টের MAC অ্যাড্রেসে একটি ম্যাজিক প্যাকেট পাঠিয়ে সেটিকে জাগিয়ে তুলুন।" } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC ঠিকানা", + "description": "হোস্টের নেটওয়ার্ক ম্যাক অ্যাড্রেস, যা ওয়েক-অন-ল্যান প্যাকেট পাঠাতে ব্যবহৃত হয়।", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", - "placeholder": "192.168.1.255" + "label": "সম্প্রচার ঠিকানা", + "description": "যে সাবনেটে প্যাকেটটি পাঠাতে হবে তার ব্রডকাস্ট অ্যাড্রেস। 255.255.255.255-এর জন্য এটি খালি রাখুন।", + "placeholder": "১৯২.১৬৮.১.২৫৫" } } } diff --git a/plugins/wake-on-lan/locales/translated/hi_IN.json b/plugins/wake-on-lan/locales/translated/hi_IN.json index 0bb729711..b01fe84a0 100644 --- a/plugins/wake-on-lan/locales/translated/hi_IN.json +++ b/plugins/wake-on-lan/locales/translated/hi_IN.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "जागो", + "sent": "वेक-ऑन-लैन पैकेट भेजा गया", + "failed": "वेक-ऑन-लैन पैकेट भेजने में विफल रहा" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "वेक-ऑन-लैन पैकेट भेजें", + "description": "किसी होस्ट को उसके मैक एड्रेस पर मैजिक पैकेट भेजकर जगाएं।" } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", - "placeholder": "AA:BB:CC:DD:EE:FF" + "label": "मैक पता", + "description": "होस्ट का नेटवर्क मैक एड्रेस, जिसका उपयोग वेक-ऑन-लैन पैकेट भेजने के लिए किया जाता है।", + "placeholder": "एए:बीबी:सीसी:डीडी:ईई:एफएफ" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "ब्रॉडकास्ट पता", + "description": "पैकेट भेजने के लिए सबनेट ब्रॉडकास्ट पता। 255.255.255.255 के लिए इसे खाली छोड़ दें।", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/id_ID.json b/plugins/wake-on-lan/locales/translated/id_ID.json index ff66f6a16..8b2ac00e9 100644 --- a/plugins/wake-on-lan/locales/translated/id_ID.json +++ b/plugins/wake-on-lan/locales/translated/id_ID.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", + "title": "Bangun", "sent": "Paket Wake-on-LAN berhasil dikirim", "failed": "Gagal mengirim paket Wake-on-LAN" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Mengirim paket Wake-on-LAN", + "description": "Bangunkan host dengan mengirimkan paket ajaib ke alamat MAC-nya." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "Alamat MAC", + "description": "Alamat MAC jaringan host, yang digunakan untuk mengirim paket Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Alamat siaran", + "description": "Alamat broadcast subnet tujuan pengiriman paket. Kosongkan untuk 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/nl_NL.json b/plugins/wake-on-lan/locales/translated/nl_NL.json index 0bb729711..477d3ba97 100644 --- a/plugins/wake-on-lan/locales/translated/nl_NL.json +++ b/plugins/wake-on-lan/locales/translated/nl_NL.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Wakker worden", + "sent": "Wake-on-LAN-pakket verzonden", + "failed": "Het verzenden van het Wake-on-LAN-pakket is mislukt." }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Wake-on-LAN-pakketten verzenden", + "description": "Activeer een host door een magic packet naar het MAC-adres te sturen." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC-adres", + "description": "Het MAC-adres van het hostnetwerk, dat wordt gebruikt om Wake-on-LAN-pakketten te verzenden.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Uitzendadres", + "description": "Het broadcastadres van het subnet waarnaar het pakket moet worden verzonden. Laat dit veld leeg voor 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/no_NO.json b/plugins/wake-on-lan/locales/translated/no_NO.json index 0bb729711..438b07270 100644 --- a/plugins/wake-on-lan/locales/translated/no_NO.json +++ b/plugins/wake-on-lan/locales/translated/no_NO.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Våkne", + "sent": "Wake-on-LAN-pakke sendt", + "failed": "Kunne ikke sende Wake-on-LAN-pakken" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Send Wake-on-LAN-pakker", + "description": "Vekk en vert ved å sende en magisk pakke til MAC-adressen." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC-adresse", + "description": "Vertens nettverks-MAC-adresse, som brukes til å sende Wake-on-LAN-pakker.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Kringkastingsadresse", + "description": "Subnett-kringkastingsadressen som pakken skal sendes til. La stå tomt for 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/pl_PL.json b/plugins/wake-on-lan/locales/translated/pl_PL.json index 0bb729711..1da09ca71 100644 --- a/plugins/wake-on-lan/locales/translated/pl_PL.json +++ b/plugins/wake-on-lan/locales/translated/pl_PL.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Budzić", + "sent": "Wysłano pakiet Wake-on-LAN", + "failed": "Nie udało się wysłać pakietu Wake-on-LAN" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Wysyłaj pakiety Wake-on-LAN", + "description": "Wybudź hosta, wysyłając magiczny pakiet na jego adres MAC." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "Adres MAC", + "description": "Adres MAC sieci hosta, używany do wysyłania pakietów Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Adres rozgłoszeniowy", + "description": "Adres rozgłoszeniowy podsieci, do którego ma zostać wysłany pakiet. Pozostaw puste pole dla adresu 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/pt_BR.json b/plugins/wake-on-lan/locales/translated/pt_BR.json index 0bb729711..652ddb107 100644 --- a/plugins/wake-on-lan/locales/translated/pt_BR.json +++ b/plugins/wake-on-lan/locales/translated/pt_BR.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Acordar", + "sent": "Pacote Wake-on-LAN enviado", + "failed": "Falha ao enviar pacote Wake-on-LAN" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Enviar pacotes Wake-on-LAN", + "description": "Ative um host enviando um pacote mágico para seu endereço MAC." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "endereço MAC", + "description": "O endereço MAC de rede do host, usado para enviar pacotes Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "discurso de transmissão", + "description": "Endereço de broadcast da sub-rede para a qual o pacote deve ser enviado. Deixe em branco para 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/pt_PT.json b/plugins/wake-on-lan/locales/translated/pt_PT.json index 0bb729711..d72d033a0 100644 --- a/plugins/wake-on-lan/locales/translated/pt_PT.json +++ b/plugins/wake-on-lan/locales/translated/pt_PT.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Acordar", + "sent": "Pacote Wake-on-LAN enviado", + "failed": "Falha ao enviar pacote Wake-on-LAN" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Enviar pacotes Wake-on-LAN", + "description": "Ative um host enviando um pacote mágico para o seu endereço MAC." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "endereço MAC", + "description": "O endereço MAC de rede do host, utilizado para enviar pacotes Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "discurso de transmissão", + "description": "Endereço de broadcast da sub-rede para a qual o pacote deve ser enviado. Deixe em branco para 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/ru_RU.json b/plugins/wake-on-lan/locales/translated/ru_RU.json index 0bb729711..cbeda3daf 100644 --- a/plugins/wake-on-lan/locales/translated/ru_RU.json +++ b/plugins/wake-on-lan/locales/translated/ru_RU.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Будить", + "sent": "Отправлен пакет Wake-on-LAN.", + "failed": "Не удалось отправить пакет Wake-on-LAN." }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Отправка пакетов Wake-on-LAN", + "description": "Разбудите хост, отправив «магический пакет» на его MAC-адрес." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC-адрес", + "description": "Сетевой MAC-адрес хоста, используемый для отправки пакетов Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Обращение в эфире", + "description": "Адрес широковещательной рассылки подсети, на который будет отправлен пакет. Оставьте поле пустым для 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/sr_SP.json b/plugins/wake-on-lan/locales/translated/sr_SP.json index 0bb729711..7fbafd558 100644 --- a/plugins/wake-on-lan/locales/translated/sr_SP.json +++ b/plugins/wake-on-lan/locales/translated/sr_SP.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Вејк", + "sent": "Пакет Wake-on-LAN је послат", + "failed": "Није успело слање Wake-on-LAN пакета" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Слање Wake-on-LAN пакета", + "description": "Пробудите хост слањем магичног пакета на његову MAC адресу." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", - "placeholder": "AA:BB:CC:DD:EE:FF" + "label": "MAC адреса", + "description": "MAC адреса мреже хоста, која се користи за слање Wake-on-LAN пакета.", + "placeholder": "АА:ББ:ЦЦ:ДД:ЕЕ:ФФ" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Адреса за емитовање", + "description": "Адреса емитовања подмреже на коју треба послати пакет. Оставите празно за 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/sv_SE.json b/plugins/wake-on-lan/locales/translated/sv_SE.json index 0bb729711..309ef0dd1 100644 --- a/plugins/wake-on-lan/locales/translated/sv_SE.json +++ b/plugins/wake-on-lan/locales/translated/sv_SE.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Vakna", + "sent": "Wake-on-LAN-paket skickat", + "failed": "Misslyckades med att skicka Wake-on-LAN-paketet" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Skicka Wake-on-LAN-paket", + "description": "Väcka en värd genom att skicka ett magiskt paket till dess MAC-adress." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC-adress", + "description": "Värdens nätverks-MAC-adress, som används för att skicka Wake-on-LAN-paket.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Sändningsadress", + "description": "Subnätets sändningsadress att skicka paketet till. Lämna tomt för 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/th_TH.json b/plugins/wake-on-lan/locales/translated/th_TH.json index 0bb729711..aadbe8804 100644 --- a/plugins/wake-on-lan/locales/translated/th_TH.json +++ b/plugins/wake-on-lan/locales/translated/th_TH.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "ปลุก", + "sent": "ส่งแพ็กเก็ต Wake-on-LAN แล้ว", + "failed": "ไม่สามารถส่งแพ็กเก็ต Wake-on-LAN ได้" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "ส่งแพ็กเก็ต Wake-on-LAN", + "description": "ปลุกเครื่องโฮสต์โดยการส่งแพ็กเก็ตวิเศษไปยังที่อยู่ MAC ของเครื่องนั้น" } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "ที่อยู่ MAC", + "description": "ที่อยู่ MAC ของเครือข่ายโฮสต์ ใช้สำหรับส่งแพ็กเก็ต Wake-on-LAN", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "ที่อยู่กระจายเสียง", + "description": "ที่อยู่บรอดแคสต์ของซับเน็ตที่จะส่งแพ็กเก็ตไป เว้นว่างไว้สำหรับ 255.255.255.255", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/tr_TR.json b/plugins/wake-on-lan/locales/translated/tr_TR.json index 0bb729711..997804138 100644 --- a/plugins/wake-on-lan/locales/translated/tr_TR.json +++ b/plugins/wake-on-lan/locales/translated/tr_TR.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Uyan", + "sent": "Wake-on-LAN paketi gönderildi", + "failed": "Wake-on-LAN paketi gönderilemedi." }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Wake-on-LAN paketleri gönder", + "description": "Bir sunucuyu, MAC adresine sihirli bir paket göndererek uyandırın." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC adresi", + "description": "Wake-on-LAN paketlerini göndermek için kullanılan ana bilgisayarın ağ MAC adresi.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Yayın adresi", + "description": "Paketin gönderileceği alt ağ yayın adresi. 255.255.255.255 için boş bırakın.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/uk_UA.json b/plugins/wake-on-lan/locales/translated/uk_UA.json index 0bb729711..d4783bb8f 100644 --- a/plugins/wake-on-lan/locales/translated/uk_UA.json +++ b/plugins/wake-on-lan/locales/translated/uk_UA.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Вейк", + "sent": "Надіслано пакет Wake-on-LAN", + "failed": "Не вдалося надіслати пакет Wake-on-LAN" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Надсилання пакетів Wake-on-LAN", + "description": "Розбудити хост, надіславши магічний пакет на його MAC-адресу." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC-адреса", + "description": "Мережева MAC-адреса хоста, що використовується для надсилання пакетів Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Адреса розсилки", + "description": "Широкомовна адреса підмережі, на яку потрібно надіслати пакет. Залиште поле порожнім для 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/vi_VN.json b/plugins/wake-on-lan/locales/translated/vi_VN.json index 0bb729711..df28ba8e7 100644 --- a/plugins/wake-on-lan/locales/translated/vi_VN.json +++ b/plugins/wake-on-lan/locales/translated/vi_VN.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "Thức dậy", + "sent": "Gói tin Wake-on-LAN đã được gửi", + "failed": "Không thể gửi gói tin Wake-on-LAN." }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "Gửi gói tin Wake-on-LAN", + "description": "Đánh thức máy chủ bằng cách gửi gói tin đặc biệt đến địa chỉ MAC của nó." } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "Địa chỉ MAC", + "description": "Địa chỉ MAC mạng của máy chủ, được sử dụng để gửi các gói tin Wake-on-LAN.", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "Địa chỉ phát sóng", + "description": "Địa chỉ broadcast của mạng con để gửi gói tin đến. Để trống nếu là 255.255.255.255.", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/zh_CN.json b/plugins/wake-on-lan/locales/translated/zh_CN.json index 0bb729711..d6716ae67 100644 --- a/plugins/wake-on-lan/locales/translated/zh_CN.json +++ b/plugins/wake-on-lan/locales/translated/zh_CN.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "唤醒", + "sent": "已发送网络唤醒数据包", + "failed": "发送网络唤醒数据包失败" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "发送网络唤醒数据包", + "description": "通过向主机的 MAC 地址发送唤醒数据包来唤醒主机。" } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC地址", + "description": "主机的网络 MAC 地址,用于发送 Wake-on-LAN 数据包。", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "广播地址", + "description": "要将数据包发送到的子网广播地址。留空则默认为 255.255.255.255。", "placeholder": "192.168.1.255" } } diff --git a/plugins/wake-on-lan/locales/translated/zh_TW.json b/plugins/wake-on-lan/locales/translated/zh_TW.json index 0bb729711..03fac15cc 100644 --- a/plugins/wake-on-lan/locales/translated/zh_TW.json +++ b/plugins/wake-on-lan/locales/translated/zh_TW.json @@ -1,25 +1,25 @@ { "hostAction": { - "title": "Wake", - "sent": "Wake-on-LAN packet sent", - "failed": "Failed to send Wake-on-LAN packet" + "title": "喚醒", + "sent": "已傳送網路喚醒封包", + "failed": "發送網路喚醒封包失敗" }, "permissions": { "send": { - "title": "Send Wake-on-LAN packets", - "description": "Wake a host by sending a magic packet to its MAC address." + "title": "傳送網路喚醒封包", + "description": "透過傳送喚醒封包給主機的 MAC 位址來喚醒主機。" } }, "settings": { "host": { "macAddress": { - "label": "MAC address", - "description": "The host's network MAC address, used to send Wake-on-LAN packets.", + "label": "MAC位址", + "description": "主機的網路 MAC 位址,用於傳送 Wake-on-LAN 封包。", "placeholder": "AA:BB:CC:DD:EE:FF" }, "broadcastAddress": { - "label": "Broadcast address", - "description": "The subnet broadcast address to send the packet to. Leave blank for 255.255.255.255.", + "label": "廣播位址", + "description": "要將資料包傳送到的子網路廣播位址。留空則預設為 255.255.255.255。", "placeholder": "192.168.1.255" } } diff --git a/plugins/warpgate/locales/translated/bn_BD.json b/plugins/warpgate/locales/translated/bn_BD.json index abe73d48a..0ad61eb95 100644 --- a/plugins/warpgate/locales/translated/bn_BD.json +++ b/plugins/warpgate/locales/translated/bn_BD.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "ওয়ার্পগেট গেটওয়ে", + "description": "এই হোস্টটি একটি ওয়ার্পগেট এসএসএইচ প্রক্সির মাধ্যমে সংযুক্ত হয়। প্রমাণীকরণের পর টার্মিক্স স্বয়ংক্রিয়ভাবে ব্রাউজার-ভিত্তিক অনুমোদন প্রক্রিয়াটি পরিচালনা করবে।" } } } diff --git a/plugins/warpgate/locales/translated/id_ID.json b/plugins/warpgate/locales/translated/id_ID.json index abe73d48a..4e45eac2b 100644 --- a/plugins/warpgate/locales/translated/id_ID.json +++ b/plugins/warpgate/locales/translated/id_ID.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Gerbang Warpgate", + "description": "Host ini terhubung melalui proxy SSH Warpgate. Termix akan menangani alur persetujuan berbasis browser secara otomatis setelah otentikasi." } } } diff --git a/plugins/warpgate/locales/translated/nl_NL.json b/plugins/warpgate/locales/translated/nl_NL.json index abe73d48a..4d8443d82 100644 --- a/plugins/warpgate/locales/translated/nl_NL.json +++ b/plugins/warpgate/locales/translated/nl_NL.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Warpgate-poort", + "description": "Deze host maakt verbinding via een Warpgate SSH-proxy. Termix handelt de browsergebaseerde goedkeuringsprocedure automatisch af na authenticatie." } } } diff --git a/plugins/warpgate/locales/translated/no_NO.json b/plugins/warpgate/locales/translated/no_NO.json index abe73d48a..dbae88451 100644 --- a/plugins/warpgate/locales/translated/no_NO.json +++ b/plugins/warpgate/locales/translated/no_NO.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Warpgate-porten", + "description": "Denne verten kobler seg til via en Warpgate SSH-proxy. Termix håndterer den nettleserbaserte godkjenningsflyten automatisk etter autentisering." } } } diff --git a/plugins/warpgate/locales/translated/pt_BR.json b/plugins/warpgate/locales/translated/pt_BR.json index abe73d48a..634c632e8 100644 --- a/plugins/warpgate/locales/translated/pt_BR.json +++ b/plugins/warpgate/locales/translated/pt_BR.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Portal de dobra espacial", + "description": "Este host se conecta através de um proxy SSH Warpgate. O Termix cuidará automaticamente do fluxo de aprovação baseado em navegador após a autenticação." } } } diff --git a/plugins/warpgate/locales/translated/sr_SP.json b/plugins/warpgate/locales/translated/sr_SP.json index abe73d48a..23af8ddc4 100644 --- a/plugins/warpgate/locales/translated/sr_SP.json +++ b/plugins/warpgate/locales/translated/sr_SP.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Капија Варпгејта", + "description": "Овај хост се повезује преко Warpgate SSH проксија. Termix ће аутоматски обрадити ток одобрења заснован на прегледачу након аутентификације." } } } diff --git a/plugins/warpgate/locales/translated/sv_SE.json b/plugins/warpgate/locales/translated/sv_SE.json index abe73d48a..de960ff35 100644 --- a/plugins/warpgate/locales/translated/sv_SE.json +++ b/plugins/warpgate/locales/translated/sv_SE.json @@ -3,7 +3,7 @@ "host": { "useWarpgate": { "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "description": "Denna värd ansluter via en Warpgate SSH-proxy. Termix hanterar det webbläsarbaserade godkännandeflödet automatiskt efter autentisering." } } } diff --git a/plugins/warpgate/locales/translated/th_TH.json b/plugins/warpgate/locales/translated/th_TH.json index abe73d48a..6b4953967 100644 --- a/plugins/warpgate/locales/translated/th_TH.json +++ b/plugins/warpgate/locales/translated/th_TH.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "ประตูวาร์ปเกต", + "description": "โฮสต์นี้เชื่อมต่อผ่านพร็อกซี SSH ของ Warpgate Termix จะจัดการขั้นตอนการอนุมัติผ่านเบราว์เซอร์โดยอัตโนมัติหลังจากยืนยันตัวตนแล้ว" } } } diff --git a/plugins/warpgate/locales/translated/uk_UA.json b/plugins/warpgate/locales/translated/uk_UA.json index abe73d48a..a02a2db3c 100644 --- a/plugins/warpgate/locales/translated/uk_UA.json +++ b/plugins/warpgate/locales/translated/uk_UA.json @@ -2,8 +2,8 @@ "settings": { "host": { "useWarpgate": { - "label": "Warpgate Gateway", - "description": "This host connects through a Warpgate SSH proxy. Termix will handle the browser-based approval flow automatically after authenticating." + "label": "Брама Варпгейту", + "description": "Цей хост підключається через проксі-сервер Warpgate SSH. Termix автоматично обробить процес затвердження на основі браузера після автентифікації." } } } diff --git a/plugins/web-endpoint/locales/translated/bn_BD.json b/plugins/web-endpoint/locales/translated/bn_BD.json index 592190658..5126bd391 100644 --- a/plugins/web-endpoint/locales/translated/bn_BD.json +++ b/plugins/web-endpoint/locales/translated/bn_BD.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি", + "notFound": "এই এন্ডপয়েন্টটি আর বিদ্যমান নেই।", + "tunnelUnreachableFromBrowser": "এই এন্ডপয়েন্টটি Termix চালিত মেশিনের 127.0.0.1-এ টানেল করে, যেখানে আপনার ব্রাউজার পৌঁছাতে পারে না। এন্ডপয়েন্টটির বাইন্ড হোস্ট এমন একটি অ্যাড্রেসে সেট করুন যেখান থেকে ওই মেশিনটি সাড়া দেয়, যেমন 0.0.0.0, এবং এটিকে একটি নির্দিষ্ট লোকাল পোর্ট দিন।", + "tunnelSharesSessionCookie": "এই টানেলটি খুললে আপনার টার্মিক্স সেশনটি টানেল করা পরিষেবাতে চলে যাবে, কারণ আপনার ব্রাউজারটি সেই একই হোস্টনেমে পরিষেবাটি পাবে যেখান থেকে টার্মিক্স পরিবেশিত হয়। কুকি পোর্টকে উপেক্ষা করে, তাই এই দুটিকে আলাদা করা যায় না। টার্মিক্স ডেস্কটপ অ্যাপ ব্যবহার করুন, অথবা লোকালহোস্টে টার্মিক্স খুলুন।", + "directSharesSessionCookie": "এই এন্ডপয়েন্টটি খুললে আপনার টার্মিক্স সেশনটি সেখানে চলে যাবে, কারণ আপনার ব্রাউজারটি সেই একই সাইট থেকে এটিতে পৌঁছায় যেখান থেকে টার্মিক্স পরিবেশিত হয়। কুকি পোর্টকে উপেক্ষা করে, তাই একটি ভিন্ন পোর্ট কোনো ভিন্ন পরিচয় নয়। টার্মিক্স ডেস্কটপ অ্যাপ ব্যবহার করুন, অথবা এই ওয়েব ইউআইটি একটি ভিন্ন হোস্টনেম থেকে পরিবেশন করুন।", + "retry": "পুনরায় চেষ্টা করুন", + "reload": "পুনরায় লোড করুন", + "copyUrl": "ইউআরএল কপি করুন", + "urlCopied": "URL কপি করা হয়েছে", + "copyFailed": "URL কপি করতে ব্যর্থ হয়েছে", + "openExternally": "বাইরে খুলুন", + "isolationUnavailable": "এই ব্রাউজারটি আপনার টারমিক্স সেশন থেকে ওয়েব এন্ডপয়েন্টগুলোকে আলাদা করতে পারে না। ক্রেডেনশিয়ালবিহীন আইফ্রেম সমর্থন করে এমন একটি ব্রাউজার ব্যবহার করুন।", + "isolationNotice": "এমবেডেড পেজগুলো একটি আইসোলেটেড সেশন ব্যবহার করে। যেসব পেজের জন্য স্টোরেজ বা পপ-আপ সাইন-ইন প্রয়োজন, সেগুলোর জন্য ডেস্কটপ অ্যাপে একটি আইসোলেটেড উইন্ডো ব্যবহার করুন।", + "openIsolatedWindow": "বিচ্ছিন্ন জানালা খুলুন" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "tabWebUi": "ওয়েব UI", + "webUiEndpointLabel": "শেষবিন্দু {{number}}", + "webUiIntegration": "ওয়েব UI", + "webUiEndpointsSection": "এন্ডপয়েন্ট", + "webUiNoEndpoints": "এখনো কোনো ওয়েব এন্ডপয়েন্ট নেই। একটি তৈরি করতে 'অ্যাড এন্ডপয়েন্ট' ব্যবহার করুন।", + "webUiEndpointsDisabled": "এন্ডপয়েন্ট যোগ করতে উপরের ওয়েব UI চালু করুন।", + "webUiRequirementsText": "আপনার ব্রাউজার একটি সরাসরি এন্ডপয়েন্ট খোলে, তাই এর পোর্টটি এখান থেকে অ্যাক্সেসযোগ্য হতে হবে। এর পরিবর্তে, Termix এই হোস্টের SSH সংযোগের মাধ্যমে একটি SSH টানেল খোলে, তাই পোর্টটি শুধুমাত্র হোস্ট থেকে অ্যাক্সেসযোগ্য হলেই চলে।", + "enableWebUi": "ওয়েব এন্ডপয়েন্টগুলি সক্ষম করুন", + "enableWebUiDesc": "সাইডবার থেকে এই হোস্টের ওয়েব ইন্টারফেসগুলো খুলুন।", + "webUiAddEndpoint": "এন্ডপয়েন্ট যোগ করুন", + "webUiAddress": "ঠিকানা", + "webUiOpening": "উদ্বোধন", + "webUiBindHostDesc": "যেখানে ব্যাকএন্ড ফরওয়ার্ডটি বাইন্ড করে। 127.0.0.1-এর জন্য এই স্থানটি খালি রাখুন, কারণ শুধুমাত্র Termix চালিত মেশিনটিই এখানে পৌঁছাতে পারে।", + "webUiBindHostExposed": "এই অ্যাড্রেসটি টারমিক্স মেশিনের বাইরেও অ্যাক্সেসযোগ্য, তাই যে কেউ পোর্টটিতে অ্যাক্সেস করতে পারলেই কোনো লগইন ছাড়াই এই ওয়েব UI-টি ব্যবহার করতে পারবে।", + "webUiLocalPort": "স্থানীয় বন্দর", + "webUiLocalPortAuto": "স্বয়ংক্রিয়", + "webUiLocalPortDesc": "ফরওয়ার্ডটি কোন পোর্টে শুনবে। সিস্টেমকে বেছে নিতে দেওয়ার জন্য এটি খালি রাখুন, অথবা যখন পোর্টটি আগে থেকে জানা প্রয়োজন, যেমন কোনো কন্টেইনার যা এটি প্রকাশ করে, তখন একটি সেট করুন।", + "webUiNewEndpointLabel": "নতুন এন্ডপয়েন্ট", + "webUiLabel": "লেবেল", + "webUiScheme": "পরিকল্পনা", + "webUiPort": "বন্দর", + "webUiPath": "পথ", + "webUiAccess": "অ্যাক্সেস", + "webUiAccessDirect": "সরাসরি", + "webUiAccessTunnel": "এসএসএইচ টানেল", + "webUiAccessTunnelUnavailable": "একটি SSH টানেলের জন্য এই হোস্টে SSH সক্রিয় থাকতে হবে এবং সংযোগের উৎস হিসেবে এই ডিভাইসটি প্রয়োজন।", + "webUiRender": "খুলুন", + "webUiRenderExternal": "বিচ্ছিন্ন ডেস্কটপ উইন্ডো", + "webUiRenderEmbedded": "টার্মিক্স ট্যাব", + "webUiRenderEmbeddedDesc": "এমবেডিং-এর ক্ষেত্রে সর্বোচ্চ চেষ্টা করা হয়: কিছু ওয়েব ইন্টারফেস ফ্রেমে লোড হতে চায় না, এবং একই-সাইট কুকির উপর নির্ভরশীল লগইন একটি লুপে আটকে যেতে পারে। বাহ্যিক ব্রাউজারটি সবসময় কাজ করে।", + "webUiIgnoreCert": "অবৈধ সার্টিফিকেট অনুমোদন করুন", + "webUiIgnoreCertDesc": "শুধুমাত্র ডাইরেক্ট এন্ডপয়েন্টগুলোর জন্য প্রযোজ্য। লুপব্যাক ইতিমধ্যে অব্যাহতিপ্রাপ্ত, তাই টানেল এন্ডপয়েন্টগুলোর উপর এর কোনো প্রভাব নেই।", + "webUiRemoveEndpoint": "এন্ডপয়েন্ট সরান", + "webUiOpenFailed": "ওয়েব এন্ডপয়েন্ট খুলতে ব্যর্থ হয়েছে", + "bindHost": "হোস্টকে বাঁধুন" } } diff --git a/plugins/web-endpoint/locales/translated/hi_IN.json b/plugins/web-endpoint/locales/translated/hi_IN.json index c06b507ee..3215ddd9a 100644 --- a/plugins/web-endpoint/locales/translated/hi_IN.json +++ b/plugins/web-endpoint/locales/translated/hi_IN.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "कोई होस्ट चयनित नहीं है", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "यह एंडपॉइंट अब मौजूद नहीं है।", + "tunnelUnreachableFromBrowser": "यह एंडपॉइंट टर्मिक्स चलाने वाली मशीन पर 127.0.0.1 पोर्ट से टनल करता है, जिस तक आपका ब्राउज़र नहीं पहुँच सकता। एंडपॉइंट के बाइंड होस्ट को उस मशीन के किसी ऐसे पते पर सेट करें जिस पर वह प्रतिक्रिया देती हो, जैसे कि 0.0.0.0, और इसे एक निश्चित लोकल पोर्ट दें।", + "tunnelSharesSessionCookie": "इस टनल को खोलने से आपका टर्मिक्स सेशन टनल की गई सेवा पर चला जाएगा, क्योंकि आपका ब्राउज़र उसी होस्टनेम से सेवा प्राप्त करेगा जिससे टर्मिक्स संचालित होता है। कुकीज़ पोर्ट को अनदेखा करती हैं, इसलिए दोनों में अंतर नहीं किया जा सकता। टर्मिक्स डेस्कटॉप ऐप का उपयोग करें, या टर्मिक्स को लोकलहोस्ट पर खोलें।", + "directSharesSessionCookie": "इस एंडपॉइंट को खोलने से आपका टर्मिक्स सेशन इस पर चला जाएगा, क्योंकि आपका ब्राउज़र उसी साइट से इस तक पहुंचता है जहां से टर्मिक्स संचालित होता है। कुकीज़ पोर्ट को अनदेखा करती हैं, इसलिए अलग पोर्ट का मतलब अलग पहचान नहीं है। टर्मिक्स डेस्कटॉप ऐप का उपयोग करें, या इस वेब यूआई को किसी अन्य होस्टनेम से संचालित करें।", "retry": "पुनः प्रयास करें", "reload": "पुनः लोड करें", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "यूआरएल कॉपी करें", + "urlCopied": "यूआरएल कॉपी हो गया", + "copyFailed": "यूआरएल कॉपी करने में विफल", "openExternally": "बाह्य संपादक खोलें", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "यह ब्राउज़र आपके टर्मिक्स सेशन से वेब एंडपॉइंट्स को अलग नहीं कर सकता। क्रेडेंशियललेस आईफ्रेम सपोर्ट वाले ब्राउज़र का उपयोग करें।", + "isolationNotice": "एम्बेडेड पेज एक अलग सेशन का उपयोग करते हैं। स्टोरेज या पॉपअप साइन-इन की आवश्यकता वाले पेजों के लिए, डेस्कटॉप ऐप में एक अलग विंडो का उपयोग करें।", + "openIsolatedWindow": "पृथक विंडो खोलें" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "वेब यूआई", + "webUiEndpointLabel": "एंडपॉइंट {{number}}", + "webUiIntegration": "वेब यूआई", + "webUiEndpointsSection": "अंतिमबिंदुओं", + "webUiNoEndpoints": "अभी तक कोई वेब एंडपॉइंट उपलब्ध नहीं है। एक नया एंडपॉइंट बनाने के लिए \"एंडपॉइंट जोड़ें\" का उपयोग करें।", + "webUiEndpointsDisabled": "एंडपॉइंट जोड़ने के लिए ऊपर दिए गए वेब यूआई को चालू करें।", + "webUiRequirementsText": "आपके ब्राउज़र द्वारा एक डायरेक्ट एंडपॉइंट खोला जाता है, इसलिए इसका पोर्ट यहाँ से पहुँच योग्य होना चाहिए। इसके विपरीत, टर्मिक्स द्वारा इस होस्ट के SSH कनेक्शन पर एक SSH टनल खोला जाता है, इसलिए पोर्ट का होस्ट से पहुँच योग्य होना ही आवश्यक है।", + "enableWebUi": "वेब एंडपॉइंट्स को सक्षम करें", + "enableWebUiDesc": "साइडबार से इस होस्ट के वेब इंटरफेस खोलें।", + "webUiAddEndpoint": "एंडपॉइंट जोड़ें", "webUiAddress": "पता", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "प्रारंभिक", + "webUiBindHostDesc": "जहां बैकएंड फॉरवर्ड को बाइंड करता है। 127.0.0.1 के लिए इसे खाली छोड़ दें, क्योंकि केवल टर्मिक्स चलाने वाली मशीन ही इस तक पहुंच सकती है।", + "webUiBindHostExposed": "यह पता टर्मिक्स मशीन से परे भी पहुंच योग्य है, इसलिए जो कोई भी पोर्ट तक पहुंच सकता है, उसे बिना लॉगिन किए यह वेब यूआई मिल जाता है।", "webUiLocalPort": "स्थानीय पोर्ट", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "स्वचालित", + "webUiLocalPortDesc": "यह फ़ॉरवर्ड किस पोर्ट पर सुनता है। सिस्टम को चुनने देने के लिए इसे खाली छोड़ दें, या यदि पोर्ट पहले से ज्ञात होना आवश्यक हो, जैसे कि इसे प्रकाशित करने वाला कोई कंटेनर, तो एक पोर्ट सेट करें।", + "webUiNewEndpointLabel": "नया एंडपॉइंट", "webUiLabel": "लेबल", - "webUiScheme": "Scheme", + "webUiScheme": "योजना", "webUiPort": "पोर्ट", "webUiPath": "पथ", - "webUiAccess": "Access", + "webUiAccess": "पहुँच", "webUiAccessDirect": "सीधा", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "एसएसएच सुरंग", + "webUiAccessTunnelUnavailable": "एसएसएच टनल के लिए इस होस्ट पर एसएसएच सक्षम होना और इस डिवाइस का कनेक्शन स्रोत होना आवश्यक है।", + "webUiRender": "में खोलें", + "webUiRenderExternal": "पृथक डेस्कटॉप विंडो", + "webUiRenderEmbedded": "टर्मिक्स टैब", + "webUiRenderEmbeddedDesc": "एम्बेडिंग एक सर्वोत्तम प्रयास है: कुछ वेब इंटरफेस फ्रेम में लोड होने से इनकार कर देते हैं, और समान साइट कुकीज़ पर निर्भर लॉगिन लूप में फंस सकता है। बाहरी ब्राउज़र हमेशा काम करता है।", "webUiIgnoreCert": "अमान्य प्रमाणपत्र की अनुमति दें", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "केवल डायरेक्ट एंडपॉइंट्स के लिए। लूपबैक पहले से ही छूट प्राप्त है, इसलिए इसका टनल एंडपॉइंट्स पर कोई प्रभाव नहीं पड़ता।", + "webUiRemoveEndpoint": "एंडपॉइंट हटाएँ", + "webUiOpenFailed": "वेब एंडपॉइंट खोलने में विफल।", "bindHost": "बाइंड होस्ट" } } diff --git a/plugins/web-endpoint/locales/translated/id_ID.json b/plugins/web-endpoint/locales/translated/id_ID.json index e527256ac..8a9ce446e 100644 --- a/plugins/web-endpoint/locales/translated/id_ID.json +++ b/plugins/web-endpoint/locales/translated/id_ID.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", + "noHostSelected": "Tidak ada pembawa acara yang dipilih.", + "notFound": "Endpoint ini sudah tidak ada lagi.", + "tunnelUnreachableFromBrowser": "Endpoint ini membuat terowongan ke 127.0.0.1 pada mesin yang menjalankan Termix, yang tidak dapat dijangkau oleh browser Anda. Atur Bind Host endpoint ke alamat yang dapat diakses oleh mesin tersebut, misalnya 0.0.0.0, dan berikan Local Port tetap.", + "tunnelSharesSessionCookie": "Membuka terowongan ini akan mengirim sesi Termix Anda ke layanan yang di-tunnel, karena browser Anda akan mengaksesnya di hostname yang sama dengan tempat Termix disajikan. Cookie mengabaikan port, sehingga keduanya tidak dapat dibedakan. Gunakan aplikasi desktop Termix, atau buka Termix di localhost.", + "directSharesSessionCookie": "Membuka endpoint ini akan mengirim sesi Termix Anda ke sana, karena browser Anda mengaksesnya di situs yang sama tempat Termix disajikan. Cookie mengabaikan port, jadi port yang berbeda bukan berarti identitas yang berbeda. Gunakan aplikasi desktop Termix, atau sajikan UI web ini dari hostname yang berbeda.", + "retry": "Mencoba kembali", "reload": "Muat Ulang", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "copyUrl": "Salin URL", + "urlCopied": "URL disalin", + "copyFailed": "Gagal menyalin URL", + "openExternally": "Buka secara eksternal", + "isolationUnavailable": "Browser ini tidak dapat mengisolasi endpoint web dari sesi Termix Anda. Gunakan browser yang mendukung iframe tanpa kredensial.", + "isolationNotice": "Halaman yang disematkan menggunakan sesi terisolasi. Untuk halaman yang memerlukan penyimpanan atau masuk melalui jendela pop-up, gunakan jendela terisolasi di aplikasi desktop.", + "openIsolatedWindow": "Buka jendela terisolasi" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "tabWebUi": "Antarmuka pengguna web", + "webUiEndpointLabel": "Titik akhir {{number}}", + "webUiIntegration": "Antarmuka pengguna web", + "webUiEndpointsSection": "Titik akhir", + "webUiNoEndpoints": "Belum ada endpoint web. Gunakan Tambah endpoint untuk membuatnya.", + "webUiEndpointsDisabled": "Aktifkan UI Web di atas untuk menambahkan endpoint.", + "webUiRequirementsText": "Titik akhir langsung dibuka oleh browser Anda, jadi port-nya harus dapat dijangkau dari sini. Sebaliknya, terowongan SSH dibuka oleh Termix melalui koneksi SSH host ini, sehingga port tersebut hanya perlu dapat dijangkau dari host.", + "enableWebUi": "Aktifkan titik akhir web", + "enableWebUiDesc": "Buka antarmuka web host ini dari bilah sisi.", + "webUiAddEndpoint": "Tambahkan titik akhir", + "webUiAddress": "Alamat", + "webUiOpening": "Pembukaan", + "webUiBindHostDesc": "Di sinilah backend mengikat forward. Biarkan kosong untuk 127.0.0.1, yang hanya dapat diakses oleh mesin yang menjalankan Termix.", + "webUiBindHostExposed": "Alamat ini dapat diakses di luar mesin Termix, sehingga siapa pun yang dapat mengakses port tersebut akan mendapatkan antarmuka web ini tanpa perlu login.", + "webUiLocalPort": "Pelabuhan Lokal", + "webUiLocalPortAuto": "Otomatis", + "webUiLocalPortDesc": "Port mana yang digunakan oleh penerusan untuk mendengarkan. Biarkan kosong agar sistem memilih, atau atur satu jika port harus diketahui sebelumnya, seperti kontainer yang mempublikasikannya.", + "webUiNewEndpointLabel": "Titik akhir baru", "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "webUiScheme": "Skema", + "webUiPort": "Pelabuhan", + "webUiPath": "Jalur", + "webUiAccess": "Mengakses", + "webUiAccessDirect": "Langsung", + "webUiAccessTunnel": "Terowongan SSH", + "webUiAccessTunnelUnavailable": "Terowongan SSH membutuhkan SSH yang diaktifkan pada host ini dan asal koneksi dari perangkat ini.", + "webUiRender": "Buka di", + "webUiRenderExternal": "Jendela desktop terisolasi", + "webUiRenderEmbedded": "Tab Termix", + "webUiRenderEmbeddedDesc": "Penyematan dilakukan dengan upaya terbaik: beberapa antarmuka web menolak untuk dimuat dalam bingkai, dan login yang bergantung pada cookie situs yang sama mungkin berulang. Browser eksternal selalu berfungsi.", + "webUiIgnoreCert": "Izinkan sertifikat tidak valid", + "webUiIgnoreCertDesc": "Hanya untuk endpoint langsung. Loopback sudah dikecualikan, jadi ini tidak berpengaruh pada endpoint tunnel.", + "webUiRemoveEndpoint": "Hapus titik akhir", + "webUiOpenFailed": "Gagal membuka titik akhir web.", + "bindHost": "Host Terikat" } } diff --git a/plugins/web-endpoint/locales/translated/nl_NL.json b/plugins/web-endpoint/locales/translated/nl_NL.json index 592190658..1ee339239 100644 --- a/plugins/web-endpoint/locales/translated/nl_NL.json +++ b/plugins/web-endpoint/locales/translated/nl_NL.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "Geen host geselecteerd", + "notFound": "Dit eindpunt bestaat niet meer.", + "tunnelUnreachableFromBrowser": "Dit eindpunt tunnelt naar 127.0.0.1 op de machine waarop Termix draait, een adres dat uw browser niet kan bereiken. Stel de Bind Host van het eindpunt in op een adres waarop die machine reageert, bijvoorbeeld 0.0.0.0, en geef het een vaste lokale poort.", + "tunnelSharesSessionCookie": "Door deze tunnel te openen, wordt uw Termix-sessie naar de getunnelde service gestuurd, omdat uw browser deze via dezelfde hostnaam bereikt als waar Termix wordt aangeboden. Cookies negeren de poort, dus de twee zijn niet van elkaar te onderscheiden. Gebruik de Termix-desktopapp of open Termix op localhost.", + "directSharesSessionCookie": "Het openen van dit eindpunt stuurt uw Termix-sessie ernaartoe, omdat uw browser het benadert via dezelfde site waar Termix wordt aangeboden. Cookies negeren de poort, dus een andere poort betekent niet dat er een andere identiteit is. Gebruik de Termix-desktopapp of bied deze webinterface aan via een andere hostnaam.", + "retry": "Opnieuw proberen", + "reload": "Herladen", + "copyUrl": "URL kopiëren", + "urlCopied": "URL gekopieerd", + "copyFailed": "Het kopiëren van de URL is mislukt.", + "openExternally": "Extern openen", + "isolationUnavailable": "Deze browser kan web-endpoints niet isoleren van uw Termix-sessie. Gebruik een browser met ondersteuning voor iframes zonder inloggegevens.", + "isolationNotice": "Ingesloten pagina's gebruiken een geïsoleerde sessie. Voor pagina's die opslag of een pop-upaanmelding vereisen, gebruikt u een geïsoleerd venster in de desktop-app.", + "openIsolatedWindow": "Een geïsoleerd venster openen" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", + "tabWebUi": "Web-UI", + "webUiEndpointLabel": "Eindpunt {{number}}", + "webUiIntegration": "Web-UI", + "webUiEndpointsSection": "Eindpunten", + "webUiNoEndpoints": "Er zijn nog geen web-eindpunten beschikbaar. Gebruik 'Eindpunt toevoegen' om er een aan te maken.", + "webUiEndpointsDisabled": "Schakel de webinterface hierboven in om eindpunten toe te voegen.", + "webUiRequirementsText": "Uw browser opent een rechtstreeks eindpunt, dus de poort moet vanaf hier bereikbaar zijn. Termix opent in plaats daarvan een SSH-tunnel via de SSH-verbinding van deze host, dus de poort hoeft alleen vanaf de host bereikbaar te zijn.", + "enableWebUi": "Web-eindpunten inschakelen", + "enableWebUiDesc": "Open de webinterfaces van deze host via de zijbalk.", + "webUiAddEndpoint": "Eindpunt toevoegen", + "webUiAddress": "Adres", "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiBindHostDesc": "Waar de backend de forward verbindt. Laat dit veld leeg voor 127.0.0.1, dat alleen bereikbaar is vanaf de machine waarop Termix draait.", + "webUiBindHostExposed": "Dit adres is bereikbaar vanaf elke locatie buiten de Termix-machine, dus iedereen die de poort kan bereiken, krijgt toegang tot deze webinterface zonder in te loggen.", + "webUiLocalPort": "Lokale haven", + "webUiLocalPortAuto": "Automatisch", + "webUiLocalPortDesc": "Op welke poort luistert de forwarder? Laat dit veld leeg om het systeem zelf een poort te laten kiezen, of stel er een in als de poort van tevoren bekend moet zijn, bijvoorbeeld omdat een container deze publiceert.", + "webUiNewEndpointLabel": "Nieuw eindpunt", "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", + "webUiScheme": "Schema", + "webUiPort": "Haven", + "webUiPath": "Pad", + "webUiAccess": "Toegang", "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiAccessTunnel": "SSH-tunnel", + "webUiAccessTunnelUnavailable": "Voor een SSH-tunnel is het nodig dat SSH op deze host is ingeschakeld en dat de verbinding afkomstig is van dit apparaat.", + "webUiRender": "Openen in", + "webUiRenderExternal": "Geïsoleerd bureaubladvenster", + "webUiRenderEmbedded": "Termix-tabblad", + "webUiRenderEmbeddedDesc": "Het inbedden is een poging naar beste vermogen: sommige webinterfaces weigeren te laden in een frame, en een inlogproces dat afhankelijk is van cookies van dezelfde website kan in een oneindige lus terechtkomen. De externe browser werkt altijd.", + "webUiIgnoreCert": "Ongeldig certificaat toestaan", + "webUiIgnoreCertDesc": "Alleen directe eindpunten. Loopback is al uitgezonderd, dus dit heeft geen effect op tunnel-eindpunten.", + "webUiRemoveEndpoint": "Eindpunt verwijderen", + "webUiOpenFailed": "Het openen van het web-eindpunt is mislukt.", "bindHost": "Bind Host" } } diff --git a/plugins/web-endpoint/locales/translated/no_NO.json b/plugins/web-endpoint/locales/translated/no_NO.json index 146e04052..c823de236 100644 --- a/plugins/web-endpoint/locales/translated/no_NO.json +++ b/plugins/web-endpoint/locales/translated/no_NO.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Ingen vert valgt", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Dette endepunktet finnes ikke lenger.", + "tunnelUnreachableFromBrowser": "Dette endepunktet tunnelerer til 127.0.0.1 på maskinen som kjører Termix, som nettleseren din ikke kan nå. Sett endepunktets Bind Host til en adresse som maskinen svarer på, for eksempel 0.0.0.0, og gi det en fast lokal port.", + "tunnelSharesSessionCookie": "Å åpne denne tunnelen vil sende Termix-økten din til den tunnelerte tjenesten, fordi nettleseren din vil nå den på samme vertsnavn som Termix betjenes fra. Informasjonskapsler ignorerer porten, så de to kan ikke skilles fra hverandre. Bruk Termix-skrivebordsappen, eller åpne Termix på localhost.", + "directSharesSessionCookie": "Å åpne dette endepunktet vil sende Termix-økten din til det, fordi nettleseren din når det på samme sted som Termix serveres fra. Informasjonskapsler ignorerer porten, så en annen port er ikke en annen identitet. Bruk Termix-skrivebordsappen, eller server dette nettgrensesnittet fra et annet vertsnavn.", "retry": "Prøv igjen", "reload": "Last inn på nytt", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "copyUrl": "Kopier URL", + "urlCopied": "URL-en er kopiert", + "copyFailed": "Kunne ikke kopiere URL-en", + "openExternally": "Åpne eksternt", + "isolationUnavailable": "Denne nettleseren kan ikke isolere nettendepunkter fra Termix-økten din. Bruk en nettleser med støtte for iframe uten legitimasjon.", + "isolationNotice": "Innebygde sider bruker en isolert økt. For sider som krever lagring eller popup-pålogging, bruk et isolert vindu i skrivebordsappen.", + "openIsolatedWindow": "Åpne isolert vindu" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "tabWebUi": "Nettgrensesnitt", + "webUiEndpointLabel": "Endepunkt {{number}}", + "webUiIntegration": "Nettgrensesnitt", + "webUiEndpointsSection": "Endepunkter", + "webUiNoEndpoints": "Ingen nettendepunkter ennå. Bruk Legg til endepunkt for å opprette et.", + "webUiEndpointsDisabled": "Slå på webgrensesnittet ovenfor for å legge til endepunkter.", + "webUiRequirementsText": "Et direkte endepunkt åpnes av nettleseren din, så porten må kunne nås herfra. En SSH-tunnel åpnes i stedet av Termix over denne vertens SSH-tilkobling, så porten trenger bare å kunne nås fra verten.", + "enableWebUi": "Aktiver nettendepunkter", + "enableWebUiDesc": "Åpne denne vertens nettgrensesnitt fra sidefeltet.", + "webUiAddEndpoint": "Legg til endepunkt", + "webUiAddress": "Adresse", + "webUiOpening": "Åpning", + "webUiBindHostDesc": "Der backend binder forward. La stå tomt for 127.0.0.1, som bare maskinen som kjører Termix kan nå.", + "webUiBindHostExposed": "Denne adressen er tilgjengelig utenfor Termix-maskinen, så alle som kan nå porten får dette nettgrensesnittet uten innlogging.", "webUiLocalPort": "Lokal port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", + "webUiLocalPortAuto": "Automatisk", + "webUiLocalPortDesc": "Hvilken port videresendingen lytter på. La stå tomt for å la systemet velge, eller angi en når porten må være kjent på forhånd, for eksempel en container som publiserer den.", + "webUiNewEndpointLabel": "Nytt endepunkt", + "webUiLabel": "Merkelapp", + "webUiScheme": "Ordning", + "webUiPort": "Havn", "webUiPath": "Sti", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "webUiAccess": "Adgang", + "webUiAccessDirect": "Direkte", + "webUiAccessTunnel": "SSH-tunnel", + "webUiAccessTunnelUnavailable": "En SSH-tunnel krever at SSH er aktivert på denne verten og at denne enheten har en tilkoblingsopprinnelse.", + "webUiRender": "Åpne om", + "webUiRenderExternal": "Isolert skrivebordsvindu", + "webUiRenderEmbedded": "Termix-fanen", + "webUiRenderEmbeddedDesc": "Innbygging er det beste alternativet: noen nettgrensesnitt nekter å laste inn i en ramme, og en pålogging som er avhengig av informasjonskapsler fra samme nettsted kan gå i løkker. Den eksterne nettleseren fungerer alltid.", + "webUiIgnoreCert": "Tillat ugyldig sertifikat", + "webUiIgnoreCertDesc": "Kun direkte endepunkter. Loopback er allerede unntatt, så dette har ingen effekt på tunnelendepunkter.", + "webUiRemoveEndpoint": "Fjern endepunkt", + "webUiOpenFailed": "Kunne ikke åpne nettendepunktet", + "bindHost": "Bind vert" } } diff --git a/plugins/web-endpoint/locales/translated/pl_PL.json b/plugins/web-endpoint/locales/translated/pl_PL.json index c08cfa3bf..b4dff75d6 100644 --- a/plugins/web-endpoint/locales/translated/pl_PL.json +++ b/plugins/web-endpoint/locales/translated/pl_PL.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Nie wybrano hosta", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Ten punkt końcowy już nie istnieje.", + "tunnelUnreachableFromBrowser": "Ten punkt końcowy tuneluje do adresu 127.0.0.1 na komputerze z uruchomionym programem Termix, do którego Twoja przeglądarka nie może się dodzwonić. Ustaw hosta powiązania punktu końcowego na adres, pod którym odpowiada komputer, na przykład 0.0.0.0, i nadaj mu stały port lokalny.", + "tunnelSharesSessionCookie": "Otwarcie tego tunelu spowoduje wysłanie sesji Termix do usługi tunelowanej, ponieważ przeglądarka połączy się z nią pod tą samą nazwą hosta, z której obsługiwany jest Termix. Pliki cookie ignorują port, więc nie da się ich rozróżnić. Użyj aplikacji desktopowej Termix lub otwórz Termix na komputerze lokalnym.", + "directSharesSessionCookie": "Otwarcie tego punktu końcowego spowoduje wysłanie do niego sesji Termix, ponieważ przeglądarka dociera do niego z tej samej witryny, z której obsługiwany jest Termix. Pliki cookie ignorują port, więc inny port nie oznacza innej tożsamości. Użyj aplikacji desktopowej Termix lub obsługuj ten interfejs użytkownika z innej nazwy hosta.", "retry": "Ponów", "reload": "Przeładuj", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "Kopiuj adres URL", + "urlCopied": "Skopiowano adres URL", + "copyFailed": "Nie udało się skopiować adresu URL", "openExternally": "Otwórz zewnętrznie", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "Ta przeglądarka nie może odizolować punktów końcowych od sesji Termix. Użyj przeglądarki obsługującej ramki iframe bez uwierzytelniania.", + "isolationNotice": "Strony osadzone korzystają z odizolowanej sesji. W przypadku stron wymagających pamięci masowej lub logowania przez wyskakujące okienko, należy użyć odizolowanego okna w aplikacji na komputerze.", + "openIsolatedWindow": "Otwórz odizolowane okno" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Interfejs użytkownika sieci Web", + "webUiEndpointLabel": "Punkt końcowy {{number}}", + "webUiIntegration": "Interfejs użytkownika sieci Web", + "webUiEndpointsSection": "Punkty końcowe", + "webUiNoEndpoints": "Brak jeszcze punktów końcowych. Użyj opcji „Dodaj punkt końcowy”, aby go utworzyć.", + "webUiEndpointsDisabled": "Aby dodać punkty końcowe, włącz interfejs internetowy powyżej.", + "webUiRequirementsText": "Przeglądarka otwiera bezpośredni punkt końcowy, więc jego port musi być dostępny z tego miejsca. Zamiast tego, Termix otwiera tunel SSH przez połączenie SSH tego hosta, więc port musi być dostępny tylko z hosta.", + "enableWebUi": "Włącz punkty końcowe sieci Web", + "enableWebUiDesc": "Otwórz interfejsy sieciowe tego hosta z paska bocznego.", + "webUiAddEndpoint": "Dodaj punkt końcowy", "webUiAddress": "Adres", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "Otwór", + "webUiBindHostDesc": "Gdzie backend łączy forward. Pozostaw puste pole dla adresu 127.0.0.1, do którego dostęp ma tylko komputer z uruchomionym Termixem.", + "webUiBindHostExposed": "Do tego adresu można dotrzeć z poziomu maszyny Termix, więc każdy, kto ma dostęp do portu, otrzymuje ten internetowy interfejs użytkownika bez konieczności logowania.", "webUiLocalPort": "Port lokalny", "webUiLocalPortAuto": "Automatycznie", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortDesc": "Na którym porcie nasłuchuje przekierowanie. Pozostaw puste, aby system sam wybrał port, lub wpisz go, jeśli port musi być znany z wyprzedzeniem, np. w przypadku kontenera, który go publikuje.", + "webUiNewEndpointLabel": "Nowy punkt końcowy", "webUiLabel": "Etykieta", - "webUiScheme": "Scheme", + "webUiScheme": "Schemat", "webUiPort": "Port", "webUiPath": "Ścieżka", - "webUiAccess": "Access", + "webUiAccess": "Dostęp", "webUiAccessDirect": "Bezpośredni", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "Tunel SSH", + "webUiAccessTunnelUnavailable": "Tunel SSH wymaga włączonego protokołu SSH na tym hoście i źródła połączenia tego urządzenia.", + "webUiRender": "Otwórz w", + "webUiRenderExternal": "Odizolowane okno pulpitu", + "webUiRenderEmbedded": "Karta Termix", + "webUiRenderEmbeddedDesc": "Osadzanie jest zalecane z najwyższą starannością: niektóre interfejsy internetowe odmawiają załadowania w ramce, a logowanie oparte na plikach cookie tej samej witryny może się zapętlić. Zewnętrzna przeglądarka zawsze działa.", "webUiIgnoreCert": "Zezwól na nieprawidłowy certyfikat", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "Tylko bezpośrednie punkty końcowe. Pętla zwrotna jest już wyłączona, więc nie ma to wpływu na punkty końcowe tunelu.", + "webUiRemoveEndpoint": "Usuń punkt końcowy", + "webUiOpenFailed": "Nie udało się otworzyć punktu końcowego sieci Web", "bindHost": "Host nasłuchu" } } diff --git a/plugins/web-endpoint/locales/translated/pt_BR.json b/plugins/web-endpoint/locales/translated/pt_BR.json index 22caaa930..fe0b8b785 100644 --- a/plugins/web-endpoint/locales/translated/pt_BR.json +++ b/plugins/web-endpoint/locales/translated/pt_BR.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", + "noHostSelected": "Nenhum host selecionado", + "notFound": "Este endpoint não existe mais.", + "tunnelUnreachableFromBrowser": "Este endpoint estabelece um túnel para 127.0.0.1 na máquina que executa o Termix, endereço que seu navegador não consegue acessar. Defina o Host de Vinculação do endpoint para um endereço que a máquina responda, como 0.0.0.0, e atribua a ele uma Porta Local fixa.", + "tunnelSharesSessionCookie": "Abrir este túnel enviará sua sessão do Termix para o serviço tunelado, pois seu navegador o acessará pelo mesmo nome de host de onde o Termix é servido. Os cookies ignoram a porta, portanto, os dois não podem ser diferenciados. Use o aplicativo Termix para desktop ou abra o Termix em localhost.", + "directSharesSessionCookie": "Abrir este endpoint enviará sua sessão do Termix para ele, pois seu navegador o acessa no mesmo site que serve o Termix. Os cookies ignoram a porta, portanto, uma porta diferente não representa uma identidade diferente. Use o aplicativo Termix para desktop ou acesse esta interface web a partir de um nome de host diferente.", + "retry": "Tentar novamente", "reload": "Recarregar", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "copyUrl": "Copiar URL", + "urlCopied": "URL copiada", + "copyFailed": "Falha ao copiar o URL", + "openExternally": "Abrir externamente", + "isolationUnavailable": "Este navegador não consegue isolar os endpoints da web da sua sessão do Termix. Use um navegador com suporte a iframes sem credenciais.", + "isolationNotice": "As páginas incorporadas usam uma sessão isolada. Para páginas que exigem armazenamento ou login em janela pop-up, use uma janela isolada no aplicativo para desktop.", + "openIsolatedWindow": "Janela isolada aberta" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", + "tabWebUi": "Interface de usuário web", + "webUiEndpointLabel": "Ponto final {{number}}", + "webUiIntegration": "Interface de usuário web", + "webUiEndpointsSection": "Pontos finais", + "webUiNoEndpoints": "Ainda não existem endpoints web. Use Adicionar endpoint para criar um.", + "webUiEndpointsDisabled": "Ative a interface web acima para adicionar endpoints.", + "webUiRequirementsText": "Um endpoint direto é aberto pelo seu navegador, portanto, a porta dele precisa estar acessível a partir daqui. Em vez disso, o Termix abre um túnel SSH sobre a conexão SSH deste host, então a porta só precisa estar acessível a partir do host.", + "enableWebUi": "Habilitar endpoints da web", + "enableWebUiDesc": "Abra as interfaces web deste host a partir da barra lateral.", + "webUiAddEndpoint": "Adicionar ponto final", + "webUiAddress": "Endereço", + "webUiOpening": "Abertura", + "webUiBindHostDesc": "Onde o servidor de backend vincula o encaminhamento. Deixe em branco para 127.0.0.1, que somente a máquina que executa o Termix pode acessar.", + "webUiBindHostExposed": "Este endereço é acessível além da máquina Termix, portanto, qualquer pessoa que consiga acessar a porta obtém esta interface web sem necessidade de login.", + "webUiLocalPort": "Porto local", + "webUiLocalPortAuto": "Automático", + "webUiLocalPortDesc": "Em qual porta o encaminhamento escuta. Deixe em branco para que o sistema escolha, ou defina uma quando a porta precisar ser conhecida antecipadamente, como no caso de um contêiner que a publica.", + "webUiNewEndpointLabel": "Novo ponto final", + "webUiLabel": "Rótulo", + "webUiScheme": "Plano", "webUiPort": "Porta", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiPath": "Caminho", + "webUiAccess": "Acesso", + "webUiAccessDirect": "Direto", + "webUiAccessTunnel": "túnel SSH", + "webUiAccessTunnelUnavailable": "Um túnel SSH requer que o SSH esteja habilitado neste host e que a origem da conexão seja este dispositivo.", + "webUiRender": "Abrir em", + "webUiRenderExternal": "janela de área de trabalho isolada", + "webUiRenderEmbedded": "guia Termix", + "webUiRenderEmbeddedDesc": "A incorporação é feita da melhor maneira possível: algumas interfaces web se recusam a carregar em um frame, e um login que depende de cookies do mesmo site pode entrar em loop. O navegador externo sempre funciona.", "webUiIgnoreCert": "Permitir certificado inválido", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "webUiIgnoreCertDesc": "Apenas endpoints diretos. O loopback já está isento, portanto, isso não afeta os endpoints do túnel.", + "webUiRemoveEndpoint": "Remover ponto final", + "webUiOpenFailed": "Falha ao abrir o endpoint da web", + "bindHost": "Vincular host" } } diff --git a/plugins/web-endpoint/locales/translated/pt_PT.json b/plugins/web-endpoint/locales/translated/pt_PT.json index 2a400c039..7544b1caf 100644 --- a/plugins/web-endpoint/locales/translated/pt_PT.json +++ b/plugins/web-endpoint/locales/translated/pt_PT.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Nenhum host selecionado", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Este endpoint já não existe.", + "tunnelUnreachableFromBrowser": "Este endpoint estabelece um túnel para 127.0.0.1 na máquina que executa o Termix, endereço que o seu browser não consegue aceder. Defina o Host de Ligação do endpoint para um endereço que a máquina responda, como por exemplo 0.0.0.0, e atribua-lhe uma Porta Local fixa.", + "tunnelSharesSessionCookie": "A abertura deste túnel enviará a sua sessão do Termix para o serviço tunelado, uma vez que o seu browser irá aceder-lhe pelo mesmo nome de host a partir do qual o Termix é servido. Os cookies ignoram a porta, pelo que os dois não podem ser diferenciados. Utilize a aplicação Termix para desktop ou abra o Termix em localhost.", + "directSharesSessionCookie": "Abrir este endpoint irá enviar a sua sessão do Termix para o mesmo, uma vez que o seu browser acede ao mesmo no mesmo site que serve o Termix. Os cookies ignoram a porta, pelo que uma porta diferente não representa uma identidade diferente. Utilize a aplicação Termix para desktop ou aceda a esta interface web a partir de um nome de host diferente.", "retry": "Repetir", "reload": "Recarregar", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "Copiar URL", + "urlCopied": "URL copiado", + "copyFailed": "Falha ao copiar o URL", "openExternally": "Abrir externamente", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "Este browser não consegue isolar os endpoints web da sua sessão Termix. Utilize um browser com suporte para iframes sem credenciais.", + "isolationNotice": "As páginas incorporadas utilizam uma sessão isolada. Para páginas que exijam armazenamento ou login em janela pop-up, utilize uma janela isolada na aplicação para desktop.", + "openIsolatedWindow": "Janela isolada aberta" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Interface de utilizador web", + "webUiEndpointLabel": "Ponto final {{number}}", + "webUiIntegration": "Interface de utilizador web", + "webUiEndpointsSection": "Pontos finais", + "webUiNoEndpoints": "Ainda não existem endpoints web. Utilize Adicionar endpoint para criar um.", + "webUiEndpointsDisabled": "Ative a interface web acima para adicionar endpoints.", + "webUiRequirementsText": "Um endpoint direto é aberto pelo seu browser, pelo que a porta do mesmo precisa de estar acessível a partir daqui. Em vez disso, o Termix abre um túnel SSH sobre a ligação SSH deste host, pelo que a porta só precisa de estar acessível a partir do host.", + "enableWebUi": "Ativar endpoints da web", + "enableWebUiDesc": "Abra as interfaces web deste host a partir da barra lateral.", + "webUiAddEndpoint": "Adicionar ponto final", "webUiAddress": "Endereço", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "Abertura", + "webUiBindHostDesc": "Onde o servidor de backend liga o encaminhamento. Deixe em branco para 127.0.0.1, que apenas a máquina que executa o Termix pode aceder.", + "webUiBindHostExposed": "Este endereço é acessível para além da máquina Termix, pelo que qualquer pessoa que consiga aceder à porta obtém esta interface web sem necessidade de login.", "webUiLocalPort": "Porta local", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "Automático", + "webUiLocalPortDesc": "Em que porta o encaminhamento escuta. Deixe em branco para que o sistema escolha, ou defina uma porta quando é necessário saber a porta antecipadamente, como no caso de um contentor que a publica.", + "webUiNewEndpointLabel": "Novo ponto final", "webUiLabel": "Rótulo", - "webUiScheme": "Scheme", + "webUiScheme": "Plano", "webUiPort": "Porta", "webUiPath": "Caminho", - "webUiAccess": "Access", + "webUiAccess": "Acesso", "webUiAccessDirect": "Direta", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "túnel SSH", + "webUiAccessTunnelUnavailable": "Um túnel SSH requer que o SSH esteja activado neste host e que a origem da ligação seja este dispositivo.", + "webUiRender": "Abrir em", + "webUiRenderExternal": "janela de área de trabalho isolada", + "webUiRenderEmbedded": "guia Termix", + "webUiRenderEmbeddedDesc": "A incorporação é feita da melhor forma possível: algumas interfaces web recusam-se a carregar num frame, e um login que dependa de cookies do mesmo site pode entrar em loop. O browser externo funciona sempre.", "webUiIgnoreCert": "Permitir certificado inválido", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "Apenas endpoints diretos. O loopback já está isento, pelo que isto não afeta os endpoints do túnel.", + "webUiRemoveEndpoint": "Remover ponto final", + "webUiOpenFailed": "Falha ao abrir o endpoint web", "bindHost": "Host de Ligação" } } diff --git a/plugins/web-endpoint/locales/translated/ru_RU.json b/plugins/web-endpoint/locales/translated/ru_RU.json index aab746455..00f46f7ac 100644 --- a/plugins/web-endpoint/locales/translated/ru_RU.json +++ b/plugins/web-endpoint/locales/translated/ru_RU.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Хост не выбран", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Данная конечная точка больше не существует.", + "tunnelUnreachableFromBrowser": "Эта конечная точка туннелирует на 127.0.0.1 на машине, где запущен Termix, но ваш браузер к ней не имеет доступа. Установите в качестве параметра Bind Host адрес, на который машина отвечает, например, 0.0.0.0, и укажите фиксированный локальный порт.", + "tunnelSharesSessionCookie": "Открытие этого туннеля направит вашу сессию Termix к туннелированному сервису, поскольку ваш браузер будет обращаться к нему по тому же имени хоста, с которого обслуживается Termix. Файлы cookie игнорируют порт, поэтому их невозможно различить. Используйте настольное приложение Termix или откройте Termix по адресу localhost.", + "directSharesSessionCookie": "Открытие этой конечной точки перенаправит вашу сессию Termix на неё, поскольку ваш браузер обращается к ней через тот же сайт, с которого обслуживается Termix. Файлы cookie игнорируют порт, поэтому другой порт не означает другой идентификатор. Используйте настольное приложение Termix или разместите этот веб-интерфейс с другого имени хоста.", "retry": "Повторить", "reload": "Перезагрузить", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "Скопировать URL", + "urlCopied": "URL скопирован", + "copyFailed": "Не удалось скопировать URL.", "openExternally": "Открыть во внешнем редакторе", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "Этот браузер не может изолировать веб-интерфейсы от вашей сессии Termix. Используйте браузер с поддержкой iframe без учетных данных.", + "isolationNotice": "Встроенные страницы используют изолированную сессию. Для страниц, требующих хранения данных или всплывающего окна авторизации, используйте изолированное окно в настольном приложении.", + "openIsolatedWindow": "Открытое изолированное окно" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Веб-интерфейс", + "webUiEndpointLabel": "Конечная точка {{number}}", + "webUiIntegration": "Веб-интерфейс", + "webUiEndpointsSection": "Конечные точки", + "webUiNoEndpoints": "Веб-конечные точки пока отсутствуют. Используйте кнопку «Добавить конечную точку», чтобы создать её.", + "webUiEndpointsDisabled": "Включите веб-интерфейс выше, чтобы добавить конечные точки.", + "webUiRequirementsText": "Ваш браузер открывает прямую конечную точку, поэтому её порт должен быть доступен отсюда. Termix же открывает SSH-туннель через SSH-соединение этого хоста, поэтому порт должен быть доступен только с этого хоста.", + "enableWebUi": "Включить веб-конечные точки", + "enableWebUiDesc": "Откройте веб-интерфейс этого хостинг-провайдера из боковой панели.", + "webUiAddEndpoint": "Добавить конечную точку", "webUiAddress": "Адрес", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "Открытие", + "webUiBindHostDesc": "Где бэкэнд привязывает переадресацию. Оставьте поле пустым для IP-адреса 127.0.0.1, к которому может получить доступ только компьютер, на котором запущен Termix.", + "webUiBindHostExposed": "Этот адрес доступен за пределами машины Termix, поэтому любой, кто может получить доступ к этому порту, получает доступ к веб-интерфейсу без авторизации.", "webUiLocalPort": "Локальный порт", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "Автоматический", + "webUiLocalPortDesc": "На каком порту будет прослушивать переадресация? Оставьте поле пустым, чтобы система выбрала его сама, или задайте порт заранее, например, если он должен быть известен контейнеру, который его публикует.", + "webUiNewEndpointLabel": "Новая конечная точка", "webUiLabel": "Название", - "webUiScheme": "Scheme", + "webUiScheme": "Схема", "webUiPort": "Порт", "webUiPath": "Путь", - "webUiAccess": "Access", + "webUiAccess": "Доступ", "webUiAccessDirect": "Прямой", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "SSH-туннель", + "webUiAccessTunnelUnavailable": "Для создания SSH-туннеля необходимо включить SSH на этом хосте и указать источник соединения на этом устройстве.", + "webUiRender": "Открыть в", + "webUiRenderExternal": "Изолированное окно рабочего стола", + "webUiRenderEmbedded": "Термикс вкладка", + "webUiRenderEmbeddedDesc": "Встраивание осуществляется по принципу «максимальной эффективности»: некоторые веб-интерфейсы отказываются загружаться во фрейме, а вход в систему, использующий файлы cookie того же сайта, может зацикливаться. Внешний браузер всегда работает.", "webUiIgnoreCert": "Разрешить недействительный сертификат", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "Только прямые конечные точки. Замыкания (loopback) уже исключены, поэтому это не влияет на туннельные конечные точки.", + "webUiRemoveEndpoint": "Удалить конечную точку", + "webUiOpenFailed": "Не удалось открыть веб-интерфейс.", "bindHost": "Хост для привязки" } } diff --git a/plugins/web-endpoint/locales/translated/sr_SP.json b/plugins/web-endpoint/locales/translated/sr_SP.json index 592190658..738b3b56d 100644 --- a/plugins/web-endpoint/locales/translated/sr_SP.json +++ b/plugins/web-endpoint/locales/translated/sr_SP.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "Није изабран домаћин", + "notFound": "Ова крајња тачка више не постоји.", + "tunnelUnreachableFromBrowser": "Ова крајња тачка се повезује са адресом 127.0.0.1 на машини на којој је покренут Termix, коју ваш прегледач не може да досегне. Поставите Bind Host крајње тачке на адресу на коју машина одговара, као што је 0.0.0.0, и доделите јој фиксни локални порт.", + "tunnelSharesSessionCookie": "Отварањем овог тунела ваша Termix сесија би се послала тунелираном сервису, јер би је ваш прегледач дохватио на истом имену хоста са ког се Termix служи. Колачићи игноришу порт, тако да се та два не могу разликовати. Користите Termix десктоп апликацију или отворите Termix на localhost.", + "directSharesSessionCookie": "Отварањем ове крајње тачке би се ваша Termix сесија послала на њу, јер ваш прегледач до ње долази на истој локацији са које се Termix служи. Колачићи игноришу порт, тако да други порт није други идентитет. Користите Termix десктоп апликацију или служите овом веб корисничком интерфејсу са другог имена хоста.", + "retry": "Покушај поново", + "reload": "Поново учитај", + "copyUrl": "Копирај УРЛ", + "urlCopied": "URL је копиран", + "copyFailed": "Копирање URL-а није успело", + "openExternally": "Отвори споља", + "isolationUnavailable": "Овај прегледач не може да изолује веб крајње тачке од ваше Termix сесије. Користите прегледач са подршком за iframe без акредитива.", + "isolationNotice": "Уграђене странице користе изоловану сесију. За странице које захтевају складиштење или искачуће пријављивање, користите изоловани прозор у апликацији за рачунаре.", + "openIsolatedWindow": "Отвори изоловани прозор" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "tabWebUi": "Веб кориснички интерфејс", + "webUiEndpointLabel": "Крајња тачка {{number}}", + "webUiIntegration": "Веб кориснички интерфејс", + "webUiEndpointsSection": "Крајње тачке", + "webUiNoEndpoints": "Још нема веб крајњих тачака. Користите опцију „Додај крајњу тачку“ да бисте је креирали.", + "webUiEndpointsDisabled": "Укључите веб интерфејс изнад да бисте додали крајње тачке.", + "webUiRequirementsText": "Директну крајњу тачку отвара ваш прегледач, тако да њен порт мора бити доступан одавде. Уместо тога, Termix отвара SSH тунел преко SSH везе овог хоста, тако да порт мора бити доступан само са хоста.", + "enableWebUi": "Омогући веб крајње тачке", + "enableWebUiDesc": "Отворите веб интерфејсе овог хоста са бочне траке.", + "webUiAddEndpoint": "Додај крајњу тачку", + "webUiAddress": "Адреса", + "webUiOpening": "Отварање", + "webUiBindHostDesc": "Где се бекенд повезује са преусмеравањем. Оставите празно за 127.0.0.1, до којег може да дође само машина на којој је покренут Termix.", + "webUiBindHostExposed": "Ова адреса је доступна изван Termix машине, тако да свако ко може да дође до порта добија овај веб интерфејс без пријављивања.", + "webUiLocalPort": "Локални порт", + "webUiLocalPortAuto": "Аутоматски", + "webUiLocalPortDesc": "На ком порту преусмеравање слуша. Оставите празно да би систем изабрао или подесите порт када порт мора бити познат унапред, као што је контејнер који га објављује.", + "webUiNewEndpointLabel": "Нова крајња тачка", + "webUiLabel": "Ознака", + "webUiScheme": "Шема", + "webUiPort": "Лука", + "webUiPath": "Путања", + "webUiAccess": "Приступ", + "webUiAccessDirect": "Директно", + "webUiAccessTunnel": "SSH тунел", + "webUiAccessTunnelUnavailable": "SSH тунел захтева омогућен SSH на овом хосту и порекло везе са овог уређаја.", + "webUiRender": "Отвори у", + "webUiRenderExternal": "Изоловани прозор радне површине", + "webUiRenderEmbedded": "Термикс картица", + "webUiRenderEmbeddedDesc": "Уграђивање је најбољи начин: неки веб интерфејси одбијају да се учитају у оквиру, а пријава која се ослања на колачиће истог сајта може да се понови у петљи. Спољни прегледач увек ради.", + "webUiIgnoreCert": "Дозволи неважећи сертификат", + "webUiIgnoreCertDesc": "Само директне крајње тачке. Повратна петља је већ изузета, тако да ово нема утицаја на крајње тачке тунела.", + "webUiRemoveEndpoint": "Уклони крајњу тачку", + "webUiOpenFailed": "Отварање веб крајње тачке није успело", + "bindHost": "Повежи хост" } } diff --git a/plugins/web-endpoint/locales/translated/sv_SE.json b/plugins/web-endpoint/locales/translated/sv_SE.json index 592190658..3da869cef 100644 --- a/plugins/web-endpoint/locales/translated/sv_SE.json +++ b/plugins/web-endpoint/locales/translated/sv_SE.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "Ingen värd vald", + "notFound": "Denna slutpunkt finns inte längre.", + "tunnelUnreachableFromBrowser": "Denna slutpunkt tunnlar till 127.0.0.1 på maskinen som kör Termix, vilket din webbläsare inte kan nå. Ställ in slutpunktens Bind Host till en adress som maskinen svarar på, till exempel 0.0.0.0, och ge den en fast lokal port.", + "tunnelSharesSessionCookie": "Om du öppnar den här tunneln skickas din Termix-session till den tunnelerade tjänsten, eftersom din webbläsare skulle nå den på samma värdnamn som Termix serveras från. Cookies ignorerar porten, så de två kan inte skiljas åt. Använd Termix-skrivbordsappen eller öppna Termix på localhost.", + "directSharesSessionCookie": "Att öppna den här slutpunkten skulle skicka din Termix-session till den, eftersom din webbläsare når den på samma plats som Termix serveras från. Cookies ignorerar porten, så en annan port är inte en annan identitet. Använd Termix-skrivbordsappen eller servera detta webbgränssnitt från ett annat värdnamn.", + "retry": "Försöka igen", + "reload": "Ladda om", + "copyUrl": "Kopiera URL", + "urlCopied": "URL kopierad", + "copyFailed": "Misslyckades med att kopiera URL:en", + "openExternally": "Öppna externt", + "isolationUnavailable": "Den här webbläsaren kan inte isolera webbslutpunkter från din Termix-session. Använd en webbläsare med stöd för iframe utan autentiseringsuppgifter.", + "isolationNotice": "Inbäddade sidor använder en isolerad session. För sidor som kräver lagring eller popup-inloggning, använd ett isolerat fönster i skrivbordsappen.", + "openIsolatedWindow": "Öppna isolerade fönster" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "tabWebUi": "Webbgränssnitt", + "webUiEndpointLabel": "Slutpunkt {{number}}", + "webUiIntegration": "Webbgränssnitt", + "webUiEndpointsSection": "Slutpunkter", + "webUiNoEndpoints": "Inga webbslutpunkter ännu. Använd Lägg till slutpunkt för att skapa en.", + "webUiEndpointsDisabled": "Aktivera webbgränssnittet ovan för att lägga till slutpunkter.", + "webUiRequirementsText": "En direkt slutpunkt öppnas av din webbläsare, så dess port måste kunna nås härifrån. En SSH-tunnel öppnas istället av Termix över den här värdens SSH-anslutning, så porten behöver bara kunna nås från värden.", + "enableWebUi": "Aktivera webbslutpunkter", + "enableWebUiDesc": "Öppna den här värdens webbgränssnitt från sidofältet.", + "webUiAddEndpoint": "Lägg till slutpunkt", + "webUiAddress": "Adress", + "webUiOpening": "Öppning", + "webUiBindHostDesc": "Där backend binder forwarden. Lämna tomt för 127.0.0.1, som endast maskinen som kör Termix kan nå.", + "webUiBindHostExposed": "Den här adressen är nåbar bortom Termix-maskinen, så alla som kan nå porten får detta webbgränssnitt utan inloggning.", + "webUiLocalPort": "Lokal hamn", + "webUiLocalPortAuto": "Automatisk", + "webUiLocalPortDesc": "Vilken port vidarebefordran lyssnar på. Lämna tomt för att låta systemet välja, eller ange en port när porten måste vara känd i förväg, till exempel en container som publicerar den.", + "webUiNewEndpointLabel": "Ny slutpunkt", + "webUiLabel": "Märka", + "webUiScheme": "Schema", + "webUiPort": "Hamn", + "webUiPath": "Väg", + "webUiAccess": "Tillträde", + "webUiAccessDirect": "Direkt", + "webUiAccessTunnel": "SSH-tunnel", + "webUiAccessTunnelUnavailable": "En SSH-tunnel kräver att SSH är aktiverat på den här värden och att den här enheten har ett anslutningsursprung.", + "webUiRender": "Öppna om", + "webUiRenderExternal": "Isolerat skrivbordsfönster", + "webUiRenderEmbedded": "Termix-fliken", + "webUiRenderEmbeddedDesc": "Inbäddning är det bästa alternativet: vissa webbgränssnitt vägrar att laddas i en ram, och en inloggning som förlitar sig på cookies från samma webbplats kan loopa. Den externa webbläsaren fungerar alltid.", + "webUiIgnoreCert": "Tillåt ogiltigt certifikat", + "webUiIgnoreCertDesc": "Endast direkta slutpunkter. Loopback är redan undantaget, så detta har ingen effekt på tunnelslutpunkter.", + "webUiRemoveEndpoint": "Ta bort slutpunkten", + "webUiOpenFailed": "Misslyckades med att öppna webbslutpunkten", + "bindHost": "Bind värd" } } diff --git a/plugins/web-endpoint/locales/translated/th_TH.json b/plugins/web-endpoint/locales/translated/th_TH.json index 592190658..3d3abbbfb 100644 --- a/plugins/web-endpoint/locales/translated/th_TH.json +++ b/plugins/web-endpoint/locales/translated/th_TH.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "ไม่ได้เลือกโฮสต์", + "notFound": "ปลายทางนี้ไม่มีอยู่อีกต่อไปแล้ว", + "tunnelUnreachableFromBrowser": "ปลายทางนี้จะเชื่อมต่อผ่านอุโมงค์ไปยัง 127.0.0.1 บนเครื่องที่ใช้งาน Termix ซึ่งเบราว์เซอร์ของคุณไม่สามารถเข้าถึงได้ ตั้งค่า Bind Host ของปลายทางนี้เป็นที่อยู่ IP ที่เครื่องจะตอบสนอง เช่น 0.0.0.0 และกำหนด Local Port ให้คงที่", + "tunnelSharesSessionCookie": "การเปิดอุโมงค์นี้จะส่งเซสชัน Termix ของคุณไปยังบริการผ่านอุโมงค์ เนื่องจากเบราว์เซอร์ของคุณจะเข้าถึงบริการนั้นด้วยชื่อโฮสต์เดียวกับที่ Termix ให้บริการ คุกกี้จะไม่สนใจพอร์ต ดังนั้นจึงไม่สามารถแยกแยะความแตกต่างระหว่างทั้งสองได้ ใช้แอป Termix บนเดสก์ท็อป หรือเปิด Termix ที่ localhost", + "directSharesSessionCookie": "การเปิดเอนด์พอยต์นี้จะส่งเซสชัน Termix ของคุณไปยังเอนด์พอยต์นี้ เนื่องจากเบราว์เซอร์ของคุณเข้าถึงเอนด์พอยต์นี้จากเว็บไซต์เดียวกับที่ Termix ให้บริการ คุกกี้จะไม่สนใจพอร์ต ดังนั้นพอร์ตที่ต่างกันจึงไม่ได้หมายถึงตัวตนที่ต่างกัน ใช้แอปพลิเคชัน Termix บนเดสก์ท็อป หรือให้บริการเว็บ UI นี้จากชื่อโฮสต์อื่น", + "retry": "ลองใหม่อีกครั้ง", + "reload": "โหลดซ้ำ", + "copyUrl": "คัดลอก URL", + "urlCopied": "คัดลอก URL แล้ว", + "copyFailed": "ไม่สามารถคัดลอก URL ได้", + "openExternally": "เปิดจากภายนอก", + "isolationUnavailable": "เบราว์เซอร์นี้ไม่สามารถแยกเว็บเอนด์พอยต์ออกจากเซสชัน Termix ของคุณได้ โปรดใช้เบราว์เซอร์ที่รองรับ iframe แบบไม่ต้องใส่ข้อมูลรับรอง", + "isolationNotice": "หน้าเว็บที่ฝังอยู่จะใช้เซสชันแยกต่างหาก สำหรับหน้าเว็บที่ต้องการพื้นที่จัดเก็บข้อมูลหรือการลงชื่อเข้าใช้แบบป๊อปอัพ ให้ใช้หน้าต่างแยกต่างหากในแอปพลิเคชันบนเดสก์ท็อป", + "openIsolatedWindow": "เปิดหน้าต่างแยกต่างหาก" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "tabWebUi": "ส่วนติดต่อผู้ใช้บนเว็บ", + "webUiEndpointLabel": "จุดสิ้นสุด {{number}}", + "webUiIntegration": "ส่วนติดต่อผู้ใช้บนเว็บ", + "webUiEndpointsSection": "จุดสิ้นสุด", + "webUiNoEndpoints": "ยังไม่มีเว็บเอนด์พอยต์ ใช้ฟังก์ชัน \"เพิ่มเอนด์พอยต์\" เพื่อสร้างเอนด์พอยต์", + "webUiEndpointsDisabled": "เปิดใช้งาน Web UI ด้านบนเพื่อเพิ่มเอนด์พอยต์", + "webUiRequirementsText": "เบราว์เซอร์ของคุณจะเปิดปลายทางโดยตรง ดังนั้นพอร์ตจะต้องสามารถเข้าถึงได้จากที่นี่ แต่หากใช้ Termix จะเปิดอุโมงค์ SSH ผ่านการเชื่อมต่อ SSH ของโฮสต์นี้แทน ดังนั้นพอร์ตจึงไม่จำเป็นต้องสามารถเข้าถึงได้จากโฮสต์เพียงอย่างเดียว", + "enableWebUi": "เปิดใช้งานเอนด์พอยต์เว็บ", + "enableWebUiDesc": "เปิดหน้าเว็บของโฮสต์นี้จากแถบด้านข้าง", + "webUiAddEndpoint": "เพิ่มเอนด์พอยต์", + "webUiAddress": "ที่อยู่", + "webUiOpening": "เปิด", + "webUiBindHostDesc": "ตรงส่วนที่แบ็กเอนด์เชื่อมต่อกับส่วนหน้า เว้นว่างไว้สำหรับ 127.0.0.1 ซึ่งมีเพียงเครื่องที่ใช้งาน Termix เท่านั้นที่สามารถเข้าถึงได้", + "webUiBindHostExposed": "ที่อยู่เว็บนี้สามารถเข้าถึงได้จากภายนอกเครื่อง Termix ดังนั้นใครก็ตามที่สามารถเข้าถึงพอร์ตนี้จะสามารถเข้าถึงเว็บ UI นี้ได้โดยไม่ต้องล็อกอิน", + "webUiLocalPort": "ท่าเรือท้องถิ่น", + "webUiLocalPortAuto": "อัตโนมัติ", + "webUiLocalPortDesc": "พอร์ตที่ตัวส่งต่อรับฟังอยู่ เว้นว่างไว้เพื่อให้ระบบเลือก หรือระบุพอร์ตเมื่อจำเป็นต้องทราบพอร์ตล่วงหน้า เช่น คอนเทนเนอร์ที่เผยแพร่พอร์ตนั้น", + "webUiNewEndpointLabel": "จุดเชื่อมต่อใหม่", + "webUiLabel": "ฉลาก", + "webUiScheme": "โครงการ", + "webUiPort": "ท่าเรือ", + "webUiPath": "เส้นทาง", + "webUiAccess": "เข้าถึง", + "webUiAccessDirect": "โดยตรง", + "webUiAccessTunnel": "อุโมงค์ SSH", + "webUiAccessTunnelUnavailable": "การสร้างอุโมงค์ SSH จำเป็นต้องเปิดใช้งาน SSH บนโฮสต์นี้ และต้องมีอุปกรณ์นี้เป็นแหล่งกำเนิดการเชื่อมต่อ", + "webUiRender": "เปิดใน", + "webUiRenderExternal": "หน้าต่างเดสก์ท็อปแบบแยกเดี่ยว", + "webUiRenderEmbedded": "แท็บเทอร์มิกซ์", + "webUiRenderEmbeddedDesc": "การฝังเนื้อหาทำได้ดีที่สุดเท่าที่จะทำได้: อินเทอร์เฟซเว็บบางอย่างอาจไม่สามารถโหลดในเฟรมได้ และการเข้าสู่ระบบที่อาศัยคุกกี้ในเว็บไซต์เดียวกันอาจวนลูป แต่เบราว์เซอร์ภายนอกใช้งานได้เสมอ", + "webUiIgnoreCert": "อนุญาตให้ใช้ใบรับรองที่ไม่ถูกต้อง", + "webUiIgnoreCertDesc": "เฉพาะปลายทางที่เชื่อมต่อโดยตรงเท่านั้น การเชื่อมต่อแบบ Loopback ได้รับการยกเว้นอยู่แล้ว ดังนั้นจึงไม่มีผลกระทบต่อปลายทางแบบ Tunnel", + "webUiRemoveEndpoint": "ลบจุดสิ้นสุด", + "webUiOpenFailed": "ไม่สามารถเปิดเว็บเอนด์พอยต์ได้", + "bindHost": "โฮสต์ผูก" } } diff --git a/plugins/web-endpoint/locales/translated/tr_TR.json b/plugins/web-endpoint/locales/translated/tr_TR.json index b256376c8..bce58ef6c 100644 --- a/plugins/web-endpoint/locales/translated/tr_TR.json +++ b/plugins/web-endpoint/locales/translated/tr_TR.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Hiçbir host seçilmedi", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Bu uç nokta artık mevcut değil.", + "tunnelUnreachableFromBrowser": "Bu uç nokta, tarayıcınızın erişemediği Termix'i çalıştıran makinedeki 127.0.0.1 adresine tünel oluşturur. Uç noktanın Bağlantı Ana Bilgisayarını, bu makinenin yanıt verdiği bir adrese (örneğin 0.0.0.0) ayarlayın ve sabit bir Yerel Bağlantı Noktası verin.", + "tunnelSharesSessionCookie": "Bu tüneli açmak, Termix oturumunuzu tünellenmiş servise yönlendirecektir, çünkü tarayıcınız Termix'in sunulduğu aynı ana bilgisayar adından ona ulaşacaktır. Çerezler bağlantı noktasını dikkate almaz, bu nedenle ikisi birbirinden ayırt edilemez. Termix masaüstü uygulamasını kullanın veya Termix'i localhost'ta açın.", + "directSharesSessionCookie": "Bu uç noktayı açmak, Termix oturumunuzu ona yönlendirecektir, çünkü tarayıcınız Termix'in sunulduğu aynı siteden ona ulaşır. Çerezler bağlantı noktasını dikkate almaz, bu nedenle farklı bir bağlantı noktası farklı bir kimlik anlamına gelmez. Termix masaüstü uygulamasını kullanın veya bu web arayüzünü farklı bir ana bilgisayar adından sunun.", "retry": "Yeniden dene", "reload": "Yeniden yükle", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "URL'yi kopyala", + "urlCopied": "URL kopyalandı", + "copyFailed": "URL kopyalama başarısız oldu.", "openExternally": "Harici Olarak Aç", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "Bu tarayıcı, web uç noktalarını Termix oturumunuzdan izole edemez. Kimlik bilgisi gerektirmeyen iframe desteği olan bir tarayıcı kullanın.", + "isolationNotice": "Gömülü sayfalar ayrı bir oturum kullanır. Depolama gerektiren veya açılır pencereyle oturum açma işlemi gerektiren sayfalar için masaüstü uygulamasında ayrı bir pencere kullanın.", + "openIsolatedWindow": "İzole edilmiş pencereyi açın" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Web arayüzü", + "webUiEndpointLabel": "Uç nokta {{number}}", + "webUiIntegration": "Web arayüzü", + "webUiEndpointsSection": "Uç noktalar", + "webUiNoEndpoints": "Henüz web uç noktası yok. Bir tane oluşturmak için Uç nokta ekle'yi kullanın.", + "webUiEndpointsDisabled": "Uç noktalar eklemek için yukarıdaki Web arayüzünü etkinleştirin.", + "webUiRequirementsText": "Tarayıcınız tarafından doğrudan bir uç nokta açılır, bu nedenle bağlantı noktasının buradan erişilebilir olması gerekir. Bunun yerine Termix, bu sunucunun SSH bağlantısı üzerinden bir SSH tüneli açar, bu nedenle bağlantı noktasının yalnızca sunucudan erişilebilir olması yeterlidir.", + "enableWebUi": "Web uç noktalarını etkinleştirin", + "enableWebUiDesc": "Bu sunucunun web arayüzlerini yan menüden açın.", + "webUiAddEndpoint": "Uç nokta ekle", "webUiAddress": "Adres", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "Açılış", + "webUiBindHostDesc": "Arka uç, ön ucu birbirine bağlar. Sadece Termix'i çalıştıran makinenin erişebileceği 127.0.0.1 için boş bırakın.", + "webUiBindHostExposed": "Bu adrese Termix makinesinin ötesinden de erişilebildiği için, porta erişebilen herkes giriş yapmadan bu web arayüzüne ulaşabilir.", "webUiLocalPort": "Yerel Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "Otomatik", + "webUiLocalPortDesc": "Yönlendiricinin hangi porttan dinleyeceğini belirtin. Sistemin seçmesine izin vermek için boş bırakın veya portun önceden bilinmesi gerektiğinde (örneğin, portun yayınlandığı bir konteyner gibi) bir port belirleyin.", + "webUiNewEndpointLabel": "Yeni uç nokta", "webUiLabel": "Etiket", - "webUiScheme": "Scheme", + "webUiScheme": "Plan", "webUiPort": "Port", "webUiPath": "Yol", - "webUiAccess": "Access", + "webUiAccess": "Erişim", "webUiAccessDirect": "Doğrudan", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "SSH tüneli", + "webUiAccessTunnelUnavailable": "SSH tüneli için bu sunucuda SSH'nin etkinleştirilmiş olması ve bağlantı kaynağının bu cihaz olması gerekmektedir.", + "webUiRender": "Şurada aç", + "webUiRenderExternal": "Yalıtılmış masaüstü penceresi", + "webUiRenderEmbedded": "Termix tableti", + "webUiRenderEmbeddedDesc": "Gömme işlemi en iyi çaba prensibine dayanır: bazı web arayüzleri bir çerçeve içinde yüklenmeyi reddeder ve aynı site çerezlerine dayanan bir oturum açma işlemi döngüye girebilir. Harici tarayıcı her zaman çalışır.", "webUiIgnoreCert": "Geçersiz sertifikaya izin ver", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "Yalnızca doğrudan uç noktalar için geçerlidir. Loopback zaten muaf tutulmuştur, bu nedenle tünel uç noktalarını etkilemez.", + "webUiRemoveEndpoint": "Uç noktayı kaldır", + "webUiOpenFailed": "Web uç noktası açılamadı.", "bindHost": "Bağlanma Ana Bilgisayarı" } } diff --git a/plugins/web-endpoint/locales/translated/uk_UA.json b/plugins/web-endpoint/locales/translated/uk_UA.json index 592190658..c75deab0a 100644 --- a/plugins/web-endpoint/locales/translated/uk_UA.json +++ b/plugins/web-endpoint/locales/translated/uk_UA.json @@ -1,55 +1,55 @@ { "webEndpoint": { - "noHostSelected": "No host selected", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", - "retry": "Retry", - "reload": "Reload", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", - "openExternally": "Open externally", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "noHostSelected": "Хост не вибрано", + "notFound": "Цієї кінцевої точки більше не існує.", + "tunnelUnreachableFromBrowser": "Ця кінцева точка тунелює до 127.0.0.1 на машині з Termix, до якої ваш браузер не може дістатися. Встановіть для хоста прив'язки кінцевої точки адресу, на яку відповідає машина, наприклад, 0.0.0.0, і надайте їй фіксований локальний порт.", + "tunnelSharesSessionCookie": "Відкриття цього тунелю перенаправить ваш сеанс Termix до тунельованого сервісу, оскільки ваш браузер досягне його на тому ж імені хоста, з якого обслуговується Termix. Файли cookie ігнорують порт, тому їх не можна розрізнити. Скористайтеся десктопним застосунком Termix або відкрийте Termix на localhost.", + "directSharesSessionCookie": "Відкриття цієї кінцевої точки призведе до перенаправлення вашого сеансу Termix на неї, оскільки ваш браузер звертається до нього на тому ж сайті, з якого обслуговується Termix. Файли cookie ігнорують порт, тому інший порт не є іншою ідентифікатором. Використовуйте настільний додаток Termix або обслуговуйте цей веб-інтерфейс з іншого імені хоста.", + "retry": "Повторити спробу", + "reload": "Перезавантажити", + "copyUrl": "Копіювати URL-адресу", + "urlCopied": "URL-адресу скопійовано", + "copyFailed": "Не вдалося скопіювати URL-адресу", + "openExternally": "Відкрити зовні", + "isolationUnavailable": "Цей браузер не може ізолювати кінцеві точки веб-сайту від вашого сеансу Termix. Використовуйте браузер із підтримкою iframe без облікових даних.", + "isolationNotice": "Вбудовані сторінки використовують ізольований сеанс. Для сторінок, що потребують сховища або спливаючого входу, використовуйте ізольоване вікно в настільному додатку.", + "openIsolatedWindow": "Відкрите ізольоване вікно" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", - "webUiAddress": "Address", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", - "webUiLocalPort": "Local Port", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", - "webUiLabel": "Label", - "webUiScheme": "Scheme", - "webUiPort": "Port", - "webUiPath": "Path", - "webUiAccess": "Access", - "webUiAccessDirect": "Direct", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", - "webUiIgnoreCert": "Allow invalid certificate", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", - "bindHost": "Bind Host" + "tabWebUi": "Веб-інтерфейс", + "webUiEndpointLabel": "Кінцева точка {{number}}", + "webUiIntegration": "Веб-інтерфейс", + "webUiEndpointsSection": "Кінцеві точки", + "webUiNoEndpoints": "Поки що немає кінцевих точок веб-сайту. Створіть її за допомогою опції \"Додати кінцеву точку\".", + "webUiEndpointsDisabled": "Увімкніть веб-інтерфейс вище, щоб додати кінцеві точки.", + "webUiRequirementsText": "Ваш браузер відкривається прямою кінцевою точкою, тому її порт має бути доступним звідси. Натомість Termix відкриває SSH-тунель через SSH-з'єднання цього хоста, тому порт має бути доступним лише з хоста.", + "enableWebUi": "Увімкнути веб-кінцеві точки", + "enableWebUiDesc": "Відкрийте веб-інтерфейси цього хоста з бічної панелі.", + "webUiAddEndpoint": "Додати кінцеву точку", + "webUiAddress": "Адреса", + "webUiOpening": "Відкриття", + "webUiBindHostDesc": "Де серверна частина зв'язується з пересиланням. Залиште поле порожнім для 127.0.0.1, до якого може отримати доступ лише машина з Termix.", + "webUiBindHostExposed": "Ця адреса доступна за межами машини Termix, тому кожен, хто може отримати доступ до порту, отримає цей веб-інтерфейс без входу в систему.", + "webUiLocalPort": "Локальний порт", + "webUiLocalPortAuto": "Автоматичний", + "webUiLocalPortDesc": "На якому порту прослуховується переадресація. Залиште поле порожнім, щоб дозволити системі вибрати, або встановіть порт, якщо порт має бути відомий заздалегідь, наприклад, контейнер, який його публікує.", + "webUiNewEndpointLabel": "Нова кінцева точка", + "webUiLabel": "Мітка", + "webUiScheme": "Схема", + "webUiPort": "Порт", + "webUiPath": "Шлях", + "webUiAccess": "Доступ", + "webUiAccessDirect": "Прямий", + "webUiAccessTunnel": "SSH-тунель", + "webUiAccessTunnelUnavailable": "Для SSH-тунелю потрібно ввімкнути SSH на цьому хості та встановити джерело з'єднання на цьому пристрої.", + "webUiRender": "Відкрити в", + "webUiRenderExternal": "Ізольоване вікно робочого столу", + "webUiRenderEmbedded": "Вкладка Termix", + "webUiRenderEmbeddedDesc": "Вбудовування – найкращий спосіб: деякі веб-інтерфейси відмовляються завантажуватися у фреймі, а вхід, який залежить від файлів cookie того ж сайту, може зациклюватися. Зовнішній браузер завжди працює.", + "webUiIgnoreCert": "Дозволити недійсний сертифікат", + "webUiIgnoreCertDesc": "Тільки прямі кінцеві точки. Зациклення вже виключено, тому це не впливає на кінцеві точки тунелю.", + "webUiRemoveEndpoint": "Видалити кінцеву точку", + "webUiOpenFailed": "Не вдалося відкрити кінцеву точку веб-сайту", + "bindHost": "Прив’язати хост" } } diff --git a/plugins/web-endpoint/locales/translated/vi_VN.json b/plugins/web-endpoint/locales/translated/vi_VN.json index fa2281583..ae81e0860 100644 --- a/plugins/web-endpoint/locales/translated/vi_VN.json +++ b/plugins/web-endpoint/locales/translated/vi_VN.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "Chưa chọn máy chủ", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "Điểm cuối này không còn tồn tại nữa.", + "tunnelUnreachableFromBrowser": "Điểm cuối này tạo đường hầm đến 127.0.0.1 trên máy đang chạy Termix, mà trình duyệt của bạn không thể truy cập được. Hãy đặt Bind Host của điểm cuối thành một địa chỉ mà máy đó phản hồi, chẳng hạn như 0.0.0.0, và gán cho nó một Cổng cục bộ cố định.", + "tunnelSharesSessionCookie": "Việc mở đường hầm này sẽ chuyển phiên Termix của bạn đến dịch vụ được tạo đường hầm, vì trình duyệt của bạn sẽ truy cập dịch vụ đó bằng cùng tên máy chủ mà Termix được phục vụ. Cookie bỏ qua cổng, vì vậy không thể phân biệt được hai dịch vụ này. Hãy sử dụng ứng dụng Termix dành cho máy tính để bàn hoặc mở Termix tại localhost.", + "directSharesSessionCookie": "Việc mở điểm cuối này sẽ gửi phiên Termix của bạn đến đó, vì trình duyệt của bạn truy cập nó từ cùng một trang web mà Termix được cung cấp. Cookie bỏ qua cổng, vì vậy một cổng khác không có nghĩa là một danh tính khác. Hãy sử dụng ứng dụng Termix dành cho máy tính để bàn, hoặc cung cấp giao diện người dùng web này từ một tên máy chủ khác.", "retry": "Thử lại", "reload": "Tải lại", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "Sao chép URL", + "urlCopied": "URL đã được sao chép", + "copyFailed": "Không thể sao chép URL", "openExternally": "Mở bên ngoài", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "Trình duyệt này không thể tách biệt các điểm cuối web khỏi phiên Termix của bạn. Hãy sử dụng trình duyệt hỗ trợ iframe không cần thông tin đăng nhập.", + "isolationNotice": "Các trang nhúng sử dụng một phiên riêng biệt. Đối với các trang yêu cầu lưu trữ hoặc đăng nhập bằng cửa sổ bật lên, hãy sử dụng một cửa sổ riêng biệt trong ứng dụng dành cho máy tính để bàn.", + "openIsolatedWindow": "Cửa sổ riêng biệt đang mở" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Giao diện người dùng web", + "webUiEndpointLabel": "Điểm cuối {{number}}", + "webUiIntegration": "Giao diện người dùng web", + "webUiEndpointsSection": "Điểm cuối", + "webUiNoEndpoints": "Hiện chưa có điểm cuối web nào. Sử dụng chức năng Thêm điểm cuối để tạo một điểm cuối.", + "webUiEndpointsDisabled": "Bật giao diện Web UI ở trên để thêm các điểm cuối.", + "webUiRequirementsText": "Trình duyệt của bạn sẽ mở một điểm cuối trực tiếp, vì vậy cổng của nó phải có thể truy cập được từ đây. Thay vào đó, Termix sẽ mở một đường hầm SSH thông qua kết nối SSH của máy chủ này, vì vậy cổng chỉ cần có thể truy cập được từ máy chủ đó.", + "enableWebUi": "Kích hoạt các điểm cuối web", + "enableWebUiDesc": "Mở giao diện web của máy chủ này từ thanh bên.", + "webUiAddEndpoint": "Thêm điểm cuối", "webUiAddress": "Địa chỉ", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "Khai mạc", + "webUiBindHostDesc": "Đây là nơi phần máy chủ liên kết với phần máy khách. Để trống trường 127.0.0.1, chỉ máy chạy Termix mới có thể truy cập được.", + "webUiBindHostExposed": "Địa chỉ này có thể truy cập được từ bên ngoài máy Termix, vì vậy bất kỳ ai có thể truy cập được cổng này đều có thể sử dụng giao diện web này mà không cần đăng nhập.", "webUiLocalPort": "Cổng cục bộ", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "Tự động", + "webUiLocalPortDesc": "Chọn cổng mà bản ghi chuyển tiếp lắng nghe. Để trống để hệ thống tự chọn, hoặc đặt một cổng khi cần biết trước cổng, ví dụ như một container công bố cổng đó.", + "webUiNewEndpointLabel": "Điểm cuối mới", "webUiLabel": "Nhãn", - "webUiScheme": "Scheme", + "webUiScheme": "Cơ chế", "webUiPort": "Cổng", "webUiPath": "Đường dẫn", - "webUiAccess": "Access", + "webUiAccess": "Truy cập", "webUiAccessDirect": "Trực tiếp", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "Đường hầm SSH", + "webUiAccessTunnelUnavailable": "Đường hầm SSH cần có SSH được bật trên máy chủ này và nguồn kết nối là thiết bị này.", + "webUiRender": "Mở trong", + "webUiRenderExternal": "Cửa sổ màn hình nền riêng biệt", + "webUiRenderEmbedded": "Viên nén Termix", + "webUiRenderEmbeddedDesc": "Việc nhúng trang web chỉ mang tính chất tham khảo: một số giao diện web từ chối tải trong khung, và quá trình đăng nhập dựa vào cookie cùng trang có thể bị lặp lại. Trình duyệt bên ngoài luôn hoạt động bình thường.", "webUiIgnoreCert": "Cho phép chứng chỉ không hợp lệ", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "Chỉ áp dụng cho các điểm cuối trực tiếp. Giao diện vòng lặp đã được miễn trừ, vì vậy điều này không ảnh hưởng đến các điểm cuối đường hầm.", + "webUiRemoveEndpoint": "Xóa điểm cuối", + "webUiOpenFailed": "Không thể mở điểm cuối web", "bindHost": "Máy chủ bind" } } diff --git a/plugins/web-endpoint/locales/translated/zh_CN.json b/plugins/web-endpoint/locales/translated/zh_CN.json index 0a4c52f66..dd68010a2 100644 --- a/plugins/web-endpoint/locales/translated/zh_CN.json +++ b/plugins/web-endpoint/locales/translated/zh_CN.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "未选择主机", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "此端点已不存在。", + "tunnelUnreachableFromBrowser": "此端点通过隧道连接到运行 Termix 的机器上的 127.0.0.1,您的浏览器无法直接访问该地址。请将此端点的绑定主机设置为该机器可以响应的地址,例如 0.0.0.0,并为其指定一个固定的本地端口。", + "tunnelSharesSessionCookie": "打开此隧道会将您的 Termix 会话发送到隧道服务,因为您的浏览器将通过与 Termix 服务相同的主机名访问该服务。Cookie 会忽略端口号,因此无法区分两者。请使用 Termix 桌面应用程序,或在本地主机上打开 Termix。", + "directSharesSessionCookie": "打开此端点会将您的 Termix 会话发送到该端点,因为您的浏览器访问的是 Termix 所在的同一站点。Cookie 会忽略端口号,因此不同的端口号并不代表不同的身份。请使用 Termix 桌面应用程序,或使用不同的主机名访问此 Web UI。", "retry": "重试", "reload": "重新加载", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "复制链接", + "urlCopied": "复制的网址", + "copyFailed": "复制 URL 失败", "openExternally": "在外部打开", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "此浏览器无法将 Web 端点与您的 Termix 会话隔离。请使用支持无需凭据即可访问 iframe 的浏览器。", + "isolationNotice": "嵌入式页面使用独立的会话。对于需要存储数据或弹出式登录的页面,请在桌面应用程序中使用独立的窗口。", + "openIsolatedWindow": "打开隔离窗口" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Web 用户界面", + "webUiEndpointLabel": "端点 {{number}}", + "webUiIntegration": "Web 用户界面", + "webUiEndpointsSection": "终点", + "webUiNoEndpoints": "暂无 Web 端点。请使用“添加端点”功能创建一个。", + "webUiEndpointsDisabled": "启用上方的 Web UI 以添加端点。", + "webUiRequirementsText": "浏览器会打开一个直接端点,因此其端口必须可从此处访问。而 Termix 则会通过此主机的 SSH 连接打开一个 SSH 隧道,因此该端口只需可从主机访问即可。", + "enableWebUi": "启用 Web 端点", + "enableWebUiDesc": "从侧边栏打开此主机的网页界面。", + "webUiAddEndpoint": "添加端点", "webUiAddress": "地址", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "开场", + "webUiBindHostDesc": "后端绑定到前向路由的位置。如果是 127.0.0.1,则留空,因为只有运行 Termix 的机器才能访问该地址。", + "webUiBindHostExposed": "该地址在 Termix 机器之外也是可访问的,因此任何能够访问该端口的人都可以无需登录即可使用此 Web UI。", "webUiLocalPort": "本地端口", "webUiLocalPortAuto": "自动", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortDesc": "转发监听哪个端口。留空让系统自动选择,或者在需要预先知道端口的情况下(例如容器发布端口时)设置一个端口。", + "webUiNewEndpointLabel": "新端点", "webUiLabel": "标签", - "webUiScheme": "Scheme", + "webUiScheme": "方案", "webUiPort": "端口", "webUiPath": "路径", - "webUiAccess": "Access", + "webUiAccess": "使用权", "webUiAccessDirect": "直接", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "SSH隧道", + "webUiAccessTunnelUnavailable": "SSH隧道需要在此主机上启用SSH,并且连接源必须为该设备。", + "webUiRender": "打开", + "webUiRenderExternal": "隔离的桌面窗口", + "webUiRenderEmbedded": "Termix 选项卡", + "webUiRenderEmbeddedDesc": "嵌入功能只能尽力而为:某些网页界面无法在框架中加载,依赖同站点 Cookie 的登录可能会陷入循环。外部浏览器始终有效。", "webUiIgnoreCert": "允许无效证书", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "仅限直接端点。环回接口已获豁免,因此对隧道端点没有影响。", + "webUiRemoveEndpoint": "移除端点", + "webUiOpenFailed": "打开 Web 端点失败", "bindHost": "绑定主机" } } diff --git a/plugins/web-endpoint/locales/translated/zh_TW.json b/plugins/web-endpoint/locales/translated/zh_TW.json index b540f34d2..9dd09d0b3 100644 --- a/plugins/web-endpoint/locales/translated/zh_TW.json +++ b/plugins/web-endpoint/locales/translated/zh_TW.json @@ -1,55 +1,55 @@ { "webEndpoint": { "noHostSelected": "未選擇主機", - "notFound": "This endpoint no longer exists.", - "tunnelUnreachableFromBrowser": "This endpoint tunnels to 127.0.0.1 on the machine running Termix, which your browser cannot reach. Set the endpoint's Bind Host to an address that machine answers on, such as 0.0.0.0, and give it a fixed Local Port.", - "tunnelSharesSessionCookie": "Opening this tunnel would send your Termix session to the tunnelled service, because your browser would reach it at the same hostname Termix is served from. Cookies ignore the port, so the two cannot be told apart. Use the Termix desktop app, or open Termix at localhost.", - "directSharesSessionCookie": "Opening this endpoint would send your Termix session to it, because your browser reaches it at the same site Termix is served from. Cookies ignore the port, so a different port is not a different identity. Use the Termix desktop app, or serve this web UI from a different hostname.", + "notFound": "此端點已不存在。", + "tunnelUnreachableFromBrowser": "此端點透過隧道連接到執行 Termix 的機器上的 127.0.0.1,您的瀏覽器無法直接存取該位址。請將此端點的綁定主機設定為該機器可以回應的位址,例如 0.0.0.0,並為其指定一個固定的本機連接埠。", + "tunnelSharesSessionCookie": "開啟此隧道會將您的 Termix 工作階段傳送至隧道服務,因為您的瀏覽器將透過與 Termix 服務相同的主機名稱存取該服務。 Cookie 會忽略連接埠號,因此無法區分兩者。請使用 Termix 桌面應用程序,或在本機上開啟 Termix。", + "directSharesSessionCookie": "開啟此端點會將您的 Termix 會話傳送到該端點,因為您的瀏覽器造訪的是 Termix 所在的相同網站。 Cookie 會忽略連接埠號,因此不同的連接埠號碼並不代表不同的身分。請使用 Termix 桌面應用程序,或使用不同的主機名稱存取此 Web UI。", "retry": "重試", "reload": "重新載入", - "copyUrl": "Copy URL", - "urlCopied": "URL copied", - "copyFailed": "Failed to copy URL", + "copyUrl": "複製連結", + "urlCopied": "複製的網址", + "copyFailed": "複製 URL 失敗", "openExternally": "以外部編輯器開啟", - "isolationUnavailable": "This browser cannot isolate web endpoints from your Termix session. Use a browser with credentialless iframe support.", - "isolationNotice": "Embedded pages use an isolated session. For pages requiring storage or popup sign-in, use an isolated window in the desktop app.", - "openIsolatedWindow": "Open isolated window" + "isolationUnavailable": "此瀏覽器無法將 Web 端點與您的 Termix 工作階段隔離。請使用支援無需憑證的 iframe 的瀏覽器。", + "isolationNotice": "嵌入式頁面使用獨立的會話。對於需要儲存資料或彈出式登入的頁面,請在桌面應用程式中使用獨立的視窗。", + "openIsolatedWindow": "打開隔離視窗" }, "hosts": { - "tabWebUi": "Web UI", - "webUiEndpointLabel": "Endpoint {{number}}", - "webUiIntegration": "Web UI", - "webUiEndpointsSection": "Endpoints", - "webUiNoEndpoints": "No web endpoints yet. Use Add endpoint to create one.", - "webUiEndpointsDisabled": "Turn on Web UI above to add endpoints.", - "webUiRequirementsText": "A direct endpoint is opened by your browser, so its port must be reachable from here. An SSH tunnel is opened by Termix over this host's SSH connection instead, so the port only has to be reachable from the host.", - "enableWebUi": "Enable web endpoints", - "enableWebUiDesc": "Open this host's web interfaces from the sidebar.", - "webUiAddEndpoint": "Add endpoint", + "tabWebUi": "Web 使用者介面", + "webUiEndpointLabel": "端點 {{number}}", + "webUiIntegration": "Web 使用者介面", + "webUiEndpointsSection": "終點", + "webUiNoEndpoints": "暫無 Web 端點。請使用“新增端點”功能建立一個。", + "webUiEndpointsDisabled": "啟用上方的 Web UI 以新增端點。", + "webUiRequirementsText": "瀏覽器會開啟直接端點,因此其連接埠必須可從此處存取。而 Termix 則會透過此主機的 SSH 連線開啟一個 SSH 隧道,因此該連接埠只需可從主機存取即可。", + "enableWebUi": "啟用 Web 端點", + "enableWebUiDesc": "從側邊欄開啟此主機的網頁介面。", + "webUiAddEndpoint": "新增端點", "webUiAddress": "位址", - "webUiOpening": "Opening", - "webUiBindHostDesc": "Where the backend binds the forward. Leave blank for 127.0.0.1, which only the machine running Termix can reach.", - "webUiBindHostExposed": "This address is reachable beyond the Termix machine, so anyone who can reach the port gets this web UI with no login.", + "webUiOpening": "開場", + "webUiBindHostDesc": "後端綁定到前向路由的位置。如果是 127.0.0.1,則留空,因為只有執行 Termix 的機器才能存取該位址。", + "webUiBindHostExposed": "該位址在 Termix 機器之外也是可存取的,因此任何能夠存取該連接埠的人都可以無需登入即可使用此 Web UI。", "webUiLocalPort": "本機連接埠", - "webUiLocalPortAuto": "Automatic", - "webUiLocalPortDesc": "Which port the forward listens on. Leave blank to let the system pick, or set one when the port has to be known in advance, such as a container that publishes it.", - "webUiNewEndpointLabel": "New endpoint", + "webUiLocalPortAuto": "自動的", + "webUiLocalPortDesc": "轉送監聽哪個連接埠。留空讓系統自動選擇,或在需要預先知道連接埠的情況下(例如容器發佈連接埠時)設定一個連接埠。", + "webUiNewEndpointLabel": "新端點", "webUiLabel": "標籤", - "webUiScheme": "Scheme", + "webUiScheme": "方案", "webUiPort": "連接埠", "webUiPath": "路徑", - "webUiAccess": "Access", + "webUiAccess": "使用權", "webUiAccessDirect": "直接", - "webUiAccessTunnel": "SSH tunnel", - "webUiAccessTunnelUnavailable": "An SSH tunnel needs SSH enabled on this host and a connection origin of this device.", - "webUiRender": "Open in", - "webUiRenderExternal": "Isolated desktop window", - "webUiRenderEmbedded": "Termix tab", - "webUiRenderEmbeddedDesc": "Embedding is best effort: some web interfaces refuse to load in a frame, and a login that relies on same-site cookies may loop. The external browser always works.", + "webUiAccessTunnel": "SSH隧道", + "webUiAccessTunnelUnavailable": "SSH隧道需要在此主機上啟用SSH,且連線來源必須為該裝置。", + "webUiRender": "打開", + "webUiRenderExternal": "隔離的桌面視窗", + "webUiRenderEmbedded": "Termix 選項卡", + "webUiRenderEmbeddedDesc": "嵌入功能只能盡力而為:某些網頁介面無法在框架中加載,依賴同網站 Cookie 的登入可能會陷入循環。外部瀏覽器始終有效。", "webUiIgnoreCert": "允許無效的憑證", - "webUiIgnoreCertDesc": "Direct endpoints only. Loopback is already exempt, so this has no effect on tunnel endpoints.", - "webUiRemoveEndpoint": "Remove endpoint", - "webUiOpenFailed": "Failed to open the web endpoint", + "webUiIgnoreCertDesc": "僅限直接端點。環回介面已獲豁免,因此對隧道端點沒有影響。", + "webUiRemoveEndpoint": "移除端點", + "webUiOpenFailed": "開啟 Web 端點失敗", "bindHost": "綁定主機" } } diff --git a/plugins/webauthn/locales/translated/bn_BD.json b/plugins/webauthn/locales/translated/bn_BD.json index 18248e606..b51443a7d 100644 --- a/plugins/webauthn/locales/translated/bn_BD.json +++ b/plugins/webauthn/locales/translated/bn_BD.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "পাসকি", + "signIn": "পাসকি দিয়ে সাইন ইন করুন", + "loginFailed": "পাসকি লগইন ব্যর্থ হয়েছে", + "description": "পাসওয়ার্ড ছাড়া সাইন ইন করতে WebAuthn/FIDO2 ক্রেডেনশিয়াল ব্যবহার করুন।", + "namePlaceholder": "পাসকি নাম", + "defaultName": "পাসকি", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "পছন্দের", + "required": "প্রয়োজনীয়", + "discouraged": "হতাশ" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "পাসকি যোগ করুন", + "none": "কোনো পাসকি নিবন্ধিত নেই।", + "added": "পাসকি যোগ করা হয়েছে", + "addFailed": "পাসকি যোগ করতে ব্যর্থ হয়েছে", + "delete": "পাসকি মুছুন", + "deleted": "পাসকি মুছে ফেলা হয়েছে", + "deleteFailed": "পাসকি মুছে ফেলতে ব্যর্থ হয়েছে", + "unknownDevice": "অজানা", + "synced": "সিঙ্ক করা" } diff --git a/plugins/webauthn/locales/translated/hi_IN.json b/plugins/webauthn/locales/translated/hi_IN.json index 61fee77f8..e43387596 100644 --- a/plugins/webauthn/locales/translated/hi_IN.json +++ b/plugins/webauthn/locales/translated/hi_IN.json @@ -4,7 +4,7 @@ "loginFailed": "पासकी लॉगिन विफल", "description": "बिना पासवर्ड साइन इन करने के लिए WebAuthn/FIDO2 क्रेडेंशियल का उपयोग करें", "namePlaceholder": "पासकी नाम", - "defaultName": "Passkey", + "defaultName": "सर्व-कुंजी", "uv": { "preferred": "पसंदीदा", "required": "आवश्यक", @@ -14,9 +14,9 @@ "none": "कोई पासकी पंजीकृत नहीं है।", "added": "पासकी जोड़ी गई", "addFailed": "पासकी जोड़ने में विफल", - "delete": "Delete passkey", + "delete": "पासकी हटाएं", "deleted": "पासकी हटाई गई", "deleteFailed": "पासकी हटाने में विफल", "unknownDevice": "अज्ञात", - "synced": "synced" + "synced": "सिंक किया गया" } diff --git a/plugins/webauthn/locales/translated/id_ID.json b/plugins/webauthn/locales/translated/id_ID.json index 18248e606..aee017e35 100644 --- a/plugins/webauthn/locales/translated/id_ID.json +++ b/plugins/webauthn/locales/translated/id_ID.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Kode akses", + "signIn": "Masuk dengan kata sandi", + "loginFailed": "Login dengan kata sandi gagal.", + "description": "Gunakan kredensial WebAuthn/FIDO2 untuk masuk tanpa kata sandi.", + "namePlaceholder": "Nama kata sandi", + "defaultName": "Kode sandi", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "Lebih disukai", + "required": "Diperlukan", + "discouraged": "Berkecil hati" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Tambahkan Kata Sandi", + "none": "Tidak ada kata sandi yang terdaftar.", + "added": "Kata sandi telah ditambahkan", + "addFailed": "Gagal menambahkan kata sandi.", + "delete": "Hapus kata sandi", + "deleted": "Kata sandi telah dihapus.", + "deleteFailed": "Gagal menghapus kata sandi.", + "unknownDevice": "tidak dikenal", + "synced": "disinkronkan" } diff --git a/plugins/webauthn/locales/translated/nl_NL.json b/plugins/webauthn/locales/translated/nl_NL.json index 18248e606..c80dec254 100644 --- a/plugins/webauthn/locales/translated/nl_NL.json +++ b/plugins/webauthn/locales/translated/nl_NL.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Wachtwoorden", + "signIn": "Aanmelden met wachtwoord", + "loginFailed": "Aanmelden met wachtwoord mislukt", + "description": "Gebruik WebAuthn/FIDO2-gegevens om zonder wachtwoord in te loggen.", + "namePlaceholder": "Wachtwoordnaam", + "defaultName": "Wachtwoord", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "Voorkeur", + "required": "Vereist", + "discouraged": "Ontmoedigd" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Voeg wachtwoord toe", + "none": "Er zijn geen wachtwoorden geregistreerd.", + "added": "Wachtwoord toegevoegd", + "addFailed": "Wachtwoord toevoegen mislukt", + "delete": "Wachtwoord verwijderen", + "deleted": "Wachtwoord verwijderd", + "deleteFailed": "Het verwijderen van de toegangscode is mislukt.", + "unknownDevice": "onbekend", + "synced": "gesynchroniseerd" } diff --git a/plugins/webauthn/locales/translated/no_NO.json b/plugins/webauthn/locales/translated/no_NO.json index 6aee54486..7f85eee4a 100644 --- a/plugins/webauthn/locales/translated/no_NO.json +++ b/plugins/webauthn/locales/translated/no_NO.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Passord", + "signIn": "Logg inn med passord", + "loginFailed": "Innlogging med passord mislyktes", + "description": "Bruk WebAuthn/FIDO2-legitimasjon for å logge på uten passord", + "namePlaceholder": "Navn på passord", + "defaultName": "Tilgangsnøkkel", "uv": { - "preferred": "Preferred", + "preferred": "Foretrukket", "required": "Påkrevd", - "discouraged": "Discouraged" + "discouraged": "Motløs" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", + "add": "Legg til tilgangsnøkkel", + "none": "Ingen passord registrert.", + "added": "Tilgangsnøkkel lagt til", + "addFailed": "Kunne ikke legge til passord", + "delete": "Slett passord", + "deleted": "Tilgangsnøkkel slettet", + "deleteFailed": "Kunne ikke slette passordet", "unknownDevice": "ukjent", - "synced": "synced" + "synced": "synkronisert" } diff --git a/plugins/webauthn/locales/translated/pl_PL.json b/plugins/webauthn/locales/translated/pl_PL.json index a1e0962f4..b4db69378 100644 --- a/plugins/webauthn/locales/translated/pl_PL.json +++ b/plugins/webauthn/locales/translated/pl_PL.json @@ -4,7 +4,7 @@ "loginFailed": "Nie udało się zalogować za pomocą klucza dostępu", "description": "Używaj poświadczeń WebAuthn/FIDO2, aby logować się bez hasła", "namePlaceholder": "Nazwa klucza dostępu", - "defaultName": "Passkey", + "defaultName": "Klucz uniwersalny", "uv": { "preferred": "Preferowane", "required": "Wymagane", @@ -14,9 +14,9 @@ "none": "Nie zarejestrowano żadnych kluczy dostępu.", "added": "Dodano klucz dostępu", "addFailed": "Nie udało się dodać klucza dostępu", - "delete": "Delete passkey", + "delete": "Usuń klucz dostępu", "deleted": "Usunięto klucz dostępu", "deleteFailed": "Nie udało się usunąć klucza dostępu", "unknownDevice": "nieznany", - "synced": "synced" + "synced": "zsynchronizowany" } diff --git a/plugins/webauthn/locales/translated/pt_BR.json b/plugins/webauthn/locales/translated/pt_BR.json index b9360d183..606546897 100644 --- a/plugins/webauthn/locales/translated/pt_BR.json +++ b/plugins/webauthn/locales/translated/pt_BR.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Senhas", + "signIn": "Faça login com a chave de acesso.", + "loginFailed": "Falha no login com a chave de acesso", + "description": "Use as credenciais WebAuthn/FIDO2 para fazer login sem senha.", + "namePlaceholder": "Nome da chave de acesso", + "defaultName": "Chave de acesso", "uv": { - "preferred": "Preferred", + "preferred": "Preferido", "required": "Obrigatório", - "discouraged": "Discouraged" + "discouraged": "Desencorajado" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Adicionar chave de acesso", + "none": "Nenhuma chave de acesso registrada.", + "added": "Senha adicionada", + "addFailed": "Falha ao adicionar a chave de acesso.", + "delete": "Excluir chave de acesso", + "deleted": "Senha excluída", + "deleteFailed": "Falha ao excluir a chave de acesso.", + "unknownDevice": "desconhecido", + "synced": "sincronizado" } diff --git a/plugins/webauthn/locales/translated/pt_PT.json b/plugins/webauthn/locales/translated/pt_PT.json index 68aceb3cd..856f9e3d5 100644 --- a/plugins/webauthn/locales/translated/pt_PT.json +++ b/plugins/webauthn/locales/translated/pt_PT.json @@ -4,7 +4,7 @@ "loginFailed": "Falha no início de sessão com passkey", "description": "Utilize credenciais WebAuthn/FIDO2 para iniciar sessão sem palavra-passe", "namePlaceholder": "Nome da passkey", - "defaultName": "Passkey", + "defaultName": "Chave de acesso", "uv": { "preferred": "Preferencial", "required": "Obrigatório", @@ -14,9 +14,9 @@ "none": "Nenhuma passkey registada.", "added": "Passkey adicionada", "addFailed": "Falha ao adicionar passkey", - "delete": "Delete passkey", + "delete": "Apagar chave de acesso", "deleted": "Passkey eliminada", "deleteFailed": "Falha ao eliminar chave de acesso", "unknownDevice": "desconhecido", - "synced": "synced" + "synced": "sincronizado" } diff --git a/plugins/webauthn/locales/translated/ru_RU.json b/plugins/webauthn/locales/translated/ru_RU.json index 8c9b0ffef..23477f76c 100644 --- a/plugins/webauthn/locales/translated/ru_RU.json +++ b/plugins/webauthn/locales/translated/ru_RU.json @@ -4,7 +4,7 @@ "loginFailed": "Вход по ключу не удался", "description": "Используйте учётные данные WebAuthn/FIDO2 для входа без пароля", "namePlaceholder": "Название ключа доступа", - "defaultName": "Passkey", + "defaultName": "Ключ доступа", "uv": { "preferred": "Предпочтительно", "required": "Обязательно", @@ -14,9 +14,9 @@ "none": "Нет зарегистрированных ключей доступа.", "added": "Ключ доступа добавлен", "addFailed": "Не удалось добавить ключ доступа", - "delete": "Delete passkey", + "delete": "Удалить пароль", "deleted": "Ключ доступа удалён", "deleteFailed": "Ошибка удаления ключа доступа", "unknownDevice": "неизвестно", - "synced": "synced" + "synced": "синхронизировано" } diff --git a/plugins/webauthn/locales/translated/sr_SP.json b/plugins/webauthn/locales/translated/sr_SP.json index 18248e606..5451804b7 100644 --- a/plugins/webauthn/locales/translated/sr_SP.json +++ b/plugins/webauthn/locales/translated/sr_SP.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Лозинке", + "signIn": "Пријавите се помоћу лозинке", + "loginFailed": "Пријава лозинком није успела", + "description": "Користите WebAuthn/FIDO2 акредитиве за пријаву без лозинке", + "namePlaceholder": "Назив лозинке", + "defaultName": "Лозинка", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "Преферирано", + "required": "Обавезно", + "discouraged": "Обесхрабрено" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Додај лозинку", + "none": "Није регистрована ниједна лозинка.", + "added": "Лозинка је додата", + "addFailed": "Додавање лозинке није успело", + "delete": "Обриши шифру", + "deleted": "Лозинка је обрисана", + "deleteFailed": "Брисање лозинке није успело", + "unknownDevice": "непознато", + "synced": "синхронизовано" } diff --git a/plugins/webauthn/locales/translated/sv_SE.json b/plugins/webauthn/locales/translated/sv_SE.json index 18248e606..ce975a96e 100644 --- a/plugins/webauthn/locales/translated/sv_SE.json +++ b/plugins/webauthn/locales/translated/sv_SE.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Lösenord", + "signIn": "Logga in med lösenord", + "loginFailed": "Inloggning med lösenord misslyckades", + "description": "Använd WebAuthn/FIDO2-inloggningsuppgifter för att logga in utan lösenord", + "namePlaceholder": "Lösenordsnamn", + "defaultName": "Lösenord", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "Föredragen", + "required": "Nödvändig", + "discouraged": "Avskräckt" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Lägg till lösenord", + "none": "Inga lösennycklar registrerade.", + "added": "Lösenord tillagt", + "addFailed": "Misslyckades med att lägga till lösenord", + "delete": "Ta bort lösenord", + "deleted": "Lösenordet raderat", + "deleteFailed": "Misslyckades med att ta bort lösenordet", + "unknownDevice": "okänd", + "synced": "synkroniserad" } diff --git a/plugins/webauthn/locales/translated/th_TH.json b/plugins/webauthn/locales/translated/th_TH.json index 18248e606..c0baa3128 100644 --- a/plugins/webauthn/locales/translated/th_TH.json +++ b/plugins/webauthn/locales/translated/th_TH.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "รหัสผ่าน", + "signIn": "ลงชื่อเข้าใช้ด้วยรหัสผ่าน", + "loginFailed": "การเข้าสู่ระบบด้วยรหัสผ่านล้มเหลว", + "description": "ใช้ข้อมูลรับรอง WebAuthn/FIDO2 เพื่อเข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่าน", + "namePlaceholder": "ชื่อรหัสผ่าน", + "defaultName": "กุญแจผี", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "ที่ต้องการ", + "required": "ที่จำเป็น", + "discouraged": "ท้อใจ" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "เพิ่มรหัสผ่าน", + "none": "ไม่มีการลงทะเบียนรหัสผ่านใดๆ", + "added": "เพิ่มรหัสผ่านแล้ว", + "addFailed": "ไม่สามารถเพิ่มรหัสผ่านได้", + "delete": "ลบรหัสผ่าน", + "deleted": "รหัสผ่านถูกลบแล้ว", + "deleteFailed": "ไม่สามารถลบรหัสผ่านได้", + "unknownDevice": "ไม่ทราบ", + "synced": "ซิงค์แล้ว" } diff --git a/plugins/webauthn/locales/translated/tr_TR.json b/plugins/webauthn/locales/translated/tr_TR.json index 3e5505b18..754ad2be2 100644 --- a/plugins/webauthn/locales/translated/tr_TR.json +++ b/plugins/webauthn/locales/translated/tr_TR.json @@ -4,7 +4,7 @@ "loginFailed": "Passkey girişi başarısız oldu", "description": "Parola olmadan oturum açmak için WebAuthn/FIDO2 kimlik bilgilerini kullanın", "namePlaceholder": "Geçiş anahtarı adı", - "defaultName": "Passkey", + "defaultName": "Parola", "uv": { "preferred": "Tercih edilen", "required": "Gerekli", @@ -14,9 +14,9 @@ "none": "Kayıtlı geçiş anahtarı yok.", "added": "Geçiş anahtarı eklendi", "addFailed": "Geçiş anahtarı eklenemedi", - "delete": "Delete passkey", + "delete": "Parolayı sil", "deleted": "Geçiş anahtarı silindi", "deleteFailed": "Geçiş anahtarı silinemedi", "unknownDevice": "bilinmiyor", - "synced": "synced" + "synced": "senkronize edildi" } diff --git a/plugins/webauthn/locales/translated/uk_UA.json b/plugins/webauthn/locales/translated/uk_UA.json index 18248e606..f08def24f 100644 --- a/plugins/webauthn/locales/translated/uk_UA.json +++ b/plugins/webauthn/locales/translated/uk_UA.json @@ -1,22 +1,22 @@ { - "title": "Passkeys", - "signIn": "Sign in with passkey", - "loginFailed": "Passkey login failed", - "description": "Use WebAuthn/FIDO2 credentials to sign in without a password", - "namePlaceholder": "Passkey name", - "defaultName": "Passkey", + "title": "Ключі доступу", + "signIn": "Увійти за допомогою ключа доступу", + "loginFailed": "Не вдалося ввійти з ключем доступу", + "description": "Використовуйте облікові дані WebAuthn/FIDO2 для входу без пароля", + "namePlaceholder": "Ім'я ключа доступу", + "defaultName": "Ключ доступу", "uv": { - "preferred": "Preferred", - "required": "Required", - "discouraged": "Discouraged" + "preferred": "Бажаний", + "required": "Обов'язково", + "discouraged": "Знеохочений" }, - "add": "Add Passkey", - "none": "No passkeys registered.", - "added": "Passkey added", - "addFailed": "Failed to add passkey", - "delete": "Delete passkey", - "deleted": "Passkey deleted", - "deleteFailed": "Failed to delete passkey", - "unknownDevice": "unknown", - "synced": "synced" + "add": "Додати пароль", + "none": "Не зареєстровано ключів доступу.", + "added": "Ключ доступу додано", + "addFailed": "Не вдалося додати ключ доступу", + "delete": "Видалити ключ доступу", + "deleted": "Ключ доступу видалено", + "deleteFailed": "Не вдалося видалити ключ доступу", + "unknownDevice": "невідомий", + "synced": "синхронізовано" } diff --git a/plugins/webauthn/locales/translated/vi_VN.json b/plugins/webauthn/locales/translated/vi_VN.json index c587699e2..1f570f661 100644 --- a/plugins/webauthn/locales/translated/vi_VN.json +++ b/plugins/webauthn/locales/translated/vi_VN.json @@ -4,7 +4,7 @@ "loginFailed": "Đăng nhập bằng passkey thất bại", "description": "Sử dụng thông tin đăng nhập WebAuthn/FIDO2 để đăng nhập không cần mật khẩu", "namePlaceholder": "Tên passkey", - "defaultName": "Passkey", + "defaultName": "Mật khẩu", "uv": { "preferred": "Ưu tiên", "required": "Bắt buộc", @@ -14,9 +14,9 @@ "none": "Chưa đăng ký passkey nào.", "added": "Đã thêm Passkey", "addFailed": "Không thêm được Passkey", - "delete": "Delete passkey", + "delete": "Xóa mật khẩu", "deleted": "Đã xóa Passkey", "deleteFailed": "Xóa passkey thất bại", "unknownDevice": "không xác định", - "synced": "synced" + "synced": "đã đồng bộ" } diff --git a/plugins/webauthn/locales/translated/zh_CN.json b/plugins/webauthn/locales/translated/zh_CN.json index bcd79b34b..526636c25 100644 --- a/plugins/webauthn/locales/translated/zh_CN.json +++ b/plugins/webauthn/locales/translated/zh_CN.json @@ -4,7 +4,7 @@ "loginFailed": "通行密钥登录失败", "description": "使用 WebAuthn/FIDO2 凭据进行无密码登录", "namePlaceholder": "通行密钥名称", - "defaultName": "Passkey", + "defaultName": "通行密钥", "uv": { "preferred": "首选", "required": "必需", @@ -14,9 +14,9 @@ "none": "未注册通行密钥。", "added": "通行密钥已添加", "addFailed": "添加通行密钥失败", - "delete": "Delete passkey", + "delete": "删除密码", "deleted": "通行密钥已删除", "deleteFailed": "删除通行密钥失败", "unknownDevice": "未知", - "synced": "synced" + "synced": "同步" } diff --git a/plugins/webauthn/locales/translated/zh_TW.json b/plugins/webauthn/locales/translated/zh_TW.json index 4a4b05004..eebd0fcfa 100644 --- a/plugins/webauthn/locales/translated/zh_TW.json +++ b/plugins/webauthn/locales/translated/zh_TW.json @@ -4,7 +4,7 @@ "loginFailed": "Passkey 登入失敗", "description": "使用 WebAuthn/FIDO2 憑證無需密碼即可登入", "namePlaceholder": "通行金鑰名稱", - "defaultName": "Passkey", + "defaultName": "通行金鑰", "uv": { "preferred": "偏好", "required": "需要", @@ -14,9 +14,9 @@ "none": "尚未註冊通行金鑰。", "added": "通行金鑰已新增", "addFailed": "無法新增通行金鑰", - "delete": "Delete passkey", + "delete": "刪除密碼", "deleted": "通行金鑰已刪除", "deleteFailed": "刪除通行密鑰失敗", "unknownDevice": "未知", - "synced": "synced" + "synced": "同步" } diff --git a/plugins/workspaces/locales/translated/bn_BD.json b/plugins/workspaces/locales/translated/bn_BD.json index b74108f09..6469c040f 100644 --- a/plugins/workspaces/locales/translated/bn_BD.json +++ b/plugins/workspaces/locales/translated/bn_BD.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "title": "কর্মক্ষেত্র", + "saveCurrent": "বর্তমান সংরক্ষণ করুন", + "saveCurrentTitle": "বর্তমান ওয়ার্কস্পেস সংরক্ষণ করুন", + "saveCurrentDescription": "প্রতিটি খোলা ট্যাব, স্প্লিট লেআউট এবং পেন বিন্যাসকে একটি নতুন নামযুক্ত ওয়ার্কস্পেস হিসেবে সংরক্ষণ করুন।", + "nameLabel": "নাম", + "namePlaceholder": "যেমন, প্রোডাকশন ডিবাগিং", + "nameRequired": "ওয়ার্কস্পেসের নাম আবশ্যক।", + "colorLabel": "রঙ", + "workspaceCreated": "ওয়ার্কস্পেস সংরক্ষিত", + "workspaceUpdated": "ওয়ার্কস্পেস আপডেট করা হয়েছে", + "workspaceDeleted": "ওয়ার্কস্পেস মুছে ফেলা হয়েছে", + "workspaceDuplicated": "ওয়ার্কস্পেস নকল করা হয়েছে", + "saveFailed": "ওয়ার্কস্পেস সংরক্ষণ করতে ব্যর্থ হয়েছে", + "updateFailed": "ওয়ার্কস্পেস আপডেট করতে ব্যর্থ হয়েছে", + "deleteFailed": "ওয়ার্কস্পেস মুছে ফেলা ব্যর্থ হয়েছে", + "duplicateFailed": "ওয়ার্কস্পেস নকল করতে ব্যর্থ হয়েছে", + "loadFailed": "ওয়ার্কস্পেস লোড করতে ব্যর্থ হয়েছে", + "applyFailed": "ওয়ার্কস্পেস প্রয়োগ করতে ব্যর্থ হয়েছে", + "deleteWorkspaceTitle": "ওয়ার্কস্পেস মুছুন", + "deleteWorkspaceDescription": "আপনি কি \"{{name}}\" মুছে ফেলতে নিশ্চিত? এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", + "noWorkspaces": "এখনো কোনো ওয়ার্কস্পেস সেভ করা হয়নি। কাজ শুরু করার জন্য আপনার বর্তমান ট্যাব বিন্যাসটি সেভ করুন।", + "tabCount": "{{count}} ট্যাব", + "tabCount_other": "{{count}} ট্যাব", + "apply": "আবেদন করুন", + "applyConfirmTitle": "ওয়ার্কস্পেস প্রয়োগ করুন", + "applyConfirmDescription": "\"{{name}}\" প্রয়োগ করলে আপনার বর্তমান ট্যাবগুলি বন্ধ হয়ে যাবে এবং সেগুলির পরিবর্তে এই ওয়ার্কস্পেসের সংরক্ষিত বিন্যাসটি প্রদর্শিত হবে। আপনার বর্তমান লেআউটে করা অসংরক্ষিত পরিবর্তনগুলি হারিয়ে যাবে।", + "applyConfirmButton": "ওয়ার্কস্পেস প্রয়োগ করুন", + "updateWithCurrent": "বর্তমান তথ্য দিয়ে আপডেট করুন", + "updateWithCurrentConfirm": "আপনার বর্তমান ট্যাব বিন্যাস দিয়ে \"{{name}}\" ওভাররাইট করবেন?", + "rename": "নাম পরিবর্তন", + "duplicate": "নকল", + "duplicateNameSuffix": "{{name}} (অনুলিপি)", + "setDefault": "ডিফল্ট হিসাবে সেট করা হয়েছে", + "unsetDefault": "ডিফল্ট হিসেবে অপসারণ করুন", + "defaultBadge": "ডিফল্ট", + "lastSession": "শেষ অধিবেশন", + "lastSessionDescription": "আপনার সর্বশেষ ট্যাব বিন্যাস অনুযায়ী স্বয়ংক্রিয়ভাবে আপডেট হয়। আপনার খোলা ট্যাবগুলো পুনরুদ্ধার করতে এটি প্রয়োগ করুন।", + "lastUsed": "সর্বশেষ ব্যবহৃত {{time}}", + "neverUsed": "কখনো প্রয়োগ করা হয়নি", + "tabsSkipped": "ওয়ার্কস্পেস প্রয়োগ করা হয়েছে, কিন্তু {{count}} টি ট্যাব বাদ দেওয়া হয়েছে কারণ তাদের হোস্ট আর বিদ্যমান নেই: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}সেকেন্ড আগে", + "minutes": "{{count}}মিনিট আগে", + "hours": "{{count}}ঘণ্টা আগে", + "days": "{{count}}দিন আগে" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "কর্মক্ষেত্র" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "কর্মক্ষেত্র", + "workflow_workspaces_desc": "খোলা ট্যাবগুলো সংরক্ষণ করুন এবং পরে সম্পূর্ণ লেআউটটি আবার খুলুন।" }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "ওয়ার্কস্পেস ব্যবহার করুন", + "description": "সংরক্ষিত ট্যাব লেআউটগুলি সংরক্ষণ করুন, প্রয়োগ করুন এবং পরিচালনা করুন।" } }, "hosts": { - "docsLink": "View docs" + "docsLink": "নথি দেখুন" } } diff --git a/plugins/workspaces/locales/translated/hi_IN.json b/plugins/workspaces/locales/translated/hi_IN.json index 9ed19cda1..aa2745510 100644 --- a/plugins/workspaces/locales/translated/hi_IN.json +++ b/plugins/workspaces/locales/translated/hi_IN.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "कार्यस्थानों", + "saveCurrent": "वर्तमान सहेजें", + "saveCurrentTitle": "वर्तमान कार्यक्षेत्र सहेजें", + "saveCurrentDescription": "प्रत्येक खुले टैब, स्प्लिट लेआउट और पेन व्यवस्था को एक नए नाम वाले वर्कस्पेस के रूप में सहेजें।", "nameLabel": "नाम", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "उदाहरण के लिए, प्रोडक्शन डिबगिंग", + "nameRequired": "कार्यक्षेत्र का नाम आवश्यक है", "colorLabel": "रंग", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "workspaceCreated": "कार्यक्षेत्र सहेजा गया", + "workspaceUpdated": "कार्यक्षेत्र अपडेट किया गया", + "workspaceDeleted": "कार्यक्षेत्र हटा दिया गया", + "workspaceDuplicated": "कार्यक्षेत्र की प्रतिकृति बनाई गई", + "saveFailed": "कार्यक्षेत्र को सहेजने में विफल", + "updateFailed": "वर्कस्पेस को अपडेट करने में विफल", + "deleteFailed": "वर्कस्पेस को हटाने में विफल", + "duplicateFailed": "वर्कस्पेस को डुप्लिकेट करने में विफल", + "loadFailed": "वर्कस्पेस लोड करने में विफल", + "applyFailed": "कार्यक्षेत्र लागू करने में विफल", + "deleteWorkspaceTitle": "वर्कस्पेस हटाएं", + "deleteWorkspaceDescription": "क्या आप वाकई \"{{name}}\" को हटाना चाहते हैं? इसे पूर्ववत नहीं किया जा सकता।", + "noWorkspaces": "अभी तक कोई वर्कस्पेस सेव नहीं किया गया है। शुरू करने के लिए अपनी वर्तमान टैब व्यवस्था को सेव करें।", + "tabCount": "{{count}} टैब", + "tabCount_other": "{{count}} टैब", "apply": "लागू करें", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "वर्कस्पेस लागू करें", + "applyConfirmDescription": "\"{{name}}\" लागू करने से आपके वर्तमान टैब बंद हो जाएंगे और उनकी जगह इस वर्कस्पेस की सहेजी गई व्यवस्था लागू हो जाएगी। आपके वर्तमान लेआउट में किए गए असहयोगी परिवर्तन नष्ट हो जाएंगे।", + "applyConfirmButton": "वर्कस्पेस लागू करें", + "updateWithCurrent": "वर्तमान जानकारी से अपडेट करें", + "updateWithCurrentConfirm": "क्या आप \"{{name}}\" को अपनी वर्तमान टैब व्यवस्था से बदलना चाहेंगे?", "rename": "नाम बदलें", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "डुप्लिकेट", + "duplicateNameSuffix": "{{name}} (कॉपी)", + "setDefault": "डिफाल्ट के रूप में सेट", + "unsetDefault": "डिफ़ॉल्ट के रूप में हटाएँ", + "defaultBadge": "गलती करना", + "lastSession": "पिछला सत्र", + "lastSessionDescription": "आपके टैब की नवीनतम व्यवस्था के साथ स्वचालित रूप से अपडेट हो जाता है। इसे लागू करके आप अपने खुले हुए टैब को पुनः प्राप्त कर सकते हैं।", + "lastUsed": "अंतिम बार उपयोग किया गया {{time}}", + "neverUsed": "कभी आवेदन नहीं किया", + "tabsSkipped": "वर्कस्पेस लागू हो गया, लेकिन {{count}} टैब छोड़ दिए गए क्योंकि उनका होस्ट अब मौजूद नहीं है: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}सेकंड पहले", "minutes": "{{count}}m पहले", "hours": "{{count}}h पहले", "days": "{{count}}d पहले" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "कार्यस्थानों" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "कार्यस्थानों", + "workflow_workspaces_desc": "खुले हुए टैबों के एक सेट को सेव करें और बाद में पूरे लेआउट को दोबारा खोलें।" }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "वर्कस्पेस का उपयोग करें", + "description": "सेव किए गए टैब लेआउट को सेव करें, लागू करें और प्रबंधित करें।" } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/id_ID.json b/plugins/workspaces/locales/translated/id_ID.json index c86d5e5ed..1d43398bb 100644 --- a/plugins/workspaces/locales/translated/id_ID.json +++ b/plugins/workspaces/locales/translated/id_ID.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", + "title": "Ruang kerja", + "saveCurrent": "Simpan Saat Ini", + "saveCurrentTitle": "Simpan Ruang Kerja Saat Ini", + "saveCurrentDescription": "Simpan setiap tab yang terbuka, tata letak terpisah, dan susunan panel sebagai ruang kerja baru yang diberi nama.", + "nameLabel": "Nama", + "namePlaceholder": "misalnya, Debugging Produksi", + "nameRequired": "Nama ruang kerja wajib diisi.", + "colorLabel": "Warna", + "workspaceCreated": "Ruang kerja tersimpan", + "workspaceUpdated": "Ruang kerja diperbarui", + "workspaceDeleted": "Ruang kerja dihapus", + "workspaceDuplicated": "Ruang kerja diduplikasi", + "saveFailed": "Gagal menyimpan ruang kerja", + "updateFailed": "Gagal memperbarui ruang kerja", + "deleteFailed": "Gagal menghapus ruang kerja.", + "duplicateFailed": "Gagal menduplikasi ruang kerja.", + "loadFailed": "Gagal memuat ruang kerja", + "applyFailed": "Gagal menerapkan ruang kerja", + "deleteWorkspaceTitle": "Hapus Ruang Kerja", + "deleteWorkspaceDescription": "Apakah Anda yakin ingin menghapus \"{{name}}\"? Tindakan ini tidak dapat dibatalkan.", + "noWorkspaces": "Belum ada ruang kerja yang tersimpan. Simpan susunan tab Anda saat ini untuk memulai.", "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "tabCount_other": "{{count}} tab", + "apply": "Menerapkan", + "applyConfirmTitle": "Terapkan Ruang Kerja", + "applyConfirmDescription": "Menerapkan \"{{name}}\" akan menutup tab Anda saat ini dan menggantinya dengan susunan yang tersimpan di ruang kerja ini. Perubahan yang belum disimpan pada tata letak Anda saat ini akan hilang.", + "applyConfirmButton": "Terapkan Ruang Kerja", + "updateWithCurrent": "Perbarui dengan yang Terbaru", + "updateWithCurrentConfirm": "Timpa \"{{name}}\" dengan susunan tab Anda saat ini?", + "rename": "Ganti nama", + "duplicate": "Duplikat", + "duplicateNameSuffix": "{{name}} (salinan)", + "setDefault": "Tetapkan sebagai Default", + "unsetDefault": "Hapus sebagai Default", + "defaultBadge": "Bawaan", + "lastSession": "Sesi Terakhir", + "lastSessionDescription": "Diperbarui secara otomatis dengan susunan tab terbaru Anda. Terapkan untuk memulihkan tab yang sebelumnya Anda buka.", + "lastUsed": "Terakhir digunakan {{time}}", + "neverUsed": "Tidak pernah melamar", + "tabsSkipped": "Ruang kerja diterapkan, tetapi {{count}} tab dilewati karena host-nya tidak lagi ada: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}detik yang lalu", "minutes": "{{count}} menit lalu", "hours": "{{count}} jam lalu", "days": "{{count}} detik lalu" @@ -52,19 +52,19 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Ruang kerja" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Ruang kerja", + "workflow_workspaces_desc": "Simpan sekumpulan tab yang terbuka dan buka kembali seluruh tata letak nanti." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Gunakan ruang kerja", + "description": "Simpan, terapkan, dan kelola tata letak tab yang tersimpan." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Lihat dokumen" } } diff --git a/plugins/workspaces/locales/translated/nl_NL.json b/plugins/workspaces/locales/translated/nl_NL.json index b74108f09..5f36ef3e1 100644 --- a/plugins/workspaces/locales/translated/nl_NL.json +++ b/plugins/workspaces/locales/translated/nl_NL.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", + "title": "Werkruimtes", + "saveCurrent": "Huidige opslaan", + "saveCurrentTitle": "Huidige werkruimte opslaan", + "saveCurrentDescription": "Sla elk geopend tabblad, elke gesplitste lay-out en elke vensterindeling op als een nieuwe, benoemde werkruimte.", + "nameLabel": "Naam", + "namePlaceholder": "bijvoorbeeld, productiedebugging", + "nameRequired": "De naam van de werkruimte is verplicht.", + "colorLabel": "Kleur", + "workspaceCreated": "Werkruimte opgeslagen", + "workspaceUpdated": "Werkruimte bijgewerkt", + "workspaceDeleted": "Werkruimte verwijderd", + "workspaceDuplicated": "Werkruimte gedupliceerd", + "saveFailed": "Het opslaan van de werkruimte is mislukt.", + "updateFailed": "Het bijwerken van de werkruimte is mislukt.", + "deleteFailed": "Het verwijderen van de werkruimte is mislukt.", + "duplicateFailed": "Het dupliceren van de werkruimte is mislukt.", + "loadFailed": "Het laden van de werkruimtes is mislukt.", + "applyFailed": "Het toepassen van de werkruimte is mislukt.", + "deleteWorkspaceTitle": "Werkruimte verwijderen", + "deleteWorkspaceDescription": "Weet je zeker dat je \"{{name}}\" wilt verwijderen? Dit kan niet ongedaan gemaakt worden.", + "noWorkspaces": "Er zijn nog geen werkruimtes opgeslagen. Sla je huidige tabbladindeling op om te beginnen.", "tabCount": "{{count}} tab", "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "apply": "Toepassen", + "applyConfirmTitle": "Werkruimte toepassen", + "applyConfirmDescription": "Door \"{{name}}\" toe te passen, worden uw huidige tabbladen gesloten en vervangen door de opgeslagen indeling van deze werkruimte. Niet-opgeslagen wijzigingen in uw huidige lay-out gaan verloren.", + "applyConfirmButton": "Werkruimte toepassen", + "updateWithCurrent": "Update met de huidige", + "updateWithCurrentConfirm": "Wil je \"{{name}}\" overschrijven met je huidige tabindeling?", + "rename": "Naam wijzigen", + "duplicate": "Duplicaat", + "duplicateNameSuffix": "{{name}} (kopiëren)", + "setDefault": "Instellen als standaard", + "unsetDefault": "Verwijderen als standaard", + "defaultBadge": "Standaard", + "lastSession": "Laatste sessie", + "lastSessionDescription": "Wordt automatisch bijgewerkt met uw meest recente tabbladindeling. Gebruik deze instelling om uw geopende tabbladen te herstellen.", + "lastUsed": "Laatst gebruikt {{time}}", + "neverUsed": "Nooit gesolliciteerd", + "tabsSkipped": "Werkruimte toegepast, maar {{count}} tabblad(en) zijn overgeslagen omdat hun host niet meer bestaat: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}s geleden", + "minutes": "{{count}}m geleden", + "hours": "{{count}}uur geleden", + "days": "{{count}}dagen geleden" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Werkruimtes" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Werkruimtes", + "workflow_workspaces_desc": "Sla een set geopende tabbladen op en open de volledige lay-out later opnieuw." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Werkruimtes gebruiken", + "description": "Tabbladindelingen opslaan, toepassen en beheren." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Documenten bekijken" } } diff --git a/plugins/workspaces/locales/translated/no_NO.json b/plugins/workspaces/locales/translated/no_NO.json index dbda624b5..2fe719bf9 100644 --- a/plugins/workspaces/locales/translated/no_NO.json +++ b/plugins/workspaces/locales/translated/no_NO.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "Arbeidsområder", + "saveCurrent": "Lagre gjeldende", + "saveCurrentTitle": "Lagre gjeldende arbeidsområde", + "saveCurrentDescription": "Lagre alle åpne faner, delte oppsett og ruteoppsett som et nytt navngitt arbeidsområde.", "nameLabel": "Navn", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "namePlaceholder": "f.eks. produktfeilsøking", + "nameRequired": "Arbeidsområdenavn er obligatorisk", + "colorLabel": "Farge", + "workspaceCreated": "Arbeidsområdet er lagret", + "workspaceUpdated": "Arbeidsområdet er oppdatert", + "workspaceDeleted": "Arbeidsområdet er slettet", + "workspaceDuplicated": "Arbeidsområdet er duplisert", + "saveFailed": "Kunne ikke lagre arbeidsområdet", + "updateFailed": "Kunne ikke oppdatere arbeidsområdet", + "deleteFailed": "Kunne ikke slette arbeidsområdet", + "duplicateFailed": "Kunne ikke duplisere arbeidsområdet", + "loadFailed": "Kunne ikke laste inn arbeidsområder", + "applyFailed": "Kunne ikke bruke arbeidsområdet", + "deleteWorkspaceTitle": "Slett arbeidsområde", + "deleteWorkspaceDescription": "Er du sikker på at du vil slette «{{name}}»? Dette kan ikke angres.", + "noWorkspaces": "Ingen lagrede arbeidsområder ennå. Lagre den nåværende faneoppsettet for å komme i gang.", + "tabCount": "{{count}} fane", + "tabCount_other": "{{count}} faner", + "apply": "Søke", + "applyConfirmTitle": "Bruk arbeidsområde", + "applyConfirmDescription": "Hvis du bruker «{{name}}», lukkes de nåværende fanene dine og erstattes med den lagrede plasseringen i dette arbeidsområdet. Ulagrede endringer i den nåværende layouten vil gå tapt.", + "applyConfirmButton": "Bruk arbeidsområde", + "updateWithCurrent": "Oppdater med gjeldende", + "updateWithCurrentConfirm": "Vil du overskrive «{{name}}» med din nåværende tabulatorordning?", "rename": "Gi nytt navn", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "Kopiere", + "duplicateNameSuffix": "{{name}} (kopi)", + "setDefault": "Angi som standard", + "unsetDefault": "Fjern som standard", + "defaultBadge": "Misligholde", + "lastSession": "Siste økt", + "lastSessionDescription": "Oppdateres automatisk med den nyeste faneoppsettet ditt. Bruk det for å gjenopprette det du hadde åpent.", + "lastUsed": "Sist brukt {{time}}", + "neverUsed": "Aldri brukt", + "tabsSkipped": "Arbeidsområde brukt, men {{count}} fane(r) ble hoppet over fordi verten deres ikke lenger finnes: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "For {{count}}sekunder siden", + "minutes": "For {{count}}minutter siden", + "hours": "for {{count}}t siden", + "days": "for {{count}}dager siden" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Arbeidsområder" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Arbeidsområder", + "workflow_workspaces_desc": "Lagre et sett med åpne faner og åpne hele layouten på nytt senere." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Bruk arbeidsområder", + "description": "Lagre, bruk og administrer lagrede faneoppsett." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Vis dokumenter" } } diff --git a/plugins/workspaces/locales/translated/pl_PL.json b/plugins/workspaces/locales/translated/pl_PL.json index f66b648e5..ab6ae6af1 100644 --- a/plugins/workspaces/locales/translated/pl_PL.json +++ b/plugins/workspaces/locales/translated/pl_PL.json @@ -41,9 +41,9 @@ "lastSessionDescription": "Automatycznie aktualizowany o najnowszy układ kart. Zastosuj go, aby przywrócić to, co było otwarte.", "lastUsed": "Ostatnio użyte {{time}}", "neverUsed": "Nigdy nie zastosowano", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "tabsSkipped": "Zastosowano obszar roboczy, ale {{count}} kart zostało pominiętych, ponieważ ich host już nie istnieje: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s temu", "minutes": "{{count}} min temu", "hours": "{{count}} godz. temu", "days": "{{count}} dni temu" @@ -60,8 +60,8 @@ }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Użyj obszarów roboczych", + "description": "Zapisz, zastosuj i zarządzaj zapisanymi układami kart." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/pt_BR.json b/plugins/workspaces/locales/translated/pt_BR.json index e4ef39584..96d35530b 100644 --- a/plugins/workspaces/locales/translated/pt_BR.json +++ b/plugins/workspaces/locales/translated/pt_BR.json @@ -2,66 +2,66 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "title": "Espaços de trabalho", + "saveCurrent": "Salvar atual", + "saveCurrentTitle": "Salvar espaço de trabalho atual", + "saveCurrentDescription": "Salve cada aba aberta, layout dividido e disposição de painéis como um novo espaço de trabalho nomeado.", + "nameLabel": "Nome", + "namePlaceholder": "Exemplo: Depuração de Produção", + "nameRequired": "É obrigatório dar um nome ao espaço de trabalho.", + "colorLabel": "Cor", + "workspaceCreated": "Espaço de trabalho salvo", + "workspaceUpdated": "Espaço de trabalho atualizado", + "workspaceDeleted": "Espaço de trabalho excluído", + "workspaceDuplicated": "Espaço de trabalho duplicado", + "saveFailed": "Falha ao salvar o espaço de trabalho", + "updateFailed": "Falha ao atualizar o espaço de trabalho", + "deleteFailed": "Falha ao excluir o espaço de trabalho", + "duplicateFailed": "Falha ao duplicar o espaço de trabalho", + "loadFailed": "Falha ao carregar os espaços de trabalho.", + "applyFailed": "Falha ao aplicar o espaço de trabalho", + "deleteWorkspaceTitle": "Excluir espaço de trabalho", + "deleteWorkspaceDescription": "Tem certeza de que deseja excluir \"{{name}}\"? Esta ação não pode ser desfeita.", + "noWorkspaces": "Ainda não há espaços de trabalho salvos. Salve sua configuração atual de abas para começar.", + "tabCount": "{{count}} aba", + "tabCount_other": "{{count}} abas", + "apply": "Aplicar", + "applyConfirmTitle": "Aplicar Espaço de Trabalho", + "applyConfirmDescription": "Aplicar \"{{name}}\" fechará suas abas atuais e as substituirá pela configuração salva deste espaço de trabalho. Alterações não salvas no seu layout atual serão perdidas.", + "applyConfirmButton": "Aplicar Espaço de Trabalho", + "updateWithCurrent": "Atualizar com as informações atuais", + "updateWithCurrentConfirm": "Substituir \"{{name}}\" pela sua configuração de tabulação atual?", "rename": "Renomear", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "Duplicado", + "duplicateNameSuffix": "{{name}} (copiar)", + "setDefault": "Definir como padrão", + "unsetDefault": "Remover como padrão", + "defaultBadge": "Padrão", + "lastSession": "Última sessão", + "lastSessionDescription": "Atualizado automaticamente com a sua última configuração de abas. Aplique para recuperar o que estava aberto.", + "lastUsed": "Última utilização {{time}}", + "neverUsed": "Nunca aplicado", + "tabsSkipped": "O espaço de trabalho foi aplicado, mas {{count}} abas foram ignoradas porque seu host não existe mais: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}s atrás", + "minutes": "{{count}}m atrás", + "hours": "{{count}}h atrás", + "days": "{{count}}há alguns dias" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Espaços de trabalho" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Espaços de trabalho", + "workflow_workspaces_desc": "Salve um conjunto de abas abertas e reabra todo o layout mais tarde." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Utilize espaços de trabalho", + "description": "Salve, aplique e gerencie layouts de abas salvos." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/pt_PT.json b/plugins/workspaces/locales/translated/pt_PT.json index 39d7bcf95..55b683c0c 100644 --- a/plugins/workspaces/locales/translated/pt_PT.json +++ b/plugins/workspaces/locales/translated/pt_PT.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "Espaços de trabalho", + "saveCurrent": "Guardar atual", + "saveCurrentTitle": "Guardar espaço de trabalho atual", + "saveCurrentDescription": "Guarde cada separador aberto, layout dividido e disposição de painéis como um novo espaço de trabalho nomeado.", "nameLabel": "Nome", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "Exemplo: Depuração de Produção", + "nameRequired": "É obrigatório dar um nome ao espaço de trabalho.", "colorLabel": "Cor", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "workspaceCreated": "Espaço de trabalho guardado", + "workspaceUpdated": "Espaço de trabalho atualizado", + "workspaceDeleted": "Espaço de trabalho excluído", + "workspaceDuplicated": "Espaço de trabalho duplicado", + "saveFailed": "Falha ao guardar o espaço de trabalho", + "updateFailed": "Falha ao atualizar o espaço de trabalho", + "deleteFailed": "Falha ao eliminar o espaço de trabalho", + "duplicateFailed": "Falha ao duplicar o espaço de trabalho", + "loadFailed": "Falha ao carregar os espaços de trabalho.", + "applyFailed": "Falha ao aplicar o espaço de trabalho", + "deleteWorkspaceTitle": "Apagar espaço de trabalho", + "deleteWorkspaceDescription": "Tem a certeza que pretende eliminar \"{{name}}\"? Esta ação não pode ser anulada.", + "noWorkspaces": "Ainda não há espaços de trabalho guardados. Guarde a sua configuração atual de separadores para começar.", + "tabCount": "{{count}} separador", + "tabCount_other": "{{count}} separadores", "apply": "Aplicar", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "Aplicar Espaço de Trabalho", + "applyConfirmDescription": "Aplicar \"{{name}}\" fechará os seus separadores atuais e substituí-los-á pela configuração guardada deste espaço de trabalho. As alterações não guardadas no seu layout atual serão perdidas.", + "applyConfirmButton": "Aplicar Espaço de Trabalho", + "updateWithCurrent": "Atualizar com as informações atuais", + "updateWithCurrentConfirm": "Substituir \"{{name}}\" pela sua configuração de tabulação atual?", "rename": "Renomear", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "Duplicado", + "duplicateNameSuffix": "{{name}} (copiar)", + "setDefault": "Definir como padrão", + "unsetDefault": "Remover como padrão", + "defaultBadge": "Predefinição", + "lastSession": "Última sessão", + "lastSessionDescription": "Atualizado automaticamente com a sua última configuração de separadores. Aplique para recuperar o que estava aberto.", + "lastUsed": "Última utilização {{time}}", + "neverUsed": "Nunca aplicado", + "tabsSkipped": "O espaço de trabalho foi aplicado, mas {{count}} separadores foram ignorados porque o seu host já não existe: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s atrás", "minutes": "há {{count}} min", "hours": "há {{count}} h", "days": "há {{count}} d" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Espaços de trabalho" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Espaços de trabalho", + "workflow_workspaces_desc": "Guarde um conjunto de separadores abertos e reabra todo o layout mais tarde." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Utilize espaços de trabalho", + "description": "Guarde, aplique e gerencie layouts de separadores guardados." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/ru_RU.json b/plugins/workspaces/locales/translated/ru_RU.json index 399c05bc3..cb52548f0 100644 --- a/plugins/workspaces/locales/translated/ru_RU.json +++ b/plugins/workspaces/locales/translated/ru_RU.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "Рабочие места", + "saveCurrent": "Сохранить текущий", + "saveCurrentTitle": "Сохранить текущее рабочее пространство", + "saveCurrentDescription": "Сохраните все открытые вкладки, разделенные окна и расположение панелей в виде новых именованных рабочих областей.", "nameLabel": "Название", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "например, отладка в рабочей среде.", + "nameRequired": "Название рабочей области обязательно для ввода.", "colorLabel": "Цвет", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "workspaceCreated": "Рабочее пространство сохранено", + "workspaceUpdated": "Рабочее пространство обновлено", + "workspaceDeleted": "Рабочее пространство удалено", + "workspaceDuplicated": "Рабочее пространство дублировано", + "saveFailed": "Не удалось сохранить рабочее пространство.", + "updateFailed": "Не удалось обновить рабочее пространство.", + "deleteFailed": "Не удалось удалить рабочее пространство.", + "duplicateFailed": "Не удалось создать дубликат рабочего пространства.", + "loadFailed": "Не удалось загрузить рабочие пространства.", + "applyFailed": "Не удалось применить рабочее пространство", + "deleteWorkspaceTitle": "Удалить рабочее пространство", + "deleteWorkspaceDescription": "Вы уверены, что хотите удалить \"{{name}}\"? Это действие необратимо.", + "noWorkspaces": "Пока нет сохраненных рабочих пространств. Сохраните текущее расположение вкладок, чтобы начать работу.", + "tabCount": "{{count}} вкладка", + "tabCount_other": "{{count}} вкладки", "apply": "Применить", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "Применить рабочее пространство", + "applyConfirmDescription": "Применение \"{{name}}\" закроет текущие вкладки и заменит их сохраненным расположением элементов в этом рабочем пространстве. Несохраненные изменения текущего расположения будут потеряны.", + "applyConfirmButton": "Применить рабочее пространство", + "updateWithCurrent": "Обновить с учетом текущих изменений", + "updateWithCurrentConfirm": "Заменить \"{{name}}\" на текущую компоновку вкладок?", "rename": "Переименовать", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "Дубликат", + "duplicateNameSuffix": "{{name}} (копия)", + "setDefault": "Установить как значение по умолчанию", + "unsetDefault": "Удалить как значение по умолчанию", + "defaultBadge": "По умолчанию", + "lastSession": "Последняя сессия", + "lastSessionDescription": "Автоматическое обновление с учетом вашего последнего расположения вкладок. Примените изменения, чтобы восстановить открытые ранее вкладки.", + "lastUsed": "Последнее использование {{time}}", + "neverUsed": "Никогда не подавал заявку", + "tabsSkipped": "Рабочее пространство применено, но вкладки {{count}} были пропущены, поскольку их хост больше не существует: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}s назад", "minutes": "{{count}}м назад", "hours": "{{count}}ч назад", "days": "{{count}}д назад" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Рабочие места" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Рабочие места", + "workflow_workspaces_desc": "Сохраните набор открытых вкладок и откройте весь интерфейс позже." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Используйте рабочие пространства", + "description": "Сохраняйте, применяйте и управляйте сохраненными макетами вкладок." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/sr_SP.json b/plugins/workspaces/locales/translated/sr_SP.json index b74108f09..ef9c72e8c 100644 --- a/plugins/workspaces/locales/translated/sr_SP.json +++ b/plugins/workspaces/locales/translated/sr_SP.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "title": "Радни простори", + "saveCurrent": "Сачувај тренутно", + "saveCurrentTitle": "Сачувај тренутни радни простор", + "saveCurrentDescription": "Сачувајте сваку отворену картицу, подељени распоред и распоред окна као нови именовани радни простор.", + "nameLabel": "Име", + "namePlaceholder": "нпр. Отклањање грешака у производном систему", + "nameRequired": "Назив радног простора је обавезан", + "colorLabel": "Боја", + "workspaceCreated": "Радни простор је сачуван", + "workspaceUpdated": "Радни простор је ажуриран", + "workspaceDeleted": "Радни простор је обрисан", + "workspaceDuplicated": "Радни простор је дуплиран", + "saveFailed": "Чување радног простора није успело", + "updateFailed": "Ажурирање радног простора није успело", + "deleteFailed": "Брисање радног простора није успело", + "duplicateFailed": "Дуплирање радног простора није успело", + "loadFailed": "Учитавање радних простора није успело", + "applyFailed": "Примена радног простора није успела", + "deleteWorkspaceTitle": "Обриши радни простор", + "deleteWorkspaceDescription": "Да ли сте сигурни да желите да обришете „{{name}}“? Ова радња се не може поништити.", + "noWorkspaces": "Још увек нема сачуваних радних простора. Сачувајте тренутни распоред картица да бисте започели.", + "tabCount": "{{count}} картица", + "tabCount_other": "{{count}} картице", + "apply": "Примени", + "applyConfirmTitle": "Примени радни простор", + "applyConfirmDescription": "Применом „{{name}}“ затворићете тренутне картице и заменити их сачуваним распоредом овог радног простора. Несачуване измене тренутног распореда биће изгубљене.", + "applyConfirmButton": "Примени радни простор", + "updateWithCurrent": "Ажурирај са Тренутним", + "updateWithCurrentConfirm": "Преписати „{{name}}“ тренутним распоредом табулатора?", + "rename": "Преименуј", + "duplicate": "Дупликат", + "duplicateNameSuffix": "{{name}} (копија)", + "setDefault": "Постави као подразумевано", + "unsetDefault": "Уклони као подразумевано", + "defaultBadge": "Подразумевано", + "lastSession": "Последња сесија", + "lastSessionDescription": "Аутоматски се ажурира са вашим најновијим распоредом картица. Примените га да бисте вратили оно што сте имали отворено.", + "lastUsed": "Последња употреба {{time}}", + "neverUsed": "Никада примењено", + "tabsSkipped": "Радни простор је примењен, али је {{count}} картица прескочено јер њихов хост више не постоји: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "Пре {{count}}сек", + "minutes": "{{count}}пре мин", + "hours": "{{count}}пре сати", + "days": "{{count}}пре д" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Радни простори" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Радни простори", + "workflow_workspaces_desc": "Сачувајте скуп отворених картица и поново отворите цео распоред касније." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Користите радне просторе", + "description": "Сачувајте, примените и управљајте сачуваним распоредима картица." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Прикажи документе" } } diff --git a/plugins/workspaces/locales/translated/sv_SE.json b/plugins/workspaces/locales/translated/sv_SE.json index b74108f09..d660d7542 100644 --- a/plugins/workspaces/locales/translated/sv_SE.json +++ b/plugins/workspaces/locales/translated/sv_SE.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "title": "Arbetsytor", + "saveCurrent": "Spara aktuell", + "saveCurrentTitle": "Spara aktuell arbetsyta", + "saveCurrentDescription": "Spara alla öppna flikar, delade layouter och rutorrangemang som en ny namngiven arbetsyta.", + "nameLabel": "Namn", + "namePlaceholder": "t.ex. produktfelsökning", + "nameRequired": "Arbetsytans namn krävs", + "colorLabel": "Färg", + "workspaceCreated": "Arbetsytan sparad", + "workspaceUpdated": "Arbetsytan uppdaterad", + "workspaceDeleted": "Arbetsytan raderad", + "workspaceDuplicated": "Arbetsyta duplicerad", + "saveFailed": "Kunde inte spara arbetsytan", + "updateFailed": "Misslyckades med att uppdatera arbetsytan", + "deleteFailed": "Misslyckades med att ta bort arbetsytan", + "duplicateFailed": "Misslyckades med att duplicera arbetsytan", + "loadFailed": "Misslyckades med att läsa in arbetsytor", + "applyFailed": "Kunde inte tillämpa arbetsytan", + "deleteWorkspaceTitle": "Ta bort arbetsyta", + "deleteWorkspaceDescription": "Är du säker på att du vill ta bort \"{{name}}\"? Detta kan inte ångras.", + "noWorkspaces": "Inga sparade arbetsytor ännu. Spara din nuvarande flikstruktur för att komma igång.", + "tabCount": "{{count}} flik", + "tabCount_other": "{{count}} flikar", + "apply": "Tillämpas", + "applyConfirmTitle": "Använd arbetsyta", + "applyConfirmDescription": "Om du använder \"{{name}}\" stängs dina nuvarande flikar och ersätts med den här arbetsytans sparade layout. Osparade ändringar i din nuvarande layout kommer att gå förlorade.", + "applyConfirmButton": "Använd arbetsyta", + "updateWithCurrent": "Uppdatera med aktuellt", + "updateWithCurrentConfirm": "Skriv över \"{{name}}\" med din nuvarande tabulering?", + "rename": "Döpa om", + "duplicate": "Duplicera", + "duplicateNameSuffix": "{{name}} (kopiera)", + "setDefault": "Ange som standard", + "unsetDefault": "Ta bort som standard", + "defaultBadge": "Standard", + "lastSession": "Senaste sessionen", + "lastSessionDescription": "Uppdateras automatiskt med din senaste flikstruktur. Använd den för att återställa det du hade öppet.", + "lastUsed": "Senast använd {{time}}", + "neverUsed": "Aldrig tillämpad", + "tabsSkipped": "Arbetsyta tillämpad, men {{count}} flikar hoppades över eftersom deras värd inte längre finns: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}sekunder sedan", + "minutes": "för {{count}}minuter sedan", + "hours": "för {{count}}timmar sedan", + "days": "för {{count}}dagar sedan" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Arbetsytor" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Arbetsytor", + "workflow_workspaces_desc": "Spara en uppsättning öppna flikar och öppna hela layouten igen senare." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Använd arbetsytor", + "description": "Spara, tillämpa och hantera sparade fliklayouter." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Visa dokument" } } diff --git a/plugins/workspaces/locales/translated/th_TH.json b/plugins/workspaces/locales/translated/th_TH.json index b74108f09..d0bfed881 100644 --- a/plugins/workspaces/locales/translated/th_TH.json +++ b/plugins/workspaces/locales/translated/th_TH.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "title": "พื้นที่ทำงาน", + "saveCurrent": "บันทึกปัจจุบัน", + "saveCurrentTitle": "บันทึกพื้นที่ทำงานปัจจุบัน", + "saveCurrentDescription": "บันทึกแท็บที่เปิดอยู่ทั้งหมด รูปแบบการแบ่งหน้าจอ และการจัดเรียงบานหน้าต่างทั้งหมดเป็นพื้นที่ทำงานใหม่ที่มีชื่อ", + "nameLabel": "ชื่อ", + "namePlaceholder": "เช่น การดีบักผลิตภัณฑ์", + "nameRequired": "จำเป็นต้องระบุชื่อพื้นที่ทำงาน", + "colorLabel": "สี", + "workspaceCreated": "พื้นที่ทำงานได้รับการบันทึกแล้ว", + "workspaceUpdated": "พื้นที่ทำงานได้รับการอัปเดตแล้ว", + "workspaceDeleted": "พื้นที่ทำงานถูกลบแล้ว", + "workspaceDuplicated": "พื้นที่ทำงานถูกทำซ้ำ", + "saveFailed": "ไม่สามารถบันทึกพื้นที่ทำงานได้", + "updateFailed": "ไม่สามารถอัปเดตพื้นที่ทำงานได้", + "deleteFailed": "ไม่สามารถลบพื้นที่ทำงานได้", + "duplicateFailed": "ไม่สามารถคัดลอกพื้นที่ทำงานได้", + "loadFailed": "ไม่สามารถโหลดพื้นที่ทำงานได้", + "applyFailed": "ไม่สามารถใช้งานพื้นที่ทำงานได้", + "deleteWorkspaceTitle": "ลบพื้นที่ทำงาน", + "deleteWorkspaceDescription": "คุณแน่ใจหรือไม่ว่าต้องการลบ \"{{name}}\"? การดำเนินการนี้ไม่สามารถย้อนกลับได้", + "noWorkspaces": "ยังไม่มีการบันทึกพื้นที่ทำงานใดๆ บันทึกการจัดเรียงแท็บปัจจุบันของคุณเพื่อเริ่มต้นใช้งาน", + "tabCount": "{{count}} แท็บ", + "tabCount_other": "{{count}} แท็บ", + "apply": "นำมาใช้", + "applyConfirmTitle": "ใช้พื้นที่ทำงาน", + "applyConfirmDescription": "การใช้ \"{{name}}\" จะปิดแท็บปัจจุบันของคุณและแทนที่ด้วยการจัดเรียงที่บันทึกไว้ของพื้นที่ทำงานนี้ การเปลี่ยนแปลงที่ยังไม่ได้บันทึกในเค้าโครงปัจจุบันของคุณจะหายไป", + "applyConfirmButton": "ใช้พื้นที่ทำงาน", + "updateWithCurrent": "อัปเดตด้วยข้อมูลปัจจุบัน", + "updateWithCurrentConfirm": "เขียนทับ \"{{name}}\" ด้วยการจัดเรียงแท็บปัจจุบันของคุณหรือไม่?", + "rename": "เปลี่ยนชื่อ", + "duplicate": "ทำซ้ำ", + "duplicateNameSuffix": "{{name}} (คัดลอก)", + "setDefault": "ตั้งเป็นค่าเริ่มต้น", + "unsetDefault": "ลบออกเป็นค่าเริ่มต้น", + "defaultBadge": "ค่าเริ่มต้น", + "lastSession": "เซสชั่นสุดท้าย", + "lastSessionDescription": "ระบบจะอัปเดตการจัดเรียงแท็บล่าสุดของคุณโดยอัตโนมัติ ใช้เพื่อกู้คืนแท็บที่คุณเปิดไว้ก่อนหน้านี้", + "lastUsed": "ใช้งานครั้งล่าสุด {{time}}", + "neverUsed": "ไม่เคยสมัคร", + "tabsSkipped": "พื้นที่ทำงานถูกใช้งานแล้ว แต่แท็บ {{count}} ถูกข้ามไปเนื่องจากโฮสต์ของแท็บเหล่านั้นไม่มีอยู่แล้ว: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}วินาทีที่แล้ว", + "minutes": "{{count}}นาทีที่แล้ว", + "hours": "{{count}}ชั่วโมงที่แล้ว", + "days": "{{count}}วันก่อน" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "พื้นที่ทำงาน" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "พื้นที่ทำงาน", + "workflow_workspaces_desc": "บันทึกชุดแท็บที่เปิดอยู่ แล้วค่อยเปิดเค้าโครงทั้งหมดอีกครั้งในภายหลัง" }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "ใช้พื้นที่ทำงาน", + "description": "บันทึก นำไปใช้ และจัดการรูปแบบแท็บที่บันทึกไว้" } }, "hosts": { - "docsLink": "View docs" + "docsLink": "ดูเอกสาร" } } diff --git a/plugins/workspaces/locales/translated/tr_TR.json b/plugins/workspaces/locales/translated/tr_TR.json index 8915a3a71..268f61ce8 100644 --- a/plugins/workspaces/locales/translated/tr_TR.json +++ b/plugins/workspaces/locales/translated/tr_TR.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "Çalışma Alanları", + "saveCurrent": "Mevcut Olanı Kaydet", + "saveCurrentTitle": "Geçerli Çalışma Alanını Kaydet", + "saveCurrentDescription": "Açık olan her sekmeyi, bölünmüş düzeni ve bölme düzenini yeni bir adlandırılmış çalışma alanı olarak kaydedin.", "nameLabel": "Ad", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "Örneğin, Üretim Hata Ayıklaması", + "nameRequired": "Çalışma alanı adı zorunludur.", "colorLabel": "Renk", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "workspaceCreated": "Çalışma alanı kaydedildi.", + "workspaceUpdated": "Çalışma alanı güncellendi.", + "workspaceDeleted": "Çalışma alanı silindi", + "workspaceDuplicated": "Çalışma alanı kopyalandı", + "saveFailed": "Çalışma alanını kaydetme başarısız oldu.", + "updateFailed": "Çalışma alanını güncelleme başarısız oldu.", + "deleteFailed": "Çalışma alanını silme işlemi başarısız oldu.", + "duplicateFailed": "Çalışma alanını çoğaltma başarısız oldu.", + "loadFailed": "Çalışma alanları yüklenemedi.", + "applyFailed": "Çalışma alanı uygulanamadı.", + "deleteWorkspaceTitle": "Çalışma Alanını Sil", + "deleteWorkspaceDescription": "\"{{name}}\" öğesini silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "noWorkspaces": "Henüz kaydedilmiş çalışma alanı yok. Başlamak için mevcut sekme düzeninizi kaydedin.", + "tabCount": "{{count}} sekmesi", + "tabCount_other": "{{count}} sekmeler", "apply": "Uygula", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "Çalışma Alanına Başvur", + "applyConfirmDescription": "\"{{name}}\" komutunu uygulamak, mevcut sekmelerinizi kapatacak ve bunların yerine bu çalışma alanının kaydedilmiş düzenini getirecektir. Mevcut düzeninizde yapılan kaydedilmemiş değişiklikler kaybolacaktır.", + "applyConfirmButton": "Çalışma Alanına Başvur", + "updateWithCurrent": "Güncel bilgilerle güncelleyin", + "updateWithCurrentConfirm": "\"{{name}}\" ifadesini mevcut sekme düzeninizle değiştirin mi?", "rename": "Yeniden adlandır", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "Kopyalamak", + "duplicateNameSuffix": "{{name}} (kopyala)", + "setDefault": "Varsayılan olarak ayarla", + "unsetDefault": "Varsayılan ayarı kaldır", + "defaultBadge": "Varsayılan", + "lastSession": "Son Oturum", + "lastSessionDescription": "En son sekme düzeninize göre otomatik olarak güncellenir. Açık olan uygulamalarınızı geri yüklemek için uygulayın.", + "lastUsed": "Son kullanım {{time}}", + "neverUsed": "Hiç başvurmadım", + "tabsSkipped": "Çalışma alanı uygulandı, ancak {{count}} sekmesi atlandı çünkü ana bilgisayarları artık mevcut değil: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}saniye önce", "minutes": "{{count}} dakika önce", "hours": "{{count}} saat önce", "days": "{{count}} gün önce" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Çalışma Alanları" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Çalışma Alanları", + "workflow_workspaces_desc": "Açık sekmeleri kaydedin ve daha sonra tüm düzeni yeniden açın." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Çalışma alanlarını kullanın", + "description": "Kaydedilmiş sekme düzenlerini kaydedin, uygulayın ve yönetin." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/uk_UA.json b/plugins/workspaces/locales/translated/uk_UA.json index b74108f09..a1a702699 100644 --- a/plugins/workspaces/locales/translated/uk_UA.json +++ b/plugins/workspaces/locales/translated/uk_UA.json @@ -2,69 +2,69 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", - "nameLabel": "Name", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", - "colorLabel": "Color", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", - "apply": "Apply", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", - "rename": "Rename", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "title": "Робочі простори", + "saveCurrent": "Зберегти поточний", + "saveCurrentTitle": "Зберегти поточну робочу область", + "saveCurrentDescription": "Збережіть кожну відкриту вкладку, розділений макет та розташування панелей як нове іменоване робоче середовище.", + "nameLabel": "Ім'я", + "namePlaceholder": "наприклад, налагодження продукту", + "nameRequired": "Потрібно вказати назву робочої області", + "colorLabel": "Колір", + "workspaceCreated": "Робочу область збережено", + "workspaceUpdated": "Робочу область оновлено", + "workspaceDeleted": "Робочу область видалено", + "workspaceDuplicated": "Робочу область продубльовано", + "saveFailed": "Не вдалося зберегти робочу область", + "updateFailed": "Не вдалося оновити робочу область", + "deleteFailed": "Не вдалося видалити робочу область", + "duplicateFailed": "Не вдалося дублювати робочу область", + "loadFailed": "Не вдалося завантажити робочі області", + "applyFailed": "Не вдалося застосувати робочу область", + "deleteWorkspaceTitle": "Видалити робочу область", + "deleteWorkspaceDescription": "Ви впевнені, що хочете видалити \"{{name}}\"? Цю дію неможливо скасувати.", + "noWorkspaces": "Поки що немає збережених робочих областей. Збережіть поточне розташування вкладок, щоб розпочати.", + "tabCount": "вкладка {{count}}", + "tabCount_other": "{{count}} вкладок", + "apply": "Застосувати", + "applyConfirmTitle": "Застосувати робочу область", + "applyConfirmDescription": "Застосування \"{{name}}\" закриє ваші поточні вкладки та замінить їх збереженим розташуванням цього робочого простору. Незбережені зміни до вашого поточного макета будуть втрачені.", + "applyConfirmButton": "Застосувати робочу область", + "updateWithCurrent": "Оновити за допомогою поточного", + "updateWithCurrentConfirm": "Перезаписати \"{{name}}\" поточним розташуванням табуляцій?", + "rename": "Перейменувати", + "duplicate": "Дублікат", + "duplicateNameSuffix": "{{name}} (копія)", + "setDefault": "Встановити за замовчуванням", + "unsetDefault": "Видалити як за замовчуванням", + "defaultBadge": "За замовчуванням", + "lastSession": "Остання сесія", + "lastSessionDescription": "Автоматично оновлюється з урахуванням останнього розташування вкладок. Застосуйте це, щоб відновити те, що було відкрито.", + "lastUsed": "Востаннє використовувалося {{time}}", + "neverUsed": "Ніколи не застосовувався", + "tabsSkipped": "Робочий простір застосовано, але {{count}} вкладок пропущено, оскільки їхній хост більше не існує: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", - "minutes": "{{count}}m ago", - "hours": "{{count}}h ago", - "days": "{{count}}d ago" + "seconds": "{{count}}с тому", + "minutes": "{{count}}хв тому", + "hours": "{{count}}год тому", + "days": "{{count}}днів тому" } } } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Робочі простори" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Робочі простори", + "workflow_workspaces_desc": "Збережіть набір відкритих вкладок і знову відкрийте весь макет пізніше." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Використовуйте робочі області", + "description": "Зберігайте, застосовуйте та керуйте збереженими макетами вкладок." } }, "hosts": { - "docsLink": "View docs" + "docsLink": "Переглянути документи" } } diff --git a/plugins/workspaces/locales/translated/vi_VN.json b/plugins/workspaces/locales/translated/vi_VN.json index d9c867ef4..09e57c071 100644 --- a/plugins/workspaces/locales/translated/vi_VN.json +++ b/plugins/workspaces/locales/translated/vi_VN.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "Không gian làm việc", + "saveCurrent": "Lưu hiện tại", + "saveCurrentTitle": "Lưu không gian làm việc hiện tại", + "saveCurrentDescription": "Lưu tất cả các tab đang mở, bố cục chia màn hình và cách sắp xếp khung cửa sổ dưới dạng một không gian làm việc mới có tên.", "nameLabel": "Tên", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "Ví dụ: Gỡ lỗi sản phẩm", + "nameRequired": "Tên không gian làm việc là bắt buộc", "colorLabel": "Màu sắc", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", + "workspaceCreated": "Không gian làm việc đã được lưu", + "workspaceUpdated": "Không gian làm việc đã được cập nhật", + "workspaceDeleted": "Không gian làm việc đã bị xóa", + "workspaceDuplicated": "Không gian làm việc được sao chép", + "saveFailed": "Không thể lưu không gian làm việc", + "updateFailed": "Không thể cập nhật không gian làm việc", + "deleteFailed": "Không thể xóa không gian làm việc", + "duplicateFailed": "Không thể sao chép không gian làm việc", + "loadFailed": "Không thể tải không gian làm việc", + "applyFailed": "Không thể áp dụng không gian làm việc", + "deleteWorkspaceTitle": "Xóa không gian làm việc", + "deleteWorkspaceDescription": "Bạn có chắc chắn muốn xóa \"{{name}}\" không? Thao tác này không thể hoàn tác.", + "noWorkspaces": "Chưa có không gian làm việc nào được lưu. Hãy lưu cách bố trí tab hiện tại của bạn để bắt đầu.", "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "tabCount_other": "{{count}} tab", "apply": "Áp dụng", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "Áp dụng Không gian làm việc", + "applyConfirmDescription": "Áp dụng \"{{name}}\" sẽ đóng các tab hiện tại của bạn và thay thế chúng bằng bố cục đã lưu của không gian làm việc này. Các thay đổi chưa được lưu đối với bố cục hiện tại của bạn sẽ bị mất.", + "applyConfirmButton": "Áp dụng Không gian làm việc", + "updateWithCurrent": "Cập nhật với thông tin hiện tại", + "updateWithCurrentConfirm": "Bạn có muốn ghi đè \"{{name}}\" bằng cách sắp xếp tab hiện tại của mình không?", "rename": "Đổi tên", - "duplicate": "Duplicate", + "duplicate": "Nhân bản", "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "setDefault": "Đặt làm mặc định", + "unsetDefault": "Xóa khỏi danh sách mặc định", + "defaultBadge": "Mặc định", + "lastSession": "Phiên cuối cùng", + "lastSessionDescription": "Tự động cập nhật với cách sắp xếp tab gần đây nhất của bạn. Áp dụng để khôi phục các tab bạn đã mở trước đó.", + "lastUsed": "Lần sử dụng cuối cùng {{time}}", + "neverUsed": "Chưa từng ứng tuyển", + "tabsSkipped": "Không gian làm việc đã được áp dụng, nhưng {{count}} tab đã bị bỏ qua vì máy chủ của chúng không còn tồn tại: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}giây trước", "minutes": "{{count}} phút trước", "hours": "{{count}} giờ trước", "days": "{{count}} ngày trước" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "Không gian làm việc" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "Không gian làm việc", + "workflow_workspaces_desc": "Lưu lại một nhóm các tab đang mở và mở lại toàn bộ bố cục sau." }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "Sử dụng không gian làm việc", + "description": "Lưu, áp dụng và quản lý các bố cục tab đã lưu." } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/zh_CN.json b/plugins/workspaces/locales/translated/zh_CN.json index 3d86a6879..6e43743e6 100644 --- a/plugins/workspaces/locales/translated/zh_CN.json +++ b/plugins/workspaces/locales/translated/zh_CN.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "工作区", + "saveCurrent": "保存当前", + "saveCurrentTitle": "保存当前工作区", + "saveCurrentDescription": "将所有打开的标签页、拆分布局和窗格排列保存为一个新的命名工作区。", "nameLabel": "名称", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "例如,生产环境调试", + "nameRequired": "工作区名称为必填项", "colorLabel": "颜色", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", + "workspaceCreated": "工作区已保存", + "workspaceUpdated": "工作区已更新", + "workspaceDeleted": "工作区已删除", + "workspaceDuplicated": "工作区已复制", + "saveFailed": "保存工作区失败", + "updateFailed": "工作区更新失败", + "deleteFailed": "删除工作区失败", + "duplicateFailed": "复制工作区失败", + "loadFailed": "加载工作区失败", + "applyFailed": "应用工作区失败", + "deleteWorkspaceTitle": "删除工作区", + "deleteWorkspaceDescription": "您确定要删除“{{name}}”吗?此操作无法撤销。", + "noWorkspaces": "尚未保存任何工作区。请保存您当前的标签页排列方式以开始使用。", "tabCount": "{{count}} 个标签页", "tabCount_other": "{{count}} 个标签页", "apply": "应用", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", + "applyConfirmTitle": "应用工作区", + "applyConfirmDescription": "应用“{{name}}”将关闭您当前的标签页,并将其替换为此工作区已保存的布局。您对当前布局的未保存更改将会丢失。", + "applyConfirmButton": "应用工作区", + "updateWithCurrent": "更新至当前版本", "updateWithCurrentConfirm": "用您当前的标签页排列覆盖“{{name}}”?", "rename": "重命名", - "duplicate": "Duplicate", + "duplicate": "复制", "duplicateNameSuffix": "{{name}}(副本)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", + "setDefault": "设置为默认值", + "unsetDefault": "移除默认设置", + "defaultBadge": "默认", "lastSession": "上次会话", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", + "lastSessionDescription": "自动更新至您最近的标签页排列方式。应用此操作即可恢复您之前打开的标签页。", + "lastUsed": "上次使用 {{time}}", "neverUsed": "从未应用过", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "tabsSkipped": "工作区已应用,但由于其宿主已不存在,因此跳过了 {{count}} 个选项卡: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}秒前", "minutes": "{{count}} 分钟前", "hours": "{{count}} 小时前", "days": "{{count}} 天前" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "工作区" }, "onboarding": { - "workflow_workspaces": "Workspaces", + "workflow_workspaces": "工作区", "workflow_workspaces_desc": "保存当前打开的标签页组合,方便之后一键恢复整个布局。" }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "使用工作区", + "description": "保存、应用和管理已保存的标签页布局。" } }, "hosts": { diff --git a/plugins/workspaces/locales/translated/zh_TW.json b/plugins/workspaces/locales/translated/zh_TW.json index f3e4e2c56..ec1522cf0 100644 --- a/plugins/workspaces/locales/translated/zh_TW.json +++ b/plugins/workspaces/locales/translated/zh_TW.json @@ -2,48 +2,48 @@ "newUi": { "sidebar": { "workspaces": { - "title": "Workspaces", - "saveCurrent": "Save Current", - "saveCurrentTitle": "Save Current Workspace", - "saveCurrentDescription": "Save every open tab, split layout, and pane arrangement as a new named workspace.", + "title": "工作區", + "saveCurrent": "儲存目前", + "saveCurrentTitle": "儲存目前工作區", + "saveCurrentDescription": "將所有開啟的標籤頁、分割版面配置和窗格排列儲存為一個新的命名工作區。", "nameLabel": "名稱", - "namePlaceholder": "e.g., Prod Debugging", - "nameRequired": "Workspace name is required", + "namePlaceholder": "例如,生產環境調試", + "nameRequired": "工作區名稱為必填項", "colorLabel": "顏色", - "workspaceCreated": "Workspace saved", - "workspaceUpdated": "Workspace updated", - "workspaceDeleted": "Workspace deleted", - "workspaceDuplicated": "Workspace duplicated", - "saveFailed": "Failed to save workspace", - "updateFailed": "Failed to update workspace", - "deleteFailed": "Failed to delete workspace", - "duplicateFailed": "Failed to duplicate workspace", - "loadFailed": "Failed to load workspaces", - "applyFailed": "Failed to apply workspace", - "deleteWorkspaceTitle": "Delete Workspace", - "deleteWorkspaceDescription": "Are you sure you want to delete \"{{name}}\"? This cannot be undone.", - "noWorkspaces": "No saved workspaces yet. Save your current tab arrangement to get started.", - "tabCount": "{{count}} tab", - "tabCount_other": "{{count}} tabs", + "workspaceCreated": "工作區已儲存", + "workspaceUpdated": "工作區已更新", + "workspaceDeleted": "工作區已刪除", + "workspaceDuplicated": "工作區已複製", + "saveFailed": "保存工作區失敗", + "updateFailed": "工作區更新失敗", + "deleteFailed": "刪除工作區失敗", + "duplicateFailed": "複製工作區失敗", + "loadFailed": "載入工作區失敗", + "applyFailed": "應用工作區失敗", + "deleteWorkspaceTitle": "刪除工作區", + "deleteWorkspaceDescription": "您確定要刪除「{{name}}」嗎?此操作無法撤銷。", + "noWorkspaces": "尚未保存任何工作區。請儲存您目前的標籤頁排列方式以開始使用。", + "tabCount": "{{count}} 選項卡", + "tabCount_other": "{{count}} 標籤", "apply": "套用", - "applyConfirmTitle": "Apply Workspace", - "applyConfirmDescription": "Applying \"{{name}}\" will close your current tabs and replace them with this workspace's saved arrangement. Unsaved changes to your current layout will be lost.", - "applyConfirmButton": "Apply Workspace", - "updateWithCurrent": "Update with Current", - "updateWithCurrentConfirm": "Overwrite \"{{name}}\" with your current tab arrangement?", + "applyConfirmTitle": "應用工作區", + "applyConfirmDescription": "應用「{{name}}」將關閉您目前的標籤頁,並將其替換為此工作區已儲存的佈局。您對目前佈局的未儲存變更將會遺失。", + "applyConfirmButton": "應用工作區", + "updateWithCurrent": "更新至目前版本", + "updateWithCurrentConfirm": "用您目前的製表符排列覆蓋“{{name}}”?", "rename": "重新命名", - "duplicate": "Duplicate", - "duplicateNameSuffix": "{{name}} (copy)", - "setDefault": "Set as Default", - "unsetDefault": "Remove as Default", - "defaultBadge": "Default", - "lastSession": "Last Session", - "lastSessionDescription": "Automatically updated with your most recent tab arrangement. Apply it to recover what you had open.", - "lastUsed": "Last used {{time}}", - "neverUsed": "Never applied", - "tabsSkipped": "Workspace applied, but {{count}} tab(s) were skipped because their host no longer exists: {{names}}", + "duplicate": "複製", + "duplicateNameSuffix": "{{name}} (複製)", + "setDefault": "設定為預設值", + "unsetDefault": "移除預設設定", + "defaultBadge": "預設", + "lastSession": "上次會議", + "lastSessionDescription": "自動更新至您最近的標籤頁排列方式。應用此操作即可恢復您先前開啟的標籤頁。", + "lastUsed": "上次使用 {{time}}", + "neverUsed": "從未申請過", + "tabsSkipped": "工作區已應用,但由於其宿主已不存在,因此跳過了 {{count}} 個選項卡: {{names}}", "timeAgo": { - "seconds": "{{count}}s ago", + "seconds": "{{count}}秒前", "minutes": "{{count}} 分鐘前", "hours": "{{count}} 小時前", "days": "{{count}} 天前" @@ -52,16 +52,16 @@ } }, "nav": { - "workspaces": "Workspaces" + "workspaces": "工作區" }, "onboarding": { - "workflow_workspaces": "Workspaces", - "workflow_workspaces_desc": "Save a set of open tabs and reopen the whole layout later." + "workflow_workspaces": "工作區", + "workflow_workspaces_desc": "儲存一組開啟的標籤頁,稍後重新開啟整個佈局。" }, "permissions": { "use": { - "title": "Use workspaces", - "description": "Save, apply and manage saved tab layouts." + "title": "使用工作區", + "description": "儲存、套用和管理已儲存的標籤頁佈局。" } }, "hosts": { diff --git a/src/ui/locales/translated/bn_BD.json b/src/ui/locales/translated/bn_BD.json index 979da651d..76675a9e1 100644 --- a/src/ui/locales/translated/bn_BD.json +++ b/src/ui/locales/translated/bn_BD.json @@ -55,8 +55,8 @@ "levelManage": "পরিচালনা করুন", "levelUseDesc": "ব্যবহারবিধি: হোস্টগুলিতে ক্রেডেনশিয়ালটি সংযুক্ত করুন এবং সংযোগ করুন। সিক্রেটটি গোপন থাকে।", "levelManageDesc": "পরিচালনা করুন: পরিচয়পত্রটি সম্পাদনা করুন এবং অন্যদের সাথে শেয়ার করুন।", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "এই পরিচয়পত্রটি এখনও শেয়ার করা হয়নি।", + "accessRevoked": "প্রবেশাধিকার বাতিল করা হয়েছে", "shared": "পরিচয়পত্র শেয়ার করা হয়েছে" }, "deleteCredentialAction": "পরিচয়পত্র মুছুন", @@ -113,14 +113,14 @@ "arrangeUnlocked": "পুনর্বিন্যাস করতে ড্র্যাগ আনলক করুন" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "আপডেট উপলব্ধ। গিটহাবে রিলিজ নোট খুলুন।" }, "common": { "close": "বন্ধ করুন", "minimize": "ন্যূনতম করুন", "online": "অনলাইন", "offline": "অফলাইন", - "signInFailed": "Sign in failed", + "signInFailed": "সাইন ইন ব্যর্থ হয়েছে", "unknown": "অজানা", "continue": "চালিয়ে যান", "maintenance": "রক্ষণাবেক্ষণ", @@ -131,9 +131,9 @@ "dismiss": "খারিজ করুন", "more": "আরও", "loading": "লোড হচ্ছে...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "হোস্ট", + "selectHost": "একজন হোস্ট নির্বাচন করুন...", + "noHostConfigured": "কোন হোস্ট কনফিগার করা নেই", "optional": "ঐচ্ছিক", "connect": "সংযোগ করুন", "copied": "অনুলিপি করা হয়েছে", @@ -187,7 +187,7 @@ "remove": "অপসারণ করুন", "add": "যোগ করুন", "update": "আপডেট", - "noResults": "No results found" + "noResults": "কোনো ফলাফল পাওয়া যায়নি" }, "onboarding": { "stepCounter": "{{total}} এর {{current}} ধাপ", @@ -215,7 +215,7 @@ "workflow_palette": "কমান্ড প্যালেট", "workflow_palette_desc": "টাইপ করে যেকোনো সার্ভার বা অ্যাকশনে যান। এটি খুলতে Shift দুবার চাপুন।", "workflow_split": "স্প্লিট স্ক্রিন", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "কাজ করার সময় লগ দেখার জন্য কয়েকটি ট্যাব পাশাপাশি দেখান।", "workflow_dock": "পাশের প্যানেল", "workflow_dock_desc": "সাইডবারের কোনো আইকনকে ট্যাব হিসেবে খুলতে বা ডানদিকে পিন করতে মিডল ক্লিক বা রাইট ক্লিক করুন।", "securityTitle": "আপনার লগইনগুলি সুরক্ষিত রাখা", @@ -248,13 +248,13 @@ "done_cli": "কমান্ড লাইন টুল", "done_cli_desc": "টার্মিনাল থেকে আপনার সার্ভারগুলো পরিচালনা করুন এবং নিজের স্ক্রিপ্টে টার্মিক্স ব্যবহার করুন।", "done_cli_link": "CLI ডক্স খুলুন", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "আপনি টারমিক্স কীভাবে ব্যবহার করতে চান?", + "desktopBody": "আপনি সাইডবারের সিঙ্ক থেকে যেকোনো সময় এটি পরিবর্তন করতে পারেন।", + "desktopLocalTitle": "শুধুমাত্র এই ডিভাইসে", + "desktopLocalBody": "সবকিছু এখানে সংরক্ষিত আছে। কোনো কিছু সেট আপ করার প্রয়োজন নেই।", + "desktopLinkTitle": "আমার টারমিক্স সার্ভারের সাথে", + "desktopLinkBody": "প্রতিটি ডিভাইসে একই হোস্ট ও সেটিংস ব্যবহার করতে আপনার সার্ভারে সাইন ইন করুন।", + "desktopLinked": "{{server}} এর সাথে সংযুক্ত" }, "nav": { "home": "হোম", @@ -295,21 +295,21 @@ "collapseSideMenu": "মেনু সংকুচিত করুন", "roleAdministrator": "প্রশাসক", "roleUser": "ব্যবহারকারী", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "সিঙ্ক", + "reconnectDisconnectedTerminals": "বিচ্ছিন্ন সমস্ত টার্মিনাল পুনরায় সংযুক্ত করুন।", + "reconnectingTerminals_one": "{{count}} টার্মিনাল পুনরায় সংযোগ করা হচ্ছে", + "reconnectingTerminals_other": "{{count}} টার্মিনাল পুনরায় সংযোগ করা হচ্ছে", + "noDisconnectedTerminals": "কোনো বিচ্ছিন্ন টার্মিনাল পুনরায় সংযোগের জন্য প্রস্তুত নয়।", + "reconnectTerminalsFailed_one": "{{count}} টার্মিনাল পুনরায় সংযোগ শুরু করা যায়নি", + "reconnectTerminalsFailed_other": "{{count}} টার্মিনালগুলি পুনরায় সংযোগ করা শুরু করা যায়নি", + "fullscreenUnsupported": "এই ব্রাউজারটি ফুলস্ক্রিন সমর্থন করে না।", + "fullscreenFailed": "পূর্ণস্ক্রিন পরিবর্তন করা সম্ভব হয়নি", + "resetSidebarWidth": "প্রস্থ রিসেট করুন", + "collapseSidebar": "সাইডবার সংকুচিত করুন", + "openSidebar": "সাইডবার খুলুন", + "confirmCloseHost": "বন্ধ করুন {{host}}?", + "enterFullscreen": "পূর্ণস্ক্রিনে প্রবেশ করুন (Ctrl+Shift+F)", + "exitFullscreen": "পূর্ণস্ক্রিন থেকে বের হতে (Ctrl+Shift+F)" }, "hosts": { "hosts": "হোস্টরা", @@ -353,7 +353,7 @@ "serverStats": "হোস্ট মেট্রিক্স", "status": { "available": "উপলব্ধ", - "reachable": "Up, but the last sign in failed", + "reachable": "চালু হয়েছে, কিন্তু শেষ সাইন-ইনটি ব্যর্থ হয়েছে।", "offline": "অফলাইন", "monitoringDisabled": "পর্যবেক্ষণ অক্ষম করা হয়েছে", "label": "অবস্থা" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "ফোর্স কীবোর্ড-ইন্টারেক্টিভ", "overrideCredentialUsername": "ক্রেডেনশিয়াল ব্যবহারকারীর নাম ওভাররাইড করুন", "overrideCredentialUsernameDesc": "ক্রেডেনশিয়ালের ইউজারনেমের পরিবর্তে উপরে উল্লেখিত ইউজারনেমটি ব্যবহার করুন।", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "SSO বা LDAP-এর মাধ্যমে আপনি যে নামটি দিয়ে সাইন ইন করেছেন, সেটি পূরণ করতে $external.username ব্যবহার করুন।", "jumpHostChain": "জাম্প হোস্ট চেইন", "portKnocking": "পোর্ট নকিং", "addKnock": "পোর্ট যোগ করুন", @@ -626,14 +626,14 @@ "actionsClick": "প্রসারিত/সংকুচিত করতে ক্লিক করুন", "openOnDoubleClick": "ডাবল ক্লিকে খুলুন", "openOnDoubleClickDesc": "হোস্ট সেশন খুলতে একক ক্লিকের পরিবর্তে ডাবল ক্লিক প্রয়োজন।", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "ফোল্ডার পাথগুলি দেখান", + "showFolderPathsDesc": "নেস্টেড সাবফোল্ডারের নামগুলোর উপরে প্যারেন্ট ফোল্ডারের পাথ দেখান। উভয় ক্ষেত্রেই সাবফোল্ডারগুলো ইনডেন্ট করা থাকবে।", + "hostClickBehavior": "একটি হোস্টে ক্লিক করা", + "hostClickBehaviorDesc": "যে হোস্টে আগে থেকেই একটি ট্যাব খোলা আছে, সেখানে ক্লিক করলে কী হয়? Ctrl/Cmd ক্লিক, মিডল ক্লিক, বা \"Open in new tab\" সবসময় একটি নতুন ট্যাব চালু করে।", + "hostClickNewTab": "সর্বদা একটি নতুন ট্যাব খুলুন", + "hostClickFocusExisting": "খোলা ট্যাবে যান", + "hostClickFocusExistingDoubleNew": "ট্যাব পরিবর্তন করতে ক্লিক করুন, নতুন ট্যাবের জন্য ডাবল ক্লিক করুন।", + "openInNewTab": "নতুন ট্যাবে খুলুন", "deletedHost": "মুছে ফেলা হয়েছে {{name}}", "copiedToClipboard": "ক্লিপবোর্ডে কপি করা হয়েছে", "remoteDesktopUrlCopied": "রিমোট ডেস্কটপ ইউআরএল কপি করা হয়েছে", @@ -698,7 +698,7 @@ "groupCredentials": "যোগ্যতা", "groupNotes": "নোট", "groupTags": "ট্যাগ ও পিন", - "groupProxy": "Proxy", + "groupProxy": "প্রক্সি", "groupJumpHosts": "জাম্প হোস্ট", "groupFeatureFlags": "বৈশিষ্ট্য পতাকা", "groupAdvanced": "উন্নত কনফিগারেশন", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "প্রতিটি এন্ডপয়েন্টের জন্য একটি ভিন্ন নাম প্রয়োজন।", "webUiErrorPortRange": "এন্ডপয়েন্ট {{row}} এর জন্য ১ থেকে ৬৫৫৩৫ এর মধ্যে একটি পোর্ট প্রয়োজন।", "webUiErrorPathInvalid": "এন্ডপয়েন্ট {{row}} -এর পাথটি অবৈধ। /admin-এর মতো একটি পাথ ব্যবহার করুন।", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "{{name}} লিঙ্কটি কপি করুন", + "filterAuthAgent": "এসএসএইচ এজেন্ট", + "authTypeNeedsPlugin": "এই হোস্ট {{type}}ব্যবহার করে, যার জন্য {{plugin}}প্রয়োজন। এই সার্ভারে এটি বন্ধ করা আছে।", + "authTypeUnknown": "এই হোস্ট {{type}}ব্যবহার করে, যা এই সার্ভারে উপলব্ধ নয়।", + "authFieldsAfterSave": "প্রথমে হোস্টটি সেভ করুন, তারপর এই ফিল্ডগুলো পূরণ করুন।", + "enablePluginFeature": "{{name}} সক্রিয় করুন", + "disablePluginFeature": "নিষ্ক্রিয় করুন {{name}}", "filterFeaturesGroup": "বৈশিষ্ট্য", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "শুধুমাত্র এই ডিভাইসে রাখুন", + "localOnlyDesc": "এই হোস্টটি সার্ভারে পাঠানো হয় না এবং আপনার অন্যান্য ডিভাইসেও দেখা যায় না।", + "folderLocalOnly": "শুধুমাত্র এই ডিভাইসে রাখুন", + "folderLocalOnlyDesc": "এই ফোল্ডার এবং এর ভেতরের প্রতিটি হোস্ট এই ডিভাইসেই থাকে এবং সার্ভারে পাঠানো হয় না।", + "sudoPasswordDesc": "যখন টার্মিনাল sudo প্রম্পট পূর্ণ করে ফেলে, এবং sudo-এর সাহায্যে কমান্ড চালনাকারী ফিচারগুলো এটি ব্যবহার করে।", + "editorCancel": "বাতিল করুন", + "editorSaving": "সঞ্চয়...", + "editorUpdate": "হোস্ট আপডেট করুন", + "editorAdd": "হোস্ট যোগ করুন", + "speedSearch": "হোস্ট অনুসন্ধান করুন। নির্বাচন করতে অ্যারো কী ব্যবহার করুন, সংযোগ করতে এন্টার চাপুন, বন্ধ করতে Esc চাপুন।", + "speedSearchList": "হোস্ট তালিকা। অনুসন্ধান করতে টাইপ করুন অথবা / চাপুন।", + "importNoHosts": "ফাইলটিতে কোনো হোস্ট খুঁজে পাওয়া যায়নি।", + "importTooMany": "আপনি একবারে সর্বোচ্চ {{max}} টি হোস্ট ইম্পোর্ট করতে পারেন", + "importSummary": "আমদানি সম্পন্ন: {{imported}} আমদানি করা হয়েছে, {{updated}} আপডেট করা হয়েছে, {{failed}} ব্যর্থ হয়েছে", + "importHostsFailed": "হোস্ট আমদানি করতে ব্যর্থ হয়েছে" }, "commandPalette": { "searchPlaceholder": "হোস্ট, কমান্ড বা সেটিংস অনুসন্ধান করুন...", @@ -897,58 +897,58 @@ "navigate": "নেভিগেট করুন", "select": "নির্বাচন করুন", "toggleWith": "টগল করুন", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "আরও পদক্ষেপ", + "noTargetTab": "কোন টার্মিনাল ট্যাব খোলা নেই" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "স্প্লিট স্ক্রিন", + "defaultLabel": "বিভক্ত {{number}}", + "splitRight": "ডানদিকে বিভক্ত", + "splitDown": "বিভক্ত করুন", + "addToSplit": "{{split}} এ যোগ করুন", + "paneEmptyItem": "প্যান {{index}}: খালি", + "paneItem": "ফলক {{index}}: {{label}}", + "paneNumber": "প্যান {{index}}", + "newPaneRight": "ডানদিকে নতুন প্যানে", + "newPaneBelow": "নিচের নতুন প্যানে", + "emptyTitle": "খালি প্যানে", + "emptyHint": "এখানে দেখানোর জন্য কিছু একটা বেছে নিন। এই প্যানেটি নির্বাচিত থাকা অবস্থায়, সাইডবার থেকে আপনি যা কিছুই খুলবেন, তা-ও এখানে খুলে যাবে।", + "openTabs": "ট্যাব খুলুন", + "noOpenTabs": "অন্য কোনো ট্যাব খোলা নেই", + "hosts": "হোস্টরা", + "searchHosts": "হোস্ট অনুসন্ধান করুন", + "noHosts": "কোন আয়োজক ম্যাচ নেই", + "newSession": "নতুন", + "closePane": "প্যান বন্ধ করুন", + "closeSession": "অধিবেশন বন্ধ করুন", + "moveToTab": "নিজস্ব ট্যাবে সরান", + "swapWith": "বিনিময় করুন", + "showHere": "এই প্যানে দেখান", + "clearPane": "এই প্যানে খালি করুন", + "zoom": "জুম প্যানে", + "unzoom": "লেআউট পুনরুদ্ধার করুন", + "unsplit": "অবিভক্ত", + "layouts": "লেআউটগুলি", + "applyLayout": "লেআউট পরিবর্তন করুন", + "newSplit": "নতুন বিচ্ছেদ", + "maxPanes": "একটি স্প্লিটে {{count}} টি পর্যন্ত প্যান থাকতে পারে।", + "dropSplit": "বিভক্ত করতে নামিয়ে দিন", + "dropHere": "এখানে দেখানোর জন্য ড্রপ করুন", + "paneActions": "প্যান অ্যাকশন", + "dividerHint": "আকার পরিবর্তন করতে টেনে আনুন। সমান করতে ডাবল-ক্লিক করুন।", + "openInSplit": "স্প্লিটে খুলুন", + "openInNewSplit": "বর্তমান ট্যাবের সাথে নতুন বিভাজন", + "shortcuts": "শর্টকাট", + "shortcutNavigate": "প্যানগুলির মধ্যে সরান", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "পাশাপাশি দুটি", + "rows2": "দুটি স্তূপীকৃত", + "columns3": "পাশাপাশি তিনটি", + "mainLeft3": "একটি বামে, দুটি ডানে", + "mainBottom3": "দুটি উপরের, একটি নিচের", + "grid4": "চারটির গ্রিড", + "grid5": "দুইয়ের উপর তিন", + "grid6": "ছয়টির গ্রিড" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "প্রমাণীকরণ আবশ্যক", "mfaPushRequired": "পুশ প্রমাণীকরণ আবশ্যক", "mfaMenuPlaceholder": "আপনার প্রতিক্রিয়া লিখুন", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "কোড বা \"পুশ\"", "mfaWaitingApproval": "আপনার ডিভাইসে অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...", "mfaSendRequest": "অনুরোধ পাঠান", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "নিরাপত্তা চাবি", + "browserSignInUrl": "সাইন-ইন ইউআরএল", + "browserSignInOpen": "ব্রাউজারে খুলুন", + "browserSignInContinue": "আমি সাইন-ইন সম্পন্ন করেছি।", + "browserSignInRequired": "{{provider}} সাইন ইন আবশ্যক", "connectionLogTitle": "সংযোগ লগ", "connectionLogCopy": "লগগুলি ক্লিপবোর্ডে কপি করুন", "connectionLogEmpty": "এখনো কোনো সংযোগ লগ নেই", @@ -1032,7 +1032,7 @@ "external": "বাহ্যিক", "loginWithExternal": "বাহ্যিক সরবরাহকারী দিয়ে লগইন করুন", "loginWithExternalDesc": "আপনার কনফিগার করা বাহ্যিক পরিচয় প্রদানকারী ব্যবহার করে লগইন করুন।", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "ডেস্কটপ অ্যাপে এখনও বাহ্যিক সাইন-ইন সমর্থিত নয়। অনুগ্রহ করে ওয়েব সংস্করণটি ব্যবহার করুন।", "loginWithProvider": "{{name}} দিয়ে লগইন করুন", "orContinueWith": "অথবা চালিয়ে যান", "resetPasswordButton": "পাসওয়ার্ড রিসেট করুন", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "পাসওয়ার্ড দিয়ে লগইন করা বন্ধ আছে। একটি পাসকি অথবা বাহ্যিক প্রমাণীকরণ প্রদানকারী ব্যবহার করুন।", "attemptsRemaining": "{{count}} টি প্রচেষ্টা বাকি", "confirmResetDataWipe": "এনক্রিপশন আপগ্রেডের পর থেকে এই অ্যাকাউন্টটি লগ ইন করা হয়নি, তাই পুরোনো পাসওয়ার্ড ছাড়া এর সংরক্ষিত ডেটা পুনরুদ্ধার করা যাবে না। রিসেট করলে এর হোস্ট, ক্রেডেনশিয়াল এবং স্নিপেট স্থায়ীভাবে মুছে যাবে। চালিয়ে যাবেন?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "পাসওয়ার্ড", + "secondFactorUnavailable": "আপনার অ্যাকাউন্টে একটি দ্বিতীয় ফ্যাক্টর ব্যবহৃত হয় যা এই মুহূর্তে উপলব্ধ নেই। এটি রিসেট করতে একজন অ্যাডমিনের সাথে যোগাযোগ করুন।", + "secondFactorNoUI": "এই দ্বিতীয় ফ্যাক্টরটি এই স্ক্রিনে দেখানো যাবে না। একজন অ্যাডমিনের সাথে যোগাযোগ করুন।", + "serverAuthentication": "সার্ভার সাইন-ইন", + "minChars": "সর্বনিম্ন {{min}} অক্ষর" }, "hostKey": { "verifyNewHost": "SSH হোস্ট কী যাচাই করুন", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "রিসেট কোড যাচাই করতে ব্যর্থ হয়েছে", "failedCompleteReset": "পাসওয়ার্ড রিসেট সম্পন্ন করা যায়নি", "invalidTotpCode": "অবৈধ TOTP কোড", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "বাহ্যিক সাইন-ইন শুরু করতে ব্যর্থ হয়েছে", + "silentSigninOidcUnavailable": "নীরব সাইন-ইন-এর জন্য অনুরোধ করা হয়েছিল, কিন্তু কোনো বাহ্যিক সাইন-ইন সেট আপ করা নেই।", "failedUserInfo": "লগইন করার পর ব্যবহারকারীর তথ্য পেতে ব্যর্থ হয়েছে", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "বাহ্যিক সাইন-ইন ব্যর্থ হয়েছে", "invalidAuthUrl": "ব্যাকএন্ড থেকে প্রাপ্ত অনুমোদন URLটি অবৈধ।", "requiredField": "এই ক্ষেত্রটি আবশ্যক", "minLength": "সর্বনিম্ন দৈর্ঘ্য হল {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "প্রমাণীকরণ টোকেন সংরক্ষণ করতে ব্যর্থ হয়েছে", "authTokenMissing": "সার্ভারটি নতুন কোনো প্রমাণীকরণ টোকেন ফেরত দেয়নি। অনুগ্রহ করে আবার সাইন ইন করুন।", "failedToLoadServer": "সার্ভার লোড করতে ব্যর্থ হয়েছে", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "সেশনের মেয়াদ শেষ হয়ে গেছে। অনুগ্রহ করে আবার লগ ইন করুন।" }, "messages": { "registrationDisabled": "অ্যাডমিন কর্তৃক নতুন অ্যাকাউন্ট নিবন্ধন বর্তমানে বন্ধ রাখা হয়েছে। অনুগ্রহ করে লগ ইন করুন অথবা কোনো প্রশাসকের সাথে যোগাযোগ করুন।", @@ -1163,7 +1163,7 @@ "panelMain": "প্রধান", "panelSide": "পাশ", "justNow": "এইমাত্র", - "activityFileManager": "File manager" + "activityFileManager": "ফাইল ম্যানেজার" }, "donation": { "title": "টারমিক্স উপভোগ করছেন?", @@ -1188,12 +1188,12 @@ "add": "যোগ করুন:", "commandPalette": "কমান্ড প্যালেট", "done": "সম্পন্ন হয়েছে", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "কার্ডগুলোর ক্রম পরিবর্তন করতে টেনে আনুন। কলামের আকার পরিবর্তন করতে কলাম বিভাজকটি টেনে আনুন। একটি কার্ডের উচ্চতা পরিবর্তন করতে এর নিচের প্রান্তটি টেনে আনুন। একটি কার্ড মুছে ফেলতে ট্র্যাশ বাটনটি ব্যবহার করুন।", "empty": "খালি", "clear": "পরিষ্কার", "viewServerDetails": "সার্ভারের বিবরণ দেখুন", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "কলামের আকার পরিবর্তন করতে টেনে আনুন", + "hostsAvailable": "হোস্ট উপলব্ধ" }, "admin": { "sectionGeneral": "সাধারণ", @@ -1203,7 +1203,7 @@ "sectionDatabase": "ডাটাবেস", "sectionApiKeys": "এপিআই কী", "sectionAuditLog": "অডিট লগ", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS সার্টিফিকেট", "sectionBranding": "হোয়াইট লেবেল", "brandingAppName": "আবেদনের নাম", "brandingAppNameDesc": "লগইন স্ক্রিন এবং ব্রাউজার ট্যাবে দেখানো হয়। \"টারমিক্স\" ব্যবহার করতে এটি খালি রাখুন।", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "ছবিটি সঠিক নয়। ৭৫০ কেবি পর্যন্ত আকারের একটি PNG, JPEG বা WEBP ফাইল ব্যবহার করুন।", "brandingSaved": "ব্র্যান্ডিং সেটিংস সংরক্ষিত হয়েছে", "brandingSaveFailed": "ব্র্যান্ডিং সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "সার্টিফিকেটটি টারমিক্স HTTPS-এর মাধ্যমে সরবরাহ করে। আপনার নিজের সার্টিফিকেটটি এখানে আপলোড করুন, অথবা লেটস এনক্রিপ্ট-এর ACME সার্টিফিকেটস সেকশন থেকে একটি সার্টিফিকেট সংগ্রহ ও নবায়ন করুন।", "sslDocsLink": "SSL ডকুমেন্টেশন দেখুন", "sslCertStatus": "সার্টিফিকেটের অবস্থা", "sslCertStatusNone": "কোন সার্টিফিকেট নেই", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "নতুন ব্যবহারকারীদের একটি ইউজারনেম ও পাসওয়ার্ড দিয়ে স্ব-নিবন্ধন করতে দিন।", "allowPasswordLogin": "পাসওয়ার্ড লগইনের অনুমতি দিন", "allowPasswordLoginDesc": "ব্যবহারকারীর নাম/পাসওয়ার্ড লগইন", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "স্বয়ংক্রিয়ভাবে বাহ্যিক অ্যাকাউন্ট তৈরি করুন", + "oidcAutoProvisionDesc": "কেউ যখন SSO বা LDAP-এর মতো কোনো বাহ্যিক লগইনের মাধ্যমে প্রথমবার সাইন ইন করে, তখন রেজিস্ট্রেশন বন্ধ থাকলেও একটি অ্যাকাউন্ট তৈরি করুন।", + "secondFactorAfterExternalLogin": "বাহ্যিক লগইনের (এসএসও, গিটহাব, গুগল, এলড্যাপ) পর দ্বিতীয় ফ্যাক্টরের জন্য অনুরোধ করুন।", + "secondFactorAfterExternalLoginDesc": "অফ থাকলে, আগের মতোই শুধুমাত্র পাসওয়ার্ড এবং অন্যান্য লোকাল লগইনের পরেই নথিভুক্ত দ্বিতীয় ফ্যাক্টরটি চাওয়া হয়। অন থাকলে, SSO এবং LDAP সহ প্রতিটি লগইন পদ্ধতির পরেই এটি চাওয়া হয়।", "allowPasswordReset": "পাসওয়ার্ড রিসেট করার অনুমতি দিন", "allowPasswordResetDesc": "ডকার লগের মাধ্যমে কোড রিসেট করুন", "auditForwardingTitle": "SIEM-এ ফরোয়ার্ড করুন", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "অডিট ফরওয়ার্ডিং সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে", "sessionTimeout": "সেশন টাইমআউট", "hours": "ঘন্টা", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "সর্বনিম্ন ১ ঘণ্টা, সর্বোচ্চ ৭২০ ঘণ্টা", "monitoringDefaults": "ডিফল্ট নিরীক্ষণ", "statusCheck": "অবস্থা যাচাই", "sec": "সেকেন্ড", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "কোনো মেয়াদ নেই", "revokedBadge": "বাতিল করা হয়েছে", "authTypeDual": "দ্বৈত প্রমাণীকরণ", - "authTypeOidc": "External", + "authTypeOidc": "বাহ্যিক", "authTypeLocal": "স্থানীয়", "adminStatusAdministrator": "প্রশাসক", "adminStatusRegularUser": "নিয়মিত ব্যবহারকারী", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "প্রশাসক অবস্থা", "editUserUserId": "ব্যবহারকারীর আইডি", "linkAccountTitle": "অ্যাকাউন্ট লিঙ্ক করুন", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "বহিরাগত অ্যাকাউন্ট {{username}} -কে একটি বিদ্যমান স্থানীয় অ্যাকাউন্টের সাথে একীভূত করুন।", + "linkAccountDescLocal": "একটি বিদ্যমান শুধুমাত্র-বাহ্যিক অ্যাকাউন্টের সাথে একটি স্থানীয় অ্যাকাউন্ট লিঙ্ক করুন {{username}}।", "linkAccountWarningTitle": "এর ফলে:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "শুধুমাত্র বাহ্যিক ব্যবহারের জন্য নির্ধারিত অ্যাকাউন্টটি মুছে ফেলুন", + "linkAccountEffect2": "টার্গেট অ্যাকাউন্টে এর বাহ্যিক সাইন-ইন যোগ করুন।", + "linkAccountEffect3": "বাহ্যিক এবং পাসওয়ার্ড উভয় সাইন-ইনের অনুমতি দিন", "linkAccountTargetUsername": "স্থানীয় অ্যাকাউন্টের ব্যবহারকারীর নাম", "linkAccountTargetPlaceholder": "লিঙ্ক করার জন্য স্থানীয় অ্যাকাউন্টের ব্যবহারকারীর নাম লিখুন", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "বাহ্যিক অ্যাকাউন্টের ব্যবহারকারীর নাম", + "linkAccountOidcPlaceholder": "মার্জ করার জন্য শুধুমাত্র বাহ্যিক অ্যাকাউন্টের ইউজারনেমটি প্রবেশ করান।", + "linkAccountOidcNotFound": "এই ইউজারনেম দিয়ে কোনো শুধুমাত্র বাহ্যিক ব্যবহারের অ্যাকাউন্ট খুঁজে পাওয়া যায়নি।", "linkAccounts": "অ্যাকাউন্ট লিঙ্ক করুন", "linkAccountSuccess": "অ্যাকাউন্টগুলি সফলভাবে লিঙ্ক করা হয়েছে", "linkAccountFailed": "অ্যাকাউন্ট লিঙ্ক করতে ব্যর্থ হয়েছে", "linkAccountInProgress": "সংযোগ স্থাপন...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "বাহ্যিক সাইন-ইন আনলিঙ্ক করুন", + "unlinkAccountDesc": "{{username}}থেকে বাহ্যিক সাইন-ইন সরিয়ে দিন। তারা শুধুমাত্র তাদের পাসওয়ার্ড দিয়ে লগ ইন করতে পারবে।", + "unlinkAccountWarning": "এর মাধ্যমে এই অ্যাকাউন্ট থেকে বাহ্যিক সাইন-ইন বন্ধ হয়ে যাবে। লগ ইন চালিয়ে যাওয়ার জন্য ব্যবহারকারীকে অবশ্যই একটি পাসওয়ার্ড সেট করতে হবে।", + "unlinkAccount": "বাহ্যিক সাইন-ইন আনলিঙ্ক করুন", "unlinkAccountInProgress": "সংযোগ বিচ্ছিন্ন করা হচ্ছে...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "বাহ্যিক সাইন-ইন সংযোগ বিচ্ছিন্ন", + "unlinkAccountFailed": "বাহ্যিক সাইন-ইন আনলিঙ্ক করতে ব্যর্থ হয়েছে", "saving": "সঞ্চয়...", "updateRegistrationFailed": "নিবন্ধন সেটিং আপডেট করতে ব্যর্থ হয়েছে", "updatePasswordLoginFailed": "পাসওয়ার্ড লগইন সেটিং আপডেট করতে ব্যর্থ হয়েছে", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "স্বয়ংক্রিয়-সৃষ্টি সেটিং আপডেট করতে ব্যর্থ হয়েছে", + "updateSecondFactorAfterExternalLoginFailed": "দ্বিতীয় ফ্যাক্টর সেটিং আপডেট করতে ব্যর্থ হয়েছে", "updatePasswordResetFailed": "পাসওয়ার্ড রিসেট সেটিং আপডেট করতে ব্যর্থ হয়েছে", "sessionTimeoutRange2": "সেশন টাইমআউট অবশ্যই ১ থেকে ৭২০ ঘণ্টার মধ্যে হতে হবে।", "sessionTimeoutSaved": "সেশন টাইমআউট সংরক্ষিত হয়েছে", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "কোন সক্রিয় সেশন নেই", "deleteSuccessorLabel": "হোস্ট এবং পরিচয়পত্র হস্তান্তর করুন", "deleteSuccessorMe": "আমি (মুছে ফেলার অ্যাডমিন)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "কেউ না, এগুলো মুছে ফেলুন।", "deleteSuccessorDesc": "এই ব্যবহারকারীর শেয়ার করা সবকিছু নতুন মালিকের অধীনেও কাজ করতে থাকে; ‘কেউ না’ নির্বাচন করলে তাদের হোস্ট, ক্রেডেনশিয়াল এবং শেয়ারগুলো মুছে যায়।", "deleteUserDangerDesc": "{{username}} এবং তাদের সমস্ত ডেটা (হোস্ট, ক্রেডেনশিয়াল, স্নিপেট, হিস্ট্রি) স্থায়ীভাবে মুছে ফেলা হলো। এটি আর পূর্বাবস্থায় ফেরানো যাবে না।", "deleteUserConfirm": "{{username}} এবং তাদের সমস্ত ডেটা স্থায়ীভাবে মুছে ফেলা হবে?", @@ -1477,31 +1477,31 @@ "saveError": "ভূমিকার অনুমতি সংরক্ষণ করতে ব্যর্থ হয়েছে", "save": "সংরক্ষণ করুন", "saving": "সঞ্চয়...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "বৈশিষ্ট্য নিষ্ক্রিয় করা হয়েছে", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", - "admin": "Administration" + "hosts": "হোস্টরা", + "credentials": "যোগ্যতা", + "admin": "প্রশাসন" } }, "notificationPrivateEndpoints": "ব্যক্তিগত বিজ্ঞপ্তি হোস্ট অনুমোদিত", "notificationPrivateEndpointsDesc": "সুনির্দিষ্ট ব্যক্তিগত হোস্টগুলো, যাদের সাথে নোটিফিকেশন চ্যানেলগুলো যোগাযোগ করতে পারে। এগুলোকে কমা দিয়ে আলাদা করুন।", "updateNotificationEndpointsFailed": "নোটিফিকেশন এন্ডপয়েন্ট অ্যালাওলিস্ট আপডেট করতে ব্যর্থ হয়েছে", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "দ্বিতীয় কারণগুলি", + "secondFactorsNone": "কোনো দ্বিতীয় কারণ নথিভুক্ত করা হয়নি।", + "secondFactorUnavailable": "অনুপলব্ধ", + "resetSecondFactors": "দ্বিতীয় ফ্যাক্টরগুলি রিসেট করুন", + "resetSecondFactorsConfirm": "{{username}}এর জন্য প্রতি দ্বিতীয় ফ্যাক্টরটি মুছে ফেলুন? তারা তাদের পাসওয়ার্ড বা SSO দিয়ে সাইন ইন করে আবার নথিভুক্ত হতে পারবে।", + "secondFactorsResetSuccess": "দ্বিতীয় ফ্যাক্টর রিসেট করা হয়েছে", + "secondFactorsResetFailed": "দ্বিতীয় ফ্যাক্টরগুলি রিসেট করতে ব্যর্থ হয়েছে", + "passwordLoginForced": "পাসওয়ার্ড লগইন বন্ধ করা আছে, কিন্তু অন্য কোনো লগইন পদ্ধতি চালু করা নেই, তাই আপাতত এটি চালু থাকছে। এতে কেউ লগইন করতে পারবে না।", + "sslNotRenewed": "এই সার্টিফিকেটটি স্বয়ংক্রিয়ভাবে নবায়ন করা যাবে না। এর মেয়াদ {{date}}তারিখে শেষ হয়ে যাবে। ACME সার্টিফিকেট বিভাগে স্বয়ংক্রিয় নবায়ন চালু করুন, অথবা তার আগেই একটি নতুন সার্টিফিকেট আপলোড করুন।", + "sslSelfSigned": "টারমিক্স দ্বারা তৈরি সেলফ-সাইন্ড সার্টিফিকেট। ব্রাউজারগুলো এ ব্যাপারে সতর্ক করবে।", + "sslRenewedBy": "{{plugin}} দ্বারা স্বয়ংক্রিয়ভাবে নবায়ন করা হয়েছে", + "sslIssuer": "{{issuer}} দ্বারা জারি করা হয়েছে", + "sslNames": "{{names}} কভার করে", + "sslManualTitle": "একটি সার্টিফিকেট আপলোড করুন", + "updateExternalAutoProvisionFailed": "স্বয়ংক্রিয়-সৃষ্টি সেটিং আপডেট করতে ব্যর্থ হয়েছে" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "প্রোটোকল", "domainLabel": "ডোমেইন", "domainPlaceholder": "ঐচ্ছিক", - "connectToAction": "Connect to {{name}}", - "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "connectToAction": "{{name}} এর সাথে সংযোগ করুন", + "sshProtocol": "এসএসএইচ", + "noTarget": "ইনস্টল করা কোনো কিছুই এই হোস্ট টাইপের সাথে সংযোগ করতে পারবে না।" }, "keybindings": { "title": "কীবোর্ড শর্টকাট", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "টার্মিনাল এবং অ্যাপে বিভিন্ন কাজের জন্য কী-গুলো যুক্ত করুন, অথবা বিল্ট-ইন শর্টকাটগুলো পরিবর্তন করুন।", "defaultsHeading": "অন্তর্নির্মিত শর্টকাট", - "fixedHeading": "App Shortcuts", + "fixedHeading": "অ্যাপ শর্টকাট", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "ডানদিকে বিভক্ত", + "splitDown": "বিভক্ত করুন", + "zoomPane": "ফোকাস করা প্যানে জুম করুন", + "navigatePane": "প্যানগুলির মধ্যে সরান", + "nextTab": "পরবর্তী ট্যাব", + "previousTab": "পূর্ববর্তী ট্যাব", + "jumpTab": "ট্যাবে যান", + "previousView": "পূর্ববর্তী সাইডবার ভিউতে ফিরে যান", + "fullscreen": "পূর্ণস্ক্রিন টগল করুন" }, "customHeading": "কাস্টম শর্টকাট", "addBinding": "শর্টকাট যোগ করুন", @@ -1566,9 +1566,9 @@ "actionNextTab": "পরবর্তী ট্যাবে যান", "actionPreviousTab": "পূর্ববর্তী ট্যাবে যান", "actionOpenCommandPalette": "দ্রুত অনুসন্ধান খুলুন", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "বর্তমান সেশন পুনরায় সংযোগ করুন", + "unavailableAction": "{{type}} (উপলব্ধ নয়)", + "actionRequiredError": "প্রথমে একটি পদক্ষেপ বেছে নিন" }, "userProfile": { "donateTitle": "টারমিক্সকে বাঁচিয়ে রাখুন", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "সেটিংস ডিফল্ট অবস্থায় রিসেট করা হয়েছে।", "storageModeSwitch": "পছন্দের স্টোরেজ", "sectionAccount": "অ্যাকাউন্ট", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "এই ডিভাইসটি শুধুমাত্র", + "desktopProfileDescription": "এই প্রোফাইলটি এই ডিভাইসে থাকে এবং নিজে থেকেই সাইন ইন করে। প্রতিটি ডিভাইসে একই হোস্ট ও সেটিংস ব্যবহার করতে এটিকে একটি টারমিক্স সার্ভারের সাথে লিঙ্ক করুন।", "sectionInterface": "ইন্টারফেস", "interfacePresetDesc": "টারমিক্স কতটা বিস্তারিত তথ্য দেখায়। প্রতিটি ফিচারই ব্যবহারযোগ্য থাকে।", "preset_simple": "সহজ", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "লগ ইন করলে বা পৃষ্ঠা রিফ্রেশ করলে, এমনকি অন্য ডিভাইস থেকেও আপনার খোলা ট্যাবগুলি পুনরুদ্ধার করুন।", "confirmTabClose": "ট্যাব বন্ধ নিশ্চিত করুন", "confirmTabCloseDesc": "টার্মিনাল ট্যাব বন্ধ করার আগে জিজ্ঞাসা করুন।", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "ট্যাব নম্বর দেখান", + "showTabNumbersDesc": "ট্যাবগুলোকে আলাদা করতে সাহায্য করার জন্য প্রতিটি ট্যাবে একটি সংখ্যা প্রদর্শন করুন।", "settingsAppRail": "অ্যাপ রেল", "sidebarSettingsMoved": "হোস্ট সাইডবার প্রদর্শনের সেটিংস এখন হোস্ট টুলবার থেকে খোলা কাস্টমাইজ সাইডবার প্যানেলে স্থানান্তরিত হয়েছে।", "showHostTags": "হোস্ট ট্যাগগুলি দেখান", @@ -1727,7 +1727,7 @@ "importFailed": "আমদানি ব্যর্থ হয়েছে: {{error}}", "roleUser": "ব্যবহারকারী", "authMethodDual": "দ্বৈত প্রমাণীকরণ", - "authMethodOidc": "External", + "authMethodOidc": "বাহ্যিক", "done": "সম্পন্ন হয়েছে", "apiKeyNameRequired": "কী-এর নাম আবশ্যক।", "apiKeyCreated": "এপিআই কী \"{{name}}\" তৈরি করা হয়েছে", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "টোকিও রাত", "themeOneDark": "এক অন্ধকার", "themeGruvbox": "গ্রুভবক্স", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "{{server}} এ সাইন ইন করা হয়েছে", + "linkedProfileDescription": "এই ডিভাইসটি সার্ভারে আপনার অ্যাকাউন্ট ব্যবহার করে এবং আপনার ডেটার একটি অনুলিপি রাখে, তাই এটি অফলাইনেও কাজ করে।", + "manageSync": "সিঙ্ক পরিচালনা করুন", + "setUpSync": "সার্ভারের লিঙ্ক", + "settingsTabsAndShortcuts": "ট্যাব এবং শর্টকাট" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "আপনার পাসওয়ার্ড এবং চাবিগুলো দেখুন", + "consequence": "এটি আপনার নাগালের মধ্যে থাকা যেকোনো হোস্টের জন্য সংরক্ষিত গোপনীয় তথ্য পড়তে পারে।" }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "আপনার সার্ভারগুলিতে কমান্ড চালান", + "consequence": "আপনার অ্যাক্সেস ব্যবহার করে, আপনি যে হোস্টগুলিতে সংযোগ করেন সেগুলিতে যেকোনো কমান্ড।" }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "এই মেশিনে প্রোগ্রামগুলো চালান", + "consequence": "প্রোগ্রামগুলো আপনার হোস্টে নয়, সরাসরি টারমিক্স সার্ভারেই চলে।" }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "ব্যবহারকারী অ্যাকাউন্ট তৈরি এবং পরিবর্তন করুন", + "consequence": "এটি ব্যবহারকারী যুক্ত করতে এবং তাদের ভূমিকা পরিবর্তন করতে পারে।" }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "সাইন ইন পরিচালনা করুন", + "consequence": "এটি একটি লগইন পদ্ধতি, একটি দ্বিতীয় ফ্যাক্টর বা একটি SSH সাইন-ইন টাইপ যোগ করতে পারে।" }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "সার্টিফিকেট পরিচালনা করুন", + "consequence": "এটি HTTPS-এর মাধ্যমে Termix কর্তৃক প্রদত্ত সার্টিফিকেটকে প্রতিস্থাপন করতে পারে এবং সার্টিফিকেট কর্তৃপক্ষগুলোর ডোমেইন যাচাইয়ের জবাব দিতে পারে।" }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "সিরিয়াল এবং ইউএসবি ডিভাইস অ্যাক্সেস করুন", + "consequence": "এটি Termix চালিত মেশিনে একটি ফিজিক্যাল সিরিয়াল পোর্ট খুলতে পারে।" }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "হোস্ট তৈরি এবং পরিবর্তন করুন", + "consequence": "এটি দিয়ে নতুন হোস্ট যোগ করা এবং আপনার আগের হোস্টগুলো সম্পাদনা করা যায়।" }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "আপনার সার্ভারগুলির সাথে সংযোগ করুন", + "consequence": "এটি আপনার পাসওয়ার্ড বা কী দেখতে পারে না।" }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "নতুন পরিচয়পত্র সংরক্ষণ করুন", + "consequence": "এটি আপনার সংরক্ষিত ক্রেডেনশিয়ালগুলিতে পাসওয়ার্ড এবং কী যোগ করতে পারে।" }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "ইন্টারনেটে পৌঁছান", + "consequence": "এটি বাইরের পরিষেবাগুলিতে অনুরোধ পাঠাতে পারে।" }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "সংযোগ গ্রহণ করুন", + "consequence": "এটি টারমিক্স সার্ভারে একটি পোর্ট খোলে।" }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "নেটওয়ার্ক সম্প্রচার পাঠান", + "consequence": "এটি লোকাল নেটওয়ার্কের ডিভাইসগুলোতে প্যাকেট পাঠাতে পারে, যেমন একটি ওয়েক-অন-ল্যান সিগন্যাল।" }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "ব্যবহারকারীর নাম এবং ভূমিকা দেখুন", + "consequence": "কখনোই পাসওয়ার্ড হ্যাশ ব্যবহার করবেন না, কখনোই টু-ফ্যাক্টর অথেন্টিকেশন ব্যবহার করবেন না।" }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "সবকিছু ঘটতে দেখুন", + "consequence": "শুধু আপনার নয়, অন্যান্য ব্যবহারকারীদের কার্যকলাপও এর অন্তর্ভুক্ত।" }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "সতর্কতা পাঠান", + "consequence": "আপনার কাছে বা অন্যান্য ব্যবহারকারীদের কাছে, এবং তাদের তৈরি করা চ্যানেলগুলোর মাধ্যমে।" }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "প্রতিটি সতর্কতা গ্রহণ করুন", + "consequence": "সমস্ত প্লাগইন দ্বারা প্রেরিত অ্যালার্টগুলো, সেগুলোর বিষয়বস্তুসহ, সংরক্ষণ ও সরবরাহ করে।" }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "অডিট লগটি পড়ুন", + "consequence": "এটি দেখতে পারে কে কখন কী করেছে।" }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "ডেস্কটপ উইন্ডো খুলুন", + "consequence": "শুধুমাত্র Termix ডেস্কটপ অ্যাপে।" }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "অন্যান্য ব্যবহারকারীদের মতো আচরণ করুন", + "consequence": "অন্য ব্যবহারকারীর অ্যাক্সেস ব্যবহার করে ব্যাকগ্রাউন্ডে কাজ চালায়, যেমন নির্ধারিত কাজ। এর প্রতিটি ব্যবহার অডিট লগে লিপিবদ্ধ করা হয়।" }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "মূল অ্যাকাউন্ট টেবিলগুলো পড়ুন", + "consequence": "সরাসরি ডাটাবেস থেকে ব্যবহারকারী, ভূমিকা এবং হোস্ট সম্পর্কে তথ্য জানা যায়।" }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "আপনার হোস্ট তালিকা দেখুন", + "consequence": "হোস্টদের নাম ও ঠিকানা আপনি ইতিমধ্যেই দেখতে পাচ্ছেন।" }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "এর নিজস্ব ডেটা সংরক্ষণ করুন", + "consequence": "অন্যান্য প্লাগইন থেকে আলাদা, নিজস্ব টেবিলে রাখা হয়।" }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "ছোট সেটিংস মনে রাখবেন", + "consequence": "অন্যান্য প্লাগইন থেকে আলাদা রাখা হয়েছে।" }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "এর নিজস্ব ফাইল সংরক্ষণ করুন", + "consequence": "ডিস্কে এর নিজস্ব ফোল্ডারে, অন্যান্য প্লাগইন থেকে আলাদা।" }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "এর নিজস্ব গোপনীয়তা সংরক্ষণ করুন", + "consequence": "টারমিক্স দ্বারা এনক্রিপ্ট করা। প্লাগইনটি কখনোই কী ধারণ করে না।" }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "টার্মিক্স সেটিংস পড়ুন", + "consequence": "সার্ভার সেটিংস, আপনার হোস্ট বা ক্রেডেনশিয়াল নয়।" }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "ইনস্টল করা বৈশিষ্ট্যগুলি দেখুন", + "consequence": "এটি দেখতে পারে কোন ফিচারগুলো ইনস্টল করা আছে এবং চালু রয়েছে।" }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "এর নিজস্ব স্ক্রিন যোগ করুন", + "consequence": "ট্যাব, প্যানেল এবং সেটিংস যা আপনি পরে লুকাতে পারবেন।" } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} উপলব্ধ নয়", + "needsUnknownPlugin": "এই বৈশিষ্ট্যটি উপলব্ধ নয়", + "disabledHint": "এই সার্ভারে এটি বন্ধ করা আছে।", + "missingHint": "যে ফিচারটি থেকে এটি এসেছিল, সেটি সরিয়ে ফেলা হয়েছে।", + "failed": "{{name}} শুরু করা যায়নি", + "failedHint": "বিস্তারিত জানতে অ্যাডমিন সার্ভার লগ দেখতে পারেন।", + "loading": "লোড হচ্ছে {{name}}", + "crashed": "{{name}}-এ কিছু একটা ভুল হয়েছে", + "retry": "আবার চেষ্টা করুন" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "সেট", + "secretNotSet": "সেট করা হয়নি", + "secretReplace": "প্রতিস্থাপন করুন", + "pluginSettingsSaved": "সংরক্ষিত সেটিংস", + "pluginSettingsInvalid": "কিছু সেটিংস সংরক্ষণ করা যায়নি। চিহ্নিত ক্ষেত্রগুলো পরীক্ষা করুন।", + "pluginSettingsSaveFailed": "সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে", + "pluginSettingsLoadFailed": "সেটিংস লোড করতে ব্যর্থ হয়েছে", + "featureUnavailable": "{{name}} এই মুহূর্তে অনুপলব্ধ। এই সেটিংসগুলো সংরক্ষিত হয়েছে কিন্তু কার্যকর হবে না।" }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "রিফ্রেশ", + "retry": "পুনরায় চেষ্টা করুন", + "sudoHint": "বিশেষাধিকারপ্রাপ্ত কাজগুলো সক্ষম করতে হোস্ট এডিটরে এই হোস্টের জন্য একটি sudo পাসওয়ার্ড সেট করুন।", + "noData": "কোন ডেটা নেই", + "filter": "ফিল্টার..." }, "sync": { - "server": "Termix server", - "account": "Account", - "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "server": "টারমিক্স সার্ভার", + "account": "অ্যাকাউন্ট", + "status": "অবস্থা", + "never": "কখনো না", + "justNow": "এইমাত্র", + "minutesAgo_one": "{{count}} মিনিট আগে", + "minutesAgo_other": "{{count}} মিনিট আগে", + "hoursAgo_one": "{{count}} এক ঘন্টা আগে", + "hoursAgo_other": "{{count}} ঘন্টা আগে", + "actionFailed": "এটি কাজ করেনি। আবার চেষ্টা করুন।", + "unlinkedTitle": "এই ডিভাইসটি শুধুমাত্র", + "unlinkedBody": "এই ডিভাইসে টারমিক্স নিজে থেকেই কাজ করে। সবকিছু সামঞ্জস্যপূর্ণ রাখতে এটিকে আপনার টারমিক্স সার্ভারের সাথে লিঙ্ক করুন।", + "unlinkedPointHosts": "আপনার হোস্ট, ক্রেডেনশিয়াল, স্নিপেট এবং সেটিংস প্রতিটি ডিভাইসে আপনার সাথে থাকে।", + "unlinkedPointOffline": "সার্ভারের সাথে সংযোগ না থাকলেও সবকিছু ঠিকঠাক কাজ করে এবং পরে তা ঠিক হয়ে যায়।", + "unlinkedPointAccount": "আপনি আপনার সার্ভার অ্যাকাউন্ট দিয়ে সাইন ইন করেন, এবং অন্যরা আপনার সাথে যে হোস্টগুলো শেয়ার করেছে সেগুলোও এখানে দেখা যায়।", + "linkButton": "সার্ভারের লিঙ্ক", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "সিঙ্কিং", + "offline": "সার্ভার নাগালের বাইরে", + "error": "সিঙ্ক বন্ধ হয়ে গেছে", + "signedOut": "সাইন আউট করা হয়েছে", + "synced": "সিঙ্ক করা {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", - "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "pending_one": "{{count}} সিঙ্ক করার জন্য অপেক্ষারত পরিবর্তন", + "pending_other": "{{count}} সিঙ্ক হওয়ার অপেক্ষায় থাকা পরিবর্তনসমূহ", + "signInAgain": "আবার সাইন ইন করুন", + "syncNow": "এখন সিঙ্ক করুন", + "unlink": "সংযোগ বিচ্ছিন্ন করুন", + "unlinked": "এই ডিভাইসটি আর সংযুক্ত নেই।", + "unlinkTitle": "এই ডিভাইসটি আনলিঙ্ক করবেন?", + "unlinkDescription": "এটি সিঙ্ক করা বন্ধ করে দেয় এবং সার্ভার থেকে সাইন আউট করে। অন্যেরা আপনার সাথে যে হোস্টগুলো শেয়ার করে, সেগুলোও এই ডিভাইস থেকে মুছে যায়।", + "unlinkKeepTitle": "আমার ডেটা এখানে রাখুন", + "unlinkKeepBody": "আপনার হোস্ট, ক্রেডেনশিয়াল এবং সেটিংস এই ডিভাইসেই থাকে এবং স্বয়ংক্রিয়ভাবে কাজ করতে থাকে।", + "unlinkRemoveTitle": "সিঙ্ক করা ডেটা সরান", + "unlinkRemoveBody": "সার্ভার থেকে আসা সবকিছু এই ডিভাইস থেকে মুছে ফেলা হয়। শুধুমাত্র এই ডিভাইসে রাখা হোস্টগুলোই থেকে যায়।", + "conflictsTitle": "সংঘাত", + "conflictsDescription": "এগুলো এখানে এবং সার্ভারে একই সাথে পরিবর্তন করা হয়েছে। সার্ভার সংস্করণটি ব্যবহৃত হচ্ছে। এর পরিবর্তে সার্ভারে পাঠানোর জন্য আপনারটি নিজের কাছে রাখুন।", + "keepMine": "আমারটা রেখো", + "keepServer": "সার্ভার রাখুন", + "errorsTitle": "সিঙ্ক করা হয়নি", + "errorsDescription": "সার্ভার এই পরিবর্তনগুলো গ্রহণ করেনি। এগুলো এই ডিভাইসেই থেকে যাবে।", + "errorPermission": "সার্ভারে আপনার অ্যাকাউন্টটি এই পরিবর্তনটি করার অনুমতিপ্রাপ্ত নয়।", + "retry": "আবার চেষ্টা করুন", + "whatSyncs": "কী সিঙ্ক করে", + "whatSyncsDescription": "এই ডিভাইসে শুধু যা কিছু রাখতে চান, তা বন্ধ করে দিন।", + "coreGroup": "টার্মিক্স", + "notOnServer": "সার্ভারে এটি নেই", + "notOnDevice": "এই ডিভাইসে এখনও নেই", + "localOnlyHint": "আপনি এই ডিভাইসে তাদের সেটিংস থেকে একক হোস্ট বা ফোল্ডারও রাখতে পারেন।", + "originTitle": "যেখানে সংযোগ শুরু হয়", + "originDescription": "এই ডিভাইস থেকে অথবা সার্ভারের মাধ্যমে হোস্টগুলোর সাথে সংযোগ করুন। আপনি প্রতিটি হোস্টের জন্য এটি পরিবর্তন করতে পারেন।", + "originLocal": "এই ডিভাইসটি", + "originRemote": "সার্ভার", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "হোস্টরা", + "sshCredentials": "যোগ্যতা", + "sshFolders": "ফোল্ডার", + "userPreferences": "পছন্দ", + "pluginUserSettings": "বৈশিষ্ট্য সেটিংস", + "sharedHosts": "হোস্টরা আপনার সাথে শেয়ার করেছেন", + "sharedCredentials": "আপনার সাথে শেয়ার করা পরিচয়পত্র", + "vaultProfiles": "ভল্ট প্রোফাইল", + "snippetFolders": "স্নিপেট ফোল্ডার", + "snippets": "খণ্ডাংশ", + "dashboardServiceLinks": "পরিষেবা লিঙ্ক", + "homepageItems": "হোমপেজের আইটেমগুলি", + "networkTopology": "নেটওয়ার্ক মানচিত্র", + "workspaces": "কর্মক্ষেত্র" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", - "username": "Username", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "title": "বিপরীত প্রক্সি", + "description": "শুধুমাত্র তখনই প্রয়োজন হয়, যখন ক্লাউডফ্লেয়ার অ্যাক্সেস বা লগইন পেজের মতো কোনো কিছু আপনার সার্ভারের সামনে থাকে।", + "headersTitle": "অতিরিক্ত হেডার", + "headersHint": "সার্ভারে পাঠানো প্রতিটি অনুরোধের সাথে এটি পাঠানো হয়, যেমন একটি ক্লাউডফ্লেয়ার অ্যাক্সেস পরিষেবা টোকেন।", + "headerName": "হেডার নাম", + "headerValue": "মূল্য", + "savedValue": "সংরক্ষিত, পরিবর্তন করতে টাইপ করুন", + "addHeader": "হেডার যোগ করুন", + "removeHeader": "হেডার সরান", + "basicAuthTitle": "ব্যবহারকারীর নাম এবং পাসওয়ার্ড", + "basicAuthHint": "এমন কোনো প্রক্সির জন্য যা টার্মিক্সের আগে ইউজারনেম এবং পাসওয়ার্ড চায়।", + "username": "ব্যবহারকারীর নাম", + "password": "পাসওয়ার্ড", + "allowInvalidCertificate": "স্ব-স্বাক্ষরিত শংসাপত্র বিশ্বাস করুন", + "allowInvalidCertificateHint": "শুধুমাত্র আপনার নিজের সার্ভারের জন্য, যখন এর সার্টিফিকেটটি কোনো পরিচিত কর্তৃপক্ষ থেকে প্রাপ্ত নয়।", + "saved": "সংরক্ষিত" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "এটা কোনো ওয়েব ঠিকানা বলে মনে হচ্ছে না।", + "unreachable": "সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি। ঠিকানাটি যাচাই করুন এবং সার্ভারটি চালু আছে কিনা তা নিশ্চিত করুন।", + "unreachableWithReason": "সার্ভারে পৌঁছানো যায়নি: {{reason}}", + "tlsUntrusted": "সার্ভার সার্টিফিকেটটি নির্ভরযোগ্য নয়। এটি যদি আপনার নিজস্ব সার্ভার হয় এবং এতে একটি সেলফ-সাইন্ড সার্টিফিকেট থাকে, তাহলে নিচের অপশনটি চালু করুন।", + "basicAuthRequired": "সার্ভারের সামনে একটি ইউজারনেম এবং পাসওয়ার্ড চাওয়া হচ্ছে। নিচে সেগুলো প্রবেশ করান।", + "proxyLogin": "Termix-এর পরিবর্তে একটি লগইন পেজ বা প্রক্সি সাড়া দিয়েছে। নিচে প্রয়োজনীয় হেডারগুলো যোগ করুন, অথবা অ্যাড্রেসটি যাচাই করুন।", + "notTermix": "ঐ ঠিকানায় কোনো টারমিক্স সার্ভার নেই। যদি এটি কোনো পাথের অধীনে চলে, তবে সেটি অন্তর্ভুক্ত করুন, যেমন https://example.com/termix।", + "versionMismatch": "ওই সার্ভারটিতে একটি পুরোনো টারমিক্স চলছে। লিঙ্ক করার জন্য এটিকে ২.৯ বা তার নতুন সংস্করণে আপডেট করুন।", + "differentAccount": "আপনি অন্য একটি অ্যাকাউন্টে সাইন ইন করেছেন। এই ডিভাইসটি যে অ্যাকাউন্টের সাথে লিঙ্ক করা আছে, সেটিতে সাইন ইন করুন, অথবা প্রথমে আনলিঙ্ক করুন।" }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "title": "টারমিক্স সার্ভারের লিঙ্ক", + "reloginTitle": "আবার সাইন ইন করুন", + "savedServers": "সাম্প্রতিক সার্ভারগুলি", + "removeServer": "তালিকা থেকে মুছে ফেলুন", + "serverDescription": "আপনার ব্রাউজারে Termix খোলার জন্য ব্যবহৃত ঠিকানাটি লিখুন।", + "signinDescription": "{{url}} এ সাইন ইন করুন", + "chooseDescription": "এই ডিভাইসটিতে ইতিমধ্যেই ডেটা আছে। এখন কী হবে?", + "finishingDescription": "এই ডিভাইসটি সংযুক্ত করা হচ্ছে।", + "serverUrl": "সার্ভারের ঠিকানা", + "serverUrlHint": "উদাহরণস্বরূপ https://termix.example.com", + "showProxySettings": "বিপরীত প্রক্সি সেটিংস", + "hideProxySettings": "রিভার্স প্রক্সি সেটিংস লুকান", + "continue": "চালিয়ে যান", + "back": "ফিরে যান", + "mergeTitle": "আমার অ্যাকাউন্টে যোগ করুন", + "mergeBody": "এই ডিভাইসে থাকা {{count}} টি আইটেম আপনার অ্যাকাউন্টে যোগ করা হয়েছে। আপনার অ্যাকাউন্টে আগে থেকে থাকা আইটেমগুলো সার্ভারে যেমন আছে তেমনই থাকবে।", + "replaceTitle": "এটা আমার অ্যাকাউন্ট দিয়ে প্রতিস্থাপন করুন", + "replaceBody": "এই ডিভাইসে থাকা {{count}} টি আইটেম মুছে ফেলা হয়েছে, এবং এই ডিভাইসটি আপনার অ্যাকাউন্ট থেকে সবকিছু নিয়ে নিয়েছে। শুধুমাত্র এই ডিভাইসে রাখা হোস্টগুলোই থাকবে।", + "link": "লিঙ্ক", + "linking": "প্রথম সিঙ্কটি লিঙ্ক করা এবং চালানো হচ্ছে...", + "linked": "সংযুক্ত হয়েছে। আপনার ডেটা এখন সিঙ্ক হচ্ছে।", + "signedInAgain": "সাইন ইন করা হয়েছে। সিঙ্ক আবার চালু হচ্ছে।" } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "ফোল্ডার {{name}}", + "user": "আমার ডিফল্টগুলি", + "admin": "সার্ভার", + "builtin": "অন্তর্নির্মিত" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "কাস্টম", + "setHere": "এখানে সেট করুন", + "notSet": "সেট করা হয়নি", + "notSetTitle": "এর জন্য কোনো ডিফল্ট সেট করা নেই।", + "resetTitle": "এই হোস্ট তার নিজস্ব মান নির্ধারণ করে। ডিফল্ট মান ব্যবহার করতে আবার {{source}} -এ ক্লিক করুন।", + "clearTitle": "এই স্তরে সেট করা আছে। এটি সরাতে ক্লিক করুন এবং এর পরিবর্তে {{source}} ব্যবহার করুন।", + "inheritedTitle": "{{source}} থেকে ডিফল্ট অনুসরণ করে", + "titleAdmin": "সার্ভার হোস্ট ডিফল্ট", + "titleUser": "আমার হোস্ট ডিফল্ট", + "titleFolder": "ফোল্ডারের ডিফল্ট: {{name}}", + "descriptionAdmin": "এই সার্ভারের প্রতিটি হোস্টের জন্য ডিফল্ট মান নির্ধারিত আছে। একজন ব্যবহারকারীর নিজস্ব ডিফল্ট, একটি ফোল্ডারের ডিফল্ট অথবা হোস্ট নিজেও একটি ভিন্ন মান নির্ধারণ করতে পারে। এখানে কোনো ফিল্ড পরিবর্তন করে তা সেট করুন, অথবা খালি রাখতে তা অপরিবর্তিত রাখুন।", + "descriptionUser": "সার্ভারের পরিবর্তে আপনার সমস্ত হোস্টের জন্য ডিফল্ট মান নির্ধারিত থাকবে। একটি ফোল্ডার বা হোস্ট নিজেও ভিন্ন মান নির্ধারণ করতে পারে। এখানে মানটি সেট করতে কোনো ফিল্ড পরিবর্তন করুন, অথবা সেট না করতে তা খালি রাখুন।", + "descriptionFolder": "এই ফোল্ডার এবং এর সাবফোল্ডারগুলিতে থাকা হোস্টগুলির জন্য ডিফল্ট মান আপনার নিজের মানের চেয়ে বেশি প্রযোজ্য হবে। একজন হোস্ট চাইলে ভিন্ন মানও নির্ধারণ করতে পারেন। এখানে মানটি সেট করতে কোনো ফিল্ড পরিবর্তন করুন, অথবা সেট না করতে তা খালি রাখুন।", + "save": "ডিফল্টগুলি সংরক্ষণ করুন", + "saved_one": "ডিফল্টগুলো সংরক্ষিত হয়েছে। {{count}} হোস্ট আপডেট করা হয়েছে।", + "saved_other": "ডিফল্টগুলো সংরক্ষিত হয়েছে। {{count}} টি হোস্ট আপডেট করা হয়েছে।", + "savedInBackground": "ডিফল্টগুলো সংরক্ষিত হয়েছে। হোস্টগুলো ব্যাকগ্রাউন্ডে আপডেট করা হচ্ছে।", + "appliedToHosts_one": "{{count}} হোস্টটি নতুন ডিফল্ট দিয়ে আপডেট করা হয়েছে।", + "appliedToHosts_other": "{{count}} হোস্টগুলোকে নতুন ডিফল্ট দিয়ে আপডেট করা হয়েছে।", + "saveFailed": "ডিফল্টগুলি সংরক্ষণ করা যায়নি", + "loadFailed": "ডিফল্টগুলি লোড করা যায়নি", + "confirmTitle": "ডিফল্টগুলো সংরক্ষণ করবেন?", + "confirmChanges_one": "{{count}} হোস্ট এই ডিফল্টগুলো অনুসরণ করে এবং পরিবর্তিত হবে।", + "confirmChanges_other": "{{count}} হোস্টগুলো এই ডিফল্টগুলো অনুসরণ করে এবং পরিবর্তিত হবে।", + "confirmNoChanges": "বিদ্যমান হোস্টে কোনো পরিবর্তন করা যাবে না। নতুন হোস্টগুলো এই ডিফল্ট সেটিংস দিয়েই চালু হবে।", + "menuMyDefaults": "আমার হোস্ট ডিফল্ট", + "folderDefaultsAction": "ফোল্ডার ডিফল্ট", + "adminSectionDescription": "এই সার্ভারের প্রতিটি হোস্টের জন্য, প্রতিটি ফিচার সহ তার সমস্ত সেটিংয়ের ক্ষেত্রে, ডিফল্ট মান সেট করুন। ব্যবহারকারী এবং ফোল্ডারগুলো এর উপরে তাদের নিজস্ব মান সেট করতে পারে, এবং যেকোনো হোস্টও তার নিজস্ব মান ব্যবহার করতে পারবে।", + "editServerDefaults": "সার্ভারের ডিফল্টগুলি সম্পাদনা করুন", + "resetMenu": "রিসেট", + "resetAll": "সবকিছু ডিফল্টে", + "resetCore": "সংযোগ এবং SSH ডিফল্টে সেট করা হয়েছে", + "resetDone_one": "{{count}} হোস্ট এখন তার ডিফল্ট সেটিংস অনুসরণ করছে।", + "resetDone_other": "{{count}} হোস্টগুলো এখন তাদের ডিফল্ট সেটিংস অনুসরণ করে।" } } diff --git a/src/ui/locales/translated/hi_IN.json b/src/ui/locales/translated/hi_IN.json index c62d7f565..c57d10f44 100644 --- a/src/ui/locales/translated/hi_IN.json +++ b/src/ui/locales/translated/hi_IN.json @@ -55,7 +55,7 @@ "levelManage": "प्रबंधित करना", "levelUseDesc": "उपयोग: क्रेडेंशियल को होस्ट से जोड़ें और कनेक्ट करें। गुप्त जानकारी गुप्त रहती है।", "levelManageDesc": "प्रबंधन: क्रेडेंशियल को संपादित भी करें और इसे दूसरों के साथ साझा करें।", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "यह क्रेडेंशियल अभी तक साझा नहीं किया गया है", "accessRevoked": "पहुँच रद्द की गई", "shared": "क्रेडेंशियल साझा किया गया" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "पुनः व्यवस्थित करने के लिए अनलॉक करके ड्रैग करें" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "अपडेट उपलब्ध है। GitHub पर रिलीज़ नोट्स देखें।" }, "common": { "close": "बंद करें", "minimize": "न्यूनतम करें", "online": "ऑनलाइन", "offline": "ऑफ़लाइन", - "signInFailed": "Sign in failed", + "signInFailed": "भाग लेना विफल हुआ", "unknown": "अज्ञात", "continue": "जारी रखें", "maintenance": "रखरखाव", @@ -187,7 +187,7 @@ "remove": "हटाएं", "add": "जोड़ें", "update": "अपडेट करें", - "noResults": "No results found" + "noResults": "कोई परिणाम नहीं मिला" }, "onboarding": { "stepCounter": "चरण {{current}} का {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "कमांड पैलेट", "workflow_palette_desc": "किसी भी सर्वर या एक्शन पर जाने के लिए टाइप करें। इसे खोलने के लिए Shift को दो बार दबाएं।", "workflow_split": "स्प्लिट स्क्रीन", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "उदाहरण के लिए, काम करते समय लॉग देखने के लिए कई टैब को अगल-बगल दिखाएं।", "workflow_dock": "साइड पैनल", "workflow_dock_desc": "साइडबार आइकन को टैब के रूप में खोलने या उसे दाईं ओर पिन करने के लिए उस पर मध्य क्लिक करें या दायां क्लिक करें।", "securityTitle": "अपने लॉगिन को सुरक्षित रखना", @@ -248,13 +248,13 @@ "done_cli": "कमांड लाइन टूल", "done_cli_desc": "अपने सर्वरों को टर्मिनल से प्रबंधित करें, और अपने स्वयं के स्क्रिप्ट में टर्मिक्स का उपयोग करें।", "done_cli_link": "CLI दस्तावेज़ खोलें", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "आप टर्मिक्स का उपयोग कैसे करना चाहते हैं?", + "desktopBody": "आप साइडबार में सिंक विकल्प से इसे कभी भी बदल सकते हैं।", + "desktopLocalTitle": "केवल इसी डिवाइस पर", + "desktopLocalBody": "सब कुछ यहीं संग्रहित है। कुछ भी स्थापित करने की आवश्यकता नहीं है।", + "desktopLinkTitle": "मेरे टर्मिक्स सर्वर के साथ", + "desktopLinkBody": "सभी डिवाइसों पर एक ही होस्ट और सेटिंग्स का उपयोग करने के लिए अपने सर्वर में साइन इन करें।", + "desktopLinked": "{{server}} से जुड़ा हुआ" }, "nav": { "home": "होम", @@ -295,21 +295,21 @@ "collapseSideMenu": "मेनू को छोटा करें", "roleAdministrator": "प्रशासक", "roleUser": "उपयोगकर्ता", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "साथ-साथ करना", + "reconnectDisconnectedTerminals": "सभी डिस्कनेक्ट हुए टर्मिनलों को पुनः कनेक्ट करें", + "reconnectingTerminals_one": "{{count}} टर्मिनल से पुनः कनेक्ट हो रहा है", + "reconnectingTerminals_other": "{{count}} टर्मिनलों को पुनः कनेक्ट करना", + "noDisconnectedTerminals": "कोई भी डिस्कनेक्टेड टर्मिनल पुनः कनेक्ट होने के लिए तैयार नहीं है।", + "reconnectTerminalsFailed_one": "{{count}} टर्मिनल से पुनः कनेक्ट करना शुरू नहीं हो सका", + "reconnectTerminalsFailed_other": "{{count}} टर्मिनलों को पुनः कनेक्ट करना शुरू नहीं हो सका", + "fullscreenUnsupported": "इस ब्राउज़र में फ़ुलस्क्रीन समर्थित नहीं है।", + "fullscreenFailed": "फुलस्क्रीन टॉगल नहीं हो सका", + "resetSidebarWidth": "चौड़ाई रीसेट करें", + "collapseSidebar": "साइडबार को छोटा करें", + "openSidebar": "साइडबार खोलें", + "confirmCloseHost": "बंद करें {{host}}?", + "enterFullscreen": "फुलस्क्रीन मोड में जाने के लिए Ctrl+Shift+F का उपयोग करें।", + "exitFullscreen": "फुलस्क्रीन से बाहर निकलें (Ctrl+Shift+F)" }, "hosts": { "hosts": "होस्ट्स", @@ -353,7 +353,7 @@ "serverStats": "होस्ट मेट्रिक्स", "status": { "available": "उपलब्ध", - "reachable": "Up, but the last sign in failed", + "reachable": "ऊपर तो आ गया, लेकिन आखिरी बार साइन इन करने में विफल रहा।", "offline": "ऑफलाइन", "monitoringDisabled": "निगरानी अक्षम है", "label": "स्थिति" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "कीबोर्ड-इंटरैक्टिव बाध्य करें", "overrideCredentialUsername": "क्रेडेंशियल यूज़रनेम ओवरराइड करें", "overrideCredentialUsernameDesc": "क्रेडेंशियल के यूज़रनेम के बजाय ऊपर दिए गए यूज़रनेम का उपयोग करें", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "SSO या LDAP के माध्यम से साइन इन करने के लिए आपने जिस नाम का उपयोग किया है, उसे भरने के लिए $external.username का उपयोग करें।", "jumpHostChain": "जंप होस्ट श्रृंखला", "portKnocking": "पोर्ट नॉकिंग", "addKnock": "पोर्ट जोड़ें", @@ -626,14 +626,14 @@ "actionsClick": "विस्तार/संक्षिप्त करने के लिए क्लिक करें", "openOnDoubleClick": "डबल क्लिक करके खोलें", "openOnDoubleClickDesc": "होस्ट सेशन खोलने के लिए सिंगल क्लिक के बजाय डबल क्लिक की आवश्यकता होगी।", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "फ़ोल्डर पथ दिखाएँ", + "showFolderPathsDesc": "नेस्टेड सबफ़ोल्डर नामों के ऊपर पैरेंट फ़ोल्डर का पाथ दिखाएँ। सबफ़ोल्डर दोनों ही स्थितियों में इंडेंटेड रहेंगे।", + "hostClickBehavior": "किसी होस्ट पर क्लिक करना", + "hostClickBehaviorDesc": "जब आप किसी ऐसे होस्ट पर क्लिक करते हैं जिसमें पहले से ही एक टैब खुला हो तो क्या होता है? Ctrl/Cmd क्लिक, मिडिल क्लिक या \"नए टैब में खोलें\" हमेशा एक नया टैब खोलते हैं।", + "hostClickNewTab": "हमेशा एक नया टैब खोलें", + "hostClickFocusExisting": "खुले टैब पर जाएं", + "hostClickFocusExistingDoubleNew": "टैब बदलने के लिए क्लिक करें, नया टैब खोलने के लिए डबल क्लिक करें", + "openInNewTab": "वेब टेब में खोलें", "deletedHost": "{{name}} हटा दिया गया", "copiedToClipboard": "क्लिपबोर्ड पर कॉपी किया गया", "remoteDesktopUrlCopied": "रिमोट डेस्कटॉप URL कॉपी किया गया", @@ -698,7 +698,7 @@ "groupCredentials": "साख", "groupNotes": "नोट्स", "groupTags": "टैग और पिन", - "groupProxy": "Proxy", + "groupProxy": "प्रतिनिधि", "groupJumpHosts": "जंप होस्ट", "groupFeatureFlags": "फ़ीचर फ़्लैग", "groupAdvanced": "उन्नत कॉन्फ़िगरेशन", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "प्रत्येक एंडपॉइंट को एक अलग नाम की आवश्यकता होती है।", "webUiErrorPortRange": "एंडपॉइंट {{row}} को 1 और 65535 के बीच एक पोर्ट की आवश्यकता है।", "webUiErrorPathInvalid": "एंडपॉइंट {{row}} का पथ अमान्य है। कृपया /admin जैसा पथ प्रयोग करें।", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "लिंक कॉपी करें {{name}}", "filterAuthAgent": "SSH एजेंट", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "यह होस्ट {{type}}का उपयोग करता है, जिसके लिए {{plugin}}की आवश्यकता है। यह इस सर्वर पर बंद है।", + "authTypeUnknown": "यह होस्ट {{type}}का उपयोग करता है, जो इस सर्वर पर उपलब्ध नहीं है।", + "authFieldsAfterSave": "पहले होस्ट को सेव करें, फिर इन फ़ील्ड्स को भरें।", + "enablePluginFeature": "{{name}} सक्षम करें", + "disablePluginFeature": "अक्षम करें {{name}}", "filterFeaturesGroup": "विशेषताएं", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "इसे केवल इसी डिवाइस पर रखें", + "localOnlyDesc": "यह होस्ट सर्वर को नहीं भेजा जाता है और आपके अन्य उपकरणों पर दिखाई नहीं देता है।", + "folderLocalOnly": "इसे केवल इसी डिवाइस पर रखें", + "folderLocalOnlyDesc": "यह फोल्डर और इसमें मौजूद सभी होस्ट इसी डिवाइस पर रहते हैं और सर्वर पर नहीं भेजे जाते हैं।", + "sudoPasswordDesc": "इसका उपयोग तब किया जाता है जब टर्मिनल सूडो प्रॉम्प्ट को भर देता है, और उन सुविधाओं द्वारा किया जाता है जो सूडो के साथ कमांड चलाती हैं।", "editorCancel": "रद्द करें", "editorSaving": "सहेजा जा रहा है...", "editorUpdate": "होस्ट अपडेट करें", "editorAdd": "होस्ट जोड़ें", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "होस्ट खोजें। चयन के लिए तीर कुंजियों का उपयोग करें, कनेक्ट करने के लिए एंटर दबाएं, बंद करने के लिए एस्केप दबाएं।", + "speedSearchList": "मेजबानों की सूची। खोजने के लिए टाइप करें या / दबाएं।", + "importNoHosts": "फ़ाइल में कोई होस्ट नहीं मिला", + "importTooMany": "आप एक साथ अधिकतम {{max}} होस्ट आयात कर सकते हैं।", + "importSummary": "आयात पूरा हुआ: {{imported}} आयात किया गया, {{updated}} अपडेट किया गया, {{failed}} विफल रहा", + "importHostsFailed": "होस्ट आयात करने में विफल" }, "commandPalette": { "searchPlaceholder": "होस्ट, कमांड या सेटिंग खोजें...", @@ -898,57 +898,57 @@ "select": "चुनें", "toggleWith": "इसके साथ टॉगल करें", "pluginActions": "अधिक कार्रवाइयां", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "कोई टर्मिनल टैब खुला नहीं है" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "स्प्लिट स्क्रीन", + "defaultLabel": "स्प्लिट {{number}}", "splitRight": "दाएं विभाजित करें", "splitDown": "नीचे विभाजित करें", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "{{split}} में जोड़ें", + "paneEmptyItem": "फलक {{index}}: खाली", + "paneItem": "फलक {{index}}: {{label}}", "paneNumber": "पेन {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "दाईं ओर नया फलक", + "newPaneBelow": "नीचे नया फलक", + "emptyTitle": "खाली फलक", + "emptyHint": "यहां दिखाने के लिए कोई चीज़ चुनें। जब तक यह पैनल चुना हुआ है, साइडबार से आप जो भी खोलेंगे, वह यहीं खुलेगा।", + "openTabs": "टैब खोलें", + "noOpenTabs": "कोई अन्य टैब खुले नहीं हैं", "hosts": "होस्ट", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", + "searchHosts": "होस्ट खोजें", + "noHosts": "कोई मेजबान मेल नहीं खाता", "newSession": "नया", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "फलक बंद करें", + "closeSession": "सत्र बंद करें", + "moveToTab": "इसे अलग टैब में ले जाएं", + "swapWith": "इसके साथ अदला-बदली करें", + "showHere": "इस फलक में दिखाएँ", + "clearPane": "इस फलक को खाली करें", + "zoom": "ज़ूम फलक", + "unzoom": "लेआउट पुनर्स्थापित करें", + "unsplit": "अविभाजित", + "layouts": "लेआउट", + "applyLayout": "लेआउट बदलें", + "newSplit": "नया विभाजन", + "maxPanes": "एक स्प्लिट में अधिकतम {{count}} पैन हो सकते हैं", + "dropSplit": "विभाजित करने के लिए गिराएँ", + "dropHere": "यहां दिखाने के लिए ड्रॉप करें", + "paneActions": "फलक क्रियाएँ", + "dividerHint": "आकार बदलने के लिए खींचें। बराबर करने के लिए दो बार क्लिक करें।", + "openInSplit": "स्प्लिट में खोलें", + "openInNewSplit": "मौजूदा टैब के साथ नया विभाजन", + "shortcuts": "शॉर्टकट", + "shortcutNavigate": "पैन के बीच मूव करें", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "दो अगल-बगल", + "rows2": "दो ढेर", + "columns3": "तीन एक साथ", + "mainLeft3": "एक बाएँ, दो दाएँ", + "mainBottom3": "दो ऊपर, एक नीचे", + "grid4": "चार का ग्रिड", + "grid5": "तीन बटे दो", + "grid6": "छह का ग्रिड" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "प्रमाणित करना", "mfaPushRequired": "पुश प्रमाणीकरण आवश्यक है", "mfaMenuPlaceholder": "अपना जवाब दर्ज करें", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "कोड या \"पुश\"", "mfaWaitingApproval": "आपके डिवाइस की स्वीकृति का इंतजार है...", "mfaSendRequest": "अनुरोध भेजा", "browserSignInCode": "सुरक्षा कुंजी", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "साइन-इन यूआरएल", "browserSignInOpen": "ब्राउज़र में खोलें", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "मैंने साइन-इन पूरा कर लिया है", + "browserSignInRequired": "{{provider}} साइन इन करना आवश्यक है", "connectionLogTitle": "कनेक्शन लॉग", "connectionLogCopy": "क्लिपबोर्ड पर लॉग कॉपी करें", "connectionLogEmpty": "अभी तक कोई कनेक्शन लॉग नहीं", @@ -1032,7 +1032,7 @@ "external": "बाहरी", "loginWithExternal": "बाहरी प्रदाता से लॉगिन करें", "loginWithExternalDesc": "अपने कॉन्फ़िगर किए गए बाहरी पहचान प्रदाता का उपयोग करके लॉगिन करें", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "डेस्कटॉप ऐप में अभी बाहरी साइन-इन की सुविधा उपलब्ध नहीं है। कृपया वेब संस्करण का उपयोग करें।", "loginWithProvider": "{{name}} से लॉगिन करें", "orContinueWith": "या इसके साथ जारी रखें", "resetPasswordButton": "पासवर्ड रीसेट करें", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "{{count}} प्रयास शेष", "confirmResetDataWipe": "एन्क्रिप्शन अपग्रेड के बाद से इस खाते ने लॉगिन नहीं किया है, इसलिए पुराने पासवर्ड के बिना इसका संग्रहीत डेटा पुनर्प्राप्त नहीं किया जा सकता। रीसेट करने से इसके होस्ट, क्रेडेंशियल और स्निपेट स्थायी रूप से हटा दिए जाएंगे। जारी रखें?", "password": "पासवर्ड", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "आपके खाते में एक दूसरा फैक्टर फैक्टर इस्तेमाल होता है जो अभी उपलब्ध नहीं है। इसे रीसेट करने के लिए एडमिन से संपर्क करें।", + "secondFactorNoUI": "यह दूसरा कारक इस स्क्रीन पर नहीं दिखाया जा सकता। कृपया व्यवस्थापक से संपर्क करें।", + "serverAuthentication": "सर्वर साइन-इन", + "minChars": "न्यूनतम {{min}} अक्षर" }, "hostKey": { "verifyNewHost": "SSH होस्ट कुंजी सत्यापित करें", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "रीसेट कोड सत्यापित करने में विफल", "failedCompleteReset": "पासवर्ड रीसेट पूरा करने में विफल", "invalidTotpCode": "अमान्य TOTP कोड", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "बाहरी साइन-इन शुरू करने में विफल", + "silentSigninOidcUnavailable": "साइलेंट साइन-इन का अनुरोध किया गया था, लेकिन कोई बाहरी साइन-इन सेट अप नहीं किया गया है।", "failedUserInfo": "लॉगिन के बाद उपयोगकर्ता जानकारी प्राप्त करने में विफल", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "बाहरी साइन-इन विफल रहा", "invalidAuthUrl": "बैकएंड से अमान्य प्राधिकरण URL प्राप्त हुआ", "requiredField": "यह फ़ील्ड आवश्यक है", "minLength": "न्यूनतम लंबाई {{min}} है", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "प्रमाणीकरण टोकन सहेजने में विफल", "authTokenMissing": "सर्वर ने नया प्रमाणीकरण टोकन नहीं भेजा। कृपया दोबारा साइन इन करें।", "failedToLoadServer": "सर्वर लोड करने में विफल", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "सत्र समाप्त हो गया है। कृपया दोबारा लॉग इन करें।" }, "messages": { "registrationDisabled": "नया खाता पंजीकरण वर्तमान में व्यवस्थापक द्वारा अक्षम है। कृपया लॉग इन करें या व्यवस्थापक से संपर्क करें।", @@ -1163,7 +1163,7 @@ "panelMain": "मुख्य", "panelSide": "साइड", "justNow": "अभी-अभी", - "activityFileManager": "File manager" + "activityFileManager": "फ़ाइल मैनेजर" }, "donation": { "title": "टर्मिक्स का आनंद ले रहे हैं?", @@ -1188,12 +1188,12 @@ "add": "जोड़ें:", "commandPalette": "कमांड पैलेट", "done": "पूर्ण", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "कार्डों को खींचकर उनका क्रम बदलें। कॉलम विभाजक को खींचकर कॉलम का आकार बदलें। कार्ड की ऊंचाई बदलने के लिए उसके निचले किनारे को खींचें। कार्ड हटाने के लिए ट्रैश बटन का उपयोग करें।", "empty": "खाली", "clear": "साफ़ करें", "viewServerDetails": "सर्वर विवरण देखें", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "कॉलम का आकार बदलने के लिए खींचें", + "hostsAvailable": "मेजबान उपलब्ध हैं" }, "admin": { "sectionGeneral": "सामान्य", @@ -1203,7 +1203,7 @@ "sectionDatabase": "डेटाबेस", "sectionApiKeys": "API कुंजियाँ", "sectionAuditLog": "ऑडिट लॉग", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS प्रमाणपत्र", "sectionBranding": "सफेद उपनाम", "brandingAppName": "आवेदन का नाम", "brandingAppNameDesc": "लॉगिन स्क्रीन और ब्राउज़र टैब पर प्रदर्शित होता है। \"टर्मिक्स\" का उपयोग करने के लिए इसे खाली छोड़ दें।", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "अमान्य छवि। कृपया 750 केबी तक की PNG, JPEG या WEBP फ़ाइल का उपयोग करें।", "brandingSaved": "ब्रांडिंग सेटिंग्स सहेजी गईं", "brandingSaveFailed": "ब्रांडिंग सेटिंग्स सहेजने में विफल", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "टर्मिक्स HTTPS पर प्रमाणपत्र प्रदान करता है। आप अपना प्रमाणपत्र यहाँ अपलोड कर सकते हैं, या ACME प्रमाणपत्र अनुभाग में Let's Encrypt से प्रमाणपत्र प्राप्त कर सकते हैं और उसे नवीनीकृत कर सकते हैं।", "sslDocsLink": "SSL दस्तावेज़ देखें", "sslCertStatus": "प्रमाणपत्र स्थिति", "sslCertStatusNone": "कोई प्रमाणपत्र नहीं", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "नए उपयोगकर्ताओं को उपयोगकर्ता नाम और पासवर्ड के साथ स्वयं पंजीकरण करने दें", "allowPasswordLogin": "पासवर्ड लॉगिन की अनुमति दें", "allowPasswordLoginDesc": "उपयोगकर्ता नाम/पासवर्ड लॉगिन", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "बाह्य खाते स्वतः बनाएँ", + "oidcAutoProvisionDesc": "जब कोई व्यक्ति एसएसओ या एलडीएपी जैसे बाहरी लॉगिन के माध्यम से पहली बार साइन इन करता है, तो पंजीकरण बंद होने पर भी एक खाता बनाएं।", + "secondFactorAfterExternalLogin": "बाहरी लॉगिन (एसएसओ, गिटहब, गूगल, एलडीएपी) के बाद दूसरे फैक्टर की मांग करें।", + "secondFactorAfterExternalLoginDesc": "बंद होने पर, पासवर्ड और अन्य स्थानीय लॉगिन के बाद ही पंजीकृत द्वितीय कारक प्रमाणीकरण मांगा जाता है, जैसा कि पहले होता था। चालू होने पर, एसएसओ और एलडीएपी सहित प्रत्येक लॉगिन विधि के बाद इसे मांगा जाता है।", "allowPasswordReset": "पासवर्ड रीसेट की अनुमति दें", "allowPasswordResetDesc": "Docker लॉग के माध्यम से रीसेट कोड", "auditForwardingTitle": "SIEM को अग्रेषित करें", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "ऑडिट फ़ॉरवर्डिंग सेटिंग्स को सहेजने में विफलता", "sessionTimeout": "सत्र टाइमआउट", "hours": "घंटे", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "न्यूनतम 1 घंटा, अधिकतम 720 घंटे", "monitoringDefaults": "निगरानी डिफ़ॉल्ट", "statusCheck": "स्थिति जाँच", "sec": "सेकंड", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "व्यवस्थापक स्थिति", "editUserUserId": "उपयोगकर्ता आईडी", "linkAccountTitle": "खाते लिंक करें", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "बाह्य खाते {{username}} को मौजूदा स्थानीय खाते के साथ मर्ज करें।", + "linkAccountDescLocal": "किसी स्थानीय खाते को {{username}} किसी मौजूदा बाहरी खाते से लिंक करें।", "linkAccountWarningTitle": "यह होगा:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "केवल बाहरी खाते को हटाएँ", + "linkAccountEffect2": "इसके बाहरी साइन-इन को लक्षित खाते में जोड़ें", + "linkAccountEffect3": "बाहरी और पासवर्ड दोनों तरह के साइन-इन की अनुमति दें", "linkAccountTargetUsername": "स्थानीय खाते का उपयोगकर्ता नाम", "linkAccountTargetPlaceholder": "लिंक करने के लिए स्थानीय खाते का उपयोगकर्ता नाम दर्ज करें", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "बाह्य खाता उपयोगकर्ता नाम", + "linkAccountOidcPlaceholder": "विलय करने के लिए केवल बाहरी खाते का उपयोगकर्ता नाम दर्ज करें", + "linkAccountOidcNotFound": "उस उपयोगकर्ता नाम से कोई बाहरी खाता नहीं मिला।", "linkAccounts": "खाते लिंक करें", "linkAccountSuccess": "खाते सफलतापूर्वक लिंक किए गए", "linkAccountFailed": "खाते लिंक करने में विफल", "linkAccountInProgress": "लिंक हो रहा है...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "बाहरी साइन-इन को अनलिंक करें", + "unlinkAccountDesc": "{{username}}से बाहरी साइन-इन हटा दें। वे केवल अपने पासवर्ड से ही लॉग इन कर पाएंगे।", + "unlinkAccountWarning": "इससे इस खाते से बाहरी साइन-इन हटा दिया जाएगा। लॉग इन करते रहने के लिए उपयोगकर्ता को पासवर्ड सेट करना होगा।", + "unlinkAccount": "बाहरी साइन-इन को अनलिंक करें", "unlinkAccountInProgress": "अनलिंक हो रहा है...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "बाहरी साइन-इन अनलिंक किया गया", + "unlinkAccountFailed": "बाहरी साइन-इन को अनलिंक करने में विफल", "saving": "सहेजा जा रहा है...", "updateRegistrationFailed": "पंजीकरण सेटिंग अपडेट करने में विफल", "updatePasswordLoginFailed": "पासवर्ड लॉगिन सेटिंग अपडेट करने में विफल", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "ऑटो-क्रिएट सेटिंग को अपडेट करने में विफलता", + "updateSecondFactorAfterExternalLoginFailed": "द्वितीय कारक सेटिंग को अपडेट करने में विफल", "updatePasswordResetFailed": "पासवर्ड रीसेट सेटिंग अपडेट करने में विफल", "sessionTimeoutRange2": "सत्र समय-सीमा 1 से 720 घंटों के बीच होनी चाहिए", "sessionTimeoutSaved": "सेशन टाइमआउट सहेजा गया", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "कोई सक्रिय सत्र नहीं", "deleteSuccessorLabel": "होस्ट और क्रेडेंशियल्स को सौंप दें", "deleteSuccessorMe": "मैं (डिलीट करने वाला एडमिन)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "कोई नहीं, इन्हें हटा दो", "deleteSuccessorDesc": "इस उपयोगकर्ता द्वारा साझा की गई हर चीज़ नए मालिक के अधीन काम करती रहती है; 'किसी को नहीं' चुनने से उनके होस्ट, क्रेडेंशियल और शेयर हट जाते हैं।", "deleteUserDangerDesc": "{{username}} और उनके सभी डेटा (होस्ट, क्रेडेंशियल, स्निपेट, इतिहास) को स्थायी रूप से हटाएं। इसे पूर्ववत नहीं किया जा सकता।", "deleteUserConfirm": "{{username}} और उनके सभी डेटा को स्थायी रूप से हटाएं?", @@ -1477,31 +1477,31 @@ "saveError": "भूमिका अनुमतियाँ सहेजने में विफल", "save": "सहेजें", "saving": "सहेज रहा है...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "यह सुविधा अक्षम है", "groups": { "hosts": "होस्ट", "credentials": "क्रेडेंशियल्स", - "admin": "Administration" + "admin": "प्रशासन" } }, "notificationPrivateEndpoints": "निजी अधिसूचना होस्टों को अनुमति दी गई", "notificationPrivateEndpointsDesc": "वे सटीक निजी होस्ट जिनके साथ नोटिफिकेशन चैनल संपर्क कर सकते हैं। इन्हें अल्पविराम से अलग करें।", "updateNotificationEndpointsFailed": "नोटिफिकेशन एंडपॉइंट की अनुमति सूची को अपडेट करने में विफलता", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "दूसरे कारक", + "secondFactorsNone": "कोई दूसरा कारक नामांकित नहीं है", + "secondFactorUnavailable": "अनुपलब्ध", + "resetSecondFactors": "दूसरे कारकों को रीसेट करें", + "resetSecondFactorsConfirm": "{{username}}के लिए हर दूसरे कारक को हटा दें? वे अपने पासवर्ड या एसएसओ के साथ साइन इन कर सकते हैं और फिर से नामांकन कर सकते हैं।", + "secondFactorsResetSuccess": "दूसरे कारक रीसेट करते हैं", + "secondFactorsResetFailed": "दूसरे कारकों को रीसेट करने में विफल", + "passwordLoginForced": "पासवर्ड लॉगिन बंद है, लेकिन कोई अन्य लॉगिन विधि सक्षम नहीं है, इसलिए यह फिलहाल चालू रहेगा। किसी को भी लॉग आउट होने की समस्या नहीं होगी।", + "sslNotRenewed": "इस प्रमाणपत्र का नवीनीकरण नहीं होता है। इसकी समय सीमा {{date}}है। ACME प्रमाणपत्र अनुभाग में स्वचालित नवीनीकरण चालू करें, या इससे पहले एक नया प्रमाणपत्र अपलोड करें।", + "sslSelfSigned": "टर्मिक्स द्वारा निर्मित स्व-हस्ताक्षरित प्रमाणपत्र। ब्राउज़र इसके बारे में चेतावनी देंगे।", + "sslRenewedBy": "{{plugin}} द्वारा स्वचालित रूप से नवीनीकृत", + "sslIssuer": "{{issuer}} द्वारा जारी किया गया", + "sslNames": "कवर {{names}}", + "sslManualTitle": "प्रमाणपत्र अपलोड करें", + "updateExternalAutoProvisionFailed": "ऑटो-क्रिएट सेटिंग को अपडेट करने में विफलता" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "शिष्टाचार", "domainLabel": "कार्यक्षेत्र", "domainPlaceholder": "वैकल्पिक", - "connectToAction": "Connect to {{name}}", + "connectToAction": "{{name}} से कनेक्ट करें", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "इस होस्ट प्रकार से कोई भी स्थापित चीज़ कनेक्ट नहीं हो सकती।" }, "keybindings": { "title": "कुंजीपटल अल्प मार्ग", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "टर्मिनल और ऐप में क्रियाओं के लिए कुंजियों को बाइंड करें, या अंतर्निहित शॉर्टकट बदलें।", "defaultsHeading": "अंतर्निर्मित शॉर्टकट", - "fixedHeading": "App Shortcuts", + "fixedHeading": "ऐप शॉर्टकट", "fixed": { "splitRight": "दाएं विभाजित करें", "splitDown": "नीचे विभाजित करें", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "फोकस किए गए फलक को ज़ूम करें", + "navigatePane": "पैन के बीच मूव करें", "nextTab": "अगला टैब", "previousTab": "पिछला टैब", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "टैब पर जाएं", + "previousView": "पिछली साइडबार व्यू पर वापस जाएँ", + "fullscreen": "संपूर्ण स्क्रीन टॉगल करें" }, "customHeading": "कस्टम शॉर्टकट", "addBinding": "छोटा रास्ता जोडें", @@ -1566,9 +1566,9 @@ "actionNextTab": "अगले टैब पर जाएं", "actionPreviousTab": "पिछले टैब पर जाएं", "actionOpenCommandPalette": "त्वरित खोज खोलें", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "वर्तमान सत्र से पुनः कनेक्ट करें", + "unavailableAction": "{{type}} (उपलब्ध नहीं)", + "actionRequiredError": "पहले कोई कार्रवाई चुनें" }, "userProfile": { "donateTitle": "Termix को जीवित रखें", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "सेटिंग्स डिफ़ॉल्ट पर रीसेट कर दी गई हैं।", "storageModeSwitch": "वरीयता संग्रहण", "sectionAccount": "खाता", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "यह उपकरण केवल", + "desktopProfileDescription": "यह प्रोफ़ाइल इसी डिवाइस पर रहती है और अपने आप लॉग इन हो जाती है। इसे टर्मिक्स सर्वर से लिंक करें ताकि हर डिवाइस पर एक ही होस्ट और सेटिंग्स का इस्तेमाल हो सके।", "sectionInterface": "इंटरफ़ेस", "interfacePresetDesc": "टर्मिक्स कितनी बारीकी से जानकारी दिखाता है। हर फ़ीचर हमेशा उपलब्ध रहता है।", "preset_simple": "सरल", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "लॉग इन करने या पेज रिफ्रेश करने पर, दूसरे डिवाइस से भी, अपने खुले टैब पुनर्स्थापित करें", "confirmTabClose": "टैब बंद करने की पुष्टि करें", "confirmTabCloseDesc": "टर्मिनल टैब बंद करने से पहले पूछें", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "टैब नंबर दिखाएँ", + "showTabNumbersDesc": "प्रत्येक टैब पर एक संख्या प्रदर्शित करें ताकि उन्हें अलग-अलग पहचानने में मदद मिल सके।", "settingsAppRail": "ऐप रेल", "sidebarSettingsMoved": "होस्ट साइडबार डिस्प्ले सेटिंग्स को कस्टमाइज़ साइडबार पैनल में स्थानांतरित कर दिया गया है, जिसे होस्ट टूलबार से खोला जा सकता है।", "showHostTags": "होस्ट टैग दिखाएं", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "टोक्यो नाइट", "themeOneDark": "वन डार्क", "themeGruvbox": "ग्रुवबॉक्स", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "{{server}} में लॉग इन किया गया", + "linkedProfileDescription": "यह डिवाइस सर्वर पर आपके खाते का उपयोग करता है और आपके डेटा की एक प्रति सुरक्षित रखता है, इसलिए यह ऑफलाइन भी काम करता है।", + "manageSync": "सिंक प्रबंधित करें", + "setUpSync": "सर्वर का लिंक", + "settingsTabsAndShortcuts": "टैब और शॉर्टकट" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "अपने पासवर्ड और कुंजी देखें", + "consequence": "यह आपके द्वारा पहुंच योग्य किसी भी होस्ट के लिए संग्रहीत गुप्त जानकारी को पढ़ सकता है।" }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "अपने सर्वरों पर कमांड चलाएँ", + "consequence": "आप जिन होस्ट से कनेक्ट करते हैं, उन पर आपके एक्सेस के साथ कोई भी कमांड चलाया जा सकता है।" }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "इस मशीन पर प्रोग्राम चलाएँ", + "consequence": "प्रोग्राम टर्मिक्स सर्वर पर ही चलते हैं, आपके होस्ट पर नहीं।" }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "उपयोगकर्ता खाते बनाएं और बदलें", + "consequence": "यह उपयोगकर्ताओं को जोड़ सकता है और उनकी भूमिकाओं को बदल सकता है।" }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "साइन इन करें", + "consequence": "यह लॉगिन विधि, दूसरा फैक्टर या एसएसएच साइन-इन प्रकार जोड़ सकता है।" }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "प्रमाणपत्र प्रबंधित करें", + "consequence": "यह HTTPS पर Termix द्वारा प्रदान किए जाने वाले प्रमाणपत्र को प्रतिस्थापित कर सकता है और प्रमाणपत्र प्राधिकरणों से डोमेन जांच का जवाब दे सकता है।" }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "सीरियल और यूएसबी डिवाइसों तक पहुंचें", + "consequence": "यह टर्मिक्स चलाने वाली मशीन पर एक फिजिकल सीरियल पोर्ट खोल सकता है।" }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "होस्ट बनाएं और बदलें", + "consequence": "यह होस्ट जोड़ सकता है और आपके पास पहले से मौजूद होस्ट को संपादित कर सकता है।" }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "अपने सर्वरों से कनेक्ट करें", + "consequence": "यह आपके पासवर्ड या कुंजी नहीं देख सकता है।" }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "नए क्रेडेंशियल सहेजें", + "consequence": "यह आपके सहेजे गए क्रेडेंशियल्स में पासवर्ड और कुंजी जोड़ सकता है।" }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "इंटरनेट तक पहुंचें", + "consequence": "यह बाहरी सेवाओं को अनुरोध भेज सकता है।" }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "कनेक्शन स्वीकार करें", + "consequence": "यह टर्मिक्स सर्वर पर एक पोर्ट खोलता है।" }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "नेटवर्क प्रसारण भेजें", + "consequence": "यह स्थानीय नेटवर्क पर मौजूद उपकरणों को पैकेट भेज सकता है, जैसे कि वेक-ऑन-लैन सिग्नल।" }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "उपयोगकर्ता नाम और भूमिकाएँ देखें", + "consequence": "पासवर्ड हैश का कभी इस्तेमाल न करें, न ही दो-कारक सुरक्षा का।" }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "सब कुछ होते हुए देखें", + "consequence": "इसमें न केवल आपके बल्कि अन्य उपयोगकर्ताओं की गतिविधियां भी शामिल हैं।" }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "अलर्ट भेजें", + "consequence": "आप तक या अन्य उपयोगकर्ताओं तक, और उनके द्वारा स्थापित चैनलों के माध्यम से।" }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "हर अलर्ट प्राप्त करें", + "consequence": "यह प्लगइन्स द्वारा भेजे गए सभी अलर्ट्स को, उनकी सामग्री सहित, संग्रहीत और वितरित करता है।" }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "ऑडिट लॉग पढ़ें", + "consequence": "यह देख सकता है कि किसने क्या किया और कब किया।" }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "डेस्कटॉप विंडो खोलें", + "consequence": "केवल टर्मिक्स डेस्कटॉप ऐप में।" }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "अन्य उपयोगकर्ताओं की तरह कार्य करें", + "consequence": "यह किसी अन्य उपयोगकर्ता की अनुमति से पृष्ठभूमि में कार्य करता है, जैसे कि निर्धारित कार्य। प्रत्येक उपयोग को ऑडिट लॉग में दर्ज किया जाता है।" }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "कोर अकाउंट टेबल पढ़ें", + "consequence": "डेटाबेस से सीधे उपयोगकर्ताओं, भूमिकाओं और होस्ट्स के बारे में जानकारी प्राप्त की जा सकती है।" }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "अपनी मेज़बान सूची देखें", + "consequence": "आप पहले से ही मेजबानों के नाम और पते देख सकते हैं।" }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "अपना डेटा स्वयं संग्रहीत करें", + "consequence": "इसे अन्य प्लगइन्स से अलग, अपनी ही तालिकाओं में रखा गया है।" }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "छोटी-छोटी बातों का ध्यान रखें", + "consequence": "इसे अन्य प्लगइन्स से अलग रखा गया है।" }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "अपनी फ़ाइलें संग्रहीत करें", + "consequence": "डिस्क पर अन्य प्लगइन्स से अलग, अपने स्वयं के फ़ोल्डर में।" }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "अपने रहस्यों को संजोकर रखें", + "consequence": "टर्मिक्स द्वारा एन्क्रिप्टेड। प्लगइन कभी भी कुंजी को अपने पास नहीं रखता है।" }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "टर्मिक्स सेटिंग्स पढ़ें", + "consequence": "सर्वर सेटिंग्स, न कि आपके होस्ट या क्रेडेंशियल्स।" }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "स्थापित सुविधाओं को देखें", + "consequence": "यह देख सकता है कि कौन-कौन सी सुविधाएं स्थापित हैं और चल रही हैं।" }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "अपनी खुद की स्क्रीन जोड़ें", + "consequence": "आप बाद में टैब, पैनल और सेटिंग्स को छिपा सकते हैं।" } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} उपलब्ध नहीं है", + "needsUnknownPlugin": "यह सुविधा उपलब्ध नहीं है", + "disabledHint": "इस सर्वर पर यह बंद है।", + "missingHint": "जिस फीचर से यह आया था, उसे हटा दिया गया है।", + "failed": "{{name}} शुरू नहीं हो सका", + "failedHint": "एडमिन सर्वर लॉग्स में विस्तृत जानकारी प्राप्त कर सकता है।", + "loading": "लोडिंग {{name}}", + "crashed": "{{name}} में कुछ गड़बड़ हो गई", + "retry": "पुनः प्रयास करें" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "तय करना", + "secretNotSet": "सेट नहीं", "secretReplace": "बदलें", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "सेटिंग्स को सहेजा गया", + "pluginSettingsInvalid": "कुछ सेटिंग्स सेव नहीं हो सकीं। हाइलाइट किए गए फ़ील्ड्स को चेक करें।", + "pluginSettingsSaveFailed": "सेटिंग्स सहेजने में विफल", + "pluginSettingsLoadFailed": "सेटिंग्स लोड करने में विफल", + "featureUnavailable": "{{name}} अभी उपलब्ध नहीं है। ये सेटिंग्स सहेज ली गई हैं, लेकिन अभी प्रभावी नहीं होंगी।" }, "managerCard": { "refresh": "रीफ़्रेश", @@ -1913,169 +1913,169 @@ "filter": "फ़िल्टर..." }, "sync": { - "server": "Termix server", + "server": "टर्मिक्स सर्वर", "account": "खाता", "status": "स्थिति", "never": "कभी नहीं", "justNow": "अभी", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} मिनट पहले", + "minutesAgo_other": "{{count}} मिनट पहले", + "hoursAgo_one": "{{count}} घंटा पहले", + "hoursAgo_other": "{{count}} घंटे पहले", + "actionFailed": "यह काम नहीं किया। पुनः प्रयास करें।", + "unlinkedTitle": "यह उपकरण केवल", + "unlinkedBody": "इस डिवाइस पर टर्मिक्स अपने आप काम करता है। सब कुछ सुचारू रूप से चलाने के लिए इसे अपने टर्मिक्स सर्वर से लिंक करें।", + "unlinkedPointHosts": "आपके होस्ट, क्रेडेंशियल, स्निपेट और सेटिंग्स हर डिवाइस पर आपके साथ रहते हैं।", + "unlinkedPointOffline": "जब सर्वर तक पहुंच संभव न हो तब भी सब कुछ ठीक से काम करता है और बाद में स्थिति सामान्य हो जाती है।", + "unlinkedPointAccount": "आप अपने सर्वर खाते से लॉग इन करते हैं, और जिन लोगों ने आपके साथ सर्वर साझा किए हैं, वे होस्ट भी यहां दिखाई देते हैं।", + "linkButton": "सर्वर का लिंक", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "सिंक्रनाइज़ किए जा रहे", + "offline": "सर्वर पहुंच योग्य नहीं है", + "error": "सिंक्रोनाइज़ेशन बंद हो गया", + "signedOut": "लॉग आउट", + "synced": "सिंक्रनाइज़्ड {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} परिवर्तन सिंक होने की प्रतीक्षा कर रहा है", + "pending_other": "{{count}} परिवर्तन सिंक होने की प्रतीक्षा कर रहे हैं", + "signInAgain": "दोबारा लॉग इन करें", + "syncNow": "अभी सिंक करें", + "unlink": "अनलिंक", + "unlinked": "यह डिवाइस अब लिंक नहीं है", + "unlinkTitle": "क्या आप इस डिवाइस को अनलिंक करना चाहते हैं?", + "unlinkDescription": "यह सिंक्रोनाइज़ेशन बंद कर देता है और सर्वर से लॉग आउट हो जाता है। दूसरों द्वारा आपके साथ साझा किए गए होस्ट किसी भी स्थिति में इस डिवाइस से हटा दिए जाते हैं।", + "unlinkKeepTitle": "मेरा डेटा यहीं रखें", + "unlinkKeepBody": "आपके होस्ट, क्रेडेंशियल और सेटिंग्स इसी डिवाइस पर रहते हैं और अपने आप काम करते रहते हैं।", + "unlinkRemoveTitle": "सिंक्रनाइज़ किए गए डेटा को हटाएँ", + "unlinkRemoveBody": "सर्वर से आने वाली हर चीज़ इस डिवाइस से हटा दी जाती है। इस डिवाइस पर केवल होस्ट ही रहते हैं।", + "conflictsTitle": "संघर्ष", + "conflictsDescription": "इनमें बदलाव यहाँ और सर्वर पर एक साथ किए गए थे। सर्वर वाला वर्शन अभी इस्तेमाल में है। आप अपना वर्शन सर्वर पर भेजने के लिए रख सकते हैं।", + "keepMine": "मेरा वाला रख लो", + "keepServer": "सर्वर रखें", + "errorsTitle": "सिंक्रोनाइज़ नहीं हुआ", + "errorsDescription": "सर्वर ने इन परिवर्तनों को स्वीकार नहीं किया। ये परिवर्तन इसी डिवाइस पर बने रहेंगे।", + "errorPermission": "सर्वर पर मौजूद आपके खाते को यह बदलाव करने की अनुमति नहीं है।", + "retry": "पुनः प्रयास करें", + "whatSyncs": "क्या सिंक्रनाइज़ होता है", + "whatSyncsDescription": "इस डिवाइस पर केवल वही चीजें बंद करें जिन्हें आप चालू रखना चाहते हैं।", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "सर्वर में यह सुविधा नहीं है।", + "notOnDevice": "अभी इस डिवाइस पर उपलब्ध नहीं है", + "localOnlyHint": "आप इस डिवाइस की सेटिंग से सिंगल होस्ट या फोल्डर भी इस पर रख सकते हैं।", + "originTitle": "जहां संबंध शुरू होते हैं", + "originDescription": "इस डिवाइस से या सर्वर के माध्यम से होस्ट से कनेक्ट करें। आप इसे प्रत्येक होस्ट के लिए बदल सकते हैं।", + "originLocal": "यह डिवाइस", + "originRemote": "सर्वर", "entities": { "hosts": "होस्ट", "sshCredentials": "क्रेडेंशियल्स", "sshFolders": "फ़ोल्डर", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "प्राथमिकताएँ", + "pluginUserSettings": "फ़ीचर सेटिंग्स", + "sharedHosts": "मेज़बानों ने आपके साथ साझा किया", + "sharedCredentials": "आपके साथ साझा की गई जानकारी", + "vaultProfiles": "वॉल्ट प्रोफाइल", + "snippetFolders": "स्निपेट फ़ोल्डर", "snippets": "स्निपेट्स", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "सेवा लिंक", + "homepageItems": "होमपेज आइटम", + "networkTopology": "नेटवर्क मानचित्र", + "workspaces": "कार्यस्थानों" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "रिवर्स प्रॉक्सी", + "description": "इसकी आवश्यकता तभी होती है जब आपके सर्वर के सामने क्लाउडफ्लेयर एक्सेस या लॉगिन पेज जैसी कोई चीज़ मौजूद हो।", + "headersTitle": "अतिरिक्त शीर्षक", + "headersHint": "उदाहरण के लिए, क्लाउडफ्लेयर एक्सेस सेवा टोकन सर्वर पर भेजे जाने वाले प्रत्येक अनुरोध के साथ भेजा जाता है।", + "headerName": "हेडर नाम", + "headerValue": "कीमत", + "savedValue": "सहेजा गया, बदलने के लिए टाइप करें", + "addHeader": "हेडर जोड़ें", + "removeHeader": "हेडर हटाएँ", + "basicAuthTitle": "उपयोगकर्ता नाम और पासवर्ड", + "basicAuthHint": "टर्मिक्स से पहले उपयोगकर्ता नाम और पासवर्ड मांगने वाले प्रॉक्सी के लिए।", "username": "उपयोगकर्ता नाम", "password": "पासवर्ड", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "स्व-हस्ताक्षरित प्रमाणपत्र पर भरोसा करें", + "allowInvalidCertificateHint": "यह केवल आपके अपने सर्वर के लिए मान्य है, जब उसका प्रमाणपत्र किसी मान्यता प्राप्त प्राधिकरण से प्राप्त न हो।", "saved": "सहेजा गया" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "यह किसी वेब पते जैसा नहीं दिखता।", + "unreachable": "सर्वर तक नहीं पहुंचा जा सका। कृपया पता जांचें और सुनिश्चित करें कि सर्वर चल रहा है।", + "unreachableWithReason": "सर्वर तक नहीं पहुंचा जा सका: {{reason}}", + "tlsUntrusted": "सर्वर प्रमाणपत्र विश्वसनीय नहीं है। यदि यह आपका स्वयं का सर्वर है जिसमें स्व-हस्ताक्षरित प्रमाणपत्र है, तो नीचे दिए गए विकल्प को चालू करें।", + "basicAuthRequired": "सर्वर के सामने कुछ ऐसा दिखाई देगा जो आपसे उपयोगकर्ता नाम और पासवर्ड मांगेगा। कृपया उन्हें नीचे दर्ज करें।", + "proxyLogin": "टर्मिक्स के बजाय लॉगिन पेज या प्रॉक्सी ने जवाब दिया। नीचे आवश्यक हेडर जोड़ें, या पता जांचें।", + "notTermix": "उस पते पर कोई टर्मिक्स सर्वर नहीं है। यदि यह किसी पथ के अंतर्गत चलता है, तो उसे शामिल करें, जैसे https://example.com/termix।", + "versionMismatch": "वह सर्वर पुराने टर्मिक्स संस्करण पर चल रहा है। लिंक करने के लिए इसे 2.9 या उससे नए संस्करण में अपडेट करें।", + "differentAccount": "आपने किसी दूसरे खाते में लॉग इन किया है। कृपया उस खाते में लॉग इन करें जिससे यह डिवाइस जुड़ा हुआ है, या पहले इसे अनलिंक करें।" }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "टर्मिक्स सर्वर का लिंक", + "reloginTitle": "दोबारा लॉग इन करें", + "savedServers": "हाल के सर्वर", + "removeServer": "सूची से हटाएँ", + "serverDescription": "अपने ब्राउज़र में Termix खोलने के लिए आप जिस पते का उपयोग करते हैं, उसे दर्ज करें।", + "signinDescription": "{{url}} में साइन इन करें", + "chooseDescription": "इस डिवाइस में पहले से ही डेटा मौजूद है। इसका क्या होना चाहिए?", + "finishingDescription": "इस डिवाइस को लिंक किया जा रहा है।", + "serverUrl": "सर्वर पता", + "serverUrlHint": "उदाहरण के लिए https://termix.example.com", + "showProxySettings": "रिवर्स प्रॉक्सी सेटिंग्स", + "hideProxySettings": "रिवर्स प्रॉक्सी सेटिंग्स छिपाएँ", "continue": "जारी रखें", "back": "वापस", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "इसे मेरे खाते में जोड़ें", + "mergeBody": "इस डिवाइस पर मौजूद {{count}} आइटम आपके खाते में जोड़ दिए गए हैं। आपके खाते में पहले से मौजूद आइटम सर्वर पर वैसे ही रहेंगे।", + "replaceTitle": "इसे मेरे खाते से बदलें", + "replaceBody": "इस डिवाइस पर मौजूद {{count}} आइटम हटा दिए जाते हैं, और यह डिवाइस आपके खाते से सब कुछ हटा देता है। इस डिवाइस पर रखे गए होस्ट ही बने रहते हैं।", + "link": "जोड़ना", + "linking": "लिंकिंग और पहला सिंक शुरू हो रहा है...", + "linked": "लिंक हो गया है। आपका डेटा अब सिंक हो रहा है।", + "signedInAgain": "लॉग इन हो गया है। सिंक फिर से चल रहा है।" } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "फ़ोल्डर {{name}}", + "user": "मेरी डिफ़ॉल्ट सेटिंग्स", + "admin": "सर्वर", + "builtin": "में निर्मित" }, "custom": "कस्टम", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "यहां सेट करें", + "notSet": "सेट नहीं", + "notSetTitle": "इसके लिए कोई डिफ़ॉल्ट मान निर्धारित नहीं है।", + "resetTitle": "यह होस्ट अपना मान स्वयं निर्धारित करता है। {{source}} से डिफ़ॉल्ट मान का पुनः उपयोग करने के लिए क्लिक करें।", + "clearTitle": "इस स्तर पर सेट करें। इसे साफ़ करने के लिए क्लिक करें और इसके स्थान पर {{source}} का उपयोग करें।", + "inheritedTitle": "{{source}} से डिफ़ॉल्ट का अनुसरण करता है", + "titleAdmin": "सर्वर होस्ट डिफ़ॉल्ट", + "titleUser": "मेरे होस्ट डिफ़ॉल्ट", + "titleFolder": "फ़ोल्डर डिफ़ॉल्ट: {{name}}", + "descriptionAdmin": "इस सर्वर पर मौजूद प्रत्येक होस्ट के लिए डिफ़ॉल्ट मान। उपयोगकर्ता के स्वयं के डिफ़ॉल्ट मान, किसी फ़ोल्डर के डिफ़ॉल्ट मान या स्वयं होस्ट द्वारा अलग मान निर्धारित किए जा सकते हैं। किसी फ़ील्ड को बदलने के लिए यहाँ क्लिक करें, या इसे अनसेट छोड़ने के लिए खाली करें।", + "descriptionUser": "सर्वर के अलावा, आपके सभी होस्ट के लिए डिफ़ॉल्ट मान। किसी फ़ोल्डर या होस्ट का मान अलग हो सकता है। इसे सेट करने के लिए किसी फ़ील्ड को बदलें, या इसे अनसेट छोड़ने के लिए इसे खाली करें।", + "descriptionFolder": "इस फ़ोल्डर और इसके उपफ़ोल्डरों में मौजूद होस्ट के लिए डिफ़ॉल्ट मान, आपके अपने मानों से ऊपर हैं। होस्ट अभी भी एक अलग मान सेट कर सकता है। किसी फ़ील्ड को बदलने के लिए उसे यहाँ सेट करें, या उसे अनसेट छोड़ने के लिए उसे खाली कर दें।", + "save": "डिफ़ॉल्ट मान सहेजें", + "saved_one": "डिफ़ॉल्ट मान सहेजे गए। {{count}} होस्ट अपडेट किया गया।", + "saved_other": "डिफ़ॉल्ट मान सहेजे गए। {{count}} होस्ट अपडेट किए गए।", + "savedInBackground": "डिफ़ॉल्ट मान सहेज लिए गए हैं। होस्ट बैकग्राउंड में अपडेट किए जा रहे हैं।", + "appliedToHosts_one": "{{count}} होस्ट को नए डिफ़ॉल्ट के साथ अपडेट किया गया।", + "appliedToHosts_other": "{{count}} होस्ट को नए डिफ़ॉल्ट के साथ अपडेट किया गया।", + "saveFailed": "डिफ़ॉल्ट मान सहेजे नहीं जा सके", + "loadFailed": "डिफ़ॉल्ट मान लोड नहीं हो सके", + "confirmTitle": "डिफ़ॉल्ट सेटिंग्स सहेजें?", + "confirmChanges_one": "{{count}} होस्ट इन डिफ़ॉल्ट सेटिंग्स का पालन करता है और बदल जाएगा।", + "confirmChanges_other": "{{count}} होस्ट इन डिफ़ॉल्ट सेटिंग्स का पालन करते हैं और बदल जाएंगे।", + "confirmNoChanges": "मौजूदा होस्ट में कोई बदलाव नहीं होगा। नए होस्ट इन्हीं डिफ़ॉल्ट सेटिंग्स के साथ शुरू होंगे।", + "menuMyDefaults": "मेरे होस्ट डिफ़ॉल्ट", + "folderDefaultsAction": "फ़ोल्डर डिफ़ॉल्ट", + "adminSectionDescription": "इस सर्वर पर मौजूद प्रत्येक होस्ट के लिए, होस्ट की सभी सेटिंग्स और सुविधाओं सहित, डिफ़ॉल्ट मान निर्धारित करें। उपयोगकर्ता और फ़ोल्डर अपने स्वयं के मान अलग से निर्धारित कर सकते हैं, और कोई भी होस्ट अपने स्वयं के मान का उपयोग कर सकता है।", + "editServerDefaults": "सर्वर डिफ़ॉल्ट संपादित करें", "resetMenu": "रीसेट", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "सब कुछ डिफ़ॉल्ट पर सेट करें", + "resetCore": "कनेक्शन और SSH डिफ़ॉल्ट सेटिंग्स पर सेट हैं।", + "resetDone_one": "{{count}} होस्ट अब अपने डिफ़ॉल्ट का पालन करता है.", + "resetDone_other": "{{count}} होस्ट अब अपने डिफ़ॉल्ट का पालन करते हैं." } } diff --git a/src/ui/locales/translated/id_ID.json b/src/ui/locales/translated/id_ID.json index 1892d67bf..a8169e432 100644 --- a/src/ui/locales/translated/id_ID.json +++ b/src/ui/locales/translated/id_ID.json @@ -55,7 +55,7 @@ "levelManage": "Mengelola", "levelUseDesc": "Cara penggunaan: lampirkan kredensial ke host dan sambungkan. Rahasia itu sendiri tetap tersembunyi.", "levelManageDesc": "Kelola: Anda juga dapat mengedit kredensial dan membagikannya kepada orang lain.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Informasi kredensial ini belum dibagikan.", "accessRevoked": "Akses dicabut", "shared": "Kredensial dibagikan" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Buka kunci dengan menyeret untuk mengatur ulang" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Pembaruan tersedia. Buka catatan rilis di GitHub." }, "common": { "close": "Menutup", "minimize": "Memperkecil", "online": "On line", "offline": "Offline", - "signInFailed": "Sign in failed", + "signInFailed": "Login gagal.", "unknown": "Tidak dikenal", "continue": "Melanjutkan", "maintenance": "Pemeliharaan", @@ -131,9 +131,9 @@ "dismiss": "Membubarkan", "more": "Lagi", "loading": "Memuat...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Tuan rumah", + "selectHost": "Pilih tuan rumah...", + "noHostConfigured": "Tidak ada host yang dikonfigurasi.", "optional": "Opsional", "connect": "Menghubungkan", "copied": "Disalin", @@ -187,7 +187,7 @@ "remove": "Menghapus", "add": "Menambahkan", "update": "Memperbarui", - "noResults": "No results found" + "noResults": "Tidak ada hasil yang ditemukan" }, "onboarding": { "stepCounter": "Langkah {{current}} dari {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Palet perintah", "workflow_palette_desc": "Langsung menuju server atau aksi apa pun dengan mengetik. Tekan Shift dua kali untuk membukanya.", "workflow_split": "Layar terpisah", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Tampilkan beberapa tab berdampingan, misalnya untuk melihat log saat Anda bekerja.", "workflow_dock": "Panel samping", "workflow_dock_desc": "Klik tengah atau klik kanan ikon bilah sisi untuk membukanya sebagai tab atau menyematkannya di sebelah kanan.", "securityTitle": "Menjaga keamanan informasi login Anda", @@ -248,13 +248,13 @@ "done_cli": "Alat baris perintah", "done_cli_desc": "Kelola server Anda dari terminal, dan gunakan Termix dalam skrip Anda sendiri.", "done_cli_link": "Buka dokumentasi CLI", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Bagaimana Anda ingin menggunakan Termix?", + "desktopBody": "Anda dapat mengubah ini kapan saja dari Sinkronisasi di bilah sisi.", + "desktopLocalTitle": "Hanya pada perangkat ini", + "desktopLocalBody": "Semuanya tersimpan di sini. Tidak perlu menyiapkan apa pun.", + "desktopLinkTitle": "Dengan server Termix saya", + "desktopLinkBody": "Masuk ke server Anda untuk menggunakan host dan pengaturan yang sama di setiap perangkat.", + "desktopLinked": "Terhubung ke {{server}}" }, "nav": { "home": "Rumah", @@ -295,21 +295,21 @@ "collapseSideMenu": "Ciutkan Menu", "roleAdministrator": "Administrator", "roleUser": "Pengguna", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Sinkronisasi", + "reconnectDisconnectedTerminals": "Sambungkan kembali semua terminal yang terputus", + "reconnectingTerminals_one": "Menghubungkan kembali terminal {{count}}", + "reconnectingTerminals_other": "Menghubungkan kembali terminal {{count}}", + "noDisconnectedTerminals": "Tidak ada terminal yang terputus yang siap untuk disambungkan kembali.", + "reconnectTerminalsFailed_one": "Tidak dapat memulai penyambungan kembali terminal {{count}}", + "reconnectTerminalsFailed_other": "Tidak dapat memulai penyambungan kembali terminal {{count}}", + "fullscreenUnsupported": "Browser ini tidak mendukung mode layar penuh.", + "fullscreenFailed": "Tidak dapat beralih ke mode layar penuh.", + "resetSidebarWidth": "Atur ulang lebar", + "collapseSidebar": "Tutup bilah sisi", + "openSidebar": "Buka bilah sisi", + "confirmCloseHost": "Tutup {{host}}?", + "enterFullscreen": "Masuk ke mode layar penuh (Ctrl+Shift+F)", + "exitFullscreen": "Keluar dari mode layar penuh (Ctrl+Shift+F)" }, "hosts": { "hosts": "Tuan rumah", @@ -353,7 +353,7 @@ "serverStats": "Metrik Host", "status": { "available": "Tersedia", - "reachable": "Up, but the last sign in failed", + "reachable": "Berhasil, tetapi tanda terakhir gagal.", "offline": "Offline", "monitoringDisabled": "Pemantauan dinonaktifkan", "label": "Status" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Paksa Interaktif Keyboard", "overrideCredentialUsername": "Ganti Nama Pengguna Kredensial", "overrideCredentialUsernameDesc": "Gunakan nama pengguna yang telah ditentukan di atas, bukan nama pengguna kredensial.", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Gunakan $external.username untuk mengisi nama yang Anda gunakan saat masuk melalui SSO atau LDAP.", "jumpHostChain": "Rantai Host Lompatan", "portKnocking": "Ketukan Pelabuhan", "addKnock": "Tambahkan Port", @@ -626,14 +626,14 @@ "actionsClick": "Klik untuk memperbesar/memperkecil", "openOnDoubleClick": "Buka dengan klik dua kali", "openOnDoubleClickDesc": "Membutuhkan klik ganda untuk membuka sesi host, bukan klik tunggal.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Tampilkan jalur folder", + "showFolderPathsDesc": "Tampilkan jalur folder induk di atas nama subfolder yang bersarang. Subfolder tetap menjorok ke dalam dalam kedua cara tersebut.", + "hostClickBehavior": "Mengklik host", + "hostClickBehaviorDesc": "Apa yang terjadi ketika Anda mengklik host yang sudah memiliki tab yang terbuka? Klik Ctrl/Cmd, klik tengah, atau \"Buka di tab baru\" selalu membuka tab baru.", + "hostClickNewTab": "Selalu buka tab baru", + "hostClickFocusExisting": "Beralih ke tab yang terbuka", + "hostClickFocusExistingDoubleNew": "Klik untuk beralih, klik dua kali untuk membuka tab baru.", + "openInNewTab": "Buka di tab baru", "deletedHost": "Dihapus {{name}}", "copiedToClipboard": "Disalin ke papan klip", "remoteDesktopUrlCopied": "URL Desktop Jarak Jauh disalin", @@ -698,7 +698,7 @@ "groupCredentials": "Kredensial", "groupNotes": "Catatan", "groupTags": "Label & pin", - "groupProxy": "Proxy", + "groupProxy": "Proksi", "groupJumpHosts": "Pembawa acara Jump", "groupFeatureFlags": "Bendera fitur", "groupAdvanced": "Konfigurasi lanjutan", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Setiap endpoint membutuhkan nama yang berbeda.", "webUiErrorPortRange": "Endpoint {{row}} membutuhkan port antara 1 dan 65535.", "webUiErrorPathInvalid": "Endpoint {{row}} memiliki jalur yang tidak valid. Gunakan jalur seperti /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Salin tautan {{name}}", + "filterAuthAgent": "Agen SSH", + "authTypeNeedsPlugin": "Host ini menggunakan {{type}}, yang membutuhkan {{plugin}}. Ini dimatikan di server ini.", + "authTypeUnknown": "Host ini menggunakan {{type}}, yang tidak tersedia di server ini.", + "authFieldsAfterSave": "Simpan host terlebih dahulu, lalu isi kolom-kolom ini.", + "enablePluginFeature": "Aktifkan {{name}}", + "disablePluginFeature": "Nonaktifkan {{name}}", "filterFeaturesGroup": "Fitur", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "Tetap gunakan perangkat ini saja.", + "localOnlyDesc": "Host ini tidak dikirim ke server dan tidak muncul di perangkat Anda yang lain.", + "folderLocalOnly": "Tetap gunakan perangkat ini saja.", + "folderLocalOnlyDesc": "Folder ini dan semua host di dalamnya tetap berada di perangkat ini dan tidak dikirim ke server.", + "sudoPasswordDesc": "Digunakan ketika terminal menampilkan prompt sudo, dan oleh fitur-fitur yang menjalankan perintah dengan sudo.", + "editorCancel": "Membatalkan", + "editorSaving": "Penghematan...", + "editorUpdate": "Perbarui Host", + "editorAdd": "Tambahkan Host", + "speedSearch": "Cari host. Gunakan tombol panah untuk memilih, Enter untuk terhubung, Esc untuk menutup.", + "speedSearchList": "Daftar host. Ketik atau tekan / untuk mencari.", + "importNoHosts": "Tidak ditemukan host dalam file tersebut.", + "importTooMany": "Anda dapat mengimpor hingga {{max}} host sekaligus", + "importSummary": "Impor selesai: {{imported}} diimpor, {{updated}} diperbarui, {{failed}} gagal", + "importHostsFailed": "Gagal mengimpor host" }, "commandPalette": { "searchPlaceholder": "Cari host, perintah, atau pengaturan...", @@ -897,58 +897,58 @@ "navigate": "Navigasi", "select": "Memilih", "toggleWith": "Beralih dengan", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Tindakan lainnya", + "noTargetTab": "Tidak ada tab terminal yang terbuka." }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "Layar terpisah", + "defaultLabel": "Pisahkan {{number}}", + "splitRight": "Belah kanan", + "splitDown": "Terbagi", + "addToSplit": "Tambahkan ke {{split}}", + "paneEmptyItem": "Panel {{index}}: kosong", + "paneItem": "Panel {{index}}: {{label}}", + "paneNumber": "Panel {{index}}", + "newPaneRight": "Panel baru di sebelah kanan", + "newPaneBelow": "Panel baru di bawah", + "emptyTitle": "Panel kosong", + "emptyHint": "Pilih sesuatu untuk ditampilkan di sini. Selama panel ini dipilih, apa pun yang Anda buka dari bilah sisi juga akan terbuka di sini.", + "openTabs": "Buka tab", + "noOpenTabs": "Tidak ada tab lain yang terbuka.", + "hosts": "Tuan rumah", + "searchHosts": "Cari host", + "noHosts": "Tidak ada host yang cocok", + "newSession": "Baru", + "closePane": "Tutup panel", + "closeSession": "Sesi ditutup", + "moveToTab": "Pindahkan ke tab tersendiri", + "swapWith": "Tukar dengan", + "showHere": "Tampilkan di panel ini", + "clearPane": "Kosongkan panel ini", + "zoom": "Perbesar panel", + "unzoom": "Pulihkan tata letak", + "unsplit": "Tidak terbelah", + "layouts": "Tata Letak", + "applyLayout": "Ubah tata letak", + "newSplit": "Perpecahan baru", + "maxPanes": "Sebuah split dapat menampung hingga {{count}} panel", + "dropSplit": "Jatuh untuk membagi", + "dropHere": "Turun untuk menampilkan di sini", + "paneActions": "Tindakan panel", + "dividerHint": "Seret untuk mengubah ukuran. Klik dua kali untuk meratakan.", + "openInSplit": "Buka terpisah", + "openInNewSplit": "Tampilan baru dengan tab saat ini", + "shortcuts": "Jalan pintas", + "shortcutNavigate": "Berpindah antar panel", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Dua berdampingan", + "rows2": "Dua tumpukan", + "columns3": "Tiga berdampingan", + "mainLeft3": "Satu ke kiri, dua ke kanan", + "mainBottom3": "Dua atasan, satu bawahan", + "grid4": "Kisi-kisi empat", + "grid5": "Tiga per dua", + "grid6": "Kisi-kisi enam" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Autentikasi Diperlukan", "mfaPushRequired": "Otentikasi Push Diperlukan", "mfaMenuPlaceholder": "Masukkan jawaban Anda", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Kode atau \"dorong\"", "mfaWaitingApproval": "Menunggu persetujuan di perangkat Anda...", "mfaSendRequest": "Kirim Permintaan", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Kunci Keamanan", + "browserSignInUrl": "URL Masuk", + "browserSignInOpen": "Buka di Browser", + "browserSignInContinue": "Saya telah menyelesaikan proses masuk.", + "browserSignInRequired": "{{provider}} Login Diperlukan", "connectionLogTitle": "Log Koneksi", "connectionLogCopy": "Salin log ke papan klip", "connectionLogEmpty": "Belum ada log koneksi.", @@ -1032,7 +1032,7 @@ "external": "Luar", "loginWithExternal": "Masuk dengan Penyedia Eksternal", "loginWithExternalDesc": "Masuk menggunakan penyedia identitas eksternal yang telah Anda konfigurasi.", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Login eksternal belum didukung di aplikasi desktop. Silakan gunakan versi web.", "loginWithProvider": "Masuk dengan {{name}}", "orContinueWith": "atau lanjutkan dengan", "resetPasswordButton": "Atur Ulang Kata Sandi", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "Login dengan kata sandi dinonaktifkan. Gunakan kata sandi atau penyedia autentikasi eksternal.", "attemptsRemaining": "{{count}} percobaan tersisa", "confirmResetDataWipe": "Akun ini belum masuk sejak peningkatan enkripsi, jadi data yang tersimpan tidak dapat dipulihkan tanpa kata sandi lama. Mengatur ulang akan menghapus host, kredensial, dan cuplikan secara permanen. Lanjutkan?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "Kata sandi", + "secondFactorUnavailable": "Akun Anda menggunakan faktor kedua yang saat ini tidak tersedia. Hubungi admin untuk mengatur ulang faktor tersebut.", + "secondFactorNoUI": "Faktor kedua ini tidak dapat ditampilkan di layar ini. Hubungi administrator.", + "serverAuthentication": "Masuk ke server", + "minChars": "min. {{min}} karakter" }, "hostKey": { "verifyNewHost": "Verifikasi Kunci Host SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Gagal memverifikasi kode reset", "failedCompleteReset": "Gagal menyelesaikan pengaturan ulang kata sandi.", "invalidTotpCode": "Kode TOTP tidak valid", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Gagal memulai proses masuk eksternal.", + "silentSigninOidcUnavailable": "Login tanpa interaksi pengguna telah diminta, tetapi tidak ada login eksternal yang diatur.", "failedUserInfo": "Gagal mendapatkan informasi pengguna setelah login.", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Login eksternal gagal.", "invalidAuthUrl": "URL otorisasi yang diterima dari backend tidak valid.", "requiredField": "Kolom ini wajib diisi.", "minLength": "Panjang minimumnya adalah {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Gagal menyimpan token otentikasi.", "authTokenMissing": "Server tidak mengembalikan token otentikasi baru. Silakan masuk kembali.", "failedToLoadServer": "Server gagal dimuat.", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Sesi telah berakhir. Silakan masuk kembali." }, "messages": { "registrationDisabled": "Pendaftaran akun baru saat ini dinonaktifkan oleh administrator. Silakan masuk atau hubungi administrator.", @@ -1163,7 +1163,7 @@ "panelMain": "Utama", "panelSide": "Samping", "justNow": "baru saja", - "activityFileManager": "File manager" + "activityFileManager": "Pengelola berkas" }, "donation": { "title": "Apakah Anda menikmati Termix?", @@ -1188,12 +1188,12 @@ "add": "Menambahkan:", "commandPalette": "Palet Perintah", "done": "Selesai", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Seret kartu untuk mengubah urutan. Seret pembatas kolom untuk mengubah ukuran kolom. Seret tepi bawah kartu untuk mengubah tingginya. Gunakan tombol tempat sampah untuk menghapus kartu.", "empty": "Kosong", "clear": "Jernih", "viewServerDetails": "Lihat detail server", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Seret untuk mengubah ukuran kolom", + "hostsAvailable": "Tuan Rumah Tersedia" }, "admin": { "sectionGeneral": "Umum", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Basis data", "sectionApiKeys": "Kunci API", "sectionAuditLog": "Catatan Audit", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "Sertifikat HTTPS", "sectionBranding": "Label Putih", "brandingAppName": "Nama Aplikasi", "brandingAppNameDesc": "Ditampilkan pada layar login dan tab browser. Biarkan kosong untuk menggunakan \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Gambar tidak valid. Gunakan file PNG, JPEG, atau WEBP dengan ukuran maksimal 750 KB.", "brandingSaved": "Pengaturan merek tersimpan", "brandingSaveFailed": "Gagal menyimpan pengaturan merek.", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Sertifikat yang digunakan Termix melalui HTTPS. Unggah sertifikat Anda sendiri di sini, atau dapatkan dan perbarui sertifikat dari Let's Encrypt di bagian Sertifikat ACME.", "sslDocsLink": "Lihat dokumentasi SSL", "sslCertStatus": "Status Sertifikat", "sslCertStatusNone": "Tidak ada sertifikat", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Izinkan pengguna baru mendaftar sendiri dengan nama pengguna dan kata sandi.", "allowPasswordLogin": "Izinkan Login dengan Kata Sandi", "allowPasswordLoginDesc": "Login dengan nama pengguna/kata sandi", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Buat akun eksternal secara otomatis", + "oidcAutoProvisionDesc": "Buat akun saat pertama kali seseorang masuk melalui login eksternal seperti SSO atau LDAP, bahkan saat pendaftaran dimatikan.", + "secondFactorAfterExternalLogin": "Mintalah faktor otentikasi kedua setelah login eksternal (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Jika dinonaktifkan, faktor otentikasi kedua yang terdaftar hanya diminta setelah kata sandi dan login lokal lainnya, sama seperti sebelumnya. Jika diaktifkan, faktor otentikasi kedua diminta setelah setiap metode login, termasuk SSO dan LDAP.", "allowPasswordReset": "Izinkan Reset Kata Sandi", "allowPasswordResetDesc": "Reset kode melalui log Docker", "auditForwardingTitle": "Teruskan ke SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Gagal menyimpan pengaturan penerusan audit", "sessionTimeout": "Waktu sesi habis", "hours": "jam", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Minimal 1 jam, maksimal 720 jam", "monitoringDefaults": "Pemantauan Default", "statusCheck": "Pemeriksaan Status", "sec": "detik", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "Tidak ada tanggal kedaluwarsa", "revokedBadge": "DICABUT", "authTypeDual": "Otorisasi Ganda", - "authTypeOidc": "External", + "authTypeOidc": "Luar", "authTypeLocal": "Lokal", "adminStatusAdministrator": "Administrator", "adminStatusRegularUser": "Pengguna Biasa", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Status Admin", "editUserUserId": "ID Pengguna", "linkAccountTitle": "Tautkan Akun", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Gabungkan akun eksternal {{username}} dengan akun lokal yang sudah ada.", + "linkAccountDescLocal": "Hubungkan akun lokal {{username}} dengan akun eksternal yang sudah ada.", "linkAccountWarningTitle": "Ini akan:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Hapus akun khusus eksternal.", + "linkAccountEffect2": "Tambahkan login eksternal ke akun target.", + "linkAccountEffect3": "Izinkan login eksternal dan login menggunakan kata sandi.", "linkAccountTargetUsername": "Nama Pengguna Akun Lokal", "linkAccountTargetPlaceholder": "Masukkan nama pengguna akun lokal yang ingin dihubungkan.", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Nama Pengguna Akun Eksternal", + "linkAccountOidcPlaceholder": "Masukkan nama pengguna akun khusus eksternal yang ingin digabungkan.", + "linkAccountOidcNotFound": "Tidak ditemukan akun eksternal saja dengan nama pengguna tersebut.", "linkAccounts": "Tautkan Akun", "linkAccountSuccess": "Akun berhasil dihubungkan.", "linkAccountFailed": "Gagal menautkan akun", "linkAccountInProgress": "Menghubungkan...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Lepaskan tautan masuk eksternal", + "unlinkAccountDesc": "Hapus login eksternal dari {{username}}. Mereka hanya akan dapat masuk dengan kata sandi mereka.", + "unlinkAccountWarning": "Ini akan menghapus akses masuk eksternal dari akun ini. Pengguna harus mengatur kata sandi agar tetap dapat masuk.", + "unlinkAccount": "Lepaskan tautan masuk eksternal", "unlinkAccountInProgress": "Melepaskan tautan...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Login eksternal tidak terhubung.", + "unlinkAccountFailed": "Gagal memutuskan tautan masuk eksternal", "saving": "Penghematan...", "updateRegistrationFailed": "Gagal memperbarui pengaturan pendaftaran", "updatePasswordLoginFailed": "Gagal memperbarui pengaturan login kata sandi.", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Gagal memperbarui pengaturan pembuatan otomatis.", + "updateSecondFactorAfterExternalLoginFailed": "Gagal memperbarui pengaturan faktor kedua.", "updatePasswordResetFailed": "Gagal memperbarui pengaturan pengaturan ulang kata sandi.", "sessionTimeoutRange2": "Batas waktu sesi harus antara 1 dan 720 jam.", "sessionTimeoutSaved": "Waktu sesi habis tersimpan", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Tidak ada sesi aktif", "deleteSuccessorLabel": "Serahkan host dan kredensial ke", "deleteSuccessorMe": "Saya (administrator yang menghapus)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Tidak ada seorang pun, hapus saja mereka.", "deleteSuccessorDesc": "Semua yang dibagikan pengguna ini tetap berfungsi di bawah pemilik baru; memilih \"tidak ada\" akan menghapus host, kredensial, dan folder yang dibagikan.", "deleteUserDangerDesc": "Hapus secara permanen {{username}} dan semua datanya (host, kredensial, cuplikan, riwayat). Tindakan ini tidak dapat dibatalkan.", "deleteUserConfirm": "Hapus secara permanen {{username}} dan semua datanya?", @@ -1477,31 +1477,31 @@ "saveError": "Gagal menyimpan izin peran", "save": "Menyimpan", "saving": "Penghematan...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Fitur dinonaktifkan", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", - "admin": "Administration" + "hosts": "Tuan rumah", + "credentials": "Kredensial", + "admin": "Administrasi" } }, "notificationPrivateEndpoints": "Host pemberitahuan pribadi yang diizinkan", "notificationPrivateEndpointsDesc": "Host privat yang tepat yang mungkin dihubungi oleh saluran pemberitahuan. Pisahkan dengan koma.", "updateNotificationEndpointsFailed": "Gagal memperbarui daftar izin titik akhir notifikasi.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Faktor kedua", + "secondFactorsNone": "Tidak ada faktor kedua yang terdaftar", + "secondFactorUnavailable": "Tidak tersedia", + "resetSecondFactors": "Atur ulang faktor kedua", + "resetSecondFactorsConfirm": "Hapus semua faktor kedua untuk {{username}}? Mereka dapat masuk dengan kata sandi mereka atau SSO dan mendaftar lagi.", + "secondFactorsResetSuccess": "Faktor kedua diatur ulang", + "secondFactorsResetFailed": "Gagal mengatur ulang faktor kedua", + "passwordLoginForced": "Login dengan kata sandi dinonaktifkan, tetapi metode login lain tidak diaktifkan, jadi untuk sementara tetap aktif. Tidak ada yang terkunci.", + "sslNotRenewed": "Tidak ada yang memperbarui sertifikat ini. Masa berlakunya berakhir {{date}}. Aktifkan perpanjangan otomatis di bagian Sertifikat ACME, atau unggah sertifikat baru sebelum tanggal tersebut.", + "sslSelfSigned": "Sertifikat yang ditandatangani sendiri oleh Termix. Browser akan memberikan peringatan tentang hal ini.", + "sslRenewedBy": "Diperbarui secara otomatis oleh {{plugin}}", + "sslIssuer": "Dikeluarkan oleh {{issuer}}", + "sslNames": "Sampul {{names}}", + "sslManualTitle": "Unggah sertifikat", + "updateExternalAutoProvisionFailed": "Gagal memperbarui pengaturan pembuatan otomatis." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protokol", "domainLabel": "Domain", "domainPlaceholder": "opsional", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Hubungkan ke {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Tidak ada perangkat yang terpasang yang dapat terhubung ke tipe host ini." }, "keybindings": { "title": "Pintasan Keyboard", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Tetapkan tombol pintasan ke tindakan di terminal dan aplikasi, atau ubah pintasan bawaan.", "defaultsHeading": "Pintasan bawaan", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Pintasan Aplikasi", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Belah kanan", + "splitDown": "Terbagi", + "zoomPane": "Perbesar panel yang sedang difokuskan", + "navigatePane": "Berpindah antar panel", + "nextTab": "Tab berikutnya", + "previousTab": "Tab sebelumnya", + "jumpTab": "Lompat ke tab", + "previousView": "Kembali ke tampilan sidebar sebelumnya", + "fullscreen": "Beralih ke mode layar penuh" }, "customHeading": "Pintasan Kustom", "addBinding": "Tambahkan Pintasan", @@ -1566,9 +1566,9 @@ "actionNextTab": "Beralih ke tab berikutnya", "actionPreviousTab": "Beralih ke tab sebelumnya", "actionOpenCommandPalette": "Buka pencarian cepat", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Sambungkan kembali sesi saat ini", + "unavailableAction": "{{type}} (tidak tersedia)", + "actionRequiredError": "Pilih tindakan terlebih dahulu" }, "userProfile": { "donateTitle": "Jaga agar Termix tetap hidup.", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Pengaturan kembali ke pengaturan default.", "storageModeSwitch": "Penyimpanan Preferensi", "sectionAccount": "Akun", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Perangkat ini saja", + "desktopProfileDescription": "Profil ini tersimpan di perangkat ini dan masuk secara otomatis. Hubungkan ke server Termix agar dapat menggunakan host dan pengaturan yang sama di setiap perangkat.", "sectionInterface": "Antarmuka", "interfacePresetDesc": "Seberapa detail yang ditampilkan Termix. Setiap fitur tetap tersedia.", "preset_simple": "Sederhana", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Pulihkan tab yang terbuka saat Anda masuk atau menyegarkan halaman, bahkan dari perangkat lain.", "confirmTabClose": "Konfirmasi Penutupan Tab", "confirmTabCloseDesc": "Tanyakan terlebih dahulu sebelum menutup tab terminal.", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Tampilkan Nomor Tab", + "showTabNumbersDesc": "Tampilkan nomor pada setiap tab untuk membantu membedakannya.", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "Pengaturan tampilan sidebar host telah dipindahkan ke panel Sesuaikan sidebar, yang dibuka dari toolbar Host.", "showHostTags": "Tag Pembawa Acara", @@ -1727,7 +1727,7 @@ "importFailed": "Impor gagal: {{error}}", "roleUser": "Pengguna", "authMethodDual": "Otorisasi Ganda", - "authMethodOidc": "External", + "authMethodOidc": "Luar", "done": "Selesai", "apiKeyNameRequired": "Nama kunci wajib diisi.", "apiKeyCreated": "Kunci API \"{{name}}\" berhasil dibuat", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Malam Tokyo", "themeOneDark": "Satu Kegelapan", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Masuk ke {{server}}", + "linkedProfileDescription": "Perangkat ini menggunakan akun Anda di server dan menyimpan salinan data Anda, sehingga tetap berfungsi secara offline.", + "manageSync": "Kelola sinkronisasi", + "setUpSync": "Tautan ke server", + "settingsTabsAndShortcuts": "Tab dan Pintasan" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Lihat kata sandi dan kunci Anda", + "consequence": "Ia dapat membaca rahasia yang tersimpan untuk host mana pun yang dapat Anda jangkau." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Jalankan perintah di server Anda", + "consequence": "Perintah apa pun, pada host yang Anda hubungkan, dengan akses Anda." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Jalankan program di mesin ini", + "consequence": "Program-program tersebut berjalan di server Termix itu sendiri, bukan di host Anda." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Membuat dan mengubah akun pengguna", + "consequence": "Sistem ini dapat menambahkan pengguna dan mengubah peran mereka." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Tangani proses masuk", + "consequence": "Fitur ini dapat menambahkan metode login, otentikasi dua faktor, atau jenis login SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Kelola sertifikat", + "consequence": "Sertifikat ini dapat menggantikan sertifikat yang disajikan Termix melalui HTTPS dan menjawab pemeriksaan domain dari otoritas sertifikat." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Mengakses perangkat serial dan USB", + "consequence": "Ini dapat membuka port serial fisik pada mesin yang menjalankan Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Membuat dan mengubah host", + "consequence": "Aplikasi ini dapat menambahkan host dan mengedit host yang sudah Anda miliki." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Hubungkan ke server Anda", + "consequence": "Sistem ini tidak dapat melihat kata sandi atau kunci Anda." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Simpan kredensial baru", + "consequence": "Fitur ini dapat menambahkan kata sandi dan kunci ke kredensial yang Anda simpan." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Akses internet", + "consequence": "Ia dapat mengirimkan permintaan ke layanan eksternal." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Terima koneksi", + "consequence": "Ini membuka port pada server Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Kirim siaran jaringan", + "consequence": "Perangkat ini dapat mengirim paket ke perangkat di jaringan lokal, seperti sinyal Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Lihat nama pengguna dan peran", + "consequence": "Jangan pernah menggunakan hash kata sandi, jangan pernah menggunakan otentikasi dua faktor." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Saksikan semua yang terjadi.", + "consequence": "Termasuk aktivitas dari pengguna lain, bukan hanya aktivitas Anda." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Kirim peringatan", + "consequence": "Kepada Anda atau pengguna lain, dan melalui saluran yang mereka tetapkan." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Terima setiap peringatan", + "consequence": "Menyimpan dan mengirimkan peringatan yang dikirim oleh semua plugin, termasuk isinya." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Baca log audit.", + "consequence": "Sistem ini dapat melihat siapa yang melakukan apa dan kapan." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Buka jendela desktop", + "consequence": "Hanya di aplikasi desktop Termix." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Bertindaklah seperti pengguna lain", + "consequence": "Menjalankan pekerjaan latar belakang dengan akses pengguna lain, seperti pekerjaan terjadwal. Setiap penggunaan dicatat dalam log audit." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Baca tabel akun inti", + "consequence": "Dapat melakukan query pengguna, peran, dan host langsung dari database." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Lihat daftar host Anda", + "consequence": "Nama dan alamat untuk host yang sudah dapat Anda lihat." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Menyimpan datanya sendiri", + "consequence": "Disimpan dalam tabel tersendiri, terpisah dari plugin lainnya." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Ingatlah pengaturan kecil.", + "consequence": "Dipisahkan dari plugin lainnya." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Simpan file-filenya sendiri", + "consequence": "Dalam folder tersendiri di disk, terpisah dari plugin lainnya." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Simpan rahasianya sendiri", + "consequence": "Dienkripsi oleh Termix. Plugin ini tidak pernah menyimpan kuncinya." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Baca pengaturan Termix", + "consequence": "Pengaturan server, bukan host atau kredensial Anda." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Lihat fitur yang terpasang", + "consequence": "Sistem ini dapat melihat fitur mana yang terpasang dan berjalan." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Tambahkan layarnya sendiri", + "consequence": "Tab, panel, dan pengaturan yang dapat Anda sembunyikan nanti." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} tidak tersedia", + "needsUnknownPlugin": "Fitur ini tidak tersedia", + "disabledHint": "Fitur ini dinonaktifkan di server ini.", + "missingHint": "Fitur asalnya telah dihapus.", + "failed": "{{name}} tidak dapat dimulai", + "failedHint": "Seorang admin dapat memeriksa log server untuk detailnya.", + "loading": "Memuat {{name}}", + "crashed": "Terjadi kesalahan di {{name}}", + "retry": "Coba lagi" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "Mengatur", + "secretNotSet": "Belum diatur", + "secretReplace": "Mengganti", + "pluginSettingsSaved": "Pengaturan tersimpan", + "pluginSettingsInvalid": "Beberapa pengaturan tidak dapat disimpan. Periksa kolom yang disorot.", + "pluginSettingsSaveFailed": "Gagal menyimpan pengaturan", + "pluginSettingsLoadFailed": "Gagal memuat pengaturan", + "featureUnavailable": "{{name}} saat ini tidak tersedia. Pengaturan ini telah disimpan tetapi tidak akan berlaku." }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "Menyegarkan", + "retry": "Mencoba kembali", + "sudoHint": "Tetapkan kata sandi sudo untuk host ini di editor host untuk mengaktifkan tindakan istimewa.", + "noData": "Tidak ada data", + "filter": "Menyaring..." }, "sync": { - "server": "Termix server", - "account": "Account", + "server": "Server Termix", + "account": "Akun", "status": "Status", - "never": "never", + "never": "tidak pernah", "justNow": "baru saja", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} menit yang lalu", + "minutesAgo_other": "{{count}} menit yang lalu", + "hoursAgo_one": "{{count}} satu jam yang lalu", + "hoursAgo_other": "{{count}} jam yang lalu", + "actionFailed": "Itu tidak berhasil. Coba lagi.", + "unlinkedTitle": "Perangkat ini saja", + "unlinkedBody": "Termix dapat berjalan sendiri di perangkat ini. Hubungkan ke server Termix Anda agar semuanya tetap sinkron.", + "unlinkedPointHosts": "Host, kredensial, cuplikan, dan pengaturan Anda akan mengikuti Anda ke setiap perangkat.", + "unlinkedPointOffline": "Semua masih berfungsi meskipun server tidak dapat dijangkau, dan akan kembali normal nanti.", + "unlinkedPointAccount": "Anda masuk menggunakan akun server Anda, dan host yang dibagikan orang lain kepada Anda juga akan muncul di sini.", + "linkButton": "Tautan ke server", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Sinkronisasi", + "offline": "Server tidak dapat dijangkau", + "error": "Sinkronisasi dihentikan", + "signedOut": "Keluar", + "synced": "Disinkronkan {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} perubahan menunggu sinkronisasi", + "pending_other": "{{count}} perubahan menunggu untuk disinkronkan", + "signInAgain": "Masuk lagi", + "syncNow": "Sinkronkan sekarang", + "unlink": "Putuskan tautan", + "unlinked": "Perangkat ini sudah tidak terhubung lagi.", + "unlinkTitle": "Lepaskan tautan perangkat ini?", + "unlinkDescription": "Proses sinkronisasi berhenti dan keluar dari server. Host yang dibagikan kepada Anda oleh orang lain akan dihapus dari perangkat ini.", + "unlinkKeepTitle": "Simpan data saya di sini", + "unlinkKeepBody": "Host, kredensial, dan pengaturan Anda tetap berada di perangkat ini dan terus berfungsi dengan sendirinya.", + "unlinkRemoveTitle": "Hapus data yang disinkronkan", + "unlinkRemoveBody": "Semua yang berasal dari server dihapus dari perangkat ini. Hanya host yang tetap tersimpan di perangkat ini.", + "conflictsTitle": "Konflik", + "conflictsDescription": "Perubahan ini dilakukan di sini dan di server secara bersamaan. Versi server yang digunakan. Simpan versi Anda untuk dikirim ke server.", + "keepMine": "Simpan milikku", + "keepServer": "Pertahankan server", + "errorsTitle": "Tidak tersinkronisasi", + "errorsDescription": "Server tidak menerima perubahan ini. Perubahan tersebut tetap tersimpan di perangkat ini.", + "errorPermission": "Akun Anda di server tidak diizinkan untuk melakukan perubahan ini.", + "retry": "Coba lagi", + "whatSyncs": "Apa yang disinkronkan", + "whatSyncsDescription": "Matikan semua yang ingin Anda simpan hanya di perangkat ini.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Server tidak memiliki ini", + "notOnDevice": "Belum tersedia di perangkat ini.", + "localOnlyHint": "Anda juga dapat menyimpan host atau folder tunggal di perangkat ini dari pengaturannya.", + "originTitle": "Tempat koneksi dimulai", + "originDescription": "Hubungkan ke host dari perangkat ini, atau melalui server. Anda dapat mengubah ini untuk setiap host.", + "originLocal": "Perangkat ini", + "originRemote": "Server", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "Tuan rumah", + "sshCredentials": "Kredensial", + "sshFolders": "Folder", + "userPreferences": "Preferensi", + "pluginUserSettings": "Pengaturan fitur", + "sharedHosts": "Tuan rumah membagikannya kepada Anda", + "sharedCredentials": "Informasi kredensial yang dibagikan kepada Anda", + "vaultProfiles": "Profil brankas", + "snippetFolders": "Folder cuplikan", + "snippets": "Cuplikan", + "dashboardServiceLinks": "Tautan layanan", + "homepageItems": "Item halaman utama", + "networkTopology": "Peta jaringan", + "workspaces": "Ruang kerja" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Proksi terbalik", + "description": "Hanya diperlukan jika ada sesuatu seperti Cloudflare Access atau halaman login yang berada di depan server Anda.", + "headersTitle": "Header tambahan", + "headersHint": "Dikirim bersama setiap permintaan ke server, misalnya token layanan akses Cloudflare.", + "headerName": "Nama header", + "headerValue": "Nilai", + "savedValue": "Tersimpan, ketik untuk mengubah", + "addHeader": "Tambahkan header", + "removeHeader": "Hapus header", + "basicAuthTitle": "Nama pengguna dan kata sandi", + "basicAuthHint": "Untuk proxy yang meminta nama pengguna dan kata sandi sebelum Termix.", "username": "Nama pengguna", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "password": "Kata sandi", + "allowInvalidCertificate": "Percayai sertifikat yang ditandatangani sendiri.", + "allowInvalidCertificateHint": "Hanya untuk server Anda sendiri, jika sertifikatnya bukan dari otoritas yang dikenal.", + "saved": "Tersimpan" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Itu tidak terlihat seperti alamat web.", + "unreachable": "Tidak dapat terhubung ke server. Periksa alamat dan pastikan server sedang berjalan.", + "unreachableWithReason": "Tidak dapat terhubung ke server: {{reason}}", + "tlsUntrusted": "Sertifikat server tidak tepercaya. Jika ini adalah server Anda sendiri dengan sertifikat yang ditandatangani sendiri, aktifkan opsi di bawah ini.", + "basicAuthRequired": "Akan muncul tampilan di depan server yang meminta nama pengguna dan kata sandi. Masukkan di bawah ini.", + "proxyLogin": "Halaman login atau proxy yang merespons, bukan Termix. Tambahkan header yang dibutuhkan di bawah ini, atau periksa alamatnya.", + "notTermix": "Tidak ada server Termix di alamat tersebut. Jika server tersebut berjalan di bawah suatu jalur, sertakan jalurnya, misalnya https://example.com/termix.", + "versionMismatch": "Server tersebut menjalankan Termix versi lama. Perbarui ke versi 2.9 atau yang lebih baru agar bisa terhubung.", + "differentAccount": "Anda masuk ke akun yang berbeda. Masuk ke akun yang terhubung dengan perangkat ini, atau putuskan tautannya terlebih dahulu." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", + "title": "Tautan ke server Termix", + "reloginTitle": "Masuk lagi", + "savedServers": "Server terbaru", + "removeServer": "Hapus dari daftar", + "serverDescription": "Masukkan alamat yang Anda gunakan untuk membuka Termix di browser Anda.", + "signinDescription": "Masuk ke {{url}}", + "chooseDescription": "Perangkat ini sudah memiliki data. Apa yang harus dilakukan selanjutnya?", + "finishingDescription": "Menghubungkan perangkat ini.", + "serverUrl": "Alamat server", + "serverUrlHint": "Sebagai contoh, https://termix.example.com", + "showProxySettings": "Pengaturan reverse proxy", + "hideProxySettings": "Sembunyikan pengaturan reverse proxy", + "continue": "Melanjutkan", + "back": "Kembali", + "mergeTitle": "Tambahkan ke akun saya", + "mergeBody": "Item {{count}} pada perangkat ini ditambahkan ke akun Anda. Item yang sudah dimiliki akun Anda akan tetap seperti semula di server.", + "replaceTitle": "Ganti dengan akun saya", + "replaceBody": "Item {{count}} pada perangkat ini dihapus, dan perangkat ini mengambil semua data dari akun Anda. Hanya host yang tetap ada di perangkat ini.", "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "linking": "Menghubungkan dan menjalankan sinkronisasi pertama...", + "linked": "Terhubung. Data Anda sedang disinkronkan sekarang.", + "signedInAgain": "Berhasil masuk. Sinkronisasi sedang berjalan lagi." } }, "hostDefaults": { "source": { "folder": "Folder {{name}}", - "user": "My defaults", + "user": "Pengaturan default saya", "admin": "Server", - "builtin": "Built-in" + "builtin": "Terpasang" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "Kebiasaan", + "setHere": "Ditetapkan di sini", + "notSet": "Belum diatur", + "notSetTitle": "Tidak ada nilai default yang ditetapkan untuk ini.", + "resetTitle": "Host ini menetapkan nilainya sendiri. Klik untuk menggunakan nilai default dari {{source}} lagi", + "clearTitle": "Tetapkan pada level ini. Klik untuk menghapusnya dan gunakan {{source}} sebagai gantinya.", + "inheritedTitle": "Mengikuti pengaturan default dari {{source}}", + "titleAdmin": "Pengaturan default host server", + "titleUser": "Pengaturan default host saya", + "titleFolder": "Pengaturan folder default: {{name}}", + "descriptionAdmin": "Pengaturan default untuk setiap host di server ini. Pengaturan default pengguna, pengaturan default folder, atau host itu sendiri masih dapat menetapkan nilai yang berbeda. Ubah bidang untuk mengaturnya di sini, atau hapus untuk membiarkannya tidak diatur.", + "descriptionUser": "Nilai default untuk semua host Anda, di atas nilai server. Sebuah folder atau host itu sendiri masih dapat mengatur nilai yang berbeda. Ubah kolom untuk mengaturnya di sini, atau kosongkan untuk membiarkannya tidak diatur.", + "descriptionFolder": "Nilai default untuk host di folder ini dan subfoldernya, menggantikan nilai Anda sendiri. Sebuah host masih dapat mengatur nilai yang berbeda. Ubah kolom untuk mengaturnya di sini, atau kosongkan untuk membiarkannya tidak diatur.", + "save": "Simpan pengaturan default", + "saved_one": "Pengaturan default tersimpan. {{count}} host telah diperbarui.", + "saved_other": "Pengaturan default tersimpan. {{count}} host telah diperbarui.", + "savedInBackground": "Pengaturan default telah disimpan. Host sedang diperbarui di latar belakang.", + "appliedToHosts_one": "{{count}} host telah diperbarui dengan pengaturan default yang baru.", + "appliedToHosts_other": "{{count}} host telah diperbarui dengan pengaturan default yang baru.", + "saveFailed": "Pengaturan default tidak dapat disimpan.", + "loadFailed": "Tidak dapat memuat pengaturan default.", + "confirmTitle": "Simpan pengaturan default?", + "confirmChanges_one": "{{count}} host mengikuti pengaturan default ini dan akan berubah.", + "confirmChanges_other": "{{count}} host mengikuti pengaturan default ini dan akan berubah.", + "confirmNoChanges": "Tidak ada perubahan pada host yang sudah ada. Host baru akan dimulai dengan pengaturan default ini.", + "menuMyDefaults": "Pengaturan default host saya", + "folderDefaultsAction": "Pengaturan default folder", + "adminSectionDescription": "Tetapkan nilai default yang diikuti oleh setiap host di server ini, untuk setiap pengaturan yang dimiliki host, termasuk setiap fitur. Pengguna dan folder dapat menetapkan nilai mereka sendiri di atasnya, dan setiap host masih dapat menggunakan nilai miliknya sendiri.", + "editServerDefaults": "Edit pengaturan default server", + "resetMenu": "Mengatur ulang", + "resetAll": "Semua pengaturan default", + "resetCore": "Koneksi dan SSH ke pengaturan default", + "resetDone_one": "{{count}} host sekarang mengikuti pengaturan defaultnya.", + "resetDone_other": "{{count}} host sekarang mengikuti pengaturan defaultnya." } } diff --git a/src/ui/locales/translated/no_NO.json b/src/ui/locales/translated/no_NO.json index ce46321de..a763197eb 100644 --- a/src/ui/locales/translated/no_NO.json +++ b/src/ui/locales/translated/no_NO.json @@ -55,8 +55,8 @@ "levelManage": "Administrer", "levelUseDesc": "Bruk: Koble til legitimasjonen til verter og koble til. Selve hemmeligheten forblir skjult.", "levelManageDesc": "Administrer: rediger også legitimasjonen og del den med andre.", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "Denne legitimasjonen er ikke delt ennå", + "accessRevoked": "Tilgang tilbakekalt", "shared": "Delt legitimasjon" }, "deleteCredentialAction": "Slett legitimasjon", @@ -113,14 +113,14 @@ "arrangeUnlocked": "Lås opp og dra for å omorganisere" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Oppdatering tilgjengelig. Åpne utgivelsesnotatene på GitHub" }, "common": { "close": "Lukke", "minimize": "Minimer", "online": "På nett", "offline": "Frakoblet", - "signInFailed": "Sign in failed", + "signInFailed": "Pålogging mislyktes", "unknown": "Ukjent", "continue": "Fortsette", "maintenance": "Vedlikehold", @@ -131,9 +131,9 @@ "dismiss": "Avskjedige", "more": "Flere", "loading": "Laster inn...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Vert", + "selectHost": "Velg en vert...", + "noHostConfigured": "Ingen vert konfigurert", "optional": "Valgfri", "connect": "Koble til", "copied": "Kopiert", @@ -187,7 +187,7 @@ "remove": "Fjerne", "add": "Legge til", "update": "Oppdatering", - "noResults": "No results found" + "noResults": "Ingen resultater funnet" }, "onboarding": { "stepCounter": "Trinn {{current}} av {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Kommandopalett", "workflow_palette_desc": "Gå til en hvilken som helst server eller handling ved å skrive. Trykk på Shift to ganger for å åpne den.", "workflow_split": "Delt skjerm", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Vis flere faner side om side, for eksempel for å se logger mens du jobber.", "workflow_dock": "Sidepanel", "workflow_dock_desc": "Midtklikk eller høyreklikk på et sidefeltikon for å åpne det som en fane eller feste det til høyre.", "securityTitle": "Holder påloggingene dine trygge", @@ -248,13 +248,13 @@ "done_cli": "Kommandolinjeverktøy", "done_cli_desc": "Administrer serverne dine fra en terminal, og bruk Termix i dine egne skript.", "done_cli_link": "Åpne CLI-dokumentasjonen", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Hvordan vil du bruke Termix?", + "desktopBody": "Du kan endre dette når som helst fra Synkroniser i sidefeltet.", + "desktopLocalTitle": "Kun på denne enheten", + "desktopLocalBody": "Alt er lagret her. Ingenting å sette opp.", + "desktopLinkTitle": "Med min Termix-server", + "desktopLinkBody": "Logg på serveren din for å bruke de samme vertene og innstillingene på alle enheter.", + "desktopLinked": "Lenket til {{server}}" }, "nav": { "home": "Hjem", @@ -295,21 +295,21 @@ "collapseSideMenu": "Skjul menyen", "roleAdministrator": "Administrator", "roleUser": "Bruker", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Synkroniser", + "reconnectDisconnectedTerminals": "Koble til alle frakoblede terminaler igjen", + "reconnectingTerminals_one": "Kobler til {{count}} -terminalen på nytt", + "reconnectingTerminals_other": "Koble til {{count}} terminaler igjen", + "noDisconnectedTerminals": "Ingen frakoblede terminaler er klare til å kobles til igjen", + "reconnectTerminalsFailed_one": "Kunne ikke starte tilkoblingen til {{count}} -terminalen på nytt", + "reconnectTerminalsFailed_other": "Kunne ikke starte tilkoblingen av {{count}} -terminalene på nytt", + "fullscreenUnsupported": "Fullskjerm støttes ikke av denne nettleseren", + "fullscreenFailed": "Kunne ikke slå fullskjerm av/på", + "resetSidebarWidth": "Tilbakestill bredde", + "collapseSidebar": "Skjul sidefeltet", + "openSidebar": "Åpne sidefeltet", + "confirmCloseHost": "Lukk {{host}}?", + "enterFullscreen": "Gå inn i fullskjermmodus (Ctrl+Shift+F)", + "exitFullscreen": "Avslutt fullskjermmodus (Ctrl+Shift+F)" }, "hosts": { "hosts": "Verter", @@ -353,7 +353,7 @@ "serverStats": "Vertsmålinger", "status": { "available": "Tilgjengelig", - "reachable": "Up, but the last sign in failed", + "reachable": "Oppe, men siste pålogging mislyktes", "offline": "Frakoblet", "monitoringDisabled": "Overvåking deaktivert", "label": "Status" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Tving tastaturinteraktivt", "overrideCredentialUsername": "Overstyr brukernavn for legitimasjon", "overrideCredentialUsernameDesc": "Bruk brukernavnet som er spesifisert ovenfor i stedet for brukernavnet til legitimasjonen", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Bruk $external.username for å fylle ut navnet du logget på med via SSO eller LDAP.", "jumpHostChain": "Hoppvertkjede", "portKnocking": "Port Knocking", "addKnock": "Legg til port", @@ -626,14 +626,14 @@ "actionsClick": "Klikk for å utvide/skjule", "openOnDoubleClick": "Åpne ved dobbeltklikk", "openOnDoubleClickDesc": "Krev et dobbeltklikk for å åpne en vertsøkt i stedet for et enkeltklikk", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Vis mappebaner", + "showFolderPathsDesc": "Vis banen til den overordnede mappen over navnene på nestede undermapper. Undermapper forblir innrykket uansett.", + "hostClickBehavior": "Klikke på en vert", + "hostClickBehaviorDesc": "Hva skjer når du klikker på en vert som allerede har en åpen fane. Ctrl/Cmd-klikk, midtre klikk eller «Åpne i ny fane» starter alltid en ny fane.", + "hostClickNewTab": "Åpne alltid en ny fane", + "hostClickFocusExisting": "Bytt til den åpne fanen", + "hostClickFocusExistingDoubleNew": "Klikk for å bytte, dobbeltklikk for en ny fane", + "openInNewTab": "Åpne i ny fane", "deletedHost": "Slettet {{name}}", "copiedToClipboard": "Kopiert til utklippstavlen", "remoteDesktopUrlCopied": "URL-adressen til eksternt skrivebord er kopiert", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Hvert endepunkt trenger et annet navn.", "webUiErrorPortRange": "Endepunktet {{row}} trenger en port mellom 1 og 65535.", "webUiErrorPathInvalid": "Endepunktet {{row}} har en ugyldig sti. Bruk en sti som /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Kopier {{name}} -lenken", + "filterAuthAgent": "SSH-agent", + "authTypeNeedsPlugin": "Denne verten bruker {{type}}, som trenger {{plugin}}. Den er slått av på denne serveren.", + "authTypeUnknown": "Denne verten bruker {{type}}, som ikke er tilgjengelig på denne serveren.", + "authFieldsAfterSave": "Lagre verten først, og fyll deretter ut disse feltene.", + "enablePluginFeature": "Aktiver {{name}}", + "disablePluginFeature": "Deaktiver {{name}}", "filterFeaturesGroup": "Funksjoner", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Oppbevar kun på denne enheten", + "localOnlyDesc": "Denne verten sendes ikke til serveren og vises ikke på de andre enhetene dine.", + "folderLocalOnly": "Oppbevar kun på denne enheten", + "folderLocalOnlyDesc": "Denne mappen og alle verter i den forblir på denne enheten og sendes ikke til serveren.", + "sudoPasswordDesc": "Brukes når terminalen fyller ut en sudo-ledetekst, og av funksjoner som kjører kommandoer med sudo.", "editorCancel": "Avbryt", "editorSaving": "Lagrer...", "editorUpdate": "Oppdater vert", "editorAdd": "Legg til vert", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Søk etter verter. Piltastene for å velge, Enter for å koble til, Esc for å lukke", + "speedSearchList": "Vertsliste. Skriv inn eller trykk på / for å søke.", + "importNoHosts": "Ingen verter funnet i filen", + "importTooMany": "Du kan importere opptil {{max}} verter samtidig", + "importSummary": "Import fullført: {{imported}} importert, {{updated}} oppdatert, {{failed}} mislyktes", + "importHostsFailed": "Kunne ikke importere verter" }, "commandPalette": { "searchPlaceholder": "Søk etter verter, kommandoer eller innstillinger...", @@ -897,58 +897,58 @@ "navigate": "Navigere", "select": "Velge", "toggleWith": "Veksle med", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Flere handlinger", + "noTargetTab": "Ingen terminalfane er åpen" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "title": "Delt skjerm", + "defaultLabel": "Del {{number}}", + "splitRight": "Del høyre", + "splitDown": "Del ned", + "addToSplit": "Legg til i {{split}}", + "paneEmptyItem": "Rute {{index}}: tom", + "paneItem": "Rute {{index}}: {{label}}", + "paneNumber": "Rute {{index}}", + "newPaneRight": "Ny rute til høyre", + "newPaneBelow": "Ny rute nedenfor", + "emptyTitle": "Tom rute", + "emptyHint": "Velg noe som skal vises her. Når denne ruten er valgt, åpnes også alt du åpner fra sidefeltet her.", + "openTabs": "Åpne faner", + "noOpenTabs": "Ingen andre faner er åpne", "hosts": "Verter", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", + "searchHosts": "Søk etter verter", + "noHosts": "Ingen verter samsvarer", + "newSession": "Ny", + "closePane": "Lukk ruten", + "closeSession": "Lukk økten", + "moveToTab": "Flytt til egen fane", + "swapWith": "Bytt med", + "showHere": "Vis i denne ruten", + "clearPane": "Tøm denne ruten", + "zoom": "Zoom-rute", + "unzoom": "Gjenopprett oppsett", + "unsplit": "Udelt", + "layouts": "Oppsett", + "applyLayout": "Endre oppsett", + "newSplit": "Ny splittelse", + "maxPanes": "En deling kan inneholde opptil {{count}} ruter", + "dropSplit": "Slipp for å dele", + "dropHere": "Slipp for å vise her", + "paneActions": "Rutehandlinger", + "dividerHint": "Dra for å endre størrelse. Dobbeltklikk for å jevne ut.", + "openInSplit": "Åpne i splitt", + "openInNewSplit": "Ny deling med gjeldende fane", "shortcuts": "Snarveier", - "shortcutNavigate": "Move between panes", + "shortcutNavigate": "Flytt mellom ruter", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "To side om side", + "rows2": "To stablet", + "columns3": "Tre side om side", + "mainLeft3": "En til venstre, to til høyre", + "mainBottom3": "To øverst, én nederst", + "grid4": "Rutenett på fire", + "grid5": "Tre over to", + "grid6": "Rutenett på seks" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Autentisering kreves", "mfaPushRequired": "Push-autentisering kreves", "mfaMenuPlaceholder": "Skriv inn svaret ditt", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Kode eller «push»", "mfaWaitingApproval": "Venter på godkjenning på enheten din ...", "mfaSendRequest": "Send forespørsel", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Sikkerhetsnøkkel", + "browserSignInUrl": "Påloggings-URL", + "browserSignInOpen": "Åpne i nettleser", + "browserSignInContinue": "Jeg har fullført påloggingen", + "browserSignInRequired": "{{provider}} Pålogging kreves", "connectionLogTitle": "Tilkoblingslogg", "connectionLogCopy": "Kopier logger til utklippstavlen", "connectionLogEmpty": "Ingen tilkoblingslogger ennå", @@ -1032,7 +1032,7 @@ "external": "Utvendig", "loginWithExternal": "Logg inn med ekstern leverandør", "loginWithExternalDesc": "Logg inn med den konfigurerte eksterne identitetsleverandøren din", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Ekstern pålogging støttes ikke i skrivebordsappen ennå. Vennligst bruk nettversjonen.", "loginWithProvider": "Logg inn med {{name}}", "orContinueWith": "eller fortsette med", "resetPasswordButton": "Tilbakestill passord", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "{{count}} forsøk igjen", "confirmResetDataWipe": "Denne kontoen har ikke vært logget inn siden krypteringsoppgraderingen, så de lagrede dataene kan ikke gjenopprettes uten det gamle passordet. Tilbakestilling vil slette vertene, påloggingsinformasjonen og kodebitene permanent. Vil du fortsette?", "password": "Passord", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Kontoen din bruker en annen faktor som ikke er tilgjengelig akkurat nå. Kontakt en administrator for å tilbakestille den.", + "secondFactorNoUI": "Denne andre faktoren kan ikke vises på denne skjermen. Kontakt en administrator.", + "serverAuthentication": "Serverpålogging", + "minChars": "min. {{min}} tegn" }, "hostKey": { "verifyNewHost": "Bekreft SSH-vertsnøkkel", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Kunne ikke bekrefte tilbakestillingskoden", "failedCompleteReset": "Kunne ikke fullføre tilbakestillingen av passordet", "invalidTotpCode": "Ugyldig TOTP-kode", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Kunne ikke starte ekstern pålogging", + "silentSigninOidcUnavailable": "Stille pålogging ble forespurt, men ingen ekstern pålogging er konfigurert.", "failedUserInfo": "Klarte ikke å hente brukerinformasjon etter innlogging", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Ekstern pålogging mislyktes", "invalidAuthUrl": "Ugyldig autorisasjons-URL mottatt fra backend", "requiredField": "Dette feltet er obligatorisk", "minLength": "Minimumslengden er {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Kunne ikke lagre autentiseringstokenet", "authTokenMissing": "Serveren returnerte ikke et nytt autentiseringstoken. Vennligst logg inn på nytt.", "failedToLoadServer": "Kunne ikke laste inn serveren", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Økten er utløpt. Vennligst logg inn på nytt." }, "messages": { "registrationDisabled": "Registrering av ny konto er for øyeblikket deaktivert av en administrator. Vennligst logg inn eller kontakt en administrator.", @@ -1163,7 +1163,7 @@ "panelMain": "Hoved", "panelSide": "Side", "justNow": "akkurat nå", - "activityFileManager": "File manager" + "activityFileManager": "Filbehandler" }, "donation": { "title": "Liker du Termix?", @@ -1188,12 +1188,12 @@ "add": "Legge til:", "commandPalette": "Kommandopalett", "done": "Ferdig", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Dra kort for å endre rekkefølgen. Dra kolonnedeleren for å endre størrelsen på kolonnene. Dra i den nederste kanten av et kort for å endre høyden. Bruk papirkurvknappen for å fjerne et kort.", "empty": "Tømme", "clear": "Klar", "viewServerDetails": "Vis serverdetaljer", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Dra for å endre størrelsen på kolonnene", + "hostsAvailable": "Tilgjengelige verter" }, "admin": { "sectionGeneral": "General", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Database", "sectionApiKeys": "API-nøkler", "sectionAuditLog": "Revisjonslogg", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS-sertifikat", "sectionBranding": "Hvit etikett", "brandingAppName": "Programnavn", "brandingAppNameDesc": "Vises på innloggingsskjermen og i nettleserfanen. La stå tomt for å bruke «Termix».", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Ugyldig bilde. Bruk en PNG-, JPEG- eller WEBP-fil på opptil 750 KB.", "brandingSaved": "Merkevareinnstillingene er lagret", "brandingSaveFailed": "Kunne ikke lagre merkevareinnstillingene", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Sertifikatet Termix serverer over HTTPS. Last opp ditt eget her, eller skaff og forny et fra Let's Encrypt i ACME-sertifikater-delen.", "sslDocsLink": "Vis SSL-dokumenter", "sslCertStatus": "Sertifikatstatus", "sslCertStatusNone": "Ingen sertifikat", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "La nye brukere registrere seg selv med brukernavn og passord", "allowPasswordLogin": "Tillat passordpålogging", "allowPasswordLoginDesc": "Brukernavn/passord pålogging", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Opprett eksterne kontoer automatisk", + "oidcAutoProvisionDesc": "Opprett en konto første gang noen logger på via en ekstern pålogging som SSO eller LDAP, selv når registreringen er av", + "secondFactorAfterExternalLogin": "Be om en annen faktor etter eksterne pålogginger (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Av, en registrert sekundær faktor blir bare spurt etter passord og andre lokale pålogginger, samme som før. På, den blir spurt etter hver påloggingsmetode, inkludert SSO og LDAP.", "allowPasswordReset": "Tillat tilbakestilling av passord", "allowPasswordResetDesc": "Tilbakestill kode via Docker-logger", "auditForwardingTitle": "Videresend til SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Kunne ikke lagre innstillingene for videresending av revisjon", "sessionTimeout": "Tidsavbrudd for økt", "hours": "timer", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Min. 1 t, maks. 720 t", "monitoringDefaults": "Overvåking av standardinnstillinger", "statusCheck": "Statussjekk", "sec": "sek", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Administratorstatus", "editUserUserId": "Bruker-ID", "linkAccountTitle": "Koble sammen kontoer", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Slå sammen den eksterne kontoen {{username}} med en eksisterende lokal konto.", + "linkAccountDescLocal": "Koble en lokal konto {{username}} til en eksisterende ekstern konto.", "linkAccountWarningTitle": "Dette vil:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Slett den eksterne kontoen", + "linkAccountEffect2": "Legg til den eksterne påloggingen til målkontoen", + "linkAccountEffect3": "Tillat både ekstern pålogging og passordpålogging", "linkAccountTargetUsername": "Brukernavn for lokal konto", "linkAccountTargetPlaceholder": "Skriv inn brukernavnet for den lokale kontoen som skal kobles til", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Brukernavn for ekstern konto", + "linkAccountOidcPlaceholder": "Skriv inn brukernavnet for den eksterne kontoen som skal slås sammen", + "linkAccountOidcNotFound": "Ingen ekstern konto funnet med det brukernavnet", "linkAccounts": "Koble sammen kontoer", "linkAccountSuccess": "Kontoer er koblet sammen", "linkAccountFailed": "Kunne ikke koble kontoer", "linkAccountInProgress": "Kobler...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Fjern kobling til ekstern pålogging", + "unlinkAccountDesc": "Fjern ekstern pålogging fra {{username}}. De vil bare kunne logge på med passordet sitt.", + "unlinkAccountWarning": "Dette fjerner ekstern pålogging fra denne kontoen. Brukeren må ha angitt et passord for å fortsette å logge på.", + "unlinkAccount": "Fjern kobling til ekstern pålogging", "unlinkAccountInProgress": "Fjerner koblingen...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Ekstern pålogging er fjernet", + "unlinkAccountFailed": "Kunne ikke fjerne koblingen til ekstern pålogging", "saving": "Lagrer...", "updateRegistrationFailed": "Kunne ikke oppdatere registreringsinnstillingene", "updatePasswordLoginFailed": "Kunne ikke oppdatere passordinnstillingen for pålogging", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Kunne ikke oppdatere innstillingen for automatisk oppretting", + "updateSecondFactorAfterExternalLoginFailed": "Kunne ikke oppdatere innstillingen for den andre faktoren", "updatePasswordResetFailed": "Kunne ikke oppdatere innstillingen for tilbakestilling av passord", "sessionTimeoutRange2": "Øktens tidsavbrudd må være mellom 1 og 720 timer", "sessionTimeoutSaved": "Timeout for økten lagret", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Ingen aktive økter", "deleteSuccessorLabel": "Overgi verter og legitimasjon til", "deleteSuccessorMe": "Meg (administratoren som sletter)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Ingen, slett dem", "deleteSuccessorDesc": "Alt denne brukeren delte fortsetter å fungere under den nye eieren; hvis du velger «ingen», fjernes vertene, påloggingsinformasjonen og delingene deres.", "deleteUserDangerDesc": "Slett {{username}} og alle dataene deres (verter, påloggingsinformasjon, kodesnutter, historikk) permanent. Dette kan ikke angres.", "deleteUserConfirm": "Vil du slette {{username}} og alle dataene deres permanent?", @@ -1477,31 +1477,31 @@ "saveError": "Kunne ikke lagre rolletillatelser", "save": "Spare", "saving": "Lagrer...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Funksjonen er deaktivert", "groups": { "hosts": "Verter", "credentials": "Legitimasjon", - "admin": "Administration" + "admin": "Administrasjon" } }, "notificationPrivateEndpoints": "Tillatte private varslingsverter", "notificationPrivateEndpointsDesc": "Nøyaktige private verter som varslingskanaler kan kontakte. Skill dem med komma.", "updateNotificationEndpointsFailed": "Kunne ikke oppdatere tillatelseslisten for varslingsendepunktet", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Andre faktorer", + "secondFactorsNone": "Ingen andre faktorer registrert", + "secondFactorUnavailable": "Utilgjengelig", + "resetSecondFactors": "Tilbakestill andre faktorer", + "resetSecondFactorsConfirm": "Fjern annenhver faktor for {{username}}? De kan logge på med passordet sitt eller SSO og registrere seg på nytt.", + "secondFactorsResetSuccess": "Andre faktorer tilbakestilles", + "secondFactorsResetFailed": "Kunne ikke tilbakestille andre faktorer", + "passwordLoginForced": "Passordpålogging er slått av, men ingen annen påloggingsmetoder er aktivert, så den forblir på foreløpig. Ingen blir låst ute.", + "sslNotRenewed": "Ingenting fornyer dette sertifikatet. Det utløper {{date}}. Slå på automatisk fornyelse i ACME-sertifikater-delen, eller last opp et nytt før da.", + "sslSelfSigned": "Selvsignert sertifikat laget av Termix. Nettlesere vil advare om det.", + "sslRenewedBy": "Fornyes automatisk av {{plugin}}", + "sslIssuer": "Utstedt av {{issuer}}", + "sslNames": "Omslag {{names}}", + "sslManualTitle": "Last opp et sertifikat", + "updateExternalAutoProvisionFailed": "Kunne ikke oppdatere innstillingen for automatisk oppretting" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protokoll", "domainLabel": "Domene", "domainPlaceholder": "valgfri", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Koble til {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Ingenting installert kan koble til denne vertstypen" }, "keybindings": { "title": "Tastatursnarveier", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Knytt taster til handlinger i terminalen og appen, eller endre de innebygde snarveiene.", "defaultsHeading": "Innebygde snarveier", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Appsnarveier", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Del høyre", + "splitDown": "Del ned", + "zoomPane": "Zoom den fokuserte ruten", + "navigatePane": "Flytt mellom ruter", + "nextTab": "Neste fane", + "previousTab": "Forrige fane", + "jumpTab": "Hopp til fane", + "previousView": "Tilbake til forrige sidefeltvisning", + "fullscreen": "Slå av/på fullskjerm" }, "customHeading": "Tilpassede snarveier", "addBinding": "Legg til snarvei", @@ -1566,9 +1566,9 @@ "actionNextTab": "Bytt til neste fane", "actionPreviousTab": "Bytt til forrige fane", "actionOpenCommandPalette": "Åpne hurtigsøk", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Koble til gjeldende økt på nytt", + "unavailableAction": "{{type}} (ikke tilgjengelig)", + "actionRequiredError": "Velg en handling først" }, "userProfile": { "donateTitle": "Hold Termix i live", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Innstillingene tilbakestilles til standardinnstillinger.", "storageModeSwitch": "Preferanselagring", "sectionAccount": "Konto", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Kun denne enheten", + "desktopProfileDescription": "Denne profilen ligger på denne enheten og logger på av seg selv. Koble den til en Termix-server for å bruke de samme vertene og innstillingene på alle enheter.", "sectionInterface": "Grensesnitt", "interfacePresetDesc": "Hvor mye detaljer Termix viser. Alle funksjoner forblir tilgjengelige.", "preset_simple": "Enkel", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Gjenopprett åpne faner når du logger inn eller oppdaterer siden, selv fra en annen enhet", "confirmTabClose": "Bekreft lukking av fane", "confirmTabCloseDesc": "Spør før du lukker terminalfaner", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Vis fanenumre", + "showTabNumbersDesc": "Vis et tall på hver fane for å skille dem fra hverandre", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "Visningsinnstillingene for vertssidepanelet er flyttet til panelet Tilpass sidefelt, som åpnes fra vertsverktøylinjen.", "showHostTags": "Vis vertstagger", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo-natten", "themeOneDark": "En mørk", "themeGruvbox": "Gruvboks", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Logget inn på {{server}}", + "linkedProfileDescription": "Denne enheten bruker kontoen din på serveren og lagrer en kopi av dataene dine, slik at den fortsatt fungerer offline.", + "manageSync": "Administrer synkronisering", + "setUpSync": "Kobling til en server", + "settingsTabsAndShortcuts": "Faner og snarveier" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Se passordene og nøklene dine", + "consequence": "Den kan lese den lagrede hemmeligheten for enhver vert du kan nå." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Kjør kommandoer på serverne dine", + "consequence": "Enhver kommando, på verter du kobler den til, med din tilgang." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Kjør programmer på denne maskinen", + "consequence": "Programmer kjører på selve Termix-serveren, ikke på vertene dine." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Opprett og endre brukerkontoer", + "consequence": "Den kan legge til brukere og endre rollene deres." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Håndter pålogging", + "consequence": "Den kan legge til en påloggingsmetode, en andre faktor eller en SSH-påloggingstype." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Administrer sertifikater", + "consequence": "Den kan erstatte sertifikatet Termix serverer over HTTPS og svare på domenesjekker fra sertifikatmyndigheter." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Tilgang til serielle og USB-enheter", + "consequence": "Den kan åpne en fysisk seriell port på maskinen som kjører Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Opprett og endre verter", + "consequence": "Den kan legge til verter og redigere de du allerede har." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Koble til serverne dine", + "consequence": "Den kan ikke se passordene eller nøklene dine." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Lagre ny påloggingsinformasjon", + "consequence": "Den kan legge til passord og nøkler til lagrede påloggingsinformasjon." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Nå internett", + "consequence": "Den kan sende forespørsler til eksterne tjenester." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Godta tilkoblinger", + "consequence": "Den åpner en port på Termix-serveren." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Send nettverkssendinger", + "consequence": "Den kan sende pakker til enheter på det lokale nettverket, for eksempel et Wake-on-LAN-signal." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Se brukernavn og roller", + "consequence": "Aldri passord-hasher, aldri tofaktortilstand." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Se alt som skjer", + "consequence": "Inkludert aktivitet fra andre brukere, ikke bare din." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Send varsler", + "consequence": "Til deg eller andre brukere, og gjennom kanalene de setter opp." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Motta alle varsler", + "consequence": "Lagrer og leverer varslene alle plugin-moduler sender, inkludert innholdet." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Les revisjonsloggen", + "consequence": "Den kan se hvem som gjorde hva og når." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Åpne skrivebordsvinduer", + "consequence": "Bare i Termix-skrivebordsappen." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Oppfør deg som andre brukere", + "consequence": "Kjører bakgrunnsarbeid med en annen brukers tilgang, for eksempel planlagte jobber. All bruk skrives til revisjonsloggen." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Les hovedkontotabeller", + "consequence": "Kan spørre brukere, roller og verter direkte fra databasen." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Se vertslisten din", + "consequence": "Navn og adresser til verter du allerede kan se." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Lagre sine egne data", + "consequence": "Oppbevares i egne tabeller, atskilt fra andre plugins." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Husk små innstillinger", + "consequence": "Holdes atskilt fra andre plugins." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Lagre sine egne filer", + "consequence": "I sin egen mappe på disken, atskilt fra andre programtillegg." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Lagre sine egne hemmeligheter", + "consequence": "Kryptert av Termix. Plugin-modulen har aldri nøkkelen." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Les Termix-innstillinger", + "consequence": "Serverinnstillinger, ikke vertene eller påloggingsinformasjonen din." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Se installerte funksjoner", + "consequence": "Den kan se hvilke funksjoner som er installert og kjører." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Legg til egne skjermer", + "consequence": "Faner, paneler og innstillinger du kan skjule senere." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} er ikke tilgjengelig", + "needsUnknownPlugin": "Denne funksjonen er ikke tilgjengelig", + "disabledHint": "Den er slått av på denne serveren.", + "missingHint": "Funksjonen den kom fra er fjernet.", + "failed": "{{name}} kunne ikke starte", + "failedHint": "En administrator kan sjekke serverloggene for detaljer.", + "loading": "Laster {{name}}", + "crashed": "Noe gikk galt i {{name}}", + "retry": "Prøv igjen" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Sett", + "secretNotSet": "Ikke angitt", "secretReplace": "Erstatt", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Innstillingene er lagret", + "pluginSettingsInvalid": "Enkelte innstillinger kunne ikke lagres. Sjekk de uthevede feltene.", + "pluginSettingsSaveFailed": "Kunne ikke lagre innstillingene", + "pluginSettingsLoadFailed": "Kunne ikke laste inn innstillingene", + "featureUnavailable": "{{name}} er ikke tilgjengelig akkurat nå. Disse innstillingene er lagret, men trer ikke i kraft." }, "managerCard": { "refresh": "Oppdater", "retry": "Prøv igjen", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", + "sudoHint": "Angi et sudo-passord for denne verten i vertredigeringsprogrammet for å aktivere privilegerte handlinger.", + "noData": "Ingen data", "filter": "Filter..." }, "sync": { - "server": "Termix server", - "account": "Account", + "server": "Termix-server", + "account": "Konto", "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "never": "aldri", + "justNow": "akkurat nå", + "minutesAgo_one": "for {{count}} minutt siden", + "minutesAgo_other": "For {{count}} minutter siden", + "hoursAgo_one": "for {{count}} time siden", + "hoursAgo_other": "For {{count}} timer siden", + "actionFailed": "Det fungerte ikke. Prøv igjen.", + "unlinkedTitle": "Kun denne enheten", + "unlinkedBody": "Termix fungerer på egenhånd på denne enheten. Koble den til Termix-serveren din for å holde alt i tritt.", + "unlinkedPointHosts": "Vertene, påloggingsinformasjonen, snippettene og innstillingene dine følger deg til alle enheter.", + "unlinkedPointOffline": "Alt fungerer fortsatt når serveren ikke kan nås, og tar igjen det senere.", + "unlinkedPointAccount": "Du logger deg på med serverkontoen din, og verter som folk har delt med deg vises også her.", + "linkButton": "Kobling til en server", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Synkronisering", + "offline": "Serveren er ikke tilgjengelig", + "error": "Synkronisering stoppet", + "signedOut": "Logget ut", + "synced": "Synkronisert {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} endring venter på synkronisering", + "pending_other": "{{count}} endringer som venter på synkronisering", + "signInAgain": "Logg inn igjen", + "syncNow": "Synkroniser nå", + "unlink": "Fjern tilknytning", + "unlinked": "Denne enheten er ikke lenger koblet til", + "unlinkTitle": "Fjerne tilknytningen til denne enheten?", + "unlinkDescription": "Den stopper synkroniseringen og logger seg ut av serveren. Verter som deles med deg av andre fjernes fra denne enheten uansett.", + "unlinkKeepTitle": "Oppbevar dataene mine her", + "unlinkKeepBody": "Vertene, påloggingsinformasjonen og innstillingene dine forblir på denne enheten og fortsetter å fungere på egenhånd.", + "unlinkRemoveTitle": "Fjern synkroniserte data", + "unlinkRemoveBody": "Alt som kom fra serveren fjernes fra denne enheten. Verter som er lagret på denne enheten, forblir.", + "conflictsTitle": "Konflikter", + "conflictsDescription": "Disse ble endret her og på serveren samtidig. Serverversjonen er i bruk. Behold din for å sende den til serveren i stedet.", + "keepMine": "Behold min", + "keepServer": "Behold serveren", + "errorsTitle": "Ikke synkronisert", + "errorsDescription": "Serveren godtok ikke disse endringene. De forblir på denne enheten.", + "errorPermission": "Kontoen din på serveren har ikke tillatelse til å gjøre denne endringen.", + "retry": "Prøv igjen", + "whatSyncs": "Hva synkroniseres", + "whatSyncsDescription": "Slå av alt du vil beholde bare på denne enheten.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Serveren har ikke dette", + "notOnDevice": "Ikke på denne enheten ennå", + "localOnlyHint": "Du kan også beholde enkeltverter eller mapper på denne enheten fra innstillingene deres.", + "originTitle": "Der forbindelsene starter", + "originDescription": "Koble til verter fra denne enheten, eller via serveren. Du kan endre dette per vert.", + "originLocal": "Denne enheten", + "originRemote": "Serveren", "entities": { "hosts": "Verter", "sshCredentials": "Legitimasjon", "sshFolders": "Mapper", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "userPreferences": "Innstillinger", + "pluginUserSettings": "Funksjonsinnstillinger", + "sharedHosts": "Verter delt med deg", + "sharedCredentials": "Legitimasjon delt med deg", + "vaultProfiles": "Vault-profiler", + "snippetFolders": "Utdragsmapper", + "snippets": "Utdrag", + "dashboardServiceLinks": "Tjenestelenker", + "homepageItems": "Elementer på hjemmesiden", + "networkTopology": "Nettverkskart", + "workspaces": "Arbeidsområder" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Omvendt proxy", + "description": "Bare nødvendig når noe som Cloudflare Access eller en innloggingsside ligger foran serveren din.", + "headersTitle": "Ekstra overskrifter", + "headersHint": "Sendes med hver forespørsel til serveren, for eksempel et Cloudflare Access-tjenestetoken.", + "headerName": "Navn på overskrift", + "headerValue": "Verdi", + "savedValue": "Lagret, skriv inn for å endre", + "addHeader": "Legg til overskrift", + "removeHeader": "Fjern overskrift", + "basicAuthTitle": "Brukernavn og passord", + "basicAuthHint": "For en proxy som ber om brukernavn og passord før Termix.", "username": "Brukernavn", "password": "Passord", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "allowInvalidCertificate": "Stol på et selvsignert sertifikat", + "allowInvalidCertificateHint": "Bare for din egen server, når sertifikatet ikke er fra en kjent instans.", + "saved": "Lagret" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Det ser ikke ut som en nettadresse.", + "unreachable": "Kunne ikke nå serveren. Sjekk adressen og at serveren kjører.", + "unreachableWithReason": "Kunne ikke nå serveren: {{reason}}", + "tlsUntrusted": "Serversertifikatet er ikke klarert. Hvis dette er din egen server med et selvsignert sertifikat, slå på alternativet nedenfor.", + "basicAuthRequired": "Noe foran serveren ber om brukernavn og passord. Skriv dem inn nedenfor.", + "proxyLogin": "En innloggingsside eller proxy svarte i stedet for Termix. Legg til overskriftene den trenger nedenfor, eller sjekk adressen.", + "notTermix": "Det finnes ingen Termix-server på den adressen. Hvis den kjører under en sti, inkluder den, som https://example.com/termix.", + "versionMismatch": "Den serveren kjører en eldre Termix. Oppdater den til 2.9 eller nyere for å koble til.", + "differentAccount": "Du logget på en annen konto. Logg på kontoen denne enheten er koblet til, eller fjern koblingen først." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Kobling til en Termix-server", + "reloginTitle": "Logg inn igjen", + "savedServers": "Nylige servere", + "removeServer": "Fjern fra listen", + "serverDescription": "Skriv inn adressen du bruker for å åpne Termix i nettleseren din.", + "signinDescription": "Logg inn på {{url}}", + "chooseDescription": "Denne enheten har allerede data. Hva skal skje med den?", + "finishingDescription": "Kobler denne enheten.", + "serverUrl": "Serveradresse", + "serverUrlHint": "For eksempel https://termix.example.com", + "showProxySettings": "Innstillinger for omvendt proxy", + "hideProxySettings": "Skjul innstillinger for omvendt proxy", "continue": "Fortsett", "back": "Tilbake", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "Legg den til i kontoen min", + "mergeBody": "Elementene {{count}} på denne enheten er lagt til kontoen din. Elementer som allerede er i kontoen din, forblir slik de er på serveren.", + "replaceTitle": "Erstatt den med kontoen min", + "replaceBody": "Elementene {{count}} på denne enheten fjernes, og denne enheten tar alt fra kontoen din. Verter som er lagret på denne enheten, forblir.", + "link": "Lenke", + "linking": "Kobler og kjører den første synkroniseringen...", + "linked": "Koblet til. Dataene dine synkroniseres nå.", + "signedInAgain": "Innlogget. Synkroniseringen kjører igjen." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", + "folder": "Mappe {{name}}", + "user": "Mine standardinnstillinger", "admin": "Server", - "builtin": "Built-in" + "builtin": "Innebygd" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "custom": "Skikk", + "setHere": "Sett her", + "notSet": "Ikke angitt", + "notSetTitle": "Ingen standard er angitt for dette", + "resetTitle": "Denne verten angir sin egen verdi. Klikk for å bruke standardverdien fra {{source}} igjen", + "clearTitle": "Sett på dette nivået. Klikk for å fjerne det og bruk {{source}} i stedet", + "inheritedTitle": "Følger standardinnstillingen fra {{source}}", + "titleAdmin": "Standardverdier for serververt", + "titleUser": "Standardinnstillingene for verten min", + "titleFolder": "Standardinnstillinger for mapper: {{name}}", + "descriptionAdmin": "Standardverdier for hver vert på denne serveren. En brukers egne standardverdier, en mappes standardverdier eller verten selv kan fortsatt angi en annen verdi. Endre et felt for å angi den her, eller fjern merket for å la den være uangitt.", + "descriptionUser": "Standardverdier for alle vertene dine, over serverens. En mappe eller selve verten kan fortsatt angi en annen verdi. Endre et felt for å angi den her, eller fjern markeringen for å la den være uangitt.", + "descriptionFolder": "Standardverdier for vertene i denne mappen og undermappene, over dine egne. En vert kan fortsatt angi en annen verdi. Endre et felt for å angi den her, eller fjern det for å la det være uangitt.", + "save": "Lagre standardinnstillinger", + "saved_one": "Standardverdiene er lagret. {{count}} -verten ble oppdatert.", + "saved_other": "Standardverdiene er lagret. {{count}} -verter ble oppdatert.", + "savedInBackground": "Standardverdiene er lagret. Vertene oppdateres i bakgrunnen.", + "appliedToHosts_one": "{{count}} -verten ble oppdatert med de nye standardinnstillingene.", + "appliedToHosts_other": "{{count}} -verter ble oppdatert med de nye standardinnstillingene.", + "saveFailed": "Kunne ikke lagre standardverdiene", + "loadFailed": "Kunne ikke laste inn standardverdiene", + "confirmTitle": "Lagre standardinnstillinger?", + "confirmChanges_one": "{{count}} vert følger disse standardinnstillingene og vil endres.", + "confirmChanges_other": "{{count}} -verter følger disse standardinnstillingene og vil endres.", + "confirmNoChanges": "Ingen endringer i eksisterende verter. Nye verter vil starte med disse standardinnstillingene.", + "menuMyDefaults": "Standardinnstillingene for verten min", + "folderDefaultsAction": "Standardinnstillinger for mapper", + "adminSectionDescription": "Angi standardverdiene som hver vert på denne serveren følger, for hver innstilling en vert har, inkludert hver funksjons. Brukere og mapper kan sette sine egne øverst, og enhver vert kan fortsatt bruke sin egen verdi.", + "editServerDefaults": "Rediger serverstandarder", "resetMenu": "Tilbakestill", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Alt til standardinnstillinger", + "resetCore": "Tilkobling og SSH til standardinnstillinger", + "resetDone_one": "{{count}} verten følger nå standardinnstillingene sine.", + "resetDone_other": "{{count}} -verter følger nå standardinnstillingene sine." } } diff --git a/src/ui/locales/translated/pl_PL.json b/src/ui/locales/translated/pl_PL.json index 378e7647d..59c16a8cb 100644 --- a/src/ui/locales/translated/pl_PL.json +++ b/src/ui/locales/translated/pl_PL.json @@ -55,7 +55,7 @@ "levelManage": "Zarządzać", "levelUseDesc": "Użycie: dołącz dane uwierzytelniające do hostów i połącz się. Sam sekret pozostaje ukryty.", "levelManageDesc": "Zarządzaj: możesz także edytować dane uwierzytelniające i udostępniać je innym osobom.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Te dane uwierzytelniające nie zostały jeszcze udostępnione", "accessRevoked": "Unieważniono dostęp", "shared": "Udostępniono poświadczenie" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Odblokuj przeciąganie, aby zmienić kolejność" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Aktualizacja dostępna. Otwórz notatki do wydania na GitHubie." }, "common": { "close": "Zamknij", "minimize": "Minimalizuj", "online": "Online", "offline": "Offline", - "signInFailed": "Sign in failed", + "signInFailed": "Logowanie nie powiodło się", "unknown": "Nieznany", "continue": "Kontynuuj", "maintenance": "Konserwacja", @@ -187,7 +187,7 @@ "remove": "Usuń", "add": "Dodaj", "update": "Aktualizuj", - "noResults": "No results found" + "noResults": "Nie znaleziono wyników" }, "onboarding": { "stepCounter": "Krok {{current}} z {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Paleta poleceń", "workflow_palette_desc": "Przejdź do dowolnego serwera lub akcji, wpisując tekst. Dotknij dwukrotnie Shift, aby ją otworzyć.", "workflow_split": "Podzielony ekran", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Wyświetlaj kilka kart obok siebie, na przykład aby oglądać dzienniki podczas pracy.", "workflow_dock": "Panel boczny", "workflow_dock_desc": "Kliknij środkowym lub prawym przyciskiem myszy ikonę na pasku bocznym, aby otworzyć ją jako kartę lub przypiąć po prawej stronie.", "securityTitle": "Bezpieczeństwo Twoich poświadczeń", @@ -248,13 +248,13 @@ "done_cli": "Narzędzie wiersza poleceń", "done_cli_desc": "Zarządzaj swoimi serwerami z terminala i używaj Termixa we własnych skryptach.", "done_cli_link": "Otwórz dokumentację CLI", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Jak chcesz używać Termix?", + "desktopBody": "Możesz to w każdej chwili zmienić w opcji Synchronizuj na pasku bocznym.", + "desktopLocalTitle": "Tylko na tym urządzeniu", + "desktopLocalBody": "Wszystko jest tutaj zapisane. Nie trzeba niczego konfigurować.", + "desktopLinkTitle": "Z moim serwerem Termix", + "desktopLinkBody": "Zaloguj się na swoim serwerze, aby używać tych samych hostów i ustawień na każdym urządzeniu.", + "desktopLinked": "Połączono z {{server}}" }, "nav": { "home": "Start", @@ -295,21 +295,21 @@ "collapseSideMenu": "Zwiń menu", "roleAdministrator": "Administrator", "roleUser": "Użytkownik", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Synchronizacja", + "reconnectDisconnectedTerminals": "Podłącz ponownie wszystkie odłączone zaciski", + "reconnectingTerminals_one": "Ponowne łączenie terminala {{count}}", + "reconnectingTerminals_other": "Ponowne podłączanie terminali {{count}}", + "noDisconnectedTerminals": "Żaden z odłączonych terminali nie jest gotowy do ponownego podłączenia", + "reconnectTerminalsFailed_one": "Nie można rozpocząć ponownego łączenia terminala {{count}}", + "reconnectTerminalsFailed_other": "Nie można rozpocząć ponownego podłączania terminali {{count}}", + "fullscreenUnsupported": "Ta przeglądarka nie obsługuje trybu pełnoekranowego", + "fullscreenFailed": "Nie można przełączyć na tryb pełnoekranowy", + "resetSidebarWidth": "Resetuj szerokość", + "collapseSidebar": "Zwiń pasek boczny", + "openSidebar": "Otwórz pasek boczny", + "confirmCloseHost": "Zamknij {{host}}?", + "enterFullscreen": "Przejdź do trybu pełnoekranowego (Ctrl+Shift+F)", + "exitFullscreen": "Wyjdź z trybu pełnoekranowego (Ctrl+Shift+F)" }, "hosts": { "hosts": "Hosty", @@ -353,7 +353,7 @@ "serverStats": "Metryki hosta", "status": { "available": "Dostępny", - "reachable": "Up, but the last sign in failed", + "reachable": "W górę, ale ostatnie logowanie nie powiodło się", "offline": "Niedostępny", "monitoringDisabled": "Monitorowanie wyłączone", "label": "Status" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Wymuś keyboard-interactive", "overrideCredentialUsername": "Zastąp nazwę użytkownika poświadczeń", "overrideCredentialUsernameDesc": "Użyj nazwy użytkownika określonej powyżej zamiast nazwy użytkownika podanej w poświadczeniu", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Użyj $external.username, aby wpisać nazwę, której użyłeś do zalogowania się za pomocą SSO lub LDAP.", "jumpHostChain": "Łańcuch hostów pośrednich", "portKnocking": "Port Knocking", "addKnock": "Dodaj port", @@ -626,14 +626,14 @@ "actionsClick": "Kliknij, aby rozwinąć/zwinąć", "openOnDoubleClick": "Otwórz po dwukrotnym kliknięciu", "openOnDoubleClickDesc": "Wymagaj dwukrotnego kliknięcia, aby otworzyć sesję hosta zamiast pojedynczego kliknięcia", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Pokaż ścieżki folderów", + "showFolderPathsDesc": "Wyświetla ścieżkę do folderu nadrzędnego nad nazwami zagnieżdżonych podfolderów. Podfoldery pozostają wcięte w obu kierunkach.", + "hostClickBehavior": "Kliknięcie hosta", + "hostClickBehaviorDesc": "Co się dzieje, gdy klikniesz hosta, który ma już otwartą kartę? Kliknięcie Ctrl/Cmd, kliknięcie środkowym przyciskiem myszy lub opcja „Otwórz w nowej karcie” zawsze otwiera nową kartę.", + "hostClickNewTab": "Zawsze otwieraj nową kartę", + "hostClickFocusExisting": "Przejdź do otwartej karty", + "hostClickFocusExistingDoubleNew": "Kliknij, aby przełączyć, kliknij dwukrotnie, aby otworzyć nową kartę", + "openInNewTab": "Otwórz w nowej karcie", "deletedHost": "Usunięto {{name}}", "copiedToClipboard": "Skopiowano do schowka", "remoteDesktopUrlCopied": "Skopiowano adres URL pulpitu zdalnego", @@ -698,7 +698,7 @@ "groupCredentials": "Poświadczenia", "groupNotes": "Notatki", "groupTags": "Tagi i przypinanie", - "groupProxy": "Proxy", + "groupProxy": "Pełnomocnik", "groupJumpHosts": "Hosty pośrednie", "groupFeatureFlags": "Flagi funkcji", "groupAdvanced": "Zaawansowana konfiguracja", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Każdy punkt końcowy wymaga innej nazwy.", "webUiErrorPortRange": "Punkt końcowy {{row}} wymaga portu o numerze od 1 do 65535.", "webUiErrorPathInvalid": "Punkt końcowy {{row}} ma nieprawidłową ścieżkę. Użyj ścieżki takiej jak /admin.", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "Kopiuj link {{name}}", "filterAuthAgent": "Agent SSH", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "Ten host używa {{type}}, co wymaga {{plugin}}. Jest ono wyłączone na tym serwerze.", + "authTypeUnknown": "Ten host używa {{type}}, który nie jest dostępny na tym serwerze.", + "authFieldsAfterSave": "Najpierw zapisz hosta, a następnie wypełnij poniższe pola.", + "enablePluginFeature": "Włącz {{name}}", + "disablePluginFeature": "Wyłącz {{name}}", "filterFeaturesGroup": "Funkcje", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Przechowywać tylko na tym urządzeniu", + "localOnlyDesc": "Ten host nie jest wysyłany na serwer i nie pojawia się na innych Twoich urządzeniach.", + "folderLocalOnly": "Przechowywać tylko na tym urządzeniu", + "folderLocalOnlyDesc": "Ten folder i wszystkie znajdujące się w nim hosty pozostają na tym urządzeniu i nie są wysyłane na serwer.", + "sudoPasswordDesc": "Używane, gdy terminal wypełnia monit sudo oraz przez funkcje uruchamiające polecenia za pomocą sudo.", "editorCancel": "Anuluj", "editorSaving": "Zapisywanie...", "editorUpdate": "Aktualizuj hosta", "editorAdd": "Dodaj hosta", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Wyszukaj hosty. Klawisze strzałek do wyboru, Enter do połączenia, Esc do zamknięcia", + "speedSearchList": "Lista hostów. Wpisz lub naciśnij /, aby wyszukać.", + "importNoHosts": "Nie znaleziono hostów w pliku", + "importTooMany": "Możesz zaimportować maksymalnie {{max}} hostów na raz", + "importSummary": "Import wykonany: {{imported}} zaimportowano, {{updated}} zaktualizowano, {{failed}} nie powiodło się", + "importHostsFailed": "Nie udało się zaimportować hostów" }, "commandPalette": { "searchPlaceholder": "Wyszukaj hosty, polecenia lub ustawienia...", @@ -898,57 +898,57 @@ "select": "Wybór", "toggleWith": "Przełącz z", "pluginActions": "Więcej akcji", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "Żadna zakładka terminala nie jest otwarta" }, "splitScreen": { "title": "Podzielony ekran", - "defaultLabel": "Split {{number}}", + "defaultLabel": "Podziel {{number}}", "splitRight": "Podziel w prawo", "splitDown": "Podziel w dół", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "Dodaj do {{split}}", + "paneEmptyItem": "Panel {{index}}: pusty", + "paneItem": "Okienko {{index}}: {{label}}", "paneNumber": "Panel {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "Nowy panel po prawej stronie", + "newPaneBelow": "Nowy panel poniżej", + "emptyTitle": "Pusty panel", + "emptyHint": "Wybierz coś, co chcesz tu pokazać. Gdy ten panel jest zaznaczony, wszystko, co otworzysz z paska bocznego, również się tu otworzy.", + "openTabs": "Otwórz karty", + "noOpenTabs": "Żadna inna karta nie jest otwarta", "hosts": "Hosty", "searchHosts": "Wyszukaj hosty", - "noHosts": "No hosts match", + "noHosts": "Brak pasujących gospodarzy", "newSession": "Nowy", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "Zamknij panel", + "closeSession": "Zamknij sesję", + "moveToTab": "Przenieś na własną kartę", + "swapWith": "Zamień z", + "showHere": "Pokaż w tym panelu", + "clearPane": "Opróżnij ten panel", + "zoom": "Panel powiększenia", + "unzoom": "Przywróć układ", + "unsplit": "Nierozdzielony", + "layouts": "Układy", + "applyLayout": "Zmień układ", + "newSplit": "Nowy podział", + "maxPanes": "Podział może pomieścić do {{count}} paneli", + "dropSplit": "Upuść, aby podzielić", + "dropHere": "Upuść, aby wyświetlić tutaj", + "paneActions": "Akcje panelu", + "dividerHint": "Przeciągnij, aby zmienić rozmiar. Kliknij dwukrotnie, aby wyrównać.", + "openInSplit": "Otwórz w podziale", + "openInNewSplit": "Nowy podział z bieżącą kartą", + "shortcuts": "Skróty", + "shortcutNavigate": "Przechodzenie między panelami", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Dwa obok siebie", + "rows2": "Dwa ułożone w stos", + "columns3": "Trzy obok siebie", + "mainLeft3": "Jeden w lewo, dwa w prawo", + "mainBottom3": "Dwa na górze, jeden na dole", + "grid4": "Siatka czterech", + "grid5": "Trzy na dwa", + "grid6": "Siatka sześciu" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Wymagane uwierzytelnienie", "mfaPushRequired": "Wymagane uwierzytelnianie push", "mfaMenuPlaceholder": "Wprowadź odpowiedź", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Kod lub „push”", "mfaWaitingApproval": "Oczekiwanie na zatwierdzenie na Twoim urządzeniu...", "mfaSendRequest": "Wyślij prośbę", "browserSignInCode": "Klucz bezpieczeństwa", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "Adres URL logowania", "browserSignInOpen": "Otwórz w przeglądarce", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "Zakończyłem logowanie", + "browserSignInRequired": "{{provider}} Wymagane zalogowanie", "connectionLogTitle": "Log połączenia", "connectionLogCopy": "Kopiuj logi do schowka", "connectionLogEmpty": "Brak logów połączenia", @@ -1032,7 +1032,7 @@ "external": "Zewnętrzny", "loginWithExternal": "Zaloguj się za pomocą zewnętrznego dostawcy", "loginWithExternalDesc": "Zaloguj się, korzystając ze skonfigurowanego zewnętrznego dostawcy tożsamości", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Logowanie zewnętrzne nie jest jeszcze obsługiwane w aplikacji na komputery stacjonarne. Prosimy o korzystanie z wersji internetowej.", "loginWithProvider": "Zaloguj się za pomocą {{name}}", "orContinueWith": "lub kontynuuj przez", "resetPasswordButton": "Zresetuj hasło", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "Pozostało {{count}} prób", "confirmResetDataWipe": "To konto nie logowało się od czasu aktualizacji szyfrowania, więc bez starego hasła nie da się odzyskać zapisanych na nim danych. Zresetowanie trwale usunie jego hosty, poświadczenia i snippety. Kontynuować?", "password": "Hasło", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Twoje konto korzysta z drugiego czynnika uwierzytelniania, który obecnie nie jest dostępny. Skontaktuj się z administratorem, aby go zresetować.", + "secondFactorNoUI": "Drugiego czynnika nie można wyświetlić na tym ekranie. Skontaktuj się z administratorem.", + "serverAuthentication": "Logowanie do serwera", + "minChars": "min. {{min}} znaków" }, "hostKey": { "verifyNewHost": "Zweryfikuj klucz hosta SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Nie udało się zweryfikować kodu resetowania", "failedCompleteReset": "Nie udało się ukończyć resetowania hasła", "invalidTotpCode": "Nieprawidłowy kod TOTP", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Nie udało się rozpocząć logowania zewnętrznego", + "silentSigninOidcUnavailable": "Poproszono o ciche logowanie, ale nie skonfigurowano logowania zewnętrznego.", "failedUserInfo": "Nie udało się pobrać informacji o użytkowniku po zalogowaniu", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Nie udało się zalogować z zewnątrz", "invalidAuthUrl": "Otrzymano nieprawidłowy adres URL autoryzacji z serwera", "requiredField": "To pole jest wymagane", "minLength": "Minimalna długość to {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Nie udało się zapisać tokenu uwierzytelniającego", "authTokenMissing": "Serwer nie zwrócił nowego tokenu uwierzytelniającego. Zaloguj się ponownie.", "failedToLoadServer": "Nie udało się załadować serwera", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Sesja wygasła. Zaloguj się ponownie." }, "messages": { "registrationDisabled": "Rejestracja nowych kont jest obecnie wyłączona przez administratora. Zaloguj się lub skontaktuj się z administratorem.", @@ -1188,12 +1188,12 @@ "add": "Dodaj:", "commandPalette": "Paleta poleceń", "done": "Gotowe", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Przeciągnij karty, aby zmienić kolejność. Przeciągnij separator kolumn, aby zmienić rozmiar kolumn. Przeciągnij dolną krawędź karty, aby zmienić jej wysokość. Użyj przycisku kosza, aby usunąć kartę.", "empty": "Puste", "clear": "Wyczyść", "viewServerDetails": "Wyświetl szczegóły serwera", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Przeciągnij, aby zmienić rozmiar kolumn", + "hostsAvailable": "Dostępni gospodarze" }, "admin": { "sectionGeneral": "Ogólne", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Baza danych", "sectionApiKeys": "Klucze API", "sectionAuditLog": "Dziennik audytu", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "Certyfikat HTTPS", "sectionBranding": "Biała etykieta", "brandingAppName": "Nazwa aplikacji", "brandingAppNameDesc": "Wyświetlane na ekranie logowania i karcie przeglądarki. Pozostaw puste, aby używać „Termix”.", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Nieprawidłowy obraz. Użyj pliku PNG, JPEG lub WEBP o rozmiarze do 750 KB.", "brandingSaved": "Ustawienia brandingu zapisane", "brandingSaveFailed": "Nie udało się zapisać ustawień marki", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Certyfikat Termix jest obsługiwany przez HTTPS. Prześlij swój certyfikat tutaj lub pobierz i odnów certyfikat w Let's Encrypt w sekcji Certyfikaty ACME.", "sslDocsLink": "Zobacz dokumentację SSL", "sslCertStatus": "Status certyfikatu", "sslCertStatusNone": "Brak certyfikatu", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Pozwól nowym użytkownikom na samodzielną rejestrację przy użyciu nazwy użytkownika i hasła", "allowPasswordLogin": "Zezwalaj na logowanie hasłem", "allowPasswordLoginDesc": "Logowanie nazwą użytkownika i hasłem", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Automatyczne tworzenie kont zewnętrznych", + "oidcAutoProvisionDesc": "Utwórz konto za pierwszym razem, gdy ktoś zaloguje się za pomocą logowania zewnętrznego, takiego jak SSO lub LDAP, nawet jeśli rejestracja jest wyłączona", + "secondFactorAfterExternalLogin": "Poproś o drugi czynnik po logowaniu zewnętrznym (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Wyłączona, drugi czynnik uwierzytelniania jest wymagany tylko po podaniu hasła i innych lokalnych logowaniach, tak jak poprzednio. Włączona, jest wymagany po każdej metodzie logowania, w tym SSO i LDAP.", "allowPasswordReset": "Zezwól na resetowanie hasła", "allowPasswordResetDesc": "Kod resetowania przez logi Dockera", "auditForwardingTitle": "Przekaż do SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Nie udało się zapisać ustawień przekazywania audytu", "sessionTimeout": "Limit czasu sesji", "hours": "godziny", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Min. 1 godz., maks. 720 godz.", "monitoringDefaults": "Domyślne ustawienia monitorowania", "statusCheck": "Sprawdzanie statusu", "sec": "sek", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Status administratora", "editUserUserId": "Identyfikator użytkownika", "linkAccountTitle": "Połącz konta", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Połącz konto zewnętrzne {{username}} z istniejącym kontem lokalnym.", + "linkAccountDescLocal": "Połącz konto lokalne {{username}} z istniejącym kontem zewnętrznym.", "linkAccountWarningTitle": "To spowoduje:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Usuń konto przeznaczone wyłącznie do użytku zewnętrznego", + "linkAccountEffect2": "Dodaj zewnętrzne logowanie do konta docelowego", + "linkAccountEffect3": "Zezwalaj na logowanie zewnętrzne i za pomocą hasła", "linkAccountTargetUsername": "Nazwa użytkownika konta lokalnego", "linkAccountTargetPlaceholder": "Wprowadź nazwę użytkownika konta lokalnego, z którym chcesz je połączyć", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Nazwa użytkownika konta zewnętrznego", + "linkAccountOidcPlaceholder": "Wprowadź nazwę użytkownika konta przeznaczonego wyłącznie do użytku zewnętrznego, aby je scalić", + "linkAccountOidcNotFound": "Nie znaleziono konta przeznaczonego wyłącznie do użytku zewnętrznego o tej nazwie użytkownika", "linkAccounts": "Połącz konta", "linkAccountSuccess": "Konta zostały pomyślnie połączone", "linkAccountFailed": "Nie udało się połączyć kont", "linkAccountInProgress": "Łączenie...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Odłącz zewnętrzne logowanie", + "unlinkAccountDesc": "Usuń możliwość logowania zewnętrznego z {{username}}. Użytkownicy będą mogli się logować tylko przy użyciu swojego hasła.", + "unlinkAccountWarning": "Spowoduje to usunięcie logowania zewnętrznego z tego konta. Użytkownik musi mieć ustawione hasło, aby móc się logować.", + "unlinkAccount": "Odłącz zewnętrzne logowanie", "unlinkAccountInProgress": "Odłączanie...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Zewnętrzne logowanie odłączone", + "unlinkAccountFailed": "Nie udało się odłączyć zewnętrznego logowania", "saving": "Zapisywanie...", "updateRegistrationFailed": "Nie udało się zaktualizować ustawień rejestracji", "updatePasswordLoginFailed": "Nie udało się zaktualizować ustawień logowania hasłem", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Nie udało się zaktualizować ustawienia automatycznego tworzenia", + "updateSecondFactorAfterExternalLoginFailed": "Nie udało się zaktualizować ustawień drugiego czynnika uwierzytelniania", "updatePasswordResetFailed": "Nie udało się zaktualizować ustawienia resetowania hasła", "sessionTimeoutRange2": "Limit czasu sesji musi mieścić się w przedziale od 1 do 720 godzin", "sessionTimeoutSaved": "Zapisano limit czasu sesji", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Brak aktywnych sesji", "deleteSuccessorLabel": "Przekaż gospodarzom i dane uwierzytelniające", "deleteSuccessorMe": "Ja (administrator usuwający)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Nikt, usuń je", "deleteSuccessorDesc": "Wszystko, co udostępnił ten użytkownik, będzie nadal działać pod nowym właścicielem; wybranie opcji „nikt” spowoduje usunięcie jego hostów, danych uwierzytelniających i udziałów.", "deleteUserDangerDesc": "Trwale usuń {{username}} i wszystkie jego dane (hosty, poświadczenia, snippety, historię). Tej operacji nie można cofnąć.", "deleteUserConfirm": "Czy trwale usunąć {{username}} i wszystkie jego dane?", @@ -1477,31 +1477,31 @@ "saveError": "Nie udało się zapisać uprawnień roli", "save": "Zapisz", "saving": "Zapisywanie...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Funkcja wyłączona", "groups": { "hosts": "Hosty", "credentials": "Poświadczenia", - "admin": "Administration" + "admin": "Administracja" } }, "notificationPrivateEndpoints": "Dozwolone hosty powiadomień prywatnych", "notificationPrivateEndpointsDesc": "Dokładne nazwy prywatnych hostów, z którymi mogą kontaktować się kanały powiadomień. Oddziel je przecinkami.", "updateNotificationEndpointsFailed": "Nie udało się zaktualizować listy dozwolonych punktów końcowych powiadomień", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", + "secondFactorsSectionTitle": "Drugie czynniki", + "secondFactorsNone": "Nie zarejestrowano żadnych czynników drugorzędnych", "secondFactorUnavailable": "Niedostępny", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "resetSecondFactors": "Zresetuj drugie czynniki", + "resetSecondFactorsConfirm": "Usuń co drugi czynnik dla {{username}}? Mogą zalogować się za pomocą hasła lub SSO i zarejestrować się ponownie.", + "secondFactorsResetSuccess": "Drugie czynniki resetują", + "secondFactorsResetFailed": "Nie udało się zresetować drugiego czynnika", + "passwordLoginForced": "Logowanie hasłem jest wyłączone, ale żadna inna metoda logowania nie jest włączona, więc na razie pozostaje włączone. Nikt nie zostanie zablokowany.", + "sslNotRenewed": "Nic nie odnawia tego certyfikatu. Wygasa on {{date}}. Włącz automatyczne odnawianie w sekcji Certyfikaty ACME lub prześlij nowy certyfikat przed upływem tego terminu.", + "sslSelfSigned": "Certyfikat podpisany przez firmę Termix. Przeglądarki będą o tym ostrzegać.", + "sslRenewedBy": "Odnowione automatycznie przez {{plugin}}", + "sslIssuer": "Wydane przez {{issuer}}", + "sslNames": "Obejmuje {{names}}", + "sslManualTitle": "Prześlij certyfikat", + "updateExternalAutoProvisionFailed": "Nie udało się zaktualizować ustawienia automatycznego tworzenia" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protokół", "domainLabel": "Domena", "domainPlaceholder": "fakultatywny", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Połącz się z {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Nic zainstalowanego nie może połączyć się z tym typem hosta" }, "keybindings": { "title": "Skróty klawiaturowe", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Przypisz klawisze do akcji w terminalu i aplikacji lub zmień wbudowane skróty.", "defaultsHeading": "Wbudowane skróty", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Skróty aplikacji", "fixed": { "splitRight": "Podziel w prawo", "splitDown": "Podziel w dół", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "Powiększ wybrany panel", + "navigatePane": "Przechodzenie między panelami", "nextTab": "Następna karta", "previousTab": "Poprzednia karta", "jumpTab": "Przejdź do karty", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "previousView": "Powrót do poprzedniego widoku paska bocznego", + "fullscreen": "Przełącz na pełny ekran" }, "customHeading": "Niestandardowe skróty", "addBinding": "Dodaj skrót", @@ -1566,9 +1566,9 @@ "actionNextTab": "Przejdź do następnej karty", "actionPreviousTab": "Przejdź do poprzedniej karty", "actionOpenCommandPalette": "Otwórz szybkie wyszukiwanie", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Połącz ponownie bieżącą sesję", + "unavailableAction": "{{type}} (niedostępne)", + "actionRequiredError": "Najpierw wybierz akcję" }, "userProfile": { "donateTitle": "Utrzymajmy Termix przy życiu", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Ustawienia zostały przywrócone do domyślnych.", "storageModeSwitch": "Przechowywanie preferencji", "sectionAccount": "Konto", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Tylko to urządzenie", + "desktopProfileDescription": "Ten profil jest zainstalowany na tym urządzeniu i loguje się samodzielnie. Połącz go z serwerem Termix, aby używać tych samych hostów i ustawień na każdym urządzeniu.", "sectionInterface": "Interfejs", "interfacePresetDesc": "Ile szczegółów pokazuje Termix. Każda funkcja pozostaje dostępna.", "preset_simple": "Prosty", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Przywracaj otwarte karty po zalogowaniu się lub odświeżeniu strony, nawet z innego urządzenia", "confirmTabClose": "Potwierdzaj zamykanie kart", "confirmTabCloseDesc": "Zapytaj przed zamknięciem kart terminala", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Pokaż numery kart", + "showTabNumbersDesc": "Wyświetl numer na każdej karcie, aby ułatwić ich rozróżnienie", "settingsAppRail": "Pasek aplikacji", "sidebarSettingsMoved": "Ustawienia wyświetlania paska bocznego hosta zostały przeniesione do panelu Dostosuj pasek boczny, otwieranego z paska narzędzi Hosty.", "showHostTags": "Pokaż tagi hosta", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Zalogowano do {{server}}", + "linkedProfileDescription": "To urządzenie korzysta z Twojego konta na serwerze i przechowuje kopię Twoich danych, dzięki czemu działa również w trybie offline.", + "manageSync": "Zarządzaj synchronizacją", + "setUpSync": "Link do serwera", + "settingsTabsAndShortcuts": "Karty i skróty" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Zobacz swoje hasła i klucze", + "consequence": "Może odczytać przechowywany tajny klucz dla dowolnego hosta, do którego masz dostęp." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Uruchamiaj polecenia na swoich serwerach", + "consequence": "Każde polecenie na hostach, do których się podłączasz, z Twoim dostępem." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Uruchom programy na tym komputerze", + "consequence": "Programy działają na serwerze Termix, a nie na Twoich hostach." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Tworzenie i zmiana kont użytkowników", + "consequence": "Można dodawać użytkowników i zmieniać ich role." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Obsługa logowania", + "consequence": "Można dodać metodę logowania, drugi składnik uwierzytelniania lub typ logowania SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Zarządzaj certyfikatami", + "consequence": "Może zastąpić certyfikat wydawany przez Termix przez HTTPS i odpowiadać na sprawdzanie domeny przez urzędy certyfikacji." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Dostęp do urządzeń szeregowych i USB", + "consequence": "Może otworzyć fizyczny port szeregowy na komputerze, na którym działa Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Tworzenie i zmiana hostów", + "consequence": "Można dodawać hosty i edytować te, które już masz." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Połącz się ze swoimi serwerami", + "consequence": "Nie widzi Twoich haseł ani kluczy." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Zapisz nowe dane uwierzytelniające", + "consequence": "Można dodać hasła i klucze do zapisanych danych uwierzytelniających." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Dotrzyj do Internetu", + "consequence": "Może wysyłać żądania do usług zewnętrznych." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Akceptuj połączenia", + "consequence": "Otwiera port na serwerze Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Wysyłaj transmisje sieciowe", + "consequence": "Może wysyłać pakiety do urządzeń w sieci lokalnej, na przykład sygnał Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Zobacz nazwy użytkowników i role", + "consequence": "Nigdy nie używaj skrótów haseł ani dwuskładnikowego uwierzytelniania." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Obejrzyj wszystko, co się dzieje", + "consequence": "Uwzględniając aktywność innych użytkowników, a nie tylko Twoją." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Wysyłaj alerty", + "consequence": "Tobie lub innym użytkownikom, poprzez kanały, które ustanowią." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Otrzymuj wszystkie alerty", + "consequence": "Przechowuje i dostarcza alerty wysyłane przez wszystkie wtyczki, łącznie z ich zawartością." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Przeczytaj dziennik audytu", + "consequence": "Można zobaczyć, kto, co i kiedy zrobił." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Otwórz okna pulpitu", + "consequence": "Tylko w aplikacji komputerowej Termix." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Działaj jako inni użytkownicy", + "consequence": "Uruchamia pracę w tle z dostępem innego użytkownika, np. zaplanowane zadania. Każde użycie jest zapisywane w dzienniku audytu." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Przeczytaj podstawowe tabele kont", + "consequence": "Można wyszukiwać użytkowników, role i hosty bezpośrednio w bazie danych." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Zobacz listę swoich hostów", + "consequence": "Nazwy i adresy gospodarzy możesz już zobaczyć." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Przechowuj własne dane", + "consequence": "Przechowywane we własnych tabelach, oddzielone od innych wtyczek." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Zapamiętaj małe ustawienia", + "consequence": "Przechowywane oddzielnie od innych wtyczek." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Przechowuj własne pliki", + "consequence": "W osobnym folderze na dysku, oddzielnie od innych wtyczek." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Przechowuj własne sekrety", + "consequence": "Szyfrowane przez Termix. Wtyczka nigdy nie przechowuje klucza." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Odczytaj ustawienia Termix", + "consequence": "Ustawienia serwera, a nie hosty i dane uwierzytelniające." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Zobacz zainstalowane funkcje", + "consequence": "Można w nim zobaczyć, które funkcje są zainstalowane i uruchomione." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Dodaj własne ekrany", + "consequence": "Karty, panele i ustawienia możesz później ukryć." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} jest niedostępny", + "needsUnknownPlugin": "Ta funkcja jest niedostępna", + "disabledHint": "Jest wyłączona na tym serwerze.", + "missingHint": "Funkcja, z której pochodziła, została usunięta.", + "failed": "{{name}} nie można uruchomić", + "failedHint": "Administrator może sprawdzić logi serwera, aby uzyskać więcej szczegółów.", + "loading": "Ładowanie {{name}}", + "crashed": "Coś poszło nie tak w {{name}}", + "retry": "Spróbuj ponownie" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Ustawić", + "secretNotSet": "Nie ustawiono", "secretReplace": "Zamień", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Ustawienia zapisane", + "pluginSettingsInvalid": "Niektórych ustawień nie udało się zapisać. Sprawdź podświetlone pola.", + "pluginSettingsSaveFailed": "Nie udało się zapisać ustawień", + "pluginSettingsLoadFailed": "Nie udało się załadować ustawień", + "featureUnavailable": "{{name}} jest obecnie niedostępny. Ustawienia te są zapisane, ale nie zostaną zastosowane." }, "managerCard": { "refresh": "Odśwież", @@ -1913,169 +1913,169 @@ "filter": "Filtr..." }, "sync": { - "server": "Termix server", + "server": "Serwer Termix", "account": "Konto", "status": "Status", "never": "nigdy", "justNow": "przed chwilą", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} minut temu", + "minutesAgo_other": "{{count}} minut temu", + "hoursAgo_one": "{{count}} godzinę temu", + "hoursAgo_other": "{{count}} godzin temu", + "actionFailed": "Nie zadziałało. Spróbuj ponownie.", + "unlinkedTitle": "Tylko to urządzenie", + "unlinkedBody": "Termix działa samodzielnie na tym urządzeniu. Połącz je ze swoim serwerem Termix, aby wszystko działało płynnie.", + "unlinkedPointHosts": "Twoje dane hosta, dane uwierzytelniające, fragmenty kodu i ustawienia są z Tobą na każdym urządzeniu.", + "unlinkedPointOffline": "Wszystko działa nawet wtedy, gdy nie można nawiązać połączenia z serwerem, a naprawianie problemów następuje później.", + "unlinkedPointAccount": "Logujesz się na swoje konto serwera, a gospodarze, którymi podzielili się z Tobą ludzie, także są tutaj wyświetlani.", + "linkButton": "Link do serwera", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Synchronizacja", + "offline": "Serwer niedostępny", + "error": "Synchronizacja zatrzymana", + "signedOut": "Wylogowano", + "synced": "Zsynchronizowano {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} zmiana oczekuje na synchronizację", + "pending_other": "{{count}} zmian czekających na synchronizację", + "signInAgain": "Zaloguj się ponownie", + "syncNow": "Synchronizuj teraz", + "unlink": "Odczepić", + "unlinked": "To urządzenie nie jest już połączone", + "unlinkTitle": "Odłączyć to urządzenie?", + "unlinkDescription": "Synchronizacja zostaje zatrzymana i następuje wylogowanie z serwera. Hosty udostępnione Ci przez innych użytkowników zostaną w każdym przypadku usunięte z tego urządzenia.", + "unlinkKeepTitle": "Zachowaj moje dane tutaj", + "unlinkKeepBody": "Twoje dane hosta, poświadczenia i ustawienia pozostają na tym urządzeniu i działają niezależnie.", + "unlinkRemoveTitle": "Usuń zsynchronizowane dane", + "unlinkRemoveBody": "Wszystko, co pochodzi z serwera, jest usuwane z tego urządzenia. Hosty przechowywane na tym urządzeniu pozostają.", + "conflictsTitle": "Konflikty", + "conflictsDescription": "Zostały one zmienione tutaj i na serwerze w tym samym czasie. Wersja serwerowa jest w użyciu. Zachowaj swoją, aby wysłać ją na serwer.", + "keepMine": "Zachowaj moje", + "keepServer": "Zachowaj serwer", + "errorsTitle": "Niezsynchronizowane", + "errorsDescription": "Serwer nie zaakceptował tych zmian. Pozostają one na tym urządzeniu.", + "errorPermission": "Twoje konto na serwerze nie ma uprawnień do wprowadzenia tej zmiany.", + "retry": "Spróbuj ponownie", + "whatSyncs": "Co synchronizuje", + "whatSyncsDescription": "Wyłącz wszystko, co chcesz zachować tylko na tym urządzeniu.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Serwer tego nie posiada", + "notOnDevice": "Jeszcze nie na tym urządzeniu", + "localOnlyHint": "Możesz również zachować pojedyncze hosty lub foldery na tym urządzeniu, korzystając z ich ustawień.", + "originTitle": "Gdzie zaczynają się połączenia", + "originDescription": "Łącz się z hostami z tego urządzenia lub przez serwer. Możesz to zmienić dla każdego hosta.", + "originLocal": "To urządzenie", + "originRemote": "Serwer", "entities": { "hosts": "Hosty", "sshCredentials": "Poświadczenia", "sshFolders": "Foldery", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Preferencje", + "pluginUserSettings": "Ustawienia funkcji", + "sharedHosts": "Gospodarze udostępnili Ci", + "sharedCredentials": "Dane uwierzytelniające udostępnione Tobie", + "vaultProfiles": "Profile skarbca", + "snippetFolders": "Foldery fragmentów kodu", "snippets": "Snippety", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", + "dashboardServiceLinks": "Linki serwisowe", + "homepageItems": "Elementy strony głównej", + "networkTopology": "Mapa sieci", "workspaces": "Obszary robocze" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", + "title": "Odwrotny serwer proxy", + "description": "Potrzebne tylko wtedy, gdy na Twoim serwerze znajduje się Cloudflare Access lub strona logowania.", + "headersTitle": "Dodatkowe nagłówki", + "headersHint": "Wysyłane z każdym żądaniem do serwera, na przykład token usługi Cloudflare Access.", + "headerName": "Nazwa nagłówka", "headerValue": "Wartość", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "savedValue": "Zapisano, wpisz, aby zmienić", + "addHeader": "Dodaj nagłówek", + "removeHeader": "Usuń nagłówek", + "basicAuthTitle": "Nazwa użytkownika i hasło", + "basicAuthHint": "Serwer proxy, który prosi o nazwę użytkownika i hasło przed Termix.", "username": "Nazwa użytkownika", "password": "Hasło", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Zaufaj certyfikatowi podpisanemu własnoręcznie", + "allowInvalidCertificateHint": "Tylko dla własnego serwera, gdy jego certyfikat nie pochodzi od znanego organu.", "saved": "Zapisano" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "To nie wygląda na adres internetowy.", + "unreachable": "Nie można nawiązać połączenia z serwerem. Sprawdź adres i upewnij się, że serwer działa.", + "unreachableWithReason": "Nie można nawiązać połączenia z serwerem: {{reason}}", + "tlsUntrusted": "Certyfikat serwera nie jest zaufany. Jeśli to Twój własny serwer z certyfikatem podpisanym przez siebie, włącz poniższą opcję.", + "basicAuthRequired": "Coś przed serwerem prosi o nazwę użytkownika i hasło. Wprowadź je poniżej.", + "proxyLogin": "Zamiast Termix odpowiedziała strona logowania lub serwer proxy. Dodaj potrzebne nagłówki poniżej lub sprawdź adres.", + "notTermix": "Pod tym adresem nie ma serwera Termix. Jeśli działa on pod ścieżką, uwzględnij ją, np. https://example.com/termix.", + "versionMismatch": "Na tym serwerze działa starszy Termix. Zaktualizuj go do wersji 2.9 lub nowszej, aby móc go połączyć.", + "differentAccount": "Zalogowałeś się na inne konto. Zaloguj się na konto, z którym powiązane jest to urządzenie, lub najpierw je odłącz." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", + "title": "Link do serwera Termix", + "reloginTitle": "Zaloguj się ponownie", + "savedServers": "Ostatnie serwery", + "removeServer": "Usuń z listy", + "serverDescription": "Wpisz adres, którego używasz do otwierania Termix w swojej przeglądarce.", "signinDescription": "Zaloguj się do {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", + "chooseDescription": "To urządzenie ma już dane. Co powinno się z nimi stać?", + "finishingDescription": "Łączenie tego urządzenia.", "serverUrl": "Adres serwera", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "serverUrlHint": "Na przykład https://termix.example.com", + "showProxySettings": "Ustawienia odwrotnego serwera proxy", + "hideProxySettings": "Ukryj ustawienia odwrotnego serwera proxy", "continue": "Kontynuuj", "back": "Wstecz", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", + "mergeTitle": "Dodaj to do mojego konta", + "mergeBody": "{{count}} elementów na tym urządzeniu zostanie dodanych do Twojego konta. Elementy, które już znajdują się na Twoim koncie, pozostaną takie same na serwerze.", + "replaceTitle": "Zastąp to moim kontem", + "replaceBody": "Elementy {{count}} na tym urządzeniu zostaną usunięte, a urządzenie przejmie całą zawartość Twojego konta. Zostaną tylko hosty przechowywane na tym urządzeniu.", "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "linking": "Łączenie i uruchamianie pierwszej synchronizacji...", + "linked": "Połączono. Twoje dane są teraz synchronizowane.", + "signedInAgain": "Zalogowano. Synchronizacja działa ponownie." } }, "hostDefaults": { "source": { "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "user": "Moje ustawienia domyślne", + "admin": "Serwer", + "builtin": "Wbudowany" }, "custom": "Niestandardowy", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "Ustaw tutaj", + "notSet": "Nie ustawiono", + "notSetTitle": "Dla tego nie ustawiono wartości domyślnej", + "resetTitle": "Ten host ustawia własną wartość. Kliknij, aby ponownie użyć wartości domyślnej z {{source}}", + "clearTitle": "Ustaw na tym poziomie. Kliknij, aby wyczyścić i zamiast tego użyj {{source}}", + "inheritedTitle": "Następuje po domyślnym ustawieniu {{source}}", + "titleAdmin": "Domyślne ustawienia hosta serwera", + "titleUser": "Moje domyślne ustawienia hosta", + "titleFolder": "Domyślne ustawienia folderu: {{name}}", + "descriptionAdmin": "Ustawienia domyślne dla każdego hosta na tym serwerze. Ustawienia domyślne użytkownika, folderu lub samego hosta nadal mogą ustawić inną wartość. Zmień pole, aby ustawić je tutaj, lub wyczyść je, aby pozostawić je nieustawione.", + "descriptionUser": "Domyślne wartości dla wszystkich hostów, niezależnie od serwera. Folder lub sam host nadal mogą ustawić inną wartość. Zmień pole, aby ustawić ją tutaj, lub wyczyść je, aby pozostawić nieustawione.", + "descriptionFolder": "Domyślne wartości dla hostów w tym folderze i jego podfolderach, nad Twoimi własnymi. Host nadal może ustawić inną wartość. Zmień pole, aby ustawić je tutaj, lub wyczyść je, aby pozostawić nieustawione.", + "save": "Zapisz ustawienia domyślne", + "saved_one": "Ustawienia domyślne zostały zapisane. Host {{count}} został zaktualizowany.", + "saved_other": "Ustawienia domyślne zostały zapisane. Zaktualizowano {{count}} hostów.", + "savedInBackground": "Ustawienia domyślne zostały zapisane. Hosty są aktualizowane w tle.", + "appliedToHosts_one": "Host {{count}} został zaktualizowany przy użyciu nowych ustawień domyślnych.", + "appliedToHosts_other": "{{count}} hostów zostało zaktualizowanych przy użyciu nowych ustawień domyślnych.", + "saveFailed": "Nie udało się zapisać ustawień domyślnych", + "loadFailed": "Nie można załadować ustawień domyślnych", + "confirmTitle": "Zapisać ustawienia domyślne?", + "confirmChanges_one": "{{count}} host stosuje się do tych ustawień domyślnych i będzie je zmieniać.", + "confirmChanges_other": "Hosty {{count}} stosują się do tych ustawień domyślnych i ulegną zmianie.", + "confirmNoChanges": "Brak zmian w istniejących hostach. Nowi hosty będą korzystać z tych ustawień domyślnych.", + "menuMyDefaults": "Moje domyślne ustawienia hosta", + "folderDefaultsAction": "Domyślne ustawienia folderu", + "adminSectionDescription": "Ustaw wartości domyślne, których przestrzega każdy host na tym serwerze, dla każdego ustawienia hosta, w tym dla każdej funkcji. Użytkownicy i foldery mogą ustawić własne wartości, a każdy host nadal może używać własnych.", + "editServerDefaults": "Edytuj domyślne ustawienia serwera", "resetMenu": "Resetuj", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Wszystko z domyślnymi ustawieniami", + "resetCore": "Połączenie i SSH ustawione domyślnie", + "resetDone_one": "{{count}} host teraz stosuje się do ustawień domyślnych.", + "resetDone_other": "{{count}} hosty teraz stosują się do ustawień domyślnych." } } diff --git a/src/ui/locales/translated/pt_BR.json b/src/ui/locales/translated/pt_BR.json index efdc25027..37b30322d 100644 --- a/src/ui/locales/translated/pt_BR.json +++ b/src/ui/locales/translated/pt_BR.json @@ -55,8 +55,8 @@ "levelManage": "Gerenciar", "levelUseDesc": "Utilização: associe as credenciais aos hosts e conecte-se. O segredo em si permanece oculto.", "levelManageDesc": "Gerenciar: edite também as credenciais e compartilhe-as com outras pessoas.", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "Esta credencial ainda não foi compartilhada.", + "accessRevoked": "Acesso revogado", "shared": "Credencial compartilhada" }, "deleteCredentialAction": "Excluir credencial", @@ -113,14 +113,14 @@ "arrangeUnlocked": "Desbloqueie e arraste para reorganizar." }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Atualização disponível. Consulte as notas de lançamento no GitHub." }, "common": { "close": "Fechar", "minimize": "Minimizar", "online": "On-line", "offline": "Offline", - "signInFailed": "Sign in failed", + "signInFailed": "Falha no login", "unknown": "Desconhecido", "continue": "Continuar", "maintenance": "Manutenção", @@ -131,9 +131,9 @@ "dismiss": "Liberar", "more": "Mais", "loading": "Carregando...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Hospedar", + "selectHost": "Selecione um host...", + "noHostConfigured": "Nenhum host configurado", "optional": "Opcional", "connect": "Conectar", "copied": "Copiado", @@ -187,7 +187,7 @@ "remove": "Remover", "add": "Adicionar", "update": "Atualizar", - "noResults": "No results found" + "noResults": "Nenhum resultado encontrado" }, "onboarding": { "stepCounter": "Etapa {{current}} de {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Paleta de comandos", "workflow_palette_desc": "Acesse qualquer servidor ou ação digitando. Pressione Shift duas vezes para abrir.", "workflow_split": "Tela dividida", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Exiba várias abas lado a lado, por exemplo, para visualizar registros enquanto trabalha.", "workflow_dock": "Painel lateral", "workflow_dock_desc": "Clique com o botão do meio do mouse ou com o botão direito do mouse em um ícone da barra lateral para abri-lo como uma guia ou fixá-lo à direita.", "securityTitle": "Protegendo seus logins", @@ -248,13 +248,13 @@ "done_cli": "Ferramenta de linha de comando", "done_cli_desc": "Gerencie seus servidores a partir de um terminal e use o Termix em seus próprios scripts.", "done_cli_link": "Abra a documentação da CLI.", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Como você deseja usar o Termix?", + "desktopBody": "Você pode alterar isso a qualquer momento em Sincronizar, na barra lateral.", + "desktopLocalTitle": "Somente neste dispositivo", + "desktopLocalBody": "Tudo está armazenado aqui. Não precisa configurar nada.", + "desktopLinkTitle": "Com meu servidor Termix", + "desktopLinkBody": "Faça login no seu servidor para usar os mesmos hosts e configurações em todos os dispositivos.", + "desktopLinked": "Ligado a {{server}}" }, "nav": { "home": "Lar", @@ -295,21 +295,21 @@ "collapseSideMenu": "Recolher menu", "roleAdministrator": "Administrador", "roleUser": "Usuário", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Sincronizar", + "reconnectDisconnectedTerminals": "Reconecte todos os terminais desconectados.", + "reconnectingTerminals_one": "Reconectando o terminal {{count}}", + "reconnectingTerminals_other": "Reconectando os terminais {{count}}", + "noDisconnectedTerminals": "Nenhum terminal desconectado está pronto para ser reconectado.", + "reconnectTerminalsFailed_one": "Não foi possível iniciar a reconexão do terminal {{count}}", + "reconnectTerminalsFailed_other": "Não foi possível iniciar a reconexão dos terminais {{count}}", + "fullscreenUnsupported": "O modo tela cheia não é suportado neste navegador.", + "fullscreenFailed": "Não foi possível alternar para o modo tela cheia.", + "resetSidebarWidth": "Redefinir largura", + "collapseSidebar": "Recolher barra lateral", + "openSidebar": "Abrir barra lateral", + "confirmCloseHost": "Fechar {{host}}?", + "enterFullscreen": "Para entrar no modo tela cheia (Ctrl+Shift+F)", + "exitFullscreen": "Sair do modo tela cheia (Ctrl+Shift+F)" }, "hosts": { "hosts": "Anfitriões", @@ -353,7 +353,7 @@ "serverStats": "Métricas do host", "status": { "available": "Disponível", - "reachable": "Up, but the last sign in failed", + "reachable": "Subiu, mas o último sinal falhou.", "offline": "Offline", "monitoringDisabled": "Monitoramento desativado", "label": "Status" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Forçar interação por teclado", "overrideCredentialUsername": "Substituir nome de usuário da credencial", "overrideCredentialUsernameDesc": "Use o nome de usuário especificado acima em vez do nome de usuário da credencial.", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Use $external.username para preencher o nome com o qual você fez login por meio de SSO ou LDAP.", "jumpHostChain": "Cadeia de anfitriões de salto", "portKnocking": "Batendo ao porto", "addKnock": "Adicionar porta", @@ -626,14 +626,14 @@ "actionsClick": "Clique para expandir/recolher", "openOnDoubleClick": "Abrir com um clique duplo", "openOnDoubleClickDesc": "Exigir um clique duplo para abrir uma sessão de host em vez de um único clique.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Mostrar caminhos de pastas", + "showFolderPathsDesc": "Exiba o caminho da pasta principal acima dos nomes das subpastas aninhadas. As subpastas permanecem indentadas em qualquer direção.", + "hostClickBehavior": "Clicar em um host", + "hostClickBehaviorDesc": "O que acontece quando você clica em um host que já possui uma aba aberta? Clicar com Ctrl/Cmd, clicar com o botão do meio ou usar a opção \"Abrir em nova aba\" sempre inicia uma nova aba.", + "hostClickNewTab": "Sempre abra uma nova aba.", + "hostClickFocusExisting": "Mude para a aba aberta.", + "hostClickFocusExistingDoubleNew": "Clique para alternar, clique duas vezes para abrir uma nova aba.", + "openInNewTab": "Abrir em nova aba", "deletedHost": "Excluído {{name}}", "copiedToClipboard": "Copiado para a área de transferência", "remoteDesktopUrlCopied": "URL da Área de Trabalho Remota copiada", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Cada ponto final precisa de um nome diferente.", "webUiErrorPortRange": "O ponto final {{row}} precisa de uma porta entre 1 e 65535.", "webUiErrorPathInvalid": "O endpoint {{row}} possui um caminho inválido. Use um caminho como /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Copiar link {{name}}", + "filterAuthAgent": "Agente SSH", + "authTypeNeedsPlugin": "Este host usa {{type}}, que precisa de {{plugin}}. Está desativado neste servidor.", + "authTypeUnknown": "Este host usa {{type}}, que não está disponível neste servidor.", + "authFieldsAfterSave": "Primeiro, salve o host e, em seguida, preencha estes campos.", + "enablePluginFeature": "Ativar {{name}}", + "disablePluginFeature": "Desativar {{name}}", "filterFeaturesGroup": "Características", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Mantenha somente neste dispositivo", + "localOnlyDesc": "Este host não é enviado para o servidor e não aparece em seus outros dispositivos.", + "folderLocalOnly": "Mantenha somente neste dispositivo", + "folderLocalOnlyDesc": "Esta pasta e todos os hosts nela contidos permanecem neste dispositivo e não são enviados para o servidor.", + "sudoPasswordDesc": "Utilizado quando o terminal preenche um prompt do sudo e por funcionalidades que executam comandos com sudo.", "editorCancel": "Cancelar", "editorSaving": "Salvando...", - "editorUpdate": "Update Host", + "editorUpdate": "Atualizar Host", "editorAdd": "Adicionar host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Pesquisar hosts. Use as setas para selecionar, Enter para conectar e Esc para fechar.", + "speedSearchList": "Lista de anfitriões. Digite ou pressione / para pesquisar.", + "importNoHosts": "Nenhum host encontrado no arquivo", + "importTooMany": "Você pode importar até {{max}} hosts simultaneamente.", + "importSummary": "Importação concluída: {{imported}} importado, {{updated}} atualizado, {{failed}} falhou", + "importHostsFailed": "Falha ao importar hosts" }, "commandPalette": { "searchPlaceholder": "Pesquisar hosts, comandos ou configurações...", @@ -897,58 +897,58 @@ "navigate": "Navegar", "select": "Selecione", "toggleWith": "Alternar com", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Mais ações", + "noTargetTab": "Nenhuma aba de terminal está aberta." }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "title": "Tela dividida", + "defaultLabel": "Dividir {{number}}", + "splitRight": "Dividir à direita", + "splitDown": "Dividir em partes", + "addToSplit": "Adicionar a {{split}}", + "paneEmptyItem": "Painel {{index}}: vazio", + "paneItem": "Painel {{index}}: {{label}}", + "paneNumber": "Painel {{index}}", + "newPaneRight": "Novo painel à direita", + "newPaneBelow": "Novo painel abaixo", + "emptyTitle": "Painel vazio", + "emptyHint": "Selecione algo para exibir aqui. Enquanto este painel estiver selecionado, tudo o que você abrir na barra lateral também será aberto aqui.", + "openTabs": "Abas abertas", + "noOpenTabs": "Nenhuma outra aba está aberta.", "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", + "searchHosts": "Pesquisar anfitriões", + "noHosts": "Nenhum host corresponde", + "newSession": "Novo", + "closePane": "Fechar painel", + "closeSession": "Sessão encerrada", + "moveToTab": "Mova para sua própria aba.", + "swapWith": "Trocar com", + "showHere": "Mostrar neste painel", + "clearPane": "Esvazie este painel", + "zoom": "Painel de zoom", + "unzoom": "Restaurar layout", + "unsplit": "Sem divisão", "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "applyLayout": "Alterar layout", + "newSplit": "Nova divisão", + "maxPanes": "Uma divisão pode conter até {{count}} painéis", + "dropSplit": "Solte para dividir", + "dropHere": "Arraste para mostrar aqui", + "paneActions": "Ações do painel", + "dividerHint": "Arraste para redimensionar. Clique duas vezes para ajustar.", + "openInSplit": "Abrir em divisão", + "openInNewSplit": "Nova divisão com a aba atual", + "shortcuts": "Atalhos", + "shortcutNavigate": "Mover entre painéis", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Dois lado a lado", + "rows2": "Dois empilhados", + "columns3": "Três lado a lado", + "mainLeft3": "Um à esquerda, dois à direita.", + "mainBottom3": "Dois em cima, um embaixo", + "grid4": "Grade de quatro", + "grid5": "Três sobre dois", + "grid6": "Grade de seis" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Autenticação necessária", "mfaPushRequired": "Autenticação Push necessária", "mfaMenuPlaceholder": "Insira sua resposta", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Código ou \"push\"", "mfaWaitingApproval": "Aguardando aprovação no seu dispositivo...", "mfaSendRequest": "Enviar solicitação", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Chave de segurança", + "browserSignInUrl": "URL de login", + "browserSignInOpen": "Abrir no navegador", + "browserSignInContinue": "Concluí o login.", + "browserSignInRequired": "{{provider}} É necessário fazer login", "connectionLogTitle": "Registro de conexão", "connectionLogCopy": "Copiar registros para a área de transferência", "connectionLogEmpty": "Ainda não há registros de conexão.", @@ -1032,7 +1032,7 @@ "external": "Externo", "loginWithExternal": "Login com provedor externo", "loginWithExternalDesc": "Faça login usando o provedor de identidade externo configurado.", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "O login externo ainda não é compatível com o aplicativo para desktop. Por favor, utilize a versão web.", "loginWithProvider": "Faça login com {{name}}", "orContinueWith": "ou continue com", "resetPasswordButton": "Redefinir senha", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "{{count}} tentativas restantes", "confirmResetDataWipe": "Esta conta não foi acessada desde a atualização da criptografia, portanto, seus dados armazenados não podem ser recuperados sem a senha antiga. A redefinição excluirá permanentemente seus hosts, credenciais e trechos de código. Continuar?", "password": "Senha", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Sua conta utiliza um segundo fator de autenticação que não está disponível no momento. Entre em contato com um administrador para redefini-lo.", + "secondFactorNoUI": "Este segundo fator não pode ser exibido nesta tela. Entre em contato com um administrador.", + "serverAuthentication": "Login no servidor", + "minChars": "mín. {{min}} caracteres" }, "hostKey": { "verifyNewHost": "Verificar chave de host SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Falha ao verificar o código de reinicialização", "failedCompleteReset": "Falha ao concluir a redefinição de senha.", "invalidTotpCode": "Código TOTP inválido", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Falha ao iniciar o login externo.", + "silentSigninOidcUnavailable": "Foi solicitado o login silencioso, mas nenhum login externo está configurado.", "failedUserInfo": "Falha ao obter informações do usuário após o login", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Falha no login externo", "invalidAuthUrl": "URL de autorização inválida recebida do backend.", "requiredField": "Este campo é obrigatório", "minLength": "O comprimento mínimo é {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Falha ao salvar o token de autenticação", "authTokenMissing": "O servidor não retornou um novo token de autenticação. Por favor, faça login novamente.", "failedToLoadServer": "Falha ao carregar o servidor", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Sessão expirada. Por favor, faça login novamente." }, "messages": { "registrationDisabled": "O cadastro de novas contas está temporariamente desativado por um administrador. Faça login ou entre em contato com um administrador.", @@ -1163,7 +1163,7 @@ "panelMain": "Principal", "panelSide": "Lado", "justNow": "agora mesmo", - "activityFileManager": "File manager" + "activityFileManager": "Gerenciador de arquivos" }, "donation": { "title": "Gostando do Termix?", @@ -1188,12 +1188,12 @@ "add": "Adicionar:", "commandPalette": "Paleta de comandos", "done": "Feito", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Arraste os cartões para reordená-los. Arraste o divisor de colunas para redimensionar as colunas. Arraste a borda inferior de um cartão para alterar sua altura. Use o botão da lixeira para remover um cartão.", "empty": "Vazio", "clear": "Claro", "viewServerDetails": "Ver detalhes do servidor", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Arraste para redimensionar as colunas", + "hostsAvailable": "Anfitriões disponíveis" }, "admin": { "sectionGeneral": "Em geral", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Banco de dados", "sectionApiKeys": "Chaves de API", "sectionAuditLog": "Registro de auditoria", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "Certificado HTTPS", "sectionBranding": "Marca Branca", "brandingAppName": "Nome do aplicativo", "brandingAppNameDesc": "Exibido na tela de login e na aba do navegador. Deixe em branco para usar o \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Imagem inválida. Use um arquivo PNG, JPEG ou WEBP de até 750 KB.", "brandingSaved": "Configurações de marca salvas", "brandingSaveFailed": "Falha ao salvar as configurações de marca", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "O certificado que a Termix fornece é fornecido via HTTPS. Você pode fazer o upload do seu aqui ou obter e renovar um certificado da Let's Encrypt na seção de Certificados ACME.", "sslDocsLink": "Ver documentação SSL", "sslCertStatus": "Status do certificado", "sslCertStatusNone": "Sem certificado", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Permita que novos usuários se cadastrem automaticamente com um nome de usuário e senha.", "allowPasswordLogin": "Permitir login com senha", "allowPasswordLoginDesc": "Login com nome de usuário/senha", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Criar contas externas automaticamente", + "oidcAutoProvisionDesc": "Criar uma conta na primeira vez que alguém fizer login por meio de um método externo, como SSO ou LDAP, mesmo quando o registro estiver desativado.", + "secondFactorAfterExternalLogin": "Solicitar um segundo fator de autenticação após logins externos (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Desativado, o segundo fator de autenticação cadastrado só é solicitado após a senha e outros logins locais, como antes. Ativado, ele é solicitado após todos os métodos de login, incluindo SSO e LDAP.", "allowPasswordReset": "Permitir redefinição de senha", "allowPasswordResetDesc": "Redefinir código através dos logs do Docker", "auditForwardingTitle": "Encaminhar para SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Falha ao salvar as configurações de encaminhamento de auditoria", "sessionTimeout": "Tempo limite da sessão", "hours": "horas", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Mínimo 1h, máximo 720h", "monitoringDefaults": "Monitoramento de padrões", "statusCheck": "Verificação de status", "sec": "seg", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "Sem data de validade", "revokedBadge": "REVOGADO", "authTypeDual": "Autenticação dupla", - "authTypeOidc": "External", + "authTypeOidc": "Externo", "authTypeLocal": "Local", "adminStatusAdministrator": "Administrador", "adminStatusRegularUser": "Usuário regular", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Status do administrador", "editUserUserId": "ID do usuário", "linkAccountTitle": "Vincular contas", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Mesclar conta externa {{username}} com uma conta local existente.", + "linkAccountDescLocal": "Vincule uma conta local {{username}} a uma conta existente que só pode ser usada externamente.", "linkAccountWarningTitle": "Isto irá:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Excluir conta somente externa", + "linkAccountEffect2": "Adicione o login externo à conta de destino.", + "linkAccountEffect3": "Permitir login externo e com senha", "linkAccountTargetUsername": "Nome de usuário da conta local", "linkAccountTargetPlaceholder": "Insira o nome de usuário da conta local para vincular.", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Nome de usuário da conta externa", + "linkAccountOidcPlaceholder": "Insira o nome de usuário da conta externa para mesclar.", + "linkAccountOidcNotFound": "Nenhuma conta externa encontrada com esse nome de usuário.", "linkAccounts": "Vincular contas", "linkAccountSuccess": "Contas vinculadas com sucesso", "linkAccountFailed": "Falha ao vincular as contas", "linkAccountInProgress": "Conectando...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Desvincular login externo", + "unlinkAccountDesc": "Remova o login externo de {{username}}. Eles só poderão fazer login com a senha.", + "unlinkAccountWarning": "Isso removerá o login externo desta conta. O usuário precisa definir uma senha para continuar acessando a conta.", + "unlinkAccount": "Desvincular login externo", "unlinkAccountInProgress": "Desvinculando...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Login externo desvinculado", + "unlinkAccountFailed": "Falha ao desvincular o login externo.", "saving": "Salvando...", "updateRegistrationFailed": "Falha ao atualizar as configurações de registro", "updatePasswordLoginFailed": "Falha ao atualizar as configurações de login da senha.", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Falha ao atualizar a configuração de criação automática.", + "updateSecondFactorAfterExternalLoginFailed": "Falha ao atualizar a configuração do segundo fator.", "updatePasswordResetFailed": "Falha ao atualizar as configurações de redefinição de senha", "sessionTimeoutRange2": "O tempo limite da sessão deve estar entre 1 e 720 horas.", "sessionTimeoutSaved": "Tempo limite da sessão salvo", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Nenhuma sessão ativa", "deleteSuccessorLabel": "Entregue os hosts e as credenciais para", "deleteSuccessorMe": "Eu (o administrador que excluiu)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Ninguém, apague-os", "deleteSuccessorDesc": "Tudo o que este usuário compartilhou continua funcionando sob o novo proprietário; selecionar \"ninguém\" remove seus hosts, credenciais e compartilhamentos.", "deleteUserDangerDesc": "Exclua permanentemente {{username}} e todos os seus dados (hosts, credenciais, trechos de código, histórico). Esta ação é irreversível.", "deleteUserConfirm": "Apagar permanentemente {{username}} e todos os seus dados?", @@ -1477,31 +1477,31 @@ "saveError": "Falha ao salvar as permissões de função.", "save": "Salvar", "saving": "Salvando...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Recurso desativado", "groups": { "hosts": "Hosts", "credentials": "Credenciais", - "admin": "Administration" + "admin": "Administração" } }, "notificationPrivateEndpoints": "Hosts de notificação privada permitidos", "notificationPrivateEndpointsDesc": "Nomeie os hosts privados exatos que os canais de notificação podem contatar. Separe-os com vírgulas.", "updateNotificationEndpointsFailed": "Falha ao atualizar a lista de permissões do endpoint de notificação.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Segundo fator", + "secondFactorsNone": "Nenhum segundo fator foi inscrito.", + "secondFactorUnavailable": "Indisponível", + "resetSecondFactors": "Redefinir fatores secundários", + "resetSecondFactorsConfirm": "Remover todos os outros fatores para {{username}}? Eles podem entrar com sua senha ou SSO e se inscrever novamente.", + "secondFactorsResetSuccess": "Segundo fator redefinido", + "secondFactorsResetFailed": "Falha ao redefinir os segundos fatores", + "passwordLoginForced": "O login por senha está desativado, mas nenhum outro método de login está habilitado, então ele permanece ativado por enquanto. Ninguém fica bloqueado.", + "sslNotRenewed": "Nada renova este certificado. Ele expira em {{date}}. Ative a renovação automática na seção Certificados ACME ou carregue um novo antes disso.", + "sslSelfSigned": "Certificado autoassinado emitido pela Termix. Os navegadores exibirão um aviso sobre ele.", + "sslRenewedBy": "Renovado automaticamente por {{plugin}}", + "sslIssuer": "Emitido por {{issuer}}", + "sslNames": "Capas {{names}}", + "sslManualTitle": "Faça o upload de um certificado", + "updateExternalAutoProvisionFailed": "Falha ao atualizar a configuração de criação automática." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protocolo", "domainLabel": "Domínio", "domainPlaceholder": "opcional", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Conecte-se a {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Nenhum dispositivo instalado consegue se conectar a este tipo de host." }, "keybindings": { "title": "Atalhos de teclado", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Atribua teclas a ações no terminal e no aplicativo ou altere os atalhos integrados.", "defaultsHeading": "Atalhos integrados", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Atalhos de aplicativos", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Dividir à direita", + "splitDown": "Dividir em partes", + "zoomPane": "Amplie o painel selecionado", + "navigatePane": "Mover entre painéis", + "nextTab": "Próxima aba", + "previousTab": "Aba anterior", + "jumpTab": "Ir para a aba", + "previousView": "Voltar à visualização anterior da barra lateral", + "fullscreen": "Alternar tela cheia" }, "customHeading": "Atalhos personalizados", "addBinding": "Adicionar atalho", @@ -1566,9 +1566,9 @@ "actionNextTab": "Mudar para a próxima aba", "actionPreviousTab": "Alternar para a aba anterior", "actionOpenCommandPalette": "Abrir pesquisa rápida", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Reconectar sessão atual", + "unavailableAction": "{{type}} (não disponível)", + "actionRequiredError": "Escolha uma ação primeiro" }, "userProfile": { "donateTitle": "Mantenha o Termix vivo", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "As configurações foram redefinidas para os padrões de fábrica.", "storageModeSwitch": "Armazenamento de preferências", "sectionAccount": "Conta", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Este dispositivo apenas", + "desktopProfileDescription": "Este perfil reside neste dispositivo e inicia sessão automaticamente. Vincule-o a um servidor Termix para usar os mesmos hosts e configurações em todos os dispositivos.", "sectionInterface": "Interface", "interfacePresetDesc": "O nível de detalhe exibido pelo Termix é impressionante. Todas as funcionalidades permanecem disponíveis.", "preset_simple": "Simples", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Restaure suas abas abertas ao fazer login ou atualizar a página, mesmo em outro dispositivo.", "confirmTabClose": "Confirmar fechar a aba", "confirmTabCloseDesc": "Pergunte antes de fechar as abas do terminal.", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Mostrar números de aba", + "showTabNumbersDesc": "Exiba um número em cada aba para ajudar a diferenciá-las.", "settingsAppRail": "Aplicativo Rail", "sidebarSettingsMoved": "As configurações de exibição da barra lateral do host foram movidas para o painel Personalizar barra lateral, acessível pela barra de ferramentas Hosts.", "showHostTags": "Tags do apresentador", @@ -1727,7 +1727,7 @@ "importFailed": "A importação falhou: {{error}}", "roleUser": "Usuário", "authMethodDual": "Autenticação dupla", - "authMethodOidc": "External", + "authMethodOidc": "Externo", "done": "Feito", "apiKeyNameRequired": "É necessário nomear a chave.", "apiKeyCreated": "Chave de API \"{{name}}\" criada", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Noite de Tóquio", "themeOneDark": "Um Escuro", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Conectado em {{server}}", + "linkedProfileDescription": "Este dispositivo utiliza sua conta no servidor e mantém uma cópia dos seus dados, portanto, continua funcionando offline.", + "manageSync": "Gerenciar sincronização", + "setUpSync": "Link para um servidor", + "settingsTabsAndShortcuts": "Abas e Atalhos" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Veja suas senhas e chaves.", + "consequence": "Ele consegue ler o segredo armazenado em qualquer host que você consiga alcançar." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Execute comandos em seus servidores", + "consequence": "Qualquer comando, em hosts aos quais você o conecte, com seu acesso." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Execute programas nesta máquina", + "consequence": "Os programas são executados no próprio servidor Termix, não em seus hosts." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Criar e alterar contas de usuário", + "consequence": "Ele permite adicionar usuários e alterar suas funções." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Identificar login", + "consequence": "É possível adicionar um método de login, um segundo fator de autenticação ou um tipo de login SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Gerenciar certificados", + "consequence": "Ele pode substituir o certificado que o Termix fornece via HTTPS e responder a verificações de domínio de autoridades certificadoras." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Aceda a dispositivos seriais e USB", + "consequence": "Ele pode abrir uma porta serial física na máquina que executa o Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Criar e alterar hosts", + "consequence": "Ele permite adicionar hosts e editar os que você já possui." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Conecte-se aos seus servidores.", + "consequence": "Ele não consegue ver suas senhas ou chaves." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Salvar novas credenciais", + "consequence": "Ele pode adicionar senhas e chaves às suas credenciais salvas." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Acesse a internet", + "consequence": "Ele pode enviar solicitações para serviços externos." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Aceitar conexões", + "consequence": "Isso abre uma porta no servidor Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Enviar transmissões de rede", + "consequence": "Ele pode enviar pacotes para dispositivos na rede local, como um sinal Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Veja os nomes de usuário e as funções.", + "consequence": "Nunca use hashes de senha, nunca ative a autenticação de dois fatores." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Acompanhe tudo o que acontece.", + "consequence": "Incluindo a atividade de outros usuários, não apenas a sua." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Enviar alertas", + "consequence": "Para você ou outros usuários, e através dos canais que eles configuraram." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Receba todos os alertas", + "consequence": "Armazena e entrega os alertas enviados por todos os plugins, incluindo seu conteúdo." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Leia o registro de auditoria", + "consequence": "É possível ver quem fez o quê e quando." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Abrir janelas da área de trabalho", + "consequence": "Somente no aplicativo Termix para desktop." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Aja como outros usuários", + "consequence": "Executa tarefas em segundo plano com o acesso de outro usuário, como trabalhos agendados. Cada utilização é registrada no log de auditoria." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Leia as tabelas principais de contas.", + "consequence": "É possível consultar usuários, funções e hosts diretamente do banco de dados." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Consulte a sua lista de anfitriões.", + "consequence": "Os nomes e endereços dos anfitriões já estão visíveis." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Armazena seus próprios dados", + "consequence": "Mantido em tabelas próprias, separadas de outros plugins." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Lembre-se das configurações pequenas", + "consequence": "Mantido separado dos demais plugins." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Armazena seus próprios arquivos", + "consequence": "Em sua própria pasta no disco, separada dos outros plugins." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Guarda seus próprios segredos", + "consequence": "Criptografado pelo Termix. O plugin nunca detém a chave." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Leia as configurações do Termix", + "consequence": "Configurações do servidor, não seus hosts ou credenciais." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Veja os recursos instalados", + "consequence": "Ele consegue ver quais recursos estão instalados e em execução." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Adicione suas próprias telas", + "consequence": "Abas, painéis e configurações que você pode ocultar posteriormente." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} não está disponível", + "needsUnknownPlugin": "Esta funcionalidade não está disponível.", + "disabledHint": "Está desativado neste servidor.", + "missingHint": "A funcionalidade de onde isso se originou foi removida.", + "failed": "{{name}} não pôde iniciar", + "failedHint": "Um administrador pode verificar os registros do servidor para obter detalhes.", + "loading": "Carregando {{name}}", + "crashed": "Algo deu errado em {{name}}", + "retry": "Tente novamente" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "Definir", + "secretNotSet": "Não definido", + "secretReplace": "Substituir", + "pluginSettingsSaved": "Configurações salvas", + "pluginSettingsInvalid": "Algumas configurações não puderam ser salvas. Verifique os campos destacados.", + "pluginSettingsSaveFailed": "Falha ao salvar as configurações", + "pluginSettingsLoadFailed": "Falha ao carregar as configurações", + "featureUnavailable": "{{name}} não está disponível no momento. Essas configurações foram salvas, mas não terão efeito." }, "managerCard": { "refresh": "Atualizar", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "retry": "Tentar novamente", + "sudoHint": "Defina uma senha sudo para este host no editor de hosts para habilitar ações privilegiadas.", + "noData": "Sem dados", + "filter": "Filtro..." }, "sync": { - "server": "Termix server", - "account": "Account", + "server": "Servidor Termix", + "account": "Conta", "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "never": "nunca", + "justNow": "agora mesmo", + "minutesAgo_one": "{{count}} minuto atrás", + "minutesAgo_other": "{{count}} minutos atrás", + "hoursAgo_one": "{{count}} hora atrás", + "hoursAgo_other": "{{count}} horas atrás", + "actionFailed": "Isso não funcionou. Tente novamente.", + "unlinkedTitle": "Este dispositivo apenas", + "unlinkedBody": "O Termix funciona de forma independente neste dispositivo. Conecte-o ao seu servidor Termix para manter tudo sincronizado.", + "unlinkedPointHosts": "Seus hosts, credenciais, trechos de código e configurações acompanham você em todos os dispositivos.", + "unlinkedPointOffline": "Tudo continua funcionando mesmo quando o servidor está inacessível, e o sistema se recupera posteriormente.", + "unlinkedPointAccount": "Você faz login com a sua conta de servidor, e os hosts que as pessoas compartilharam com você também aparecem aqui.", + "linkButton": "Link para um servidor", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Sincronizando", + "offline": "Servidor inacessível", + "error": "Sincronização interrompida", + "signedOut": "Saída", + "synced": "Sincronizado {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} alterar aguardando sincronização", + "pending_other": "{{count}} alterações aguardando sincronização", + "signInAgain": "Faça login novamente", + "syncNow": "Sincronizar agora", + "unlink": "Desvincular", + "unlinked": "Este dispositivo não está mais conectado.", + "unlinkTitle": "Desvincular este dispositivo?", + "unlinkDescription": "A sincronização é interrompida e a conexão com o servidor é encerrada. Os hosts compartilhados com você por outros usuários são removidos deste dispositivo de qualquer forma.", + "unlinkKeepTitle": "Guarde meus dados aqui.", + "unlinkKeepBody": "Seus hosts, credenciais e configurações permanecem neste dispositivo e continuam funcionando automaticamente.", + "unlinkRemoveTitle": "Remover dados sincronizados", + "unlinkRemoveBody": "Tudo que veio do servidor foi removido deste dispositivo. Apenas os hosts mantidos neste dispositivo permanecem.", + "conflictsTitle": "Conflitos", + "conflictsDescription": "Essas alterações foram feitas aqui e no servidor simultaneamente. A versão do servidor está em uso. Guarde a sua para enviá-la ao servidor.", + "keepMine": "Fique com o meu.", + "keepServer": "Manter servidor", + "errorsTitle": "Não sincronizado", + "errorsDescription": "O servidor não aceitou essas alterações. Elas permanecem neste dispositivo.", + "errorPermission": "Sua conta no servidor não tem permissão para fazer essa alteração.", + "retry": "Tente novamente", + "whatSyncs": "O que sincroniza", + "whatSyncsDescription": "Desative tudo o que você deseja manter somente neste dispositivo.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "O servidor não possui isso.", + "notOnDevice": "Ainda não está disponível neste dispositivo.", + "localOnlyHint": "Você também pode manter hosts ou pastas individuais neste dispositivo a partir de suas configurações.", + "originTitle": "Onde as conexões começam", + "originDescription": "Conecte-se aos hosts a partir deste dispositivo ou através do servidor. Você pode alterar isso para cada host individualmente.", + "originLocal": "Este dispositivo", + "originRemote": "O servidor", "entities": { "hosts": "Hosts", "sshCredentials": "Credenciais", "sshFolders": "Pastas", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Preferências", + "pluginUserSettings": "Configurações de recursos", + "sharedHosts": "Os anfitriões compartilharam com vocês", + "sharedCredentials": "Credenciais compartilhadas com você", + "vaultProfiles": "Perfis do Vault", + "snippetFolders": "Pastas de trechos", "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "Links de serviço", + "homepageItems": "Itens da página inicial", + "networkTopology": "Mapa da rede", + "workspaces": "Espaços de trabalho" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Proxy reverso", + "description": "Só é necessário quando algo como o Cloudflare Access ou uma página de login estiver na frente do seu servidor.", + "headersTitle": "Cabeçalhos adicionais", + "headersHint": "Enviado com cada solicitação ao servidor, por exemplo, um token de serviço do Cloudflare Access.", + "headerName": "Nome do cabeçalho", + "headerValue": "Valor", + "savedValue": "Salvo, digite para alterar", + "addHeader": "Adicionar cabeçalho", + "removeHeader": "Remover cabeçalho", + "basicAuthTitle": "Nome de usuário e senha", + "basicAuthHint": "Para um proxy que solicita nome de usuário e senha antes do Termix.", "username": "Nome de usuário", "password": "Senha", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Confie em um certificado autoassinado.", + "allowInvalidCertificateHint": "Somente para o seu próprio servidor, quando o certificado não for de uma autoridade reconhecida.", "saved": "Salvo" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Isso não parece ser um endereço da web.", + "unreachable": "Não foi possível conectar-se ao servidor. Verifique o endereço e se o servidor está em execução.", + "unreachableWithReason": "Não foi possível conectar ao servidor: {{reason}}", + "tlsUntrusted": "O certificado do servidor não é confiável. Se este for o seu próprio servidor com um certificado autoassinado, ative a opção abaixo.", + "basicAuthRequired": "Uma janela na frente do servidor solicitará um nome de usuário e uma senha. Digite-os abaixo.", + "proxyLogin": "Uma página de login ou proxy respondeu em vez do Termix. Adicione os cabeçalhos necessários abaixo ou verifique o endereço.", + "notTermix": "Não existe nenhum servidor Termix nesse endereço. Se ele estiver sendo executado em um caminho específico, inclua-o, como https://example.com/termix.", + "versionMismatch": "Esse servidor está executando uma versão antiga do Termix. Atualize-o para a versão 2.9 ou mais recente para que a conexão seja estabelecida.", + "differentAccount": "Você fez login em uma conta diferente. Faça login na conta à qual este dispositivo está vinculado ou desvincule-o primeiro." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Link para um servidor Termix", + "reloginTitle": "Faça login novamente", + "savedServers": "Servidores recentes", + "removeServer": "Remover da lista", + "serverDescription": "Digite o endereço que você usa para abrir o Termix no seu navegador.", + "signinDescription": "Faça login em {{url}}", + "chooseDescription": "Este dispositivo já possui dados. O que deve acontecer com eles?", + "finishingDescription": "Conectando este dispositivo.", + "serverUrl": "Endereço do servidor", + "serverUrlHint": "Por exemplo, https://termix.example.com", + "showProxySettings": "Configurações de proxy reverso", + "hideProxySettings": "Ocultar configurações de proxy reverso", "continue": "Continuar", "back": "Voltar", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", + "mergeTitle": "Adicionar à minha conta", + "mergeBody": "Os itens {{count}} neste dispositivo são adicionados à sua conta. Os itens que sua conta já possui permanecem como estão no servidor.", + "replaceTitle": "Substitua isso pela minha conta.", + "replaceBody": "Os itens {{count}} deste dispositivo serão removidos e este dispositivo removerá tudo da sua conta. Somente os hosts mantidos neste dispositivo permanecerão.", "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "linking": "Conectando e executando a primeira sincronização...", + "linked": "Conectado. Seus dados estão sendo sincronizados.", + "signedInAgain": "Login efetuado. A sincronização está em andamento novamente." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Pasta {{name}}", + "user": "Meus padrões", + "admin": "Servidor", + "builtin": "Embutido" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "Personalizado", + "setHere": "Defina aqui", + "notSet": "Não definido", + "notSetTitle": "Não há valor padrão definido para isso.", + "resetTitle": "Este host define seu próprio valor. Clique para usar o valor padrão de {{source}} novamente.", + "clearTitle": "Defina neste nível. Clique para limpar e use {{source}} em vez disso.", + "inheritedTitle": "Segue o padrão de {{source}}", + "titleAdmin": "Configurações padrão do host do servidor", + "titleUser": "Minhas configurações padrão do host", + "titleFolder": "Configurações padrão da pasta: {{name}}", + "descriptionAdmin": "Configurações padrão para todos os hosts neste servidor. As configurações padrão de um usuário, de uma pasta ou do próprio host ainda podem definir um valor diferente. Altere um campo para defini-lo aqui ou limpe-o para deixá-lo indefinido.", + "descriptionUser": "Configurações padrão para todos os seus hosts, com exceção das configurações do servidor. Uma pasta ou o próprio host ainda podem definir um valor diferente. Altere um campo para defini-lo aqui ou limpe-o para deixá-lo indefinido.", + "descriptionFolder": "Configurações padrão para os hosts nesta pasta e suas subpastas, em vez das suas próprias. Um host ainda pode definir um valor diferente. Altere um campo para defini-lo aqui ou limpe-o para deixá-lo indefinido.", + "save": "Salvar valores padrão", + "saved_one": "Configurações padrão salvas. O host {{count}} foi atualizado.", + "saved_other": "Configurações padrão salvas. {{count}} hosts foram atualizados.", + "savedInBackground": "Configurações padrão salvas. Os hosts estão sendo atualizados em segundo plano.", + "appliedToHosts_one": "{{count}} O host foi atualizado com os novos padrões.", + "appliedToHosts_other": "{{count}} Os hosts foram atualizados com os novos padrões.", + "saveFailed": "Não foi possível salvar as configurações padrão.", + "loadFailed": "Não foi possível carregar os valores padrão.", + "confirmTitle": "Salvar configurações padrão?", + "confirmChanges_one": "{{count}} O host segue esses padrões e será alterado.", + "confirmChanges_other": "{{count}} Os hosts seguem esses padrões e serão alterados.", + "confirmNoChanges": "Nenhuma alteração foi feita nos hosts existentes. Novos hosts iniciarão com essas configurações padrão.", + "menuMyDefaults": "Minhas configurações padrão do host", + "folderDefaultsAction": "Padrões de pasta", + "adminSectionDescription": "Defina os valores padrão que todos os hosts neste servidor seguem, para cada configuração que um host possui, incluindo as de cada recurso. Usuários e pastas podem definir seus próprios valores, e qualquer host ainda pode usar seu próprio valor.", + "editServerDefaults": "Editar configurações padrão do servidor", + "resetMenu": "Reiniciar", + "resetAll": "Tudo conforme as configurações padrão.", + "resetCore": "Conexão e SSH para as configurações padrão", + "resetDone_one": "{{count}} O host agora segue seus padrões.", + "resetDone_other": "{{count}} Os hosts agora seguem seus padrões." } } diff --git a/src/ui/locales/translated/pt_PT.json b/src/ui/locales/translated/pt_PT.json index b53f73f3a..20a55b934 100644 --- a/src/ui/locales/translated/pt_PT.json +++ b/src/ui/locales/translated/pt_PT.json @@ -55,7 +55,7 @@ "levelManage": "Gerir", "levelUseDesc": "Utilização: associe as credenciais aos hosts e ligue-se. O segredo em si permanece oculto.", "levelManageDesc": "Gerir: edite também as credenciais e partilhe-as com outras pessoas.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Esta credencial ainda não foi partilhada.", "accessRevoked": "Acesso revogado", "shared": "Credencial partilhada" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Desbloqueie e arraste para reorganizar." }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Atualização disponível. Consulte as notas de lançamento no GitHub." }, "common": { "close": "Fechar", "minimize": "Minimizar", "online": "Online", "offline": "Offline", - "signInFailed": "Sign in failed", + "signInFailed": "Falha no login", "unknown": "Desconhecido", "continue": "Continuar", "maintenance": "Manutenção", @@ -187,7 +187,7 @@ "remove": "Remover", "add": "Adicionar", "update": "Atualizar", - "noResults": "No results found" + "noResults": "Nenhum resultado encontrado" }, "onboarding": { "stepCounter": "Passo {{current}} de {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Paleta de comandos", "workflow_palette_desc": "Aceda a qualquer servidor ou ação digitando. Prima Shift duas vezes para abrir.", "workflow_split": "Tela dividida", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Apresente várias abas lado a lado, por exemplo, para visualizar registos enquanto trabalha.", "workflow_dock": "Painel lateral", "workflow_dock_desc": "Clique com o botão do meio do rato ou com o botão direito do rato num ícone da barra lateral para o abrir como separador ou fixá-lo à direita.", "securityTitle": "Protegendo os seus logins", @@ -248,13 +248,13 @@ "done_cli": "Ferramenta de linha de comandos", "done_cli_desc": "Faça a gestão dos seus servidores a partir de um terminal e utilize o Termix nos seus próprios scripts.", "done_cli_link": "Abra a documentação da CLI.", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Como pretende usar o Termix?", + "desktopBody": "Pode alterar isto a qualquer momento em Sincronizar, na barra lateral.", + "desktopLocalTitle": "Só neste dispositivo", + "desktopLocalBody": "Tudo está armazenado aqui. Não precisa de configurar nada.", + "desktopLinkTitle": "Com o meu servidor Termix", + "desktopLinkBody": "Inicie sessão no seu servidor para utilizar os mesmos hosts e definições em todos os dispositivos.", + "desktopLinked": "Ligado a {{server}}" }, "nav": { "home": "Início", @@ -295,21 +295,21 @@ "collapseSideMenu": "Recolher menu", "roleAdministrator": "Administrador", "roleUser": "Utilizador", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Sincronizar", + "reconnectDisconnectedTerminals": "Volte a ligar todos os terminais desconectados.", + "reconnectingTerminals_one": "Voltar a ligar o terminal {{count}}", + "reconnectingTerminals_other": "Voltar a ligar os terminais {{count}}", + "noDisconnectedTerminals": "Nenhum terminal desligado está pronto para ser reconectado.", + "reconnectTerminalsFailed_one": "Não foi possível iniciar a religação do terminal {{count}}", + "reconnectTerminalsFailed_other": "Não foi possível iniciar a religação dos terminais {{count}}", + "fullscreenUnsupported": "O modo de ecrã inteiro não é suportado neste navegador.", + "fullscreenFailed": "Não foi possível alternar para o modo de ecrã inteiro.", + "resetSidebarWidth": "Repor largura", + "collapseSidebar": "Recolher barra lateral", + "openSidebar": "Abrir barra lateral", + "confirmCloseHost": "Fechar {{host}}?", + "enterFullscreen": "Para entrar no modo de ecrã inteiro (Ctrl+Shift+F)", + "exitFullscreen": "Sair do modo de ecrã inteiro (Ctrl+Shift+F)" }, "hosts": { "hosts": "Máquinas", @@ -353,7 +353,7 @@ "serverStats": "Métricas do Host", "status": { "available": "Disponível", - "reachable": "Up, but the last sign in failed", + "reachable": "Subiu, mas o último sinal falhou.", "offline": "Offline", "monitoringDisabled": "Monitorização desativado", "label": "Estatuto" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Forçar autenticação Keyboard-Interactive", "overrideCredentialUsername": "Substituir nome de utilizador da credencial", "overrideCredentialUsernameDesc": "Utilizar o nome de utilizador especificado acima em vez do nome de utilizador da credencial", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Utilize $external. username para preencher o nome com o qual iniciou sessão através de SSO ou LDAP.", "jumpHostChain": "Cadeia de hosts de salto", "portKnocking": "Port Knocking", "addKnock": "Adicionar porta", @@ -626,14 +626,14 @@ "actionsClick": "Clique para expandir/recolher", "openOnDoubleClick": "Abrir com um duplo clique", "openOnDoubleClickDesc": "Exigir um duplo clique para abrir uma sessão de host em vez de um único clique.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Mostrar caminhos de pastas", + "showFolderPathsDesc": "Apresente o caminho da pasta principal acima dos nomes das subpastas aninhadas. As subpastas permanecem indentadas em qualquer direção.", + "hostClickBehavior": "Clicar num host", + "hostClickBehaviorDesc": "O que acontece quando clica num host que já tem um separador aberto? Clicar com Ctrl/Cmd, clicar com o botão do meio ou utilizar a opção \"Abrir em novo separador\" inicia sempre um novo separador.", + "hostClickNewTab": "Abra sempre uma nova aba.", + "hostClickFocusExisting": "Mude para o separador aberto.", + "hostClickFocusExistingDoubleNew": "Clique para alternar, clique duas vezes para abrir um novo separador.", + "openInNewTab": "Abrir em novo separador", "deletedHost": "{{name}} eliminado", "copiedToClipboard": "Copiado para a área de transferência", "remoteDesktopUrlCopied": "URL do Ambiente de Trabalho Remoto copiado", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Cada ponto final necessita de um nome diferente.", "webUiErrorPortRange": "O ponto final {{row}} necessita de uma porta entre 1 e 65535.", "webUiErrorPathInvalid": "O endpoint {{row}} tem um caminho inválido. Utilize um caminho como /admin.", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "Copiar link {{name}}", "filterAuthAgent": "Agente SSH", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "Este host utiliza {{type}}, que necessita de {{plugin}}. Está desativado neste servidor.", + "authTypeUnknown": "Este host utiliza {{type}}, que não está disponível neste servidor.", + "authFieldsAfterSave": "Primeiro, guarde o host e, em seguida, preencha estes campos.", + "enablePluginFeature": "Activar {{name}}", + "disablePluginFeature": "Desativar {{name}}", "filterFeaturesGroup": "Funcionalidades", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Mantenha apenas neste dispositivo", + "localOnlyDesc": "Este host não é enviado para o servidor e não aparece nos seus outros dispositivos.", + "folderLocalOnly": "Mantenha apenas neste dispositivo", + "folderLocalOnlyDesc": "Esta pasta e todos os hosts nela contidos permanecem neste dispositivo e não são enviados para o servidor.", + "sudoPasswordDesc": "Utilizado quando o terminal preenche um prompt sudo e por funcionalidades que executam comandos com sudo.", "editorCancel": "Cancelar", "editorSaving": "A guardar...", "editorUpdate": "Atualizar Host", "editorAdd": "Adicionar Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Pesquisar hosts. Utilize as setas para selecionar, Enter para ligar e Esc para fechar.", + "speedSearchList": "Lista de anfitriões. Digite ou prima / para pesquisar.", + "importNoHosts": "Nenhum host encontrado no ficheiro", + "importTooMany": "Pode importar até {{max}} hosts em simultâneo.", + "importSummary": "Importação concluída: {{imported}} importado, {{updated}} atualizado, {{failed}} falhou", + "importHostsFailed": "Falha ao importar hosts" }, "commandPalette": { "searchPlaceholder": "Pesquisar hosts, comandos ou definições...", @@ -898,57 +898,57 @@ "select": "Selecionar", "toggleWith": "Alternar com", "pluginActions": "Mais ações", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "Nenhuma patilha de terminal está aberta." }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "Tela dividida", + "defaultLabel": "Dividir {{number}}", "splitRight": "Dividir à direita", "splitDown": "Dividir para baixo", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "Adicionar a {{split}}", + "paneEmptyItem": "Painel {{index}}: vazio", + "paneItem": "Painel {{index}}: {{label}}", "paneNumber": "Painel {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "Novo painel à direita", + "newPaneBelow": "Novo painel abaixo", + "emptyTitle": "Painel vazio", + "emptyHint": "Selecione algo para exibir aqui. Enquanto este painel estiver selecionado, tudo o que abrir na barra lateral também será aberto aqui.", + "openTabs": "Abas abertas", + "noOpenTabs": "Nenhuma outra aba está aberta.", "hosts": "Anfitriões", "searchHosts": "Pesquisar hosts", - "noHosts": "No hosts match", + "noHosts": "Nenhum host corresponde", "newSession": "Novo", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", + "closePane": "Fechar painel", + "closeSession": "Sessão encerrada", + "moveToTab": "Mova para a sua própria aba.", + "swapWith": "Trocar com", + "showHere": "Mostrar neste painel", + "clearPane": "Esvazie este painel", + "zoom": "Painel de zoom", + "unzoom": "Restaurar layout", + "unsplit": "Sem divisão", "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "applyLayout": "Alterar layout", + "newSplit": "Nova divisão", + "maxPanes": "Uma divisão pode conter até {{count}} painéis", + "dropSplit": "Solte para dividir", + "dropHere": "Arraste para mostrar aqui", + "paneActions": "Ações do painel", + "dividerHint": "Arraste para redimensionar. Clique duas vezes para ajustar.", + "openInSplit": "Abrir em divisão", + "openInNewSplit": "Nova divisão com o separador atual", + "shortcuts": "Atalhos", + "shortcutNavigate": "Mover entre painéis", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Dois lado a lado", + "rows2": "Dois empilhados", + "columns3": "Três lado a lado", + "mainLeft3": "Um à esquerda, dois à direita.", + "mainBottom3": "Dois em cima, um em baixo", + "grid4": "Grelha de quatro", + "grid5": "Três sobre dois", + "grid6": "Grade de seis" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Autenticação necessária", "mfaPushRequired": "Autenticação Push necessária", "mfaMenuPlaceholder": "Insira a sua resposta", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Código ou \"push\"", "mfaWaitingApproval": "Aguarda aprovação no seu dispositivo...", "mfaSendRequest": "Enviar solicitação", "browserSignInCode": "Chave de segurança", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "URL de login", "browserSignInOpen": "Abrir no navegador", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "Concluí o login.", + "browserSignInRequired": "{{provider}} É necessário fazer login", "connectionLogTitle": "Registo da Ligação", "connectionLogCopy": "Copiar registos para a área de transferência", "connectionLogEmpty": "Ainda não há registos da ligação", @@ -1032,7 +1032,7 @@ "external": "Externo", "loginWithExternal": "Iniciar sessão com fornecedor externo", "loginWithExternalDesc": "Inicie sessão utilizando o seu fornecedor de identidade externo configurado", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "O login externo ainda não é compatível com a aplicação para desktop. Por favor utilize a versão web.", "loginWithProvider": "Iniciar sessão com {{name}}", "orContinueWith": "ou continuar com", "resetPasswordButton": "Redefinir palavra-passe", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "{{count}} tentativas restantes", "confirmResetDataWipe": "Esta conta não iniciou sessão desde a atualização da encriptação, pelo que os dados armazenados não podem ser recuperados sem a palavra-passe antiga. A reposição irá eliminar permanentemente os seus hosts, credenciais e snippets. Continuar?", "password": "Palavra-passe", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "A sua conta utiliza um segundo fator de autenticação que não está disponível de momento. Contacte um administrador para redefini-lo.", + "secondFactorNoUI": "Este segundo fator não pode ser apresentado neste ecrã. Entre em contacto com um administrador.", + "serverAuthentication": "Iniciar sessão no servidor", + "minChars": "mín. {{min}} caracteres" }, "hostKey": { "verifyNewHost": "Verificar chave de host SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Falha ao verificar o código de reposição", "failedCompleteReset": "Falha ao concluir a reposição da palavra-passe", "invalidTotpCode": "Código TOTP inválido", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Falha ao iniciar o login externo.", + "silentSigninOidcUnavailable": "Foi solicitado o login silencioso, mas não está configurado nenhum login externo.", "failedUserInfo": "Falha ao obter informações do utilizador após o início de sessão", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Falha no login externo", "invalidAuthUrl": "URL de autorização inválida recebida do backend", "requiredField": "Este campo é obrigatório", "minLength": "O comprimento mínimo é {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Falha ao guardar o token de autenticação", "authTokenMissing": "O servidor não devolveu um novo token de autenticação. Por favor, inicie sessão novamente.", "failedToLoadServer": "Falha ao carregar o servidor", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Sessão expirada. Por favor, inicie sessão novamente." }, "messages": { "registrationDisabled": "O registo de novas contas está atualmente desativado por um administrador. Por favor, inicie sessão ou contacte um administrador.", @@ -1163,7 +1163,7 @@ "panelMain": "Principal", "panelSide": "Lateral", "justNow": "agora mesmo", - "activityFileManager": "File manager" + "activityFileManager": "Gestor de arquivos" }, "donation": { "title": "Está a gostar do Termix?", @@ -1188,12 +1188,12 @@ "add": "Adicionar:", "commandPalette": "Paleta de Comandos", "done": "Concluído", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Arraste os cartões para os voltar a encomendar. Arraste o separador de colunas para redimensionar as colunas. Arraste a margem inferior de um cartão para alterar a sua altura. Utilize o botão do caixote do lixo para remover um cartão.", "empty": "Vazio", "clear": "Limpar", "viewServerDetails": "Ver detalhes do servidor", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Arraste para redimensionar as colunas", + "hostsAvailable": "Anfitriões disponíveis" }, "admin": { "sectionGeneral": "Geral", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Base de Dados", "sectionApiKeys": "Chaves API", "sectionAuditLog": "Registo de auditoria", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "Certificado HTTPS", "sectionBranding": "Marca Branca", "brandingAppName": "Nome do aplicativo", "brandingAppNameDesc": "Exibido no ecrã de login e na aba do navegador. Deixe em branco para utilizar o \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Imagem inválida. Utilize um ficheiro PNG, JPEG ou WEBP até 750 KB.", "brandingSaved": "Configurações de marca guardadas", "brandingSaveFailed": "Não foi possível guardar as definições de marca.", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "O certificado que a Termix fornece é fornecido via HTTPS. Pode fazer o upload do seu aqui ou obter e renovar um certificado da Let's Encrypt na secção Certificados ACME.", "sslDocsLink": "Ver documentação SSL", "sslCertStatus": "Estado do certificado", "sslCertStatusNone": "Sem certificado", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Permitir que novos utilizadores se auto-registem com nome de utilizador e palavra-passe", "allowPasswordLogin": "Permitir Início de Sessão com Palavra-passe", "allowPasswordLoginDesc": "Início de sessão com nome de utilizador/palavra-passe", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Criar contas externas automaticamente", + "oidcAutoProvisionDesc": "Criar uma conta na primeira vez que alguém inicia sessão através de um método externo, como SSO ou LDAP, mesmo quando o registo está desativado.", + "secondFactorAfterExternalLogin": "Solicitar um segundo fator de autenticação após os logins externos (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Desativado, o segundo fator de autenticação registado só é solicitado após a password e outros logins locais, como anteriormente. Ativado, é solicitado após todos os métodos de login, incluindo SSO e LDAP.", "allowPasswordReset": "Permitir Reposição de Palavra-passe", "allowPasswordResetDesc": "Código de reposição via registos do Docker", "auditForwardingTitle": "Encaminhar para SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Falha ao guardar as definições de encaminhamento de auditoria", "sessionTimeout": "Tempo Limite da Sessão", "hours": "horas", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Mínimo 1h, máximo 720h", "monitoringDefaults": "Padrões de Monitorização", "statusCheck": "Verificação de Estado", "sec": "seg", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Estado de administrador", "editUserUserId": "ID de utilizador", "linkAccountTitle": "Associar contas", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Mesclar conta externa {{username}} com uma conta local existente.", + "linkAccountDescLocal": "Ligue uma conta local {{username}} a uma conta existente que só pode ser utilizada externamente.", "linkAccountWarningTitle": "Isto irá:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Apagar conta apenas externa", + "linkAccountEffect2": "Adicione o login externo à conta de destino.", + "linkAccountEffect3": "Permitir login externo e com password", "linkAccountTargetUsername": "Nome de utilizador da conta local", "linkAccountTargetPlaceholder": "Introduza o nome de utilizador da conta local a associar", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Nome de utilizador da conta externa", + "linkAccountOidcPlaceholder": "Introduza o nome de utilizador da conta externa para fundir.", + "linkAccountOidcNotFound": "Nenhuma conta externa encontrada com este nome de utilizador.", "linkAccounts": "Associar contas", "linkAccountSuccess": "Contas associadas com sucesso", "linkAccountFailed": "Falha ao associar contas", "linkAccountInProgress": "A associar...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Desvincular login externo", + "unlinkAccountDesc": "Remova o login externo de {{username}}. Só poderão fazer login com a palavra-passe.", + "unlinkAccountWarning": "Isto removerá o login externo desta conta. O utilizador precisa de definir uma palavra-passe para continuar a aceder à conta.", + "unlinkAccount": "Desvincular login externo", "unlinkAccountInProgress": "A desassociar...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Login externo desvinculado", + "unlinkAccountFailed": "Falha ao desvincular o login externo.", "saving": "A guardar...", "updateRegistrationFailed": "Falha ao atualizar a definição de registo", "updatePasswordLoginFailed": "Falha ao atualizar a definição de início de sessão por palavra-passe", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Falha ao atualizar a configuração de criação automática.", + "updateSecondFactorAfterExternalLoginFailed": "Falha ao atualizar a configuração do segundo fator.", "updatePasswordResetFailed": "Falha ao atualizar a definição de reposição de palavra-passe", "sessionTimeoutRange2": "O tempo limite da sessão deve estar entre 1 e 720 horas", "sessionTimeoutSaved": "Timeout da sessão guardado", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Sem sessões ativas", "deleteSuccessorLabel": "Entregue os hosts e as credenciais aos", "deleteSuccessorMe": "Eu (o administrador que apagou)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Ninguém, apague-os", "deleteSuccessorDesc": "Tudo o que este utilizador partilhou continua a funcionar sob o novo proprietário; selecionar \"ninguém\" remove os seus hosts, credenciais e partilhas.", "deleteUserDangerDesc": "Eliminar permanentemente {{username}} e todos os seus dados (hosts, credenciais, snippets, histórico). Esta ação não pode ser desfeita.", "deleteUserConfirm": "Eliminar permanentemente {{username}} e todos os seus dados?", @@ -1477,31 +1477,31 @@ "saveError": "Falha ao guardar as permissões do cargo", "save": "Guardar", "saving": "A guardar...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Recurso desativado", "groups": { "hosts": "Anfitriões", "credentials": "Credenciais", - "admin": "Administration" + "admin": "Administração" } }, "notificationPrivateEndpoints": "Hosts de notificação privada permitidos", "notificationPrivateEndpointsDesc": "Nomeie os hosts privados exatos que os canais de notificação podem contactar. Separe-os com vírgulas.", "updateNotificationEndpointsFailed": "Falha ao atualizar a lista de permissões do endpoint de notificação.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Segundo fator", + "secondFactorsNone": "Nenhum segundo fator foi inscrito.", + "secondFactorUnavailable": "Indisponível", + "resetSecondFactors": "Redefinir fatores secundários", + "resetSecondFactorsConfirm": "Remover todos os outros fatores para {{username}}? Podem entrar com a sua senha ou SSO e inscrever-se novamente.", + "secondFactorsResetSuccess": "Segundo fator redefinido", + "secondFactorsResetFailed": "Falha ao repor os segundos fatores", + "passwordLoginForced": "O login por palavra-passe está desativado, mas nenhum outro método de login está ativado, pelo que permanece ativado por enquanto. Ninguém fica bloqueado.", + "sslNotRenewed": "Nada renova este certificado. Expira em {{date}}. Ative a renovação automática na secção Certificados ACME ou carregue um novo antes disso.", + "sslSelfSigned": "Certificado auto-assinado emitido pela Termix. Os navegadores exibirão um aviso sobre o mesmo.", + "sslRenewedBy": "Renovado automaticamente por {{plugin}}", + "sslIssuer": "Emitido por {{issuer}}", + "sslNames": "Capas {{names}}", + "sslManualTitle": "Faça o upload de um certificado", + "updateExternalAutoProvisionFailed": "Falha ao atualizar a configuração de criação automática." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protocolo", "domainLabel": "Domínio", "domainPlaceholder": "opcional", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Ligue-se a {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Nenhum dispositivo instalado consegue ligar-se a este tipo de host." }, "keybindings": { "title": "Atalhos de teclado", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Atribua teclas a ações no terminal e na aplicação ou altere os atalhos integrados.", "defaultsHeading": "Atalhos integrados", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Atalhos de aplicações", "fixed": { "splitRight": "Dividir à direita", "splitDown": "Dividir para baixo", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "Amplie o painel selecionado", + "navigatePane": "Mover entre painéis", "nextTab": "Separador seguinte", "previousTab": "Separador anterior", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "Ir para o separador", + "previousView": "Voltar à visualização anterior da barra lateral", + "fullscreen": "Alternar ecrã inteiro" }, "customHeading": "Atalhos personalizados", "addBinding": "Adicionar atalho", @@ -1566,9 +1566,9 @@ "actionNextTab": "Mudar para o separador seguinte", "actionPreviousTab": "Alternar para o separador anterior", "actionOpenCommandPalette": "Abrir pesquisa rápida", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Reconectar sessão atual", + "unavailableAction": "{{type}} (não disponível)", + "actionRequiredError": "Escolha primeiro uma ação" }, "userProfile": { "donateTitle": "Mantenha o Termix ativo", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Definições repostas para as predefinições.", "storageModeSwitch": "Armazenamento de Preferências", "sectionAccount": "Conta", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Este dispositivo apenas", + "desktopProfileDescription": "Este perfil reside neste dispositivo e inicia sessão automaticamente. Ligue-o a um servidor Termix para utilizar os mesmos hosts e definições em todos os dispositivos.", "sectionInterface": "Interface", "interfacePresetDesc": "O nível de detalhe exibido pelo Termix é impressionante. Todas as funcionalidades continuam disponíveis.", "preset_simple": "Simples", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Restaurar os separadores abertos ao iniciar sessão ou atualizar a página, mesmo a partir de outro dispositivo", "confirmTabClose": "Confirmar fecho de separador", "confirmTabCloseDesc": "Perguntar antes de fechar separadores do terminal", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Mostrar números de separador", + "showTabNumbersDesc": "Apresente um número em cada separador para ajudar a diferenciá-las.", "settingsAppRail": "Aplicativo Rail", "sidebarSettingsMoved": "As definições de visualização da barra lateral do host foram movidas para o painel Personalizar barra lateral, acessível através da barra de ferramentas Hosts.", "showHostTags": "Mostrar etiquetas de anfitrião", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Ligado em {{server}}", + "linkedProfileDescription": "Este dispositivo utiliza a sua conta no servidor e mantém uma cópia dos seus dados, pelo que continua a funcionar offline.", + "manageSync": "Gerir sincronização", + "setUpSync": "Ligação para um servidor", + "settingsTabsAndShortcuts": "Abas e Atalhos" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Veja as suas senhas e chaves.", + "consequence": "Consegue ler o segredo armazenado em qualquer host que consiga alcançar." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Execute comandos nos seus servidores", + "consequence": "Qualquer comando, em hosts aos quais o ligue, com o seu acesso." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Execute programas nesta máquina", + "consequence": "Os programas são executados no próprio servidor Termix, e não nos seus hosts." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Criar e alterar contas de utilizador", + "consequence": "Permite adicionar utilizadores e alterar as suas funções." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Identificar login", + "consequence": "É possível adicionar um método de login, um segundo fator de autenticação ou um tipo de login SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Gerir certificados", + "consequence": "Pode substituir o certificado que o Termix fornece via HTTPS e responder a verificações de domínio de autoridades certificadoras." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Aceda a dispositivos série e USB", + "consequence": "Pode abrir uma porta série física na máquina que executa o Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Criar e alterar hosts", + "consequence": "Permite adicionar hosts e editar os que já possui." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Ligue-se aos seus servidores.", + "consequence": "Não consegue ver as suas senhas ou chaves." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Guardar novas credenciais", + "consequence": "Pode adicionar palavras-passe e chaves às suas credenciais guardadas." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Aceder a internet", + "consequence": "Pode enviar solicitações para serviços externos." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Aceitar ligações", + "consequence": "Isto abre uma porta no servidor Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Enviar transmissões de rede", + "consequence": "Pode enviar pacotes para dispositivos na rede local, como um sinal Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Veja os nomes de utilizador e as funções.", + "consequence": "Nunca utilize hashes de palavras-passe, nunca ative a autenticação de dois fatores." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Acompanhe tudo o que acontece.", + "consequence": "Incluindo a atividade de outros utilizadores, não apenas a sua." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Enviar alertas", + "consequence": "Para si ou para outros utilizadores, e através dos canais que configuraram." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Receba todos os alertas", + "consequence": "Armazena e entrega os alertas enviados por todos os plugins, incluindo o seu conteúdo." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Leia o registo de auditoria", + "consequence": "É possível ver quem fez o quê e quando." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Abrir janelas da área de trabalho", + "consequence": "Apenas na aplicação Termix para desktop." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Aja como os outros utilizadores", + "consequence": "Executa tarefas em segundo plano com o acesso de outro utilizador, como por exemplo trabalhos agendados. Cada utilização é registada no registo de auditoria." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Leia as tabelas principais de contas.", + "consequence": "É possível consultar utilizadores, funções e hosts diretamente a partir da base de dados." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Consulte a sua lista de anfitriões.", + "consequence": "Os nomes e endereços dos anfitriões já estão visíveis." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Armazena os seus próprios dados", + "consequence": "Mantido em tabelas próprias, separadas de outros plugins." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Lembre-se das pequenas configurações", + "consequence": "Mantido separado dos restantes plugins." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Armazena os seus próprios ficheiros", + "consequence": "Na sua própria pasta no disco, separada dos outros plugins." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Guarda os seus próprios segredos", + "consequence": "Encriptado pelo Termix. O plugin nunca detém a chave." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Leia as configurações do Termix", + "consequence": "Configurações do servidor, não os seus hosts ou credenciais." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Veja os recursos instalados", + "consequence": "Consegue ver quais os recursos que estão instalados e em execução." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Adicione as suas próprias telas", + "consequence": "Separadores, painéis e definições que pode ocultar posteriormente." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} não está disponível", + "needsUnknownPlugin": "Esta funcionalidade não está disponível.", + "disabledHint": "Está desativado neste servidor.", + "missingHint": "A funcionalidade de onde isto se originou foi removida.", + "failed": "{{name}} não conseguiu iniciar", + "failedHint": "Um administrador pode verificar os registos do servidor para obter detalhes.", + "loading": "Carregando {{name}}", + "crashed": "Algo correu mal em {{name}}", + "retry": "Tente novamente" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Conjunto", + "secretNotSet": "Não definido", "secretReplace": "Substituir", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Configurações guardadas", + "pluginSettingsInvalid": "Algumas definições não puderam ser guardadas. Verifique os campos destacados.", + "pluginSettingsSaveFailed": "Falha ao guardar as configurações", + "pluginSettingsLoadFailed": "Falha ao carregar as definições", + "featureUnavailable": "{{name}} não se encontra disponível de momento. Estas definições foram guardadas, mas não terão efeito." }, "managerCard": { "refresh": "Atualizar", @@ -1913,169 +1913,169 @@ "filter": "Filtrar..." }, "sync": { - "server": "Termix server", + "server": "Servidor Termix", "account": "Conta", "status": "Estado", "never": "nunca", "justNow": "agora mesmo", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} há minuto", + "minutesAgo_other": "{{count}} Há minutos", + "hoursAgo_one": "{{count}} há hora", + "hoursAgo_other": "{{count}} horas atrás", + "actionFailed": "Isso não funcionou. Tente novamente.", + "unlinkedTitle": "Este dispositivo apenas", + "unlinkedBody": "O Termix funciona de forma independente neste dispositivo. Ligue-o ao seu servidor Termix para manter tudo sincronizado.", + "unlinkedPointHosts": "Os seus hosts, credenciais, pedaços de código e definições acompanham-no em todos os dispositivos.", + "unlinkedPointOffline": "Tudo continua a funcionar mesmo quando o servidor está inacessível, e o sistema recupera posteriormente.", + "unlinkedPointAccount": "Faz login com a sua conta de servidor, e os hosts que as pessoas partilharam consigo também aparecem aqui.", + "linkButton": "Ligação para um servidor", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Sincronizando", + "offline": "Servidor inacessível", + "error": "Sincronização interrompida", + "signedOut": "Saída", + "synced": "Sincronizado {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} alterar aguardando sincronização", + "pending_other": "{{count}} alterações a aguardar sincronização", + "signInAgain": "Faça login novamente", + "syncNow": "Sincronizar agora", + "unlink": "Desvincular", + "unlinked": "Este dispositivo já não está conectado.", + "unlinkTitle": "Desvincular este dispositivo?", + "unlinkDescription": "A sincronização é interrompida e a ligação ao servidor é terminada. Os hosts partilhados consigo por outros utilizadores são removidos deste dispositivo de qualquer forma.", + "unlinkKeepTitle": "Guarde aqui os meus dados.", + "unlinkKeepBody": "Os seus hosts, credenciais e definições permanecem neste dispositivo e continuam a funcionar automaticamente.", + "unlinkRemoveTitle": "Remover dados sincronizados", + "unlinkRemoveBody": "Tudo o que veio do servidor foi removido deste dispositivo. Apenas os hosts mantidos neste dispositivo permanecem.", + "conflictsTitle": "Conflitos", + "conflictsDescription": "Estas alterações foram feitas aqui e no servidor em simultâneo. A versão do servidor está em utilização. Guarde a sua para a enviar para o servidor.", + "keepMine": "Fique com o meu.", + "keepServer": "Manter servidor", + "errorsTitle": "Não sincronizado", + "errorsDescription": "O servidor não aceitou estas alterações. Permanecem neste dispositivo.", + "errorPermission": "A sua conta no servidor não tem permissão para fazer esta alteração.", + "retry": "Tente novamente", + "whatSyncs": "O que sincroniza", + "whatSyncsDescription": "Desative tudo o que pretende manter apenas neste dispositivo.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "O servidor não possui isso.", + "notOnDevice": "Ainda não está disponível neste dispositivo.", + "localOnlyHint": "Também pode manter hosts ou pastas individuais neste dispositivo a partir das suas definições.", + "originTitle": "Onde as ligações começam", + "originDescription": "Ligue-se aos hosts a partir deste dispositivo ou através do servidor. Pode alterar isto para cada host individualmente.", + "originLocal": "Este dispositivo", + "originRemote": "O servidor", "entities": { "hosts": "Anfitriões", "sshCredentials": "Credenciais", "sshFolders": "Pastas", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Preferências", + "pluginUserSettings": "Configurações de recursos", + "sharedHosts": "Os anfitriões partilharam convosco", + "sharedCredentials": "Credenciais partilhadas consigo", + "vaultProfiles": "Perfis do Vault", + "snippetFolders": "Pastas de excertos", "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "Links de serviço", + "homepageItems": "Itens da página inicial", + "networkTopology": "Mapa da rede", + "workspaces": "Espaços de trabalho" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Proxy reverso", + "description": "Só é necessário quando algo como o Cloudflare Access ou uma página de login está em frente ao seu servidor.", + "headersTitle": "Cabeçalhos adicionais", + "headersHint": "Enviado com cada pedido ao servidor, por exemplo, um token de serviço de acesso Cloudflare.", + "headerName": "Nome do cabeçalho", + "headerValue": "Valor", + "savedValue": "Salvo, digite para alterar", + "addHeader": "Adicionar cabeçalho", + "removeHeader": "Remover cabeçalho", + "basicAuthTitle": "Nome de utilizador e palavra-passe", + "basicAuthHint": "Para um proxy que solicita o nome de utilizador e a palavra-passe antes do Termix.", "username": "Nome de utilizador", "password": "Palavra-passe", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Confie num certificado autoassinado.", + "allowInvalidCertificateHint": "Apenas para o seu próprio servidor, quando o certificado não é de uma autoridade reconhecida.", "saved": "Guardado" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Isto não parece ser um endereço web.", + "unreachable": "Não foi possível ligar ao servidor. Verifique o endereço e se o servidor está em execução.", + "unreachableWithReason": "Não foi possível ligar ao servidor: {{reason}}", + "tlsUntrusted": "O certificado do servidor não é fidedigno. Se este for o seu próprio servidor com um certificado auto-assinado, ative a opção abaixo.", + "basicAuthRequired": "Uma janela em frente do servidor solicitará um nome de utilizador e uma palavra-passe. Introduza-os abaixo.", + "proxyLogin": "Uma página de login ou proxy respondeu em vez do Termix. Adicione os cabeçalhos necessários abaixo ou verifique o endereço.", + "notTermix": "Não existe nenhum servidor Termix nesse endereço. Se estiver a ser executado num caminho específico, inclua-o, como https://exemplo.com/termix.", + "versionMismatch": "Esse servidor está a executar uma versão antiga do Termix. Atualize-o para a versão 2.9 ou mais recente para que a ligação seja estabelecida.", + "differentAccount": "Fez login numa conta diferente. Faça login na conta à qual este dispositivo está ligado ou desvincule-o primeiro." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Ligação para um servidor Termix", + "reloginTitle": "Faça login novamente", + "savedServers": "Servidores recentes", + "removeServer": "Remover da lista", + "serverDescription": "Introduza o endereço que utiliza para abrir o Termix no seu browser.", + "signinDescription": "Faça login em {{url}}", + "chooseDescription": "Este dispositivo já possui dados. O que lhes deve acontecer?", + "finishingDescription": "Ligando este dispositivo.", + "serverUrl": "Endereço do servidor", + "serverUrlHint": "Por exemplo, https://termix.exemplo.com", + "showProxySettings": "Configurações de proxy reverso", + "hideProxySettings": "Ocultar as definições de proxy reverso", "continue": "Continuar", "back": "Voltar", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "Adicionar à minha conta", + "mergeBody": "Os itens {{count}} neste dispositivo são adicionados à sua conta. Os itens que a sua conta já tem permanecem como estão no servidor.", + "replaceTitle": "Substitua isso pela minha conta.", + "replaceBody": "Os itens {{count}} deste dispositivo serão removidos e este dispositivo removerá tudo da sua conta. Apenas os hosts mantidos neste dispositivo permanecerão.", + "link": "Ligação", + "linking": "Ligar e executar a primeira sincronização...", + "linked": "Conectado. Os seus dados estão a ser sincronizados.", + "signedInAgain": "Login efetuado. A sincronização está novamente em curso." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Pasta {{name}}", + "user": "Os meus padrões", + "admin": "Servidor", + "builtin": "Embutido" }, "custom": "Personalizado", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "Defina aqui", + "notSet": "Não definido", + "notSetTitle": "Não existe um valor padrão definido para isso.", + "resetTitle": "Este host define o seu próprio valor. Clique para utilizar novamente o valor predefinido de {{source}}.", + "clearTitle": "Defina neste nível. Clique para limpar e utilize {{source}} em vez disso.", + "inheritedTitle": "Segue o padrão de {{source}}", + "titleAdmin": "Configurações padrão do host do servidor", + "titleUser": "As minhas configurações padrão do host", + "titleFolder": "Definições padrão da pasta: {{name}}", + "descriptionAdmin": "Configurações padrão para todos os hosts neste servidor. As definições padrão de um utilizador, de uma pasta ou do próprio host podem ainda definir um valor diferente. Altere um campo para o definir aqui ou limpe-o para o deixar indefinido.", + "descriptionUser": "Definições padrão para todos os seus hosts, com exceção das definições do servidor. Uma pasta ou o próprio host podem ainda definir um valor diferente. Altere um campo para o definir aqui ou limpe-o para o deixar indefinido.", + "descriptionFolder": "Definições padrão para os hosts nesta pasta e as suas subpastas, em vez das suas próprias. Um host pode ainda definir um valor diferente. Altere um campo para o definir aqui ou limpe-o para o deixar indefinido.", + "save": "Guardar valores padrão", + "saved_one": "Configurações padrão guardadas. O host {{count}} foi atualizado.", + "saved_other": "Configurações padrão guardadas. {{count}} os hosts foram atualizados.", + "savedInBackground": "Configurações padrão guardadas. Os hosts estão a ser atualizados em segundo plano.", + "appliedToHosts_one": "{{count}} O host foi atualizado com os novos padrões.", + "appliedToHosts_other": "{{count}} Os hosts foram atualizados com os novos padrões.", + "saveFailed": "Não foi possível guardar as definições padrão.", + "loadFailed": "Não foi possível carregar os valores por defeito.", + "confirmTitle": "Guardar as configurações padrão?", + "confirmChanges_one": "{{count}} O host segue estes padrões e será alterado.", + "confirmChanges_other": "{{count}} Os hosts seguem estes padrões e serão alterados.", + "confirmNoChanges": "Não foi feita qualquer alteração nos hosts existentes. Os novos hosts iniciarão com estas configurações padrão.", + "menuMyDefaults": "As minhas configurações padrão do host", + "folderDefaultsAction": "Padrões de pasta", + "adminSectionDescription": "Defina os valores padrão que todos os hosts deste servidor seguem, para cada configuração que um host tem, incluindo as de cada recurso. Os utilizadores e as pastas podem definir os seus próprios valores, e qualquer host pode ainda utilizar o seu próprio valor.", + "editServerDefaults": "Editar as definições padrão do servidor", "resetMenu": "Redefinir", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Tudo de acordo com as configurações padrão.", + "resetCore": "Ligação e SSH para as definições padrão", + "resetDone_one": "{{count}} O host segue agora os seus padrões.", + "resetDone_other": "{{count}} Os hosts seguem agora os seus padrões." } } diff --git a/src/ui/locales/translated/ru_RU.json b/src/ui/locales/translated/ru_RU.json index 175166ecf..b6afe721a 100644 --- a/src/ui/locales/translated/ru_RU.json +++ b/src/ui/locales/translated/ru_RU.json @@ -55,7 +55,7 @@ "levelManage": "Управлять", "levelUseDesc": "Применение: прикрепите учетные данные к хостам и подключитесь. Сам секретный ключ останется скрытым.", "levelManageDesc": "Управление: также можно редактировать учетные данные и делиться ими с другими.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Эти учетные данные еще не были предоставлены.", "accessRevoked": "Доступ отозван", "shared": "Учетные данные были переданы." }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Разблокируйте перетаскивание для изменения порядка." }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Доступно обновление. Откройте примечания к выпуску на GitHub." }, "common": { "close": "Закрыть", "minimize": "Свернуть", "online": "В сети", "offline": "Не в сети", - "signInFailed": "Sign in failed", + "signInFailed": "Не удалось войти в систему.", "unknown": "Неизвестно", "continue": "Продолжить", "maintenance": "Обслуживание", @@ -187,7 +187,7 @@ "remove": "Удалить", "add": "Добавить", "update": "Обновить", - "noResults": "No results found" + "noResults": "Результаты не найдены" }, "onboarding": { "stepCounter": "Шаг {{current}} из {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Палитра команд", "workflow_palette_desc": "Чтобы перейти к любому серверу или действию, введите текст. Дважды нажмите Shift, чтобы открыть его.", "workflow_split": "Разделенный экран", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Отображайте несколько вкладок рядом, например, чтобы отслеживать журналы во время работы.", "workflow_dock": "Боковая панель", "workflow_dock_desc": "Чтобы открыть значок боковой панели в виде вкладки или закрепить его справа, щелкните по нему средней или правой кнопкой мыши.", "securityTitle": "Обеспечение безопасности ваших учетных данных", @@ -248,13 +248,13 @@ "done_cli": "Инструмент командной строки", "done_cli_desc": "Управляйте своими серверами из терминала и используйте Termix в своих собственных скриптах.", "done_cli_link": "Откройте документацию по командной строке.", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Как вы хотите использовать Termix?", + "desktopBody": "Вы можете изменить это в любое время в разделе «Синхронизация» на боковой панели.", + "desktopLocalTitle": "Только на этом устройстве", + "desktopLocalBody": "Здесь всё хранится. Ничего настраивать не нужно.", + "desktopLinkTitle": "С моим сервером Termix", + "desktopLinkBody": "Войдите на свой сервер, чтобы использовать одни и те же хосты и настройки на всех устройствах.", + "desktopLinked": "Ссылка на {{server}}" }, "nav": { "home": "Главная", @@ -295,21 +295,21 @@ "collapseSideMenu": "Свернуть меню", "roleAdministrator": "Администратор", "roleUser": "Пользователь", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Синхронизация", + "reconnectDisconnectedTerminals": "Подключите обратно все отсоединенные клеммы.", + "reconnectingTerminals_one": "Переподключение терминала {{count}}", + "reconnectingTerminals_other": "Переподключение {{count}} терминалов", + "noDisconnectedTerminals": "Отключенные клеммы не готовы к повторному подключению.", + "reconnectTerminalsFailed_one": "Не удалось начать переподключение терминала {{count}}", + "reconnectTerminalsFailed_other": "Не удалось начать переподключение {{count}} терминалов", + "fullscreenUnsupported": "Полноэкранный режим не поддерживается этим браузером.", + "fullscreenFailed": "Не удалось переключиться в полноэкранный режим.", + "resetSidebarWidth": "Сбросить ширину", + "collapseSidebar": "Свернуть боковую панель", + "openSidebar": "Открыть боковую панель", + "confirmCloseHost": "Закрыть {{host}}?", + "enterFullscreen": "Перейти в полноэкранный режим (Ctrl+Shift+F)", + "exitFullscreen": "Выйти из полноэкранного режима (Ctrl+Shift+F)" }, "hosts": { "hosts": "Хосты", @@ -353,7 +353,7 @@ "serverStats": "Метрики хоста", "status": { "available": "Доступный", - "reachable": "Up, but the last sign in failed", + "reachable": "Вход выполнен, но последняя попытка входа не удалась.", "offline": "Офлайн", "monitoringDisabled": "Мониторинг отключен", "label": "Статус" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Принудительно Keyboard-Interactive", "overrideCredentialUsername": "Переопределить имя пользователя учётных данных", "overrideCredentialUsernameDesc": "Использовать указанное выше имя пользователя вместо имени из учётных данных", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Используйте $external.username, чтобы указать имя, под которым вы вошли в систему через SSO или LDAP.", "jumpHostChain": "Цепочка Jump Host", "portKnocking": "Port Knocking", "addKnock": "Добавить порт", @@ -626,14 +626,14 @@ "actionsClick": "Нажмите, чтобы развернуть/свернуть", "openOnDoubleClick": "Открывается двойным щелчком", "openOnDoubleClickDesc": "Для открытия сессии хоста теперь требуется двойной щелчок вместо одного.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Показать пути к папкам", + "showFolderPathsDesc": "Отображайте путь к родительской папке над именами вложенных подпапок. Подпапки сохраняют отступ в любом случае.", + "hostClickBehavior": "Нажатие на хоста", + "hostClickBehaviorDesc": "Что происходит, когда вы щелкаете по уже открытой вкладке на хосте? Щелчок с помощью Ctrl/Cmd, щелчок средней кнопкой мыши или кнопка «Открыть в новой вкладке» всегда открывают новую вкладку.", + "hostClickNewTab": "Всегда открывайте новую вкладку", + "hostClickFocusExisting": "Перейдите на открытую вкладку", + "hostClickFocusExistingDoubleNew": "Нажмите, чтобы переключиться, дважды щелкните для открытия новой вкладки.", + "openInNewTab": "Открыть в новой вкладке", "deletedHost": "Удалён {{name}}", "copiedToClipboard": "Скопировано в буфер обмена", "remoteDesktopUrlCopied": "Скопирован URL удаленного рабочего стола", @@ -698,7 +698,7 @@ "groupCredentials": "Реквизиты для входа", "groupNotes": "Примечания", "groupTags": "Теги и значок", - "groupProxy": "Proxy", + "groupProxy": "Прокси", "groupJumpHosts": "Переключение хостов", "groupFeatureFlags": "Флаги функций", "groupAdvanced": "Расширенные настройки", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Каждой конечной точке требуется своё имя.", "webUiErrorPortRange": "Конечная точка {{row}} требует порт от 1 до 65535.", "webUiErrorPathInvalid": "Конечная точка {{row}} имеет недопустимый путь. Используйте путь, например, /admin.", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "Скопировать ссылку {{name}}", "filterAuthAgent": "SSH-агент", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "Этот хост использует {{type}}, для которого требуется {{plugin}}. На этом сервере эта функция отключена.", + "authTypeUnknown": "Этот хост использует {{type}}, который недоступен на этом сервере.", + "authFieldsAfterSave": "Сначала сохраните хост, а затем заполните эти поля.", + "enablePluginFeature": "Включить {{name}}", + "disablePluginFeature": "Отключить {{name}}", "filterFeaturesGroup": "Функции", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Хранить только на этом устройстве.", + "localOnlyDesc": "Данный хост не отправляется на сервер и не отображается на других ваших устройствах.", + "folderLocalOnly": "Хранить только на этом устройстве.", + "folderLocalOnlyDesc": "Эта папка и все содержащиеся в ней файлы остаются на этом устройстве и не отправляются на сервер.", + "sudoPasswordDesc": "Используется, когда терминал заполняет приглашение sudo, а также функциями, которые выполняют команды с помощью sudo.", "editorCancel": "Отмена", "editorSaving": "Сохранение…", "editorUpdate": "Обновить хост", "editorAdd": "Добавить хост", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Поиск хостов. Используйте клавиши со стрелками для выбора, Enter для подключения, Esc для закрытия.", + "speedSearchList": "Список хостов. Введите или нажмите / для поиска.", + "importNoHosts": "В файле не найдено хостов", + "importTooMany": "Вы можете импортировать до {{max}} хостов одновременно.", + "importSummary": "Импорт завершен: {{imported}} импортирован, {{updated}} обновлен, {{failed}} не удалось", + "importHostsFailed": "Не удалось импортировать хосты." }, "commandPalette": { "searchPlaceholder": "Поиск хостов, команд или настроек...", @@ -898,57 +898,57 @@ "select": "Выбрать", "toggleWith": "Переключить с помощью", "pluginActions": "Дополнительные действия", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "Вкладка терминала не открыта" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "Разделенный экран", + "defaultLabel": "Разделить {{number}}", "splitRight": "Разделить вправо", "splitDown": "Разделить вниз", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "Добавить в {{split}}", + "paneEmptyItem": "Панель {{index}}: пустая", + "paneItem": "Панель {{index}}: {{label}}", "paneNumber": "Панель {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "Новая панель справа", + "newPaneBelow": "Новая панель ниже", + "emptyTitle": "Пустая панель", + "emptyHint": "Выберите что-нибудь для отображения здесь. Пока эта панель выбрана, все, что вы открываете из боковой панели, также открывается здесь.", + "openTabs": "Открыть вкладки", + "noOpenTabs": "Другие вкладки не открыты.", "hosts": "Хосты", "searchHosts": "Поиск хостов", - "noHosts": "No hosts match", + "noHosts": "Матч хозяев не состоялся.", "newSession": "Создать", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "Закрыть панель", + "closeSession": "Закрытие сессии", + "moveToTab": "Переместить в отдельную вкладку", + "swapWith": "Поменяться местами с", + "showHere": "Показать в этой панели", + "clearPane": "Очистите эту панель", + "zoom": "Панель масштабирования", + "unzoom": "Восстановить макет", + "unsplit": "Неразделенный", + "layouts": "Макеты", + "applyLayout": "Изменить макет", + "newSplit": "Новый раскол", + "maxPanes": "Разделение может вместить до {{count}} панелей", + "dropSplit": "Сбросить для разделения", + "dropHere": "Перетащите ползунок, чтобы показать здесь", + "paneActions": "Действия на панели", + "dividerHint": "Перетащите для изменения размера. Дважды щелкните, чтобы выровнять.", + "openInSplit": "Открыть в разделенном", + "openInNewSplit": "Новое разделение с текущей вкладкой", + "shortcuts": "Ярлыки", + "shortcutNavigate": "Перемещение между панелями", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Два рядом", + "rows2": "Два сложенных друг на друга", + "columns3": "Три рядом", + "mainLeft3": "Один налево, два направо", + "mainBottom3": "Два верха, один низ", + "grid4": "Сетка из четырех", + "grid5": "Три над двумя", + "grid6": "Сетка из шести" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Требуется аутентификация", "mfaPushRequired": "Требуется push-аутентификация", "mfaMenuPlaceholder": "Введите свой ответ", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Напишите код или \"отправьте его\"", "mfaWaitingApproval": "Ожидание подтверждения на вашем устройстве...", "mfaSendRequest": "Отправить запрос", "browserSignInCode": "Ключ безопасности", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "URL для входа", "browserSignInOpen": "Открыть в браузере", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "Я завершил вход в систему.", + "browserSignInRequired": "{{provider}} Требуется вход в систему", "connectionLogTitle": "Журнал подключения", "connectionLogCopy": "Копировать журналы в буфер обмена", "connectionLogEmpty": "Журналы подключения пока отсутствуют", @@ -1032,7 +1032,7 @@ "external": "Внешний", "loginWithExternal": "Войти через внешнего провайдера", "loginWithExternalDesc": "Войти, используя настроенного внешнего провайдера идентификации", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "В настольном приложении пока не поддерживается вход через сторонние сервисы. Пожалуйста, используйте веб-версию.", "loginWithProvider": "Войти через {{name}}", "orContinueWith": "или продолжить с", "resetPasswordButton": "Сбросить пароль", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "Осталось попыток: {{count}}", "confirmResetDataWipe": "Эта учетная запись не входила с момента обновления шифрования, поэтому ее сохраненные данные не могут быть восстановлены без старого пароля. Сброс навсегда удалит ее хосты, учетные данные и сниппеты. Продолжить?", "password": "Пароль", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Для сброса второго фактора аутентификации в вашем аккаунте в данный момент недоступен. Обратитесь к администратору.", + "secondFactorNoUI": "Этот второй фактор не отображается на данном экране. Свяжитесь с администратором.", + "serverAuthentication": "Вход на сервер", + "minChars": "мин. {{min}} символов" }, "hostKey": { "verifyNewHost": "Проверить SSH-ключ хоста", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Не удалось проверить код сброса", "failedCompleteReset": "Не удалось завершить сброс пароля", "invalidTotpCode": "Неверный TOTP-код", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Не удалось запустить внешний вход в систему.", + "silentSigninOidcUnavailable": "Был запрошен бесшумный вход в систему, но внешний вход не настроен.", "failedUserInfo": "Не удалось получить информацию о пользователе после входа", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Внешняя авторизация не удалась", "invalidAuthUrl": "Получен некорректный URL авторизации от серверной части", "requiredField": "Обязательное поле", "minLength": "Минимальная длина: {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Не удалось сохранить токен аутентификации", "authTokenMissing": "Сервер не вернул новый токен аутентификации. Пожалуйста, войдите в систему снова.", "failedToLoadServer": "Не удалось загрузить сервер", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Срок действия сессии истек. Пожалуйста, войдите снова." }, "messages": { "registrationDisabled": "Регистрация новых учетных записей отключена администратором. Войдите в систему или обратитесь к администратору.", @@ -1163,7 +1163,7 @@ "panelMain": "Главная", "panelSide": "Боковая", "justNow": "только что", - "activityFileManager": "File manager" + "activityFileManager": "Файловый менеджер" }, "donation": { "title": "Нравится Termix?", @@ -1188,12 +1188,12 @@ "add": "Добавить:", "commandPalette": "Командная палитра", "done": "Готово", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Перетаскивайте карточки, чтобы изменить их порядок. Перетаскивайте разделитель столбцов, чтобы изменить размер столбцов. Перетаскивайте нижний край карточки, чтобы изменить ее высоту. Используйте кнопку корзины, чтобы удалить карточку.", "empty": "Пусто", "clear": "Очистить", "viewServerDetails": "Просмотреть сведения о сервере", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Перетащите столбцы, чтобы изменить их размер.", + "hostsAvailable": "Доступные хозяева" }, "admin": { "sectionGeneral": "Общие", @@ -1203,7 +1203,7 @@ "sectionDatabase": "База данных", "sectionApiKeys": "API-ключи", "sectionAuditLog": "Журнал аудита", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "Сертификат HTTPS", "sectionBranding": "Белая этикетка", "brandingAppName": "Название приложения", "brandingAppNameDesc": "Отображается на экране входа в систему и на вкладке браузера. Оставьте поле пустым, чтобы использовать \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Недопустимое изображение. Используйте файл PNG, JPEG или WEBP размером до 750 КБ.", "brandingSaved": "Сохранены настройки брендинга", "brandingSaveFailed": "Не удалось сохранить настройки брендинга.", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Сертификат Termix предоставляется по протоколу HTTPS. Загрузите свой собственный здесь или получите и продлите сертификат от Let's Encrypt в разделе «Сертификаты ACME».", "sslDocsLink": "Документация SSL", "sslCertStatus": "Статус сертификата", "sslCertStatusNone": "Сертификат отсутствует", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Позволяет новым пользователям регистрироваться, указывая имя пользователя и пароль", "allowPasswordLogin": "Разрешить вход по паролю", "allowPasswordLoginDesc": "Вход по имени пользователя и паролю", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Автоматическое создание внешних учетных записей", + "oidcAutoProvisionDesc": "При первом входе пользователя через внешний источник авторизации, такой как SSO или LDAP, учетная запись создается, даже если регистрация отключена.", + "secondFactorAfterExternalLogin": "После авторизации через внешние сервисы (SSO, GitHub, Google, LDAP) может потребоваться дополнительная авторизация.", + "secondFactorAfterExternalLoginDesc": "Если отключено, зарегистрированный второй фактор аутентификации запрашивается только после ввода пароля и других локальных учетных записей, как и раньше. Если включено, он запрашивается после каждого метода входа в систему, включая SSO и LDAP.", "allowPasswordReset": "Разрешить сброс пароля", "allowPasswordResetDesc": "Код сброса в логах Docker", "auditForwardingTitle": "Переслать в SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Не удалось сохранить настройки пересылки аудита.", "sessionTimeout": "Тайм-аут сессии", "hours": "часов", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Мин. 1 ч, макс. 720 ч", "monitoringDefaults": "Мониторинг по умолчанию", "statusCheck": "Проверка состояния", "sec": "сек", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Статус администратора", "editUserUserId": "ID пользователя", "linkAccountTitle": "Связать аккаунты", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Объединить внешний аккаунт {{username}} с существующим локальным аккаунтом.", + "linkAccountDescLocal": "Свяжите локальную учетную запись {{username}} с существующей учетной записью, доступной только извне.", "linkAccountWarningTitle": "Будет выполнено:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Удалите учетную запись, доступную только извне.", + "linkAccountEffect2": "Добавьте внешний вход в целевую учетную запись.", + "linkAccountEffect3": "Разрешите вход как извне, так и по паролю.", "linkAccountTargetUsername": "Имя пользователя локального аккаунта", "linkAccountTargetPlaceholder": "Введите имя пользователя локального аккаунта для связывания", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Имя пользователя внешней учетной записи", + "linkAccountOidcPlaceholder": "Введите имя пользователя внешней учетной записи для объединения.", + "linkAccountOidcNotFound": "Внешняя учетная запись с таким именем пользователя не найдена.", "linkAccounts": "Связать аккаунты", "linkAccountSuccess": "Аккаунты успешно связаны", "linkAccountFailed": "Не удалось связать аккаунты", "linkAccountInProgress": "Связывание...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Отключить внешний вход", + "unlinkAccountDesc": "Удалите возможность входа извне для {{username}}. Теперь они смогут войти только с помощью своего пароля.", + "unlinkAccountWarning": "Это отключит внешний вход в эту учетную запись. Для продолжения входа в систему пользователю необходимо установить пароль.", + "unlinkAccount": "Отключить внешний вход", "unlinkAccountInProgress": "Отвязывание...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Внешний вход в систему не привязан.", + "unlinkAccountFailed": "Не удалось отвязать внешний вход в систему.", "saving": "Сохранение...", "updateRegistrationFailed": "Не удалось обновить настройки регистрации", "updatePasswordLoginFailed": "Не удалось обновить настройки входа по паролю", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Не удалось обновить настройку автоматического создания.", + "updateSecondFactorAfterExternalLoginFailed": "Не удалось обновить настройки второго фактора.", "updatePasswordResetFailed": "Не удалось обновить настройки сброса пароля", "sessionTimeoutRange2": "Тайм-аут сеанса должен быть от 1 до 720 часов", "sessionTimeoutSaved": "Таймаут сессии сохранён", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Нет активных сессий", "deleteSuccessorLabel": "Передайте хосты и учетные данные", "deleteSuccessorMe": "Я (администратор, удаляющий файл)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Никто, удалите их.", "deleteSuccessorDesc": "Все, чем поделился этот пользователь, продолжает работать и у нового владельца; выбор варианта «никто» удаляет его хосты, учетные данные и общие ресурсы.", "deleteUserDangerDesc": "Безвозвратно удалить {{username}} и все его данные (хосты, учётные данные, сниппеты, историю). Это действие нельзя отменить.", "deleteUserConfirm": "Безвозвратно удалить {{username}} и все его данные?", @@ -1477,31 +1477,31 @@ "saveError": "Не удалось сохранить разрешения роли", "save": "Сохранить", "saving": "Сохранение…", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Функция отключена", "groups": { "hosts": "Хосты", "credentials": "Учётные данные", - "admin": "Administration" + "admin": "Администрация" } }, "notificationPrivateEndpoints": "Разрешены частные хосты для уведомлений", "notificationPrivateEndpointsDesc": "Точные частные хосты, с которыми могут связываться каналы уведомлений. Разделяйте их запятыми.", "updateNotificationEndpointsFailed": "Не удалось обновить список разрешенных конечных точек уведомлений.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Вторые факторы", + "secondFactorsNone": "Вторичные факторы не были учтены.", + "secondFactorUnavailable": "Недоступно", + "resetSecondFactors": "Сбросить вторые факторы", + "resetSecondFactorsConfirm": "Удалите каждый второй фактор для {{username}}? Они могут войти в систему, используя свой пароль или SSO, и зарегистрироваться снова.", + "secondFactorsResetSuccess": "Вторые факторы сброса", + "secondFactorsResetFailed": "Не удалось сбросить вторые факторы", + "passwordLoginForced": "Вход по паролю отключен, но другие способы входа не включены, поэтому пока он остается включенным. Никто не будет заблокирован.", + "sslNotRenewed": "Этот сертификат не обновляется автоматически. Срок его действия истекает {{date}}. Включите автоматическое обновление в разделе «Сертификаты ACME» или загрузите новый сертификат раньше указанного срока.", + "sslSelfSigned": "Самоподписанный сертификат, созданный компанией Termix. Браузеры выдадут предупреждение об этом.", + "sslRenewedBy": "Автоматическое продление {{plugin}}", + "sslIssuer": "Выпущено {{issuer}}", + "sslNames": "Обложки {{names}}", + "sslManualTitle": "Загрузите сертификат", + "updateExternalAutoProvisionFailed": "Не удалось обновить настройку автоматического создания." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Протокол", "domainLabel": "Домен", "domainPlaceholder": "необязательный", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Подключиться к {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Ни одно установленное приложение не может подключиться к этому типу хоста." }, "keybindings": { "title": "Клавиатурные сочетания", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Назначьте клавиши для действий в терминале и приложении или измените встроенные сочетания клавиш.", "defaultsHeading": "Встроенные сочетания клавиш", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Ярлыки приложений", "fixed": { "splitRight": "Разделить вправо", "splitDown": "Разделить вниз", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "Увеличьте масштаб выделенной области", + "navigatePane": "Перемещение между панелями", "nextTab": "Следующая вкладка", "previousTab": "Предыдущая вкладка", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "Перейти на вкладку", + "previousView": "Вернуться к предыдущему виду боковой панели", + "fullscreen": "Переключить полноэкранный режим" }, "customHeading": "Пользовательские сочетания клавиш", "addBinding": "Добавить ярлык", @@ -1566,9 +1566,9 @@ "actionNextTab": "Перейти к следующей вкладке", "actionPreviousTab": "Перейти на предыдущую вкладку", "actionOpenCommandPalette": "Открыть быстрый поиск", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Восстановить текущую сессию", + "unavailableAction": "{{type}} (недоступно)", + "actionRequiredError": "Сначала выберите действие." }, "userProfile": { "donateTitle": "Поддержите Termix", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Настройки сброшены до значений по умолчанию.", "storageModeSwitch": "Хранилище настроек", "sectionAccount": "Учетная запись", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Это устройство только", + "desktopProfileDescription": "Этот профиль находится на данном устройстве и выполняет вход в систему автоматически. Подключите его к серверу Termix, чтобы использовать одни и те же хосты и настройки на всех устройствах.", "sectionInterface": "Интерфейс", "interfacePresetDesc": "Termix демонстрирует невероятную детализацию. Все функции остаются доступными.", "preset_simple": "Простой", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Восстанавливать открытые вкладки при входе или обновлении страницы, в том числе с другого устройства", "confirmTabClose": "Подтверждение закрытия вкладки", "confirmTabCloseDesc": "Запрашивать подтверждение перед закрытием вкладок терминала", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Показать номера вкладок", + "showTabNumbersDesc": "На каждой вкладке должен быть номер, чтобы их было легче различать.", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "Настройки отображения боковой панели «Хозяева» перемещены в панель «Настройка боковой панели», которая открывается с панели инструментов «Хозяева».", "showHostTags": "Показывать теги хостов", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Вошёл в систему {{server}}", + "linkedProfileDescription": "Это устройство использует вашу учетную запись на сервере и хранит копию ваших данных, поэтому оно продолжает работать в автономном режиме.", + "manageSync": "Управление синхронизацией", + "setUpSync": "Ссылка на сервер", + "settingsTabsAndShortcuts": "Вкладки и сочетания клавиш" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Проверьте свои пароли и ключи.", + "consequence": "Она может прочитать сохраненный секретный ключ для любого доступного вам хоста." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Выполняйте команды на ваших серверах.", + "consequence": "Любая команда на хостах, к которым вы подключаетесь, с вашими правами доступа." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Запуск программ на этом компьютере", + "consequence": "Программы запускаются непосредственно на сервере Termix, а не на вашем хосте." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Создание и изменение учетных записей пользователей", + "consequence": "Она позволяет добавлять пользователей и изменять их роли." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Обработка входа в систему", + "consequence": "Можно добавить способ входа в систему, второй фактор авторизации или тип входа по SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Управление сертификатами", + "consequence": "Он может заменить сертификат, предоставляемый Termix по протоколу HTTPS, и отвечать на проверки домена от центров сертификации." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Доступ к последовательным и USB-устройствам", + "consequence": "Это позволяет открыть физический последовательный порт на компьютере, на котором запущен Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Создание и изменение хостов", + "consequence": "С его помощью можно добавлять хосты и редактировать уже существующие." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Подключитесь к своим серверам", + "consequence": "Оно не может видеть ваши пароли или ключи." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Сохранить новые учетные данные", + "consequence": "Она позволяет добавлять пароли и ключи к сохраненным учетным данным." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Выйти в интернет", + "consequence": "Оно может отправлять запросы внешним сервисам." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Принимать соединения", + "consequence": "Это открывает порт на сервере Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Отправка сетевых широковещательных сообщений", + "consequence": "Оно может отправлять пакеты устройствам в локальной сети, например, сигнал Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "См. имена пользователей и роли.", + "consequence": "Никогда не используйте хэши паролей, никогда не указывайте состояние двухфакторной аутентификации." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Следите за всем происходящим", + "consequence": "Включая активность других пользователей, а не только вашу." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Отправлять оповещения", + "consequence": "Вам или другим пользователям, а также через созданные ими каналы." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Получайте все оповещения", + "consequence": "Сохраняет и доставляет оповещения, отправляемые всеми плагинами, включая их содержимое." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Прочитайте журнал аудита.", + "consequence": "С его помощью можно увидеть, кто что сделал и когда." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Открыть окна рабочего стола", + "consequence": "Только в настольном приложении Termix." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Действуйте от имени других пользователей.", + "consequence": "Запускает фоновые задачи с правами доступа другого пользователя, например, запланированные задания. Каждое использование записывается в журнал аудита." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Прочитайте основные таблицы счетов.", + "consequence": "Можно запрашивать пользователей, роли и хосты непосредственно из базы данных." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Посмотрите список ваших хостов", + "consequence": "Имена и адреса хостов, которые вы уже можете видеть." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Хранит собственные данные", + "consequence": "Хранится в отдельных таблицах, независимо от других плагинов." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Помните о небольших настройках", + "consequence": "Отделен от других плагинов." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Хранит собственные файлы", + "consequence": "Находится в отдельной папке на диске, вне зависимости от других плагинов." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Хранить свои собственные секреты", + "consequence": "Зашифровано компанией Termix. Плагин никогда не хранит ключ." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Прочитайте настройки Termix", + "consequence": "Настройки сервера, а не вашего хостинга или учетных данных." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "См. установленные функции", + "consequence": "Она может видеть, какие функции установлены и запущены." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Добавить собственные экраны", + "consequence": "Вкладки, панели и настройки можно скрыть позже." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} недоступно", + "needsUnknownPlugin": "Эта функция недоступна.", + "disabledHint": "На этом сервере эта функция отключена.", + "missingHint": "Функция, откуда она взялась, была удалена.", + "failed": "{{name}} не удалось запустить", + "failedHint": "Администратор может проверить журналы сервера для получения подробной информации.", + "loading": "Загрузка {{name}}", + "crashed": "Что-то пошло не так в {{name}}", + "retry": "Попробуйте еще раз" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Набор", + "secretNotSet": "Не задано", "secretReplace": "Заменить", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Настройки сохранены", + "pluginSettingsInvalid": "Некоторые настройки не удалось сохранить. Проверьте выделенные поля.", + "pluginSettingsSaveFailed": "Не удалось сохранить настройки.", + "pluginSettingsLoadFailed": "Не удалось загрузить настройки.", + "featureUnavailable": "{{name}} в данный момент недоступно. Эти настройки сохранены, но не вступят в силу." }, "managerCard": { "refresh": "Обновить", @@ -1913,169 +1913,169 @@ "filter": "Фильтр..." }, "sync": { - "server": "Termix server", + "server": "Сервер Termix", "account": "Учетная запись", "status": "Статус", "never": "никогда", "justNow": "только что", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} минуту назад", + "minutesAgo_other": "{{count}} минут назад", + "hoursAgo_one": "{{count}} час назад", + "hoursAgo_other": "{{count}} часов назад", + "actionFailed": "Это не сработало. Попробуйте ещё раз.", + "unlinkedTitle": "Это устройство только", + "unlinkedBody": "Termix работает на этом устройстве автономно. Подключите его к своему серверу Termix, чтобы все работало согласованно.", + "unlinkedPointHosts": "Ваши хосты, учетные данные, фрагменты кода и настройки сохраняются на каждом устройстве.", + "unlinkedPointOffline": "Всё продолжает работать, даже когда сервер недоступен, и синхронизируется позже.", + "unlinkedPointAccount": "Вы входите в систему, используя свою учетную запись сервера, и хосты, которыми с вами поделились, также отображаются здесь.", + "linkButton": "Ссылка на сервер", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Синхронизация", + "offline": "Сервер недоступен", + "error": "Синхронизация остановлена", + "signedOut": "Вышел из системы", + "synced": "Синхронизировано {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} изменить ожидание синхронизации", + "pending_other": "{{count}} изменения, ожидающие синхронизации", + "signInAgain": "Войдите снова.", + "syncNow": "Синхронизировать сейчас", + "unlink": "Удалить ссылку", + "unlinked": "Это устройство больше не подключено.", + "unlinkTitle": "Отключить это устройство?", + "unlinkDescription": "Синхронизация прекращается, и происходит выход из системы. В любом случае, хосты, предоставленные вам другими пользователями, удаляются с этого устройства.", + "unlinkKeepTitle": "Сохраните мои данные здесь.", + "unlinkKeepBody": "Ваши хосты, учетные данные и настройки остаются на этом устройстве и продолжают работать самостоятельно.", + "unlinkRemoveTitle": "Удалить синхронизированные данные", + "unlinkRemoveBody": "Все данные, поступившие с сервера, удаляются с этого устройства. Остаются только хосты, хранящиеся на этом устройстве.", + "conflictsTitle": "Конфликты", + "conflictsDescription": "Изменения были внесены одновременно и здесь, и на сервере. Используется серверная версия. Сохраните свою версию, чтобы отправить её на сервер.", + "keepMine": "Оставь мое себе", + "keepServer": "Поддерживайте сервер", + "errorsTitle": "Не синхронизировано", + "errorsDescription": "Сервер не принял эти изменения. Они останутся на этом устройстве.", + "errorPermission": "Вашему аккаунту на сервере запрещено вносить эти изменения.", + "retry": "Попробуйте еще раз", + "whatSyncs": "Что синхронизируется", + "whatSyncsDescription": "Выключите все, что хотите сохранить только на этом устройстве.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Сервер этого не имеет.", + "notOnDevice": "На этом устройстве пока нет", + "localOnlyHint": "Вы также можете хранить на этом устройстве отдельные хосты или папки, используя их настройки.", + "originTitle": "Где начинаются связи", + "originDescription": "Подключайтесь к хостам с этого устройства или через сервер. Вы можете изменить это для каждого хоста отдельно.", + "originLocal": "Это устройство", + "originRemote": "Сервер", "entities": { "hosts": "Хосты", "sshCredentials": "Учётные данные", "sshFolders": "Папки", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Настройки", + "pluginUserSettings": "Настройки функций", + "sharedHosts": "Хозяева поделились с вами", + "sharedCredentials": "Учетные данные были вам предоставлены.", + "vaultProfiles": "Профили хранилища", + "snippetFolders": "Папки с фрагментами", "snippets": "Сниппеты", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "Ссылки на сервисы", + "homepageItems": "Элементы главной страницы", + "networkTopology": "Карта сети", + "workspaces": "Рабочие места" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Обратный прокси", + "description": "Это необходимо только в том случае, если перед вашим сервером находится что-то вроде Cloudflare Access или страница авторизации.", + "headersTitle": "Дополнительные заголовки", + "headersHint": "Отправляется с каждым запросом к серверу, например, токен доступа к сервису Cloudflare.", + "headerName": "Название заголовка", + "headerValue": "Ценить", + "savedValue": "Сохранено, введите для изменения", + "addHeader": "Добавить заголовок", + "removeHeader": "Удалить заголовок", + "basicAuthTitle": "Имя пользователя и пароль", + "basicAuthHint": "Для прокси-сервера, который запрашивает имя пользователя и пароль перед использованием Termix.", "username": "Имя пользователя", "password": "Пароль", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Доверяйте самоподписанному сертификату", + "allowInvalidCertificateHint": "Только для вашего собственного сервера, если его сертификат выдан не известным центром сертификации.", "saved": "Сохранено" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Это не похоже на веб-адрес.", + "unreachable": "Не удалось подключиться к серверу. Проверьте адрес и убедитесь, что сервер запущен.", + "unreachableWithReason": "Не удалось связаться с сервером: {{reason}}", + "tlsUntrusted": "Сертификат сервера не является доверенным. Если это ваш собственный сервер с самоподписанным сертификатом, включите указанную ниже опцию.", + "basicAuthRequired": "Сервер запрашивает имя пользователя и пароль. Введите их ниже.", + "proxyLogin": "Вместо Termix отвечает страница входа или прокси-сервер. Добавьте необходимые заголовки ниже или проверьте адрес.", + "notTermix": "По этому адресу нет сервера Termix. Если он работает по указанному пути, добавьте его, например, https://example.com/termix.", + "versionMismatch": "На этом сервере установлена более старая версия Termix. Обновите её до версии 2.9 или новее для обеспечения совместимости.", + "differentAccount": "Вы вошли в другую учетную запись. Войдите в учетную запись, к которой привязано это устройство, или сначала отвяжите ее." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Ссылка на сервер Termix", + "reloginTitle": "Войдите снова.", + "savedServers": "Последние серверы", + "removeServer": "Удалить из списка", + "serverDescription": "Введите адрес, который вы используете для открытия Termix в вашем браузере.", + "signinDescription": "Войдите в {{url}}", + "chooseDescription": "В этом устройстве уже есть данные. Что с ними должно произойти?", + "finishingDescription": "Подключение данного устройства.", + "serverUrl": "Адрес сервера", + "serverUrlHint": "Например, https://termix.example.com", + "showProxySettings": "Настройки обратного прокси", + "hideProxySettings": "Скрыть настройки обратного прокси", "continue": "Продолжить", "back": "Назад", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "Добавить это в мой аккаунт", + "mergeBody": "Предметы {{count}} на этом устройстве добавляются в вашу учетную запись. Предметы, которые уже есть в вашей учетной записи, остаются на сервере в том виде, в котором они есть.", + "replaceTitle": "Замените это на мой аккаунт.", + "replaceBody": "Элементы {{count}} на этом устройстве удаляются, и это устройство забирает все данные с вашего аккаунта. Хосты, хранящиеся на этом устройстве, остаются.", + "link": "Связь", + "linking": "Выполняется подключение и запуск первой синхронизации...", + "linked": "Связано. Ваши данные синхронизируются.", + "signedInAgain": "Вход выполнен. Синхронизация возобновилась." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Папка {{name}}", + "user": "Мои настройки по умолчанию", + "admin": "Сервер", + "builtin": "Встроенный" }, "custom": "Пользовательский", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "Здесь установлен", + "notSet": "Не задано", + "notSetTitle": "Для этого параметра по умолчанию значение не установлено.", + "resetTitle": "Этот хост устанавливает собственное значение. Нажмите, чтобы снова использовать значение по умолчанию из {{source}}", + "clearTitle": "Установите этот уровень. Нажмите, чтобы очистить его и использовать {{source}} вместо него.", + "inheritedTitle": "Используется значение по умолчанию из {{source}}", + "titleAdmin": "Настройки хоста сервера по умолчанию", + "titleUser": "Мои настройки хоста по умолчанию", + "titleFolder": "Настройки папки по умолчанию: {{name}}", + "descriptionAdmin": "Значения по умолчанию для каждого хоста на этом сервере. Собственные значения по умолчанию пользователя, значения по умолчанию папки или самого хоста могут отличаться. Измените значение поля, чтобы задать его здесь, или снимите флажок, чтобы оставить его незаданным.", + "descriptionUser": "Значения по умолчанию для всех ваших хостов, а не для сервера. Папка или сам хост могут задавать другое значение. Измените значение поля, чтобы задать его здесь, или очистите его, чтобы оставить значение незаданным.", + "descriptionFolder": "Значения по умолчанию для хостов в этой папке и ее подпапках заменяются вашими собственными. Хост также может установить другое значение. Измените значение поля, чтобы установить его здесь, или очистите его, чтобы оставить его незаданным.", + "save": "Сохранить значения по умолчанию", + "saved_one": "Сохранены настройки по умолчанию. {{count}} хост был обновлен.", + "saved_other": "Настройки по умолчанию сохранены. {{count}} хосты были обновлены.", + "savedInBackground": "Настройки по умолчанию сохранены. Обновление хостов происходит в фоновом режиме.", + "appliedToHosts_one": "{{count}} хост был обновлен с учетом новых значений по умолчанию.", + "appliedToHosts_other": "{{count}} хосты были обновлены с учетом новых значений по умолчанию.", + "saveFailed": "Не удалось сохранить значения по умолчанию.", + "loadFailed": "Не удалось загрузить значения по умолчанию.", + "confirmTitle": "Сохранить настройки по умолчанию?", + "confirmChanges_one": "{{count}} хост следует этим значениям по умолчанию и будет изменяться.", + "confirmChanges_other": "{{count}} хосты следуют этим значениям по умолчанию и будут изменяться.", + "confirmNoChanges": "Изменений на существующих хостах не требуется. Новые хосты начнут работу с настройками по умолчанию.", + "menuMyDefaults": "Мои настройки хоста по умолчанию", + "folderDefaultsAction": "Настройки папок по умолчанию", + "adminSectionDescription": "Установите значения по умолчанию, которым будут следовать все хосты на этом сервере, для каждой настройки хоста, включая каждую функцию. Пользователи и папки могут устанавливать свои собственные значения, и любой хост по-прежнему может использовать свои собственные значения.", + "editServerDefaults": "Изменить настройки сервера по умолчанию", "resetMenu": "Сбросить", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Все настройки по умолчанию", + "resetCore": "Подключение и SSH установлены по умолчанию.", + "resetDone_one": "Теперь хост {{count}} использует свои настройки по умолчанию.", + "resetDone_other": "Теперь хосты {{count}} используют свои настройки по умолчанию." } } diff --git a/src/ui/locales/translated/sr_SP.json b/src/ui/locales/translated/sr_SP.json index 8ad60ed59..230f82bfe 100644 --- a/src/ui/locales/translated/sr_SP.json +++ b/src/ui/locales/translated/sr_SP.json @@ -55,8 +55,8 @@ "levelManage": "Управљај", "levelUseDesc": "Употреба: приложите акредитив хостовима и повежите се. Сама тајна остаје скривена.", "levelManageDesc": "Управљање: такође уредите акредитив и делите га са другима.", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "Овај акредитив још није подељен", + "accessRevoked": "Приступ је опозван", "shared": "Акредитив је дељен" }, "deleteCredentialAction": "Обриши акредитив", @@ -113,14 +113,14 @@ "arrangeUnlocked": "Откључај превлачење да би се преуредило" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Ажурирање је доступно. Отворите белешке о издању на GitHub-у." }, "common": { "close": "Затвори", "minimize": "Минимизирај", "online": "Онлајн", "offline": "Офлајн", - "signInFailed": "Sign in failed", + "signInFailed": "Пријављивање није успело", "unknown": "Непознато", "continue": "Настави", "maintenance": "Одржавање", @@ -131,9 +131,9 @@ "dismiss": "Одбаци", "more": "Више", "loading": "Учитавање...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Домаћин", + "selectHost": "Изаберите хост...", + "noHostConfigured": "Није конфигурисан хост", "optional": "Опционо", "connect": "Повежи се", "copied": "Копирано", @@ -187,7 +187,7 @@ "remove": "Уклони", "add": "Додај", "update": "Ажурирање", - "noResults": "No results found" + "noResults": "Нису пронађени резултати" }, "onboarding": { "stepCounter": "Корак {{current}} од {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Палета команди", "workflow_palette_desc": "Пређите на било који сервер или радњу куцањем. Додирните Shift два пута да бисте је отворили.", "workflow_split": "Подељени екран", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Прикажите неколико картица једну поред друге, на пример да бисте гледали логове док радите.", "workflow_dock": "Бочна плоча", "workflow_dock_desc": "Кликните средњим или десним тастером миша на икону бочне траке да бисте је отворили као картицу или је закачили са десне стране.", "securityTitle": "Безбедно пријављивање", @@ -248,13 +248,13 @@ "done_cli": "Алат командне линије", "done_cli_desc": "Управљајте својим серверима из терминала и користите Termix у сопственим скриптама.", "done_cli_link": "Отворите CLI документацију", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Како желите да користите Термикс?", + "desktopBody": "Ово можете променити у било ком тренутку из опције Синхронизација у бочној траци.", + "desktopLocalTitle": "Само на овом уређају", + "desktopLocalBody": "Све је овде сачувано. Ништа не треба подешавати.", + "desktopLinkTitle": "Са мојим Termix сервером", + "desktopLinkBody": "Пријавите се на свој сервер да бисте користили исте хостове и подешавања на сваком уређају.", + "desktopLinked": "Повезано са {{server}}" }, "nav": { "home": "Дом", @@ -295,21 +295,21 @@ "collapseSideMenu": "Сакриј мени", "roleAdministrator": "Администратор", "roleUser": "Корисник", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Синхронизација", + "reconnectDisconnectedTerminals": "Поново повежите све одспојене терминале", + "reconnectingTerminals_one": "Поновно повезивање {{count}} терминала", + "reconnectingTerminals_other": "Поновно повезивање {{count}} терминала", + "noDisconnectedTerminals": "Ниједан искључени терминал није спреман за поновно повезивање", + "reconnectTerminalsFailed_one": "Није могуће поново повезати терминал {{count}}", + "reconnectTerminalsFailed_other": "Није могуће покренути поновно повезивање {{count}} терминала", + "fullscreenUnsupported": "Овај прегледач не подржава режим целог екрана", + "fullscreenFailed": "Није могуће пребацити/искључити режим целог екрана", + "resetSidebarWidth": "Ресетуј ширину", + "collapseSidebar": "Склопи бочну траку", + "openSidebar": "Отвори бочну траку", + "confirmCloseHost": "Затвори {{host}}?", + "enterFullscreen": "Уђи у режим целог екрана (Ctrl+Shift+F)", + "exitFullscreen": "Изађи из режима целог екрана (Ctrl+Shift+F)" }, "hosts": { "hosts": "Домаћини", @@ -353,7 +353,7 @@ "serverStats": "Метрике хоста", "status": { "available": "Доступно", - "reachable": "Up, but the last sign in failed", + "reachable": "Укључено, али последња пријава није успела", "offline": "Офлајн", "monitoringDisabled": "Праћење је онемогућено", "label": "Статус" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Присилна интерактивност тастатуре", "overrideCredentialUsername": "Замени корисничко име акредитива", "overrideCredentialUsernameDesc": "Користите корисничко име наведено горе уместо корисничког имена акредитива", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Користите $external.корисничко име да бисте попунили име са којим сте се пријавили путем SSO или LDAP.", "jumpHostChain": "Скок ланца хоста", "portKnocking": "Лук Нокинг", "addKnock": "Додај порт", @@ -626,14 +626,14 @@ "actionsClick": "Кликните да бисте проширили/склопили", "openOnDoubleClick": "Отвори двоструким кликом", "openOnDoubleClickDesc": "За отварање сесије домаћина потребан је двоструки клик уместо једног клика", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Прикажи путање фасцикли", + "showFolderPathsDesc": "Прикажи путању надређене фасцикле изнад угнежђених имена подфасцикли. Подфасцикле остају увучене у оба смера.", + "hostClickBehavior": "Клик на хоста", + "hostClickBehaviorDesc": "Шта се дешава када кликнете на хост који већ има отворену картицу. Ctrl/Cmd клик, средњи клик или „Отвори у новој картици“ увек покреће нову.", + "hostClickNewTab": "Увек отвори нову картицу", + "hostClickFocusExisting": "Пређи на отворену картицу", + "hostClickFocusExistingDoubleNew": "Кликните да бисте пребацили, двапут кликните за нову картицу", + "openInNewTab": "Отвори у новој картици", "deletedHost": "Обрисано {{name}}", "copiedToClipboard": "Копирано у међуспремник", "remoteDesktopUrlCopied": "URL удаљене радне површине копиран", @@ -698,7 +698,7 @@ "groupCredentials": "Акредитиви", "groupNotes": "Белешке", "groupTags": "Ознаке и пин", - "groupProxy": "Proxy", + "groupProxy": "Прокси", "groupJumpHosts": "Јумп хостови", "groupFeatureFlags": "Заставице функција", "groupAdvanced": "Напредна конфигурација", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Свака крајња тачка захтева другачије име.", "webUiErrorPortRange": "Крајњој тачки {{row}} је потребан порт између 1 и 65535.", "webUiErrorPathInvalid": "Крајња тачка {{row}} има неважећу путању. Користите путању као што је /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Копирај {{name}} линк", + "filterAuthAgent": "SSH агент", + "authTypeNeedsPlugin": "Овај хост користи {{type}}, што захтева {{plugin}}. Искључен је на овом серверу.", + "authTypeUnknown": "Овај хост користи {{type}}, што није доступно на овом серверу.", + "authFieldsAfterSave": "Прво сачувајте хост, а затим попуните ова поља.", + "enablePluginFeature": "Омогући {{name}}", + "disablePluginFeature": "Онемогући {{name}}", "filterFeaturesGroup": "Карактеристике", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "Чувај само на овом уређају", + "localOnlyDesc": "Овај хост се не шаље на сервер и не појављује се на вашим другим уређајима.", + "folderLocalOnly": "Чувај само на овом уређају", + "folderLocalOnlyDesc": "Ова фасцикла и сваки хост у њој остају на овом уређају и не шаљу се на сервер.", + "sudoPasswordDesc": "Користи се када терминал попуњава sudo промпт и од стране функција које покрећу команде са sudo-ом.", + "editorCancel": "Откажи", + "editorSaving": "Чување...", + "editorUpdate": "Ажурирај хост", + "editorAdd": "Додај хоста", + "speedSearch": "Претражите хостове. Тастери са стрелицама за избор, Enter за повезивање, Esc за затварање", + "speedSearchList": "Листа хостова. Унесите текст или притисните / за претрагу.", + "importNoHosts": "Није пронађен ниједан хост у датотеци", + "importTooMany": "Можете да увезете до {{max}} хостова одједном", + "importSummary": "Увоз завршен: {{imported}} увезено, {{updated}} ажурирано, {{failed}} неуспешно", + "importHostsFailed": "Увоз хостова није успео" }, "commandPalette": { "searchPlaceholder": "Претражите хостове, команде или подешавања...", @@ -897,58 +897,58 @@ "navigate": "Навигација", "select": "Изаберите", "toggleWith": "Укључи/искључи", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Више акција", + "noTargetTab": "Ниједна картица терминала није отворена" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "Подељени екран", + "defaultLabel": "Подели {{number}}", + "splitRight": "Подели десно", + "splitDown": "Подели", + "addToSplit": "Додај у {{split}}", + "paneEmptyItem": "Окно {{index}}: празно", + "paneItem": "Окно {{index}}: {{label}}", + "paneNumber": "Окно {{index}}", + "newPaneRight": "Нови панел са десне стране", + "newPaneBelow": "Нови панел испод", + "emptyTitle": "Празно окно", + "emptyHint": "Изаберите нешто што ће се овде приказати. Док је овај панел изабран, све што отворите са бочне траке се такође отвара овде.", + "openTabs": "Отворене картице", + "noOpenTabs": "Ниједна друга картица није отворена", + "hosts": "Домаћини", + "searchHosts": "Претрага хостова", + "noHosts": "Нема подударања домаћина", + "newSession": "Ново", + "closePane": "Затвори окно", + "closeSession": "Затвори сесију", + "moveToTab": "Премести на сопствену картицу", + "swapWith": "Замени са", + "showHere": "Прикажи у овом окну", + "clearPane": "Испразни овај панел", + "zoom": "Окно за зумирање", + "unzoom": "Врати распоред", + "unsplit": "Неподељено", + "layouts": "Распореди", + "applyLayout": "Промени распоред", + "newSplit": "Нова подела", + "maxPanes": "Подела може да садржи до {{count}} панела", + "dropSplit": "Испусти да би се поделио", + "dropHere": "Отпустите да бисте приказали овде", + "paneActions": "Акције окна", + "dividerHint": "Превуците да бисте променили величину. Кликните двапут да бисте поравнали.", + "openInSplit": "Отворено у подељеном режиму", + "openInNewSplit": "Нова подела са тренутном картицом", + "shortcuts": "Пречице", + "shortcutNavigate": "Премештање између панела", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Два једно поред другог", + "rows2": "Два наслагана", + "columns3": "Три једно поред другог", + "mainLeft3": "Један лево, два десно", + "mainBottom3": "Два горња, један доњи", + "grid4": "Мрежа од четири", + "grid5": "Три преко два", + "grid6": "Мрежа од шест" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Потребна је аутентификација", "mfaPushRequired": "Потребна је аутентификација путем поруке", "mfaMenuPlaceholder": "Унесите свој одговор", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Код или „гурање“", "mfaWaitingApproval": "Чекање одобрења на вашем уређају...", "mfaSendRequest": "Пошаљи захтев", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Безбедносни кључ", + "browserSignInUrl": "URL за пријаву", + "browserSignInOpen": "Отвори у прегледачу", + "browserSignInContinue": "Завршио/ла сам пријаву", + "browserSignInRequired": "{{provider}} Потребна је пријава", "connectionLogTitle": "Дневник везе", "connectionLogCopy": "Копирајте логове у међуспремник", "connectionLogEmpty": "Још нема евиденција веза", @@ -1032,7 +1032,7 @@ "external": "Спољни", "loginWithExternal": "Пријавите се са спољним добављачем", "loginWithExternalDesc": "Пријавите се користећи свог конфигурисаног спољног добављача идентитета", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Спољно пријављивање још увек није подржано у апликацији за рачунаре. Користите веб верзију.", "loginWithProvider": "Пријавите се са {{name}}", "orContinueWith": "или наставите са", "resetPasswordButton": "Ресетуј лозинку", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "Пријава лозинком је онемогућена. Користите шифру или екстерног добављача аутентификације.", "attemptsRemaining": "{{count}} преосталих покушаја", "confirmResetDataWipe": "Овај налог се није пријављивао од надоградње шифровања, тако да се његови сачувани подаци не могу вратити без старе лозинке. Ресетовање ће трајно избрисати његове хостове, акредитиве и фрагменте. Желите да наставите?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "Лозинка", + "secondFactorUnavailable": "Ваш налог користи други фактор који тренутно није доступан. Контактирајте администратора да га ресетује.", + "secondFactorNoUI": "Овај други фактор не може бити приказан на овом екрану. Контактирајте администратора.", + "serverAuthentication": "Пријава на сервер", + "minChars": "мин. {{min}} знакова" }, "hostKey": { "verifyNewHost": "Проверите SSH кључ хоста", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Није успело потврђивање кода за ресетовање", "failedCompleteReset": "Ресетовање лозинке није успело", "invalidTotpCode": "Неважећи TOTP код", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Покретање екстерног пријављивања није успело", + "silentSigninOidcUnavailable": "Затражено је тихо пријављивање, али није подешено спољно пријављивање.", "failedUserInfo": "Није успело добијање корисничких података након пријаве", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Спољно пријављивање није успело", "invalidAuthUrl": "Неважећи URL за ауторизацију примљен од бекенда", "requiredField": "Ово поље је обавезно", "minLength": "Минимална дужина је {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Чување токена за аутентификацију није успело", "authTokenMissing": "Сервер није вратио нови токен за аутентификацију. Молимо вас да се поново пријавите.", "failedToLoadServer": "Учитавање сервера није успело", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Сесија је истекла. Молимо вас да се поново пријавите." }, "messages": { "registrationDisabled": "Регистрација новог налога је тренутно онемогућена од стране администратора. Молимо вас да се пријавите или контактирате администратора.", @@ -1163,7 +1163,7 @@ "panelMain": "Главни", "panelSide": "Страна", "justNow": "управо сада", - "activityFileManager": "File manager" + "activityFileManager": "Менаџер датотека" }, "donation": { "title": "Уживате у Термиксу?", @@ -1188,12 +1188,12 @@ "add": "Додај:", "commandPalette": "Палета команди", "done": "Готово", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Превуците картице да бисте променили редослед. Превуците разделник колона да бисте променили величину колона. Превуците доњу ивицу картице да бисте променили њену висину. Користите дугме за отпад да бисте уклонили картицу.", "empty": "Празно", "clear": "Јасно", "viewServerDetails": "Погледајте детаље сервера", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Превуците да бисте променили величину колона", + "hostsAvailable": "Доступни домаћини" }, "admin": { "sectionGeneral": "Опште", @@ -1203,7 +1203,7 @@ "sectionDatabase": "База података", "sectionApiKeys": "API кључеви", "sectionAuditLog": "Дневник ревизије", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS сертификат", "sectionBranding": "Бела етикета", "brandingAppName": "Назив апликације", "brandingAppNameDesc": "Приказује се на екрану за пријаву и картици прегледача. Оставите празно да бисте користили „Termix“.", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Неважећа слика. Користите PNG, JPEG или WEBP датотеку величине до 750 KB.", "brandingSaved": "Подешавања брендирања су сачувана", "brandingSaveFailed": "Чување подешавања брендирања није успело", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Сертификат који Termix пружа преко HTTPS-а. Отпремите свој овде или га преузмите и обновите од Let's Encrypt у одељку ACME сертификати.", "sslDocsLink": "Погледајте SSL документацију", "sslCertStatus": "Статус сертификата", "sslCertStatusNone": "Без сертификата", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Дозволите новим корисницима да се сами региструју помоћу корисничког имена и лозинке", "allowPasswordLogin": "Дозволи пријаву лозинком", "allowPasswordLoginDesc": "Пријава корисничким именом/лозинком", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Аутоматски креирај екстерне налоге", + "oidcAutoProvisionDesc": "Креирајте налог први пут када се неко пријави путем екстерног пријављивања као што је SSO или LDAP, чак и када је регистрација искључена", + "secondFactorAfterExternalLogin": "Захтевајте други фактор након екстерних пријављивања (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Искључено, регистровани други фактор се тражи само након лозинке и других локалних пријављивања, исто као и пре. Укључено, тражи се након сваке методе пријављивања, укључујући SSO и LDAP.", "allowPasswordReset": "Дозволи ресетовање лозинке", "allowPasswordResetDesc": "Ресетујте код путем Докер логова", "auditForwardingTitle": "Проследи ка SIEM-у", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Чување подешавања прослеђивања ревизије није успело", "sessionTimeout": "Временско ограничење сесије", "hours": "сати", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Мин. 1 сат, макс. 720 сати", "monitoringDefaults": "Праћење подразумеваних подешавања", "statusCheck": "Провера статуса", "sec": "сек", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "Без истека", "revokedBadge": "ПОНИШТЕНО", "authTypeDual": "Двострука аутентификација", - "authTypeOidc": "External", + "authTypeOidc": "Спољни", "authTypeLocal": "Локално", "adminStatusAdministrator": "Администратор", "adminStatusRegularUser": "Редован корисник", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Статус администратора", "editUserUserId": "ИД корисника", "linkAccountTitle": "Повежи налоге", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Спојите екстерни налог {{username}} са постојећим локалним налогом.", + "linkAccountDescLocal": "Повежите локални налог {{username}} са постојећим само спољним налогом.", "linkAccountWarningTitle": "Ово ће:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Избришите само спољни налог", + "linkAccountEffect2": "Додајте његово екстерно пријављивање на циљни налог", + "linkAccountEffect3": "Дозволи и спољашње пријављивање и пријављивање лозинком", "linkAccountTargetUsername": "Корисничко име локалног налога", "linkAccountTargetPlaceholder": "Унесите корисничко име локалног налога за повезивање", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Корисничко име екстерног налога", + "linkAccountOidcPlaceholder": "Унесите корисничко име само за екстерни налог за спајање", + "linkAccountOidcNotFound": "Није пронађен ниједан спољни налог са тим корисничким именом", "linkAccounts": "Повежи налоге", "linkAccountSuccess": "Налози су успешно повезани", "linkAccountFailed": "Повезивање налога није успело", "linkAccountInProgress": "Повезивање...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Прекини везу са спољним пријављивањем", + "unlinkAccountDesc": "Уклоните екстерно пријављивање са {{username}}. Моћи ће да се пријаве само са својом лозинком.", + "unlinkAccountWarning": "Овим ће се уклонити екстерно пријављивање са овог налога. Корисник мора имати подешену лозинку да би наставио да се пријављује.", + "unlinkAccount": "Прекини везу са спољним пријављивањем", "unlinkAccountInProgress": "Раскидање везе...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Веза са спољним пријављивањем је прекинута", + "unlinkAccountFailed": "Није успело прекидање везе са спољним пријављивањем", "saving": "Чување...", "updateRegistrationFailed": "Ажурирање подешавања регистрације није успело", "updatePasswordLoginFailed": "Ажурирање подешавања за пријаву лозинком није успело", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Ажурирање подешавања аутоматског креирања није успело", + "updateSecondFactorAfterExternalLoginFailed": "Ажурирање подешавања другог фактора није успело", "updatePasswordResetFailed": "Ажурирање подешавања за ресетовање лозинке није успело", "sessionTimeoutRange2": "Временско ограничење сесије мора бити између 1 и 720 сати", "sessionTimeoutSaved": "Временско ограничење сесије је сачувано", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Нема активних сесија", "deleteSuccessorLabel": "Предајте домаћине и акредитиве", "deleteSuccessorMe": "Ја (администратор који брише)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Нико, обриши их", "deleteSuccessorDesc": "Све што је овај корисник поделио наставља да ради под новим власником; избор опције „нико“ уклања њихове хостове, акредитиве и дељења.", "deleteUserDangerDesc": "Трајно обриши {{username}} и све њихове податке (хостове, акредитиве, фрагменте, историју). Ова радња се не може поништити.", "deleteUserConfirm": "Трајно избрисати {{username}} и све њихове податке?", @@ -1477,31 +1477,31 @@ "saveError": "Чување дозвола за улогу није успело", "save": "Сачувај", "saving": "Чување...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Функција је онемогућена", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", - "admin": "Administration" + "hosts": "Домаћини", + "credentials": "Акредитиви", + "admin": "Администрација" } }, "notificationPrivateEndpoints": "Дозвољени хостови за приватна обавештења", "notificationPrivateEndpointsDesc": "Тачни приватни хостови које канали за обавештења могу да контактирају. Одвојите их зарезима.", "updateNotificationEndpointsFailed": "Ажурирање листе дозвољених крајњих тачака обавештења није успело", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Други фактори", + "secondFactorsNone": "Ниједан други фактор није регистрован", + "secondFactorUnavailable": "Недоступно", + "resetSecondFactors": "Ресетуј друге факторе", + "resetSecondFactorsConfirm": "Уклоните сваки други фактор за {{username}}? Могу се пријавити помоћу лозинке или SSO-а и поново се регистровати.", + "secondFactorsResetSuccess": "Други фактори се ресетују", + "secondFactorsResetFailed": "Ресетовање других фактора није успело", + "passwordLoginForced": "Пријављивање лозинком је искључено, али ниједан други начин пријављивања није омогућен, тако да за сада остаје укључено. Нико неће бити закључан.", + "sslNotRenewed": "Ништа не обнавља овај сертификат. Истиче {{date}}. Укључите аутоматско обнављање у одељку ACME сертификати или отпремите нови пре тога.", + "sslSelfSigned": "Самопотписани сертификат који је направио Termix. Прегледачи ће вас упозорити на то.", + "sslRenewedBy": "Аутоматски обнавља {{plugin}}", + "sslIssuer": "Издао/ла {{issuer}}", + "sslNames": "Навлаке {{names}}", + "sslManualTitle": "Отпреми сертификат", + "updateExternalAutoProvisionFailed": "Ажурирање подешавања аутоматског креирања није успело" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Протокол", "domainLabel": "Домен", "domainPlaceholder": "опционо", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Повежи се са {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Ништа инсталирано не може да се повеже са овим типом хоста" }, "keybindings": { "title": "Пречице на тастатури", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Повежите тастере са радњама у терминалу и апликацији или промените уграђене пречице.", "defaultsHeading": "Уграђене пречице", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Пречице апликација", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Подели десно", + "splitDown": "Подели", + "zoomPane": "Увећај фокусирани окно", + "navigatePane": "Премештање између панела", + "nextTab": "Следећа картица", + "previousTab": "Претходна картица", + "jumpTab": "Пређи на картицу", + "previousView": "Назад на претходни приказ бочне траке", + "fullscreen": "Укључи/искључи цео екран" }, "customHeading": "Прилагођене пречице", "addBinding": "Додај пречицу", @@ -1566,9 +1566,9 @@ "actionNextTab": "Пређи на следећу картицу", "actionPreviousTab": "Пређи на претходну картицу", "actionOpenCommandPalette": "Отвори брзу претрагу", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Поново повежи тренутну сесију", + "unavailableAction": "{{type}} (није доступно)", + "actionRequiredError": "Прво изаберите акцију" }, "userProfile": { "donateTitle": "Нека Термикс остане жив", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Подешавања су ресетована на подразумеване вредности.", "storageModeSwitch": "Складиште преференција", "sectionAccount": "Налог", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Само овај уређај", + "desktopProfileDescription": "Овај профил се налази на овом уређају и сам се пријављује. Повежите га са Termix сервером да бисте користили исте хостове и подешавања на сваком уређају.", "sectionInterface": "Интерфејс", "interfacePresetDesc": "Колико детаља Termix приказује. Свака функција остаје доступна.", "preset_simple": "Једноставно", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Вратите отворене картице када се пријавите или освежите страницу, чак и са другог уређаја", "confirmTabClose": "Потврди затварање картице", "confirmTabCloseDesc": "Питај пре затварања картица терминала", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Прикажи бројеве табова", + "showTabNumbersDesc": "Прикажите број на свакој картици да бисте их лакше разликовали", "settingsAppRail": "Апп Реил", "sidebarSettingsMoved": "Подешавања приказа бочне траке хоста су премештена у панел Прилагоди бочну траку, који се отвара из траке са алаткама хостови.", "showHostTags": "Прикажи ознаке хоста", @@ -1727,7 +1727,7 @@ "importFailed": "Увоз није успео: {{error}}", "roleUser": "Корисник", "authMethodDual": "Двострука аутентификација", - "authMethodOidc": "External", + "authMethodOidc": "Спољни", "done": "Готово", "apiKeyNameRequired": "Назив кључа је обавезан", "apiKeyCreated": "API кључ „{{name}}“ је креиран", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Токијска ноћ", "themeOneDark": "Једна тама", "themeGruvbox": "Грувбокс", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Пријављени сте на {{server}}", + "linkedProfileDescription": "Овај уређај користи ваш налог на серверу и чува копију ваших података, тако да и даље ради ван мреже.", + "manageSync": "Управљај синхронизацијом", + "setUpSync": "Линк до сервера", + "settingsTabsAndShortcuts": "Картице и пречице" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Погледајте своје лозинке и кључеве", + "consequence": "Може да прочита сачувану тајну за било који хост до ког можете доћи." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Покрените команде на својим серверима", + "consequence": "Било која команда, на хостовима на које се повежете, са вашим приступом." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Покрените програме на овој машини", + "consequence": "Програми се покрећу на самом Termix серверу, а не на вашим хостовима." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Креирајте и мењајте корисничке налоге", + "consequence": "Може додавати кориснике и мењати њихове улоге." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Рукујте пријављивањем", + "consequence": "Може додати метод пријаве, други фактор или SSH тип пријаве." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Управљање сертификатима", + "consequence": "Може да замени сертификат који Termix служи преко HTTPS-а и да одговара на провере домена од стране ауторитета за сертификате." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Приступ серијским и УСБ уређајима", + "consequence": "Може да отвори физички серијски порт на машини на којој је покренут Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Креирајте и промените хостове", + "consequence": "Може да додаје хостове и уређује оне које већ имате." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Повежите се са својим серверима", + "consequence": "Не може да види ваше лозинке или кључеве." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Сачувај нове акредитиве", + "consequence": "Може да дода лозинке и кључеве вашим сачуваним акредитивима." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Дођите до интернета", + "consequence": "Може слати захтеве спољним службама." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Прихвати везе", + "consequence": "Отвара порт на Termix серверу." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Шаљи мрежне емисије", + "consequence": "Може да шаље пакете уређајима на локалној мрежи, као што је сигнал Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Погледајте корисничка имена и улоге", + "consequence": "Никада хешеви лозинки, никад двофакторско стање." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Посматрајте све што се дешава", + "consequence": "Укључујући активности других корисника, не само ваше." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Шаљи упозорења", + "consequence": "Вама или другим корисницима, и путем канала које су они подесили." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Примите свако упозорење", + "consequence": "Чува и испоручује упозорења која сви додаци шаљу, укључујући и њихов садржај." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Прочитајте дневник ревизије", + "consequence": "Може се видети ко је шта урадио и када." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Отворите прозоре на радној површини", + "consequence": "Само у Termix десктоп апликацији." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Понашајте се као други корисници", + "consequence": "Покреће позадински рад са приступом другог корисника, као што су заказани задаци. Свака употреба се записује у дневник ревизије." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Читање основних табела налога", + "consequence": "Може директно упитивати кориснике, улоге и хостове из базе података." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Погледајте своју листу домаћина", + "consequence": "Имена и адресе домаћина већ можете видети." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Чува сопствене податке", + "consequence": "Чува се у сопственим табелама, одвојено од осталих додатака." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Запамтите мала подешавања", + "consequence": "Држано одвојено од осталих додатака." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Чува сопствене датотеке", + "consequence": "У својој посебној фасцикли на диску, одвојено од осталих додатака." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Чува своје тајне", + "consequence": "Шифровано помоћу Termix-а. Плагин никада не поседује кључ." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Прочитајте подешавања Termix-а", + "consequence": "Подешавања сервера, а не ваши хостови или акредитиви." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Погледајте инсталиране функције", + "consequence": "Може да види које су функције инсталиране и покренуте." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Додај сопствене екране", + "consequence": "Картице, панели и подешавања можете касније сакрити." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} није доступно", + "needsUnknownPlugin": "Ова функција није доступна", + "disabledHint": "Искључено је на овом серверу.", + "missingHint": "Функција из које је потекла је уклоњена.", + "failed": "{{name}} није могао да се покрене", + "failedHint": "Администратор може да провери логове сервера за детаље.", + "loading": "Учитавање {{name}}", + "crashed": "Нешто је пошло наопако у {{name}}", + "retry": "Покушај поново" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "Сет", + "secretNotSet": "Није подешено", + "secretReplace": "Замени", + "pluginSettingsSaved": "Подешавања сачувана", + "pluginSettingsInvalid": "Нека подешавања нису могла бити сачувана. Проверите означена поља.", + "pluginSettingsSaveFailed": "Чување подешавања није успело", + "pluginSettingsLoadFailed": "Учитавање подешавања није успело", + "featureUnavailable": "{{name}} тренутно није доступно. Ова подешавања су сачувана, али неће ступити на снагу." }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "Освежи", + "retry": "Покушај поново", + "sudoHint": "Поставите sudo лозинку за овај хост у уређивачу хостова да бисте омогућили привилеговане акције.", + "noData": "Нема података", + "filter": "Филтер..." }, "sync": { - "server": "Termix server", - "account": "Account", - "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "server": "Термикс сервер", + "account": "Налог", + "status": "Статус", + "never": "никад", + "justNow": "управо сада", + "minutesAgo_one": "Пре {{count}} минута", + "minutesAgo_other": "Пре {{count}} минута", + "hoursAgo_one": "Пре {{count}} сат", + "hoursAgo_other": "Пре {{count}} сати", + "actionFailed": "То није успело. Пробајте поново.", + "unlinkedTitle": "Само овај уређај", + "unlinkedBody": "Termix ради самостално на овом уређају. Повежите га са својим Termix сервером да би све било у току.", + "unlinkedPointHosts": "Ваши хостови, акредитиви, исечци кода и подешавања прате вас на сваком уређају.", + "unlinkedPointOffline": "Све и даље ради када се сервер не може дохватити и касније се поправља.", + "unlinkedPointAccount": "Пријављујете се са својим серверским налогом, а овде се појављују и хостови које су људи делили са вама.", + "linkButton": "Линк до сервера", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Синхронизација", + "offline": "Сервер није доступан", + "error": "Синхронизација је заустављена", + "signedOut": "Одјављени сте", + "synced": "Синхронизовано {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", - "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "pending_one": "{{count}} промена чека на синхронизацију", + "pending_other": "{{count}} измене чекају на синхронизацију", + "signInAgain": "Пријавите се поново", + "syncNow": "Синхронизуј сада", + "unlink": "Уклони везу", + "unlinked": "Овај уређај више није повезан", + "unlinkTitle": "Желите да прекинете везу са овим уређајем?", + "unlinkDescription": "Зауставља синхронизацију и одјављује се са сервера. Хостови које други деле са вама се у сваком случају уклањају са овог уређаја.", + "unlinkKeepTitle": "Чувај моје податке овде", + "unlinkKeepBody": "Ваши хостови, акредитиви и подешавања остају на овом уређају и настављају да раде самостално.", + "unlinkRemoveTitle": "Уклони синхронизоване податке", + "unlinkRemoveBody": "Све што је дошло са сервера се уклања са овог уређаја. Хостови који се чувају на овом уређају остају само.", + "conflictsTitle": "Сукоби", + "conflictsDescription": "Ове су промене овде и на серверу у исто време. Серверска верзија је у употреби. Задржите своју да бисте је послали на сервер.", + "keepMine": "Задржи моје", + "keepServer": "Задржи сервер", + "errorsTitle": "Није синхронизовано", + "errorsDescription": "Сервер није прихватио ове промене. Оне остају на овом уређају.", + "errorPermission": "Вашем налогу на серверу није дозвољено да изврши ову промену.", + "retry": "Покушај поново", + "whatSyncs": "Шта се синхронизује", + "whatSyncsDescription": "Искључите све што желите да задржите само на овом уређају.", + "coreGroup": "Термикс", + "notOnServer": "Сервер ово нема", + "notOnDevice": "Још није на овом уређају", + "localOnlyHint": "Такође можете задржати појединачне хостове или фасцикле на овом уређају из њихових подешавања.", + "originTitle": "Где почињу везе", + "originDescription": "Повежите се са хостовима са овог уређаја или преко сервера. Ово можете променити за сваки хост појединачно.", + "originLocal": "Овај уређај", + "originRemote": "Сервер", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "Домаћини", + "sshCredentials": "Акредитиви", + "sshFolders": "Фасцикле", + "userPreferences": "Подешавања", + "pluginUserSettings": "Подешавања функција", + "sharedHosts": "Домаћини деле са вама", + "sharedCredentials": "Акредитиви дељени са вама", + "vaultProfiles": "Профили трезора", + "snippetFolders": "Фасцикле са исечцима", + "snippets": "Исечци", + "dashboardServiceLinks": "Линкови услуга", + "homepageItems": "Ставке почетне странице", + "networkTopology": "Мапа мреже", + "workspaces": "Радни простори" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", - "username": "Username", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "title": "Обрнути прокси", + "description": "Потребно је само када се нешто попут Cloudflare Access-а или странице за пријаву налази испред вашег сервера.", + "headersTitle": "Додатни заглавци", + "headersHint": "Шаље се са сваким захтевом серверу, на пример, токен услуге Cloudflare Access.", + "headerName": "Назив заглавља", + "headerValue": "Вредност", + "savedValue": "Сачувано, унесите текст да бисте променили", + "addHeader": "Додај заглавље", + "removeHeader": "Уклони заглавље", + "basicAuthTitle": "Корисничко име и лозинка", + "basicAuthHint": "За прокси који тражи корисничко име и лозинку пре Termix-а.", + "username": "Корисничко име", + "password": "Лозинка", + "allowInvalidCertificate": "Верујте самопотписаном сертификату", + "allowInvalidCertificateHint": "Само за ваш сервер, када његов сертификат није од познатог ауторитета.", + "saved": "Сачувано" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "То не изгледа као веб адреса.", + "unreachable": "Није могуће доћи до сервера. Проверите адресу и да ли сервер ради.", + "unreachableWithReason": "Није могуће доћи до сервера: {{reason}}", + "tlsUntrusted": "Сертификат сервера није поуздан. Ако је ово ваш сервер са самопотписаним сертификатом, укључите опцију испод.", + "basicAuthRequired": "Нешто испред сервера тражи корисничко име и лозинку. Унесите их испод.", + "proxyLogin": "Одговор је дала страница за пријаву или прокси уместо Termix-а. Додајте потребне заглавља испод или проверите адресу.", + "notTermix": "На тој адреси нема Termix сервера. Ако се покреће под путањом, укључите је, као што је https://example.com/termix.", + "versionMismatch": "Тај сервер користи старији Termix. Ажурирајте га на верзију 2.9 или новију да бисте га повезали.", + "differentAccount": "Пријавили сте се на други налог. Пријавите се на налог са којим је овај уређај повезан или прво опозовите везу." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "title": "Линк ка Termix серверу", + "reloginTitle": "Пријавите се поново", + "savedServers": "Недавни сервери", + "removeServer": "Уклони са листе", + "serverDescription": "Унесите адресу коју користите за отварање Termix-а у прегледачу.", + "signinDescription": "Пријавите се на {{url}}", + "chooseDescription": "Овај уређај већ има податке. Шта би требало да се деси са њим?", + "finishingDescription": "Повезивање овог уређаја.", + "serverUrl": "Адреса сервера", + "serverUrlHint": "На пример https://termix.example.com", + "showProxySettings": "Подешавања обрнутог проксија", + "hideProxySettings": "Сакриј подешавања обрнутог проксија", + "continue": "Настави", + "back": "Назад", + "mergeTitle": "Додај га на мој налог", + "mergeBody": "Ставке ( {{count}} ) на овом уређају су додате на ваш налог. Ставке које ваш налог већ има остају такве какве јесу на серверу.", + "replaceTitle": "Замени га мојим налогом", + "replaceBody": "Ставке {{count}} на овом уређају се уклањају и овај уређај преузима све са вашег налога. Домаћини који се чувају на овом уређају остају само.", + "link": "Линк", + "linking": "Повезивање и покретање прве синхронизације...", + "linked": "Повезано. Ваши подаци се сада синхронизују.", + "signedInAgain": "Пријављени сте. Синхронизација је поново покренута." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Фолдер {{name}}", + "user": "Моје подразумеване вредности", + "admin": "Сервер", + "builtin": "Уграђено" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "Прилагођено", + "setHere": "Постави овде", + "notSet": "Није подешено", + "notSetTitle": "За ово није подешено подразумевано подешавање", + "resetTitle": "Овај хост поставља сопствену вредност. Кликните да бисте поново користили подразумевану вредност из {{source}}", + "clearTitle": "Постави на овај ниво. Кликните да бисте га обрисали и уместо тога користите {{source}}", + "inheritedTitle": "Прати подразумевану вредност из {{source}}", + "titleAdmin": "Подразумеване вредности хоста сервера", + "titleUser": "Подразумевана подешавања мог хоста", + "titleFolder": "Подразумеване вредности фасцикле: {{name}}", + "descriptionAdmin": "Подразумеване вредности за сваки хост на овом серверу. Подразумеване вредности корисника, подразумеване вредности фасцикле или сам хост и даље могу да подесе другачију вредност. Промените поље да бисте га поставили овде или га обришите да га не подесите.", + "descriptionUser": "Подразумеване вредности за све ваше хостове, преко серверских. Фасцикла или сам хост и даље могу да подесе другачију вредност. Промените поље да бисте га поставили овде или га обришите да га не подесите.", + "descriptionFolder": "Подразумеване вредности за хостове у овој фасцикли и њеним подфасциклама, преко ваше. Хост и даље може да подеси другу вредност. Промените поље да бисте га поставили овде или га обришите да га не подесите.", + "save": "Сачувај подразумеване вредности", + "saved_one": "Подразумеване вредности су сачуване. {{count}} хост је ажуриран.", + "saved_other": "Подразумевана подешавања су сачувана. {{count}} хостова је ажурирано.", + "savedInBackground": "Подразумевана подешавања су сачувана. Хостови се ажурирају у позадини.", + "appliedToHosts_one": "{{count}} хост је ажуриран новим подразумеваним подешавањима.", + "appliedToHosts_other": "{{count}} хостови су ажурирани новим подразумеваним подешавањима.", + "saveFailed": "Није могуће сачувати подразумеване вредности", + "loadFailed": "Није могуће учитати подразумеване вредности", + "confirmTitle": "Сачувај подразумеване вредности?", + "confirmChanges_one": "{{count}} хост прати ова подразумевана подешавања и промениће се.", + "confirmChanges_other": "{{count}} хостови прате ова подразумевана подешавања и промениће се.", + "confirmNoChanges": "Нема промена постојећег хоста. Нови хостови ће почети са овим подразумеваним подешавањима.", + "menuMyDefaults": "Подразумевана подешавања мог хоста", + "folderDefaultsAction": "Подразумеване вредности фасцикле", + "adminSectionDescription": "Поставите подразумеване вредности које сваки хост на овом серверу прати, за свако подешавање које хост има, укључујући и сваку функцију. Корисници и фасцикле могу да подесе своје изнад, а сваки хост и даље може да користи своју вредност.", + "editServerDefaults": "Измени подразумеване вредности сервера", + "resetMenu": "Ресетуј", + "resetAll": "Све на подразумеване вредности", + "resetCore": "Повезивање и SSH на подразумеване вредности", + "resetDone_one": "{{count}} хост сада прати своја подразумевана подешавања.", + "resetDone_other": "{{count}} хостови сада прате своја подразумевана подешавања." } } diff --git a/src/ui/locales/translated/sv_SE.json b/src/ui/locales/translated/sv_SE.json index 0cfa9a83c..756935bf0 100644 --- a/src/ui/locales/translated/sv_SE.json +++ b/src/ui/locales/translated/sv_SE.json @@ -55,8 +55,8 @@ "levelManage": "Hantera", "levelUseDesc": "Användning: Koppla inloggningsuppgifterna till värdar och anslut. Hemligheten i sig förblir dold.", "levelManageDesc": "Hantera: redigera även inloggningsuppgifterna och dela dem med andra.", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "Denna autentiseringsuppgift har inte delats ännu", + "accessRevoked": "Åtkomst återkallad", "shared": "Delad autentiseringsuppgift" }, "deleteCredentialAction": "Ta bort inloggningsuppgifter", @@ -113,14 +113,14 @@ "arrangeUnlocked": "Lås upp och dra för att ordna om" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Uppdatering tillgänglig. Öppna versionsinformationen på GitHub" }, "common": { "close": "Nära", "minimize": "Minimera", "online": "Online", "offline": "Off-line", - "signInFailed": "Sign in failed", + "signInFailed": "Inloggningen misslyckades", "unknown": "Okänd", "continue": "Fortsätta", "maintenance": "Underhåll", @@ -131,9 +131,9 @@ "dismiss": "Avfärda", "more": "Mer", "loading": "Belastning...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Värd", + "selectHost": "Välj en värd...", + "noHostConfigured": "Ingen värd konfigurerad", "optional": "Frivillig", "connect": "Ansluta", "copied": "Kopierad", @@ -187,7 +187,7 @@ "remove": "Ta bort", "add": "Tillägga", "update": "Uppdatera", - "noResults": "No results found" + "noResults": "Inga resultat hittades" }, "onboarding": { "stepCounter": "Steg {{current}} av {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Kommandopalett", "workflow_palette_desc": "Hoppa till valfri server eller åtgärd genom att skriva. Tryck två gånger på Skift för att öppna den.", "workflow_split": "Delad skärm", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Visa flera flikar sida vid sida, till exempel för att titta på loggar medan du arbetar.", "workflow_dock": "Sidopanel", "workflow_dock_desc": "Mellanklicka eller högerklicka på en sidofältsikon för att öppna den som en flik eller fästa den till höger.", "securityTitle": "Att hålla dina inloggningar säkra", @@ -248,13 +248,13 @@ "done_cli": "Kommandoradsverktyg", "done_cli_desc": "Hantera dina servrar från en terminal och använd Termix i dina egna skript.", "done_cli_link": "Öppna CLI-dokumentationen", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Hur vill du använda Termix?", + "desktopBody": "Du kan ändra detta när som helst från Synkronisera i sidofältet.", + "desktopLocalTitle": "Endast på den här enheten", + "desktopLocalBody": "Allt lagras här. Inget behöver konfigureras.", + "desktopLinkTitle": "Med min Termix-server", + "desktopLinkBody": "Logga in på din server för att använda samma värdar och inställningar på alla enheter.", + "desktopLinked": "Länkad till {{server}}" }, "nav": { "home": "Hem", @@ -295,21 +295,21 @@ "collapseSideMenu": "Minimera menyn", "roleAdministrator": "Administratör", "roleUser": "Användare", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Synkronisera", + "reconnectDisconnectedTerminals": "Återanslut alla frånkopplade terminaler", + "reconnectingTerminals_one": "Återansluter {{count}} -terminalen", + "reconnectingTerminals_other": "Återanslutning av {{count}} -terminaler", + "noDisconnectedTerminals": "Inga frånkopplade terminaler är redo att återanslutas", + "reconnectTerminalsFailed_one": "Kunde inte återansluta {{count}} terminalen", + "reconnectTerminalsFailed_other": "Kunde inte återansluta {{count}} terminaler", + "fullscreenUnsupported": "Helskärm stöds inte av den här webbläsaren", + "fullscreenFailed": "Kunde inte växla mellan helskärm", + "resetSidebarWidth": "Återställ bredd", + "collapseSidebar": "Komprimera sidofältet", + "openSidebar": "Öppna sidofältet", + "confirmCloseHost": "Stäng {{host}}?", + "enterFullscreen": "Gå in i helskärmsläge (Ctrl+Shift+F)", + "exitFullscreen": "Avsluta helskärm (Ctrl+Shift+F)" }, "hosts": { "hosts": "Värdar", @@ -353,7 +353,7 @@ "serverStats": "Värdstatistik", "status": { "available": "Tillgänglig", - "reachable": "Up, but the last sign in failed", + "reachable": "Uppe, men den senaste inloggningen misslyckades", "offline": "Off-line", "monitoringDisabled": "Övervakning inaktiverad", "label": "Status" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Tvinga tangentbordsinteraktivt", "overrideCredentialUsername": "Åsidosätt användarnamn för inloggningsuppgifter", "overrideCredentialUsernameDesc": "Använd användarnamnet som anges ovan istället för användarnamnet för inloggningsuppgifterna", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Använd $external.username för att fylla i namnet du loggade in med via SSO eller LDAP.", "jumpHostChain": "Hoppa värdkedja", "portKnocking": "Port Knocking", "addKnock": "Lägg till port", @@ -626,14 +626,14 @@ "actionsClick": "Klicka för att expandera/minimera", "openOnDoubleClick": "Öppna vid dubbelklick", "openOnDoubleClickDesc": "Kräv ett dubbelklick för att öppna en värdsession istället för ett enda klick", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Visa mappsökvägar", + "showFolderPathsDesc": "Visa sökvägen till den överordnade mappen ovanför kapslade undermappsnamn. Undermappar förblir indragna oavsett hur.", + "hostClickBehavior": "Klicka på en värd", + "hostClickBehaviorDesc": "Vad händer när du klickar på en värd som redan har en öppen flik? Ctrl/Cmd-klick, mellanklick eller \"Öppna i ny flik\" startar alltid en ny flik.", + "hostClickNewTab": "Öppna alltid en ny flik", + "hostClickFocusExisting": "Växla till den öppna fliken", + "hostClickFocusExistingDoubleNew": "Klicka för att växla, dubbelklicka för en ny flik", + "openInNewTab": "Öppna i ny flik", "deletedHost": "Borttagen {{name}}", "copiedToClipboard": "Kopierad till urklipp", "remoteDesktopUrlCopied": "Fjärrskrivbords-URL kopierad", @@ -698,7 +698,7 @@ "groupCredentials": "Referenser", "groupNotes": "Anteckningar", "groupTags": "Taggar och pin", - "groupProxy": "Proxy", + "groupProxy": "Ombud", "groupJumpHosts": "Hoppa värdar", "groupFeatureFlags": "Funktionsflaggor", "groupAdvanced": "Avancerad konfiguration", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Varje slutpunkt behöver ett annat namn.", "webUiErrorPortRange": "Slutpunkten {{row}} behöver en port mellan 1 och 65535.", "webUiErrorPathInvalid": "Slutpunkten {{row}} har en ogiltig sökväg. Använd en sökväg som /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Kopiera länken {{name}}", + "filterAuthAgent": "SSH-agent", + "authTypeNeedsPlugin": "Denna värd använder {{type}}, vilket behöver {{plugin}}. Det är avstängt på denna server.", + "authTypeUnknown": "Denna värd använder {{type}}, vilket inte är tillgängligt på denna server.", + "authFieldsAfterSave": "Spara värden först och fyll sedan i dessa fält.", + "enablePluginFeature": "Aktivera {{name}}", + "disablePluginFeature": "Inaktivera {{name}}", "filterFeaturesGroup": "Drag", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "Spara endast på den här enheten", + "localOnlyDesc": "Den här värden skickas inte till servern och visas inte på dina andra enheter.", + "folderLocalOnly": "Spara endast på den här enheten", + "folderLocalOnlyDesc": "Den här mappen och alla värdar i den finns kvar på den här enheten och skickas inte till servern.", + "sudoPasswordDesc": "Används när terminalen fyller i en sudo-prompt och av funktioner som kör kommandon med sudo.", + "editorCancel": "Avboka", + "editorSaving": "Sparande...", + "editorUpdate": "Uppdatera värd", + "editorAdd": "Lägg till värd", + "speedSearch": "Sök värdar. Piltangenterna för att välja, Enter för att ansluta, Esc för att stänga", + "speedSearchList": "Värdlista. Skriv eller tryck på / för att söka.", + "importNoHosts": "Inga värdar hittades i filen", + "importTooMany": "Du kan importera upp till {{max}} värdar samtidigt", + "importSummary": "Import klar: {{imported}} importerad, {{updated}} uppdaterad, {{failed}} misslyckades", + "importHostsFailed": "Misslyckades med att importera värdar" }, "commandPalette": { "searchPlaceholder": "Sök efter värdar, kommandon eller inställningar...", @@ -897,58 +897,58 @@ "navigate": "Navigera", "select": "Välja", "toggleWith": "Växla med", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Fler åtgärder", + "noTargetTab": "Ingen terminalflik är öppen" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "Delad skärm", + "defaultLabel": "Dela {{number}}", + "splitRight": "Dela höger", + "splitDown": "Dela upp", + "addToSplit": "Lägg till i {{split}}", + "paneEmptyItem": "Ruta {{index}}: tom", + "paneItem": "Panel {{index}}: {{label}}", + "paneNumber": "Ruta {{index}}", + "newPaneRight": "Ny ruta till höger", + "newPaneBelow": "Ny ruta nedan", + "emptyTitle": "Tom ruta", + "emptyHint": "Välj något att visa här. Medan den här rutan är markerad öppnas även allt du öppnar från sidofältet här.", + "openTabs": "Öppna flikar", + "noOpenTabs": "Inga andra flikar är öppna", + "hosts": "Värdar", + "searchHosts": "Sök värdar", + "noHosts": "Inga matchande värdar", + "newSession": "Ny", + "closePane": "Stäng rutan", + "closeSession": "Stäng sessionen", + "moveToTab": "Flytta till en egen flik", + "swapWith": "Byt med", + "showHere": "Visa i den här rutan", + "clearPane": "Töm den här rutan", + "zoom": "Zoompanel", + "unzoom": "Återställ layout", + "unsplit": "Ouppdelad", + "layouts": "Layouter", + "applyLayout": "Ändra layout", + "newSplit": "Ny uppdelning", + "maxPanes": "En delning kan innehålla upp till {{count}} rutor", + "dropSplit": "Släpp för att dela", + "dropHere": "Släpp för att visa här", + "paneActions": "Rutans åtgärder", + "dividerHint": "Dra för att ändra storlek. Dubbelklicka för att jämna ut.", + "openInSplit": "Öppna i delning", + "openInNewSplit": "Ny delning med den aktuella fliken", + "shortcuts": "Genvägar", + "shortcutNavigate": "Flytta mellan rutor", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Två sida vid sida", + "rows2": "Två staplade", + "columns3": "Tre sida vid sida", + "mainLeft3": "En vänster, två höger", + "mainBottom3": "Två överst, en underst", + "grid4": "Rutnät med fyra", + "grid5": "Tre över två", + "grid6": "Rutnät med sex" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Autentisering krävs", "mfaPushRequired": "Push-autentisering krävs", "mfaMenuPlaceholder": "Ange ditt svar", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Kod eller \"push\"", "mfaWaitingApproval": "Väntar på godkännande på din enhet...", "mfaSendRequest": "Skicka förfrågan", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Säkerhetsnyckel", + "browserSignInUrl": "Inloggnings-URL", + "browserSignInOpen": "Öppna i webbläsaren", + "browserSignInContinue": "Jag har slutfört inloggningen", + "browserSignInRequired": "{{provider}} Inloggning krävs", "connectionLogTitle": "Anslutningslogg", "connectionLogCopy": "Kopiera loggar till urklipp", "connectionLogEmpty": "Inga anslutningsloggar ännu", @@ -1032,7 +1032,7 @@ "external": "Extern", "loginWithExternal": "Logga in med extern leverantör", "loginWithExternalDesc": "Logga in med din konfigurerade externa identitetsleverantör", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Extern inloggning stöds inte i skrivbordsappen ännu. Använd webbversionen.", "loginWithProvider": "Logga in med {{name}}", "orContinueWith": "eller fortsätt med", "resetPasswordButton": "Återställ lösenord", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "Lösenordsinloggning är inaktiverad. Använd en lösenordsnyckel eller en extern autentiseringsleverantör.", "attemptsRemaining": "{{count}} försök återstår", "confirmResetDataWipe": "Det här kontot har inte loggats in sedan krypteringsuppgraderingen, så dess lagrade data kan inte återställas utan det gamla lösenordet. Om du återställer kontot tas dess värdar, inloggningsuppgifter och kodavsnitt permanent bort. Vill du fortsätta?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "Lösenord", + "secondFactorUnavailable": "Ditt konto använder en andra faktor som inte är tillgänglig just nu. Kontakta en administratör för att återställa den.", + "secondFactorNoUI": "Den här andra faktorn kan inte visas på den här skärmen. Kontakta en administratör.", + "serverAuthentication": "Serverinloggning", + "minChars": "min. {{min}} tecken" }, "hostKey": { "verifyNewHost": "Verifiera SSH-värdnyckel", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Misslyckades med att verifiera återställningskoden", "failedCompleteReset": "Misslyckades med att slutföra återställning av lösenord", "invalidTotpCode": "Ogiltig TOTP-kod", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Misslyckades med att starta extern inloggning", + "silentSigninOidcUnavailable": "Tyst inloggning begärdes, men ingen extern inloggning är konfigurerad.", "failedUserInfo": "Misslyckades med att hämta användarinformation efter inloggning", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Extern inloggning misslyckades", "invalidAuthUrl": "Ogiltig auktoriserings-URL mottagen från backend", "requiredField": "Detta fält är obligatoriskt", "minLength": "Minimilängden är {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Misslyckades med att spara autentiseringstoken", "authTokenMissing": "Servern returnerade inte en ny autentiseringstoken. Vänligen logga in igen.", "failedToLoadServer": "Misslyckades med att ladda servern", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Sessionen har upphört. Vänligen logga in igen." }, "messages": { "registrationDisabled": "Registrering av nytt konto är för närvarande inaktiverat av en administratör. Vänligen logga in eller kontakta en administratör.", @@ -1163,7 +1163,7 @@ "panelMain": "Huvudsaklig", "panelSide": "Sida", "justNow": "just nu", - "activityFileManager": "File manager" + "activityFileManager": "Filhanteraren" }, "donation": { "title": "Gillar du Termix?", @@ -1188,12 +1188,12 @@ "add": "Tillägga:", "commandPalette": "Kommandopaletten", "done": "Gjort", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Dra kort för att ändra ordning. Dra kolumndelaren för att ändra storlek på kolumner. Dra i den nedre kanten av ett kort för att ändra dess höjd. Använd papperskorgen för att ta bort ett kort.", "empty": "Tömma", "clear": "Rensa", "viewServerDetails": "Visa serverinformation", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Dra för att ändra storlek på kolumner", + "hostsAvailable": "Tillgängliga värdar" }, "admin": { "sectionGeneral": "Allmän", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Databas", "sectionApiKeys": "API-nycklar", "sectionAuditLog": "Granskningslogg", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS-certifikat", "sectionBranding": "Vit etikett", "brandingAppName": "Applikationsnamn", "brandingAppNameDesc": "Visas på inloggningsskärmen och i webbläsarfliken. Lämna tomt för att använda \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Ogiltig bild. Använd en PNG-, JPEG- eller WEBP-fil på upp till 750 KB.", "brandingSaved": "Varumärkesinställningarna har sparats", "brandingSaveFailed": "Det gick inte att spara varumärkesinställningarna", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Certifikatet som Termix hanterar via HTTPS. Ladda upp ditt eget här, eller skaffa och förnya ett från Let's Encrypt i avsnittet ACME-certifikat.", "sslDocsLink": "Visa SSL-dokument", "sslCertStatus": "Certifikatstatus", "sslCertStatusNone": "Inget certifikat", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Låt nya användare registrera sig själva med användarnamn och lösenord", "allowPasswordLogin": "Tillåt lösenordsinloggning", "allowPasswordLoginDesc": "Användarnamn/lösenord inloggning", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Skapa externa konton automatiskt", + "oidcAutoProvisionDesc": "Skapa ett konto första gången någon loggar in via en extern inloggning som SSO eller LDAP, även när registreringen är avstängd", + "secondFactorAfterExternalLogin": "Be om en andra faktor efter externa inloggningar (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Av, en registrerad andra faktor efterfrågas endast efter lösenord och andra lokala inloggningar, samma som tidigare. På, den efterfrågas efter varje inloggningsmetod, inklusive SSO och LDAP.", "allowPasswordReset": "Tillåt lösenordsåterställning", "allowPasswordResetDesc": "Återställ kod via Docker-loggar", "auditForwardingTitle": "Vidarebefordra till SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Det gick inte att spara inställningarna för vidarebefordran av granskning", "sessionTimeout": "Sessionstimeout", "hours": "timmar", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Minst 1 timme, max 720 timmar", "monitoringDefaults": "Övervakning av standardvärden", "statusCheck": "Statuskontroll", "sec": "sek", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "Ingen utgångsdatum", "revokedBadge": "ÅTERKALLAD", "authTypeDual": "Dubbel autentisering", - "authTypeOidc": "External", + "authTypeOidc": "Extern", "authTypeLocal": "Lokal", "adminStatusAdministrator": "Administratör", "adminStatusRegularUser": "Vanlig användare", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Administratörsstatus", "editUserUserId": "Användar-ID", "linkAccountTitle": "Länka konton", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Sammanfoga det externa kontot {{username}} med ett befintligt lokalt konto.", + "linkAccountDescLocal": "Länka ett lokalt konto {{username}} med ett befintligt externt konto.", "linkAccountWarningTitle": "Detta kommer att:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Ta bort det endast externa kontot", + "linkAccountEffect2": "Lägg till dess externa inloggning till målkontot", + "linkAccountEffect3": "Tillåt både extern inloggning och lösenordsinloggning", "linkAccountTargetUsername": "Användarnamn för lokalt konto", "linkAccountTargetPlaceholder": "Ange användarnamnet för det lokala kontot som ska länkas till", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Användarnamn för externt konto", + "linkAccountOidcPlaceholder": "Ange användarnamnet för det endast externa kontot som ska sammanfogas", + "linkAccountOidcNotFound": "Inget externt konto hittades med det användarnamnet", "linkAccounts": "Länka konton", "linkAccountSuccess": "Konton har länkats", "linkAccountFailed": "Misslyckades med att länka konton", "linkAccountInProgress": "Länkar...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Ta bort länken till extern inloggning", + "unlinkAccountDesc": "Ta bort extern inloggning från {{username}}. De kommer bara att kunna logga in med sitt lösenord.", + "unlinkAccountWarning": "Detta tar bort extern inloggning från det här kontot. Användaren måste ha ett lösenord angett för att fortsätta logga in.", + "unlinkAccount": "Ta bort länken till extern inloggning", "unlinkAccountInProgress": "Avlänkar...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Extern inloggning har avlänkats", + "unlinkAccountFailed": "Misslyckades med att ta bort länken till extern inloggning", "saving": "Sparande...", "updateRegistrationFailed": "Misslyckades med att uppdatera registreringsinställningen", "updatePasswordLoginFailed": "Misslyckades med att uppdatera lösenordsinställningen för inloggning", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Misslyckades med att uppdatera inställningen för automatiskt skapande", + "updateSecondFactorAfterExternalLoginFailed": "Misslyckades med att uppdatera inställningen för den andra faktorn", "updatePasswordResetFailed": "Misslyckades med att uppdatera inställningen för lösenordsåterställning", "sessionTimeoutRange2": "Sessionens tidsgräns måste vara mellan 1 och 720 timmar", "sessionTimeoutSaved": "Sessionstimeout sparad", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Inga aktiva sessioner", "deleteSuccessorLabel": "Överlämna värdar och inloggningsuppgifter till", "deleteSuccessorMe": "Jag (administratören som tar bort)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Ingen, radera dem", "deleteSuccessorDesc": "Allt som den här användaren delade fortsätter att fungera under den nya ägaren; om du väljer ingen tas deras värdar, inloggningsuppgifter och delningar bort.", "deleteUserDangerDesc": "Ta bort {{username}} och all dess data (värdar, inloggningsuppgifter, kodavsnitt, historik) permanent. Detta kan inte ångras.", "deleteUserConfirm": "Vill du permanent radera {{username}} och all deras data?", @@ -1477,31 +1477,31 @@ "saveError": "Kunde inte spara rollbehörigheter", "save": "Spara", "saving": "Sparande...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Funktionen är inaktiverad", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", + "hosts": "Värdar", + "credentials": "Referenser", "admin": "Administration" } }, "notificationPrivateEndpoints": "Tillåtna privata aviseringsvärdar", "notificationPrivateEndpointsDesc": "Exakta privata värdar som aviseringskanaler kan kontakta. Separera dem med kommatecken.", "updateNotificationEndpointsFailed": "Misslyckades med att uppdatera tillåtelselistan för aviseringsslutpunkten", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Andra faktorer", + "secondFactorsNone": "Inga andra faktorer registrerade", + "secondFactorUnavailable": "Inte tillgänglig", + "resetSecondFactors": "Återställ andra faktorer", + "resetSecondFactorsConfirm": "Ta bort varannan faktor för {{username}}? De kan logga in med sitt lösenord eller SSO och registrera sig igen.", + "secondFactorsResetSuccess": "Andra faktorer återställs", + "secondFactorsResetFailed": "Misslyckades med att återställa andra faktorer", + "passwordLoginForced": "Lösenordsinloggning är avstängd, men ingen annan inloggningsmetod är aktiverad, så den förblir påslagen för tillfället. Ingen blir utelåst.", + "sslNotRenewed": "Ingenting förnyar detta certifikat. Det upphör att gälla {{date}}. Aktivera automatisk förnyelse i avsnittet ACME-certifikat eller ladda upp ett nytt innan dess.", + "sslSelfSigned": "Självsignerat certifikat skapat av Termix. Webbläsare kommer att varna om det.", + "sslRenewedBy": "Förnyas automatiskt av {{plugin}}", + "sslIssuer": "Utfärdad av {{issuer}}", + "sslNames": "Omslag {{names}}", + "sslManualTitle": "Ladda upp ett certifikat", + "updateExternalAutoProvisionFailed": "Misslyckades med att uppdatera inställningen för automatiskt skapande" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protokoll", "domainLabel": "Domän", "domainPlaceholder": "frivillig", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Anslut till {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Ingenting installerat kan ansluta till den här värdtypen" }, "keybindings": { "title": "Kortkommandon", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Koppla tangenter till åtgärder i terminalen och appen, eller ändra de inbyggda genvägarna.", "defaultsHeading": "Inbyggda genvägar", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Appgenvägar", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Dela höger", + "splitDown": "Dela upp", + "zoomPane": "Zooma den fokuserade rutan", + "navigatePane": "Flytta mellan rutor", + "nextTab": "Nästa flik", + "previousTab": "Föregående flik", + "jumpTab": "Hoppa till fliken", + "previousView": "Tillbaka till föregående sidofältvy", + "fullscreen": "Växla helskärm" }, "customHeading": "Anpassade genvägar", "addBinding": "Lägg till genväg", @@ -1566,9 +1566,9 @@ "actionNextTab": "Växla till nästa flik", "actionPreviousTab": "Växla till föregående flik", "actionOpenCommandPalette": "Öppna snabbsökning", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Återanslut aktuell session", + "unavailableAction": "{{type}} (ej tillgänglig)", + "actionRequiredError": "Välj en åtgärd först" }, "userProfile": { "donateTitle": "Håll Termix vid liv", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Inställningarna återställs till standardinställningarna.", "storageModeSwitch": "Preferenslagring", "sectionAccount": "Konto", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Endast den här enheten", + "desktopProfileDescription": "Den här profilen finns på den här enheten och loggar in av sig själv. Länka den till en Termix-server för att använda samma värdar och inställningar på varje enhet.", "sectionInterface": "Gränssnitt", "interfacePresetDesc": "Hur mycket detaljer Termix visar. Alla funktioner förblir tillgängliga.", "preset_simple": "Enkel", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Återställ dina öppna flikar när du loggar in eller uppdaterar sidan, även från en annan enhet", "confirmTabClose": "Bekräfta stängning av fliken", "confirmTabCloseDesc": "Fråga innan terminalflikar stängs", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Visa fliknummer", + "showTabNumbersDesc": "Visa ett nummer på varje flik för att skilja dem åt", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "Visningsinställningarna för värds sidofält har flyttats till panelen Anpassa sidofältet, som öppnas från verktygsfältet Värdar.", "showHostTags": "Visa värdtaggar", @@ -1727,7 +1727,7 @@ "importFailed": "Importen misslyckades: {{error}}", "roleUser": "Användare", "authMethodDual": "Dubbel autentisering", - "authMethodOidc": "External", + "authMethodOidc": "Extern", "done": "Gjort", "apiKeyNameRequired": "Nyckelnamn krävs", "apiKeyCreated": "API-nyckeln \"{{name}}\" skapad", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyonatten", "themeOneDark": "En mörk", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Inloggad på {{server}}", + "linkedProfileDescription": "Den här enheten använder ditt konto på servern och sparar en kopia av dina data, så den fungerar fortfarande offline.", + "manageSync": "Hantera synkronisering", + "setUpSync": "Länk till en server", + "settingsTabsAndShortcuts": "Flikar och genvägar" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Se dina lösenord och nycklar", + "consequence": "Den kan läsa den lagrade hemligheten för vilken värd du än kan nå." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Kör kommandon på dina servrar", + "consequence": "Alla kommandon, på värdar du ansluter det till, med din åtkomst." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Kör program på den här maskinen", + "consequence": "Program körs på själva Termix-servern, inte på dina värdar." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Skapa och ändra användarkonton", + "consequence": "Den kan lägga till användare och ändra deras roller." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Hantera inloggning", + "consequence": "Den kan lägga till en inloggningsmetod, en andra faktor eller en SSH-inloggningstyp." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Hantera certifikat", + "consequence": "Det kan ersätta certifikatet som Termix serverar via HTTPS och svara på domänkontroller från certifikatutfärdare." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Åtkomst till seriella och USB-enheter", + "consequence": "Den kan öppna en fysisk serieport på maskinen som kör Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Skapa och ändra värdar", + "consequence": "Den kan lägga till värdar och redigera de du redan har." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Anslut till dina servrar", + "consequence": "Den kan inte se dina lösenord eller nycklar." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Spara nya inloggningsuppgifter", + "consequence": "Den kan lägga till lösenord och nycklar till dina sparade inloggningsuppgifter." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Nå internet", + "consequence": "Den kan skicka förfrågningar till externa tjänster." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Acceptera anslutningar", + "consequence": "Den öppnar en port på Termix-servern." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Skicka nätverkssändningar", + "consequence": "Den kan skicka paket till enheter i det lokala nätverket, till exempel en Wake-on-LAN-signal." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Se användarnamn och roller", + "consequence": "Aldrig lösenordshashes, aldrig tvåfaktorstillstånd." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Se allt som händer", + "consequence": "Inklusive aktivitet från andra användare, inte bara din." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Skicka aviseringar", + "consequence": "Till dig eller andra användare, och genom de kanaler de upprättar." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Ta emot alla varningar", + "consequence": "Lagrar och levererar de aviseringar som alla plugin-program skickar, inklusive deras innehåll." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Läs granskningsloggen", + "consequence": "Den kan se vem som gjorde vad och när." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Öppna skrivbordsfönster", + "consequence": "Endast i Termix-skrivbordsappen." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Agera som andra användare", + "consequence": "Kör bakgrundsarbete med en annan användares åtkomst, till exempel schemalagda jobb. Varje användning skrivs till granskningsloggen." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Läs huvudkontotabeller", + "consequence": "Kan fråga användare, roller och värdar direkt från databasen." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Se din värdlista", + "consequence": "Namn och adresser för värdar som du redan kan se." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Lagra sina egna data", + "consequence": "Förvaras i egna tabeller, separat från andra plugins." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Kom ihåg små inställningar", + "consequence": "Hålls separat från andra plugins." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Lagra sina egna filer", + "consequence": "I en egen mapp på disken, separat från andra plugin-program." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Lagra sina egna hemligheter", + "consequence": "Krypterad av Termix. Plugin-programmet har aldrig nyckeln." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Läs Termix-inställningar", + "consequence": "Serverinställningar, inte dina värdar eller inloggningsuppgifter." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Se installerade funktioner", + "consequence": "Den kan se vilka funktioner som är installerade och körs." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Lägg till egna skärmar", + "consequence": "Flikar, paneler och inställningar som du kan dölja senare." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} är inte tillgänglig", + "needsUnknownPlugin": "Den här funktionen är inte tillgänglig", + "disabledHint": "Den är avstängd på den här servern.", + "missingHint": "Funktionen den kom ifrån har tagits bort.", + "failed": "{{name}} kunde inte starta", + "failedHint": "En administratör kan kontrollera serverloggarna för mer information.", + "loading": "Laddar {{name}}", + "crashed": "Något gick fel i {{name}}", + "retry": "Försök igen" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "Uppsättning", + "secretNotSet": "Inte inställd", + "secretReplace": "Ersätta", + "pluginSettingsSaved": "Inställningar sparade", + "pluginSettingsInvalid": "Vissa inställningar kunde inte sparas. Kontrollera de markerade fälten.", + "pluginSettingsSaveFailed": "Det gick inte att spara inställningarna", + "pluginSettingsLoadFailed": "Misslyckades med att ladda inställningarna", + "featureUnavailable": "{{name}} är inte tillgängligt just nu. Dessa inställningar har sparats men träder inte i kraft." }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "Uppdatera", + "retry": "Försöka igen", + "sudoHint": "Ange ett sudo-lösenord för den här värden i värdredigeraren för att aktivera privilegierade åtgärder.", + "noData": "Inga uppgifter", + "filter": "Filtrera..." }, "sync": { - "server": "Termix server", - "account": "Account", + "server": "Termix-server", + "account": "Konto", "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "never": "aldrig", + "justNow": "just nu", + "minutesAgo_one": "för {{count}} minut sedan", + "minutesAgo_other": "för {{count}} minuter sedan", + "hoursAgo_one": "för {{count}} timme sedan", + "hoursAgo_other": "för {{count}} timmar sedan", + "actionFailed": "Det fungerade inte. Försök igen.", + "unlinkedTitle": "Endast den här enheten", + "unlinkedBody": "Termix fungerar på egen hand på den här enheten. Länka den till din Termix-server för att hålla allt i takt.", + "unlinkedPointHosts": "Dina värdar, inloggningsuppgifter, snippets och inställningar följer dig till alla enheter.", + "unlinkedPointOffline": "Allt fungerar fortfarande även när servern inte kan nås, och hämtar uppdateringen senare.", + "unlinkedPointAccount": "Du loggar in med ditt serverkonto, och även värdar som personer delat med dig visas här.", + "linkButton": "Länk till en server", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Synkronisering", + "offline": "Servern kan inte nås", + "error": "Synkronisering stoppad", + "signedOut": "Utloggad", + "synced": "Synkroniserad {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} ändring väntar på synkronisering", + "pending_other": "{{count}} ändringar som väntar på att synkroniseras", + "signInAgain": "Logga in igen", + "syncNow": "Synkronisera nu", + "unlink": "Ta bort länken", + "unlinked": "Den här enheten är inte längre länkad", + "unlinkTitle": "Koppla bort den här enheten?", + "unlinkDescription": "Den stoppar synkroniseringen och loggar ut från servern. Värdar som delas med dig av andra tas bort från den här enheten oavsett vilket.", + "unlinkKeepTitle": "Spara mina uppgifter här", + "unlinkKeepBody": "Dina värdar, inloggningsuppgifter och inställningar finns kvar på den här enheten och fortsätter att fungera på egen hand.", + "unlinkRemoveTitle": "Ta bort synkroniserad data", + "unlinkRemoveBody": "Allt som kom från servern tas bort från den här enheten. Värdar som lagras på den här enheten stannar kvar.", + "conflictsTitle": "Konflikter", + "conflictsDescription": "Dessa ändrades här och på servern samtidigt. Serverversionen används. Behåll din version för att skicka den till servern istället.", + "keepMine": "Behåll min", + "keepServer": "Behåll servern", + "errorsTitle": "Inte synkroniserad", + "errorsDescription": "Servern accepterade inte dessa ändringar. De finns kvar på den här enheten.", + "errorPermission": "Ditt konto på servern har inte behörighet att göra den här ändringen.", + "retry": "Försök igen", + "whatSyncs": "Vad som synkroniseras", + "whatSyncsDescription": "Stäng av allt du vill behålla endast på den här enheten.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Servern har inte detta", + "notOnDevice": "Inte på den här enheten än", + "localOnlyHint": "Du kan också spara enskilda värdar eller mappar på den här enheten från deras inställningar.", + "originTitle": "Där kopplingar börjar", + "originDescription": "Anslut till värdar från den här enheten eller via servern. Du kan ändra detta per värd.", + "originLocal": "Den här enheten", + "originRemote": "Servern", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "Värdar", + "sshCredentials": "Referenser", + "sshFolders": "Mappar", + "userPreferences": "Inställningar", + "pluginUserSettings": "Funktionsinställningar", + "sharedHosts": "Värdar delade med dig", + "sharedCredentials": "Inloggningsuppgifter som delat sig med dig", + "vaultProfiles": "Vault-profiler", + "snippetFolders": "Utdragsmappar", + "snippets": "Snuttar", + "dashboardServiceLinks": "Servicelänkar", + "homepageItems": "Startsida-objekt", + "networkTopology": "Nätverkskarta", + "workspaces": "Arbetsytor" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", - "username": "Username", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "title": "Omvänd proxy", + "description": "Behövs bara när något som Cloudflare Access eller en inloggningssida finns framför din server.", + "headersTitle": "Extra rubriker", + "headersHint": "Skickas med varje begäran till servern, till exempel en Cloudflare Access-tjänsttoken.", + "headerName": "Rubriknamn", + "headerValue": "Värde", + "savedValue": "Sparad, skriv för att ändra", + "addHeader": "Lägg till rubrik", + "removeHeader": "Ta bort rubrik", + "basicAuthTitle": "Användarnamn och lösenord", + "basicAuthHint": "För en proxy som frågar efter användarnamn och lösenord före Termix.", + "username": "Användarnamn", + "password": "Lösenord", + "allowInvalidCertificate": "Lita på ett självsignerat certifikat", + "allowInvalidCertificateHint": "Endast för din egen server, när dess certifikat inte kommer från en känd utfärdare.", + "saved": "Sparad" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Det där ser inte ut som en webbadress.", + "unreachable": "Kunde inte nå servern. Kontrollera adressen och att servern körs.", + "unreachableWithReason": "Kunde inte nå servern: {{reason}}", + "tlsUntrusted": "Servercertifikatet är inte betrott. Om det här är din egen server med ett självsignerat certifikat, aktivera alternativet nedan.", + "basicAuthRequired": "Något framför servern frågar efter användarnamn och lösenord. Ange dem nedan.", + "proxyLogin": "En inloggningssida eller proxyserver besvarades istället för Termix. Lägg till de rubriker som behövs nedan, eller kontrollera adressen.", + "notTermix": "Det finns ingen Termix-server på den adressen. Om den körs under en sökväg, inkludera den, som https://example.com/termix.", + "versionMismatch": "Den servern kör en äldre Termix. Uppdatera den till 2.9 eller senare för att länka.", + "differentAccount": "Du har loggat in på ett annat konto. Logga in på kontot som den här enheten är länkad till, eller ta bort länken först." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "title": "Länk till en Termix-server", + "reloginTitle": "Logga in igen", + "savedServers": "Senaste servrarna", + "removeServer": "Ta bort från listan", + "serverDescription": "Ange adressen du använder för att öppna Termix i din webbläsare.", + "signinDescription": "Logga in på {{url}}", + "chooseDescription": "Den här enheten har redan data. Vad borde hända med den?", + "finishingDescription": "Länkar den här enheten.", + "serverUrl": "Serveradress", + "serverUrlHint": "Till exempel https://termix.example.com", + "showProxySettings": "Inställningar för omvänd proxy", + "hideProxySettings": "Dölj inställningar för omvänd proxy", + "continue": "Fortsätta", + "back": "Tillbaka", + "mergeTitle": "Lägg till det på mitt konto", + "mergeBody": "Föremålen {{count}} på den här enheten har lagts till i ditt konto. Föremål som redan finns i ditt konto förblir som de är på servern.", + "replaceTitle": "Ersätt det med mitt konto", + "replaceBody": "Objekten {{count}} på den här enheten tas bort, och den här enheten tar allt från ditt konto. Värdar som lagras på den här enheten stannar bara kvar.", + "link": "Länk", + "linking": "Länkar och kör den första synkroniseringen...", + "linked": "Länkad. Dina data synkroniseras nu.", + "signedInAgain": "Inloggad. Synkroniseringen körs igen." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", + "folder": "Mapp {{name}}", + "user": "Mina standardinställningar", "admin": "Server", - "builtin": "Built-in" + "builtin": "Inbyggt" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "Beställnings", + "setHere": "Ställ in här", + "notSet": "Inte inställd", + "notSetTitle": "Ingen standardinställning är inställd för detta", + "resetTitle": "Denna värd anger sitt eget värde. Klicka för att använda standardvärdet från {{source}} igen.", + "clearTitle": "Ställ in på denna nivå. Klicka för att rensa den och använd {{source}} istället.", + "inheritedTitle": "Följer standardinställningen från {{source}}", + "titleAdmin": "Standardvärden för servervärden", + "titleUser": "Min värds standardinställningar", + "titleFolder": "Standardinställningar för mappar: {{name}}", + "descriptionAdmin": "Standardvärden för varje värd på den här servern. En användares egna standardvärden, en mapps standardvärden eller värden själv kan fortfarande ange ett annat värde. Ändra ett fält för att ställa in det här, eller avmarkera det för att lämna det oinställt.", + "descriptionUser": "Standardvärden för alla dina värdar, över serverns. En mapp eller själva värden kan fortfarande ange ett annat värde. Ändra ett fält för att ställa in det här, eller avmarkera det för att lämna det oinställt.", + "descriptionFolder": "Standardvärden för värdarna i den här mappen och dess undermappar, över dina egna. En värd kan fortfarande ange ett annat värde. Ändra ett fält för att ställa in det här, eller avmarkera det för att lämna det oinställt.", + "save": "Spara standardinställningar", + "saved_one": "Standardinställningarna sparades. {{count}} värd uppdaterades.", + "saved_other": "Standardinställningarna sparades. {{count}} värdar uppdaterades.", + "savedInBackground": "Standardinställningarna har sparats. Värdar uppdateras i bakgrunden.", + "appliedToHosts_one": "{{count}} värden uppdaterades med de nya standardinställningarna.", + "appliedToHosts_other": "{{count}} värdar uppdaterades med de nya standardinställningarna.", + "saveFailed": "Kunde inte spara standardvärdena", + "loadFailed": "Kunde inte läsa in standardvärdena", + "confirmTitle": "Spara standardinställningar?", + "confirmChanges_one": "{{count}} värd följer dessa standardvärden och kommer att ändras.", + "confirmChanges_other": "{{count}} värdar följer dessa standardvärden och kommer att ändras.", + "confirmNoChanges": "Inga befintliga värdändringar. Nya värdar börjar med dessa standardinställningar.", + "menuMyDefaults": "Min värds standardinställningar", + "folderDefaultsAction": "Standardinställningar för mappar", + "adminSectionDescription": "Ställ in standardvärdena som varje värd på den här servern följer, för varje inställning en värd har, inklusive varje funktions. Användare och mappar kan ställa in sina egna överst, och vilken värd som helst kan fortfarande använda sitt eget värde.", + "editServerDefaults": "Redigera serverstandardinställningar", + "resetMenu": "Återställa", + "resetAll": "Allt till standardinställningarna", + "resetCore": "Anslutning och SSH till standardinställningar", + "resetDone_one": "{{count}} värden följer nu sina standardinställningar.", + "resetDone_other": "{{count}} -värdar följer nu sina standardinställningar." } } diff --git a/src/ui/locales/translated/th_TH.json b/src/ui/locales/translated/th_TH.json index 431e183b1..0d81dab02 100644 --- a/src/ui/locales/translated/th_TH.json +++ b/src/ui/locales/translated/th_TH.json @@ -55,8 +55,8 @@ "levelManage": "จัดการ", "levelUseDesc": "วิธีใช้: แนบข้อมูลประจำตัวเข้ากับโฮสต์แล้วเชื่อมต่อ รหัสลับนั้นจะยังคงถูกซ่อนไว้", "levelManageDesc": "การจัดการ: คุณสามารถแก้ไขข้อมูลประจำตัวและแชร์ให้ผู้อื่นได้ด้วย", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "ข้อมูลประจำตัวนี้ยังไม่ได้ถูกเผยแพร่", + "accessRevoked": "สิทธิ์การเข้าถึงถูกเพิกถอน", "shared": "ข้อมูลประจำตัวที่แชร์" }, "deleteCredentialAction": "ลบข้อมูลรับรอง", @@ -113,14 +113,14 @@ "arrangeUnlocked": "ปลดล็อกการลากเพื่อจัดเรียงใหม่" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "มีการอัปเดตแล้ว โปรดดูรายละเอียดการเปลี่ยนแปลงได้ที่ GitHub" }, "common": { "close": "ปิด", "minimize": "ลดขนาด", "online": "ออนไลน์", "offline": "ออฟไลน์", - "signInFailed": "Sign in failed", + "signInFailed": "การเข้าสู่ระบบล้มเหลว", "unknown": "ไม่ทราบ", "continue": "ดำเนินการต่อ", "maintenance": "การซ่อมบำรุง", @@ -131,9 +131,9 @@ "dismiss": "อนุญาตให้ออกไป", "more": "มากกว่า", "loading": "กำลังโหลด...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "เจ้าภาพ", + "selectHost": "เลือกโฮสต์...", + "noHostConfigured": "ไม่มีการกำหนดค่าโฮสต์", "optional": "ไม่จำเป็น", "connect": "เชื่อมต่อ", "copied": "คัดลอกแล้ว", @@ -187,7 +187,7 @@ "remove": "ลบ", "add": "เพิ่ม", "update": "อัปเดต", - "noResults": "No results found" + "noResults": "ไม่พบผลลัพธ์" }, "onboarding": { "stepCounter": "ขั้นตอน {{current}} ของ {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "พาเลทคำสั่ง", "workflow_palette_desc": "สามารถสลับไปยังเซิร์ฟเวอร์หรือการกระทำใดก็ได้โดยการพิมพ์ กด Shift สองครั้งเพื่อเปิดใช้งาน", "workflow_split": "แบ่งหน้าจอ", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "แสดงแท็บหลายแท็บเคียงข้างกัน เช่น เพื่อดูบันทึกการทำงานขณะที่คุณทำงาน", "workflow_dock": "แผงด้านข้าง", "workflow_dock_desc": "คลิกเมาส์กลางหรือคลิกขวาที่ไอคอนในแถบด้านข้างเพื่อเปิดเป็นแท็บหรือตรึงไว้ทางด้านขวา", "securityTitle": "รักษาข้อมูลการเข้าสู่ระบบของคุณให้ปลอดภัย", @@ -248,13 +248,13 @@ "done_cli": "เครื่องมือบรรทัดคำสั่ง", "done_cli_desc": "จัดการเซิร์ฟเวอร์ของคุณจากเทอร์มินัล และใช้ Termix ในสคริปต์ของคุณเอง", "done_cli_link": "เปิดเอกสาร CLI", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "คุณต้องการใช้งาน Termix อย่างไร?", + "desktopBody": "คุณสามารถเปลี่ยนการตั้งค่านี้ได้ตลอดเวลาจากเมนูซิงค์ในแถบด้านข้าง", + "desktopLocalTitle": "เฉพาะบนอุปกรณ์นี้เท่านั้น", + "desktopLocalBody": "ทุกอย่างถูกจัดเก็บไว้ที่นี่แล้ว ไม่ต้องตั้งค่าอะไรเลย", + "desktopLinkTitle": "ด้วยเซิร์ฟเวอร์ Termix ของฉัน", + "desktopLinkBody": "ลงชื่อเข้าใช้เซิร์ฟเวอร์ของคุณเพื่อใช้โฮสต์และการตั้งค่าเดียวกันบนทุกอุปกรณ์", + "desktopLinked": "เชื่อมโยงไปยัง {{server}}" }, "nav": { "home": "บ้าน", @@ -295,21 +295,21 @@ "collapseSideMenu": "ยุบเมนู", "roleAdministrator": "ผู้ดูแลระบบ", "roleUser": "ผู้ใช้", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "ซิงค์", + "reconnectDisconnectedTerminals": "เชื่อมต่อขั้วต่อที่หลุดทั้งหมดอีกครั้ง", + "reconnectingTerminals_one": "กำลังเชื่อมต่อเทอร์มินัล {{count}} ใหม่", + "reconnectingTerminals_other": "กำลังเชื่อมต่อเทอร์มินัล {{count}} ใหม่", + "noDisconnectedTerminals": "ไม่มีขั้วต่อที่ถูกตัดการเชื่อมต่อพร้อมที่จะเชื่อมต่อใหม่", + "reconnectTerminalsFailed_one": "ไม่สามารถเริ่มต้นการเชื่อมต่อเทอร์มินัล {{count}} ใหม่ได้", + "reconnectTerminalsFailed_other": "ไม่สามารถเริ่มต้นการเชื่อมต่อเทอร์มินัล {{count}} ใหม่ได้", + "fullscreenUnsupported": "เบราว์เซอร์นี้ไม่รองรับโหมดเต็มหน้าจอ", + "fullscreenFailed": "ไม่สามารถสลับโหมดเต็มหน้าจอได้", + "resetSidebarWidth": "รีเซ็ตความกว้าง", + "collapseSidebar": "ยุบแถบด้านข้าง", + "openSidebar": "เปิดแถบด้านข้าง", + "confirmCloseHost": "ปิด {{host}}?", + "enterFullscreen": "เข้าสู่โหมดเต็มหน้าจอ (Ctrl+Shift+F)", + "exitFullscreen": "ออกจากโหมดเต็มหน้าจอ (Ctrl+Shift+F)" }, "hosts": { "hosts": "โฮสต์", @@ -353,7 +353,7 @@ "serverStats": "เมตริกโฮสต์", "status": { "available": "มีอยู่", - "reachable": "Up, but the last sign in failed", + "reachable": "ใช้งานได้ แต่การเข้าสู่ระบบครั้งสุดท้ายล้มเหลว", "offline": "ออฟไลน์", "monitoringDisabled": "ปิดใช้งานการตรวจสอบ", "label": "สถานะ" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "แป้นพิมพ์แบบอินเทอร์แอคทีฟของ Force", "overrideCredentialUsername": "แทนที่ชื่อผู้ใช้ข้อมูลประจำตัว", "overrideCredentialUsernameDesc": "ใช้ชื่อผู้ใช้ที่ระบุไว้ข้างต้นแทนชื่อผู้ใช้ของข้อมูลประจำตัว", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "ใช้ $external.username เพื่อกรอกชื่อที่คุณใช้เข้าสู่ระบบผ่าน SSO หรือ LDAP", "jumpHostChain": "ห่วงโซ่ Jump Host", "portKnocking": "การเคาะพอร์ต", "addKnock": "เพิ่มพอร์ต", @@ -626,14 +626,14 @@ "actionsClick": "คลิกเพื่อขยาย/ยุบ", "openOnDoubleClick": "เปิดเมื่อดับเบิ้ลคลิก", "openOnDoubleClickDesc": "ต้องดับเบิ้ลคลิกเพื่อเปิดเซสชันโฮสต์ แทนที่จะคลิกเพียงครั้งเดียว", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "แสดงเส้นทางโฟลเดอร์", + "showFolderPathsDesc": "แสดงพาธของโฟลเดอร์หลักไว้เหนือชื่อโฟลเดอร์ย่อยที่ซ้อนกัน โฟลเดอร์ย่อยจะยังคงเยื้องเข้าไปด้านในอยู่ดี", + "hostClickBehavior": "การคลิกโฮสต์", + "hostClickBehaviorDesc": "จะเกิดอะไรขึ้นเมื่อคุณคลิกที่โฮสต์ที่มีแท็บเปิดอยู่แล้ว การคลิก Ctrl/Cmd, การคลิกเมาส์กลาง หรือ \"เปิดในแท็บใหม่\" จะเปิดแท็บใหม่เสมอ", + "hostClickNewTab": "เปิดแท็บใหม่ทุกครั้ง", + "hostClickFocusExisting": "สลับไปยังแท็บที่เปิดอยู่", + "hostClickFocusExistingDoubleNew": "คลิกเพื่อสลับ ดับเบิ้ลคลิกเพื่อเปิดแท็บใหม่", + "openInNewTab": "เปิดในแท็บใหม่", "deletedHost": "ลบแล้ว {{name}}", "copiedToClipboard": "คัดลอกไปยังคลิปบอร์ดแล้ว", "remoteDesktopUrlCopied": "คัดลอก URL ของเดสก์ท็อประยะไกลแล้ว", @@ -698,7 +698,7 @@ "groupCredentials": "คุณสมบัติ", "groupNotes": "หมายเหตุ", "groupTags": "แท็กและพิน", - "groupProxy": "Proxy", + "groupProxy": "พร็อกซี", "groupJumpHosts": "โฮสต์ Jump", "groupFeatureFlags": "ธงคุณสมบัติ", "groupAdvanced": "การกำหนดค่าขั้นสูง", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "แต่ละปลายทางต้องมีชื่อที่แตกต่างกัน", "webUiErrorPortRange": "ปลายทาง {{row}} ต้องการพอร์ตระหว่าง 1 ถึง 65535", "webUiErrorPathInvalid": "ปลายทาง {{row}} มีเส้นทางที่ไม่ถูกต้อง โปรดใช้เส้นทางเช่น /admin", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "คัดลอกลิงก์ {{name}}", + "filterAuthAgent": "เอเจนต์ SSH", + "authTypeNeedsPlugin": "โฮสต์นี้ใช้ {{type}}ซึ่งต้องการ {{plugin}}แต่ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้", + "authTypeUnknown": "โฮสต์นี้ใช้ {{type}}ซึ่งไม่สามารถใช้งานได้บนเซิร์ฟเวอร์นี้", + "authFieldsAfterSave": "บันทึกข้อมูลโฮสต์ก่อน จากนั้นกรอกข้อมูลในช่องเหล่านี้", + "enablePluginFeature": "เปิดใช้งาน {{name}}", + "disablePluginFeature": "ปิดใช้งาน {{name}}", "filterFeaturesGroup": "คุณสมบัติ", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "เก็บไว้ในอุปกรณ์นี้เท่านั้น", + "localOnlyDesc": "โฮสต์นี้จะไม่ถูกส่งไปยังเซิร์ฟเวอร์และจะไม่ปรากฏบนอุปกรณ์อื่นๆ ของคุณ", + "folderLocalOnly": "เก็บไว้ในอุปกรณ์นี้เท่านั้น", + "folderLocalOnlyDesc": "โฟลเดอร์นี้และไฟล์โฮสต์ทั้งหมดในโฟลเดอร์นี้จะยังคงอยู่ในอุปกรณ์นี้และจะไม่ถูกส่งไปยังเซิร์ฟเวอร์", + "sudoPasswordDesc": "ใช้เมื่อเทอร์มินัลแสดงข้อความพร้อมท์ sudo และโดยฟีเจอร์ที่เรียกใช้คำสั่งด้วย sudo", + "editorCancel": "ยกเลิก", + "editorSaving": "ประหยัด...", + "editorUpdate": "อัปเดตโฮสต์", + "editorAdd": "เพิ่มโฮสต์", + "speedSearch": "ค้นหาโฮสต์ ใช้ปุ่มลูกศรเพื่อเลือก กด Enter เพื่อเชื่อมต่อ กด Esc เพื่อปิด", + "speedSearchList": "รายชื่อโฮสต์ พิมพ์หรือกด / เพื่อค้นหา", + "importNoHosts": "ไม่พบโฮสต์ในไฟล์", + "importTooMany": "คุณสามารถนำเข้าโฮสต์ได้สูงสุด {{max}} ตัวพร้อมกัน", + "importSummary": "การนำเข้าเสร็จสมบูรณ์: {{imported}} นำเข้าแล้ว, {{updated}} อัปเดตแล้ว, {{failed}} ล้มเหลว", + "importHostsFailed": "ไม่สามารถนำเข้าโฮสต์ได้" }, "commandPalette": { "searchPlaceholder": "ค้นหาโฮสต์ คำสั่ง หรือการตั้งค่า...", @@ -897,58 +897,58 @@ "navigate": "นำทาง", "select": "เลือก", "toggleWith": "สลับด้วย", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "การดำเนินการเพิ่มเติม", + "noTargetTab": "ไม่มีแท็บเทอร์มินัลเปิดอยู่" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "แบ่งหน้าจอ", + "defaultLabel": "แยก {{number}}", + "splitRight": "แยกขวา", + "splitDown": "แยกออก", + "addToSplit": "เพิ่มไปยัง {{split}}", + "paneEmptyItem": "บานหน้าต่าง {{index}}: ว่างเปล่า", + "paneItem": "บานหน้าต่าง {{index}}: {{label}}", + "paneNumber": "บานหน้าต่าง {{index}}", + "newPaneRight": "หน้าต่างบานใหม่ทางด้านขวา", + "newPaneBelow": "หน้าต่างใหม่ด้านล่าง", + "emptyTitle": "หน้าต่างว่าง", + "emptyHint": "เลือกสิ่งที่จะแสดงที่นี่ ขณะที่เลือกช่องนี้อยู่ สิ่งใดก็ตามที่คุณเปิดจากแถบด้านข้างก็จะเปิดขึ้นที่นี่ด้วย", + "openTabs": "แท็บที่เปิดอยู่", + "noOpenTabs": "ไม่มีแท็บอื่นเปิดอยู่", + "hosts": "โฮสต์", + "searchHosts": "ค้นหาโฮสต์", + "noHosts": "ไม่มีการจับคู่โฮสต์", + "newSession": "ใหม่", + "closePane": "ปิดบานหน้าต่าง", + "closeSession": "ปิดการประชุม", + "moveToTab": "ย้ายไปไว้ในแท็บใหม่", + "swapWith": "แลกเปลี่ยนกับ", + "showHere": "แสดงในบานหน้าต่างนี้", + "clearPane": "ล้างบานหน้าต่างนี้", + "zoom": "หน้าต่างซูม", + "unzoom": "คืนค่าเค้าโครง", + "unsplit": "ไม่แยก", + "layouts": "เค้าโครง", + "applyLayout": "เปลี่ยนเค้าโครง", + "newSplit": "การแบ่งใหม่", + "maxPanes": "การแบ่งหน้าจอสามารถรองรับได้สูงสุด {{count}} บานหน้าต่าง", + "dropSplit": "ตกลงเพื่อแยก", + "dropHere": "เลื่อนลงเพื่อแสดงที่นี่", + "paneActions": "การกระทำของบานหน้าต่าง", + "dividerHint": "ลากเพื่อปรับขนาด ดับเบิ้ลคลิกเพื่อปรับให้เท่ากัน", + "openInSplit": "เปิดแบบแยกหน้าจอ", + "openInNewSplit": "แบ่งหน้าจอใหม่โดยใช้แท็บปัจจุบัน", + "shortcuts": "ทางลัด", + "shortcutNavigate": "เลื่อนไปมาระหว่างบานหน้าต่าง", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "สองข้างเคียงกัน", + "rows2": "สองชั้นซ้อนกัน", + "columns3": "สามตัวเรียงกัน", + "mainLeft3": "หนึ่งซ้าย สองขวา", + "mainBottom3": "สองตัวบน หนึ่งตัวล่าง", + "grid4": "ตารางสี่ช่อง", + "grid5": "สามต่อสอง", + "grid6": "ตารางหกช่อง" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "ต้องยืนยันตัวตน", "mfaPushRequired": "ต้องมีการตรวจสอบสิทธิ์แบบพุช", "mfaMenuPlaceholder": "กรุณาป้อนคำตอบของคุณ", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "โค้ดหรือ \"พุช\"", "mfaWaitingApproval": "กำลังรอการอนุมัติบนอุปกรณ์ของคุณ...", "mfaSendRequest": "ส่งคำขอ", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "รหัสความปลอดภัย", + "browserSignInUrl": "URL สำหรับเข้าสู่ระบบ", + "browserSignInOpen": "เปิดในเบราว์เซอร์", + "browserSignInContinue": "ฉันเข้าสู่ระบบเรียบร้อยแล้ว", + "browserSignInRequired": "{{provider}} ต้องเข้าสู่ระบบ", "connectionLogTitle": "บันทึกการเชื่อมต่อ", "connectionLogCopy": "คัดลอกบันทึกไปยังคลิปบอร์ด", "connectionLogEmpty": "ยังไม่มีบันทึกการเชื่อมต่อ", @@ -1032,7 +1032,7 @@ "external": "ภายนอก", "loginWithExternal": "เข้าสู่ระบบด้วยผู้ให้บริการภายนอก", "loginWithExternalDesc": "เข้าสู่ระบบโดยใช้ผู้ให้บริการยืนยันตัวตนภายนอกที่คุณกำหนดค่าไว้", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "แอปพลิเคชันบนเดสก์ท็อปยังไม่รองรับการเข้าสู่ระบบจากภายนอก โปรดใช้เวอร์ชันเว็บแทน", "loginWithProvider": "เข้าสู่ระบบด้วย {{name}}", "orContinueWith": "หรือดำเนินการต่อด้วย", "resetPasswordButton": "รีเซ็ตรหัสผ่าน", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "การเข้าสู่ระบบด้วยรหัสผ่านถูกปิดใช้งาน โปรดใช้รหัสผ่านเฉพาะหรือผู้ให้บริการตรวจสอบสิทธิ์ภายนอก", "attemptsRemaining": "เหลือการลองอีก {{count}} ครั้ง", "confirmResetDataWipe": "บัญชีนี้ไม่ได้เข้าสู่ระบบตั้งแต่การอัปเกรดการเข้ารหัส ดังนั้นข้อมูลที่จัดเก็บไว้จึงไม่สามารถกู้คืนได้หากไม่มีรหัสผ่านเดิม การรีเซ็ตจะลบโฮสต์ ข้อมูลประจำตัว และส่วนย่อยของบัญชีนี้อย่างถาวร ต้องการดำเนินการต่อหรือไม่?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "รหัสผ่าน", + "secondFactorUnavailable": "บัญชีของคุณใช้การยืนยันตัวตนสองขั้นตอน ซึ่งขณะนี้ไม่สามารถใช้งานได้ โปรดติดต่อผู้ดูแลระบบเพื่อรีเซ็ต", + "secondFactorNoUI": "ปัจจัยที่สองนี้ไม่สามารถแสดงบนหน้าจอนี้ได้ โปรดติดต่อผู้ดูแลระบบ", + "serverAuthentication": "การเข้าสู่ระบบเซิร์ฟเวอร์", + "minChars": "อย่างน้อย {{min}} ตัวอักษร" }, "hostKey": { "verifyNewHost": "ตรวจสอบคีย์โฮสต์ SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "ไม่สามารถตรวจสอบรหัสรีเซ็ตได้", "failedCompleteReset": "การรีเซ็ตรหัสผ่านล้มเหลว", "invalidTotpCode": "รหัส TOTP ไม่ถูกต้อง", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "ไม่สามารถเริ่มต้นการเข้าสู่ระบบจากภายนอกได้", + "silentSigninOidcUnavailable": "มีการร้องขอการเข้าสู่ระบบแบบเงียบ แต่ไม่ได้ตั้งค่าการเข้าสู่ระบบภายนอกไว้", "failedUserInfo": "ไม่สามารถดึงข้อมูลผู้ใช้ได้หลังจากเข้าสู่ระบบ", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "การเข้าสู่ระบบจากภายนอกล้มเหลว", "invalidAuthUrl": "ได้รับ URL การอนุญาตที่ไม่ถูกต้องจากแบ็กเอนด์", "requiredField": "ช่องนี้จำเป็นต้องกรอก", "minLength": "ความยาวขั้นต่ำคือ {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "ไม่สามารถบันทึกโทเค็นการตรวจสอบสิทธิ์ได้", "authTokenMissing": "เซิร์ฟเวอร์ไม่ได้ส่งโทเค็นการตรวจสอบสิทธิ์ใหม่กลับมา โปรดเข้าสู่ระบบอีกครั้ง", "failedToLoadServer": "ไม่สามารถโหลดเซิร์ฟเวอร์ได้", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "เซッションหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้ง" }, "messages": { "registrationDisabled": "ขณะนี้ผู้ดูแลระบบได้ปิดใช้งานการลงทะเบียนบัญชีใหม่แล้ว โปรดเข้าสู่ระบบหรือติดต่อผู้ดูแลระบบ", @@ -1163,7 +1163,7 @@ "panelMain": "หลัก", "panelSide": "ด้านข้าง", "justNow": "เมื่อสักครู่นี้เอง", - "activityFileManager": "File manager" + "activityFileManager": "ตัวจัดการไฟล์" }, "donation": { "title": "ชอบ Termix ไหม?", @@ -1188,12 +1188,12 @@ "add": "เพิ่ม:", "commandPalette": "พาเลทคำสั่ง", "done": "เสร็จแล้ว", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "ลากการ์ดเพื่อจัดเรียงลำดับใหม่ ลากเส้นแบ่งคอลัมน์เพื่อปรับขนาดคอลัมน์ ลากขอบด้านล่างของการ์ดเพื่อเปลี่ยนความสูง ใช้ปุ่มถังขยะเพื่อลบการ์ด", "empty": "ว่างเปล่า", "clear": "ชัดเจน", "viewServerDetails": "ดูรายละเอียดเซิร์ฟเวอร์", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "ลากเพื่อปรับขนาดคอลัมน์", + "hostsAvailable": "มีโฮสต์พร้อมให้บริการ" }, "admin": { "sectionGeneral": "ทั่วไป", @@ -1203,7 +1203,7 @@ "sectionDatabase": "ฐานข้อมูล", "sectionApiKeys": "คีย์ API", "sectionAuditLog": "บันทึกการตรวจสอบ", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "ใบรับรอง HTTPS", "sectionBranding": "ไวท์เลเบล", "brandingAppName": "ชื่อแอปพลิเคชัน", "brandingAppNameDesc": "แสดงบนหน้าจอเข้าสู่ระบบและแท็บเบราว์เซอร์ เว้นว่างไว้เพื่อใช้ \"Termix\"", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "รูปภาพไม่ถูกต้อง กรุณาใช้ไฟล์ PNG, JPEG หรือ WEBP ที่มีขนาดไม่เกิน 750 KB", "brandingSaved": "บันทึกการตั้งค่าแบรนด์แล้ว", "brandingSaveFailed": "ไม่สามารถบันทึกการตั้งค่าแบรนด์ได้", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "ใบรับรองที่ Termix ให้บริการผ่าน HTTPS คุณสามารถอัปโหลดใบรับรองของคุณเองได้ที่นี่ หรือขอรับและต่ออายุใบรับรองจาก Let's Encrypt ในส่วนใบรับรอง ACME", "sslDocsLink": "ดูเอกสาร SSL", "sslCertStatus": "สถานะใบรับรอง", "sslCertStatusNone": "ไม่มีใบรับรอง", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "อนุญาตให้ผู้ใช้ใหม่ลงทะเบียนด้วยตนเองโดยใช้ชื่อผู้ใช้และรหัสผ่าน", "allowPasswordLogin": "อนุญาตให้เข้าสู่ระบบด้วยรหัสผ่าน", "allowPasswordLoginDesc": "เข้าสู่ระบบด้วยชื่อผู้ใช้/รหัสผ่าน", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "สร้างบัญชีภายนอกโดยอัตโนมัติ", + "oidcAutoProvisionDesc": "สร้างบัญชีผู้ใช้ในครั้งแรกที่มีคนเข้าสู่ระบบผ่านการเข้าสู่ระบบภายนอก เช่น SSO หรือ LDAP แม้ว่าการลงทะเบียนจะปิดอยู่ก็ตาม", + "secondFactorAfterExternalLogin": "ขอให้ยืนยันตัวตนสองขั้นตอนหลังจากเข้าสู่ระบบจากภายนอก (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "หากปิดใช้งาน ระบบจะขอการยืนยันตัวตนสองขั้นตอนที่ลงทะเบียนไว้เฉพาะหลังจากป้อนรหัสผ่านและการเข้าสู่ระบบภายในเครื่องอื่นๆ เท่านั้น เช่นเดียวกับก่อนหน้านี้ หากเปิดใช้งาน ระบบจะขอการยืนยันตัวตนสองขั้นตอนหลังจากวิธีการเข้าสู่ระบบทุกวิธี รวมถึง SSO และ LDAP", "allowPasswordReset": "อนุญาตให้รีเซ็ตรหัสผ่าน", "allowPasswordResetDesc": "รีเซ็ตโค้ดผ่านบันทึก Docker", "auditForwardingTitle": "ส่งต่อไปยัง SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "ไม่สามารถบันทึกการตั้งค่าการส่งต่อการตรวจสอบได้", "sessionTimeout": "หมดเวลาเซสชัน", "hours": "ชั่วโมง", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "ขั้นต่ำ 1 ชั่วโมง ขั้นสูงสุด 720 ชั่วโมง", "monitoringDefaults": "การตรวจสอบค่าเริ่มต้น", "statusCheck": "ตรวจสอบสถานะ", "sec": "วินาที", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "ไม่มีวันหมดอายุ", "revokedBadge": "เพิกถอน", "authTypeDual": "การตรวจสอบสิทธิ์แบบคู่", - "authTypeOidc": "External", + "authTypeOidc": "ภายนอก", "authTypeLocal": "ท้องถิ่น", "adminStatusAdministrator": "ผู้ดูแลระบบ", "adminStatusRegularUser": "ผู้ใช้ทั่วไป", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "สถานะผู้ดูแลระบบ", "editUserUserId": "รหัสผู้ใช้", "linkAccountTitle": "เชื่อมโยงบัญชี", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "รวมบัญชีภายนอก {{username}} เข้ากับบัญชีภายในที่มีอยู่แล้ว", + "linkAccountDescLocal": "เชื่อมโยงบัญชีภายในเครื่อง {{username}} กับบัญชีภายนอกที่มีอยู่แล้ว", "linkAccountWarningTitle": "สิ่งนี้จะ:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "ลบบัญชีที่ใช้งานได้เฉพาะภายนอก", + "linkAccountEffect2": "เพิ่มการเข้าสู่ระบบภายนอกไปยังบัญชีเป้าหมาย", + "linkAccountEffect3": "อนุญาตให้เข้าสู่ระบบทั้งจากภายนอกและโดยใช้รหัสผ่าน", "linkAccountTargetUsername": "ชื่อผู้ใช้บัญชีภายในเครื่อง", "linkAccountTargetPlaceholder": "ป้อนชื่อผู้ใช้บัญชีท้องถิ่นเพื่อเชื่อมโยง", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "ชื่อผู้ใช้บัญชีภายนอก", + "linkAccountOidcPlaceholder": "ป้อนชื่อผู้ใช้บัญชีภายนอกเพื่อผสานรวม", + "linkAccountOidcNotFound": "ไม่พบบัญชีผู้ใช้ภายนอกที่มีชื่อผู้ใช้ดังกล่าว", "linkAccounts": "เชื่อมโยงบัญชี", "linkAccountSuccess": "เชื่อมโยงบัญชีสำเร็จแล้ว", "linkAccountFailed": "ไม่สามารถเชื่อมโยงบัญชีได้", "linkAccountInProgress": "กำลังเชื่อมโยง...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "ยกเลิกการเชื่อมโยงการเข้าสู่ระบบภายนอก", + "unlinkAccountDesc": "ลบการเข้าสู่ระบบจากภายนอกออกจาก {{username}}พวกเขาจะสามารถเข้าสู่ระบบได้เฉพาะด้วยรหัสผ่านเท่านั้น", + "unlinkAccountWarning": "การดำเนินการนี้จะลบการเข้าสู่ระบบจากภายนอกออกจากบัญชีนี้ ผู้ใช้ต้องตั้งรหัสผ่านเพื่อเข้าสู่ระบบต่อไป", + "unlinkAccount": "ยกเลิกการเชื่อมโยงการเข้าสู่ระบบภายนอก", "unlinkAccountInProgress": "กำลังยกเลิกการเชื่อมต่อ...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "การเข้าสู่ระบบภายนอกไม่ได้เชื่อมโยงไว้", + "unlinkAccountFailed": "ไม่สามารถยกเลิกการเชื่อมโยงการเข้าสู่ระบบภายนอกได้", "saving": "ประหยัด...", "updateRegistrationFailed": "ไม่สามารถอัปเดตการตั้งค่าการลงทะเบียนได้", "updatePasswordLoginFailed": "ไม่สามารถอัปเดตการตั้งค่าการเข้าสู่ระบบด้วยรหัสผ่านได้", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "ไม่สามารถอัปเดตการตั้งค่าการสร้างอัตโนมัติได้", + "updateSecondFactorAfterExternalLoginFailed": "ไม่สามารถอัปเดตการตั้งค่าปัจจัยยืนยันตัวตนที่สองได้", "updatePasswordResetFailed": "ไม่สามารถอัปเดตการตั้งค่าการรีเซ็ตรหัสผ่านได้", "sessionTimeoutRange2": "เวลาหมดอายุของเซสชันต้องอยู่ระหว่าง 1 ถึง 720 ชั่วโมง", "sessionTimeoutSaved": "บันทึกการหมดเวลาของเซสชันแล้ว", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "ไม่มีเซสชันที่ใช้งานอยู่", "deleteSuccessorLabel": "ส่งมอบโฮสต์และข้อมูลประจำตัวให้กับ", "deleteSuccessorMe": "ฉัน (ผู้ดูแลระบบที่ลบไฟล์)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "ไม่มีใคร ลบพวกเขาทิ้งไป", "deleteSuccessorDesc": "ทุกสิ่งที่ผู้ใช้รายนี้แชร์ยังคงใช้งานได้ภายใต้เจ้าของใหม่ การเลือก \"ไม่รับ\" จะไม่ลบโฮสต์ ข้อมูลประจำตัว และการแชร์ของผู้ใช้รายนี้", "deleteUserDangerDesc": "ลบ {{username}} และข้อมูลทั้งหมด (โฮสต์ ข้อมูลรับรอง ตัวอย่างโค้ด ประวัติ) อย่างถาวร การดำเนินการนี้ไม่สามารถย้อนกลับได้", "deleteUserConfirm": "ลบ {{username}} และข้อมูลทั้งหมดของพวกเขาอย่างถาวร?", @@ -1477,31 +1477,31 @@ "saveError": "ไม่สามารถบันทึกสิทธิ์การเข้าถึงบทบาทได้", "save": "บันทึก", "saving": "ประหยัด...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "ฟังก์ชันถูกปิดใช้งาน", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", - "admin": "Administration" + "hosts": "โฮสต์", + "credentials": "คุณสมบัติ", + "admin": "การบริหาร" } }, "notificationPrivateEndpoints": "อนุญาตให้โฮสต์แจ้งเตือนส่วนตัว", "notificationPrivateEndpointsDesc": "ระบุโฮสต์ส่วนตัวที่ช่องทางการแจ้งเตือนสามารถติดต่อได้ คั่นด้วยเครื่องหมายจุลภาค", "updateNotificationEndpointsFailed": "ไม่สามารถอัปเดตรายการอนุญาตปลายทางการแจ้งเตือนได้", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "ปัจจัยที่สอง", + "secondFactorsNone": "ไม่มีปัจจัยรองใด ๆ ที่ถูกนำมาพิจารณา", + "secondFactorUnavailable": "ไม่พร้อมใช้งาน", + "resetSecondFactors": "รีเซ็ตปัจจัยที่สอง", + "resetSecondFactorsConfirm": "ลบปัจจัยที่สองทั้งหมดสำหรับ {{username}}? พวกเขาสามารถเข้าสู่ระบบด้วยรหัสผ่านหรือ SSO และลงทะเบียนใหม่ได้", + "secondFactorsResetSuccess": "ปัจจัยที่สองรีเซ็ต", + "secondFactorsResetFailed": "ไม่สามารถรีเซ็ตปัจจัยที่สองได้", + "passwordLoginForced": "การล็อกอินด้วยรหัสผ่านถูกปิดใช้งานอยู่ แต่ไม่มีการเปิดใช้งานวิธีการล็อกอินอื่น ดังนั้นจึงยังคงเปิดใช้งานอยู่ต่อไปในขณะนี้ ไม่มีใครถูกล็อกไม่ให้เข้าใช้งาน", + "sslNotRenewed": "ไม่มีสิ่งใดต่ออายุใบรับรองนี้ได้ ใบรับรองจะหมดอายุในวันที่ {{date}}โปรดเปิดใช้งานการต่ออายุอัตโนมัติในส่วนใบรับรอง ACME หรืออัปโหลดใบรับรองใหม่ก่อนวันหมดอายุ", + "sslSelfSigned": "ใบรับรองแบบลงนามด้วยตนเองที่สร้างโดย Termix เบราว์เซอร์จะแจ้งเตือนเกี่ยวกับเรื่องนี้", + "sslRenewedBy": "ต่ออายุอัตโนมัติโดย {{plugin}}", + "sslIssuer": "ออกโดย {{issuer}}", + "sslNames": "ปก {{names}}", + "sslManualTitle": "อัปโหลดใบรับรอง", + "updateExternalAutoProvisionFailed": "ไม่สามารถอัปเดตการตั้งค่าการสร้างอัตโนมัติได้" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "โปรโตคอล", "domainLabel": "โดเมน", "domainPlaceholder": "ไม่จำเป็น", - "connectToAction": "Connect to {{name}}", - "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "connectToAction": "เชื่อมต่อกับ {{name}}", + "sshProtocol": "เอสเอช", + "noTarget": "ไม่มีสิ่งใดที่ติดตั้งไว้สามารถเชื่อมต่อกับโฮสต์ประเภทนี้ได้" }, "keybindings": { "title": "แป้นพิมพ์ลัด", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "ผูกปุ่มลัดกับการกระทำต่างๆ ในเทอร์มินัลและแอป หรือเปลี่ยนทางลัดที่สร้างไว้แล้ว", "defaultsHeading": "ทางลัดในตัว", - "fixedHeading": "App Shortcuts", + "fixedHeading": "ทางลัดแอป", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "แยกขวา", + "splitDown": "แยกออก", + "zoomPane": "ซูมบานหน้าต่างที่โฟกัสอยู่", + "navigatePane": "เลื่อนไปมาระหว่างบานหน้าต่าง", + "nextTab": "แท็บถัดไป", + "previousTab": "แท็บก่อนหน้า", + "jumpTab": "ข้ามไปยังแท็บ", + "previousView": "กลับไปยังมุมมองแถบด้านข้างก่อนหน้า", + "fullscreen": "สลับโหมดเต็มหน้าจอ" }, "customHeading": "ทางลัดแบบกำหนดเอง", "addBinding": "เพิ่มทางลัด", @@ -1566,9 +1566,9 @@ "actionNextTab": "สลับไปยังแท็บถัดไป", "actionPreviousTab": "สลับไปยังแท็บก่อนหน้า", "actionOpenCommandPalette": "เปิดการค้นหาด่วน", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "เชื่อมต่อเซสชันปัจจุบันอีกครั้ง", + "unavailableAction": "{{type}} (ไม่สามารถใช้งานได้)", + "actionRequiredError": "เลือกการกระทำก่อน" }, "userProfile": { "donateTitle": "รักษา Termix ให้คงอยู่ต่อไป", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "การตั้งค่าจะถูกรีเซ็ตเป็นค่าเริ่มต้น", "storageModeSwitch": "การจัดเก็บการตั้งค่า", "sectionAccount": "บัญชี", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "อุปกรณ์นี้เท่านั้น", + "desktopProfileDescription": "โปรไฟล์นี้จะอยู่ในอุปกรณ์นี้และจะเข้าสู่ระบบโดยอัตโนมัติ เชื่อมต่อกับเซิร์ฟเวอร์ Termix เพื่อใช้โฮสต์และการตั้งค่าเดียวกันบนทุกอุปกรณ์", "sectionInterface": "อินเทอร์เฟซ", "interfacePresetDesc": "Termix แสดงรายละเอียดได้มากแค่ไหน ฟีเจอร์ทุกอย่างยังคงใช้งานได้ตลอด", "preset_simple": "เรียบง่าย", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "กู้คืนแท็บที่เปิดอยู่ของคุณเมื่อคุณเข้าสู่ระบบหรือรีเฟรชหน้าเว็บ แม้กระทั่งจากอุปกรณ์อื่น", "confirmTabClose": "ยืนยันการปิดแท็บ", "confirmTabCloseDesc": "ถามก่อนปิดแท็บเทอร์มินัล", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "แสดงหมายเลขแท็บ", + "showTabNumbersDesc": "แสดงหมายเลขกำกับไว้บนแต่ละแท็บเพื่อช่วยแยกแยะความแตกต่าง", "settingsAppRail": "แอป เรล", "sidebarSettingsMoved": "การตั้งค่าการแสดงผลแถบด้านข้างของโฮสต์ได้ย้ายไปอยู่ที่แผง \"ปรับแต่งแถบด้านข้าง\" ซึ่งเปิดได้จากแถบเครื่องมือของโฮสต์", "showHostTags": "แสดงแท็กโฮสต์", @@ -1727,7 +1727,7 @@ "importFailed": "การนำเข้าล้มเหลว: {{error}}", "roleUser": "ผู้ใช้", "authMethodDual": "การตรวจสอบสิทธิ์แบบคู่", - "authMethodOidc": "External", + "authMethodOidc": "ภายนอก", "done": "เสร็จแล้ว", "apiKeyNameRequired": "จำเป็นต้องระบุชื่อคีย์", "apiKeyCreated": "สร้างคีย์ API \"{{name}}\" แล้ว", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "โตเกียวไนท์", "themeOneDark": "มืดหนึ่งเดียว", "themeGruvbox": "กรูฟบ็อกซ์", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "เข้าสู่ระบบที่ {{server}}", + "linkedProfileDescription": "อุปกรณ์นี้ใช้บัญชีของคุณบนเซิร์ฟเวอร์และเก็บสำเนาข้อมูลของคุณไว้ ดังนั้นจึงยังคงใช้งานได้แม้ในขณะออฟไลน์", + "manageSync": "จัดการการซิงค์", + "setUpSync": "ลิงก์ไปยังเซิร์ฟเวอร์", + "settingsTabsAndShortcuts": "แท็บและทางลัด" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "ดูรหัสผ่านและกุญแจของคุณ", + "consequence": "โปรแกรมนี้สามารถอ่านรหัสลับที่จัดเก็บไว้สำหรับโฮสต์ใดๆ ก็ได้ที่คุณสามารถเข้าถึงได้" }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "เรียกใช้คำสั่งบนเซิร์ฟเวอร์ของคุณ", + "consequence": "สามารถใช้คำสั่งใดก็ได้บนโฮสต์ที่คุณเชื่อมต่อ โดยที่คุณมีสิทธิ์เข้าถึง" }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "เรียกใช้โปรแกรมบนเครื่องนี้", + "consequence": "โปรแกรมจะทำงานบนเซิร์ฟเวอร์ Termix เอง ไม่ใช่บนเครื่องโฮสต์ของคุณ" }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "สร้างและแก้ไขบัญชีผู้ใช้", + "consequence": "ระบบสามารถเพิ่มผู้ใช้และเปลี่ยนแปลงบทบาทของผู้ใช้ได้" }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "จัดการการเข้าสู่ระบบ", + "consequence": "สามารถเพิ่มวิธีการเข้าสู่ระบบ ปัจจัยยืนยันตัวตนที่สอง หรือประเภทการเข้าสู่ระบบ SSH ได้" }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "จัดการใบรับรอง", + "consequence": "สามารถใช้แทนใบรับรองที่ Termix ให้บริการผ่าน HTTPS และตอบสนองการตรวจสอบโดเมนจากหน่วยงานออกใบรับรองได้" }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "เข้าถึงอุปกรณ์อนุกรมและ USB", + "consequence": "สามารถเปิดพอร์ตอนุกรมทางกายภาพบนเครื่องที่ใช้งาน Termix ได้" }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "สร้างและเปลี่ยนแปลงโฮสต์", + "consequence": "สามารถเพิ่มโฮสต์และแก้ไขโฮสต์ที่มีอยู่แล้วได้" }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "เชื่อมต่อกับเซิร์ฟเวอร์ของคุณ", + "consequence": "ระบบไม่สามารถมองเห็นรหัสผ่านหรือกุญแจของคุณได้" }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "บันทึกข้อมูลประจำตัวใหม่", + "consequence": "สามารถเพิ่มรหัสผ่านและคีย์ลงในข้อมูลประจำตัวที่บันทึกไว้ของคุณได้" }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "เข้าถึงอินเทอร์เน็ต", + "consequence": "สามารถส่งคำขอไปยังบริการภายนอกได้" }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "ยอมรับการเชื่อมต่อ", + "consequence": "คำสั่งนี้จะเปิดพอร์ตบนเซิร์ฟเวอร์ Termix" }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "ส่งการออกอากาศเครือข่าย", + "consequence": "สามารถส่งแพ็กเก็ตไปยังอุปกรณ์ต่างๆ บนเครือข่ายท้องถิ่นได้ เช่น สัญญาณ Wake-on-LAN" }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "ดูชื่อผู้ใช้และบทบาท", + "consequence": "ห้ามใช้การเข้ารหัสรหัสผ่าน และห้ามยืนยันตัวตนสองขั้นตอนเด็ดขาด" }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "เฝ้าดูทุกสิ่งที่เกิดขึ้น", + "consequence": "รวมถึงกิจกรรมจากผู้ใช้รายอื่นด้วย ไม่ใช่แค่ของคุณเท่านั้น" }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "ส่งการแจ้งเตือน", + "consequence": "ถึงคุณหรือผู้ใช้รายอื่น ๆ และผ่านช่องทางที่พวกเขากำหนดไว้" }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "รับการแจ้งเตือนทุกครั้ง", + "consequence": "จัดเก็บและส่งการแจ้งเตือนทั้งหมดที่ปลั๊กอินส่งมา รวมถึงเนื้อหาของการแจ้งเตือนเหล่านั้นด้วย" }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "อ่านบันทึกการตรวจสอบ", + "consequence": "มันสามารถตรวจสอบได้ว่าใครทำอะไรและเมื่อไหร่" }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "เปิดหน้าต่างเดสก์ท็อป", + "consequence": "ใช้ได้เฉพาะในแอปพลิเคชัน Termix บนเดสก์ท็อปเท่านั้น" }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "ทำตัวเหมือนผู้ใช้รายอื่น", + "consequence": "เรียกใช้งานโปรแกรมเบื้องหลังโดยใช้สิทธิ์การเข้าถึงของผู้ใช้อื่น เช่น งานที่กำหนดเวลาไว้ การใช้งานทุกครั้งจะถูกบันทึกไว้ในบันทึกการตรวจสอบ" }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "อ่านตารางบัญชีหลัก", + "consequence": "สามารถเรียกดูข้อมูลผู้ใช้ บทบาท และโฮสต์ได้โดยตรงจากฐานข้อมูล" }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "ดูรายชื่อโฮสต์ของคุณ", + "consequence": "คุณสามารถดูชื่อและที่อยู่ของโฮสต์ได้อยู่แล้ว" }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "จัดเก็บข้อมูลของตัวเอง", + "consequence": "เก็บไว้ในตารางของตัวเองแยกต่างหากจากปลั๊กอินอื่นๆ" }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "อย่าลืมการตั้งค่าเล็กๆ", + "consequence": "แยกเก็บไว้ต่างหากจากปลั๊กอินอื่นๆ" }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "จัดเก็บไฟล์ของตัวเอง", + "consequence": "โดยจะอยู่ในโฟลเดอร์เฉพาะบนดิสก์ แยกจากปลั๊กอินอื่นๆ" }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "เก็บความลับของตัวเองไว้", + "consequence": "เข้ารหัสโดย Termix ปลั๊กอินนี้จะไม่เก็บรหัสลับไว้" }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "อ่านการตั้งค่า Termix", + "consequence": "การตั้งค่าเซิร์ฟเวอร์ ไม่ใช่โฮสต์หรือข้อมูลประจำตัวของคุณ" }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "ดูคุณสมบัติที่ติดตั้งไว้", + "consequence": "สามารถตรวจสอบได้ว่าฟีเจอร์ใดบ้างที่ติดตั้งและกำลังทำงานอยู่" }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "เพิ่มหน้าจอของตัวเอง", + "consequence": "แท็บ แผง และการตั้งค่าที่คุณสามารถซ่อนได้ในภายหลัง" } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} ไม่พร้อมใช้งาน", + "needsUnknownPlugin": "ฟีเจอร์นี้ไม่พร้อมใช้งาน", + "disabledHint": "ฟังก์ชันนี้ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้", + "missingHint": "ฟีเจอร์ที่มาของฟีเจอร์นี้ถูกลบออกไปแล้ว", + "failed": "{{name}} ไม่สามารถเริ่มต้นได้", + "failedHint": "ผู้ดูแลระบบสามารถตรวจสอบบันทึกของเซิร์ฟเวอร์เพื่อดูรายละเอียดเพิ่มเติมได้", + "loading": "กำลังโหลด {{name}}", + "crashed": "เกิดข้อผิดพลาดบางอย่างใน {{name}}", + "retry": "ลองอีกครั้ง" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "ชุด", + "secretNotSet": "ไม่ได้ตั้งค่า", + "secretReplace": "แทนที่", + "pluginSettingsSaved": "บันทึกการตั้งค่าแล้ว", + "pluginSettingsInvalid": "ไม่สามารถบันทึกการตั้งค่าบางอย่างได้ โปรดตรวจสอบช่องที่ไฮไลต์ไว้", + "pluginSettingsSaveFailed": "ไม่สามารถบันทึกการตั้งค่าได้", + "pluginSettingsLoadFailed": "ไม่สามารถโหลดการตั้งค่าได้", + "featureUnavailable": "{{name}} ไม่สามารถใช้งานได้ในขณะนี้ การตั้งค่าเหล่านี้ถูกบันทึกแล้ว แต่จะไม่มีผล" }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "รีเฟรช", + "retry": "ลองใหม่อีกครั้ง", + "sudoHint": "ตั้งรหัสผ่าน sudo สำหรับโฮสต์นี้ในโปรแกรมแก้ไขโฮสต์เพื่อเปิดใช้งานการดำเนินการที่มีสิทธิ์พิเศษ", + "noData": "ไม่มีข้อมูล", + "filter": "กรอง..." }, "sync": { - "server": "Termix server", - "account": "Account", - "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "server": "เซิร์ฟเวอร์ Termix", + "account": "บัญชี", + "status": "สถานะ", + "never": "ไม่เคย", + "justNow": "เมื่อสักครู่นี้เอง", + "minutesAgo_one": "{{count}} นาทีที่แล้ว", + "minutesAgo_other": "{{count}} นาทีที่แล้ว", + "hoursAgo_one": "{{count}} ชั่วโมงที่แล้ว", + "hoursAgo_other": "{{count}} ชั่วโมงที่แล้ว", + "actionFailed": "วิธีนั้นไม่ได้ผล ลองใหม่อีกครั้ง", + "unlinkedTitle": "อุปกรณ์นี้เท่านั้น", + "unlinkedBody": "Termix ทำงานได้ด้วยตัวเองบนอุปกรณ์นี้ เชื่อมต่ออุปกรณ์นี้กับเซิร์ฟเวอร์ Termix ของคุณเพื่อให้ทุกอย่างทำงานประสานกัน", + "unlinkedPointHosts": "โฮสต์ ข้อมูลประจำตัว ข้อความตัวอย่าง และการตั้งค่าของคุณจะติดตามคุณไปยังทุกอุปกรณ์", + "unlinkedPointOffline": "ทุกอย่างยังคงทำงานได้ตามปกติแม้ว่าจะไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้ และจะกลับมาทำงานได้ตามปกติในภายหลัง", + "unlinkedPointAccount": "คุณเข้าสู่ระบบด้วยบัญชีเซิร์ฟเวอร์ของคุณ และโฮสต์ที่ผู้อื่นแชร์กับคุณก็จะปรากฏขึ้นที่นี่ด้วย", + "linkButton": "ลิงก์ไปยังเซิร์ฟเวอร์", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "กำลังซิงค์", + "offline": "ไม่สามารถติดต่อเซิร์ฟเวอร์ได้", + "error": "การซิงค์หยุดลงแล้ว", + "signedOut": "ออกจากระบบแล้ว", + "synced": "ซิงค์แล้ว {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", - "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "pending_one": "{{count}} การเปลี่ยนแปลงกำลังรอการซิงค์", + "pending_other": "{{count}} การเปลี่ยนแปลงที่รอการซิงค์", + "signInAgain": "เข้าสู่ระบบอีกครั้ง", + "syncNow": "ซิงค์เดี๋ยวนี้", + "unlink": "ยกเลิกการเชื่อมโยง", + "unlinked": "อุปกรณ์นี้ไม่ได้เชื่อมต่ออีกต่อไปแล้ว", + "unlinkTitle": "ยกเลิกการเชื่อมต่ออุปกรณ์นี้หรือไม่?", + "unlinkDescription": "ระบบจะหยุดการซิงค์และออกจากระบบเซิร์ฟเวอร์ โฮสต์ที่ผู้อื่นแชร์กับคุณจะถูกลบออกจากอุปกรณ์นี้โดยอัตโนมัติ", + "unlinkKeepTitle": "เก็บข้อมูลของฉันไว้ที่นี่", + "unlinkKeepBody": "โฮสต์ ข้อมูลประจำตัว และการตั้งค่าของคุณจะยังคงอยู่ในอุปกรณ์นี้และทำงานต่อไปได้โดยอัตโนมัติ", + "unlinkRemoveTitle": "ลบข้อมูลที่ซิงค์แล้ว", + "unlinkRemoveBody": "ทุกอย่างที่มาจากเซิร์ฟเวอร์จะถูกลบออกจากอุปกรณ์นี้ เหลือเพียงโฮสต์ที่เก็บไว้ในอุปกรณ์นี้เท่านั้น", + "conflictsTitle": "ความขัดแย้ง", + "conflictsDescription": "มีการเปลี่ยนแปลงทั้งที่นี่และบนเซิร์ฟเวอร์พร้อมกัน เวอร์ชันบนเซิร์ฟเวอร์กำลังใช้งานอยู่ โปรดเก็บเวอร์ชันของคุณไว้เพื่อส่งไปยังเซิร์ฟเวอร์แทน", + "keepMine": "เก็บของฉันไว้", + "keepServer": "เก็บเซิร์ฟเวอร์ไว้", + "errorsTitle": "ไม่ได้ซิงค์", + "errorsDescription": "เซิร์ฟเวอร์ไม่ยอมรับการเปลี่ยนแปลงเหล่านี้ การเปลี่ยนแปลงจึงยังคงอยู่บนอุปกรณ์นี้", + "errorPermission": "บัญชีของคุณบนเซิร์ฟเวอร์ไม่ได้รับอนุญาตให้ทำการเปลี่ยนแปลงนี้", + "retry": "ลองอีกครั้ง", + "whatSyncs": "สิ่งที่ซิงค์", + "whatSyncsDescription": "ปิดทุกอย่างที่คุณต้องการเก็บไว้ในอุปกรณ์นี้เท่านั้น", + "coreGroup": "เทอร์มิกซ์", + "notOnServer": "เซิร์ฟเวอร์ไม่มีสิ่งนี้", + "notOnDevice": "ยังไม่มีในอุปกรณ์นี้", + "localOnlyHint": "นอกจากนี้ คุณยังสามารถเก็บโฮสต์หรือโฟลเดอร์เดียวไว้ในอุปกรณ์นี้ได้จากเมนูการตั้งค่า", + "originTitle": "จุดเริ่มต้นของการเชื่อมต่อ", + "originDescription": "เชื่อมต่อกับโฮสต์จากอุปกรณ์นี้ หรือผ่านทางเซิร์ฟเวอร์ คุณสามารถเปลี่ยนการตั้งค่านี้ได้สำหรับแต่ละโฮสต์", + "originLocal": "อุปกรณ์นี้", + "originRemote": "เซิร์ฟเวอร์", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "โฮสต์", + "sshCredentials": "คุณสมบัติ", + "sshFolders": "โฟลเดอร์", + "userPreferences": "การตั้งค่า", + "pluginUserSettings": "การตั้งค่าคุณสมบัติ", + "sharedHosts": "โฮสต์ได้แบ่งปันกับคุณแล้ว", + "sharedCredentials": "ข้อมูลประจำตัวที่ส่งให้คุณ", + "vaultProfiles": "โปรไฟล์ Vault", + "snippetFolders": "โฟลเดอร์สนิปเป็ต", + "snippets": "เศษเสี้ยว", + "dashboardServiceLinks": "ลิงก์บริการ", + "homepageItems": "รายการหน้าแรก", + "networkTopology": "แผนที่เครือข่าย", + "workspaces": "พื้นที่ทำงาน" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", - "username": "Username", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "title": "พร็อกซีแบบย้อนกลับ", + "description": "จำเป็นต้องใช้ก็ต่อเมื่อมีบางอย่างเช่น Cloudflare Access หรือหน้าล็อกอินอยู่ด้านหน้าเซิร์ฟเวอร์ของคุณเท่านั้น", + "headersTitle": "ส่วนหัวเพิ่มเติม", + "headersHint": "โทเค็นนี้จะถูกส่งไปพร้อมกับทุกคำขอที่ส่งไปยังเซิร์ฟเวอร์ ตัวอย่างเช่น โทเค็นการเข้าถึงบริการ Cloudflare", + "headerName": "ชื่อส่วนหัว", + "headerValue": "ค่า", + "savedValue": "บันทึกแล้ว พิมพ์เพื่อแก้ไข", + "addHeader": "เพิ่มส่วนหัว", + "removeHeader": "ลบส่วนหัว", + "basicAuthTitle": "ชื่อผู้ใช้และรหัสผ่าน", + "basicAuthHint": "สำหรับพร็อกซีที่ขอชื่อผู้ใช้และรหัสผ่านก่อนใช้งาน Termix", + "username": "ชื่อผู้ใช้", + "password": "รหัสผ่าน", + "allowInvalidCertificate": "เชื่อถือใบรับรองที่ลงนามด้วยตนเอง", + "allowInvalidCertificateHint": "ใช้ได้เฉพาะกับเซิร์ฟเวอร์ของคุณเองเท่านั้น เมื่อใบรับรองของเซิร์ฟเวอร์นั้นไม่ได้มาจากหน่วยงานที่ได้รับการยอมรับ", + "saved": "บันทึกแล้ว" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "นั่นดูไม่เหมือนที่อยู่เว็บไซต์เลย", + "unreachable": "ไม่สามารถติดต่อเซิร์ฟเวอร์ได้ โปรดตรวจสอบที่อยู่และตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงานอยู่หรือไม่", + "unreachableWithReason": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้: {{reason}}", + "tlsUntrusted": "ใบรับรองเซิร์ฟเวอร์ไม่น่าเชื่อถือ หากนี่คือเซิร์ฟเวอร์ของคุณเองที่มีใบรับรองแบบลงนามด้วยตนเอง โปรดเปิดใช้งานตัวเลือกด้านล่าง", + "basicAuthRequired": "หน้าเซิร์ฟเวอร์จะขอชื่อผู้ใช้และรหัสผ่าน กรุณาป้อนข้อมูลด้านล่าง", + "proxyLogin": "หน้าล็อกอินหรือพร็อกซีตอบกลับมาแทน Termix เพิ่มส่วนหัวที่จำเป็นด้านล่าง หรือตรวจสอบที่อยู่", + "notTermix": "ไม่มีเซิร์ฟเวอร์ Termix อยู่ที่ที่อยู่ดังกล่าว หากเซิร์ฟเวอร์ทำงานภายใต้พาธ โปรดระบุพาธนั้นด้วย เช่น https://example.com/termix", + "versionMismatch": "เซิร์ฟเวอร์นั้นใช้ Termix เวอร์ชันเก่า โปรดอัปเดตเป็นเวอร์ชัน 2.9 หรือใหม่กว่าเพื่อเชื่อมต่อ", + "differentAccount": "คุณเข้าสู่ระบบด้วยบัญชีอื่น โปรดเข้าสู่ระบบด้วยบัญชีที่อุปกรณ์นี้เชื่อมโยงอยู่ หรือยกเลิกการเชื่อมโยงก่อน" }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "title": "ลิงก์ไปยังเซิร์ฟเวอร์ Termix", + "reloginTitle": "เข้าสู่ระบบอีกครั้ง", + "savedServers": "เซิร์ฟเวอร์ล่าสุด", + "removeServer": "ลบออกจากรายการ", + "serverDescription": "ป้อนที่อยู่เว็บเบราว์เซอร์ที่คุณใช้เปิด Termix", + "signinDescription": "เข้าสู่ระบบที่ {{url}}", + "chooseDescription": "อุปกรณ์นี้มีข้อมูลอยู่แล้ว ควรทำอย่างไรกับข้อมูลนี้?", + "finishingDescription": "กำลังเชื่อมต่ออุปกรณ์นี้", + "serverUrl": "ที่อยู่เซิร์ฟเวอร์", + "serverUrlHint": "ตัวอย่างเช่น https://termix.example.com", + "showProxySettings": "การตั้งค่าพร็อกซีแบบย้อนกลับ", + "hideProxySettings": "ซ่อนการตั้งค่าพร็อกซีแบบย้อนกลับ", + "continue": "ดำเนินการต่อ", + "back": "กลับ", + "mergeTitle": "เพิ่มลงในบัญชีของฉัน", + "mergeBody": "รายการ {{count}} บนอุปกรณ์นี้จะถูกเพิ่มไปยังบัญชีของคุณ รายการที่บัญชีของคุณมีอยู่แล้วจะยังคงอยู่บนเซิร์ฟเวอร์เช่นเดิม", + "replaceTitle": "แทนที่ด้วยบัญชีของฉัน", + "replaceBody": "รายการ {{count}} บนอุปกรณ์นี้ถูกลบออก และอุปกรณ์นี้จะนำทุกอย่างจากบัญชีของคุณไป โฮสต์ที่เก็บไว้ในอุปกรณ์นี้จะยังคงอยู่", + "link": "ลิงก์", + "linking": "กำลังเชื่อมต่อและเริ่มการซิงค์ครั้งแรก...", + "linked": "เชื่อมต่อแล้ว ข้อมูลของคุณกำลังซิงค์อยู่", + "signedInAgain": "เข้าสู่ระบบเรียบร้อยแล้ว การซิงค์กำลังทำงานอีกครั้ง" } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "โฟลเดอร์ {{name}}", + "user": "ค่าเริ่มต้นของฉัน", + "admin": "เซิร์ฟเวอร์", + "builtin": "ในตัว" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "กำหนดเอง", + "setHere": "ตั้งค่าตรงนี้", + "notSet": "ไม่ได้ตั้งค่า", + "notSetTitle": "ไม่มีการตั้งค่าเริ่มต้นสำหรับสิ่งนี้", + "resetTitle": "โฮสต์นี้กำหนดค่าของตัวเอง คลิกเพื่อใช้ค่าเริ่มต้นจาก {{source}} อีกครั้ง", + "clearTitle": "ตั้งค่าไว้ที่ระดับนี้ คลิกเพื่อล้างค่า และใช้ {{source}} แทน", + "inheritedTitle": "ปฏิบัติตามค่าเริ่มต้นจาก {{source}}", + "titleAdmin": "ค่าเริ่มต้นของโฮสต์เซิร์ฟเวอร์", + "titleUser": "ค่าเริ่มต้นของโฮสต์ของฉัน", + "titleFolder": "ค่าเริ่มต้นของโฟลเดอร์: {{name}}", + "descriptionAdmin": "ค่าเริ่มต้นสำหรับทุกโฮสต์บนเซิร์ฟเวอร์นี้ ค่าเริ่มต้นของผู้ใช้ ค่าเริ่มต้นของโฟลเดอร์ หรือตัวโฮสต์เองอาจกำหนดค่าที่แตกต่างกันได้ เปลี่ยนค่าในช่องเพื่อตั้งค่า หรือล้างค่าเพื่อปล่อยว่างไว้", + "descriptionUser": "ค่าเริ่มต้นสำหรับโฮสต์ทั้งหมดของคุณจะถูกตั้งค่าทับซ้อนกับเซิร์ฟเวอร์ อย่างไรก็ตาม โฟลเดอร์หรือโฮสต์เองยังสามารถกำหนดค่าที่แตกต่างกันได้ เปลี่ยนค่าในช่องเพื่อตั้งค่าที่นี่ หรือล้างค่าในช่องนั้นเพื่อไม่ให้มีการตั้งค่า", + "descriptionFolder": "ค่าเริ่มต้นสำหรับโฮสต์ในโฟลเดอร์นี้และโฟลเดอร์ย่อย จะแทนที่ค่าที่คุณกำหนดเอง โฮสต์ยังคงสามารถกำหนดค่าอื่นได้ เปลี่ยนฟิลด์เพื่อตั้งค่าที่นี่ หรือล้างฟิลด์เพื่อปล่อยว่างไว้", + "save": "บันทึกค่าเริ่มต้น", + "saved_one": "บันทึกค่าเริ่มต้นแล้ว โฮสต์ {{count}} ได้รับการอัปเดตแล้ว", + "saved_other": "บันทึกค่าเริ่มต้นแล้ว โฮสต์ {{count}} ได้รับการอัปเดตแล้ว", + "savedInBackground": "บันทึกค่าเริ่มต้นแล้ว กำลังอัปเดตข้อมูลโฮสต์ในเบื้องหลัง", + "appliedToHosts_one": "โฮสต์ {{count}} ได้รับการอัปเดตด้วยค่าเริ่มต้นใหม่แล้ว", + "appliedToHosts_other": "โฮสต์ {{count}} ได้รับการอัปเดตด้วยค่าเริ่มต้นใหม่แล้ว", + "saveFailed": "ไม่สามารถบันทึกค่าเริ่มต้นได้", + "loadFailed": "ไม่สามารถโหลดค่าเริ่มต้นได้", + "confirmTitle": "บันทึกค่าเริ่มต้นใช่ไหม?", + "confirmChanges_one": "{{count}} โฮสต์จะใช้ค่าเริ่มต้นเหล่านี้และจะมีการเปลี่ยนแปลง", + "confirmChanges_other": "โฮสต์ {{count}} จะใช้ค่าเริ่มต้นเหล่านี้และจะมีการเปลี่ยนแปลง", + "confirmNoChanges": "ไม่มีการเปลี่ยนแปลงโฮสต์ที่มีอยู่ โฮสต์ใหม่จะเริ่มต้นด้วยค่าเริ่มต้นเหล่านี้", + "menuMyDefaults": "ค่าเริ่มต้นของโฮสต์ของฉัน", + "folderDefaultsAction": "ค่าเริ่มต้นของโฟลเดอร์", + "adminSectionDescription": "ตั้งค่าเริ่มต้นที่โฮสต์ทุกตัวบนเซิร์ฟเวอร์นี้ใช้ สำหรับทุกการตั้งค่าที่โฮสต์มี รวมถึงฟีเจอร์ต่างๆ ผู้ใช้และโฟลเดอร์สามารถตั้งค่าของตนเองเพิ่มเติมได้ และโฮสต์แต่ละตัวยังคงสามารถใช้ค่าของตนเองได้", + "editServerDefaults": "แก้ไขค่าเริ่มต้นของเซิร์ฟเวอร์", + "resetMenu": "รีเซ็ต", + "resetAll": "ทุกอย่างถูกตั้งค่าเป็นค่าเริ่มต้น", + "resetCore": "การเชื่อมต่อและ SSH ไปยังค่าเริ่มต้น", + "resetDone_one": "โฮสต์ {{count}} ตอนนี้ใช้ค่าเริ่มต้นแล้ว", + "resetDone_other": "โฮสต์ {{count}} ตอนนี้ใช้ค่าเริ่มต้นแล้ว" } } diff --git a/src/ui/locales/translated/tr_TR.json b/src/ui/locales/translated/tr_TR.json index 5153d45f0..100e2adfd 100644 --- a/src/ui/locales/translated/tr_TR.json +++ b/src/ui/locales/translated/tr_TR.json @@ -55,7 +55,7 @@ "levelManage": "Üstesinden gelmek", "levelUseDesc": "Kullanım: Kimlik bilgilerini sunuculara ekleyin ve bağlantı kurun. Gizli anahtarın kendisi gizli kalır.", "levelManageDesc": "Yönet: Kimlik bilgilerini düzenleyebilir ve başkalarıyla paylaşabilirsiniz.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Bu kimlik bilgisi henüz paylaşılmadı.", "accessRevoked": "Erişim iptal edildi", "shared": "Kimlik bilgileri paylaşıldı." }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Kilidi açmak için sürükleyip bırakın ve yeniden düzenleyin." }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Güncelleme mevcut. GitHub'daki sürüm notlarını açın." }, "common": { "close": "Kapat", "minimize": "Simge Durumuna Küçült", "online": "Çevrimiçi", "offline": "Çevrimdışı", - "signInFailed": "Sign in failed", + "signInFailed": "Giriş başarısız", "unknown": "Bilinmeyen", "continue": "Devam", "maintenance": "Bakım", @@ -187,7 +187,7 @@ "remove": "Kaldır", "add": "Ekle", "update": "Güncelle", - "noResults": "No results found" + "noResults": "Hiçbir sonuç bulunamadı." }, "onboarding": { "stepCounter": "Adım {{current}} , {{total}}'in", @@ -215,7 +215,7 @@ "workflow_palette": "Komut paleti", "workflow_palette_desc": "Yazarak herhangi bir sunucuya veya işleme geçin. Açmak için Shift tuşuna iki kez basın.", "workflow_split": "Bölünmüş ekran", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Örneğin, çalışırken günlükleri izlemek için birden fazla sekmeyi yan yana gösterin.", "workflow_dock": "Yan panel", "workflow_dock_desc": "Bir kenar çubuğu simgesine orta veya sağ tıklayarak onu sekme olarak açabilir veya sağa sabitleyebilirsiniz.", "securityTitle": "Giriş bilgilerinizi güvende tutmak", @@ -248,13 +248,13 @@ "done_cli": "Komut satırı aracı", "done_cli_desc": "Sunucularınızı terminalden yönetin ve Termix'i kendi komut dosyalarınızda kullanın.", "done_cli_link": "CLI belgelerini açın", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Termix'i nasıl kullanmak istersiniz?", + "desktopBody": "Bunu istediğiniz zaman kenar çubuğundaki Senkronizasyon bölümünden değiştirebilirsiniz.", + "desktopLocalTitle": "Sadece bu cihazda", + "desktopLocalBody": "Her şey burada saklanıyor. Hiçbir şey ayarlamanıza gerek yok.", + "desktopLinkTitle": "Termix sunucumla", + "desktopLinkBody": "Tüm cihazlarda aynı sunucuları ve ayarları kullanmak için sunucunuza giriş yapın.", + "desktopLinked": "{{server}} ile bağlantılı" }, "nav": { "home": "Ana Sayfa", @@ -295,21 +295,21 @@ "collapseSideMenu": "Menüyü Daralt", "roleAdministrator": "Yönetici", "roleUser": "Kullanıcı", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Senkronizasyon", + "reconnectDisconnectedTerminals": "Bağlantısı kesilmiş tüm terminalleri yeniden bağlayın.", + "reconnectingTerminals_one": "{{count}} terminaline yeniden bağlanılıyor", + "reconnectingTerminals_other": "{{count}} terminalleri yeniden bağlanıyor", + "noDisconnectedTerminals": "Bağlantısı kesilmiş terminallerin hiçbiri yeniden bağlanmaya hazır değil.", + "reconnectTerminalsFailed_one": "{{count}} terminaline yeniden bağlanma başlatılamadı.", + "reconnectTerminalsFailed_other": "{{count}} terminalin yeniden bağlanması başlatılamadı", + "fullscreenUnsupported": "Bu tarayıcı tam ekran modunu desteklemiyor.", + "fullscreenFailed": "Tam ekran moduna geçilemedi.", + "resetSidebarWidth": "Genişliği sıfırla", + "collapseSidebar": "Kenar çubuğunu daralt", + "openSidebar": "Kenar çubuğunu aç", + "confirmCloseHost": "Kapat {{host}}?", + "enterFullscreen": "Tam ekran moduna geçin (Ctrl+Shift+F)", + "exitFullscreen": "Tam ekrandan çıkmak için (Ctrl+Shift+F) tuşlarını kullanın." }, "hosts": { "hosts": "Ana Bilgisayarlar", @@ -353,7 +353,7 @@ "serverStats": "Sunucu Metrikleri", "status": { "available": "Mevcut", - "reachable": "Up, but the last sign in failed", + "reachable": "Yukarı çıktı, ancak son giriş başarısız oldu.", "offline": "Çevrimdışı", "monitoringDisabled": "İzleme devre dışı bırakıldı", "label": "Durum" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Klavye Etkileşimini Zorunlu Kıl", "overrideCredentialUsername": "Kimlik Kullanıcı Adını Geçersiz Kıl", "overrideCredentialUsernameDesc": "Kimlik bilgisinin kullanıcı adı yerine yukarıda belirtilen kullanıcı adını kullan", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "SSO veya LDAP aracılığıyla oturum açtığınız adı girmek için $external.username ifadesini kullanın.", "jumpHostChain": "Atlama Sunucu Zinciri", "portKnocking": "Port Vuruşu", "addKnock": "Port Ekle", @@ -626,14 +626,14 @@ "actionsClick": "Genişletmek/Daraltmak için tıklayın", "openOnDoubleClick": "Çift tıklayarak açın", "openOnDoubleClickDesc": "Ana bilgisayar oturumunu açmak için tek tıklama yerine çift tıklama gerektir.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Klasör yollarını göster", + "showFolderPathsDesc": "Üst klasörün yolunu iç içe geçmiş alt klasör adlarının üzerinde gösterin. Alt klasörler her iki durumda da girintili kalır.", + "hostClickBehavior": "Bir sunucuya tıklamak", + "hostClickBehaviorDesc": "Hali hazırda açık bir sekmesi olan bir sunucuya tıkladığınızda ne olur? Ctrl/Cmd tıklaması, orta tıklama veya \"Yeni sekmede aç\" her zaman yeni bir sekme başlatır.", + "hostClickNewTab": "Her zaman yeni bir sekme açın.", + "hostClickFocusExisting": "Açık sekmeye geçin", + "hostClickFocusExistingDoubleNew": "Sekme değiştirmek için tıklayın, yeni bir sekme açmak için çift tıklayın.", + "openInNewTab": "Yeni sekmede aç", "deletedHost": "{{name}} silindi", "copiedToClipboard": "Panoya kopyalandı", "remoteDesktopUrlCopied": "Uzak Masaüstü URL kopyalandı", @@ -698,7 +698,7 @@ "groupCredentials": "Kimlik Bilgileri", "groupNotes": "Notlar", "groupTags": "Etiketler ve pinler", - "groupProxy": "Proxy", + "groupProxy": "Vekil", "groupJumpHosts": "Sunucuları atla", "groupFeatureFlags": "Özellik bayrakları", "groupAdvanced": "Gelişmiş yapılandırma", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Her uç noktanın farklı bir isme ihtiyacı vardır.", "webUiErrorPortRange": "Uç nokta {{row}} 1 ile 65535 arasında bir porta ihtiyaç duyuyor.", "webUiErrorPathInvalid": "Uç nokta {{row}} geçersiz bir yola sahip. /admin gibi bir yol kullanın.", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "{{name}} bağlantısını kopyala", "filterAuthAgent": "SSH Ajanı", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "Bu sunucu {{type}}kullanıyor ve bu da {{plugin}}gerektiriyor. Bu sunucuda devre dışı bırakılmış durumda.", + "authTypeUnknown": "Bu sunucuda kullanılamayan {{type}}özelliğini kullanıyor.", + "authFieldsAfterSave": "Önce sunucuyu kaydedin, ardından bu alanları doldurun.", + "enablePluginFeature": "{{name}}'ı etkinleştirin", + "disablePluginFeature": "{{name}}'ı devre dışı bırak", "filterFeaturesGroup": "Özellikler", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Sadece bu cihazda saklayın.", + "localOnlyDesc": "Bu sunucuya gönderilmez ve diğer cihazlarınızda görünmez.", + "folderLocalOnly": "Sadece bu cihazda saklayın.", + "folderLocalOnlyDesc": "Bu klasör ve içindeki tüm dosyalar bu cihazda kalır ve sunucuya gönderilmez.", + "sudoPasswordDesc": "Terminalde sudo istemi görüntülendiğinde ve sudo ile komut çalıştıran özellikler tarafından kullanılır.", "editorCancel": "İptal", "editorSaving": "Kaydediliyor...", "editorUpdate": "Ana Makineyi Güncelle", "editorAdd": "Sunucu Ekle", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Sunucuları arayın. Seçmek için ok tuşlarını, bağlanmak için Enter tuşunu, kapatmak için Esc tuşunu kullanın.", + "speedSearchList": "Sunucu listesi. Aramak için yazın veya / tuşuna basın.", + "importNoHosts": "Dosyada hiçbir sunucu bulunamadı.", + "importTooMany": "Aynı anda en fazla {{max}} sunucu içe aktarabilirsiniz.", + "importSummary": "İçe aktarma tamamlandı: {{imported}} içe aktarıldı, {{updated}} güncellendi, {{failed}} başarısız oldu", + "importHostsFailed": "Ana bilgisayarları içe aktarma başarısız oldu." }, "commandPalette": { "searchPlaceholder": "Ana makineleri, komutları veya ayarları ara...", @@ -898,57 +898,57 @@ "select": "Seç", "toggleWith": "Geçiş Yap", "pluginActions": "Diğer işlemler", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "Hiçbir terminal sekmesi açık değil." }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "Bölünmüş ekran", + "defaultLabel": "Bölünmüş {{number}}", "splitRight": "Sağa böl", "splitDown": "Aşağı böl", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "{{split}}'ya ekle", + "paneEmptyItem": "Bölme {{index}}: boş", + "paneItem": "Bölme {{index}}: {{label}}", "paneNumber": "Bölme {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "Sağda yeni bir bölme", + "newPaneBelow": "Aşağıda yeni bir bölme bulunmaktadır.", + "emptyTitle": "Boş bölme", + "emptyHint": "Burada gösterilecek bir şey seçin. Bu bölme seçiliyken, kenar çubuğundan açtığınız her şey burada da açılır.", + "openTabs": "Açık sekmeler", + "noOpenTabs": "Başka sekme açık değil.", "hosts": "Hostlar", "searchHosts": "Host ara", - "noHosts": "No hosts match", + "noHosts": "Ev sahibi takımla eşleşme yok.", "newSession": "Yeni", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "Pencereyi kapat", + "closeSession": "Oturumu kapat", + "moveToTab": "Ayrı bir sekmeye taşı", + "swapWith": "Takas edin", + "showHere": "Bu bölmede göster", + "clearPane": "Bu bölmeyi boşaltın", + "zoom": "Yakınlaştırma paneli", + "unzoom": "Düzeni geri yükle", + "unsplit": "Bölünmemiş", + "layouts": "Yerleşim Planları", + "applyLayout": "Düzeni değiştir", + "newSplit": "Yeni bölünme", + "maxPanes": "Bir bölme en fazla {{count}} bölme tutabilir.", + "dropSplit": "Bölünmek için düşürün", + "dropHere": "Burada göstermek için sürükleyin", + "paneActions": "Panel işlemleri", + "dividerHint": "Boyutunu değiştirmek için sürükleyin. Eşitlemek için çift tıklayın.", + "openInSplit": "Split modunda aç", + "openInNewSplit": "Mevcut sekme ile yeni ayrım", + "shortcuts": "Kısayollar", + "shortcutNavigate": "Paneller arasında geçiş yapın", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Yan yana iki tane", + "rows2": "Üst üste iki", + "columns3": "Üçü yan yana", + "mainLeft3": "Bir sol, iki sağ", + "mainBottom3": "İki üst, bir alt", + "grid4": "Dörtlü ızgara", + "grid5": "İki üzerinden üç", + "grid6": "Altılı ızgara" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Kimlik Doğrulama Gerekli", "mfaPushRequired": "Anlık Kimlik Doğrulama Gerekli", "mfaMenuPlaceholder": "Yanıtınızı girin", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Kod veya \"itme\"", "mfaWaitingApproval": "Cihazınız için onay bekleniyor...", "mfaSendRequest": "İstek Gönder", "browserSignInCode": "Güvenlik Anahtarı", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "Giriş URL'si", "browserSignInOpen": "Tarayıcıda Aç", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "Giriş işlemini tamamladım.", + "browserSignInRequired": "{{provider}} Giriş Yapmanız Gerekiyor", "connectionLogTitle": "Bağlantı Günlüğü", "connectionLogCopy": "Günlükleri panoya kopyala", "connectionLogEmpty": "Henüz bağlantı günlüğü yok", @@ -1032,7 +1032,7 @@ "external": "Harici", "loginWithExternal": "Harici Sağlayıcı ile Giriş Yap", "loginWithExternalDesc": "Yapılandırdığınız harici kimlik sağlayıcısını kullanarak giriş yapın.", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Masaüstü uygulamasında harici oturum açma henüz desteklenmemektedir. Lütfen web sürümünü kullanın.", "loginWithProvider": "{{name}} ile giriş yap", "orContinueWith": "veya şununla devam et:", "resetPasswordButton": "Parolayı Sıfırla", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "{{count}} deneme kaldı", "confirmResetDataWipe": "Bu hesap, şifreleme güncellemesinden sonra oturum açmadığından, saklanan verileri eski şifre olmadan kurtarılamaz. Sıfırlama, sunucuları, kimlik bilgilerini ve parçacıkları kalıcı olarak siler. Devam edilsin mi?", "password": "Parola", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Hesabınızda şu anda kullanılamayan ikinci bir faktör kimlik doğrulama yöntemi kullanılıyor. Sıfırlamak için bir yöneticiyle iletişime geçin.", + "secondFactorNoUI": "Bu ikinci faktör bu ekranda gösterilemiyor. Lütfen bir yöneticiyle iletişime geçin.", + "serverAuthentication": "Sunucuya giriş yap", + "minChars": "min. {{min}} karakter" }, "hostKey": { "verifyNewHost": "SSH Sunucu Anahtarını Doğrula", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Sıfırlama kodu doğrulanamadı", "failedCompleteReset": "Şifre sıfırlama tamamlanamadı", "invalidTotpCode": "Geçersiz TOTP kodu", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Harici oturum açma işlemi başlatılamadı.", + "silentSigninOidcUnavailable": "Sessiz oturum açma isteği yapıldı, ancak harici oturum açma ayarı yapılmamış.", "failedUserInfo": "Giriş sonrası kullanıcı bilgileri alınamadı", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Harici oturum açma başarısız oldu", "invalidAuthUrl": "Arka uçtan geçersiz yetkilendirme URL'si alındı", "requiredField": "Bu alan zorunludur", "minLength": "Minimum uzunluk {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Kimlik doğrulama belirteci kaydedilemedi", "authTokenMissing": "Sunucu yeni bir kimlik doğrulama belirteci döndürmedi. Lütfen tekrar giriş yapın.", "failedToLoadServer": "Sunucu yüklenemedi", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Oturumunuzun süresi doldu. Lütfen tekrar giriş yapın." }, "messages": { "registrationDisabled": "Yeni hesap kaydı şu anda bir yönetici tarafından devre dışı bırakıldı. Lütfen giriş yapın veya bir yöneticiyle iletişime geçin.", @@ -1163,7 +1163,7 @@ "panelMain": "Ana", "panelSide": "Kenar", "justNow": "az önce", - "activityFileManager": "File manager" + "activityFileManager": "Dosya yöneticisi" }, "donation": { "title": "Termix'i Beğendiniz mi?", @@ -1188,12 +1188,12 @@ "add": "Ekle:", "commandPalette": "Komut Paleti", "done": "Tamam", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Kartları sürükleyerek sıralarını değiştirin. Sütun ayırıcıyı sürükleyerek sütunların boyutunu değiştirin. Bir kartın alt kenarını sürükleyerek yüksekliğini değiştirin. Çöp kutusu düğmesini kullanarak bir kartı silin.", "empty": "Boş", "clear": "Temizle", "viewServerDetails": "Sunucu ayrıntılarını görüntüle", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Sütunların boyutunu değiştirmek için sürükleyin.", + "hostsAvailable": "Ev sahipleri mevcut." }, "admin": { "sectionGeneral": "Genel", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Veritabanı", "sectionApiKeys": "API Anahtarları", "sectionAuditLog": "Denetim Günlüğü", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS sertifikası", "sectionBranding": "Beyaz Etiket", "brandingAppName": "Uygulama Adı", "brandingAppNameDesc": "Giriş ekranında ve tarayıcı sekmesinde gösterilir. \"Termix\" kullanmak için boş bırakın.", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Geçersiz görsel. Lütfen 750 KB'ye kadar PNG, JPEG veya WEBP dosyası kullanın.", "brandingSaved": "Marka ayarları kaydedildi.", "brandingSaveFailed": "Markalama ayarları kaydedilemedi.", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Termix, HTTPS üzerinden sertifika sunmaktadır. Kendi sertifikanızı buraya yükleyebilir veya ACME Sertifikaları bölümünden Let's Encrypt'ten bir sertifika alıp yenileyebilirsiniz.", "sslDocsLink": "SSL belgelerini görüntüle", "sslCertStatus": "Sertifika Durumu", "sslCertStatusNone": "Sertifika yok", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Yeni kullanıcıların kullanıcı adı ve parola ile kendilerini kaydetmesine izin ver", "allowPasswordLogin": "Parola ile Girişe İzin Ver", "allowPasswordLoginDesc": "Kullanıcı adı/parola ile giriş", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Harici hesapları otomatik olarak oluştur", + "oidcAutoProvisionDesc": "Kayıt kapalı olsa bile, SSO veya LDAP gibi harici bir giriş yöntemiyle ilk kez oturum açıldığında bir hesap oluşturulur.", + "secondFactorAfterExternalLogin": "Harici oturum açma işlemlerinden sonra ikinci bir doğrulama faktörü isteyin (SSO, GitHub, Google, LDAP).", + "secondFactorAfterExternalLoginDesc": "Kapalı modda, kayıtlı ikinci faktör yalnızca parola ve diğer yerel oturum açma işlemlerinden sonra istenir, tıpkı eskisi gibi. Açık modda ise, SSO ve LDAP dahil olmak üzere her oturum açma yönteminden sonra istenir.", "allowPasswordReset": "Parola Sıfırlamaya İzin Ver", "allowPasswordResetDesc": "Docker günlükleri aracılığıyla sıfırlama kodu", "auditForwardingTitle": "SIEM'e ilet", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Denetim yönlendirme ayarları kaydedilemedi.", "sessionTimeout": "Oturum Zaman Aşımı", "hours": "saat", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Minimum 1 saat, maksimum 720 saat", "monitoringDefaults": "İzleme Varsayılanları", "statusCheck": "Durum Kontrolü", "sec": "sn", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Yönetici Durumu", "editUserUserId": "Kullanıcı Kimliği", "linkAccountTitle": "Hesapları Bağla", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Harici hesabı {{username}} mevcut yerel hesapla birleştirin.", + "linkAccountDescLocal": "Yerel bir hesabı {{username}} mevcut, yalnızca harici kullanıma açık bir hesapla bağlayın.", "linkAccountWarningTitle": "Bu işlem şunları yapacak:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Yalnızca harici erişime açık hesabı silin.", + "linkAccountEffect2": "Hedef hesaba harici oturum açma özelliğini ekleyin.", + "linkAccountEffect3": "Hem harici giriş hem de parola ile giriş yapılmasına izin verin.", "linkAccountTargetUsername": "Yerel Hesap Kullanıcı Adı", "linkAccountTargetPlaceholder": "Bağlanacak yerel hesap kullanıcı adını girin", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Harici Hesap Kullanıcı Adı", + "linkAccountOidcPlaceholder": "Birleştirmek istediğiniz yalnızca harici hesap kullanıcı adını girin.", + "linkAccountOidcNotFound": "Bu kullanıcı adıyla harici erişime açık bir hesap bulunamadı.", "linkAccounts": "Hesapları Bağla", "linkAccountSuccess": "Hesaplar başarıyla bağlandı", "linkAccountFailed": "Hesaplar bağlanamadı", "linkAccountInProgress": "Bağlanıyor...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Harici Oturum Açma Bağlantısını Kaldır", + "unlinkAccountDesc": "{{username}}adresinden harici oturum açmayı kaldırın. Artık yalnızca şifreleriyle giriş yapabilecekler.", + "unlinkAccountWarning": "Bu işlem, bu hesaptan harici oturum açma özelliğini kaldıracaktır. Kullanıcının oturum açmaya devam edebilmesi için bir parola belirlemiş olması gerekir.", + "unlinkAccount": "Harici Oturum Açma Bağlantısını Kaldır", "unlinkAccountInProgress": "Bağlantı kaldırılıyor...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Harici oturum açma bağlantısı kesildi", + "unlinkAccountFailed": "Harici oturum açma bağlantısını kaldırma başarısız oldu.", "saving": "Kaydediliyor...", "updateRegistrationFailed": "Kayıt ayarı güncellenemedi", "updatePasswordLoginFailed": "Parola girişi ayarı güncellenemedi", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Otomatik oluşturma ayarı güncellenemedi.", + "updateSecondFactorAfterExternalLoginFailed": "İkinci faktör ayarı güncellenemedi.", "updatePasswordResetFailed": "Parola sıfırlama ayarı güncellenemedi", "sessionTimeoutRange2": "Oturum zaman aşımı 1 ile 720 saat arasında olmalıdır", "sessionTimeoutSaved": "Oturum zaman aşımı kaydedildi", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Etkin oturum yok", "deleteSuccessorLabel": "Sunucuları ve kimlik bilgilerini teslim edin.", "deleteSuccessorMe": "Ben (silme işlemini gerçekleştiren yönetici)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Kimse, onları sil", "deleteSuccessorDesc": "Bu kullanıcının paylaştığı her şey yeni sahibi altında çalışmaya devam eder; \"kimse\" seçeneğini seçmek, sunucularını, kimlik bilgilerini ve paylaşımlarını siler.", "deleteUserDangerDesc": "{{username}} kullanıcısını ve tüm verilerini (ana bilgisayarlar, kimlik bilgileri, kod parçaları, geçmiş) kalıcı olarak silin. Bu işlem geri alınamaz.", "deleteUserConfirm": "{{username}} kullanıcısı ve tüm verileri kalıcı olarak silinsin mi?", @@ -1477,31 +1477,31 @@ "saveError": "Rol izinleri kaydedilemedi", "save": "Kaydet", "saving": "Kaydediliyor...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Özellik devre dışı bırakıldı", "groups": { "hosts": "Hostlar", "credentials": "Kimlik bilgileri", - "admin": "Administration" + "admin": "Yönetim" } }, "notificationPrivateEndpoints": "İzin verilen özel bildirim sunucuları", "notificationPrivateEndpointsDesc": "Bildirim kanallarının iletişim kurabileceği tam özel sunucuları belirtin. Bunları virgülle ayırın.", "updateNotificationEndpointsFailed": "Bildirim uç noktası izin listesini güncelleme başarısız oldu.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "İkinci faktörler", + "secondFactorsNone": "İkinci faktör kaydı yapılmadı.", + "secondFactorUnavailable": "Mevcut değil", + "resetSecondFactors": "İkinci faktörleri sıfırla", + "resetSecondFactorsConfirm": "{{username}}için her ikinci faktörü kaldırın mı? Şifreleriyle veya SSO ile giriş yapıp tekrar kayıt olabilirler.", + "secondFactorsResetSuccess": "İkinci faktörler sıfırlandı", + "secondFactorsResetFailed": "İkinci faktör sıfırlanamadı.", + "passwordLoginForced": "Parola ile giriş devre dışı bırakıldı, ancak başka bir giriş yöntemi etkinleştirilmediği için şimdilik açık kalıyor. Kimsenin hesabı kilitlenmiyor.", + "sslNotRenewed": "Bu sertifikayı hiçbir şey yenilemez. Süresi {{date}}tarihinde doluyor. ACME Sertifikaları bölümünde otomatik yenilemeyi etkinleştirin veya o tarihten önce yeni bir sertifika yükleyin.", + "sslSelfSigned": "Termix tarafından oluşturulmuş, kendinden imzalı bir sertifika. Tarayıcılar bu konuda uyarı verecektir.", + "sslRenewedBy": "{{plugin}} tarafından otomatik olarak yenilendi", + "sslIssuer": "{{issuer}} tarafından yayınlandı", + "sslNames": "Kapaklar {{names}}", + "sslManualTitle": "Sertifika yükleyin", + "updateExternalAutoProvisionFailed": "Otomatik oluşturma ayarı güncellenemedi." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Protokol", "domainLabel": "İhtisas", "domainPlaceholder": "isteğe bağlı", - "connectToAction": "Connect to {{name}}", + "connectToAction": "{{name}} ile bağlantı kurun", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Yüklenen hiçbir şey bu sunucu türüne bağlanamaz." }, "keybindings": { "title": "Klavye Kısayolları", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Terminal ve uygulama içindeki eylemlere tuş atamaları yapın veya yerleşik kısayolları değiştirin.", "defaultsHeading": "Dahili Kısayollar", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Uygulama Kısayolları", "fixed": { "splitRight": "Sağa böl", "splitDown": "Aşağı böl", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "Odaklanmış bölmeyi yakınlaştırın", + "navigatePane": "Paneller arasında geçiş yapın", "nextTab": "Sonraki sekme", "previousTab": "Önceki sekme", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "Sekmeye atla", + "previousView": "Önceki kenar çubuğu görünümüne geri dön", + "fullscreen": "Tam ekranı aç/kapat" }, "customHeading": "Özel Kısayollar", "addBinding": "Kısayol Ekle", @@ -1566,9 +1566,9 @@ "actionNextTab": "Sonraki sekmeye geç", "actionPreviousTab": "Önceki sekmeye geç", "actionOpenCommandPalette": "Hızlı aramayı aç", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Mevcut oturuma yeniden bağlanın", + "unavailableAction": "{{type}} (mevcut değil)", + "actionRequiredError": "Önce bir eylem seçin." }, "userProfile": { "donateTitle": "Termix'i canlı tutun", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Ayarlar varsayılanlara sıfırlandı.", "storageModeSwitch": "Tercih Depolama", "sectionAccount": "Hesap", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Bu cihaz sadece", + "desktopProfileDescription": "Bu profil bu cihazda bulunur ve otomatik olarak oturum açar. Her cihazda aynı sunucuları ve ayarları kullanmak için bunu bir Termix sunucusuna bağlayın.", "sectionInterface": "Arayüz", "interfacePresetDesc": "Termix ne kadar detaylı bilgi sunuyor. Tüm özellikler her zaman kullanılabilir durumda kalıyor.", "preset_simple": "Basit", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Oturum açtığınızda veya sayfayı yenilediğinizde, başka bir cihazdan bile açık sekmeleri geri yükle", "confirmTabClose": "Sekme Kapatmayı Onayla", "confirmTabCloseDesc": "Terminal sekmelerini kapatmadan önce sor", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Sekme Numaralarını Göster", + "showTabNumbersDesc": "Sekmeleri birbirinden ayırt etmeyi kolaylaştırmak için her sekmenin üzerine bir numara ekleyin.", "settingsAppRail": "Uygulama Rayı", "sidebarSettingsMoved": "Sunucu kenar çubuğu görüntüleme ayarları, Sunucular araç çubuğundan açılan Kenar çubuğunu özelleştir paneline taşındı.", "showHostTags": "Sunucu Etiketlerini Göster", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "{{server}} hesabına giriş yapıldı.", + "linkedProfileDescription": "Bu cihaz, sunucudaki hesabınızı kullanır ve verilerinizin bir kopyasını saklar, bu nedenle çevrimdışı olarak da çalışmaya devam eder.", + "manageSync": "Senkronizasyonu yönetin", + "setUpSync": "Sunucuya bağlantı", + "settingsTabsAndShortcuts": "Sekmeler ve Kısayollar" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Parolalarınızı ve anahtarlarınızı görün.", + "consequence": "Ulaşabildiğiniz herhangi bir sunucunun saklanmış gizli anahtarını okuyabilir." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Sunucularınızda komutları çalıştırın.", + "consequence": "Bağlantı kurduğunuz sunucularda, erişim yetkinizle istediğiniz komutu çalıştırabilirsiniz." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Bu makinede programları çalıştırın", + "consequence": "Programlar sizin sunucularınızda değil, Termix sunucusunun kendisinde çalışır." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Kullanıcı hesapları oluşturma ve değiştirme", + "consequence": "Kullanıcı ekleyebilir ve rollerini değiştirebilir." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Giriş işlemini yönetin", + "consequence": "Giriş yöntemi, ikinci faktör veya SSH oturum açma türü ekleyebilir." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Sertifikaları yönetin", + "consequence": "Bu, Termix'in HTTPS üzerinden sunduğu sertifikayı değiştirebilir ve sertifika yetkililerinden gelen alan adı kontrollerine yanıt verebilir." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Seri ve USB cihazlarına erişim", + "consequence": "Termix'in çalıştığı makinede fiziksel bir seri port açabilir." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Sunucuları oluşturun ve değiştirin", + "consequence": "Sunucu ekleyebilir ve mevcut sunucuları düzenleyebilirsiniz." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Sunucularınıza bağlanın", + "consequence": "Şifrelerinizi veya anahtarlarınızı göremez." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Yeni kimlik bilgilerini kaydet", + "consequence": "Kaydedilmiş kimlik bilgilerinize parolalar ve anahtarlar ekleyebilir." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "İnternete ulaşın", + "consequence": "Dış servislere istek gönderebilir." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Bağlantıları kabul et", + "consequence": "Termix sunucusunda bir port açar." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Ağ yayınları gönder", + "consequence": "Yerel ağdaki cihazlara, örneğin Wake-on-LAN sinyali gibi paketler gönderebilir." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Kullanıcı adlarını ve rolleri görün", + "consequence": "Parola karma kodları asla kullanılmaz, iki faktörlü doğrulama da asla tercih edilmez." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Olan biten her şeyi izleyin.", + "consequence": "Sadece sizin değil, diğer kullanıcıların etkinliklerini de içerir." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Uyarı gönder", + "consequence": "Size veya diğer kullanıcılara ve onların kurduğu kanallar aracılığıyla." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Tüm uyarıları alın", + "consequence": "Tüm eklentilerin gönderdiği uyarıları, içerikleriyle birlikte depolar ve iletir." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Denetim günlüğünü okuyun.", + "consequence": "Kimin neyi ne zaman yaptığını görebiliyor." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Masaüstü pencerelerini açın", + "consequence": "Sadece Termix masaüstü uygulamasında." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Diğer kullanıcılar gibi davranın", + "consequence": "Planlanmış görevler gibi, başka bir kullanıcının erişimiyle arka planda çalışan işlemleri gerçekleştirir. Her kullanım denetim günlüğüne kaydedilir." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Temel hesap tablolarını okuyun.", + "consequence": "Kullanıcıları, rolleri ve sunucuları doğrudan veritabanından sorgulayabilirsiniz." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Ev sahibi listenize bakın.", + "consequence": "Daha önce görebildiğiniz sunucuların adları ve adresleri." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Kendi verilerini saklar.", + "consequence": "Diğer eklentilerden ayrı olarak, kendi tablolarında saklanır." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Küçük ayarları hatırlayın.", + "consequence": "Diğer eklentilerden ayrı tutulur." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Kendi dosyalarını saklar.", + "consequence": "Disk üzerinde, diğer eklentilerden ayrı, kendine ait bir klasörde bulunur." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Kendi sırlarını saklar.", + "consequence": "Termix tarafından şifrelenmiştir. Eklenti hiçbir zaman anahtarı elinde bulundurmaz." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Termix ayarlarını okuyun.", + "consequence": "Sunucu ayarları, barındırma sağlayıcınız veya kimlik bilgileriniz değil." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Yüklenen özelliklere bakın", + "consequence": "Hangi özelliklerin yüklü ve çalışır durumda olduğunu görebilir." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Kendi ekranlarını ekle", + "consequence": "Sekmeleri, panelleri ve ayarları daha sonra gizleyebilirsiniz." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} mevcut değil", + "needsUnknownPlugin": "Bu özellik kullanılamıyor.", + "disabledHint": "Bu sunucuda devre dışı bırakılmış durumda.", + "missingHint": "Bu özelliğin geldiği yer kaldırıldı.", + "failed": "{{name}} başlatılamadı", + "failedHint": "Yönetici, ayrıntılar için sunucu günlüklerini kontrol edebilir.", + "loading": "Yükleniyor {{name}}", + "crashed": "{{name}} içinde bir şeyler ters gitti.", + "retry": "Tekrar deneyin" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Ayarlamak", + "secretNotSet": "Ayarlanmadı", "secretReplace": "Değiştir", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Ayarlar kaydedildi.", + "pluginSettingsInvalid": "Bazı ayarlar kaydedilemedi. Lütfen işaretlenmiş alanları kontrol edin.", + "pluginSettingsSaveFailed": "Ayarlar kaydedilemedi.", + "pluginSettingsLoadFailed": "Ayarlar yüklenemedi.", + "featureUnavailable": "{{name}} şu anda kullanılamıyor. Bu ayarlar kaydedildi ancak yürürlüğe girmeyecek." }, "managerCard": { "refresh": "Yenile", @@ -1913,169 +1913,169 @@ "filter": "Filtrele..." }, "sync": { - "server": "Termix server", + "server": "Termix sunucusu", "account": "Hesap", "status": "Durum", "never": "süresiz", "justNow": "az önce", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} dakika önce", + "minutesAgo_other": "{{count}} dakika önce", + "hoursAgo_one": "{{count}} saat önce", + "hoursAgo_other": "{{count}} saat önce", + "actionFailed": "Bu işe yaramadı. Tekrar deneyin.", + "unlinkedTitle": "Bu cihaz sadece", + "unlinkedBody": "Termix bu cihazda bağımsız olarak çalışır. Her şeyin senkronize kalması için cihazı Termix sunucunuza bağlayın.", + "unlinkedPointHosts": "Sunucularınız, kimlik bilgileriniz, kod parçacıklarınız ve ayarlarınız her cihazda sizinle birlikte gelir.", + "unlinkedPointOffline": "Sunucuya ulaşılamadığında bile her şey çalışmaya devam eder ve daha sonra otomatik olarak düzelir.", + "unlinkedPointAccount": "Sunucu hesabınızla giriş yapıyorsunuz ve sizinle paylaşılan sunucuların bilgileri de burada görünüyor.", + "linkButton": "Sunucuya bağlantı", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Senkronizasyon", + "offline": "Sunucuya ulaşılamıyor.", + "error": "Senkronizasyon durduruldu", + "signedOut": "Çıkış yapıldı", + "synced": "Senkronize edildi {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} senkronizasyon için beklemeyi değiştir", + "pending_other": "{{count}} senkronize edilmeyi bekleyen değişiklikler", + "signInAgain": "Tekrar giriş yapın", + "syncNow": "Şimdi senkronize et", + "unlink": "Bağlantıyı kaldır", + "unlinked": "Bu cihaz artık bağlı değil.", + "unlinkTitle": "Bu cihazın bağlantısını kes?", + "unlinkDescription": "Senkronizasyon durur ve sunucudan çıkış yapılır. Başkaları tarafından sizinle paylaşılan sunucular her iki durumda da bu cihazdan kaldırılır.", + "unlinkKeepTitle": "Verilerimi burada saklayın", + "unlinkKeepBody": "Sunucularınız, kimlik bilgileriniz ve ayarlarınız bu cihazda kalır ve kendi başlarına çalışmaya devam eder.", + "unlinkRemoveTitle": "Senkronize edilmiş verileri kaldır", + "unlinkRemoveBody": "Sunucudan gelen her şey bu cihazdan silinir. Sadece bu cihazda tutulan sunucular kalır.", + "conflictsTitle": "Çatışmalar", + "conflictsDescription": "Bunlar hem burada hem de sunucuda aynı anda değiştirildi. Sunucu sürümü kullanılıyor. Siz kendi sürümünüzü saklayın ve sunucuya gönderin.", + "keepMine": "Benimkini sakla", + "keepServer": "Sunucuyu açık tutun", + "errorsTitle": "Senkronize edilmedi", + "errorsDescription": "Sunucu bu değişiklikleri kabul etmedi. Değişiklikler bu cihazda kalacak.", + "errorPermission": "Sunucudaki hesabınızın bu değişikliği yapmasına izin verilmiyor.", + "retry": "Tekrar deneyin", + "whatSyncs": "Neler senkronize oluyor?", + "whatSyncsDescription": "Sadece bu cihazda kalmasını istediğiniz her şeyi kapatın.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Sunucuda bu özellik yok.", + "notOnDevice": "Henüz bu cihazda değil.", + "localOnlyHint": "Ayrıca, bu cihazda tek tek sunucuları veya klasörleri ayarlarından saklayabilirsiniz.", + "originTitle": "Bağlantıların başladığı yer", + "originDescription": "Bu cihazdan veya sunucu üzerinden sunuculara bağlanın. Bunu her sunucu için değiştirebilirsiniz.", + "originLocal": "Bu cihaz", + "originRemote": "Sunucu", "entities": { "hosts": "Hostlar", "sshCredentials": "Kimlik bilgileri", "sshFolders": "Klasörler", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Tercihler", + "pluginUserSettings": "Özellik ayarları", + "sharedHosts": "Ev sahipleri sizinle paylaştı", + "sharedCredentials": "Sizinle paylaşılan kimlik bilgileri", + "vaultProfiles": "Kasa profilleri", + "snippetFolders": "Kod parçacığı klasörleri", "snippets": "Parçacıklar", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "Hizmet bağlantıları", + "homepageItems": "Ana sayfa öğeleri", + "networkTopology": "Ağ haritası", + "workspaces": "Çalışma Alanları" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Ters proxy", + "description": "Bu işlem yalnızca Cloudflare Access veya bir giriş sayfası gibi bir şey sunucunuzun önünde yer aldığında gereklidir.", + "headersTitle": "Ek başlıklar", + "headersHint": "Sunucuya yapılan her istekle birlikte gönderilir, örneğin Cloudflare Erişim hizmeti belirteci.", + "headerName": "Başlık adı", + "headerValue": "Değer", + "savedValue": "Kaydedildi, değiştirmek için yazın.", + "addHeader": "Başlık ekle", + "removeHeader": "Başlığı kaldır", + "basicAuthTitle": "Kullanıcı adı ve şifre", + "basicAuthHint": "Termix'ten önce kullanıcı adı ve şifre isteyen bir proxy için.", "username": "Kullanıcı Adı", "password": "Parola", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Kendi imzasıyla onaylanmış bir sertifikaya güvenin.", + "allowInvalidCertificateHint": "Bu, yalnızca kendi sunucunuz için geçerlidir; sunucunuzun sertifikası bilinen bir yetkili kurumdan alınmamışsa.", "saved": "Kaydedildi" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Bu bir web adresine benzemiyor.", + "unreachable": "Sunucuya ulaşılamadı. Lütfen adresi ve sunucunun çalışır durumda olup olmadığını kontrol edin.", + "unreachableWithReason": "Sunucuya ulaşılamadı: {{reason}}", + "tlsUntrusted": "Sunucu sertifikasına güvenilmiyor. Kendi sunucunuz ve kendinden imzalı bir sertifikanız varsa, aşağıdaki seçeneği etkinleştirin.", + "basicAuthRequired": "Sunucunun önünde kullanıcı adı ve şifre isteyen bir ekran var. Lütfen bunları aşağıya girin.", + "proxyLogin": "Termix yerine bir giriş sayfası veya proxy yanıt verdi. Gerekli başlıkları aşağıya ekleyin veya adresi kontrol edin.", + "notTermix": "Bu adreste Termix sunucusu bulunmamaktadır. Eğer bir yol (path) üzerinden çalışıyorsa, o yolu da ekleyin, örneğin https://example.com/termix.", + "versionMismatch": "Bu sunucuda eski bir Termix sürümü çalışıyor. Bağlantı kurabilmek için 2.9 veya daha yeni bir sürüme güncelleyin.", + "differentAccount": "Farklı bir hesaba giriş yaptınız. Lütfen bu cihazın bağlı olduğu hesaba giriş yapın veya önce bağlantıyı kesin." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Termix sunucusuna bağlantı", + "reloginTitle": "Tekrar giriş yapın", + "savedServers": "Son sunucular", + "removeServer": "Listeden kaldır", + "serverDescription": "Termix'i tarayıcınızda açmak için kullandığınız adresi girin.", + "signinDescription": "{{url}} adresine giriş yapın.", + "chooseDescription": "Bu cihazda zaten veri var. Ona ne yapılmalı?", + "finishingDescription": "Bu cihaz bağlanıyor.", + "serverUrl": "Sunucu adresi", + "serverUrlHint": "Örneğin https://termix.example.com", + "showProxySettings": "Ters proxy ayarları", + "hideProxySettings": "Ters proxy ayarlarını gizle", "continue": "Devam", "back": "Geri", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "Hesabıma ekle", + "mergeBody": "Bu cihazdaki {{count}} öğe hesabınıza eklendi. Hesabınızda zaten bulunan öğeler sunucuda oldukları gibi kalır.", + "replaceTitle": "Hesabımla değiştirin.", + "replaceBody": "Bu cihazdaki {{count}} öğe kaldırılır ve bu cihaz hesabınızdaki her şeyi alır. Bu cihazda yalnızca sunucular kalır.", + "link": "Bağlantı", + "linking": "Bağlantı kuruluyor ve ilk senkronizasyon çalıştırılıyor...", + "linked": "Bağlantı kuruldu. Verileriniz şu anda senkronize ediliyor.", + "signedInAgain": "Oturum açıldı. Senkronizasyon yeniden çalışıyor." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Klasör {{name}}", + "user": "Varsayılan ayarlarım", + "admin": "Sunucu", + "builtin": "Dahili" }, "custom": "Özel", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "Buraya yerleştir", + "notSet": "Ayarlanmadı", + "notSetTitle": "Bunun için varsayılan bir değer ayarlanmamıştır.", + "resetTitle": "Bu sunucu kendi değerini belirler. Varsayılan değeri tekrar kullanmak için tıklayın: {{source}}", + "clearTitle": "Bu seviyede ayarlandı. Temizlemek için tıklayın ve bunun yerine {{source}} kullanın.", + "inheritedTitle": "{{source}}'dan gelen varsayılanı takip eder.", + "titleAdmin": "Sunucu ana bilgisayar varsayılanları", + "titleUser": "Sunucumun varsayılan ayarları", + "titleFolder": "Klasör varsayılanları: {{name}}", + "descriptionAdmin": "Bu sunucudaki her ana bilgisayar için varsayılan değerler. Kullanıcının kendi varsayılan değerleri, bir klasörün varsayılan değerleri veya ana bilgisayarın kendisi yine de farklı bir değer belirleyebilir. Bir alanı değiştirmek için buraya, temizlemek için ise ayarlanmamış olarak bırakın.", + "descriptionUser": "Sunucunuzun varsayılan değerlerinin üzerinde, tüm sunucularınız için varsayılan değerler bulunur. Bir klasör veya sunucunun kendisi yine de farklı bir değer belirleyebilir. Bir alanı değiştirerek burada ayarlayabilir veya temizleyerek ayarlanmamış bırakabilirsiniz.", + "descriptionFolder": "Bu klasördeki ve alt klasörlerindeki sunucular için varsayılan ayarlar, sizin kendi ayarlarınızın yerine geçer. Bir sunucu yine de farklı bir değer belirleyebilir. Bir alanı değiştirerek burada ayarlayabilir veya temizleyerek ayarlanmamış bırakabilirsiniz.", + "save": "Varsayılan ayarları kaydet", + "saved_one": "Varsayılan ayarlar kaydedildi. {{count}} sunucu güncellendi.", + "saved_other": "Varsayılan ayarlar kaydedildi. {{count}} sunucu güncellendi.", + "savedInBackground": "Varsayılan ayarlar kaydedildi. Sunucular arka planda güncelleniyor.", + "appliedToHosts_one": "{{count}} sunucusu yeni varsayılan ayarlarla güncellendi.", + "appliedToHosts_other": "{{count}} sunucu yeni varsayılan ayarlarla güncellendi.", + "saveFailed": "Varsayılan ayarlar kaydedilemedi.", + "loadFailed": "Varsayılan ayarlar yüklenemedi.", + "confirmTitle": "Varsayılan ayarları kaydet?", + "confirmChanges_one": "{{count}} sunucu bu varsayılan değerleri takip eder ve değişecektir.", + "confirmChanges_other": "{{count}} sunucular bu varsayılan ayarları takip eder ve değişecektir.", + "confirmNoChanges": "Mevcut sunucuda herhangi bir değişiklik yapılmayacak. Yeni sunucular bu varsayılan ayarlarla başlayacak.", + "menuMyDefaults": "Sunucumun varsayılan ayarları", + "folderDefaultsAction": "Klasör varsayılanları", + "adminSectionDescription": "Bu sunucudaki her sunucu için, her bir özelliğin ayarları da dahil olmak üzere, her sunucunun izlediği varsayılan değerleri belirleyin. Kullanıcılar ve klasörler kendi ayarlarını bunların üzerine ekleyebilir ve her sunucu kendi değerini kullanmaya devam edebilir.", + "editServerDefaults": "Sunucu varsayılanlarını düzenle", "resetMenu": "Sıfırla", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Her şey varsayılan ayarlarda", + "resetCore": "Varsayılan ayarlara bağlantı ve SSH", + "resetDone_one": "{{count}} sunucu artık varsayılan ayarlarını kullanıyor.", + "resetDone_other": "{{count}} sunucular artık varsayılan ayarlarını takip ediyor." } } diff --git a/src/ui/locales/translated/uk_UA.json b/src/ui/locales/translated/uk_UA.json index d325f9690..d03e62286 100644 --- a/src/ui/locales/translated/uk_UA.json +++ b/src/ui/locales/translated/uk_UA.json @@ -55,8 +55,8 @@ "levelManage": "Керувати", "levelUseDesc": "Використання: прикріпіть облікові дані до хостів та підключіться. Сам секрет залишається прихованим.", "levelManageDesc": "Керування: також редагуйте облікові дані та діліться ними з іншими.", - "noAccessEntries": "This credential has not been shared yet", - "accessRevoked": "Access revoked", + "noAccessEntries": "Ці облікові дані ще не були надані", + "accessRevoked": "Доступ скасовано", "shared": "Облікові дані надано" }, "deleteCredentialAction": "Видалити облікові дані", @@ -113,14 +113,14 @@ "arrangeUnlocked": "Розблокуйте перетягування, щоб змінити порядок" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Доступне оновлення. Відкрийте нотатки до випуску на GitHub." }, "common": { "close": "Закрити", "minimize": "Згорнути", "online": "Онлайн", "offline": "Офлайн", - "signInFailed": "Sign in failed", + "signInFailed": "Не вдалося ввійти", "unknown": "Невідомо", "continue": "Продовжити", "maintenance": "Технічне обслуговування", @@ -131,9 +131,9 @@ "dismiss": "Відхилити", "more": "Більше", "loading": "Завантаження...", - "host": "Host", - "selectHost": "Select a host...", - "noHostConfigured": "No host configured", + "host": "Хост", + "selectHost": "Виберіть хоста...", + "noHostConfigured": "Хост не налаштовано", "optional": "Необов'язково", "connect": "Підключитися", "copied": "Скопійовано", @@ -187,7 +187,7 @@ "remove": "Видалити", "add": "Додати", "update": "Оновлення", - "noResults": "No results found" + "noResults": "Результатів не знайдено" }, "onboarding": { "stepCounter": "Крок {{current}} з {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Палітра команд", "workflow_palette_desc": "Перехід до будь-якого сервера або дії шляхом введення тексту. Двічі натисніть Shift, щоб відкрити його.", "workflow_split": "Розділений екран", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Відображати кілька вкладок поруч, наприклад, для перегляду журналів під час роботи.", "workflow_dock": "Бічна панель", "workflow_dock_desc": "Клацніть середньою кнопкою миші або правою кнопкою миші на значку бічної панелі, щоб відкрити її як вкладку або закріпити праворуч.", "securityTitle": "Безпека ваших входів", @@ -248,13 +248,13 @@ "done_cli": "Інструмент командного рядка", "done_cli_desc": "Керуйте своїми серверами з терміналу та використовуйте Termix у власних скриптах.", "done_cli_link": "Відкрийте документацію CLI", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Як ви хочете використовувати Termix?", + "desktopBody": "Ви можете змінити це будь-коли в розділі «Синхронізація» на бічній панелі.", + "desktopLocalTitle": "Тільки на цьому пристрої", + "desktopLocalBody": "Все зберігається тут. Нічого налаштовувати не потрібно.", + "desktopLinkTitle": "З моїм сервером Termix", + "desktopLinkBody": "Увійдіть на свій сервер, щоб використовувати однакові хости та налаштування на кожному пристрої.", + "desktopLinked": "Пов’язано з {{server}}" }, "nav": { "home": "Дім", @@ -295,21 +295,21 @@ "collapseSideMenu": "Згорнути меню", "roleAdministrator": "Адміністратор", "roleUser": "Користувач", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Синхронізація", + "reconnectDisconnectedTerminals": "Знову підключіть усі відключені клеми", + "reconnectingTerminals_one": "Повторне підключення терміналу {{count}}", + "reconnectingTerminals_other": "Повторне підключення терміналів {{count}}", + "noDisconnectedTerminals": "Жоден відключений термінал не готовий до повторного підключення", + "reconnectTerminalsFailed_one": "Не вдалося розпочати повторне підключення терміналу {{count}}", + "reconnectTerminalsFailed_other": "Не вдалося розпочати повторне підключення терміналів {{count}}", + "fullscreenUnsupported": "Цей браузер не підтримує повноекранний режим", + "fullscreenFailed": "Не вдалося перемкнути/вимкнути повноекранний режим", + "resetSidebarWidth": "Скинути ширину", + "collapseSidebar": "Згорнути бічну панель", + "openSidebar": "Відкрити бічну панель", + "confirmCloseHost": "Закрити {{host}}?", + "enterFullscreen": "Перейти в повноекранний режим (Ctrl+Shift+F)", + "exitFullscreen": "Вийти з повноекранного режиму (Ctrl+Shift+F)" }, "hosts": { "hosts": "Хости", @@ -353,7 +353,7 @@ "serverStats": "Метрики хоста", "status": { "available": "Доступно", - "reachable": "Up, but the last sign in failed", + "reachable": "Вгору, але останній вхід не вдався", "offline": "Офлайн", "monitoringDisabled": "Моніторинг вимкнено", "label": "Статус" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Примусова інтерактивна клавіатура", "overrideCredentialUsername": "Перезаписати ім'я користувача облікових даних", "overrideCredentialUsernameDesc": "Використовуйте вказане вище ім'я користувача замість імені користувача облікових даних", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Використовуйте $external.username, щоб ввести ім’я користувача, яке ви використовували для входу через SSO або LDAP.", "jumpHostChain": "Ланцюг хоста стрибка", "portKnocking": "Порт-Нокінґ", "addKnock": "Додати порт", @@ -626,14 +626,14 @@ "actionsClick": "Натисніть, щоб розгорнути/згорнути", "openOnDoubleClick": "Відкрити подвійним клацанням", "openOnDoubleClickDesc": "Для відкриття сеансу хоста потрібно подвійне клацання замість одного клацання", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Показати шляхи до папок", + "showFolderPathsDesc": "Показувати шлях батьківської папки над іменами вкладених підпапок. Підпапки залишаються з відступом у будь-якому випадку.", + "hostClickBehavior": "Клацання на хості", + "hostClickBehaviorDesc": "Що відбувається, коли ви клацаєте на хості, на якому вже є відкрита вкладка. Клік Ctrl/Cmd, клік середньою кнопкою миші або \"Відкрити в новій вкладці\" завжди запускає нову вкладку.", + "hostClickNewTab": "Завжди відкривати нову вкладку", + "hostClickFocusExisting": "Перейти до відкритої вкладки", + "hostClickFocusExistingDoubleNew": "Натисніть, щоб переключитися, двічі натисніть, щоб перейти до нової вкладки", + "openInNewTab": "Відкрити в новій вкладці", "deletedHost": "Видалено {{name}}", "copiedToClipboard": "Скопійовано в буфер обміну", "remoteDesktopUrlCopied": "URL-адресу віддаленого робочого столу скопійовано", @@ -698,7 +698,7 @@ "groupCredentials": "Облікові дані", "groupNotes": "Нотатки", "groupTags": "Теги та закріплення", - "groupProxy": "Proxy", + "groupProxy": "Проксі", "groupJumpHosts": "Хости Jump", "groupFeatureFlags": "Прапорці функцій", "groupAdvanced": "Розширена конфігурація", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Кожній кінцевій точці потрібне окреме ім'я.", "webUiErrorPortRange": "Кінцевій точці {{row}} потрібен порт від 1 до 65535.", "webUiErrorPathInvalid": "Кінцева точка {{row}} має недійсний шлях. Використайте шлях типу /admin.", - "copyViewUrlAction": "Copy {{name}} link", - "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "copyViewUrlAction": "Копіювати посилання {{name}}", + "filterAuthAgent": "SSH-агент", + "authTypeNeedsPlugin": "Цей хост використовує {{type}}, для якого потрібен {{plugin}}. На цьому сервері його вимкнено.", + "authTypeUnknown": "Цей хост використовує {{type}}, який недоступний на цьому сервері.", + "authFieldsAfterSave": "Спочатку збережіть хост, а потім заповніть ці поля.", + "enablePluginFeature": "Увімкнути {{name}}", + "disablePluginFeature": "Вимкнути {{name}}", "filterFeaturesGroup": "Особливості", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", - "editorCancel": "Cancel", - "editorSaving": "Saving...", - "editorUpdate": "Update Host", - "editorAdd": "Add Host", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "localOnly": "Зберігати лише на цьому пристрої", + "localOnlyDesc": "Цей хост не надсилається на сервер і не відображається на інших ваших пристроях.", + "folderLocalOnly": "Зберігати лише на цьому пристрої", + "folderLocalOnlyDesc": "Ця папка та кожен хост у ній залишаються на цьому пристрої та не надсилаються на сервер.", + "sudoPasswordDesc": "Використовується, коли термінал заповнює запит sudo, а також функціями, які виконують команди за допомогою sudo.", + "editorCancel": "Скасувати", + "editorSaving": "Збереження...", + "editorUpdate": "Оновити хост", + "editorAdd": "Додати хоста", + "speedSearch": "Пошук хостів. Клавіші зі стрілками для вибору, Enter для підключення, Esc для закриття", + "speedSearchList": "Список хостів. Введіть текст або натисніть / для пошуку.", + "importNoHosts": "У файлі не знайдено хостів", + "importTooMany": "Ви можете імпортувати до {{max}} хостів одночасно", + "importSummary": "Імпорт завершено: {{imported}} імпортовано, {{updated}} оновлено, {{failed}} не вдалося", + "importHostsFailed": "Не вдалося імпортувати хости" }, "commandPalette": { "searchPlaceholder": "Пошук хостів, команд або налаштувань...", @@ -897,58 +897,58 @@ "navigate": "Навігація", "select": "Виберіть", "toggleWith": "Перемикання за допомогою", - "pluginActions": "More actions", - "noTargetTab": "No terminal tab is open" + "pluginActions": "Більше дій", + "noTargetTab": "Жодна вкладка термінала не відкрита" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", - "splitRight": "Split right", - "splitDown": "Split down", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", - "paneNumber": "Pane {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", - "hosts": "Hosts", - "searchHosts": "Search hosts", - "noHosts": "No hosts match", - "newSession": "New", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "title": "Розділений екран", + "defaultLabel": "Розділити {{number}}", + "splitRight": "Розділити праворуч", + "splitDown": "Розділити", + "addToSplit": "Додати до {{split}}", + "paneEmptyItem": "Панель {{index}}: порожня", + "paneItem": "Панель {{index}}: {{label}}", + "paneNumber": "Панель {{index}}", + "newPaneRight": "Нова панель праворуч", + "newPaneBelow": "Нова панель нижче", + "emptyTitle": "Порожня панель", + "emptyHint": "Виберіть щось для відображення тут. Якщо вибрано цю панель, тут також відкриється все, що ви відкриваєте з бічної панелі.", + "openTabs": "Відкриті вкладки", + "noOpenTabs": "Інші вкладки не відкриті", + "hosts": "Хости", + "searchHosts": "Пошук хостів", + "noHosts": "Немає збігів між господарями", + "newSession": "Новий", + "closePane": "Закрити панель", + "closeSession": "Закрити сесію", + "moveToTab": "Перейти на окрему вкладку", + "swapWith": "Обміняти з", + "showHere": "Показувати в цій панелі", + "clearPane": "Очистити цю панель", + "zoom": "Панель масштабування", + "unzoom": "Відновити макет", + "unsplit": "Нерозділений", + "layouts": "Макети", + "applyLayout": "Змінити макет", + "newSplit": "Новий поділ", + "maxPanes": "Розділення може містити до {{count}} панелей", + "dropSplit": "Падіння для розділення", + "dropHere": "Перетягніть, щоб показати тут", + "paneActions": "Дії панелі", + "dividerHint": "Перетягніть, щоб змінити розмір. Двічі клацніть, щоб вирівняти.", + "openInSplit": "Відкрити в розділеному режимі", + "openInNewSplit": "Новий поділ з поточною вкладкою", + "shortcuts": "Скорочення", + "shortcutNavigate": "Переміщення між панелями", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Два поруч", + "rows2": "Два складені", + "columns3": "Три поруч", + "mainLeft3": "Один ліворуч, два праворуч", + "mainBottom3": "Два верхніх, один нижній", + "grid4": "Сітка з чотирьох", + "grid5": "Три над двома", + "grid6": "Сітка з шести" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Потрібна автентифікація", "mfaPushRequired": "Потрібна автентифікація push-повідомлень", "mfaMenuPlaceholder": "Введіть свою відповідь", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Код або \"штовхання\"", "mfaWaitingApproval": "Очікування схвалення на вашому пристрої...", "mfaSendRequest": "Надіслати запит", - "browserSignInCode": "Security Key", - "browserSignInUrl": "Sign-in URL", - "browserSignInOpen": "Open in Browser", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInCode": "Ключ безпеки", + "browserSignInUrl": "URL-адреса для входу", + "browserSignInOpen": "Відкрити у браузері", + "browserSignInContinue": "Я завершив(-ла) вхід", + "browserSignInRequired": "{{provider}} Потрібен вхід", "connectionLogTitle": "Журнал підключення", "connectionLogCopy": "Копіювати журнали в буфер обміну", "connectionLogEmpty": "Журналів підключень поки що немає", @@ -1032,7 +1032,7 @@ "external": "Зовнішній", "loginWithExternal": "Вхід через зовнішнього постачальника", "loginWithExternalDesc": "Увійдіть, використовуючи налаштований вами зовнішній постачальник ідентифікаційних даних", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Зовнішній вхід поки що не підтримується в настільному додатку. Будь ласка, скористайтеся веб-версією.", "loginWithProvider": "Увійти за допомогою {{name}}", "orContinueWith": "або продовжити з", "resetPasswordButton": "Скинути пароль", @@ -1054,11 +1054,11 @@ "passwordLoginDisabledDesc": "Вхід за паролем вимкнено. Використайте ключ доступу або зовнішній постачальник автентифікації.", "attemptsRemaining": "Залишилося {{count}} спроб", "confirmResetDataWipe": "Цей обліковий запис не входив у систему з моменту оновлення шифрування, тому його збережені дані неможливо відновити без старого пароля. Скидання налаштувань призведе до остаточного видалення його хостів, облікових даних та фрагментів. Продовжити?", - "password": "Password", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "password": "Пароль", + "secondFactorUnavailable": "Ваш обліковий запис використовує другий фактор, який зараз недоступний. Зверніться до адміністратора, щоб скинути його.", + "secondFactorNoUI": "Цей другий фактор неможливо відобразити на цьому екрані. Зверніться до адміністратора.", + "serverAuthentication": "Вхід на сервер", + "minChars": "мін. {{min}} символів" }, "hostKey": { "verifyNewHost": "Перевірте ключ хоста SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Не вдалося перевірити код скидання", "failedCompleteReset": "Не вдалося завершити скидання пароля", "invalidTotpCode": "Недійсний код TOTP", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Не вдалося розпочати зовнішній вхід", + "silentSigninOidcUnavailable": "Було надіслано запит на тихий вхід, але зовнішній вхід не налаштовано.", "failedUserInfo": "Не вдалося отримати інформацію про користувача після входу", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Зовнішній вхід не вдалося", "invalidAuthUrl": "Недійсна URL-адреса авторизації отримана від серверної частини", "requiredField": "Це поле обов'язкове", "minLength": "Мінімальна довжина {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Не вдалося зберегти токен автентифікації", "authTokenMissing": "Сервер не повернув новий токен автентифікації. Будь ласка, увійдіть ще раз.", "failedToLoadServer": "Не вдалося завантажити сервер", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Сеанс закінчився. Будь ласка, увійдіть знову." }, "messages": { "registrationDisabled": "Реєстрацію нового облікового запису наразі вимкнено адміністратором. Будь ласка, увійдіть або зверніться до адміністратора.", @@ -1163,7 +1163,7 @@ "panelMain": "Головне", "panelSide": "Сторона", "justNow": "щойно", - "activityFileManager": "File manager" + "activityFileManager": "Файловий менеджер" }, "donation": { "title": "Подобається Термікс?", @@ -1188,12 +1188,12 @@ "add": "Додати:", "commandPalette": "Палітра команд", "done": "Готово", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Перетягніть картки, щоб змінити порядок. Перетягніть роздільник стовпців, щоб змінити розмір стовпців. Перетягніть нижній край картки, щоб змінити її висоту. Використовуйте кнопку кошика, щоб видалити картку.", "empty": "Порожній", "clear": "Очистити", "viewServerDetails": "Переглянути деталі сервера", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Перетягніть, щоб змінити розмір стовпців", + "hostsAvailable": "Доступні хости" }, "admin": { "sectionGeneral": "Загальне", @@ -1203,7 +1203,7 @@ "sectionDatabase": "База даних", "sectionApiKeys": "Ключі API", "sectionAuditLog": "Журнал аудиту", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS-сертифікат", "sectionBranding": "Біла етикетка", "brandingAppName": "Назва програми", "brandingAppNameDesc": "Відображається на екрані входу та вкладці браузера. Залиште поле порожнім, щоб використовувати «Termix».", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Недійсне зображення. Використайте файл PNG, JPEG або WEBP розміром до 750 КБ.", "brandingSaved": "Налаштування брендингу збережено", "brandingSaveFailed": "Не вдалося зберегти налаштування брендингу", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Сертифікат, який Termix надає через HTTPS. Завантажте свій власний тут або отримайте та поновіть його на сайті Let's Encrypt у розділі Сертифікати ACME.", "sslDocsLink": "Переглянути документацію SSL", "sslCertStatus": "Статус сертифіката", "sslCertStatusNone": "Без сертифіката", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Дозвольте новим користувачам самостійно реєструватися, використовуючи ім'я користувача та пароль", "allowPasswordLogin": "Дозволити вхід з паролем", "allowPasswordLoginDesc": "Вхід за ім'ям користувача/паролем", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Автоматичне створення зовнішніх облікових записів", + "oidcAutoProvisionDesc": "Створіть обліковий запис під час першого входу через зовнішній логін, такий як SSO або LDAP, навіть якщо реєстрацію вимкнено.", + "secondFactorAfterExternalLogin": "Запитувати другий фактор після зовнішніх входів (SSO, GitHub, Google, LDAP)", + "secondFactorAfterExternalLoginDesc": "Вимкнено, зареєстрований другий фактор запитується лише після пароля та інших локальних входів, як і раніше. Увімкнено, запитується після кожного методу входу, включаючи SSO та LDAP.", "allowPasswordReset": "Дозволити скидання пароля", "allowPasswordResetDesc": "Скидання коду через журнали Docker", "auditForwardingTitle": "Вперед до SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Не вдалося зберегти налаштування переадресації аудиту", "sessionTimeout": "Час очікування сеансу", "hours": "години", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Мін. 1 год, макс. 720 год", "monitoringDefaults": "Моніторинг налаштувань за замовчуванням", "statusCheck": "Перевірка стану", "sec": "сек", @@ -1312,7 +1312,7 @@ "apiKeyNoExpiry": "Без терміну дії", "revokedBadge": "СКАСОВАНО", "authTypeDual": "Подвійна автентифікація", - "authTypeOidc": "External", + "authTypeOidc": "Зовнішній", "authTypeLocal": "Місцевий", "adminStatusAdministrator": "Адміністратор", "adminStatusRegularUser": "Звичайний користувач", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Статус адміністратора", "editUserUserId": "Ідентифікатор користувача", "linkAccountTitle": "Зв'язати облікові записи", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Об’єднайте зовнішній обліковий запис {{username}} з існуючим локальним обліковим записом.", + "linkAccountDescLocal": "Зв’яжіть локальний обліковий запис {{username}} з існуючим обліковим записом, доступним лише для зовнішніх користувачів.", "linkAccountWarningTitle": "Це призведе до:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Видалити обліковий запис лише для зовнішніх користувачів", + "linkAccountEffect2": "Додати зовнішній вхід до цільового облікового запису", + "linkAccountEffect3": "Дозволити як зовнішній вхід, так і вхід за паролем", "linkAccountTargetUsername": "Ім'я користувача локального облікового запису", "linkAccountTargetPlaceholder": "Введіть ім'я користувача локального облікового запису для підключення", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Ім'я користувача зовнішнього облікового запису", + "linkAccountOidcPlaceholder": "Введіть ім'я користувача зовнішнього облікового запису для об'єднання", + "linkAccountOidcNotFound": "Зовнішній обліковий запис із цим іменем користувача не знайдено", "linkAccounts": "Зв'язати облікові записи", "linkAccountSuccess": "Облікові записи успішно пов’язано", "linkAccountFailed": "Не вдалося зв'язати облікові записи", "linkAccountInProgress": "Зв'язування...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Від’єднати зовнішній вхід", + "unlinkAccountDesc": "Видалити зовнішній вхід з {{username}}. Вони зможуть увійти лише за допомогою свого пароля.", + "unlinkAccountWarning": "Це скасує зовнішній вхід з цього облікового запису. Користувач повинен встановити пароль, щоб продовжувати входити.", + "unlinkAccount": "Від’єднати зовнішній вхід", "unlinkAccountInProgress": "Від’єднання...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Зовнішній вхід від’єднано", + "unlinkAccountFailed": "Не вдалося від’єднати зовнішній вхід", "saving": "Збереження...", "updateRegistrationFailed": "Не вдалося оновити налаштування реєстрації", "updatePasswordLoginFailed": "Не вдалося оновити налаштування входу з паролем", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Не вдалося оновити налаштування автоматичного створення", + "updateSecondFactorAfterExternalLoginFailed": "Не вдалося оновити налаштування другого фактора", "updatePasswordResetFailed": "Не вдалося оновити налаштування скидання пароля", "sessionTimeoutRange2": "Час очікування сеансу має бути від 1 до 720 годин", "sessionTimeoutSaved": "Час очікування сеансу збережено", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Немає активних сеансів", "deleteSuccessorLabel": "Передайте хостам та облікові дані", "deleteSuccessorMe": "Я (адміністратор, що видаляє)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Ніхто, видаліть їх.", "deleteSuccessorDesc": "Все, чим поділився цей користувач, продовжує працювати під новим власником; вибір «Ніхто» видаляє його хости, облікові дані та спільні ресурси.", "deleteUserDangerDesc": "Остаточно видалити {{username}} та всі його дані (хости, облікові дані, фрагменти коду, історію). Цю дію неможливо скасувати.", "deleteUserConfirm": "Остаточно видалити {{username}} та всі його дані?", @@ -1477,31 +1477,31 @@ "saveError": "Не вдалося зберегти дозволи ролі", "save": "Зберегти", "saving": "Збереження...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Функцію вимкнено", "groups": { - "hosts": "Hosts", - "credentials": "Credentials", - "admin": "Administration" + "hosts": "Хости", + "credentials": "Облікові дані", + "admin": "Адміністрація" } }, "notificationPrivateEndpoints": "Дозволені хости приватних сповіщень", "notificationPrivateEndpointsDesc": "Точні приватні хости, з якими можуть зв’язуватися канали сповіщень. Розділіть їх комами.", "updateNotificationEndpointsFailed": "Не вдалося оновити список дозволених кінцевих точок сповіщень", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Другі фактори", + "secondFactorsNone": "Другі фактори не зареєстровані", + "secondFactorUnavailable": "Недоступно", + "resetSecondFactors": "Скинути другі множники", + "resetSecondFactorsConfirm": "Видалити кожен другий фактор для {{username}}? Вони можуть увійти за допомогою пароля або SSO та зареєструватися знову.", + "secondFactorsResetSuccess": "Скидання других факторів", + "secondFactorsResetFailed": "Не вдалося скинути другі коефіцієнти", + "passwordLoginForced": "Вхід за паролем вимкнено, але жодного іншого способу входу не ввімкнено, тому він поки що залишається ввімкненим. Ніхто не буде заблокований.", + "sslNotRenewed": "Ніщо не поновлює цей сертифікат. Термін його дії закінчується {{date}}. Увімкніть автоматичне поновлення в розділі «Сертифікати ACME» або завантажте новий до цього часу.", + "sslSelfSigned": "Самопідписаний сертифікат, створений Termix. Браузери попередять про це.", + "sslRenewedBy": "Автоматично поновлюється {{plugin}}", + "sslIssuer": "Видано {{issuer}}", + "sslNames": "Обкладинки {{names}}", + "sslManualTitle": "Завантажити сертифікат", + "updateExternalAutoProvisionFailed": "Не вдалося оновити налаштування автоматичного створення" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Протокол", "domainLabel": "Домен", "domainPlaceholder": "необов'язково", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Підключитися до {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Ніщо інстальоване не може підключитися до цього типу хоста" }, "keybindings": { "title": "Комбінації клавіш", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Прив’яжіть клавіші до дій у терміналі та додатку або змініть вбудовані комбінації клавіш.", "defaultsHeading": "Вбудовані комбінації клавіш", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Ярлики програм", "fixed": { - "splitRight": "Split right", - "splitDown": "Split down", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", - "nextTab": "Next tab", - "previousTab": "Previous tab", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "splitRight": "Розділити праворуч", + "splitDown": "Розділити", + "zoomPane": "Масштабування фокусованої області", + "navigatePane": "Переміщення між панелями", + "nextTab": "Наступна вкладка", + "previousTab": "Попередня вкладка", + "jumpTab": "Перейти до вкладки", + "previousView": "Повернутися до попереднього вигляду бічної панелі", + "fullscreen": "Перемикання повноекранного режиму" }, "customHeading": "Користувацькі скорочення", "addBinding": "Додати ярлик", @@ -1566,9 +1566,9 @@ "actionNextTab": "Перейти до наступної вкладки", "actionPreviousTab": "Перейти до попередньої вкладки", "actionOpenCommandPalette": "Відкрити швидкий пошук", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Перепідключитися до поточного сеансу", + "unavailableAction": "{{type}} (недоступно)", + "actionRequiredError": "Спочатку виберіть дію" }, "userProfile": { "donateTitle": "Збережи Термікс живим", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Налаштування скинуто до заводських значень.", "storageModeSwitch": "Зберігання налаштувань", "sectionAccount": "Обліковий запис", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Тільки цей пристрій", + "desktopProfileDescription": "Цей профіль знаходиться на цьому пристрої та входить у систему самостійно. Підключіть його до сервера Termix, щоб використовувати однакові хости та налаштування на кожному пристрої.", "sectionInterface": "Інтерфейс", "interfacePresetDesc": "Скільки деталей показує Termix. Кожна функція залишається доступною.", "preset_simple": "Простий", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Відновлюйте відкриті вкладки після входу в систему або оновлення сторінки, навіть з іншого пристрою", "confirmTabClose": "Підтвердити закриття вкладки", "confirmTabCloseDesc": "Запитувати перед закриттям вкладок термінала", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Показати номери вкладок", + "showTabNumbersDesc": "Відображайте номер на кожній вкладці, щоб допомогти їх розрізнити", "settingsAppRail": "Залізниця додатків", "sidebarSettingsMoved": "Налаштування відображення бічної панелі хоста переміщено на панель «Налаштувати бічну панель», яка відкривається з панелі інструментів хостів.", "showHostTags": "Показати теги хоста", @@ -1727,7 +1727,7 @@ "importFailed": "Помилка імпорту: {{error}}", "roleUser": "Користувач", "authMethodDual": "Подвійна автентифікація", - "authMethodOidc": "External", + "authMethodOidc": "Зовнішній", "done": "Готово", "apiKeyNameRequired": "Потрібне ім'я ключа", "apiKeyCreated": "Ключ API \"{{name}}\" створено", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Ніч у Токіо", "themeOneDark": "Одна темрява", "themeGruvbox": "Грувбокс", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Ви ввійшли в {{server}}", + "linkedProfileDescription": "Цей пристрій використовує ваш обліковий запис на сервері та зберігає копію ваших даних, тому він все ще працює офлайн.", + "manageSync": "Керування синхронізацією", + "setUpSync": "Посилання на сервер", + "settingsTabsAndShortcuts": "Вкладки та комбінації клавіш" } } }, @@ -1767,315 +1767,315 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Переглядайте свої паролі та ключі", + "consequence": "Він може зчитувати збережений секрет для будь-якого хоста, до якого ви можете зв'язатися." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Виконання команд на ваших серверах", + "consequence": "Будь-яка команда на хостах, до яких ви її підключаєте, з вашим доступом." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Запускати програми на цій машині", + "consequence": "Програми працюють на самому сервері Termix, а не на ваших хостах." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Створення та зміна облікових записів користувачів", + "consequence": "Він може додавати користувачів та змінювати їхні ролі." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Керування входом", + "consequence": "Він може додати метод входу, другий фактор або тип входу SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Керування сертифікатами", + "consequence": "Він може замінити сертифікат, який Termix надає через HTTPS, та відповідати на перевірки домену від центрів сертифікації." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Доступ до послідовних та USB-пристроїв", + "consequence": "Він може відкрити фізичний послідовний порт на машині з запущеним Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Створення та зміна хостів", + "consequence": "Він може додавати хости та редагувати ті, що у вас вже є." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Підключення до ваших серверів", + "consequence": "Він не може бачити ваші паролі чи ключі." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Зберегти нові облікові дані", + "consequence": "Він може додавати паролі та ключі до ваших збережених облікових даних." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Зв'яжіться з Інтернетом", + "consequence": "Він може надсилати запити до зовнішніх служб." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Приймати з'єднання", + "consequence": "Він відкриває порт на сервері Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Надсилати мережеві широкомовні розсилки", + "consequence": "Він може надсилати пакети на пристрої в локальній мережі, наприклад, сигнал Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Переглянути імена користувачів та ролі", + "consequence": "Ніколи хеші паролів, ніколи двофакторний стан." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Спостерігайте за всім, що відбувається", + "consequence": "Включно з активністю інших користувачів, не лише вашої." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Надсилати сповіщення", + "consequence": "Вам або іншим користувачам, а також через канали, які вони налаштували." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Отримуйте кожне сповіщення", + "consequence": "Зберігає та доставляє сповіщення, які надсилають усі плагіни, включаючи їхній вміст." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Читати журнал аудиту", + "consequence": "У ньому можна побачити, хто що і коли робив." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Відкриті вікна робочого столу", + "consequence": "Тільки в настільному додатку Termix." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Дійте від імені інших користувачів", + "consequence": "Виконує фонову роботу з правами доступу іншого користувача, наприклад, заплановані завдання. Кожне використання записується в журнал аудиту." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Читати основні таблиці облікових записів", + "consequence": "Може запитувати користувачів, ролі та хости безпосередньо з бази даних." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Перегляньте список хостів", + "consequence": "Імена та адреси хостів ви вже можете бачити." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Зберігає власні дані", + "consequence": "Зберігається в окремих таблицях, окремо від інших плагінів." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Пам'ятайте про невеликі налаштування", + "consequence": "Зберігається окремо від інших плагінів." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Зберігає власні файли", + "consequence": "У власній папці на диску, окремо від інших плагінів." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Зберігає власні секрети", + "consequence": "Зашифровано Termix. Плагін ніколи не зберігає ключ." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Зчитування налаштувань Termix", + "consequence": "Налаштування сервера, а не ваші хости чи облікові дані." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Переглянути встановлені функції", + "consequence": "Він може бачити, які функції встановлено та працюють." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Додати власні екрани", + "consequence": "Вкладки, панелі та налаштування, які можна приховати пізніше." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} недоступний", + "needsUnknownPlugin": "Ця функція недоступна", + "disabledHint": "На цьому сервері це вимкнено.", + "missingHint": "Функцію, з якої вона походить, видалено.", + "failed": "{{name}} не вдалося запустити", + "failedHint": "Адміністратор може перевірити журнали сервера для отримання детальної інформації.", + "loading": "Завантаження {{name}}", + "crashed": "Щось пішло не так у {{name}}", + "retry": "Спробуйте ще раз" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", - "secretReplace": "Replace", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "secretSet": "Набір", + "secretNotSet": "Не встановлено", + "secretReplace": "Замінити", + "pluginSettingsSaved": "Налаштування збережено", + "pluginSettingsInvalid": "Деякі налаштування не вдалося зберегти. Перевірте виділені поля.", + "pluginSettingsSaveFailed": "Не вдалося зберегти налаштування", + "pluginSettingsLoadFailed": "Не вдалося завантажити налаштування", + "featureUnavailable": "{{name}} зараз недоступний. Ці налаштування збережено, але не набудуть чинності." }, "managerCard": { - "refresh": "Refresh", - "retry": "Retry", - "sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.", - "noData": "No data", - "filter": "Filter..." + "refresh": "Оновити", + "retry": "Повторити спробу", + "sudoHint": "Встановіть пароль sudo для цього хоста в редакторі хостів, щоб увімкнути привілейовані дії.", + "noData": "Немає даних", + "filter": "Фільтр..." }, "sync": { - "server": "Termix server", - "account": "Account", - "status": "Status", - "never": "never", - "justNow": "just now", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "server": "Сервер Termix", + "account": "Обліковий запис", + "status": "Статус", + "never": "ніколи", + "justNow": "щойно", + "minutesAgo_one": "{{count}} хвилину тому", + "minutesAgo_other": "{{count}} хвилин тому", + "hoursAgo_one": "{{count}} годину тому", + "hoursAgo_other": "{{count}} годин тому", + "actionFailed": "Це не спрацювало. Спробуйте ще раз.", + "unlinkedTitle": "Тільки цей пристрій", + "unlinkedBody": "Termix працює самостійно на цьому пристрої. Підключіть його до свого сервера Termix, щоб усі процеси були в курсі.", + "unlinkedPointHosts": "Ваші хости, облікові дані, фрагменти коду та налаштування відстежують вас на кожному пристрої.", + "unlinkedPointOffline": "Все працює, навіть коли сервер недоступний, і відновлюється пізніше.", + "unlinkedPointAccount": "Ви входите, використовуючи свій обліковий запис сервера, і тут також відображаються хости, якими люди поділилися з вами.", + "linkButton": "Посилання на сервер", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Синхронізація", + "offline": "Сервер недоступний", + "error": "Синхронізацію зупинено", + "signedOut": "Вийшов з облікового запису", + "synced": "Синхронізовано {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", - "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "pending_one": "{{count}} зміна очікує синхронізації", + "pending_other": "{{count}} змін, що очікують синхронізації", + "signInAgain": "Увійти знову", + "syncNow": "Синхронізувати зараз", + "unlink": "Від’єднати", + "unlinked": "Цей пристрій більше не підключено", + "unlinkTitle": "Від’єднати цей пристрій?", + "unlinkDescription": "Синхронізація припиняється, і відбувається вихід із сервера. Хости, якими поділилися з вами інші користувачі, у будь-якому разі видаляються з цього пристрою.", + "unlinkKeepTitle": "Зберігати мої дані тут", + "unlinkKeepBody": "Ваші хости, облікові дані та налаштування залишаються на цьому пристрої та продовжують працювати самостійно.", + "unlinkRemoveTitle": "Видалити синхронізовані дані", + "unlinkRemoveBody": "Все, що надійшло із сервера, видаляється з цього пристрою. Хости, що зберігаються на цьому пристрої, залишаються.", + "conflictsTitle": "Конфлікти", + "conflictsDescription": "Вони були змінені тут і на сервері одночасно. Серверна версія використовується. Залиште свою, щоб натомість надіслати її на сервер.", + "keepMine": "Залиш моє", + "keepServer": "Зберегти сервер", + "errorsTitle": "Не синхронізовано", + "errorsDescription": "Сервер не прийняв ці зміни. Вони залишаються на цьому пристрої.", + "errorPermission": "Ваш обліковий запис на сервері не має права вносити цю зміну.", + "retry": "Спробуйте ще раз", + "whatSyncs": "Що синхронізується", + "whatSyncsDescription": "Вимкніть усе, що ви хочете зберігати лише на цьому пристрої.", + "coreGroup": "Термікс", + "notOnServer": "На сервері цього немає", + "notOnDevice": "Ще не на цьому пристрої", + "localOnlyHint": "Ви також можете зберегти окремі хости або папки на цьому пристрої в їхніх налаштуваннях.", + "originTitle": "Де починаються зв'язки", + "originDescription": "Підключайтеся до хостів з цього пристрою або через сервер. Ви можете змінити це для кожного хоста окремо.", + "originLocal": "Цей пристрій", + "originRemote": "Сервер", "entities": { - "hosts": "Hosts", - "sshCredentials": "Credentials", - "sshFolders": "Folders", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", - "snippets": "Snippets", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "hosts": "Хости", + "sshCredentials": "Облікові дані", + "sshFolders": "Папки", + "userPreferences": "Налаштування", + "pluginUserSettings": "Налаштування функцій", + "sharedHosts": "Господарі поділилися з вами", + "sharedCredentials": "Облікові дані, надані вам", + "vaultProfiles": "Профілі сховищ", + "snippetFolders": "Папки фрагментів", + "snippets": "Фрагменти", + "dashboardServiceLinks": "Посилання на сервіси", + "homepageItems": "Елементи головної сторінки", + "networkTopology": "Карта мережі", + "workspaces": "Робочі простори" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", - "username": "Username", - "password": "Password", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", - "saved": "Saved" + "title": "Зворотний проксі-сервер", + "description": "Потрібно лише тоді, коли щось на кшталт Cloudflare Access або сторінки входу знаходиться перед вашим сервером.", + "headersTitle": "Додаткові заголовки", + "headersHint": "Надсилається з кожним запитом до сервера, наприклад, токен служби Cloudflare Access.", + "headerName": "Назва заголовка", + "headerValue": "Значення", + "savedValue": "Збережено, введіть текст, щоб змінити", + "addHeader": "Додати заголовок", + "removeHeader": "Видалити заголовок", + "basicAuthTitle": "Ім'я користувача та пароль", + "basicAuthHint": "Для проксі-сервера, який запитує ім'я користувача та пароль перед Termix.", + "username": "Ім'я користувача", + "password": "Пароль", + "allowInvalidCertificate": "Довіряти самопідписаному сертифікату", + "allowInvalidCertificateHint": "Тільки для вашого власного сервера, коли його сертифікат не від відомого центру.", + "saved": "Збережено" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Це не схоже на веб-адресу.", + "unreachable": "Не вдалося зв’язатися із сервером. Перевірте адресу та чи сервер працює.", + "unreachableWithReason": "Не вдалося зв'язатися із сервером: {{reason}}", + "tlsUntrusted": "Сертифікат сервера не є надійним. Якщо це ваш власний сервер із самопідписаним сертифікатом, увімкніть опцію нижче.", + "basicAuthRequired": "Щось перед сервером запитує ім'я користувача та пароль. Введіть їх нижче.", + "proxyLogin": "Замість Termix відповіла сторінка входу або проксі. Додайте потрібні заголовки нижче або перевірте адресу.", + "notTermix": "За цією адресою немає сервера Termix. Якщо він працює за шляхом, додайте його, наприклад https://example.com/termix.", + "versionMismatch": "На цьому сервері використовується старіша версія Termix. Оновіть її до версії 2.9 або новішої, щоб підключитися.", + "differentAccount": "Ви ввійшли в інший обліковий запис. Увійдіть в обліковий запис, з яким пов’язано цей пристрій, або спочатку від’єднайте його." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", - "continue": "Continue", - "back": "Back", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "title": "Посилання на сервер Termix", + "reloginTitle": "Увійти знову", + "savedServers": "Нещодавні сервери", + "removeServer": "Видалити зі списку", + "serverDescription": "Введіть адресу, яку ви використовуєте для відкриття Termix у вашому браузері.", + "signinDescription": "Увійти до {{url}}", + "chooseDescription": "Цей пристрій вже містить дані. Що з ним має статися?", + "finishingDescription": "Підключення цього пристрою.", + "serverUrl": "Адреса сервера", + "serverUrlHint": "Наприклад https://termix.example.com", + "showProxySettings": "Налаштування зворотного проксі-сервера", + "hideProxySettings": "Приховати налаштування зворотного проксі-сервера", + "continue": "Продовжити", + "back": "Назад", + "mergeTitle": "Додати це до мого облікового запису", + "mergeBody": "Елементи {{count}} на цьому пристрої додано до вашого облікового запису. Елементи, які вже є у вашому обліковому записі, залишаються на сервері без змін.", + "replaceTitle": "Замінити його моїм обліковим записом", + "replaceBody": "Елементи {{count}} на цьому пристрої видаляються, і цей пристрій забирає все з вашого облікового запису. Хости, що зберігаються на цьому пристрої, залишаються.", + "link": "Посилання", + "linking": "Підключення та запуск першої синхронізації...", + "linked": "Підключено. Ваші дані зараз синхронізуються.", + "signedInAgain": "Увійшли. Синхронізацію знову запущено." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Папка {{name}}", + "user": "Мої налаштування за замовчуванням", + "admin": "Сервер", + "builtin": "Вбудований" }, - "custom": "Custom", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", - "resetMenu": "Reset", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "custom": "Користувацька", + "setHere": "Встановити тут", + "notSet": "Не встановлено", + "notSetTitle": "Для цього не встановлено значення за замовчуванням", + "resetTitle": "Цей хост встановлює власне значення. Натисніть, щоб знову використати значення за замовчуванням з {{source}}", + "clearTitle": "Встановити на цьому рівні. Натисніть, щоб очистити його та використовувати {{source}} замість цього", + "inheritedTitle": "Дотримується значення за замовчуванням з {{source}}", + "titleAdmin": "Налаштування хоста сервера за замовчуванням", + "titleUser": "Налаштування мого хоста за замовчуванням", + "titleFolder": "Налаштування папки за замовчуванням: {{name}}", + "descriptionAdmin": "Значення за замовчуванням для кожного хоста на цьому сервері. Власні значення за замовчуванням користувача, значення за замовчуванням папки або сам хост все ще можуть встановлювати інше значення. Змініть поле, щоб встановити його тут, або очистіть його, щоб залишити його невстановленим.", + "descriptionUser": "Значення за замовчуванням для всіх ваших хостів, а не для сервера. Папка або сам хост все ще можуть встановлювати інше значення. Змініть поле, щоб встановити його тут, або очистіть його, щоб залишити його невстановленим.", + "descriptionFolder": "Значення за замовчуванням для хостів у цій папці та її підпапках замість ваших власних. Хост все ще може встановлювати інше значення. Змініть поле, щоб встановити його тут, або очистіть його, щоб залишити його невстановленим.", + "save": "Зберегти налаштування за замовчуванням", + "saved_one": "Налаштування за замовчуванням збережено. Хост {{count}} оновлено.", + "saved_other": "Значення за замовчуванням збережено. {{count}} хостів оновлено.", + "savedInBackground": "Налаштування за замовчуванням збережено. Хости оновлюються у фоновому режимі.", + "appliedToHosts_one": "Хост {{count}} було оновлено з новими налаштуваннями за замовчуванням.", + "appliedToHosts_other": "{{count}} хостів було оновлено з новими налаштуваннями за замовчуванням.", + "saveFailed": "Не вдалося зберегти налаштування за замовчуванням", + "loadFailed": "Не вдалося завантажити налаштування за замовчуванням", + "confirmTitle": "Зберегти налаштування за замовчуванням?", + "confirmChanges_one": "{{count}} хост дотримується цих налаштувань за замовчуванням і змінюватиметься.", + "confirmChanges_other": "{{count}} хости дотримуються цих налаштувань за замовчуванням і змінюватимуться.", + "confirmNoChanges": "Немає змін існуючих хостів. Нові хости почнуть використовувати ці налаштування за замовчуванням.", + "menuMyDefaults": "Налаштування мого хоста за замовчуванням", + "folderDefaultsAction": "Налаштування папок за замовчуванням", + "adminSectionDescription": "Встановіть значення за замовчуванням, яких дотримується кожен хост на цьому сервері, для кожного налаштування хоста, включаючи кожну функцію. Користувачі та папки можуть встановлювати свої власні поверх, і будь-який хост все ще може використовувати своє власне значення.", + "editServerDefaults": "Редагувати налаштування сервера за замовчуванням", + "resetMenu": "Скинути", + "resetAll": "Все до налаштувань за замовчуванням", + "resetCore": "Підключення та SSH до налаштувань за замовчуванням", + "resetDone_one": "Хост {{count}} тепер використовує налаштування за замовчуванням.", + "resetDone_other": "{{count}} хости тепер дотримуються своїх налаштувань за замовчуванням." } } diff --git a/src/ui/locales/translated/vi_VN.json b/src/ui/locales/translated/vi_VN.json index 4608abfb8..4cd56d9f5 100644 --- a/src/ui/locales/translated/vi_VN.json +++ b/src/ui/locales/translated/vi_VN.json @@ -55,7 +55,7 @@ "levelManage": "Quản lý", "levelUseDesc": "Cách sử dụng: đính kèm thông tin xác thực vào máy chủ và kết nối. Bản thân thông tin bí mật sẽ được giữ kín.", "levelManageDesc": "Quản lý: chỉnh sửa thông tin đăng nhập và chia sẻ với người khác.", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "Thông tin xác thực này chưa được chia sẻ.", "accessRevoked": "Đã thu hồi quyền truy cập", "shared": "Thông tin xác thực được chia sẻ" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "Mở khóa chức năng kéo để sắp xếp lại." }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "Đã có bản cập nhật. Xem ghi chú phát hành trên GitHub." }, "common": { "close": "Đóng", "minimize": "Thu nhỏ", "online": "Trực tuyến", "offline": "Ngoại tuyến", - "signInFailed": "Sign in failed", + "signInFailed": "Đăng nhập không thành công", "unknown": "Không xác định", "continue": "Tiếp tục", "maintenance": "Bảo trì", @@ -187,7 +187,7 @@ "remove": "Xóa", "add": "Thêm", "update": "Cập nhật", - "noResults": "No results found" + "noResults": "Không tìm thấy kết quả nào." }, "onboarding": { "stepCounter": "Bước {{current}} của {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "Bảng lệnh", "workflow_palette_desc": "Bạn có thể truy cập bất kỳ máy chủ hoặc hành động nào bằng cách nhập văn bản. Nhấn Shift hai lần để mở.", "workflow_split": "Chia màn hình", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "Hiển thị nhiều tab cạnh nhau, ví dụ để theo dõi nhật ký trong khi làm việc.", "workflow_dock": "Tấm bên hông", "workflow_dock_desc": "Nhấp chuột giữa hoặc nhấp chuột phải vào biểu tượng thanh bên để mở nó dưới dạng tab hoặc ghim nó vào bên phải.", "securityTitle": "Bảo vệ thông tin đăng nhập của bạn", @@ -248,13 +248,13 @@ "done_cli": "Công cụ dòng lệnh", "done_cli_desc": "Quản lý máy chủ của bạn từ thiết bị đầu cuối và sử dụng Termix trong các tập lệnh của riêng bạn.", "done_cli_link": "Mở tài liệu CLI", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "Bạn muốn sử dụng Termix như thế nào?", + "desktopBody": "Bạn có thể thay đổi cài đặt này bất cứ lúc nào từ mục Đồng bộ hóa ở thanh bên.", + "desktopLocalTitle": "Chỉ trên thiết bị này", + "desktopLocalBody": "Mọi thứ đều được lưu trữ ở đây. Không cần phải thiết lập gì cả.", + "desktopLinkTitle": "Với máy chủ Termix của tôi", + "desktopLinkBody": "Đăng nhập vào máy chủ của bạn để sử dụng cùng một máy chủ và cài đặt trên mọi thiết bị.", + "desktopLinked": "Liên kết với {{server}}" }, "nav": { "home": "Trang chủ", @@ -295,21 +295,21 @@ "collapseSideMenu": "Menu thu gọn", "roleAdministrator": "Quản trị viên", "roleUser": "Người dùng", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "Đồng bộ hóa", + "reconnectDisconnectedTerminals": "Kết nối lại tất cả các đầu nối đã bị ngắt kết nối.", + "reconnectingTerminals_one": "Đang kết nối lại thiết bị đầu cuối {{count}}", + "reconnectingTerminals_other": "Đang kết nối lại các đầu cuối {{count}}", + "noDisconnectedTerminals": "Hiện không có đầu nối nào đang bị ngắt kết nối và sẵn sàng để kết nối lại.", + "reconnectTerminalsFailed_one": "Không thể bắt đầu kết nối lại thiết bị đầu cuối {{count}}", + "reconnectTerminalsFailed_other": "Không thể bắt đầu kết nối lại các thiết bị đầu cuối {{count}}", + "fullscreenUnsupported": "Trình duyệt này không hỗ trợ chế độ toàn màn hình.", + "fullscreenFailed": "Không thể chuyển đổi chế độ toàn màn hình", + "resetSidebarWidth": "Đặt lại chiều rộng", + "collapseSidebar": "Thu gọn thanh bên", + "openSidebar": "Mở thanh bên", + "confirmCloseHost": "Đóng {{host}}?", + "enterFullscreen": "Vào chế độ toàn màn hình (Ctrl+Shift+F)", + "exitFullscreen": "Thoát chế độ toàn màn hình (Ctrl+Shift+F)" }, "hosts": { "hosts": "Máy chủ", @@ -353,7 +353,7 @@ "serverStats": "Số liệu máy chủ", "status": { "available": "Có sẵn", - "reachable": "Up, but the last sign in failed", + "reachable": "Lên rồi, nhưng dấu hiệu cuối cùng đã thất bại.", "offline": "Ngoại tuyến", "monitoringDisabled": "Chức năng giám sát đã bị vô hiệu hóa.", "label": "Trạng thái" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "Buộc dùng Keyboard-Interactive", "overrideCredentialUsername": "Ghi đè tên đăng nhập thông tin xác thực", "overrideCredentialUsernameDesc": "Sử dụng tên đăng nhập ở trên thay vì tên trong thông tin xác thực", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "Sử dụng $external.username để điền tên bạn đã đăng nhập thông qua SSO hoặc LDAP.", "jumpHostChain": "Chuỗi máy chủ trung gian", "portKnocking": "Port Knocking", "addKnock": "Thêm cổng", @@ -626,14 +626,14 @@ "actionsClick": "Nhấp để mở rộng/thu gọn", "openOnDoubleClick": "Mở bằng cách nhấp đúp chuột", "openOnDoubleClickDesc": "Yêu cầu nhấp đúp chuột để mở phiên máy chủ thay vì chỉ nhấp chuột một lần.", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "Hiển thị đường dẫn thư mục", + "showFolderPathsDesc": "Hiển thị đường dẫn thư mục cha phía trên tên các thư mục con lồng nhau. Các thư mục con vẫn giữ nguyên vị trí thụt lề dù thế nào đi nữa.", + "hostClickBehavior": "Nhấp chuột vào máy chủ", + "hostClickBehaviorDesc": "Điều gì xảy ra khi bạn nhấp vào một máy chủ đã có sẵn một tab đang mở? Nhấp chuột bằng tổ hợp phím Ctrl/Cmd, nhấp chuột giữa hoặc chọn \"Mở trong tab mới\" luôn mở một tab mới.", + "hostClickNewTab": "Luôn mở một tab mới", + "hostClickFocusExisting": "Chuyển sang tab đang mở", + "hostClickFocusExistingDoubleNew": "Nhấp chuột để chuyển đổi, nhấp đúp để mở tab mới.", + "openInNewTab": "Mở trong tab mới", "deletedHost": "Đã xóa {{name}}", "copiedToClipboard": "Đã sao chép vào bộ nhớ tạm", "remoteDesktopUrlCopied": "Đã sao chép URL Remote Desktop", @@ -698,7 +698,7 @@ "groupCredentials": "Thông tin xác thực", "groupNotes": "Ghi chú", "groupTags": "Thẻ & ghim", - "groupProxy": "Proxy", + "groupProxy": "Máy chủ proxy", "groupJumpHosts": "Người dẫn chương trình Jump", "groupFeatureFlags": "Cờ tính năng", "groupAdvanced": "Cấu hình nâng cao", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "Mỗi điểm cuối cần một tên khác nhau.", "webUiErrorPortRange": "Điểm cuối {{row}} cần một cổng nằm trong khoảng từ 1 đến 65535.", "webUiErrorPathInvalid": "Điểm cuối {{row}} có đường dẫn không hợp lệ. Hãy sử dụng đường dẫn như /admin.", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "Sao chép liên kết {{name}}", "filterAuthAgent": "SSH Agent", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "Máy chủ này sử dụng {{type}}, cần {{plugin}}. Chức năng này đã bị tắt trên máy chủ này.", + "authTypeUnknown": "Máy chủ này sử dụng {{type}}, không khả dụng trên máy chủ này.", + "authFieldsAfterSave": "Trước tiên hãy lưu thông tin máy chủ, sau đó điền vào các trường này.", + "enablePluginFeature": "Bật {{name}}", + "disablePluginFeature": "Vô hiệu hóa {{name}}", "filterFeaturesGroup": "Tính năng", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "Chỉ giữ lại trên thiết bị này", + "localOnlyDesc": "Thông tin máy chủ này không được gửi đến máy chủ và không hiển thị trên các thiết bị khác của bạn.", + "folderLocalOnly": "Chỉ giữ lại trên thiết bị này", + "folderLocalOnlyDesc": "Thư mục này và mọi máy chủ bên trong nó đều nằm trên thiết bị này và không được gửi lên máy chủ.", + "sudoPasswordDesc": "Được sử dụng khi thiết bị đầu cuối hiển thị dấu nhắc sudo, và bởi các tính năng chạy lệnh với sudo.", "editorCancel": "Hủy", "editorSaving": "Đang lưu...", "editorUpdate": "Cập nhật máy chủ", "editorAdd": "Thêm máy chủ", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "Tìm kiếm máy chủ. Sử dụng phím mũi tên để chọn, Enter để kết nối, Esc để đóng.", + "speedSearchList": "Danh sách máy chủ. Nhập hoặc nhấn / để tìm kiếm.", + "importNoHosts": "Không tìm thấy máy chủ nào trong tệp tin.", + "importTooMany": "Bạn có thể nhập tối đa {{max}} máy chủ cùng một lúc.", + "importSummary": "Quá trình nhập khẩu hoàn tất: {{imported}} đã nhập, {{updated}} đã cập nhật, {{failed}} thất bại", + "importHostsFailed": "Không thể nhập máy chủ" }, "commandPalette": { "searchPlaceholder": "Tìm kiếm máy chủ, lệnh hoặc cài đặt...", @@ -898,57 +898,57 @@ "select": "Chọn", "toggleWith": "Chuyển đổi với", "pluginActions": "Thao tác khác", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "Không có tab terminal nào đang mở." }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "Chia màn hình", + "defaultLabel": "Tách {{number}}", "splitRight": "Chia sang phải", "splitDown": "Chia xuống dưới", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "Thêm vào {{split}}", + "paneEmptyItem": "Pane {{index}}: trống", + "paneItem": "Ngăn {{index}}: {{label}}", "paneNumber": "Khung {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "Cửa sổ mới ở bên phải", + "newPaneBelow": "Khung mới bên dưới", + "emptyTitle": "Ô trống", + "emptyHint": "Hãy chọn một nội dung bạn muốn hiển thị ở đây. Khi khung này được chọn, bất cứ thứ gì bạn mở từ thanh bên cũng sẽ mở ở đây.", + "openTabs": "Mở các tab", + "noOpenTabs": "Không có tab nào khác đang mở", "hosts": "Máy chủ", "searchHosts": "Tìm kiếm máy chủ", - "noHosts": "No hosts match", + "noHosts": "Không có trận đấu nào của chủ nhà", "newSession": "Mới", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "Đóng cửa sổ", + "closeSession": "Phiên họp kết thúc", + "moveToTab": "Chuyển sang tab riêng", + "swapWith": "Trao đổi với", + "showHere": "Hiển thị trong khung này", + "clearPane": "Xóa nội dung trong khung này.", + "zoom": "Khung thu phóng", + "unzoom": "Khôi phục bố cục", + "unsplit": "Chưa tách", + "layouts": "Bố cục", + "applyLayout": "Thay đổi bố cục", + "newSplit": "Sự chia tách mới", + "maxPanes": "Một ngăn có thể chứa tối đa {{count}} ngăn", + "dropSplit": "Thả xuống để chia", + "dropHere": "Kéo xuống để hiển thị tại đây", + "paneActions": "Thao tác trên bảng điều khiển", + "dividerHint": "Kéo chuột để thay đổi kích thước. Nhấp đúp chuột để điều chỉnh độ đều.", + "openInSplit": "Mở ở chế độ chia đôi", + "openInNewSplit": "Chia màn hình mới với tab hiện tại", + "shortcuts": "Phím tắt", + "shortcutNavigate": "Di chuyển giữa các khung", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "Hai cái đặt cạnh nhau", + "rows2": "Hai chồng lên nhau", + "columns3": "Ba cái đặt cạnh nhau", + "mainLeft3": "Một bên trái, hai bên phải", + "mainBottom3": "Hai cái trên, một cái dưới", + "grid4": "Lưới bốn", + "grid5": "Ba trên hai", + "grid6": "Lưới sáu" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "Yêu cầu xác thực", "mfaPushRequired": "Yêu cầu xác thực đẩy", "mfaMenuPlaceholder": "Nhập câu trả lời của bạn", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "Mã hoặc \"đẩy\"", "mfaWaitingApproval": "Đang chờ phê duyệt trên thiết bị của bạn...", "mfaSendRequest": "Gửi yêu cầu", "browserSignInCode": "Khóa bảo mật", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "URL đăng nhập", "browserSignInOpen": "Mở trong trình duyệt", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "Tôi đã hoàn tất đăng nhập.", + "browserSignInRequired": "{{provider}} Cần đăng nhập", "connectionLogTitle": "Nhật ký kết nối", "connectionLogCopy": "Sao chép nhật ký vào clipboard", "connectionLogEmpty": "Chưa có nhật ký kết nối", @@ -1032,7 +1032,7 @@ "external": "Bên ngoài", "loginWithExternal": "Đăng nhập bằng Nhà cung cấp Bên ngoài", "loginWithExternalDesc": "Đăng nhập bằng nhà cung cấp danh tính bên ngoài đã được cấu hình", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "Hiện tại, ứng dụng dành cho máy tính để bàn chưa hỗ trợ đăng nhập bằng tài khoản ngoài. Vui lòng sử dụng phiên bản web.", "loginWithProvider": "Đăng nhập bằng {{name}}", "orContinueWith": "hoặc tiếp tục với", "resetPasswordButton": "Đặt lại mật khẩu", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "Còn {{count}} lần thử", "confirmResetDataWipe": "Tài khoản này chưa đăng nhập kể từ khi nâng cấp mã hóa, do đó dữ liệu đã lưu không thể khôi phục nếu không có mật khẩu cũ. Việc đặt lại sẽ xóa vĩnh viễn các máy chủ, thông tin xác thực và đoạn mã. Tiếp tục?", "password": "Mật khẩu", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "Tài khoản của bạn sử dụng xác thực hai yếu tố hiện không khả dụng. Vui lòng liên hệ với quản trị viên để thiết lập lại.", + "secondFactorNoUI": "Yếu tố thứ hai không thể hiển thị trên màn hình này. Vui lòng liên hệ với quản trị viên.", + "serverAuthentication": "Đăng nhập máy chủ", + "minChars": "tối thiểu {{min}} ký tự" }, "hostKey": { "verifyNewHost": "Xác minh khóa máy chủ SSH", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "Không thể xác minh mã đặt lại", "failedCompleteReset": "Không thể hoàn tất đặt lại mật khẩu", "invalidTotpCode": "Mã TOTP không hợp lệ", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "Đăng nhập bằng tài khoản bên ngoài không thành công.", + "silentSigninOidcUnavailable": "Đã yêu cầu đăng nhập im lặng, nhưng chưa thiết lập đăng nhập bằng tài khoản bên ngoài.", "failedUserInfo": "Không thể lấy thông tin người dùng sau khi đăng nhập", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "Đăng nhập bên ngoài không thành công", "invalidAuthUrl": "URL ủy quyền không hợp lệ nhận được từ máy chủ", "requiredField": "Trường này là bắt buộc", "minLength": "Độ dài tối thiểu là {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "Lưu token xác thực thất bại", "authTokenMissing": "Máy chủ không trả về mã xác thực mới. Vui lòng đăng nhập lại.", "failedToLoadServer": "Tải máy chủ thất bại", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "Phiên đăng nhập đã hết hạn. Vui lòng đăng nhập lại." }, "messages": { "registrationDisabled": "Đăng ký tài khoản mới hiện bị quản trị viên vô hiệu hóa. Vui lòng đăng nhập hoặc liên hệ quản trị viên.", @@ -1163,7 +1163,7 @@ "panelMain": "Chính", "panelSide": "Bên", "justNow": "vừa xong", - "activityFileManager": "File manager" + "activityFileManager": "Trình quản lý tập tin" }, "donation": { "title": "Bạn thích Termix chứ?", @@ -1188,12 +1188,12 @@ "add": "Thêm:", "commandPalette": "Bảng lệnh", "done": "Xong", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "Kéo các thẻ để sắp xếp lại thứ tự. Kéo đường phân cách cột để thay đổi kích thước cột. Kéo cạnh dưới của thẻ để thay đổi chiều cao. Sử dụng nút thùng rác để xóa thẻ.", "empty": "Trống", "clear": "Xóa", "viewServerDetails": "Xem chi tiết máy chủ", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "Kéo để thay đổi kích thước cột", + "hostsAvailable": "Có người chủ nhà sẵn sàng" }, "admin": { "sectionGeneral": "Chung", @@ -1203,7 +1203,7 @@ "sectionDatabase": "Cơ sở dữ liệu", "sectionApiKeys": "Khóa API", "sectionAuditLog": "Nhật ký kiểm tra", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "chứng chỉ HTTPS", "sectionBranding": "Nhãn trắng", "brandingAppName": "Tên ứng dụng", "brandingAppNameDesc": "Hiển thị trên màn hình đăng nhập và tab trình duyệt. Để trống để sử dụng \"Termix\".", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "Hình ảnh không hợp lệ. Vui lòng sử dụng tệp PNG, JPEG hoặc WEBP có dung lượng tối đa 750 KB.", "brandingSaved": "Cài đặt thương hiệu đã được lưu", "brandingSaveFailed": "Không thể lưu cài đặt thương hiệu.", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Termix cung cấp chứng chỉ qua HTTPS. Bạn có thể tải chứng chỉ của riêng mình lên đây, hoặc lấy và gia hạn chứng chỉ từ Let's Encrypt trong phần Chứng chỉ ACME.", "sslDocsLink": "Xem tài liệu SSL", "sslCertStatus": "Trạng thái chứng chỉ", "sslCertStatusNone": "Không có chứng chỉ", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "Cho phép người dùng mới tự đăng ký bằng tên người dùng và mật khẩu", "allowPasswordLogin": "Cho phép đăng nhập bằng mật khẩu", "allowPasswordLoginDesc": "Đăng nhập bằng tên người dùng/mật khẩu", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "Tự động tạo tài khoản bên ngoài", + "oidcAutoProvisionDesc": "Tạo tài khoản lần đầu tiên khi ai đó đăng nhập thông qua phương thức đăng nhập bên ngoài như SSO hoặc LDAP, ngay cả khi tính năng đăng ký chưa được bật.", + "secondFactorAfterExternalLogin": "Hãy yêu cầu xác thực hai yếu tố sau khi đăng nhập bằng tài khoản bên ngoài (SSO, GitHub, Google, LDAP).", + "secondFactorAfterExternalLoginDesc": "Ở chế độ Tắt, xác thực yếu tố thứ hai chỉ được yêu cầu sau khi nhập mật khẩu và các thông tin đăng nhập cục bộ khác, giống như trước đây. Ở chế độ Bật, xác thực yếu tố thứ hai sẽ được yêu cầu sau mọi phương thức đăng nhập, bao gồm cả SSO và LDAP.", "allowPasswordReset": "Cho phép đặt lại mật khẩu", "allowPasswordResetDesc": "Mã đặt lại qua nhật ký Docker", "auditForwardingTitle": "Chuyển tiếp đến SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "Không thể lưu cài đặt chuyển tiếp kiểm toán.", "sessionTimeout": "Thời gian chờ phiên", "hours": "giờ", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "Tối thiểu 1 giờ, tối đa 720 giờ", "monitoringDefaults": "Mặc định giám sát", "statusCheck": "Kiểm tra trạng thái", "sec": "giây", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "Trạng thái quản trị", "editUserUserId": "ID người dùng", "linkAccountTitle": "Liên kết tài khoản", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "Hợp nhất tài khoản bên ngoài {{username}} với tài khoản cục bộ hiện có.", + "linkAccountDescLocal": "Liên kết tài khoản cục bộ {{username}} với tài khoản chỉ dành cho bên ngoài hiện có.", "linkAccountWarningTitle": "Hành động này sẽ:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "Xóa tài khoản chỉ dành cho bên ngoài", + "linkAccountEffect2": "Thêm thông tin đăng nhập bên ngoài vào tài khoản mục tiêu.", + "linkAccountEffect3": "Cho phép cả đăng nhập bằng tài khoản ngoài và đăng nhập bằng mật khẩu.", "linkAccountTargetUsername": "Tên đăng nhập tài khoản cục bộ", "linkAccountTargetPlaceholder": "Nhập tên đăng nhập tài khoản cục bộ để liên kết", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "Tên người dùng tài khoản bên ngoài", + "linkAccountOidcPlaceholder": "Nhập tên người dùng tài khoản chỉ dùng bên ngoài để hợp nhất.", + "linkAccountOidcNotFound": "Không tìm thấy tài khoản chỉ dùng bên ngoài nào có tên người dùng đó.", "linkAccounts": "Liên kết tài khoản", "linkAccountSuccess": "Liên kết tài khoản thành công", "linkAccountFailed": "Liên kết tài khoản thất bại", "linkAccountInProgress": "Đang liên kết...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "Hủy liên kết đăng nhập bên ngoài", + "unlinkAccountDesc": "Xóa đăng nhập bên ngoài khỏi {{username}}. Họ sẽ chỉ có thể đăng nhập bằng mật khẩu của mình.", + "unlinkAccountWarning": "Thao tác này sẽ loại bỏ tính năng đăng nhập từ bên ngoài đối với tài khoản này. Người dùng cần phải thiết lập mật khẩu để tiếp tục đăng nhập.", + "unlinkAccount": "Hủy liên kết đăng nhập bên ngoài", "unlinkAccountInProgress": "Đang hủy liên kết...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "Đăng nhập bên ngoài bị hủy liên kết", + "unlinkAccountFailed": "Không thể hủy liên kết đăng nhập bên ngoài.", "saving": "Đang lưu...", "updateRegistrationFailed": "Cập nhật cài đặt đăng ký thất bại", "updatePasswordLoginFailed": "Cập nhật cài đặt đăng nhập bằng mật khẩu thất bại", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "Không thể cập nhật cài đặt tự động tạo.", + "updateSecondFactorAfterExternalLoginFailed": "Không thể cập nhật cài đặt yếu tố xác thực thứ hai.", "updatePasswordResetFailed": "Cập nhật cài đặt đặt lại mật khẩu thất bại", "sessionTimeoutRange2": "Thời gian chờ phiên phải từ 1 đến 720 giờ", "sessionTimeoutSaved": "Thời gian chờ phiên đã được lưu", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "Không có phiên làm việc đang hoạt động", "deleteSuccessorLabel": "Hãy chuyển giao máy chủ và thông tin đăng nhập cho", "deleteSuccessorMe": "Tôi (người quản trị xóa)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "Không ai cả, hãy xóa chúng đi.", "deleteSuccessorDesc": "Mọi thứ người dùng này chia sẻ vẫn hoạt động bình thường dưới quyền sở hữu mới; việc chọn \"không ai\" sẽ xóa máy chủ, thông tin đăng nhập và các thư mục chia sẻ của họ.", "deleteUserDangerDesc": "Xóa vĩnh viễn {{username}} và toàn bộ dữ liệu (máy chủ, thông tin xác thực, đoạn mã, lịch sử). Không thể hoàn tác.", "deleteUserConfirm": "Xóa vĩnh viễn {{username}} và toàn bộ dữ liệu?", @@ -1477,31 +1477,31 @@ "saveError": "Không lưu được quyền vai trò", "save": "Lưu", "saving": "Đang lưu...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "Tính năng bị vô hiệu hóa", "groups": { "hosts": "Máy chủ", "credentials": "Thông tin xác thực", - "admin": "Administration" + "admin": "Sự quản lý" } }, "notificationPrivateEndpoints": "Cho phép máy chủ thông báo riêng tư", "notificationPrivateEndpointsDesc": "Liệt kê chính xác các máy chủ riêng mà kênh thông báo có thể liên hệ. Phân tách chúng bằng dấu phẩy.", "updateNotificationEndpointsFailed": "Không thể cập nhật danh sách cho phép điểm cuối thông báo.", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "Yếu tố thứ hai", + "secondFactorsNone": "Không có yếu tố thứ hai nào được ghi nhận.", + "secondFactorUnavailable": "Không khả dụng", + "resetSecondFactors": "Đặt lại các yếu tố thứ hai", + "resetSecondFactorsConfirm": "Xóa mọi yếu tố thứ hai cho {{username}}? Họ có thể đăng nhập bằng mật khẩu hoặc SSO và đăng ký lại.", + "secondFactorsResetSuccess": "Yếu tố thứ hai được thiết lập lại", + "secondFactorsResetFailed": "Không thể đặt lại yếu tố xác thực thứ hai", + "passwordLoginForced": "Chức năng đăng nhập bằng mật khẩu đã bị tắt, nhưng không có phương thức đăng nhập nào khác được kích hoạt, vì vậy nó vẫn được bật tạm thời. Không ai bị khóa tài khoản cả.", + "sslNotRenewed": "Không có gì gia hạn chứng chỉ này cả. Nó sẽ hết hạn vào ngày {{date}}. Hãy bật chế độ gia hạn tự động trong phần Chứng chỉ ACME hoặc tải lên chứng chỉ mới trước thời hạn đó.", + "sslSelfSigned": "Chứng chỉ tự ký do Termix tạo ra. Trình duyệt sẽ cảnh báo về điều này.", + "sslRenewedBy": "Được gia hạn tự động bởi {{plugin}}", + "sslIssuer": "Được phát hành bởi {{issuer}}", + "sslNames": "Ảnh bìa {{names}}", + "sslManualTitle": "Tải lên chứng chỉ", + "updateExternalAutoProvisionFailed": "Không thể cập nhật cài đặt tự động tạo." }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "Giao thức", "domainLabel": "Lãnh địa", "domainPlaceholder": "không bắt buộc", - "connectToAction": "Connect to {{name}}", + "connectToAction": "Kết nối với {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "Không có phần mềm nào được cài đặt có thể kết nối với loại máy chủ này." }, "keybindings": { "title": "Phím tắt", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "Gán các phím tắt cho các thao tác trong cửa sổ dòng lệnh và ứng dụng, hoặc thay đổi các phím tắt có sẵn.", "defaultsHeading": "Phím tắt tích hợp sẵn", - "fixedHeading": "App Shortcuts", + "fixedHeading": "Phím tắt ứng dụng", "fixed": { "splitRight": "Chia sang phải", "splitDown": "Chia xuống dưới", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "Phóng to khung hình đang được chọn", + "navigatePane": "Di chuyển giữa các khung", "nextTab": "Tab tiếp theo", "previousTab": "Tab trước", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "Chuyển đến tab", + "previousView": "Quay lại chế độ xem thanh bên trước đó", + "fullscreen": "Bật/tắt chế độ toàn màn hình" }, "customHeading": "Phím tắt tùy chỉnh", "addBinding": "Thêm lối tắt", @@ -1566,9 +1566,9 @@ "actionNextTab": "Chuyển sang tab tiếp theo", "actionPreviousTab": "Chuyển về tab trước", "actionOpenCommandPalette": "Mở tìm kiếm nhanh", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "Kết nối lại phiên hiện tại", + "unavailableAction": "{{type}} (không khả dụng)", + "actionRequiredError": "Hãy chọn hành động trước tiên." }, "userProfile": { "donateTitle": "Duy trì Termix", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "Đã đặt lại cài đặt về mặc định.", "storageModeSwitch": "Lưu trữ tùy chọn", "sectionAccount": "Tài khoản", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "Thiết bị này chỉ", + "desktopProfileDescription": "Hồ sơ này được lưu trữ trên thiết bị này và tự động đăng nhập. Hãy liên kết nó với máy chủ Termix để sử dụng cùng một máy chủ và cài đặt trên mọi thiết bị.", "sectionInterface": "Giao diện", "interfacePresetDesc": "Termix hiển thị rất nhiều chi tiết. Mọi tính năng đều được giữ nguyên.", "preset_simple": "Đơn giản", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "Khôi phục các tab đang mở khi đăng nhập hoặc tải lại trang, kể cả từ thiết bị khác", "confirmTabClose": "Xác nhận đóng tab", "confirmTabCloseDesc": "Hỏi trước khi đóng tab terminal", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "Hiển thị số tab", + "showTabNumbersDesc": "Hiển thị số trên mỗi tab để giúp phân biệt chúng.", "settingsAppRail": "Đường ray ứng dụng", "sidebarSettingsMoved": "Các cài đặt hiển thị thanh bên của máy chủ đã được chuyển sang bảng Tùy chỉnh thanh bên, được mở từ thanh công cụ Máy chủ.", "showHostTags": "Hiển thị thẻ máy chủ", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "Đã đăng nhập vào {{server}}", + "linkedProfileDescription": "Thiết bị này sử dụng tài khoản của bạn trên máy chủ và lưu giữ một bản sao dữ liệu của bạn, vì vậy nó vẫn hoạt động ngoại tuyến.", + "manageSync": "Quản lý đồng bộ hóa", + "setUpSync": "Liên kết đến máy chủ", + "settingsTabsAndShortcuts": "Các tab và phím tắt" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "Xem mật khẩu và khóa của bạn", + "consequence": "Nó có thể đọc thông tin bí mật được lưu trữ cho bất kỳ máy chủ nào mà bạn có thể truy cập." }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "Chạy các lệnh trên máy chủ của bạn", + "consequence": "Bất kỳ lệnh nào, trên các máy chủ mà bạn kết nối đến, với quyền truy cập của bạn." }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "Chạy các chương trình trên máy này", + "consequence": "Các chương trình chạy trên máy chủ Termix, chứ không phải trên máy chủ của bạn." }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "Tạo và chỉnh sửa tài khoản người dùng", + "consequence": "Nó cho phép thêm người dùng và thay đổi vai trò của họ." }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "Xử lý đăng nhập", + "consequence": "Nó có thể thêm phương thức đăng nhập, xác thực hai yếu tố hoặc kiểu đăng nhập SSH." }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "Quản lý chứng chỉ", + "consequence": "Nó có thể thay thế chứng chỉ mà Termix cung cấp qua HTTPS và đáp ứng các yêu cầu xác thực tên miền từ các cơ quan cấp chứng chỉ." }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "Truy cập các thiết bị nối tiếp và USB", + "consequence": "Nó có thể mở một cổng nối tiếp vật lý trên máy đang chạy Termix." }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "Tạo và thay đổi máy chủ", + "consequence": "Nó cho phép thêm máy chủ và chỉnh sửa những máy chủ bạn đã có." }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "Kết nối với máy chủ của bạn", + "consequence": "Nó không thể xem mật khẩu hoặc khóa của bạn." }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "Lưu thông tin đăng nhập mới", + "consequence": "Nó có thể thêm mật khẩu và khóa vào thông tin đăng nhập đã lưu của bạn." }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "Truy cập internet", + "consequence": "Nó có thể gửi yêu cầu đến các dịch vụ bên ngoài." }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "Chấp nhận kết nối", + "consequence": "Thao tác này mở một cổng trên máy chủ Termix." }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "Gửi thông báo phát sóng trên mạng", + "consequence": "Nó có thể gửi các gói dữ liệu đến các thiết bị trên mạng cục bộ, chẳng hạn như tín hiệu Wake-on-LAN." }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "Xem tên người dùng và vai trò", + "consequence": "Tuyệt đối không dùng mật khẩu băm, tuyệt đối không dùng xác thực hai yếu tố." }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "Hãy quan sát mọi thứ đang diễn ra.", + "consequence": "Bao gồm cả hoạt động của những người dùng khác, không chỉ riêng bạn." }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "Gửi cảnh báo", + "consequence": "Đối với bạn hoặc những người dùng khác, và thông qua các kênh mà họ thiết lập." }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "Nhận mọi thông báo", + "consequence": "Lưu trữ và phân phối các thông báo mà tất cả các plugin gửi đi, bao gồm cả nội dung của chúng." }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "Đọc nhật ký kiểm toán", + "consequence": "Nó có thể biết ai đã làm gì và khi nào." }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "Mở cửa sổ màn hình", + "consequence": "Chỉ có trong ứng dụng Termix dành cho máy tính để bàn." }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "Đóng vai trò là những người dùng khác", + "consequence": "Chạy các tác vụ nền với quyền truy cập của người dùng khác, chẳng hạn như các tác vụ theo lịch trình. Mỗi lần sử dụng đều được ghi vào nhật ký kiểm toán." }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "Đọc các bảng tài khoản cốt lõi", + "consequence": "Có thể truy vấn trực tiếp người dùng, vai trò và máy chủ từ cơ sở dữ liệu." }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "Xem danh sách người chủ trì của bạn", + "consequence": "Tên và địa chỉ của các máy chủ mà bạn đã có thể xem." }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "Lưu trữ dữ liệu của riêng nó", + "consequence": "Được lưu trữ trong các bảng riêng biệt, tách biệt với các plugin khác." }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "Hãy nhớ các cài đặt nhỏ.", + "consequence": "Được tách biệt khỏi các plugin khác." }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "Lưu trữ các tệp riêng của nó", + "consequence": "Nó nằm trong một thư mục riêng trên ổ đĩa, tách biệt với các plugin khác." }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "Lưu giữ những bí mật của riêng nó", + "consequence": "Được mã hóa bởi Termix. Plugin này không bao giờ giữ khóa giải mã." }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "Đọc cài đặt Termix", + "consequence": "Cài đặt máy chủ, không phải máy chủ lưu trữ hoặc thông tin đăng nhập của bạn." }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "Xem các tính năng đã cài đặt", + "consequence": "Nó có thể xem những tính năng nào đã được cài đặt và đang chạy." }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "Thêm màn hình riêng", + "consequence": "Các tab, bảng điều khiển và cài đặt bạn có thể ẩn sau này." } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} không khả dụng", + "needsUnknownPlugin": "Tính năng này hiện không khả dụng.", + "disabledHint": "Chức năng này đã bị tắt trên máy chủ này.", + "missingHint": "Tính năng mà nó xuất phát từ đó đã bị xóa bỏ.", + "failed": "{{name}} không thể khởi động", + "failedHint": "Quản trị viên có thể kiểm tra nhật ký máy chủ để biết thêm chi tiết.", + "loading": "Đang tải {{name}}", + "crashed": "Đã xảy ra lỗi trong {{name}}", + "retry": "Hãy thử lại" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "Bộ", + "secretNotSet": "Chưa được thiết lập", "secretReplace": "Thay thế", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "Cài đặt đã được lưu", + "pluginSettingsInvalid": "Một số cài đặt không thể được lưu. Vui lòng kiểm tra các trường được đánh dấu.", + "pluginSettingsSaveFailed": "Không thể lưu cài đặt", + "pluginSettingsLoadFailed": "Không thể tải cài đặt", + "featureUnavailable": "{{name}} hiện không khả dụng. Các cài đặt này đã được lưu nhưng sẽ không có hiệu lực." }, "managerCard": { "refresh": "Làm mới", @@ -1913,169 +1913,169 @@ "filter": "Lọc..." }, "sync": { - "server": "Termix server", + "server": "Máy chủ Termix", "account": "Tài khoản", "status": "Trạng thái", "never": "chưa bao giờ", "justNow": "vừa xong", - "minutesAgo_one": "{{count}} minute ago", - "minutesAgo_other": "{{count}} minutes ago", - "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "minutesAgo_one": "{{count}} phút trước", + "minutesAgo_other": "{{count}} phút trước", + "hoursAgo_one": "{{count}} một giờ trước", + "hoursAgo_other": "{{count}} giờ trước", + "actionFailed": "Cách đó không hiệu quả. Hãy thử lại.", + "unlinkedTitle": "Thiết bị này chỉ", + "unlinkedBody": "Termix hoạt động độc lập trên thiết bị này. Hãy kết nối nó với máy chủ Termix của bạn để giữ cho mọi thứ được đồng bộ.", + "unlinkedPointHosts": "Thông tin máy chủ, thông tin đăng nhập, đoạn mã và cài đặt của bạn sẽ được lưu trữ trên mọi thiết bị.", + "unlinkedPointOffline": "Mọi thứ vẫn hoạt động bình thường ngay cả khi không thể truy cập máy chủ và sẽ cập nhật lại sau đó.", + "unlinkedPointAccount": "Bạn đăng nhập bằng tài khoản máy chủ của mình, và các máy chủ mà những người khác chia sẻ với bạn cũng sẽ hiển thị ở đây.", + "linkButton": "Liên kết đến máy chủ", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "Đồng bộ hóa", + "offline": "Không thể truy cập máy chủ.", + "error": "Đồng bộ hóa đã dừng", + "signedOut": "Đã đăng xuất", + "synced": "Đã đồng bộ {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} thay đổi đang chờ đồng bộ", + "pending_other": "{{count}} thay đổi đang chờ đồng bộ hóa", + "signInAgain": "Đăng nhập lại", + "syncNow": "Đồng bộ ngay", + "unlink": "Hủy liên kết", + "unlinked": "Thiết bị này hiện không còn được kết nối.", + "unlinkTitle": "Hủy liên kết thiết bị này?", + "unlinkDescription": "Quá trình đồng bộ hóa dừng lại và thiết bị đăng xuất khỏi máy chủ. Các máy chủ được người khác chia sẻ với bạn sẽ bị xóa khỏi thiết bị này dù bằng cách nào đi nữa.", + "unlinkKeepTitle": "Hãy giữ dữ liệu của tôi ở đây", + "unlinkKeepBody": "Thông tin máy chủ, thông tin đăng nhập và cài đặt của bạn vẫn được lưu trên thiết bị này và tiếp tục hoạt động bình thường.", + "unlinkRemoveTitle": "Xóa dữ liệu đã đồng bộ", + "unlinkRemoveBody": "Mọi thứ đến từ máy chủ đều được xóa khỏi thiết bị này. Chỉ những máy chủ được lưu trữ trên thiết bị này mới được giữ lại.", + "conflictsTitle": "Xung đột", + "conflictsDescription": "Những thay đổi này đã được thực hiện đồng thời ở đây và trên máy chủ. Phiên bản trên máy chủ đang được sử dụng. Hãy giữ lại phiên bản của bạn để gửi lên máy chủ.", + "keepMine": "Giữ lấy của tôi", + "keepServer": "Giữ máy chủ", + "errorsTitle": "Chưa được đồng bộ hóa", + "errorsDescription": "Máy chủ không chấp nhận những thay đổi này. Chúng vẫn được lưu giữ trên thiết bị này.", + "errorPermission": "Tài khoản của bạn trên máy chủ không được phép thực hiện thay đổi này.", + "retry": "Hãy thử lại", + "whatSyncs": "Những gì đồng bộ", + "whatSyncsDescription": "Hãy tắt tất cả những thứ bạn chỉ muốn giữ lại trên thiết bị này.", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "Máy chủ không có tính năng này.", + "notOnDevice": "Chưa có trên thiết bị này", + "localOnlyHint": "Bạn cũng có thể lưu trữ các máy chủ hoặc thư mục riêng lẻ trên thiết bị này từ phần cài đặt của chúng.", + "originTitle": "Nơi khởi nguồn của những kết nối", + "originDescription": "Kết nối với các máy chủ từ thiết bị này hoặc thông qua máy chủ. Bạn có thể thay đổi cài đặt này cho từng máy chủ.", + "originLocal": "Thiết bị này", + "originRemote": "Máy chủ", "entities": { "hosts": "Máy chủ", "sshCredentials": "Thông tin xác thực", "sshFolders": "Thư mục", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "Tùy chọn", + "pluginUserSettings": "Cài đặt tính năng", + "sharedHosts": "Những người chủ nhà đã chia sẻ với bạn", + "sharedCredentials": "Thông tin đăng nhập đã được chia sẻ với bạn", + "vaultProfiles": "Hồ sơ Vault", + "snippetFolders": "Thư mục đoạn trích", "snippets": "Đoạn mã", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "Liên kết dịch vụ", + "homepageItems": "Các mục trên trang chủ", + "networkTopology": "Bản đồ mạng", + "workspaces": "Không gian làm việc" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "Máy chủ proxy ngược", + "description": "Chỉ cần thiết khi có những thứ như Cloudflare Access hoặc trang đăng nhập nằm trước máy chủ của bạn.", + "headersTitle": "Tiêu đề bổ sung", + "headersHint": "Được gửi kèm với mỗi yêu cầu đến máy chủ, ví dụ như mã thông báo dịch vụ Cloudflare Access.", + "headerName": "Tên tiêu đề", + "headerValue": "Giá trị", + "savedValue": "Đã lưu, nhập để thay đổi", + "addHeader": "Thêm tiêu đề", + "removeHeader": "Xóa tiêu đề", + "basicAuthTitle": "Tên người dùng và mật khẩu", + "basicAuthHint": "Đối với máy chủ proxy yêu cầu tên người dùng và mật khẩu trước khi sử dụng Termix.", "username": "Tên đăng nhập", "password": "Mật khẩu", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "Hãy tin tưởng vào chứng chỉ tự ký.", + "allowInvalidCertificateHint": "Chỉ áp dụng cho máy chủ của riêng bạn, khi chứng chỉ của máy chủ đó không được cấp bởi một tổ chức cấp chứng chỉ uy tín.", "saved": "Đã lưu" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "Đó không giống một địa chỉ web.", + "unreachable": "Không thể kết nối đến máy chủ. Vui lòng kiểm tra địa chỉ và đảm bảo máy chủ đang hoạt động.", + "unreachableWithReason": "Không thể kết nối đến máy chủ: {{reason}}", + "tlsUntrusted": "Chứng chỉ máy chủ không được tin cậy. Nếu đây là máy chủ của riêng bạn với chứng chỉ tự ký, hãy bật tùy chọn bên dưới.", + "basicAuthRequired": "Một cửa sổ trước máy chủ sẽ yêu cầu bạn nhập tên người dùng và mật khẩu. Vui lòng nhập chúng vào ô bên dưới.", + "proxyLogin": "Trang đăng nhập hoặc máy chủ proxy đã trả lời thay vì Termix. Thêm các tiêu đề cần thiết bên dưới, hoặc kiểm tra địa chỉ.", + "notTermix": "Không có máy chủ Termix nào tại địa chỉ đó. Nếu nó hoạt động dưới một đường dẫn, hãy thêm đường dẫn đó vào, ví dụ như https://example.com/termix.", + "versionMismatch": "Máy chủ đó đang sử dụng phiên bản Termix cũ. Hãy cập nhật lên phiên bản 2.9 trở lên để kết nối.", + "differentAccount": "Bạn đã đăng nhập vào một tài khoản khác. Vui lòng đăng nhập vào tài khoản được liên kết với thiết bị này hoặc hủy liên kết trước." }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "Liên kết đến máy chủ Termix", + "reloginTitle": "Đăng nhập lại", + "savedServers": "Máy chủ gần đây", + "removeServer": "Xóa khỏi danh sách", + "serverDescription": "Nhập địa chỉ bạn thường dùng để mở Termix trong trình duyệt của mình.", + "signinDescription": "Đăng nhập vào {{url}}", + "chooseDescription": "Thiết bị này đã có dữ liệu. Vậy dữ liệu đó sẽ được xử lý như thế nào?", + "finishingDescription": "Đang kết nối thiết bị này.", + "serverUrl": "Địa chỉ máy chủ", + "serverUrlHint": "Ví dụ: https://termix.example.com", + "showProxySettings": "Cài đặt proxy ngược", + "hideProxySettings": "Ẩn cài đặt proxy ngược", "continue": "Tiếp tục", "back": "Quay lại", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "Thêm vào tài khoản của tôi", + "mergeBody": "Các mục {{count}} trên thiết bị này sẽ được thêm vào tài khoản của bạn. Các mục mà tài khoản của bạn đã có vẫn giữ nguyên như trên máy chủ.", + "replaceTitle": "Hãy thay thế nó bằng tài khoản của tôi", + "replaceBody": "Các mục {{count}} trên thiết bị này sẽ bị xóa và thiết bị này sẽ lấy tất cả mọi thứ từ tài khoản của bạn. Chỉ những máy chủ được giữ lại trên thiết bị này mới được phép lưu trữ.", + "link": "Liên kết", + "linking": "Đang kết nối và chạy quá trình đồng bộ hóa đầu tiên...", + "linked": "Đã liên kết. Dữ liệu của bạn đang được đồng bộ hóa.", + "signedInAgain": "Đã đăng nhập. Quá trình đồng bộ đang diễn ra trở lại." } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "Thư mục {{name}}", + "user": "Cài đặt mặc định của tôi", + "admin": "Máy chủ", + "builtin": "Tích hợp sẵn" }, "custom": "Tùy chỉnh", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "Đặt tại đây", + "notSet": "Chưa được thiết lập", + "notSetTitle": "Không có giá trị mặc định nào được thiết lập cho điều này.", + "resetTitle": "Máy chủ này tự đặt giá trị của nó. Nhấp vào để sử dụng lại giá trị mặc định từ {{source}}", + "clearTitle": "Đặt ở cấp độ này. Nhấp chuột để xóa và sử dụng {{source}} thay thế.", + "inheritedTitle": "Tuân theo mặc định từ {{source}}", + "titleAdmin": "Cài đặt mặc định của máy chủ", + "titleUser": "Cài đặt mặc định của máy chủ của tôi", + "titleFolder": "Cài đặt thư mục mặc định: {{name}}", + "descriptionAdmin": "Các thiết lập mặc định cho mọi máy chủ trên máy chủ này. Các thiết lập mặc định của người dùng, thư mục hoặc chính máy chủ vẫn có thể đặt giá trị khác. Thay đổi trường này để thiết lập tại đây hoặc xóa để giữ nguyên không thiết lập.", + "descriptionUser": "Các thiết lập mặc định cho tất cả các máy chủ của bạn, được áp dụng cho máy chủ chính. Một thư mục hoặc chính máy chủ đó vẫn có thể thiết lập giá trị khác. Thay đổi một trường để thiết lập tại đây, hoặc xóa trường đó để giữ nguyên giá trị.", + "descriptionFolder": "Các thiết lập mặc định cho các máy chủ trong thư mục này và các thư mục con của nó, được ưu tiên hơn so với thiết lập của bạn. Một máy chủ vẫn có thể thiết lập giá trị khác. Thay đổi một trường để thiết lập giá trị tại đây, hoặc xóa trường đó để giữ nguyên giá trị.", + "save": "Lưu cài đặt mặc định", + "saved_one": "Các thiết lập mặc định đã được lưu. {{count}} máy chủ đã được cập nhật.", + "saved_other": "Các thiết lập mặc định đã được lưu. {{count}} máy chủ đã được cập nhật.", + "savedInBackground": "Các thiết lập mặc định đã được lưu. Máy chủ đang được cập nhật trong nền.", + "appliedToHosts_one": "{{count}} máy chủ đã được cập nhật với các thiết lập mặc định mới.", + "appliedToHosts_other": "{{count}} máy chủ đã được cập nhật với các thiết lập mặc định mới.", + "saveFailed": "Không thể lưu các thiết lập mặc định.", + "loadFailed": "Không thể tải các thiết lập mặc định", + "confirmTitle": "Lưu cài đặt mặc định?", + "confirmChanges_one": "{{count}} máy chủ tuân theo các cài đặt mặc định này và sẽ thay đổi.", + "confirmChanges_other": "{{count}} máy chủ tuân theo các cài đặt mặc định này và sẽ thay đổi.", + "confirmNoChanges": "Không có thay đổi nào đối với máy chủ hiện có. Các máy chủ mới sẽ bắt đầu với các thiết lập mặc định này.", + "menuMyDefaults": "Cài đặt mặc định của máy chủ của tôi", + "folderDefaultsAction": "Thư mục mặc định", + "adminSectionDescription": "Thiết lập các giá trị mặc định mà mọi máy chủ trên máy chủ này tuân theo, cho mọi cài đặt mà máy chủ đó có, bao gồm cả từng tính năng. Người dùng và thư mục có thể thiết lập giá trị riêng của họ, và bất kỳ máy chủ nào vẫn có thể sử dụng giá trị riêng của mình.", + "editServerDefaults": "Chỉnh sửa cài đặt mặc định của máy chủ", "resetMenu": "Đặt lại", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "Tất cả đều được đặt về mặc định.", + "resetCore": "Kết nối và SSH về cài đặt mặc định", + "resetDone_one": "{{count}} máy chủ hiện đang tuân theo các thiết lập mặc định.", + "resetDone_other": "{{count}} máy chủ hiện đang tuân theo cài đặt mặc định của chúng." } } diff --git a/src/ui/locales/translated/zh_CN.json b/src/ui/locales/translated/zh_CN.json index 0815591a4..807f5bac9 100644 --- a/src/ui/locales/translated/zh_CN.json +++ b/src/ui/locales/translated/zh_CN.json @@ -55,7 +55,7 @@ "levelManage": "管理", "levelUseDesc": "使用方法:将凭据附加到主机并连接。密钥本身保持隐藏状态。", "levelManageDesc": "管理:还可以编辑凭据并与他人共享。", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "此凭证尚未共享。", "accessRevoked": "访问权限已撤销", "shared": "共享凭证" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "解锁拖动即可重新排列" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "有更新可用。请在 GitHub 上查看发布说明。" }, "common": { "close": "关闭", "minimize": "最小化", "online": "在线", "offline": "离线", - "signInFailed": "Sign in failed", + "signInFailed": "登录失败", "unknown": "未知", "continue": "继续", "maintenance": "维护", @@ -187,7 +187,7 @@ "remove": "移除", "add": "添加", "update": "更新", - "noResults": "No results found" + "noResults": "未找到结果" }, "onboarding": { "stepCounter": "步骤 {{current}}/{{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "命令面板", "workflow_palette_desc": "输入文字即可快速跳转至服务器或执行操作。双击 Shift 键打开。", "workflow_split": "分屏", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "例如,可以并排显示多个标签页,以便在工作时查看日志。", "workflow_dock": "侧面板", "workflow_dock_desc": "中键或右键单击侧边栏图标,可将其在标签页中打开或固定至右侧。", "securityTitle": "保障登录安全", @@ -248,13 +248,13 @@ "done_cli": "命令行工具", "done_cli_desc": "通过终端管理您的服务器,并在您自己的脚本中使用 Termix。", "done_cli_link": "打开 CLI 文档", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "您想如何使用Termix?", + "desktopBody": "您可随时在侧边栏的“同步”选项中更改此设置。", + "desktopLocalTitle": "仅限此设备", + "desktopLocalBody": "所有东西都存放在这里,无需任何设置。", + "desktopLinkTitle": "我的Termix服务器", + "desktopLinkBody": "登录您的服务器,即可在每个设备上使用相同的主机和设置。", + "desktopLinked": "链接到 {{server}}" }, "nav": { "home": "首页", @@ -295,21 +295,21 @@ "collapseSideMenu": "折叠菜单", "roleAdministrator": "管理员", "roleUser": "用户", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "同步", + "reconnectDisconnectedTerminals": "重新连接所有断开的端子", + "reconnectingTerminals_one": "正在重新连接 {{count}} 终端", + "reconnectingTerminals_other": "正在重新连接 {{count}} 终端", + "noDisconnectedTerminals": "没有已断开的端子可以重新连接", + "reconnectTerminalsFailed_one": "无法重新连接 {{count}} 终端", + "reconnectTerminalsFailed_other": "无法重新连接 {{count}} 终端", + "fullscreenUnsupported": "此浏览器不支持全屏模式。", + "fullscreenFailed": "无法切换全屏模式", + "resetSidebarWidth": "重置宽度", + "collapseSidebar": "折叠侧边栏", + "openSidebar": "打开侧边栏", + "confirmCloseHost": "关闭 {{host}}?", + "enterFullscreen": "进入全屏模式(Ctrl+Shift+F)", + "exitFullscreen": "退出全屏模式(Ctrl+Shift+F)" }, "hosts": { "hosts": "主机", @@ -353,7 +353,7 @@ "serverStats": "主机指标", "status": { "available": "可用的", - "reachable": "Up, but the last sign in failed", + "reachable": "已登录,但最后一个登录信息失败了。", "offline": "离线", "monitoringDisabled": "监控已禁用", "label": "地位" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "强制键盘交互认证", "overrideCredentialUsername": "覆盖凭据用户名", "overrideCredentialUsernameDesc": "使用上方指定的用户名代替凭据中的用户名", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "使用 $external.username 填写您通过 SSO 或 LDAP 登录的名称。", "jumpHostChain": "跳板主机链", "portKnocking": "端口敲门", "addKnock": "添加端口", @@ -626,14 +626,14 @@ "actionsClick": "点击展开/收起", "openOnDoubleClick": "双击打开", "openOnDoubleClickDesc": "打开主机会话需要双击,而不是单击。", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "显示文件夹路径", + "showFolderPathsDesc": "在嵌套子文件夹名称上方显示父文件夹路径。子文件夹路径无论哪种方式都保持缩进。", + "hostClickBehavior": "点击主机", + "hostClickBehaviorDesc": "点击一个已经打开了标签页的主机会发生什么?按住 Ctrl/Cmd 键点击、鼠标中键点击或选择“在新标签页中打开”总是会打开一个新的标签页。", + "hostClickNewTab": "始终打开一个新标签页", + "hostClickFocusExisting": "切换到打开的标签页", + "hostClickFocusExistingDoubleNew": "单击切换,双击打开新标签页", + "openInNewTab": "在新标签页中打开", "deletedHost": "已删除 {{name}}", "copiedToClipboard": "已复制到剪贴板", "remoteDesktopUrlCopied": "远程桌面 URL 已复制", @@ -698,7 +698,7 @@ "groupCredentials": "凭据", "groupNotes": "笔记", "groupTags": "标签和置顶", - "groupProxy": "Proxy", + "groupProxy": "代理人", "groupJumpHosts": "跳板机", "groupFeatureFlags": "功能标志", "groupAdvanced": "高级配置", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "每个端点都需要不同的名称。", "webUiErrorPortRange": "端点 {{row}} 需要一个介于 1 和 65535 之间的端口。", "webUiErrorPathInvalid": "端点 {{row}} 的路径无效。请使用类似 /admin 的路径。", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "复制 {{name}} 链接", "filterAuthAgent": "SSH 代理", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "此主机使用 {{type}},而 {{plugin}}需要它。此服务器上已将其关闭。", + "authTypeUnknown": "此主机使用 {{type}},但此服务器上不可用。", + "authFieldsAfterSave": "请先保存主机信息,然后再填写这些字段。", + "enablePluginFeature": "启用 {{name}}", + "disablePluginFeature": "禁用 {{name}}", "filterFeaturesGroup": "功能", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "仅限此设备使用", + "localOnlyDesc": "此主机名不会被发送到服务器,也不会出现在您的其他设备上。", + "folderLocalOnly": "仅限此设备使用", + "folderLocalOnlyDesc": "此文件夹及其中的所有主机都保留在此设备上,不会发送到服务器。", + "sudoPasswordDesc": "当终端填充 sudo 提示符时使用,以及由使用 sudo 运行命令的功能使用。", "editorCancel": "取消", "editorSaving": "保存中...", "editorUpdate": "更新主机", "editorAdd": "添加主机", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "搜索主机。使用方向键选择,按 Enter 键连接,按 Esc 键关闭。", + "speedSearchList": "主机列表。输入或按 / 键搜索。", + "importNoHosts": "文件中未找到主机", + "importTooMany": "您一次最多可以导入 {{max}} 个主机", + "importSummary": "导入完成: {{imported}} 已导入, {{updated}} 已更新, {{failed}} 失败", + "importHostsFailed": "导入主机失败" }, "commandPalette": { "searchPlaceholder": "搜索主机、命令或设置...", @@ -898,57 +898,57 @@ "select": "选择", "toggleWith": "切换:使用", "pluginActions": "更多操作", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "未打开任何终端标签页" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "分屏", + "defaultLabel": "分割 {{number}}", "splitRight": "向右拆分", "splitDown": "向下拆分", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "添加到 {{split}}", + "paneEmptyItem": "窗格 {{index}}:空", + "paneItem": "窗格 {{index}}: {{label}}", "paneNumber": "窗格 {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "右侧新增窗格", + "newPaneBelow": "下方新增窗格", + "emptyTitle": "空白窗格", + "emptyHint": "选择要在此处显示的内容。选中此窗格后,您从侧边栏打开的任何内容也会在此处打开。", + "openTabs": "打开标签页", + "noOpenTabs": "没有其他标签页打开", "hosts": "主机", "searchHosts": "搜索主机", - "noHosts": "No hosts match", + "noHosts": "没有主机匹配", "newSession": "新建", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", + "closePane": "关闭窗格", + "closeSession": "闭幕式", + "moveToTab": "移至单独的标签页", + "swapWith": "交换", + "showHere": "在此窗格中显示", + "clearPane": "清空此窗格", + "zoom": "缩放窗格", + "unzoom": "恢复布局", + "unsplit": "未分割", + "layouts": "布局", + "applyLayout": "更改布局", + "newSplit": "新分期", + "maxPanes": "一个分屏最多可以容纳 {{count}} 个窗格", + "dropSplit": "下降分割", + "dropHere": "向下滚动即可显示此处", + "paneActions": "窗格操作", + "dividerHint": "拖动调整大小。双击使大小均匀。", + "openInSplit": "分屏打开", + "openInNewSplit": "与当前标签页的新拆分", "shortcuts": "快捷方式", - "shortcutNavigate": "Move between panes", + "shortcutNavigate": "在窗格之间切换", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "两个并排", + "rows2": "两层堆叠", + "columns3": "三个并排", + "mainLeft3": "左一,右二", + "mainBottom3": "两件上衣,一件下装", + "grid4": "四格网格", + "grid5": "三比二", + "grid6": "六格网格" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "需要身份验证", "mfaPushRequired": "需要推送身份验证", "mfaMenuPlaceholder": "请输入您的回复", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "代码或“推送”", "mfaWaitingApproval": "正在等待设备审核通过……", "mfaSendRequest": "发送请求", "browserSignInCode": "安全密钥", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "登录网址", "browserSignInOpen": "在浏览器中打开", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "我已经完成登录", + "browserSignInRequired": "{{provider}} 需要登录", "connectionLogTitle": "连接日志", "connectionLogCopy": "复制日志到剪贴板", "connectionLogEmpty": "暂无连接日志", @@ -1032,7 +1032,7 @@ "external": "外部", "loginWithExternal": "使用外部提供商登录", "loginWithExternalDesc": "使用您配置的外部身份提供商登录", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "桌面应用目前尚不支持外部登录,请使用网页版。", "loginWithProvider": "使用{{name}}登录", "orContinueWith": "或继续使用", "resetPasswordButton": "重置密码", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "剩余 {{count}} 次尝试", "confirmResetDataWipe": "自加密升级以来,此帐户未登录,因此没有旧密码无法恢复其存储的数据。重置将永久删除其主机、凭据和代码片段。是否继续?", "password": "密码", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "您的账户启用了第二重验证,但该验证目前不可用。请联系管理员重置验证。", + "secondFactorNoUI": "第二个因素无法在此屏幕上显示。请联系管理员。", + "serverAuthentication": "服务器登录", + "minChars": "最小 {{min}} 个字符" }, "hostKey": { "verifyNewHost": "验证 SSH 主机密钥", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "验证重置代码失败", "failedCompleteReset": "无法完成密码重置", "invalidTotpCode": "无效的 TOTP 代码", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "外部登录失败", + "silentSigninOidcUnavailable": "已请求静默登录,但未设置外部登录。", "failedUserInfo": "登录后无法获取用户信息", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "外部登录失败", "invalidAuthUrl": "从后端接收到无效的授权 URL", "requiredField": "此字段为必填项", "minLength": "最小长度为 {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "保存认证令牌失败", "authTokenMissing": "服务器未返回新的身份验证令牌。请重新登录。", "failedToLoadServer": "加载服务器失败", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "会话已过期,请重新登录。" }, "messages": { "registrationDisabled": "新账户注册已被管理员禁用。请登录或联系管理员。", @@ -1163,7 +1163,7 @@ "panelMain": "主面板", "panelSide": "侧面板", "justNow": "刚刚", - "activityFileManager": "File manager" + "activityFileManager": "文件管理器" }, "donation": { "title": "喜欢 Termix 吗?", @@ -1188,12 +1188,12 @@ "add": "添加:", "commandPalette": "命令面板", "done": "完成", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "拖动卡片可重新排序。拖动列分隔线可调整列宽。拖动卡片底部边缘可更改其高度。使用垃圾桶按钮删除卡片。", "empty": "空", "clear": "清除", "viewServerDetails": "查看服务器详情", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "拖动即可调整列宽", + "hostsAvailable": "可提供的房东" }, "admin": { "sectionGeneral": "通用", @@ -1203,7 +1203,7 @@ "sectionDatabase": "数据库", "sectionApiKeys": "API 密钥", "sectionAuditLog": "审计日志", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS 证书", "sectionBranding": "白标", "brandingAppName": "应用程序名称", "brandingAppNameDesc": "显示在登录界面和浏览器标签页上。留空则使用“Termix”。", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "图片无效。请使用大小不超过 750 KB 的 PNG、JPEG 或 WEBP 文件。", "brandingSaved": "品牌设置已保存", "brandingSaveFailed": "品牌设置保存失败", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Termix 通过 HTTPS 提供证书。您可以在这里上传自己的证书,或者从 Let's Encrypt 的 ACME 证书部分获取并续订证书。", "sslDocsLink": "查看 SSL 文档", "sslCertStatus": "证书状态", "sslCertStatusNone": "无证书", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "允许新用户使用用户名和密码自行注册", "allowPasswordLogin": "允许密码登录", "allowPasswordLoginDesc": "用户名/密码登录", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "自动创建外部帐户", + "oidcAutoProvisionDesc": "即使注册功能已关闭,当用户首次通过外部登录(例如 SSO 或 LDAP)登录时,也应创建帐户。", + "secondFactorAfterExternalLogin": "在外部登录(SSO、GitHub、Google、LDAP)后要求进行第二重验证", + "secondFactorAfterExternalLoginDesc": "关闭双因素身份验证后,仅在密码登录和其他本地登录后才会要求输入已注册的双因素身份验证信息,与之前相同。开启双因素身份验证后,每次登录都会要求输入双因素身份验证信息,包括单点登录 (SSO) 和 LDAP 登录。", "allowPasswordReset": "允许密码重置", "allowPasswordResetDesc": "通过 Docker 日志获取重置码", "auditForwardingTitle": "转发至 SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "保存审计转发设置失败", "sessionTimeout": "会话超时", "hours": "小时", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "最短1小时,最长720小时", "monitoringDefaults": "监控默认值", "statusCheck": "状态检查", "sec": "秒", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "管理员状态", "editUserUserId": "用户ID", "linkAccountTitle": "链接账号", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "将外部帐户 {{username}} 与现有本地帐户合并。", + "linkAccountDescLocal": "将本地帐户 {{username}} 与现有的仅限外部使用的帐户关联。", "linkAccountWarningTitle": "这将:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "删除仅限外部使用的帐户", + "linkAccountEffect2": "将其外部登录添加到目标帐户", + "linkAccountEffect3": "允许外部登录和密码登录", "linkAccountTargetUsername": "本地账号用户名", "linkAccountTargetPlaceholder": "输入要链接的本地账号用户名", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "外部帐户用户名", + "linkAccountOidcPlaceholder": "输入仅供外部使用的帐户用户名以进行合并", + "linkAccountOidcNotFound": "未找到使用该用户名的仅限外部访问的帐户", "linkAccounts": "链接账号", "linkAccountSuccess": "账号已成功链接", "linkAccountFailed": "链接账号失败", "linkAccountInProgress": "正在链接...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "取消外部登录", + "unlinkAccountDesc": "从 {{username}}中移除外部登录。他们将只能使用密码登录。", + "unlinkAccountWarning": "这将移除此帐户的外部登录功能。用户必须设置密码才能继续登录。", + "unlinkAccount": "取消外部登录", "unlinkAccountInProgress": "正在取消关联...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "外部登录已取消关联", + "unlinkAccountFailed": "取消外部登录链接失败", "saving": "保存中...", "updateRegistrationFailed": "更新注册设置失败", "updatePasswordLoginFailed": "更新密码登录设置失败", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "自动创建设置更新失败", + "updateSecondFactorAfterExternalLoginFailed": "更新第二因素设置失败", "updatePasswordResetFailed": "更新密码重置设置失败", "sessionTimeoutRange2": "会话超时必须在 1 到 720 小时之间", "sessionTimeoutSaved": "会话超时已保存", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "没有活动会话", "deleteSuccessorLabel": "将主机和凭据移交给", "deleteSuccessorMe": "我(删除管理员)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "没人,删除他们", "deleteSuccessorDesc": "该用户共享的所有内容在新所有者下仍然有效;选择“无人”将删除其主机、凭据和共享内容。", "deleteUserDangerDesc": "永久删除 {{username}} 及其所有数据(主机、凭据、代码片段、历史记录)。此操作不可撤销。", "deleteUserConfirm": "永久删除 {{username}} 及其所有数据?", @@ -1477,31 +1477,31 @@ "saveError": "保存角色权限失败", "save": "保存", "saving": "保存中...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "功能已禁用", "groups": { "hosts": "主机", "credentials": "凭据", - "admin": "Administration" + "admin": "行政" } }, "notificationPrivateEndpoints": "允许的私人通知主机", "notificationPrivateEndpointsDesc": "通知渠道可以联系的具体私有主机。请用逗号分隔。", "updateNotificationEndpointsFailed": "更新通知端点允许列表失败", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "第二因素", + "secondFactorsNone": "没有纳入第二因素", + "secondFactorUnavailable": "不可用", + "resetSecondFactors": "重置第二因素", + "resetSecondFactorsConfirm": "移除 {{username}}的每隔一个因素?他们可以使用密码或SSO登录并重新注册。", + "secondFactorsResetSuccess": "第二因素重置", + "secondFactorsResetFailed": "重置第二因素失败", + "passwordLoginForced": "密码登录已关闭,但其他登录方式均未启用,因此目前保持开启状态。不会有人被锁定在外。", + "sslNotRenewed": "此证书不会自动续期,有效期至 {{date}}。请在 ACME 证书设置中启用自动续期,或在此日期前上传新证书。", + "sslSelfSigned": "这是Termix生成的自签名证书。浏览器会对此发出警告。", + "sslRenewedBy": "由 {{plugin}} 自动续订", + "sslIssuer": "由 {{issuer}} 发行", + "sslNames": "封面 {{names}}", + "sslManualTitle": "上传证书", + "updateExternalAutoProvisionFailed": "自动创建设置更新失败" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "协议", "domainLabel": "领域", "domainPlaceholder": "选修的", - "connectToAction": "Connect to {{name}}", + "connectToAction": "连接到 {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "任何已安装的设备都无法连接到此主机类型" }, "keybindings": { "title": "键盘快捷键", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "将按键绑定到终端和应用程序中的操作,或更改内置快捷键。", "defaultsHeading": "内置快捷方式", - "fixedHeading": "App Shortcuts", + "fixedHeading": "应用快捷方式", "fixed": { "splitRight": "向右拆分", "splitDown": "向下拆分", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "放大聚焦窗格", + "navigatePane": "在窗格之间切换", "nextTab": "下一个标签页", "previousTab": "上一个标签页", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "跳转到标签页", + "previousView": "返回上一页侧边栏视图", + "fullscreen": "切换全屏" }, "customHeading": "自定义快捷方式", "addBinding": "添加快捷方式", @@ -1566,9 +1566,9 @@ "actionNextTab": "切换到下一个标签页", "actionPreviousTab": "切换到上一个标签页", "actionOpenCommandPalette": "打开快速搜索", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "重新连接当前会话", + "unavailableAction": "{{type}} (不可用)", + "actionRequiredError": "首先选择一个行动。" }, "userProfile": { "donateTitle": "让 Termix 持续运转", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "设置已重置为默认值。", "storageModeSwitch": "偏好设置存储", "sectionAccount": "账户", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "此设备仅", + "desktopProfileDescription": "此配置文件保存在此设备上,并会自动登录。将其链接到 Termix 服务器,即可在所有设备上使用相同的主机和设置。", "sectionInterface": "界面", "interfacePresetDesc": "Termix 显示的细节量。所有功能均可使用。", "preset_simple": "简洁", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "登录或刷新页面时恢复已打开的标签页,即使是从其他设备登录", "confirmTabClose": "关闭标签页确认", "confirmTabCloseDesc": "关闭终端标签页前询问", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "显示标签编号", + "showTabNumbersDesc": "在每个标签页上显示一个数字,以便区分它们。", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "主机侧边栏显示设置已移至“自定义侧边栏”面板,该面板可从主机工具栏打开。", "showHostTags": "显示主机标签", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "已登录到 {{server}}", + "linkedProfileDescription": "该设备使用您在服务器上的帐户并保留您的数据副本,因此即使离线也能正常工作。", + "manageSync": "管理同步", + "setUpSync": "链接到服务器", + "settingsTabsAndShortcuts": "标签页和快捷键" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "查看您的密码和密钥", + "consequence": "它可以读取任何你能访问的主机上存储的密钥。" }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "在服务器上运行命令", + "consequence": "在您拥有访问权限的情况下,对连接到该主机的任何命令。" }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "在这台机器上运行程序", + "consequence": "程序在 Termix 服务器本身上运行,而不是在您的主机上运行。" }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "创建和更改用户帐户", + "consequence": "它可以添加用户并更改用户的角色。" }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "处理登录", + "consequence": "它可以添加登录方式、第二因素或 SSH 登录类型。" }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "管理证书", + "consequence": "它可以替代 Termix 通过 HTTPS 提供的证书,并响应证书颁发机构的域名检查。" }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "访问串行和 USB 设备", + "consequence": "它可以打开运行 Termix 的机器上的一个物理串口。" }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "创建和更改主机", + "consequence": "它可以添加主机,也可以编辑已有的主机。" }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "连接到您的服务器", + "consequence": "它看不到你的密码或密钥。" }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "保存新凭据", + "consequence": "它可以将密码和密钥添加到您保存的凭据中。" }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "连接到互联网", + "consequence": "它可以向外部服务发送请求。" }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "接受连接", + "consequence": "它会在Termix服务器上打开一个端口。" }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "发送网络广播", + "consequence": "它可以向本地网络上的设备发送数据包,例如网络唤醒信号。" }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "查看用户名和角色", + "consequence": "绝不使用密码哈希值,绝不使用双因素认证。" }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "密切关注所有事件的发生。", + "consequence": "包括其他用户的活动,而不仅仅是您自己的活动。" }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "发送提醒", + "consequence": "向您或其他用户,并通过他们建立的渠道。" }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "接收所有提醒", + "consequence": "存储并发送所有插件发送的警报及其内容。" }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "阅读审计日志", + "consequence": "它可以查看谁在何时做了什么。" }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "打开桌面窗口", + "consequence": "仅限Termix桌面应用程序。" }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "扮演其他用户", + "consequence": "使用其他用户的权限运行后台任务,例如计划任务。每次使用都会写入审计日志。" }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "读取核心账户表", + "consequence": "可以直接从数据库中查询用户、角色和主机。" }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "查看您的主机列表", + "consequence": "你已经可以看到主机的名称和地址。" }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "存储自身数据", + "consequence": "它保存在自己的表中,与其他插件分开。" }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "记住小设置", + "consequence": "与其他插件分开存放。" }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "存储自己的文件", + "consequence": "它位于磁盘上的一个独立文件夹中,与其他插件分开。" }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "储存自己的秘密", + "consequence": "由 Termix 加密。插件本身并不持有密钥。" }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "阅读 Termix 设置", + "consequence": "服务器设置,而不是您的主机名或凭据。" }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "查看已安装功能", + "consequence": "它可以查看哪些功能已安装并正在运行。" }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "添加自己的屏幕", + "consequence": "可以稍后隐藏的标签页、面板和设置。" } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} 不可用", + "needsUnknownPlugin": "此功能不可用", + "disabledHint": "此服务器上已关闭此功能。", + "missingHint": "该功能已被移除。", + "failed": "{{name}} 无法启动", + "failedHint": "管理员可以查看服务器日志了解详情。", + "loading": "加载中 {{name}}", + "crashed": "{{name}} 中出了点问题", + "retry": "再试一次" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "放", + "secretNotSet": "未设置", "secretReplace": "替换", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "设置已保存", + "pluginSettingsInvalid": "部分设置无法保存。请检查高亮显示的字段。", + "pluginSettingsSaveFailed": "设置保存失败", + "pluginSettingsLoadFailed": "设置加载失败", + "featureUnavailable": "{{name}} 目前不可用。这些设置已保存,但不会生效。" }, "managerCard": { "refresh": "刷新", @@ -1913,169 +1913,169 @@ "filter": "筛选..." }, "sync": { - "server": "Termix server", + "server": "Termix 服务器", "account": "账户", "status": "状态", "never": "从未", "justNow": "刚刚", - "minutesAgo_one": "{{count}} minute ago", + "minutesAgo_one": "{{count}} 分钟前", "minutesAgo_other": "{{count}} minutes ago", "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "hoursAgo_other": "{{count}} 小时前", + "actionFailed": "这样做行不通,请再试一次。", + "unlinkedTitle": "此设备仅", + "unlinkedBody": "Termix 在此设备上可以独立运行。将其连接到您的 Termix 服务器,以确保所有功能同步。", + "unlinkedPointHosts": "您的主机名、凭据、代码片段和设置会跟随您到每一台设备。", + "unlinkedPointOffline": "即使无法连接到服务器,所有功能仍然正常运行,稍后会恢复正常。", + "unlinkedPointAccount": "您可以使用服务器帐户登录,其他人与您共享的主机也会显示在这里。", + "linkButton": "链接到服务器", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "同步", + "offline": "服务器无法连接", + "error": "同步已停止", + "signedOut": "已退出登录", + "synced": "已同步 {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} 更改等待同步", + "pending_other": "{{count}} 等待同步的更改", + "signInAgain": "再次登录", + "syncNow": "立即同步", + "unlink": "取消链接", + "unlinked": "此设备已断开连接", + "unlinkTitle": "取消此设备的关联?", + "unlinkDescription": "它会停止同步并从服务器注销。无论如何,其他人与您共享的主机都会从此设备中删除。", + "unlinkKeepTitle": "请将我的数据保存在此处", + "unlinkKeepBody": "您的主机、凭据和设置将保留在此设备上,并继续自动运行。", + "unlinkRemoveTitle": "删除已同步的数据", + "unlinkRemoveBody": "所有来自服务器的内容都会从此设备中删除。只有保留在此设备上的主机文件才会被移除。", + "conflictsTitle": "冲突", + "conflictsDescription": "这些信息已在此处和服务器上同时更改。服务器版本正在使用中。请保留您自己的版本,以便将其发送到服务器。", + "keepMine": "留着我的", + "keepServer": "保持服务器", + "errorsTitle": "未同步", + "errorsDescription": "服务器未接受这些更改。这些更改将保留在此设备上。", + "errorPermission": "您的服务器帐户没有权限进行此更改。", + "retry": "再试一次", + "whatSyncs": "同步什么", + "whatSyncsDescription": "关闭所有你只想保留在此设备上的功能。", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "服务器没有这个功能", + "notOnDevice": "此设备上尚未安装。", + "localOnlyHint": "您还可以通过设置将单个主机或文件夹保留在此设备上。", + "originTitle": "连接的起点", + "originDescription": "可从此设备或通过服务器连接到主机。您可以为每个主机单独更改此设置。", + "originLocal": "这个设备", + "originRemote": "服务器", "entities": { "hosts": "主机", "sshCredentials": "凭据", "sshFolders": "文件夹", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "偏好", + "pluginUserSettings": "功能设置", + "sharedHosts": "房东与您分享", + "sharedCredentials": "已与您共享的凭证", + "vaultProfiles": "Vault 个人资料", + "snippetFolders": "代码片段文件夹", "snippets": "代码片段", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "服务链接", + "homepageItems": "首页项目", + "networkTopology": "网络图", + "workspaces": "工作区" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", + "title": "反向代理", + "description": "只有当 Cloudflare Access 或登录页面之类的服务位于您的服务器前端时才需要这样做。", + "headersTitle": "额外标题", + "headersHint": "每次向服务器发送请求时都会发送此信息,例如 Cloudflare 访问服务令牌。", + "headerName": "标题名称", "headerValue": "值", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "savedValue": "已保存,输入以更改", + "addHeader": "添加标题", + "removeHeader": "移除标题", + "basicAuthTitle": "用户名和密码", + "basicAuthHint": "对于一个在连接 Termix 之前会要求输入用户名和密码的代理服务器。", "username": "用户名", "password": "密码", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "信任自签名证书", + "allowInvalidCertificateHint": "仅适用于您自己的服务器,且该服务器的证书并非来自已知证书颁发机构。", "saved": "已保存" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "这看起来不像个网址。", + "unreachable": "无法连接到服务器。请检查地址并确认服务器是否正在运行。", + "unreachableWithReason": "无法连接到服务器: {{reason}}", + "tlsUntrusted": "服务器证书不受信任。如果这是您自己的服务器,并且使用的是自签名证书,请启用以下选项。", + "basicAuthRequired": "服务器端会提示输入用户名和密码。请在下方输入。", + "proxyLogin": "响应的不是 Termix,而是登录页面或代理。请在下方添加所需的标头,或检查地址。", + "notTermix": "该地址上没有 Termix 服务器。如果它运行在某个路径下,请包含该路径,例如 https://example.com/termix。", + "versionMismatch": "该服务器运行的是较旧的Termix版本。请将其更新至2.9或更高版本以进行连接。", + "differentAccount": "您登录的是其他帐户。请先登录此设备关联的帐户,或先取消关联。" }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "链接到 Termix 服务器", + "reloginTitle": "再次登录", + "savedServers": "最近服务器", + "removeServer": "从列表中删除", + "serverDescription": "输入您在浏览器中打开Termix时使用的地址。", + "signinDescription": "登录到 {{url}}", + "chooseDescription": "这个设备里已经有数据了,应该怎么处理?", + "finishingDescription": "正在连接此设备。", + "serverUrl": "服务器地址", + "serverUrlHint": "例如 https://termix.example.com", + "showProxySettings": "反向代理设置", + "hideProxySettings": "隐藏反向代理设置", "continue": "继续", "back": "返回", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", + "mergeTitle": "添加到我的账户", + "mergeBody": "此设备上的 {{count}} 物品将添加到您的帐户。您帐户中已有的物品将保留在服务器上。", + "replaceTitle": "替换成我的账户", + "replaceBody": "此设备上的所有 {{count}} 项目将被移除,并且此设备将清除您帐户中的所有数据。仅保留在此设备上的主机。", "link": "链接", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "linking": "正在链接并运行首次同步……", + "linked": "已连接。您的数据正在同步。", + "signedInAgain": "已登录。同步正在重新运行。" } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "文件夹 {{name}}", + "user": "我的默认设置", + "admin": "服务器", + "builtin": "内置" }, "custom": "自定义", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "设置在此处", + "notSet": "未设置", + "notSetTitle": "此项未设置默认值。", + "resetTitle": "此主机设置了自己的值。单击即可再次使用 {{source}} 中的默认值。", + "clearTitle": "设置为此级别。点击清除,然后改用 {{source}}", + "inheritedTitle": "遵循 {{source}} 的默认值", + "titleAdmin": "服务器主机默认设置", + "titleUser": "我的主机默认设置", + "titleFolder": "文件夹默认值: {{name}}", + "descriptionAdmin": "此服务器上每个主机的默认值。用户自己的默认值、文件夹的默认值或主机本身仍然可以设置不同的值。在此处更改字段即可设置默认值,或将其清除以保持未设置状态。", + "descriptionUser": "此处的默认值适用于所有主机,高于服务器的默认值。文件夹或主机本身仍然可以设置不同的值。要在此处设置值,请更改字段;要保持未设置状态,请清除字段。", + "descriptionFolder": "此文件夹及其子文件夹中所有主机的默认设置将覆盖您自己的设置。主机仍然可以设置不同的值。要在此处设置默认值,请修改字段;要保持未设置状态,请清除字段。", + "save": "保存默认设置", + "saved_one": "默认设置已保存。 {{count}} 主机已更新。", + "saved_other": "默认设置已保存。 {{count}} 主机已更新。", + "savedInBackground": "默认设置已保存。主机信息正在后台更新。", + "appliedToHosts_one": "{{count}} 主机已更新为新的默认值。", + "appliedToHosts_other": "{{count}} 主机已更新为新的默认值。", + "saveFailed": "无法保存默认设置。", + "loadFailed": "无法加载默认设置。", + "confirmTitle": "保存默认设置?", + "confirmChanges_one": "{{count}} 主机遵循这些默认值,并且会发生变化。", + "confirmChanges_other": "{{count}} 主机遵循这些默认值,并且会发生变化。", + "confirmNoChanges": "现有主机配置无变更。新主机将使用这些默认配置。", + "menuMyDefaults": "我的主机默认设置", + "folderDefaultsAction": "文件夹默认值", + "adminSectionDescription": "设置此服务器上所有主机都遵循的默认值,包括主机的所有设置以及各项功能的设置。用户和文件夹可以在此基础上设置自己的默认值,任何主机仍然可以使用自己的默认值。", + "editServerDefaults": "编辑服务器默认设置", "resetMenu": "重置", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "所有设置恢复默认值", + "resetCore": "连接和 SSH 到默认设置", + "resetDone_one": "{{count}} 主机现在遵循其默认设置。", + "resetDone_other": "{{count}} 主机现在遵循其默认设置。" } } diff --git a/src/ui/locales/translated/zh_TW.json b/src/ui/locales/translated/zh_TW.json index 2a86062ad..f915a1fcb 100644 --- a/src/ui/locales/translated/zh_TW.json +++ b/src/ui/locales/translated/zh_TW.json @@ -55,7 +55,7 @@ "levelManage": "管理", "levelUseDesc": "使用方法:將憑證附加到主機並連接。密鑰本身保持隱藏狀態。", "levelManageDesc": "管理:也可以編輯憑證並與他人分享。", - "noAccessEntries": "This credential has not been shared yet", + "noAccessEntries": "此憑證尚未共用。", "accessRevoked": "已撤銷存取權限", "shared": "共享憑證" }, @@ -113,14 +113,14 @@ "arrangeUnlocked": "解鎖拖曳即可重新排列" }, "versionCheck": { - "updateLinkLabel": "Update available. Open the release notes on GitHub" + "updateLinkLabel": "有更新可用。請在 GitHub 上查看發布說明。" }, "common": { "close": "關閉", "minimize": "最小化", "online": "線上", "offline": "離線", - "signInFailed": "Sign in failed", + "signInFailed": "登入失敗", "unknown": "未知", "continue": "繼續", "maintenance": "維護", @@ -187,7 +187,7 @@ "remove": "移除", "add": "新增", "update": "更新", - "noResults": "No results found" + "noResults": "未找到結果" }, "onboarding": { "stepCounter": "步驟 {{current}} 的 {{total}}", @@ -215,7 +215,7 @@ "workflow_palette": "命令面板", "workflow_palette_desc": "輸入文字即可跳到任意伺服器或操作。按兩次Shift鍵即可開啟。", "workflow_split": "分割畫面", - "workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.", + "workflow_split_desc": "例如,可以並排顯示多個標籤頁,以便在工作時查看日誌。", "workflow_dock": "側板", "workflow_dock_desc": "單擊中鍵或右鍵單擊側邊欄圖標,即可將其作為標籤頁打開或將其固定到右側。", "securityTitle": "保護您的登入資訊安全", @@ -248,13 +248,13 @@ "done_cli": "命令列工具", "done_cli_desc": "透過終端管理您的伺服器,並在您自己的腳本中使用Termix。", "done_cli_link": "開啟 CLI 文檔", - "desktopTitle": "How do you want to use Termix?", - "desktopBody": "You can change this any time from Sync in the sidebar.", - "desktopLocalTitle": "On this device only", - "desktopLocalBody": "Everything is stored here. Nothing to set up.", - "desktopLinkTitle": "With my Termix server", - "desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.", - "desktopLinked": "Linked to {{server}}" + "desktopTitle": "您想如何使用Termix?", + "desktopBody": "您可隨時在側邊欄的「同步」選項中變更此設定。", + "desktopLocalTitle": "僅此設備", + "desktopLocalBody": "所有東西都存放在這裡,無需任何設定。", + "desktopLinkTitle": "我的Termix伺服器", + "desktopLinkBody": "登入您的伺服器,即可在每個裝置上使用相同的主機和設定。", + "desktopLinked": "連結到 {{server}}" }, "nav": { "home": "首頁", @@ -295,21 +295,21 @@ "collapseSideMenu": "折疊菜單", "roleAdministrator": "管理員", "roleUser": "使用者", - "sync": "Sync", - "reconnectDisconnectedTerminals": "Reconnect all disconnected terminals", - "reconnectingTerminals_one": "Reconnecting {{count}} terminal", - "reconnectingTerminals_other": "Reconnecting {{count}} terminals", - "noDisconnectedTerminals": "No disconnected terminals are ready to reconnect", - "reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal", - "reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals", - "fullscreenUnsupported": "Fullscreen is not supported by this browser", - "fullscreenFailed": "Could not toggle fullscreen", - "resetSidebarWidth": "Reset width", - "collapseSidebar": "Collapse sidebar", - "openSidebar": "Open sidebar", - "confirmCloseHost": "Close {{host}}?", - "enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)", - "exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)" + "sync": "同步", + "reconnectDisconnectedTerminals": "重新連接所有斷開的端子", + "reconnectingTerminals_one": "正在重新連接 {{count}} 終端", + "reconnectingTerminals_other": "正在重新連接 {{count}} 終端", + "noDisconnectedTerminals": "沒有已斷開的端子可以重新連接", + "reconnectTerminalsFailed_one": "無法重新連線 {{count}} 終端", + "reconnectTerminalsFailed_other": "無法重新連線 {{count}} 終端", + "fullscreenUnsupported": "此瀏覽器不支援全螢幕模式。", + "fullscreenFailed": "無法切換全螢幕模式", + "resetSidebarWidth": "重設寬度", + "collapseSidebar": "折疊側邊欄", + "openSidebar": "打開側邊欄", + "confirmCloseHost": "關閉 {{host}}?", + "enterFullscreen": "進入全螢幕模式(Ctrl+Shift+F)", + "exitFullscreen": "退出全螢幕模式(Ctrl+Shift+F)" }, "hosts": { "hosts": "主機", @@ -353,7 +353,7 @@ "serverStats": "主機指標", "status": { "available": "可用的", - "reachable": "Up, but the last sign in failed", + "reachable": "已登錄,但最後一個登入資訊失敗了。", "offline": "離線", "monitoringDisabled": "監控已停用", "label": "地位" @@ -372,7 +372,7 @@ "forceKeyboardInteractive": "強制鍵盤互動式驗證", "overrideCredentialUsername": "覆寫憑證使用者名稱", "overrideCredentialUsernameDesc": "使用上方指定的使用者名稱,而非憑證中的使用者名稱", - "oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.", + "oidcUsernameHint": "使用 $external.username 填寫您透過 SSO 或 LDAP 登入的名稱。", "jumpHostChain": "跳板主機鏈", "portKnocking": "連接埠敲門", "addKnock": "新增連接埠", @@ -626,14 +626,14 @@ "actionsClick": "點擊展開/收起", "openOnDoubleClick": "按兩下打開", "openOnDoubleClickDesc": "開啟主機會話需要雙擊,而不是按一下。", - "showFolderPaths": "Show folder paths", - "showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.", - "hostClickBehavior": "Clicking a host", - "hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.", - "hostClickNewTab": "Always open a new tab", - "hostClickFocusExisting": "Switch to the open tab", - "hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab", - "openInNewTab": "Open in new tab", + "showFolderPaths": "顯示資料夾路徑", + "showFolderPathsDesc": "在嵌套子資料夾名稱上方顯示父資料夾路徑。子資料夾路徑無論哪種方式都保持縮排。", + "hostClickBehavior": "點選主機", + "hostClickBehaviorDesc": "點擊一個已經開啟了標籤頁的主機會發生什麼事?按住 Ctrl/Cmd 鍵點擊、滑鼠中鍵點擊或選擇「在新標籤頁中開啟」總是會開啟一個新的標籤頁。", + "hostClickNewTab": "始終開啟一個新分頁", + "hostClickFocusExisting": "切換到開啟的標籤頁", + "hostClickFocusExistingDoubleNew": "點選切換,雙擊開啟新分頁", + "openInNewTab": "在新分頁中開啟", "deletedHost": "已刪除 {{name}}", "copiedToClipboard": "已複製到剪貼簿", "remoteDesktopUrlCopied": "遠端桌面 URL 已複製", @@ -698,7 +698,7 @@ "groupCredentials": "證書", "groupNotes": "筆記", "groupTags": "標籤和別針", - "groupProxy": "Proxy", + "groupProxy": "代理人", "groupJumpHosts": "跳轉主機", "groupFeatureFlags": "功能標誌", "groupAdvanced": "進階配置", @@ -851,29 +851,29 @@ "webUiErrorLabelDuplicate": "每個端點都需要不同的名稱。", "webUiErrorPortRange": "端點 {{row}} 需要一個介於 1 和 65535 之間的連接埠。", "webUiErrorPathInvalid": "端點 {{row}} 的路徑無效。請使用類似 /admin 的路徑。", - "copyViewUrlAction": "Copy {{name}} link", + "copyViewUrlAction": "複製 {{name}} 鏈接", "filterAuthAgent": "SSH 代理", - "authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.", - "authTypeUnknown": "This host uses {{type}}, which is not available on this server.", - "authFieldsAfterSave": "Save the host first, then fill in these fields.", - "enablePluginFeature": "Enable {{name}}", - "disablePluginFeature": "Disable {{name}}", + "authTypeNeedsPlugin": "這台主機使用 {{type}},而 {{plugin}}需要它。此伺服器上已將其關閉。", + "authTypeUnknown": "此主機使用 {{type}},但此伺服器上不可用。", + "authFieldsAfterSave": "請先儲存主機訊息,然後再填寫這些欄位。", + "enablePluginFeature": "啟用 {{name}}", + "disablePluginFeature": "禁用 {{name}}", "filterFeaturesGroup": "功能", - "localOnly": "Keep on this device only", - "localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.", - "folderLocalOnly": "Keep on this device only", - "folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.", - "sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.", + "localOnly": "僅此設備使用", + "localOnlyDesc": "此主機名稱不會被傳送到伺服器,也不會出現在您的其他裝置上。", + "folderLocalOnly": "僅此設備使用", + "folderLocalOnlyDesc": "此資料夾及其中的所有主機都保留在此裝置上,不會傳送到伺服器。", + "sudoPasswordDesc": "當終端填充 sudo 提示符時使用,以及由使用 sudo 運行命令的功能使用。", "editorCancel": "取消", "editorSaving": "儲存中…", "editorUpdate": "更新主機", "editorAdd": "新增主機", - "speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close", - "speedSearchList": "Host list. Type or press / to search.", - "importNoHosts": "No hosts found in the file", - "importTooMany": "You can import up to {{max}} hosts at once", - "importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed", - "importHostsFailed": "Failed to import hosts" + "speedSearch": "搜尋主機。使用方向鍵選擇,按 Enter 鍵連接,按 Esc 鍵關閉。", + "speedSearchList": "主機列表。輸入或按 / 鍵進行搜尋。", + "importNoHosts": "文件中未找到主機", + "importTooMany": "您一次最多可以匯入 {{max}} 個主機", + "importSummary": "導入完成: {{imported}} 已導入, {{updated}} 已更新, {{failed}} 失敗", + "importHostsFailed": "導入主機失敗" }, "commandPalette": { "searchPlaceholder": "搜尋主機、命令或設定…", @@ -898,57 +898,57 @@ "select": "選取", "toggleWith": "切換方式", "pluginActions": "更多動作", - "noTargetTab": "No terminal tab is open" + "noTargetTab": "未開啟任何終端標籤頁" }, "splitScreen": { - "title": "Split screen", - "defaultLabel": "Split {{number}}", + "title": "分割畫面", + "defaultLabel": "分割 {{number}}", "splitRight": "向右分割", "splitDown": "向下分割", - "addToSplit": "Add to {{split}}", - "paneEmptyItem": "Pane {{index}}: empty", - "paneItem": "Pane {{index}}: {{label}}", + "addToSplit": "加入 {{split}}", + "paneEmptyItem": "窗格 {{index}}:空", + "paneItem": "窗格 {{index}}: {{label}}", "paneNumber": "窗格 {{index}}", - "newPaneRight": "New pane on the right", - "newPaneBelow": "New pane below", - "emptyTitle": "Empty pane", - "emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.", - "openTabs": "Open tabs", - "noOpenTabs": "No other tabs are open", + "newPaneRight": "右側新增窗格", + "newPaneBelow": "下方新增窗格", + "emptyTitle": "空白窗格", + "emptyHint": "選擇要在此顯示的內容。選取此窗格後,您從側邊欄開啟的任何內容也會在此處開啟。", + "openTabs": "開啟標籤頁", + "noOpenTabs": "沒有其他標籤頁打開", "hosts": "主機", "searchHosts": "搜尋主機", - "noHosts": "No hosts match", + "noHosts": "沒有主機匹配", "newSession": "新增", - "closePane": "Close pane", - "closeSession": "Close session", - "moveToTab": "Move to its own tab", - "swapWith": "Swap with", - "showHere": "Show in this pane", - "clearPane": "Empty this pane", - "zoom": "Zoom pane", - "unzoom": "Restore layout", - "unsplit": "Unsplit", - "layouts": "Layouts", - "applyLayout": "Change layout", - "newSplit": "New split", - "maxPanes": "A split can hold up to {{count}} panes", - "dropSplit": "Drop to split", - "dropHere": "Drop to show here", - "paneActions": "Pane actions", - "dividerHint": "Drag to resize. Double-click to even out.", - "openInSplit": "Open in split", - "openInNewSplit": "New split with the current tab", - "shortcuts": "Shortcuts", - "shortcutNavigate": "Move between panes", + "closePane": "關閉窗格", + "closeSession": "閉幕式", + "moveToTab": "移至單獨的標籤頁", + "swapWith": "交換", + "showHere": "在此窗格中顯示", + "clearPane": "清空此窗格", + "zoom": "縮放窗格", + "unzoom": "恢復佈局", + "unsplit": "未分割", + "layouts": "佈局", + "applyLayout": "更改佈局", + "newSplit": "新分期", + "maxPanes": "一個分割畫面最多可容納 {{count}} 個窗格", + "dropSplit": "下降分割", + "dropHere": "在此處顯示", + "paneActions": "窗格操作", + "dividerHint": "拖曳調整大小。雙擊使大小均勻。", + "openInSplit": "以分割畫面模式開啟", + "openInNewSplit": "與目前標籤頁重新拆分", + "shortcuts": "快速方式", + "shortcutNavigate": "在窗格之間切換", "presets": { - "columns2": "Two side by side", - "rows2": "Two stacked", - "columns3": "Three side by side", - "mainLeft3": "One left, two right", - "mainBottom3": "Two top, one bottom", - "grid4": "Grid of four", - "grid5": "Three over two", - "grid6": "Grid of six" + "columns2": "兩個並排", + "rows2": "兩層堆疊", + "columns3": "三個並排", + "mainLeft3": "左一,右二", + "mainBottom3": "兩件上衣,一件下裝", + "grid4": "四格網格", + "grid5": "三比二", + "grid6": "六格網格" } }, "connections": { @@ -979,14 +979,14 @@ "mfaPromptRequired": "需要身份驗證", "mfaPushRequired": "需要推送身份驗證", "mfaMenuPlaceholder": "請輸入您的回复", - "mfaCodeOrPushPlaceholder": "Code or \"push\"", + "mfaCodeOrPushPlaceholder": "程式碼或“推送”", "mfaWaitingApproval": "正在等待設備審核通過…", "mfaSendRequest": "發送請求", "browserSignInCode": "安全金鑰", - "browserSignInUrl": "Sign-in URL", + "browserSignInUrl": "登入網址", "browserSignInOpen": "在瀏覽器中開啟", - "browserSignInContinue": "I've Completed Sign-in", - "browserSignInRequired": "{{provider}} Sign-in Required", + "browserSignInContinue": "我已經完成登入", + "browserSignInRequired": "{{provider}} 需要登入", "connectionLogTitle": "連線記錄", "connectionLogCopy": "複製記錄到剪貼簿", "connectionLogEmpty": "尚無連線記錄", @@ -1032,7 +1032,7 @@ "external": "外部", "loginWithExternal": "使用外部提供者登入", "loginWithExternalDesc": "使用您設定的外部識別提供者登入", - "externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.", + "externalNotSupportedInElectron": "桌面應用程式目前尚不支援外部登錄,請使用網頁版。", "loginWithProvider": "使用 {{name}} 登入", "orContinueWith": "或使用以下方式繼續", "resetPasswordButton": "重設密碼", @@ -1055,10 +1055,10 @@ "attemptsRemaining": "剩餘 {{count}} 次嘗試", "confirmResetDataWipe": "此帳戶自加密升級後尚未登入,因此若無舊密碼,其儲存的資料將無法復原。重設將會永久刪除其主機、憑證與程式碼片段。是否繼續?", "password": "密碼", - "secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.", - "secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.", - "serverAuthentication": "Server sign-in", - "minChars": "min. {{min}} characters" + "secondFactorUnavailable": "您的帳戶啟用了第二重驗證,但目前不可用。請聯絡管理員重置驗證。", + "secondFactorNoUI": "第二個因素無法在此畫面上顯示。請聯絡管理員。", + "serverAuthentication": "伺服器登入", + "minChars": "最小字元數 {{min}}" }, "hostKey": { "verifyNewHost": "驗證 SSH 主機金鑰", @@ -1083,10 +1083,10 @@ "failedVerifyCode": "驗證重設碼失敗", "failedCompleteReset": "無法完成密碼重設", "invalidTotpCode": "無效的 TOTP 驗證碼", - "failedOidcLogin": "Failed to start external sign-in", - "silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.", + "failedOidcLogin": "外部登入失敗", + "silentSigninOidcUnavailable": "已要求靜默登錄,但未設定外部登入。", "failedUserInfo": "登入後無法取得使用者資訊", - "oidcAuthFailed": "External sign-in failed", + "oidcAuthFailed": "外部登入失敗", "invalidAuthUrl": "從後端接收到無效的授權 URL", "requiredField": "此欄位為必填", "minLength": "最小長度為 {{min}}", @@ -1100,7 +1100,7 @@ "authTokenSaveFailed": "無法儲存驗證權杖", "authTokenMissing": "伺服器未傳回新的身份驗證令牌。請重新登入。", "failedToLoadServer": "無法載入伺服器", - "sessionExpiredLogin": "Session expired. Please log in again." + "sessionExpiredLogin": "會話已過期,請重新登入。" }, "messages": { "registrationDisabled": "管理員目前已停用新帳戶註冊。請登入或聯絡管理員。", @@ -1163,7 +1163,7 @@ "panelMain": "主要", "panelSide": "側邊", "justNow": "剛剛", - "activityFileManager": "File manager" + "activityFileManager": "文件管理器" }, "donation": { "title": "喜歡 Termix 嗎?", @@ -1188,12 +1188,12 @@ "add": "新增:", "commandPalette": "命令面板", "done": "完成", - "editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.", + "editModeInstructions": "拖曳卡片可重新排序。拖曳列分隔線可調整列寬。拖曳卡片底部邊緣可變更其高度。使用垃圾桶按鈕刪除卡片。", "empty": "空", "clear": "清除", "viewServerDetails": "檢視伺服器詳細資訊", - "dragToResizeColumns": "Drag to resize columns", - "hostsAvailable": "Hosts Available" + "dragToResizeColumns": "拖曳即可調整列寬", + "hostsAvailable": "可提供的房東" }, "admin": { "sectionGeneral": "一般", @@ -1203,7 +1203,7 @@ "sectionDatabase": "資料庫", "sectionApiKeys": "API 金鑰", "sectionAuditLog": "稽核記錄", - "sectionSsl": "HTTPS certificate", + "sectionSsl": "HTTPS 憑證", "sectionBranding": "白標", "brandingAppName": "應用程式名稱", "brandingAppNameDesc": "顯示在登入介面和瀏覽器標籤頁上。留空則使用“Termix”。", @@ -1216,7 +1216,7 @@ "brandingLogoInvalid": "圖片無效。請使用大小不超過 750 KB 的 PNG、JPEG 或 WEBP 檔案。", "brandingSaved": "品牌設定已儲存", "brandingSaveFailed": "品牌設定保存失敗", - "sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.", + "sslDescription": "Termix 透過 HTTPS 提供憑證。您可以在這裡上傳自己的證書,或從 Let's Encrypt 的 ACME 證書部分取得並續訂證書。", "sslDocsLink": "檢視 SSL 文件", "sslCertStatus": "憑證狀態", "sslCertStatusNone": "無憑證", @@ -1254,10 +1254,10 @@ "allowRegistrationDesc": "允許新使用者使用使用者名稱和密碼自行註冊", "allowPasswordLogin": "允許密碼登入", "allowPasswordLoginDesc": "使用者名稱/密碼登入", - "oidcAutoProvision": "Auto-create external accounts", - "oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off", - "secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)", - "secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.", + "oidcAutoProvision": "自動建立外部帳戶", + "oidcAutoProvisionDesc": "即使註冊功能已關閉,當使用者首次透過外部登入(例如 SSO 或 LDAP)登入時,也應建立帳戶。", + "secondFactorAfterExternalLogin": "在外部登入(SSO、GitHub、Google、LDAP)後要求進行第二重驗證", + "secondFactorAfterExternalLoginDesc": "關閉雙重認證後,僅在密碼登入和其他本地登入後才會要求輸入已註冊的雙重認證訊息,與之前相同。開啟雙重認證後,每次登入都會要求輸入雙重認證訊息,包括單一登入 (SSO) 和 LDAP 登入。", "allowPasswordReset": "允許密碼重設", "allowPasswordResetDesc": "透過 Docker 日誌取得重設代碼", "auditForwardingTitle": "轉寄至 SIEM", @@ -1269,7 +1269,7 @@ "auditForwardingSaveError": "審核轉送設定保存失敗", "sessionTimeout": "工作階段逾時", "hours": "小時", - "sessionTimeoutRange": "Min 1h, max 720h", + "sessionTimeoutRange": "最短1小時,最長720小時", "monitoringDefaults": "監控預設值", "statusCheck": "狀態檢查", "sec": "秒", @@ -1363,33 +1363,33 @@ "editUserAdminStatus": "管理員狀態", "editUserUserId": "使用者 ID", "linkAccountTitle": "連結帳號", - "linkAccountDesc": "Merge the external account {{username}} with an existing local account.", - "linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.", + "linkAccountDesc": "將外部帳戶 {{username}} 與現有本機帳戶合併。", + "linkAccountDescLocal": "將本機帳號 {{username}} 與現有的僅限外部使用的帳號關聯。", "linkAccountWarningTitle": "此操作將會:", - "linkAccountEffect1": "Delete the external-only account", - "linkAccountEffect2": "Add its external sign-in to the target account", - "linkAccountEffect3": "Allow both external and password sign-in", + "linkAccountEffect1": "刪除僅限外部使用的帳戶", + "linkAccountEffect2": "將其外部登入新增至目標帳戶", + "linkAccountEffect3": "允許外部登入和密碼登入", "linkAccountTargetUsername": "本機帳號使用者名稱", "linkAccountTargetPlaceholder": "輸入要連結到的本機帳號使用者名稱", - "linkAccountOidcUsername": "External Account Username", - "linkAccountOidcPlaceholder": "Enter the external-only account username to merge in", - "linkAccountOidcNotFound": "No external-only account found with that username", + "linkAccountOidcUsername": "外部帳戶使用者名稱", + "linkAccountOidcPlaceholder": "輸入僅供外部使用的帳戶使用者名稱以進行合併", + "linkAccountOidcNotFound": "未找到使用該使用者名稱的僅限外部存取的帳戶", "linkAccounts": "連結帳號", "linkAccountSuccess": "帳號連結成功", "linkAccountFailed": "帳號連結失敗", "linkAccountInProgress": "連結中...", - "unlinkAccountTitle": "Unlink External Sign-in", - "unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.", - "unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.", - "unlinkAccount": "Unlink External Sign-in", + "unlinkAccountTitle": "取消外部登入", + "unlinkAccountDesc": "從 {{username}}移除外部登入。他們將只能使用密碼登入。", + "unlinkAccountWarning": "這將移除此帳戶的外部登入功能。用戶必須設定密碼才能繼續登入。", + "unlinkAccount": "取消外部登入", "unlinkAccountInProgress": "解除連結中...", - "unlinkAccountSuccess": "External sign-in unlinked", - "unlinkAccountFailed": "Failed to unlink external sign-in", + "unlinkAccountSuccess": "外部登入已取消關聯", + "unlinkAccountFailed": "取消外部登入連結失敗", "saving": "儲存中...", "updateRegistrationFailed": "更新註冊設定失敗", "updatePasswordLoginFailed": "更新密碼登入設定失敗", - "updateOidcAutoProvisionFailed": "Failed to update the auto-create setting", - "updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting", + "updateOidcAutoProvisionFailed": "自動建立設定更新失敗", + "updateSecondFactorAfterExternalLoginFailed": "更新第二因素設定失敗", "updatePasswordResetFailed": "更新密碼重設設定失敗", "sessionTimeoutRange2": "工作階段逾時必須介於 1 到 720 小時之間", "sessionTimeoutSaved": "工作階段逾時已儲存", @@ -1449,7 +1449,7 @@ "noSessionsForUser": "無使用中的工作階段", "deleteSuccessorLabel": "將主機和憑證交給", "deleteSuccessorMe": "我(刪除管理員)", - "deleteSuccessorNone": "Nobody, delete them", + "deleteSuccessorNone": "沒人,刪除他們", "deleteSuccessorDesc": "該用戶共享的所有內容在新所有者下仍然有效;選擇「無人」將刪除其主機、憑證和共享內容。", "deleteUserDangerDesc": "永久刪除 {{username}} 及其所有資料(主機、憑證、片段、歷史記錄)。此動作無法復原。", "deleteUserConfirm": "永久刪除 {{username}} 及其所有資料?", @@ -1477,31 +1477,31 @@ "saveError": "無法儲存角色權限", "save": "儲存", "saving": "儲存中...", - "pluginDisabled": "Feature disabled", + "pluginDisabled": "功能已停用", "groups": { "hosts": "主機", "credentials": "憑證", - "admin": "Administration" + "admin": "行政" } }, "notificationPrivateEndpoints": "允許的私人通知主機", "notificationPrivateEndpointsDesc": "通知管道可以聯繫的具體私有主機。請用逗號分隔。", "updateNotificationEndpointsFailed": "更新通知端點允許清單失敗", - "secondFactorsSectionTitle": "Second factors", - "secondFactorsNone": "No second factors enrolled", - "secondFactorUnavailable": "Unavailable", - "resetSecondFactors": "Reset second factors", - "resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.", - "secondFactorsResetSuccess": "Second factors reset", - "secondFactorsResetFailed": "Failed to reset second factors", - "passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.", - "sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.", - "sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.", - "sslRenewedBy": "Renewed automatically by {{plugin}}", - "sslIssuer": "Issued by {{issuer}}", - "sslNames": "Covers {{names}}", - "sslManualTitle": "Upload a certificate", - "updateExternalAutoProvisionFailed": "Failed to update the auto-create setting" + "secondFactorsSectionTitle": "第二因素", + "secondFactorsNone": "沒有納入第二因素", + "secondFactorUnavailable": "不可用", + "resetSecondFactors": "重置第二因素", + "resetSecondFactorsConfirm": "移除 {{username}}的每隔一個因素?他們可以使用密碼或SSO登入並重新註冊。", + "secondFactorsResetSuccess": "第二因素重置", + "secondFactorsResetFailed": "重置第二因素失敗", + "passwordLoginForced": "密碼登入已關閉,但其他登入方式均未啟用,因此目前保持開啟狀態。不會有人被鎖在外。", + "sslNotRenewed": "此證書不會自動續約,有效期限至 {{date}}。請在 ACME 憑證設定中啟用自動續約,或在此日期前上傳新憑證。", + "sslSelfSigned": "這是Termix產生的自簽名憑證。瀏覽器會對此發出警告。", + "sslRenewedBy": "由 {{plugin}} 自動續訂", + "sslIssuer": "由 {{issuer}} 發行", + "sslNames": "封面 {{names}}", + "sslManualTitle": "上傳證書", + "updateExternalAutoProvisionFailed": "自動建立設定更新失敗" }, "newUi": { "sidebar": { @@ -1522,25 +1522,25 @@ "protocolLabel": "協定", "domainLabel": "領域", "domainPlaceholder": "選修的", - "connectToAction": "Connect to {{name}}", + "connectToAction": "連接到 {{name}}", "sshProtocol": "SSH", - "noTarget": "Nothing installed can connect to this host type" + "noTarget": "任何已安裝的裝置都無法連線到此主機類型" }, "keybindings": { "title": "鍵盤快速鍵", - "description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.", + "description": "將按鍵綁定到終端和應用程式中的操作,或變更內建快捷鍵。", "defaultsHeading": "內建快捷方式", - "fixedHeading": "App Shortcuts", + "fixedHeading": "應用程式快捷方式", "fixed": { "splitRight": "向右分割", "splitDown": "向下分割", - "zoomPane": "Zoom the focused pane", - "navigatePane": "Move between panes", + "zoomPane": "放大聚焦窗格", + "navigatePane": "在窗格之間切換", "nextTab": "下一個索引標籤", "previousTab": "上一個索引標籤", - "jumpTab": "Jump to tab", - "previousView": "Back to the previous sidebar view", - "fullscreen": "Toggle fullscreen" + "jumpTab": "跳到標籤頁", + "previousView": "返回上一頁側邊欄視圖", + "fullscreen": "切換全螢幕" }, "customHeading": "自訂快捷方式", "addBinding": "新增快捷方式", @@ -1566,9 +1566,9 @@ "actionNextTab": "切換到下一個標籤頁", "actionPreviousTab": "切換到上一個標籤頁", "actionOpenCommandPalette": "打開快速搜尋", - "actionReconnectSession": "Reconnect current session", - "unavailableAction": "{{type}} (not available)", - "actionRequiredError": "Pick an action first" + "actionReconnectSession": "重新連接目前會話", + "unavailableAction": "{{type}} (不可用)", + "actionRequiredError": "首先選擇一個行動。" }, "userProfile": { "donateTitle": "讓 Termix 持續營運", @@ -1582,8 +1582,8 @@ "resetToDefaultsSuccess": "設定已重設為預設值。", "storageModeSwitch": "偏好設定儲存", "sectionAccount": "帳號", - "desktopProfileTitle": "This device only", - "desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.", + "desktopProfileTitle": "此設備僅", + "desktopProfileDescription": "此設定檔保存在此裝置上,並會自動登入。將其連結到 Termix 伺服器,即可在所有裝置上使用相同的主機和設定。", "sectionInterface": "介面", "interfacePresetDesc": "Termix 所示的細節非常豐富。所有功能都可用。", "preset_simple": "簡單的", @@ -1652,8 +1652,8 @@ "reopenTabsOnLoginDesc": "登入或重新整理頁面時復原開啟的分頁,即使是從另一部裝置", "confirmTabClose": "確認關閉分頁", "confirmTabCloseDesc": "關閉終端機分頁前先詢問", - "showTabNumbers": "Show Tab Numbers", - "showTabNumbersDesc": "Display a number on each tab to help tell them apart", + "showTabNumbers": "顯示標籤編號", + "showTabNumbersDesc": "在每個標籤頁上顯示一個數字,以便區分它們。", "settingsAppRail": "App Rail", "sidebarSettingsMoved": "主機側邊欄顯示設定已移至「自訂側邊欄」面板,可從主機工具列開啟。", "showHostTags": "顯示主機標籤", @@ -1755,11 +1755,11 @@ "themeTokyoNight": "Tokyo Night", "themeOneDark": "One Dark", "themeGruvbox": "Gruvbox", - "linkedProfileTitle": "Signed in to {{server}}", - "linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.", - "manageSync": "Manage sync", - "setUpSync": "Link to a server", - "settingsTabsAndShortcuts": "Tabs and Shortcuts" + "linkedProfileTitle": "已登入 {{server}}", + "linkedProfileDescription": "該設備使用您在伺服器上的帳戶並保留您的資料副本,因此即使離線也能正常運作。", + "manageSync": "管理同步", + "setUpSync": "連結到伺服器", + "settingsTabsAndShortcuts": "標籤頁和快速鍵" } } }, @@ -1767,143 +1767,143 @@ "plugins": { "capabilities": { "credentials:read": { - "title": "See your passwords and keys", - "consequence": "It can read the stored secret for any host you can reach." + "title": "查看您的密碼和金鑰", + "consequence": "它可以讀取任何你能存取的主機上儲存的密鑰。" }, "ssh:connect": { - "title": "Run commands on your servers", - "consequence": "Any command, on hosts you connect it to, with your access." + "title": "在伺服器上運行命令", + "consequence": "在您擁有存取權限的情況下,對連接到該主機的任何命令。" }, "process:spawn": { - "title": "Run programs on this machine", - "consequence": "Programs run on the Termix server itself, not on your hosts." + "title": "在這台機器上運行程式", + "consequence": "程式在 Termix 伺服器本身上運行,而不是在您的主機上運行。" }, "users:write": { - "title": "Create and change user accounts", - "consequence": "It can add users and change their roles." + "title": "建立和變更使用者帳戶", + "consequence": "它可以添加用戶並更改用戶的角色。" }, "auth:provide": { - "title": "Handle sign in", - "consequence": "It can add a login method, a second factor or an SSH sign-in type." + "title": "處理登入", + "consequence": "它可以新增登入方式、第二因素或 SSH 登入類型。" }, "system:tls": { - "title": "Manage certificates", - "consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities." + "title": "管理證書", + "consequence": "它可以取代 Termix 透過 HTTPS 提供的證書,並回應證書頒發機構的網域檢查。" }, "device:serial": { - "title": "Access serial and USB devices", - "consequence": "It can open a physical serial port on the machine running Termix." + "title": "存取串行和 USB 設備", + "consequence": "它可以打開運行 Termix 的機器上的一個實體串列埠。" }, "hosts:write": { - "title": "Create and change hosts", - "consequence": "It can add hosts and edit the ones you already have." + "title": "建立和更改主機", + "consequence": "它可以新增主機,也可以編輯現有的主機。" }, "credentials:use": { - "title": "Connect to your servers", - "consequence": "It cannot see your passwords or keys." + "title": "連接到您的伺服器", + "consequence": "它看不到你的密碼或金鑰。" }, "credentials:write": { - "title": "Save new credentials", - "consequence": "It can add passwords and keys to your saved credentials." + "title": "儲存新憑證", + "consequence": "它可以將密碼和密鑰添加到您保存的憑證中。" }, "network:outbound": { - "title": "Reach the internet", - "consequence": "It can send requests to outside services." + "title": "連接到網路", + "consequence": "它可以向外部服務發送請求。" }, "network:serve": { - "title": "Accept connections", - "consequence": "It opens a port on the Termix server." + "title": "接受連接", + "consequence": "它會在Termix伺服器上開啟一個連接埠。" }, "network:broadcast": { - "title": "Send network broadcasts", - "consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal." + "title": "發送網路廣播", + "consequence": "它可以向本地網路上的裝置發送資料包,例如網路喚醒訊號。" }, "users:read": { - "title": "See usernames and roles", - "consequence": "Never password hashes, never two factor state." + "title": "查看使用者名稱和角色", + "consequence": "絕不使用密碼雜湊值,絕不使用雙因素認證。" }, "events:core": { - "title": "Watch everything happening", - "consequence": "Including activity from other users, not just yours." + "title": "密切注意所有事件的發生。", + "consequence": "包括其他用戶的活動,而不僅僅是您自己的活動。" }, "notify:send": { - "title": "Send alerts", - "consequence": "To you or other users, and through the channels they set up." + "title": "發送提醒", + "consequence": "向您或其他用戶,並透過他們建立的管道。" }, "notify:hub": { - "title": "Receive every alert", - "consequence": "Stores and delivers the alerts all plugins send, including their contents." + "title": "接收所有提醒", + "consequence": "儲存並發送所有插件發送的警報及其內容。" }, "audit:read": { - "title": "Read the audit log", - "consequence": "It can see who did what and when." + "title": "閱讀審計日誌", + "consequence": "它可以查看誰在何時做了什麼。" }, "desktop:window": { - "title": "Open desktop windows", - "consequence": "Only in the Termix desktop app." + "title": "開啟桌面視窗", + "consequence": "僅限Termix桌面應用程式。" }, "users:impersonate": { - "title": "Act as other users", - "consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log." + "title": "扮演其他用戶", + "consequence": "使用其他使用者的權限執行後台任務,例如排程任務。每次使用都會寫入審計日誌。" }, "db:core-refs": { - "title": "Read core account tables", - "consequence": "Can query users, roles and hosts directly from the database." + "title": "讀取核心帳戶表", + "consequence": "可以直接從資料庫中查詢使用者、角色和主機。" }, "hosts:read": { - "title": "See your host list", - "consequence": "Names and addresses for hosts you can already see." + "title": "查看您的主機列表", + "consequence": "你已經可以看到主機的名稱和位址。" }, "db:own": { - "title": "Store its own data", - "consequence": "Kept in its own tables, separate from other plugins." + "title": "儲存自身數據", + "consequence": "它保存在自己的表中,與其他插件分開。" }, "kv:own": { - "title": "Remember small settings", - "consequence": "Kept separate from other plugins." + "title": "記住小設置", + "consequence": "與其他插件分開存放。" }, "files:own": { - "title": "Store its own files", - "consequence": "In its own folder on disk, separate from other plugins." + "title": "儲存自己的文件", + "consequence": "它位於磁碟上的一個獨立資料夾中,與其他插件分開。" }, "secrets:own": { - "title": "Store its own secrets", - "consequence": "Encrypted by Termix. The plugin never holds the key." + "title": "儲存自己的秘密", + "consequence": "被 Termix 加密。插件本身並不持有密鑰。" }, "settings:read-core": { - "title": "Read Termix settings", - "consequence": "Server settings, not your hosts or credentials." + "title": "閱讀 Termix 設定", + "consequence": "伺服器設置,而不是您的主機名稱或憑證。" }, "plugins:read": { - "title": "See installed features", - "consequence": "It can see which features are installed and running." + "title": "查看已安裝功能", + "consequence": "它可以查看哪些功能已安裝並正在運作。" }, "ui:surface": { - "title": "Add its own screens", - "consequence": "Tabs, panels and settings you can hide later." + "title": "添加自己的螢幕", + "consequence": "可以稍後隱藏的標籤頁、面板和設定。" } }, "runtime": { - "needsPlugin": "{{name}} is not available", - "needsUnknownPlugin": "This feature is not available", - "disabledHint": "It is turned off on this server.", - "missingHint": "The feature it came from has been removed.", - "failed": "{{name}} could not start", - "failedHint": "An admin can check the server logs for details.", - "loading": "Loading {{name}}", - "crashed": "Something went wrong in {{name}}", - "retry": "Try again" + "needsPlugin": "{{name}} 不可用", + "needsUnknownPlugin": "此功能不可用", + "disabledHint": "此伺服器上已關閉此功能。", + "missingHint": "該功能已被移除。", + "failed": "{{name}} 無法啟動", + "failedHint": "管理員可以查看伺服器日誌以了解詳情。", + "loading": "載入中 {{name}}", + "crashed": "{{name}} 中出了點問題", + "retry": "再試一次" } }, "settings": { - "secretSet": "Set", - "secretNotSet": "Not set", + "secretSet": "放", + "secretNotSet": "未設定", "secretReplace": "取代", - "pluginSettingsSaved": "Settings saved", - "pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.", - "pluginSettingsSaveFailed": "Failed to save settings", - "pluginSettingsLoadFailed": "Failed to load settings", - "featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect." + "pluginSettingsSaved": "設定已儲存", + "pluginSettingsInvalid": "部分設定無法儲存。請檢查高亮顯示的欄位。", + "pluginSettingsSaveFailed": "設定保存失敗", + "pluginSettingsLoadFailed": "設定載入失敗", + "featureUnavailable": "{{name}} 目前不可用。這些設定已儲存,但不會生效。" }, "managerCard": { "refresh": "重新整理", @@ -1913,169 +1913,169 @@ "filter": "篩選..." }, "sync": { - "server": "Termix server", + "server": "Termix 伺服器", "account": "帳號", "status": "狀態", "never": "從未", "justNow": "剛剛", - "minutesAgo_one": "{{count}} minute ago", + "minutesAgo_one": "{{count}} 分鐘前", "minutesAgo_other": "{{count}} minutes ago", "hoursAgo_one": "{{count}} hour ago", - "hoursAgo_other": "{{count}} hours ago", - "actionFailed": "That did not work. Try again.", - "unlinkedTitle": "This device only", - "unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.", - "unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.", - "unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.", - "unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.", - "linkButton": "Link to a server", + "hoursAgo_other": "{{count}} 小時前", + "actionFailed": "這樣做行不通,請再試一次。", + "unlinkedTitle": "此設備僅", + "unlinkedBody": "Termix 在此裝置上可以獨立運作。將其連接到您的 Termix 伺服器,以確保所有功能同步。", + "unlinkedPointHosts": "您的主機名稱、憑證、程式碼片段和設定會跟隨您到每台裝置。", + "unlinkedPointOffline": "即使無法連接到伺服器,所有功能仍然正常運作,稍後會恢復正常。", + "unlinkedPointAccount": "您可以使用伺服器帳戶登錄,其他人與您共享的主機也會顯示在這裡。", + "linkButton": "連結到伺服器", "state": { - "syncing": "Syncing", - "offline": "Server not reachable", - "error": "Sync stopped", - "signedOut": "Signed out", - "synced": "Synced {{time}}" + "syncing": "同步", + "offline": "伺服器無法連接", + "error": "同步已停止", + "signedOut": "已登出登入", + "synced": "已同步 {{time}}" }, - "pending_one": "{{count}} change waiting to sync", - "pending_other": "{{count}} changes waiting to sync", - "signInAgain": "Sign in again", - "syncNow": "Sync now", - "unlink": "Unlink", - "unlinked": "This device is no longer linked", - "unlinkTitle": "Unlink this device?", - "unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.", - "unlinkKeepTitle": "Keep my data here", - "unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.", - "unlinkRemoveTitle": "Remove synced data", - "unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.", - "conflictsTitle": "Conflicts", - "conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.", - "keepMine": "Keep mine", - "keepServer": "Keep server", - "errorsTitle": "Not synced", - "errorsDescription": "The server did not accept these changes. They stay on this device.", - "errorPermission": "Your account on the server is not allowed to make this change.", - "retry": "Try again", - "whatSyncs": "What syncs", - "whatSyncsDescription": "Turn off anything you want to keep on this device only.", + "pending_one": "{{count}} 更改等待同步", + "pending_other": "{{count}} 等待同步的更改", + "signInAgain": "再次登入", + "syncNow": "立即同步", + "unlink": "取消連結", + "unlinked": "此設備已斷開連接", + "unlinkTitle": "取消此設備的關聯?", + "unlinkDescription": "它會停止同步並從伺服器登出。無論如何,其他人與您共享的主機都會從此裝置中刪除。", + "unlinkKeepTitle": "請將我的資料保存在此處", + "unlinkKeepBody": "您的主機、憑證和設定將保留在此裝置上,並繼續自動運作。", + "unlinkRemoveTitle": "刪除已同步的數據", + "unlinkRemoveBody": "所有來自伺服器的內容都會從此設備中刪除。只有保留在此裝置上的主機檔案才會被移除。", + "conflictsTitle": "衝突", + "conflictsDescription": "這些資訊已在此處和伺服器上同時變更。伺服器版本正在使用中。請保留您自己的版本,以便將其發送到伺服器。", + "keepMine": "留著我的", + "keepServer": "保持伺服器", + "errorsTitle": "未同步", + "errorsDescription": "伺服器未接受這些變更。這些變更將保留在此裝置上。", + "errorPermission": "您的伺服器帳戶沒有權限進行此變更。", + "retry": "再試一次", + "whatSyncs": "同步什麼", + "whatSyncsDescription": "關閉所有你只想保留在這個裝置上的功能。", "coreGroup": "Termix", - "notOnServer": "The server does not have this", - "notOnDevice": "Not on this device yet", - "localOnlyHint": "You can also keep single hosts or folders on this device from their settings.", - "originTitle": "Where connections start", - "originDescription": "Connect to hosts from this device, or through the server. You can change this per host.", - "originLocal": "This device", - "originRemote": "The server", + "notOnServer": "伺服器沒有這個功能", + "notOnDevice": "此設備上尚未安裝。", + "localOnlyHint": "您也可以透過設定將單一主機或資料夾保留在此裝置上。", + "originTitle": "連結的起點", + "originDescription": "可從此設備或透過伺服器連接到主機。您可以為每個主機單獨變更此設定。", + "originLocal": "這個設備", + "originRemote": "伺服器", "entities": { "hosts": "主機", "sshCredentials": "憑證", "sshFolders": "資料夾", - "userPreferences": "Preferences", - "pluginUserSettings": "Feature settings", - "sharedHosts": "Hosts shared with you", - "sharedCredentials": "Credentials shared with you", - "vaultProfiles": "Vault profiles", - "snippetFolders": "Snippet folders", + "userPreferences": "偏好", + "pluginUserSettings": "功能設定", + "sharedHosts": "房東與您分享", + "sharedCredentials": "已與您共享憑證", + "vaultProfiles": "Vault 個人資料", + "snippetFolders": "程式碼片段資料夾", "snippets": "指令片段", - "dashboardServiceLinks": "Service links", - "homepageItems": "Homepage items", - "networkTopology": "Network map", - "workspaces": "Workspaces" + "dashboardServiceLinks": "服務連結", + "homepageItems": "首頁項目", + "networkTopology": "網路圖", + "workspaces": "工作區" }, "proxy": { - "title": "Reverse proxy", - "description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.", - "headersTitle": "Extra headers", - "headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.", - "headerName": "Header name", - "headerValue": "Value", - "savedValue": "Saved, type to change", - "addHeader": "Add header", - "removeHeader": "Remove header", - "basicAuthTitle": "Username and password", - "basicAuthHint": "For a proxy that asks for a username and password before Termix.", + "title": "反向代理", + "description": "只有當 Cloudflare Access 或登入頁面之類的服務位於您的伺服器前端時才需要這樣做。", + "headersTitle": "額外標題", + "headersHint": "每次向伺服器發送請求時都會發送此訊息,例如 Cloudflare 存取服務令牌。", + "headerName": "標題名稱", + "headerValue": "價值", + "savedValue": "已儲存,輸入以更改", + "addHeader": "新增標題", + "removeHeader": "移除標題", + "basicAuthTitle": "使用者名稱和密碼", + "basicAuthHint": "對於一個在連接 Termix 之前會要求輸入使用者名稱和密碼的代理伺服器。", "username": "使用者名稱", "password": "密碼", - "allowInvalidCertificate": "Trust a self-signed certificate", - "allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.", + "allowInvalidCertificate": "信任自簽名憑證", + "allowInvalidCertificateHint": "僅適用於您自己的伺服器,且該伺服器的憑證並非來自已知憑證授權單位。", "saved": "已儲存" }, "problems": { - "invalidUrl": "That does not look like a web address.", - "unreachable": "Could not reach the server. Check the address and that the server is running.", - "unreachableWithReason": "Could not reach the server: {{reason}}", - "tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.", - "basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.", - "proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.", - "notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.", - "versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.", - "differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first." + "invalidUrl": "這看起來不像個網址。", + "unreachable": "無法連接到伺服器。請檢查地址並確認伺服器是否正在運行。", + "unreachableWithReason": "無法連線到伺服器: {{reason}}", + "tlsUntrusted": "伺服器憑證不受信任。如果這是您自己的伺服器,並且使用的是自簽名證書,請啟用以下選項。", + "basicAuthRequired": "伺服器端會提示輸入使用者名稱和密碼。請在下方輸入。", + "proxyLogin": "回應的不是 Termix,而是登入頁面或代理。請在下方新增所需的標頭,或檢查地址。", + "notTermix": "該位址上沒有 Termix 伺服器。如果它運行在某個路徑下,請包含該路徑,例如 https://example.com/termix。", + "versionMismatch": "該伺服器運行的是較舊的Termix版本。請將其更新至2.9或更高版本以進行連接。", + "differentAccount": "您登入的是其他帳號。請先登入此裝置關聯的帳戶,或先取消關聯。" }, "wizard": { - "title": "Link to a Termix server", - "reloginTitle": "Sign in again", - "savedServers": "Recent servers", - "removeServer": "Remove from the list", - "serverDescription": "Enter the address you use to open Termix in your browser.", - "signinDescription": "Sign in to {{url}}", - "chooseDescription": "This device already has data. What should happen to it?", - "finishingDescription": "Linking this device.", - "serverUrl": "Server address", - "serverUrlHint": "For example https://termix.example.com", - "showProxySettings": "Reverse proxy settings", - "hideProxySettings": "Hide reverse proxy settings", + "title": "連結到 Termix 伺服器", + "reloginTitle": "再次登入", + "savedServers": "最近伺服器", + "removeServer": "從清單中刪除", + "serverDescription": "輸入您在瀏覽器中開啟Termix時所使用的位址。", + "signinDescription": "登入 {{url}}", + "chooseDescription": "這個設備裡已經有數據了,該怎麼處理?", + "finishingDescription": "正在連接此裝置。", + "serverUrl": "伺服器位址", + "serverUrlHint": "例如 https://termix.example.com", + "showProxySettings": "反向代理設定", + "hideProxySettings": "隱藏反向代理設置", "continue": "繼續", "back": "返回", - "mergeTitle": "Add it to my account", - "mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.", - "replaceTitle": "Replace it with my account", - "replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.", - "link": "Link", - "linking": "Linking and running the first sync...", - "linked": "Linked. Your data is syncing now.", - "signedInAgain": "Signed in. Sync is running again." + "mergeTitle": "新增到我的帳戶", + "mergeBody": "此裝置上的 {{count}} 物品將會新增至您的帳戶。您帳戶中已有的物品將保留在伺服器上。", + "replaceTitle": "替換成我的帳戶", + "replaceBody": "此裝置上的所有 {{count}} 項目將被移除,此裝置將清除您帳戶中的所有資料。僅保留在此裝置上的主機。", + "link": "關聯", + "linking": "正在鏈接並運行首次同步…", + "linked": "已連線。您的資料正在同步。", + "signedInAgain": "已登入。同步正在重新運行。" } }, "hostDefaults": { "source": { - "folder": "Folder {{name}}", - "user": "My defaults", - "admin": "Server", - "builtin": "Built-in" + "folder": "資料夾 {{name}}", + "user": "我的預設設定", + "admin": "伺服器", + "builtin": "內建" }, "custom": "自訂", - "setHere": "Set here", - "notSet": "Not set", - "notSetTitle": "No default is set for this", - "resetTitle": "This host sets its own value. Click to use the default from {{source}} again", - "clearTitle": "Set at this level. Click to clear it and use {{source}} instead", - "inheritedTitle": "Follows the default from {{source}}", - "titleAdmin": "Server host defaults", - "titleUser": "My host defaults", - "titleFolder": "Folder defaults: {{name}}", - "descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.", - "save": "Save defaults", - "saved_one": "Defaults saved. {{count}} host was updated.", - "saved_other": "Defaults saved. {{count}} hosts were updated.", - "savedInBackground": "Defaults saved. Hosts are being updated in the background.", - "appliedToHosts_one": "{{count}} host was updated with the new defaults.", - "appliedToHosts_other": "{{count}} hosts were updated with the new defaults.", - "saveFailed": "Could not save the defaults", - "loadFailed": "Could not load the defaults", - "confirmTitle": "Save defaults?", - "confirmChanges_one": "{{count}} host follows these defaults and will change.", - "confirmChanges_other": "{{count}} hosts follow these defaults and will change.", - "confirmNoChanges": "No existing host changes. New hosts will start with these defaults.", - "menuMyDefaults": "My host defaults", - "folderDefaultsAction": "Folder defaults", - "adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.", - "editServerDefaults": "Edit server defaults", + "setHere": "設定在此處", + "notSet": "未設定", + "notSetTitle": "此項未設定預設值。", + "resetTitle": "此主機設定了自己的值。點選即可再次使用 {{source}} 中的預設值。", + "clearTitle": "設定為此等級。點選清除,然後改用 {{source}}", + "inheritedTitle": "遵循 {{source}} 的預設值", + "titleAdmin": "伺服器主機預設設定", + "titleUser": "我的主機預設設定", + "titleFolder": "資料夾預設值: {{name}}", + "descriptionAdmin": "此伺服器上每個主機的預設值。使用者自己的預設值、資料夾的預設值或主機本身仍然可以設定不同的值。在此處變更欄位即可設定預設值,或將其清除以保持未設定狀態。", + "descriptionUser": "此處的預設值適用於所有主機,高於伺服器的預設值。資料夾或主機本身仍然可以設定不同的值。若要在此處設定值,請變更欄位;若要保持未設定狀態,請清除欄位。", + "descriptionFolder": "此資料夾及其子資料夾中所有主機的預設設定將覆蓋您自己的設定。主機仍然可以設定不同的值。若要在此處設定預設值,請修改欄位;若要保持未設定狀態,請清除欄位。", + "save": "儲存預設設定", + "saved_one": "預設設定已儲存。 {{count}} 主機已更新。", + "saved_other": "預設設定已儲存。 {{count}} 主機已更新。", + "savedInBackground": "預設設定已儲存。主機資訊正在後台更新。", + "appliedToHosts_one": "{{count}} 主機已更新為新的預設值。", + "appliedToHosts_other": "{{count}} 主機已更新為新的預設值。", + "saveFailed": "無法儲存預設設定。", + "loadFailed": "無法載入預設設定。", + "confirmTitle": "儲存預設設定?", + "confirmChanges_one": "{{count}} 主機遵循這些預設值,並且會發生變化。", + "confirmChanges_other": "{{count}} 主機遵循這些預設值,並且會發生變化。", + "confirmNoChanges": "現有主機配置無變更。新主機將使用這些預設配置。", + "menuMyDefaults": "我的主機預設設定", + "folderDefaultsAction": "資料夾預設值", + "adminSectionDescription": "設定此伺服器上所有主機都遵循的預設值,包括主機的所有設定以及各項功能的設定。使用者和資料夾可以在此基礎上設定自己的預設值,任何主機仍然可以使用自己的預設值。", + "editServerDefaults": "編輯伺服器預設設定", "resetMenu": "重設", - "resetAll": "Everything to defaults", - "resetCore": "Connection and SSH to defaults", - "resetDone_one": "{{count}} host now follows its defaults.", - "resetDone_other": "{{count}} hosts now follow their defaults." + "resetAll": "所有設定恢復預設值", + "resetCore": "連接到預設設定並使用 SSH", + "resetDone_one": "{{count}} 主機現在遵循其預設設定。", + "resetDone_other": "{{count}} 主機現在遵循其預設設定。" } }