chore: sync Crowdin translations

This commit is contained in:
LukeGus committed 2026-10-02 06:39:59 +00:00
1 parent 28e74de452
commit 307667ce0f
560 files changed
+46398 -46398

No files matched your search

+32 -32
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "ACME সার্টিফিকেটগুলি পরিচালনা করুন",
"description": "See the certificate status and request a new certificate now." "description": "সার্টিফিকেটের অবস্থা দেখুন এবং এখনই একটি নতুন সার্টিফিকেটের জন্য অনুরোধ করুন।"
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "স্বয়ংক্রিয়ভাবে নবায়ন করুন",
"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." "description": "দিনে দুইবার পরীক্ষা করুন এবং যখন কোনো সার্টিফিকেট থাকবে না, সেটি ডোমেইনকে কভার করবে না, অথবা ৩০ দিনের মধ্যে এর মেয়াদ শেষ হয়ে যাবে, তখন একটি নতুন সার্টিফিকেট সংগ্রহ করুন।"
}, },
"domain": { "domain": {
"label": "Domain", "label": "ডোমেইন",
"description": "The public domain name for the certificate.", "description": "সার্টিফিকেটটির পাবলিক ডোমেইন নাম।",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "ইমেল",
"description": "Contact email for the ACME account and expiry notices.", "description": "ACME অ্যাকাউন্ট এবং মেয়াদ শেষ হওয়ার বিজ্ঞপ্তির জন্য যোগাযোগের ইমেল।",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "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", "letsencrypt": "আসুন এনক্রিপ্ট করি",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "লেটস এনক্রিপ্ট (স্টেজিং)",
"custom": "Custom ACME directory" "custom": "কাস্টম ACME ডিরেক্টরি"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME ডিরেক্টরি URL",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "শুধুমাত্র কাস্টম সার্টিফিকেট অথরিটির জন্য। অবশ্যই একটি https URL হতে হবে।"
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "চ্যালেঞ্জের ধরণ",
"description": "How to prove you own the domain.", "description": "ডোমেইনটির মালিকানা কীভাবে প্রমাণ করবেন।",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - এর জন্য ইন্টারনেট থেকে পোর্ট ৮০ অ্যাক্সেসযোগ্য হতে হবে।",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "ডিএনএস (ক্লাউডফ্লেয়ার) - একটি ক্লাউডফ্লেয়ার এপিআই টোকেন প্রয়োজন"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "ক্লাউডফ্লেয়ার এপিআই টোকেন",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "আপনার ডোমেনের জন্য Zone:DNS:Edit অনুমতিসহ স্কোপড টোকেন।"
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "সার্টিফিকেটের অবস্থা",
"none": "No certificate", "none": "কোন সার্টিফিকেট নেই",
"names": "Covers {{names}}", "names": "{{names}} কভার করে",
"issuer": "Issued by {{issuer}}", "issuer": "{{issuer}} দ্বারা জারি করা হয়েছে",
"expires": "Expires {{date}}", "expires": "মেয়াদ শেষ হবে {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "সর্বশেষ প্রকাশিত {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "শেষ চেষ্টা ব্যর্থ: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "সার্টিফিকেটের জন্য অনুরোধ করার আগে, ডোমেইন, ইমেল এবং আপনার চ্যালেঞ্জ টাইপের জন্য প্রয়োজনীয় ফিল্ডগুলো সেট করুন, তারপর সেভ করুন।",
"request": "Request certificate now", "request": "এখনই সার্টিফিকেটের জন্য অনুরোধ করুন",
"requesting": "Requesting certificate...", "requesting": "সার্টিফিকেটের জন্য অনুরোধ...",
"issued": "Certificate issued and installed" "issued": "সার্টিফিকেট ইস্যু এবং ইনস্টল করা হয়েছে"
} }
} }
+23 -23
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "ACME प्रमाणपत्रों का प्रबंधन करें",
"description": "See the certificate status and request a new certificate now." "description": "प्रमाणपत्र की स्थिति देखें और अभी नए प्रमाणपत्र के लिए अनुरोध करें।"
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "स्वचालित रूप से नवीनीकरण करें",
"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." "description": "दिन में दो बार जांच करें और यदि कोई प्रमाणपत्र मौजूद नहीं है, या वह डोमेन को कवर नहीं करता है, या 30 दिनों के भीतर समाप्त हो रहा है, तो नया प्रमाणपत्र प्राप्त करें।"
}, },
"domain": { "domain": {
"label": "डोमेन", "label": "डोमेन",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "ईमेल", "label": "ईमेल",
"description": "Contact email for the ACME account and expiry notices.", "description": "ACME खाते और समाप्ति सूचनाओं के लिए संपर्क ईमेल पता।",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "प्रमाणपत्र प्राधिकरण", "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", "letsencrypt": "आइए एन्क्रिप्ट करें",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "लेट्स एनक्रिप्ट (चरणबद्ध)",
"custom": "Custom ACME directory" "custom": "कस्टम एसीएमई निर्देशिका"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME निर्देशिका URL",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "केवल कस्टम सर्टिफिकेट अथॉरिटी के लिए। यूआरएल HTTPS होना चाहिए।"
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "चुनौती का प्रकार",
"description": "How to prove you own the domain.", "description": "आप डोमेन के मालिक होने का प्रमाण कैसे दे सकते हैं?",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - इसके लिए इंटरनेट से पोर्ट 80 तक पहुंच आवश्यक है।",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - इसके लिए Cloudflare API टोकन की आवश्यकता होती है।"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "क्लाउडफ्लेयर एपीआई टोकन",
"description": "आपके डोमेन के लिए Zone:DNS:Edit अनुमति वाला स्कोप्ड टोकन।" "description": "आपके डोमेन के लिए Zone:DNS:Edit अनुमति वाला स्कोप्ड टोकन।"
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "प्रमाणपत्र की स्थिति",
"none": "कोई प्रमाणपत्र नहीं", "none": "कोई प्रमाणपत्र नहीं",
"names": "Covers {{names}}", "names": "कवर {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "{{issuer}} द्वारा जारी किया गया",
"expires": "{{date}} को समाप्त होगा", "expires": "{{date}} को समाप्त होगा",
"lastIssued": "अंतिम जारी: {{date}}", "lastIssued": "अंतिम जारी: {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "अंतिम प्रयास विफल रहा: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "डोमेन, ईमेल और आपके चैलेंज टाइप के लिए आवश्यक फ़ील्ड सेट करें, फिर प्रमाणपत्र का अनुरोध करने से पहले सेव करें।",
"request": "Request certificate now", "request": "अभी प्रमाणपत्र का अनुरोध करें",
"requesting": "प्रमाणपत्र अनुरोध किया जा रहा है...", "requesting": "प्रमाणपत्र अनुरोध किया जा रहा है...",
"issued": "Certificate issued and installed" "issued": "प्रमाणपत्र जारी और स्थापित किया गया"
} }
} }
+31 -31
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Kelola sertifikat ACME",
"description": "See the certificate status and request a new certificate now." "description": "Lihat status sertifikat dan ajukan permohonan sertifikat baru sekarang."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Perpanjang secara otomatis",
"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." "description": "Periksa dua kali sehari dan dapatkan sertifikat baru jika tidak ada, tidak mencakup domain, atau akan kedaluwarsa dalam 30 hari."
}, },
"domain": { "domain": {
"label": "Domain", "label": "Domain",
"description": "The public domain name for the certificate.", "description": "Nama domain publik untuk sertifikat tersebut.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "E-mail",
"description": "Contact email for the ACME account and expiry notices.", "description": "Alamat email kontak untuk akun ACME dan pemberitahuan masa berlaku.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "label": "Lembaga sertifikasi",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "description": "Di mana mendapatkan sertifikat? Gunakan staging untuk pengujian tanpa melampaui batas kuota Let's Encrypt.",
"letsencrypt": "Let's Encrypt", "letsencrypt": "Mari Enkripsi",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (pementasan)",
"custom": "Custom ACME directory" "custom": "Direktori ACME khusus"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL direktori ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Hanya untuk otoritas sertifikat khusus. Harus berupa URL https."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Jenis tantangan",
"description": "How to prove you own the domain.", "description": "Bagaimana cara membuktikan bahwa Anda pemilik domain tersebut.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - memerlukan port 80 yang dapat diakses dari internet.",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - memerlukan token API Cloudflare"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Token API Cloudflare",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Token terlingkup dengan izin Zone:DNS:Edit untuk domain Anda."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Status sertifikat",
"none": "No certificate", "none": "Tidak ada sertifikat",
"names": "Covers {{names}}", "names": "Sampul {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Dikeluarkan oleh {{issuer}}",
"expires": "Expires {{date}}", "expires": "Berakhir {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Terakhir diterbitkan {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Upaya terakhir gagal: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Atur domain, email, dan kolom yang dibutuhkan oleh tipe tantangan Anda, lalu simpan, sebelum meminta sertifikat.",
"request": "Request certificate now", "request": "Ajukan sertifikat sekarang",
"requesting": "Requesting certificate...", "requesting": "Meminta sertifikat...",
"issued": "Certificate issued and installed" "issued": "Sertifikat telah diterbitkan dan dipasang."
} }
} }
+31 -31
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Administrer ACME-sertifikater",
"description": "See the certificate status and request a new certificate now." "description": "Se sertifikatstatusen og be om et nytt sertifikat nå."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Forny automatisk",
"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." "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": { "domain": {
"label": "Domain", "label": "Domene",
"description": "The public domain name for the certificate.", "description": "Det offentlige domenenavnet for sertifikatet.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "E-post", "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" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "label": "Sertifikatmyndighet",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "description": "Hvor får man tak i sertifikatet? Bruk staging for å teste uten å nå hastighetsgrensene til Let's Encrypt.",
"letsencrypt": "Let's Encrypt", "letsencrypt": "La oss kryptere",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "La oss kryptere (staging)",
"custom": "Custom ACME directory" "custom": "Tilpasset ACME-katalog"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL-adressen til ACME-katalogen",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Kun for en tilpasset sertifiseringsinstans. Må være en https-URL."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Utfordringstype",
"description": "How to prove you own the domain.", "description": "Hvordan bevise at du eier domenet.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - trenger port 80 som kan nås fra internett",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) – trenger et Cloudflare API-token"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Cloudflare API-token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Scope-token med Zone:DNS:Rediger-tillatelse for domenet ditt."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Sertifikatstatus",
"none": "No certificate", "none": "Ingen sertifikat",
"names": "Covers {{names}}", "names": "Omslag {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Utstedt av {{issuer}}",
"expires": "Expires {{date}}", "expires": "Utløper {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Sist utstedt {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Siste forsøk mislyktes: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Angi domenet, e-postadressen og feltene utfordringstypen din trenger, og lagre deretter før du ber om et sertifikat.",
"request": "Request certificate now", "request": "Be om sertifikat nå",
"requesting": "Requesting certificate...", "requesting": "Ber om sertifikat...",
"issued": "Certificate issued and installed" "issued": "Sertifikat utstedt og installert"
} }
} }
+23 -23
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Zarządzaj certyfikatami ACME",
"description": "See the certificate status and request a new certificate now." "description": "Sprawdź status certyfikatu i poproś o nowy certyfikat już teraz."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Odnów automatycznie",
"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." "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": { "domain": {
"label": "Domena", "label": "Domena",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "E-mail", "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" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Urząd certyfikacji (CA)", "label": "Urząd certyfikacji (CA)",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "description": "Gdzie uzyskać certyfikat? Użyj środowiska testowego do testowania bez przekraczania limitów przepustowości Let's Encrypt.",
"letsencrypt": "Let's Encrypt", "letsencrypt": "Szyfrujmy",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (etap przygotowawczy)",
"custom": "Custom ACME directory" "custom": "Niestandardowy katalog ACME"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "Adres URL katalogu ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Tylko dla niestandardowego urzędu certyfikacji. Adres URL musi być w formacie https."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Typ wyzwania",
"description": "How to prove you own the domain.", "description": "Jak udowodnić, że jesteś właścicielem domeny.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - wymaga dostępu do portu 80 z Internetu",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) – wymaga tokenu API Cloudflare"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Token API Cloudflare",
"description": "Token zakresowy z uprawnieniem Zone:DNS:Edit dla Twojej domeny." "description": "Token zakresowy z uprawnieniem Zone:DNS:Edit dla Twojej domeny."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Status certyfikatu",
"none": "Brak certyfikatu", "none": "Brak certyfikatu",
"names": "Covers {{names}}", "names": "Obejmuje {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Wydane przez {{issuer}}",
"expires": "Wygasa {{date}}", "expires": "Wygasa {{date}}",
"lastIssued": "Ostatnio wystawiono {{date}}", "lastIssued": "Ostatnio wystawiono {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Ostatnia próba nieudana: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Ustaw domenę, adres e-mail i pola, których wymaga Twój typ wyzwania, a następnie zapisz, zanim poprosisz o certyfikat.",
"request": "Request certificate now", "request": "Złóż wniosek o certyfikat już teraz",
"requesting": "Żądanie certyfikatu...", "requesting": "Żądanie certyfikatu...",
"issued": "Certificate issued and installed" "issued": "Certyfikat wydany i zainstalowany"
} }
} }
+32 -32
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Gerenciar certificados ACME",
"description": "See the certificate status and request a new certificate now." "description": "Veja o status do certificado e solicite um novo agora mesmo."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Renovar automaticamente",
"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." "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": { "domain": {
"label": "Domain", "label": "Domínio",
"description": "The public domain name for the certificate.", "description": "O nome de domínio público do certificado.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "E-mail",
"description": "Contact email for the ACME account and expiry notices.", "description": "E-mail de contato para a conta ACME e avisos de vencimento.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "label": "Autoridade certificadora",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "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": "Let's Encrypt", "letsencrypt": "Vamos criptografar",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (em fase de testes)",
"custom": "Custom ACME directory" "custom": "Diretório ACME personalizado"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL do diretório ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Somente para uma autoridade de certificação personalizada. Deve ser um URL https."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Tipo de desafio",
"description": "How to prove you own the domain.", "description": "Como comprovar que você é o proprietário do domínio.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - requer que a porta 80 esteja acessível pela internet.",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - requer um token de API do Cloudflare"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Token da API Cloudflare",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Token com escopo definido e permissão Zone:DNS:Edit para o seu domínio."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Status do certificado",
"none": "No certificate", "none": "Sem certificado",
"names": "Covers {{names}}", "names": "Capas {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Emitido por {{issuer}}",
"expires": "Expires {{date}}", "expires": "Expira em {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Última edição {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Última tentativa falhou: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "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": "Request certificate now", "request": "Solicite o certificado agora",
"requesting": "Requesting certificate...", "requesting": "Solicitar certificado...",
"issued": "Certificate issued and installed" "issued": "Certificado emitido e instalado."
} }
} }
+23 -23
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Gerir certificados ACME",
"description": "See the certificate status and request a new certificate now." "description": "Veja o estado do certificado e solicite um novo agora mesmo."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Renovar automaticamente",
"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." "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": { "domain": {
"label": "Domínio", "label": "Domínio",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "E-mail", "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" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Autoridade de certificação", "label": "Autoridade de certificação",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "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": "Let's Encrypt", "letsencrypt": "Vamos encriptar",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (em fase de testes)",
"custom": "Custom ACME directory" "custom": "Diretório ACME personalizado"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL do diretório ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Apenas para uma autoridade de certificação personalizada. Deve ser um URL https."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Tipo de desafio",
"description": "How to prove you own the domain.", "description": "Como comprovar que é o proprietário do domínio.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - requer que a porta 80 esteja acessível através da internet.",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - requer um token API do Cloudflare"
}, },
"cloudflareToken": { "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." "description": "Token com âmbito e permissão Zone:DNS:Edit para o seu domínio."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Estado do certificado",
"none": "Sem certificado", "none": "Sem certificado",
"names": "Covers {{names}}", "names": "Capas {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Emitido por {{issuer}}",
"expires": "Expira a {{date}}", "expires": "Expira a {{date}}",
"lastIssued": "Última emissão a {{date}}", "lastIssued": "Última emissão a {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Última tentativa falhada: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "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": "Request certificate now", "request": "Solicite já o certificado",
"requesting": "A solicitar certificado...", "requesting": "A solicitar certificado...",
"issued": "Certificate issued and installed" "issued": "Certificado emitido e instalado."
} }
} }
+22 -22
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Управление сертификатами ACME",
"description": "See the certificate status and request a new certificate now." "description": "Проверьте статус сертификата и запросите новый сертификат прямо сейчас."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Автоматическое продление",
"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." "description": "Проверяйте дважды в день и получайте новый сертификат, если его нет, если он не покрывает домен или если срок действия старого истекает в течение 30 дней."
}, },
"domain": { "domain": {
"label": "Домен", "label": "Домен",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "Email", "label": "Email",
"description": "Contact email for the ACME account and expiry notices.", "description": "Адрес электронной почты, указанный в учетной записи ACME, для получения уведомлений об истечении срока действия.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Центр сертификации", "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", "letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (тестовая версия)",
"custom": "Custom ACME directory" "custom": "Пользовательский каталог ACME"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL-адрес каталога ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Только для пользовательского центра сертификации. URL-адрес должен быть HTTPS."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Тип задачи",
"description": "How to prove you own the domain.", "description": "Как доказать, что вы являетесь владельцем домена.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP — требуется доступ к порту 80 из интернета.",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) — требуется токен API Cloudflare."
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "API-токен Cloudflare",
"description": "Токен с ограниченной областью действия и разрешением Zone:DNS:Edit для вашего домена." "description": "Токен с ограниченной областью действия и разрешением Zone:DNS:Edit для вашего домена."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Статус сертификата",
"none": "Сертификат отсутствует", "none": "Сертификат отсутствует",
"names": "Covers {{names}}", "names": "Обложки {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Выпущено {{issuer}}",
"expires": "Истекает {{date}}", "expires": "Истекает {{date}}",
"lastIssued": "Последний выпуск {{date}}", "lastIssued": "Последний выпуск {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Последняя попытка не удалась: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Укажите домен, адрес электронной почты и поля, необходимые для типа проверки подлинности, затем сохраните изменения, прежде чем запрашивать сертификат.",
"request": "Request certificate now", "request": "Запросить сертификат сейчас",
"requesting": "Запрос сертификата...", "requesting": "Запрос сертификата...",
"issued": "Certificate issued and installed" "issued": "Сертификат выдан и установлен."
} }
} }
+32 -32
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Управљање ACME сертификатима",
"description": "See the certificate status and request a new certificate now." "description": "Погледајте статус сертификата и одмах затражите нови сертификат."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Аутоматски обнови",
"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." "description": "Проверавајте два пута дневно и набавите нови сертификат када га нема, када не покрива домен или када истиче у року од 30 дана."
}, },
"domain": { "domain": {
"label": "Domain", "label": "Домен",
"description": "The public domain name for the certificate.", "description": "Јавно име домена за сертификат.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "Е-пошта",
"description": "Contact email for the ACME account and expiry notices.", "description": "Контакт имејл за ACME налог и обавештења о истеку.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "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", "letsencrypt": "Хајде да шифрујемо",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Хајде да шифрујемо (припрема)",
"custom": "Custom ACME directory" "custom": "Прилагођени ACME директоријум"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL ACME директоријума",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Само за прилагођени ауторитет за сертификате. Мора бити https URL."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Тип изазова",
"description": "How to prove you own the domain.", "description": "Како доказати да сте власник домена.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - потребан је порт 80 доступан са интернета",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - потребан је Cloudflare API токен"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Клаудфлејр АПИ токен",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Ограничени токен са дозволом Zone:DNS:Edit за ваш домен."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Статус сертификата",
"none": "No certificate", "none": "Без сертификата",
"names": "Covers {{names}}", "names": "Навлаке {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Издао/ла {{issuer}}",
"expires": "Expires {{date}}", "expires": "Истиче {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Последње издање {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Последњи покушај није успео: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Подесите домен, имејл адресу и поља која су потребна вашем типу изазова, а затим сачувајте подешавања пре него што затражите сертификат.",
"request": "Request certificate now", "request": "Затражите сертификат сада",
"requesting": "Requesting certificate...", "requesting": "Захтева се сертификат...",
"issued": "Certificate issued and installed" "issued": "Сертификат издат и инсталиран"
} }
} }
+32 -32
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Hantera ACME-certifikat",
"description": "See the certificate status and request a new certificate now." "description": "Se certifikatets status och begär ett nytt certifikat nu."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Förnya automatiskt",
"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." "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": { "domain": {
"label": "Domain", "label": "Domän",
"description": "The public domain name for the certificate.", "description": "Det offentliga domännamnet för certifikatet.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "E-post",
"description": "Contact email for the ACME account and expiry notices.", "description": "Kontakta e-postadressen för ACME-kontot och meddelanden om utgångsdatum.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "label": "Certifikatutfärdare",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "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": "Let's Encrypt", "letsencrypt": "Låt oss kryptera",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Låt oss kryptera (staging)",
"custom": "Custom ACME directory" "custom": "Anpassad ACME-katalog"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME-katalogens URL",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Endast för en anpassad certifikatutfärdare. Måste vara en https-URL."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Utmaningstyp",
"description": "How to prove you own the domain.", "description": "Hur man bevisar att man äger domänen.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - behöver port 80 som kan nås från internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - behöver en Cloudflare API-token"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Cloudflare API-token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Scoped-token med Zone:DNS:Edit-behörighet för din domän."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Certifikatstatus",
"none": "No certificate", "none": "Inget certifikat",
"names": "Covers {{names}}", "names": "Omslag {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Utfärdad av {{issuer}}",
"expires": "Expires {{date}}", "expires": "Utgångsdatum {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Senast utfärdad {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Senaste försöket misslyckades: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Ange domän, e-postadress och de fält som din utmaningstyp behöver, spara sedan innan du begär ett certifikat.",
"request": "Request certificate now", "request": "Begär certifikat nu",
"requesting": "Requesting certificate...", "requesting": "Begär certifikat...",
"issued": "Certificate issued and installed" "issued": "Certifikat utfärdat och installerat"
} }
} }
+33 -33
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "จัดการใบรับรอง ACME",
"description": "See the certificate status and request a new certificate now." "description": "ตรวจสอบสถานะใบรับรองและขอใบรับรองใหม่ได้เลยตอนนี้"
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "ต่ออายุอัตโนมัติ",
"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." "description": "ตรวจสอบวันละสองครั้ง และขอใบรับรองใหม่เมื่อไม่มีใบรับรอง หากใบรับรองไม่ครอบคลุมโดเมน หรือหากใบรับรองหมดอายุภายใน 30 วัน"
}, },
"domain": { "domain": {
"label": "Domain", "label": "โดเมน",
"description": "The public domain name for the certificate.", "description": "ชื่อโดเมนสาธารณะสำหรับใบรับรอง",
"placeholder": "termix.example.com" "placeholder": "เทอร์มิกซ์.ตัวอย่าง.com"
}, },
"email": { "email": {
"label": "Email", "label": "อีเมล",
"description": "Contact email for the ACME account and expiry notices.", "description": "อีเมลสำหรับติดต่อเพื่อรับข้อมูลเกี่ยวกับบัญชี ACME และประกาศแจ้งเตือนวันหมดอายุ",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "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", "letsencrypt": "เลทส์ เอนคริปท์",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (รุ่นทดสอบ)",
"custom": "Custom ACME directory" "custom": "ไดเร็กทอรี ACME แบบกำหนดเอง"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL ของไดเร็กทอรี ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "ใช้ได้เฉพาะกับหน่วยงานออกใบรับรองที่กำหนดเองเท่านั้น ต้องเป็น URL ที่ใช้ HTTPS"
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "ประเภทความท้าทาย",
"description": "How to prove you own the domain.", "description": "วิธีพิสูจน์ว่าคุณเป็นเจ้าของโดเมน",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - ต้องมีพอร์ต 80 ที่สามารถเข้าถึงได้จากอินเทอร์เน็ต",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - ต้องใช้โทเค็น API ของ Cloudflare"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "โทเค็น API ของ Cloudflare",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "โทเค็นแบบจำกัดขอบเขตพร้อมสิทธิ์ Zone:DNS:Edit สำหรับโดเมนของคุณ"
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "สถานะใบรับรอง",
"none": "No certificate", "none": "ไม่มีใบรับรอง",
"names": "Covers {{names}}", "names": "ปก {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "ออกโดย {{issuer}}",
"expires": "Expires {{date}}", "expires": "หมดอายุ {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "ออกครั้งล่าสุด {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "ความพยายามครั้งล่าสุดล้มเหลว: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "ตั้งค่าโดเมน อีเมล และข้อมูลที่จำเป็นสำหรับประเภทการตรวจสอบสิทธิ์ของคุณ จากนั้นบันทึกก่อนที่จะขอใบรับรอง",
"request": "Request certificate now", "request": "ขอใบรับรองตอนนี้",
"requesting": "Requesting certificate...", "requesting": "ขอใบรับรอง...",
"issued": "Certificate issued and installed" "issued": "ออกและติดตั้งใบรับรองแล้ว"
} }
} }
+22 -22
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "ACME sertifikalarını yönetin",
"description": "See the certificate status and request a new certificate now." "description": "Sertifika durumunu kontrol edin ve şimdi yeni bir sertifika talep edin."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Otomatik olarak yenile",
"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." "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": { "domain": {
"label": "Alan Adı", "label": "Alan Adı",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "E-posta", "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" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Sertifika yetkilisi", "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", "letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (test aşaması)",
"custom": "Custom ACME directory" "custom": "Özel ACME dizini"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME dizin URL'si",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Yalnızca özel sertifika yetkilisi için geçerlidir. HTTPS URL'si olmalıdır."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Meydan okuma türü",
"description": "How to prove you own the domain.", "description": "Alan adının size ait olduğunu nasıl kanıtlayabilirsiniz?",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - internetten erişilebilir 80 numaralı porta ihtiyaç duyar.",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - Cloudflare API belirteci gerektirir."
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Cloudflare API belirteci",
"description": "Alan adınız için Zone:DNS:Edit iznine sahip kapsamlı belirteç." "description": "Alan adınız için Zone:DNS:Edit iznine sahip kapsamlı belirteç."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Sertifika durumu",
"none": "Sertifika yok", "none": "Sertifika yok",
"names": "Covers {{names}}", "names": "Kapaklar {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "{{issuer}} tarafından yayınlandı",
"expires": "Son kullanma: {{date}}", "expires": "Son kullanma: {{date}}",
"lastIssued": "Son veriliş: {{date}}", "lastIssued": "Son veriliş: {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Son deneme başarısız oldu: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "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": "Request certificate now", "request": "Şimdi sertifika talep edin",
"requesting": "Sertifika isteniyor...", "requesting": "Sertifika isteniyor...",
"issued": "Certificate issued and installed" "issued": "Sertifika düzenlendi ve kuruldu."
} }
} }
+32 -32
View File
@@ -1,58 +1,58 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Керування сертифікатами ACME",
"description": "See the certificate status and request a new certificate now." "description": "Перегляньте статус сертифіката та запросіть новий сертифікат зараз."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Автоматичне поновлення",
"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." "description": "Перевіряйте двічі на день та отримуйте новий сертифікат, коли його немає, він не поширюється на домен або термін його дії закінчується протягом 30 днів."
}, },
"domain": { "domain": {
"label": "Domain", "label": "Домен",
"description": "The public domain name for the certificate.", "description": "Ім'я публічного домену для сертифіката.",
"placeholder": "termix.example.com" "placeholder": "termix.example.com"
}, },
"email": { "email": {
"label": "Email", "label": "Електронна пошта",
"description": "Contact email for the ACME account and expiry notices.", "description": "Контактна електронна адреса для облікового запису ACME та повідомлень про закінчення терміну дії.",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Certificate authority", "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", "letsencrypt": "Давайте зашифруємо",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Давайте зашифруємо (підготовка)",
"custom": "Custom ACME directory" "custom": "Користувацький каталог ACME"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL-адреса каталогу ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Тільки для власного центру сертифікації. Має бути URL-адреса https."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Тип виклику",
"description": "How to prove you own the domain.", "description": "Як довести, що ви є власником домену.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP – потрібен порт 80, доступний з Інтернету",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) – потрібен токен API Cloudflare"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Токен API Cloudflare",
"description": "Scoped token with Zone:DNS:Edit permission for your domain." "description": "Токен з обмеженою областю дії та дозволом Zone:DNS:Edit для вашого домену."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Статус сертифіката",
"none": "No certificate", "none": "Без сертифіката",
"names": "Covers {{names}}", "names": "Обкладинки {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Видано {{issuer}}",
"expires": "Expires {{date}}", "expires": "Термін дії закінчується {{date}}",
"lastIssued": "Last issued {{date}}", "lastIssued": "Останній виданий {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Остання спроба не вдалася: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "Вкажіть домен, електронну пошту та поля, необхідні для вашого типу завдання, а потім збережіть зміни, перш ніж запитувати сертифікат.",
"request": "Request certificate now", "request": "Замовити сертифікат зараз",
"requesting": "Requesting certificate...", "requesting": "Запит сертифіката...",
"issued": "Certificate issued and installed" "issued": "Сертифікат видано та встановлено"
} }
} }
+23 -23
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "Quản lý chứng chỉ ACME",
"description": "See the certificate status and request a new certificate now." "description": "Xem trạng thái chứng chỉ và yêu cầu chứng chỉ mới ngay bây giờ."
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "Tự động gia hạn",
"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." "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": { "domain": {
"label": "Tên miền", "label": "Tên miền",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "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" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "Cơ quan chứng thực", "label": "Cơ quan chứng thực",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.", "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": "Let's Encrypt", "letsencrypt": "Hãy mã hóa",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt (phiên bản thử nghiệm)",
"custom": "Custom ACME directory" "custom": "Danh mục ACME tùy chỉnh"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "URL thư mục ACME",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "Chỉ dành cho cơ quan cấp chứng chỉ tùy chỉnh. Phải là URL HTTPS."
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "Loại thử thách",
"description": "How to prove you own the domain.", "description": "Cách chứng minh bạn sở hữu tên miền.",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP - cần cổng 80 có thể truy cập được từ internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS (Cloudflare) - cần mã thông báo API của Cloudflare."
}, },
"cloudflareToken": { "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." "description": "Token có phạm vi với quyền Zone:DNS:Edit cho tên miền của bạn."
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "Trạng thái chứng chỉ",
"none": "Không có chứng chỉ", "none": "Không có chứng chỉ",
"names": "Covers {{names}}", "names": "Ảnh bìa {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "Được phát hành bởi {{issuer}}",
"expires": "Hết hạn {{date}}", "expires": "Hết hạn {{date}}",
"lastIssued": "Cấp lần cuối {{date}}", "lastIssued": "Cấp lần cuối {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "Lần thử cuối cùng thất bại: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "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": "Request certificate now", "request": "Yêu cầu chứng chỉ ngay bây giờ",
"requesting": "Đang yêu cầu chứng chỉ...", "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"
} }
} }
+22 -22
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "管理 ACME 证书",
"description": "See the certificate status and request a new certificate now." "description": "查看证书状态并立即申请新证书。"
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "自动续订",
"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." "description": "每天检查两次,如果没有证书、证书不涵盖该域名或证书将在 30 天内过期,则获取新证书。"
}, },
"domain": { "domain": {
"label": "域名", "label": "域名",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "邮箱", "label": "邮箱",
"description": "Contact email for the ACME account and expiry notices.", "description": "ACME账户及到期通知的联系邮箱。",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "证书颁发机构", "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", "letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt(测试版)",
"custom": "Custom ACME directory" "custom": "自定义 ACME 目录"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME目录URL",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "仅适用于自定义证书颁发机构。必须是 https URL。"
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "挑战类型",
"description": "How to prove you own the domain.", "description": "如何证明您拥有该域名。",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP协议需要可通过互联网访问的80端口。",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS(Cloudflare)——需要 Cloudflare API 令牌"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Cloudflare API 令牌",
"description": "具有您域名的 Zone:DNS:Edit 权限的限定作用域令牌。" "description": "具有您域名的 Zone:DNS:Edit 权限的限定作用域令牌。"
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "证书状态",
"none": "无证书", "none": "无证书",
"names": "Covers {{names}}", "names": "封面 {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "由 {{issuer}} 发行",
"expires": "过期于 {{date}}", "expires": "过期于 {{date}}",
"lastIssued": "上次签发于 {{date}}", "lastIssued": "上次签发于 {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "最后一次尝试失败: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "设置域名、电子邮件和您的质询类型所需的字段,然后保存,再申请证书。",
"request": "Request certificate now", "request": "立即申请证书",
"requesting": "正在请求证书...", "requesting": "正在请求证书...",
"issued": "Certificate issued and installed" "issued": "证书已颁发并安装"
} }
} }
+22 -22
View File
@@ -1,14 +1,14 @@
{ {
"permissions": { "permissions": {
"manage": { "manage": {
"title": "Manage ACME certificates", "title": "管理 ACME 證書",
"description": "See the certificate status and request a new certificate now." "description": "查看證書狀態並立即申請新證書。"
} }
}, },
"settings": { "settings": {
"autoRenew": { "autoRenew": {
"label": "Renew automatically", "label": "自動續訂",
"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." "description": "每天檢查兩次,如果沒有證書、證書不涵蓋該網域或證書將在 30 天內過期,則取得新證書。"
}, },
"domain": { "domain": {
"label": "網域", "label": "網域",
@@ -17,42 +17,42 @@
}, },
"email": { "email": {
"label": "電子郵件", "label": "電子郵件",
"description": "Contact email for the ACME account and expiry notices.", "description": "ACME帳戶及到期通知的聯絡信箱。",
"placeholder": "admin@example.com" "placeholder": "admin@example.com"
}, },
"provider": { "provider": {
"label": "憑證授權中心", "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", "letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)", "letsencryptStaging": "Let's Encrypt(測試版)",
"custom": "Custom ACME directory" "custom": "自訂 ACME 目錄"
}, },
"directoryUrl": { "directoryUrl": {
"label": "ACME directory URL", "label": "ACME目錄URL",
"description": "Only for a custom certificate authority. Must be an https URL." "description": "僅適用於自訂憑證授權單位。必須是 https URL。"
}, },
"challengeType": { "challengeType": {
"label": "Challenge type", "label": "挑戰類型",
"description": "How to prove you own the domain.", "description": "如何證明您擁有該網域。",
"http": "HTTP - needs port 80 reachable from the internet", "http": "HTTP協定需要80個可透過網際網路存取的連接埠。",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token" "cloudflare": "DNS(Cloudflare)-需要 Cloudflare API 令牌"
}, },
"cloudflareToken": { "cloudflareToken": {
"label": "Cloudflare API token", "label": "Cloudflare API 令牌",
"description": "具有您網域 Zone:DNS:Edit 權限的限定範圍權杖。" "description": "具有您網域 Zone:DNS:Edit 權限的限定範圍權杖。"
} }
}, },
"status": { "status": {
"title": "Certificate status", "title": "證書狀態",
"none": "無憑證", "none": "無憑證",
"names": "Covers {{names}}", "names": "封面 {{names}}",
"issuer": "Issued by {{issuer}}", "issuer": "由 {{issuer}} 發行",
"expires": "到期日 {{date}}", "expires": "到期日 {{date}}",
"lastIssued": "上次簽發日期 {{date}}", "lastIssued": "上次簽發日期 {{date}}",
"lastError": "Last attempt failed: {{error}}", "lastError": "最後嘗試失敗: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.", "missing": "設定網域名稱、電子郵件和您的質詢類型所需的字段,然後儲存,再申請憑證。",
"request": "Request certificate now", "request": "立即申請證書",
"requesting": "請求憑證中...", "requesting": "請求憑證中...",
"issued": "Certificate issued and installed" "issued": "證書已頒發並安裝"
} }
} }
+83 -83
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "সহকারী ব্যবহার করুন",
"description": "Open the assistant and ask it things." "description": "অ্যাসিস্ট্যান্টটি খুলুন এবং এটিকে বিভিন্ন জিনিস জিজ্ঞাসা করুন।"
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "সরবরাহকারীদের পরিচালনা করুন",
"description": "Add, edit and remove the AI providers and their API keys." "description": "এআই প্রোভাইডার এবং তাদের এপিআই কীগুলো যোগ, সম্পাদনা ও অপসারণ করুন।"
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "প্রস্তাবগুলি প্রয়োগ করুন",
"description": "Let the assistant carry out the changes it suggests." "description": "সহকারীকে তার প্রস্তাবিত পরিবর্তনগুলো কার্যকর করতে দিন।"
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "অন্যান্য বৈশিষ্ট্য থেকে এআই ব্যবহার করুন",
"description": "Other features may call the assistant on your behalf." "description": "অন্যান্য বৈশিষ্ট্য আপনার পক্ষ থেকে সহকারীকে ডাকতে পারে।"
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "এপিআই কী শেয়ার করুন",
"description": "Other features may use the stored AI API key without seeing it." "description": "অন্যান্য ফিচারগুলো সংরক্ষিত এআই এপিআই কী-টি না দেখেই ব্যবহার করতে পারে।"
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "এই সার্ভারে এআই অ্যাসিস্ট্যান্ট বন্ধ করা আছে।",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "প্রোভাইডার যোগ করতে উপরের এআই অ্যাসিস্ট্যান্টটি চালু করুন।",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "এআই সহকারী",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "ব্যবহারকারীদের এআই অ্যাসিস্ট্যান্ট চালু করার সুযোগ দিন। এটি বন্ধ থাকা অবস্থায়, অ্যাসিস্ট্যান্টটি সকলের জন্য লুকানো এবং ব্লক করা থাকবে।"
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "ব্যক্তিগত এআই হোস্ট অনুমোদিত",
"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": "আপনার প্রাইভেট নেটওয়ার্কে এমন হোস্ট রাখুন, যেগুলোকে ব্যবহারকারীরা কোনো প্রোভাইডারের দিকে নির্দেশ করতে পারে, যেমন একটি সেলফ-হোস্টেড ওলামা। প্রতিটি লাইনে একটি করে হোস্ট রাখুন।"
} }
}, },
"host": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "এই হোস্টের টার্মিনালে সাহায্য করার জন্য এআই অ্যাসিস্ট্যান্টকে অনুমতি দিন। এটি ডিফল্টরূপে বন্ধ থাকে এবং আপনার অ্যাকাউন্টের জন্য এআই চালু করা প্রয়োজন।"
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "সহকারী",
"send": "Send", "send": "পাঠান",
"stop": "Stop", "stop": "থামুন",
"save": "Save", "save": "সংরক্ষণ করুন",
"cancel": "Cancel", "cancel": "বাতিল করুন",
"running": "running", "running": "দৌড়ানো",
"approve": "Approve", "approve": "অনুমোদন করুন",
"reject": "Reject", "reject": "প্রত্যাখ্যান করুন",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "আপনার সার্ভারগুলো সম্পর্কে জিজ্ঞাসা করুন, অথবা কোনো পরিবর্তনের প্রস্তাব বর্ণনা করুন।",
"selectProvider": "Select a provider", "selectProvider": "একজন সরবরাহকারী নির্বাচন করুন",
"providerSettings": "Provider settings", "providerSettings": "প্রদানকারীর সেটিংস",
"addProvider": "Add provider", "addProvider": "প্রদানকারী যোগ করুন",
"editProvider": "Edit provider", "editProvider": "সম্পাদনা প্রদানকারী",
"removeProvider": "Remove provider", "removeProvider": "প্রদানকারীকে অপসারণ করুন",
"providerType": "Provider", "providerType": "সরবরাহকারী",
"providerLabel": "Name", "providerLabel": "নাম",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "উদাহরণস্বরূপ: স্থানীয় ওলামা",
"baseUrl": "Server address", "baseUrl": "সার্ভারের ঠিকানা",
"apiKey": "API key", "apiKey": "এপিআই কী",
"defaultModel": "Default model", "defaultModel": "ডিফল্ট মডেল",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "উদাহরণস্বরূপ: llama3.1 অথবা claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "এই সরবরাহকারীকে একটি নাম দিন",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "প্রদানকারীকে সংরক্ষণ করা যায়নি",
"providerUpdated": "Provider updated", "providerUpdated": "প্রদানকারী আপডেট করেছেন",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "প্রদানকারীকে সরানো যায়নি",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "আপনার ব্যক্তিগত নেটওয়ার্কের অ্যাড্রেসগুলো ব্যবহার করার জন্য প্রথমে একজন অ্যাডমিনিস্ট্রেটরের কাছ থেকে হোস্টটিকে অনুমতি নিতে হয়।",
"providerOllama": "Ollama", "providerOllama": "ওল্লামা",
"providerAnthropic": "Anthropic", "providerAnthropic": "অ্যানথ্রোপিক",
"providerOpenai": "OpenAI", "providerOpenai": "ওপেনএআই",
"providerGemini": "Google Gemini", "providerGemini": "গুগল জেমিনি",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "ওপেনএআই সামঞ্জস্যপূর্ণ",
"toolArguments": "Input", "toolArguments": "ইনপুট",
"toolResult": "Result", "toolResult": "ফলাফল",
"statusApplied": "Applied", "statusApplied": "প্রয়োগ করা হয়েছে",
"statusRejected": "Rejected", "statusRejected": "প্রত্যাখ্যাত",
"proposalApplied": "Change applied", "proposalApplied": "পরিবর্তন প্রয়োগ করা হয়েছে",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "পরিবর্তনটি প্রয়োগ করা যায়নি।",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "পরিবর্তনটি প্রত্যাখ্যান করা যায়নি",
"enableTitle": "Enable the AI assistant", "enableTitle": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "সহকারীকে আপনার সেটআপটি পড়তে দিন এবং আপনার অনুমোদনের জন্য পরিবর্তনের পরামর্শ দিতে দিন।",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "শুধুমাত্র পঠনযোগ্য ডায়াগনস্টিক কমান্ডের অনুমতি দিন",
"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.", "readOnlyCommandsDescription": "সহকারী প্রতিবার অনুমতি না নিয়েই df এবং uptime-এর মতো কয়েকটি নিরাপদ কমান্ড চালাতে পারে। সার্ভার পরিবর্তন করে এমন যেকোনো কিছু সর্বদা প্রথমে প্রস্তাব করা হয়।",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "সরবরাহকারীর সাথে যোগাযোগ করা সম্ভব হয়নি, তাই এটি একটি সাধারণ তালিকা। আপনি যেকোনো মডেলের নাম টাইপ করতে পারেন।",
"modelCustom": "Enter a model name", "modelCustom": "একটি মডেলের নাম লিখুন",
"modelRefresh": "Refresh list", "modelRefresh": "তালিকা রিফ্রেশ করুন",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "একটি মডেল বেছে নিন বা টাইপ করুন",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "কোনো হোস্ট, স্নিপেট বা অটোমেশন উল্লেখ করতে @ টাইপ করুন। আপনার অনুমোদনের জন্য পরিবর্তনগুলো প্রস্তাব করা হবে।",
"runCommandTitle": "Run command", "runCommandTitle": "রান কমান্ড",
"assistant": "AI Assistant", "assistant": "এআই সহকারী",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "এই হোস্ট সম্পর্কে অ্যাসিস্ট্যান্টকে জিজ্ঞাসা করুন। অবস্থা পরিবর্তনের জন্য প্রথমে আপনার অনুমোদন প্রয়োজন।",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "এই হোস্ট সম্পর্কে জিজ্ঞাসা করুন...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "এখনো কোনো এআই প্রোভাইডার কনফিগার করা হয়নি। এআই অ্যাসিস্ট্যান্ট ট্যাবে একটি যোগ করুন।",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "আপনার খোলা টার্মিনাল সেশনে চলে।",
"runInTerminal": "Run", "runInTerminal": "দৌড়",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "আমার টার্মিনাল আউটপুট নিচে দেওয়া হলো:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "এআই"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "এআই সহকারী",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "টারমিক্সে একটি ঐচ্ছিক এআই অ্যাসিস্ট্যান্ট অন্তর্ভুক্ত থাকতে পারে। আপনি পরবর্তীতে আপনার সেটিংসে এটি পরিবর্তন করতে পারবেন।",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "এটা ছেড়ে দাও",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "টারমিক্স এখন যেমন কাজ করে, তেমনই কাজ করে। অ্যাসিস্ট্যান্টটি লুকানো থাকে।",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "এটা চালু করুন",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "একজন সহকারী যোগ করে যে আপনার সেটআপ পড়ে এবং আপনার অনুমোদিত পরিবর্তনের পরামর্শ দেয়। এর জন্য আপনার সরবরাহ করা একজন প্রদানকারীর প্রয়োজন, যেমন একজন স্থানীয় ওলামা।",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "আপনি একজন প্রোভাইডার যোগ করে মেসেজ না পাঠানো পর্যন্ত কোথাও কিছু পাঠানো হয় না।"
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "নথি দেখুন"
} }
} }
+75 -75
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "सहायक का उपयोग करें",
"description": "Open the assistant and ask it things." "description": "असिस्टेंट खोलें और उससे सवाल पूछें।"
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "प्रदाताओं का प्रबंधन करें",
"description": "Add, edit and remove the AI providers and their API keys." "description": "एआई प्रदाताओं और उनकी एपीआई कुंजियों को जोड़ें, संपादित करें और हटाएं।"
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "प्रस्ताव लागू करें",
"description": "Let the assistant carry out the changes it suggests." "description": "सहायक को उसके द्वारा सुझाए गए बदलावों को लागू करने दें।"
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "अन्य सुविधाओं से एआई का उपयोग करें",
"description": "Other features may call the assistant on your behalf." "description": "अन्य सुविधाएं आपकी ओर से असिस्टेंट को कॉल कर सकती हैं।"
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "एपीआई कुंजी साझा करें",
"description": "Other features may use the stored AI API key without seeing it." "description": "अन्य सुविधाएं संग्रहीत एआई एपीआई कुंजी का उपयोग उसे देखे बिना भी कर सकती हैं।"
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "इस सर्वर पर एआई असिस्टेंट बंद है।",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "प्रदाताओं को जोड़ने के लिए ऊपर दिए गए एआई सहायक को चालू करें।",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "एआई सहायक",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "उपयोगकर्ताओं को एआई सहायक चालू करने की अनुमति दें। जब यह बंद होगा, तो सहायक सभी के लिए छिपा हुआ और अवरुद्ध रहेगा।"
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "निजी एआई होस्ट की अनुमति दी गई",
"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": "आपके निजी नेटवर्क पर मौजूद होस्ट, जिन्हें उपयोगकर्ता किसी प्रदाता से जोड़ सकते हैं, जैसे कि स्व-होस्टेड ओलामा। प्रत्येक पंक्ति में एक होस्ट रखें।"
} }
}, },
"host": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "एआई असिस्टेंट को सक्षम करें",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "इस होस्ट के टर्मिनल में एआई सहायक को मदद करने की अनुमति दें। यह डिफ़ॉल्ट रूप से बंद है, लेकिन आपके खाते के लिए एआई को सक्षम करना आवश्यक है।"
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "सहायक",
"send": "Send", "send": "भेजना",
"stop": "स्टॉप", "stop": "स्टॉप",
"save": "सहेजें", "save": "सहेजें",
"cancel": "रद्द करें", "cancel": "रद्द करें",
"running": "चल रहे", "running": "चल रहे",
"approve": "Approve", "approve": "मंज़ूरी देना",
"reject": "Reject", "reject": "अस्वीकार करना",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "अपने सर्वरों के बारे में पूछें, या प्रस्तावित परिवर्तन का वर्णन करें।",
"selectProvider": "Select a provider", "selectProvider": "एक प्रदाता का चयन करें",
"providerSettings": "Provider settings", "providerSettings": "प्रदाता सेटिंग्स",
"addProvider": "Add provider", "addProvider": "प्रदाता जोड़ें",
"editProvider": "Edit provider", "editProvider": "प्रदाता संपादित करें",
"removeProvider": "Remove provider", "removeProvider": "प्रदाता को हटाएँ",
"providerType": "Provider", "providerType": "प्रदाता",
"providerLabel": "नाम", "providerLabel": "नाम",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "उदाहरण के लिए: स्थानीय ओलामा",
"baseUrl": "Server address", "baseUrl": "सर्वर पता",
"apiKey": "API key", "apiKey": "एपीआई कुंजी",
"defaultModel": "Default model", "defaultModel": "डिफ़ॉल्ट मॉडल",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "उदाहरण के लिए: llama3.1 या claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "इस प्रदाता को एक नाम दें",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "प्रदाता को बचाया नहीं जा सका",
"providerUpdated": "Provider updated", "providerUpdated": "प्रदाता ने अपडेट किया",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "प्रदाता को हटाया नहीं जा सका",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "आपके निजी नेटवर्क पर मौजूद पतों के लिए पहले एक प्रशासक द्वारा होस्ट को अनुमति देना आवश्यक है।",
"providerOllama": "Ollama", "providerOllama": "ओलामा",
"providerAnthropic": "Anthropic", "providerAnthropic": "anthropic",
"providerOpenai": "OpenAI", "providerOpenai": "ओपनएआई",
"providerGemini": "Google Gemini", "providerGemini": "गूगल जेमिनी",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "OpenAI संगत",
"toolArguments": "इनपुट", "toolArguments": "इनपुट",
"toolResult": "Result", "toolResult": "परिणाम",
"statusApplied": "Applied", "statusApplied": "लागू किया गया",
"statusRejected": "Rejected", "statusRejected": "अस्वीकार कर दिया",
"proposalApplied": "Change applied", "proposalApplied": "परिवर्तन लागू हो गया",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "परिवर्तन लागू नहीं हो सका",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "परिवर्तन को अस्वीकार नहीं किया जा सका",
"enableTitle": "Enable the AI assistant", "enableTitle": "एआई सहायक को सक्रिय करें",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "सहायक को आपकी सेटअप प्रक्रिया पढ़ने दें और वह आपके अनुमोदन के लिए परिवर्तन सुझाएगा।",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "केवल पढ़ने योग्य डायग्नोस्टिक कमांड की अनुमति दें",
"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.", "readOnlyCommandsDescription": "सहायक बिना पूछे ही df और uptime जैसे कुछ सुरक्षित कमांड चला सकता है। सर्वर में कोई भी बदलाव करने का प्रस्ताव हमेशा पहले दिया जाता है।",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "प्रदाता से संपर्क नहीं हो सका, इसलिए यह एक सामान्य सूची है। आप किसी भी मॉडल का नाम टाइप कर सकते हैं।",
"modelCustom": "Enter a model name", "modelCustom": "मॉडल का नाम दर्ज करें",
"modelRefresh": "Refresh list", "modelRefresh": "सूची रीफ़्रेश करें",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "कोई मॉडल चुनें या टाइप करें",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "किसी होस्ट, स्निपेट या ऑटोमेशन को संदर्भित करने के लिए @ टाइप करें। आपके अनुमोदन के लिए परिवर्तन प्रस्तावित किए जा रहे हैं।",
"runCommandTitle": "Run command", "runCommandTitle": "कमांड चलाएँ",
"assistant": "AI Assistant", "assistant": "एआई सहायक",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "इस होस्ट के बारे में असिस्टेंट से पूछें। किसी भी स्थिति में बदलाव के लिए पहले आपकी स्वीकृति आवश्यक है।",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "इस होस्ट के बारे में पूछें...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "अभी तक कोई एआई प्रदाता कॉन्फ़िगर नहीं किया गया है। एआई सहायक टैब में एक जोड़ें।",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "यह आपके खुले टर्मिनल सत्र में चलता है।",
"runInTerminal": "चलाएं", "runInTerminal": "चलाएं",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "यह मेरे टर्मिनल का आउटपुट है:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "ऐ"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "एआई सहायक",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "टर्मिक्स में एक वैकल्पिक एआई सहायक शामिल हो सकता है। आप इसे बाद में अपनी सेटिंग्स में बदल सकते हैं।",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "इसे बंद कर दो",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "टर्मिक्स अभी की तरह ही काम करता है। असिस्टेंट छिपा रहता है।",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "इसे चालू करें",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "यह एक सहायक सुविधा जोड़ता है जो आपके सेटअप को पढ़ता है और आपके द्वारा स्वीकृत किए जाने वाले परिवर्तनों का सुझाव देता है। इसके लिए आपको एक प्रदाता उपलब्ध कराना होगा, जैसे कि स्थानीय ओलामा।",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "जब तक आप कोई प्रदाता नहीं जोड़ते और संदेश नहीं भेजते, तब तक कुछ भी कहीं नहीं भेजा जाता।"
}, },
"hosts": { "hosts": {
"docsLink": "दस्तावेज़ देखें" "docsLink": "दस्तावेज़ देखें"
+79 -79
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Gunakan asisten",
"description": "Open the assistant and ask it things." "description": "Buka asisten dan ajukan pertanyaan kepadanya."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Mengelola penyedia",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Tambahkan, edit, dan hapus penyedia AI dan kunci API mereka."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Ajukan proposal",
"description": "Let the assistant carry out the changes it suggests." "description": "Biarkan asisten tersebut menjalankan perubahan yang disarankannya."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Gunakan AI dari fitur lain.",
"description": "Other features may call the assistant on your behalf." "description": "Fitur lainnya mungkin akan memanggil asisten atas nama Anda."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Bagikan kunci API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Fitur lain mungkin menggunakan kunci API AI yang tersimpan tanpa mengetahuinya."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "Asisten AI dinonaktifkan di server ini.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Aktifkan asisten AI di atas untuk menambahkan penyedia.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "Asisten AI",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Izinkan pengguna untuk mengaktifkan asisten AI. Saat dinonaktifkan, asisten akan disembunyikan dan diblokir untuk semua orang."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Host AI pribadi yang diizinkan",
"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": "Host di jaringan pribadi Anda yang dapat diarahkan pengguna ke penyedia layanan, seperti Ollama yang dihosting sendiri. Letakkan satu host di setiap baris."
} }
}, },
"host": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Aktifkan Asisten AI",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "Izinkan asisten AI untuk membantu di terminal host ini. Secara default dinonaktifkan, dan AI tetap perlu diaktifkan untuk akun Anda."
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "Asisten",
"send": "Send", "send": "Mengirim",
"stop": "Stop", "stop": "Berhenti",
"save": "Save", "save": "Menyimpan",
"cancel": "Cancel", "cancel": "Membatalkan",
"running": "running", "running": "berlari",
"approve": "Approve", "approve": "Menyetujui",
"reject": "Reject", "reject": "Menolak",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Tanyakan tentang server Anda, atau jelaskan perubahan yang ingin Anda usulkan.",
"selectProvider": "Select a provider", "selectProvider": "Pilih penyedia",
"providerSettings": "Provider settings", "providerSettings": "Pengaturan penyedia",
"addProvider": "Add provider", "addProvider": "Tambahkan penyedia",
"editProvider": "Edit provider", "editProvider": "Penyedia pengeditan",
"removeProvider": "Remove provider", "removeProvider": "Hapus penyedia",
"providerType": "Provider", "providerType": "Penyedia",
"providerLabel": "Name", "providerLabel": "Nama",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Contohnya: Ollama setempat",
"baseUrl": "Server address", "baseUrl": "Alamat server",
"apiKey": "API key", "apiKey": "Kunci API",
"defaultModel": "Default model", "defaultModel": "Model default",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Misalnya: llama3.1 atau claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Beri nama penyedia ini",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Penyedia layanan tidak dapat disimpan.",
"providerUpdated": "Provider updated", "providerUpdated": "Penyedia diperbarui",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Penyedia layanan tidak dapat dihapus.",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Alamat-alamat di jaringan pribadi Anda memerlukan izin administrator terlebih dahulu untuk host tersebut.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antropis",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Kompatibel dengan OpenAI",
"toolArguments": "Input", "toolArguments": "Masukan",
"toolResult": "Result", "toolResult": "Hasil",
"statusApplied": "Applied", "statusApplied": "Terapan",
"statusRejected": "Rejected", "statusRejected": "Ditolak",
"proposalApplied": "Change applied", "proposalApplied": "Perubahan diterapkan",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Perubahan tidak dapat diterapkan.",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Tidak bisa menolak perubahan tersebut",
"enableTitle": "Enable the AI assistant", "enableTitle": "Aktifkan asisten AI",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Biarkan asisten membaca pengaturan Anda dan menyarankan perubahan yang perlu Anda setujui.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Izinkan perintah diagnostik hanya baca.",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Tidak dapat menghubungi penyedia, jadi ini adalah daftar umum. Anda dapat mengetikkan nama model apa pun.",
"modelCustom": "Enter a model name", "modelCustom": "Masukkan nama model",
"modelRefresh": "Refresh list", "modelRefresh": "Perbarui daftar",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Pilih atau ketik model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Ketik @ untuk merujuk ke host, cuplikan kode, atau otomatisasi. Perubahan diajukan untuk Anda setujui.",
"runCommandTitle": "Run command", "runCommandTitle": "Jalankan perintah",
"assistant": "AI Assistant", "assistant": "Asisten AI",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Tanyakan kepada asisten tentang tuan rumah ini. Segala sesuatu yang berubah status memerlukan persetujuan Anda terlebih dahulu.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Tanyakan tentang tuan rumah ini...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Belum ada penyedia AI yang dikonfigurasi. Tambahkan satu di tab asisten AI.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Berjalan di sesi terminal Anda yang sedang terbuka.",
"runInTerminal": "Run", "runInTerminal": "Berlari",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Berikut adalah output terminal saya:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "AI"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "Asisten AI",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix dapat menyertakan asisten AI opsional. Anda dapat mengubahnya nanti di pengaturan Anda.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Biarkan saja",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix berfungsi seperti sekarang. Asisten tetap tersembunyi.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Nyalakan",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "Menambahkan asisten yang membaca pengaturan Anda dan menyarankan perubahan yang Anda setujui. Membutuhkan penyedia yang Anda berikan, seperti Ollama lokal.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Tidak ada data yang dikirim ke mana pun sampai Anda menambahkan penyedia dan mengirim pesan."
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "Lihat dokumen"
} }
} }
+74 -74
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Bruk assistenten",
"description": "Open the assistant and ask it things." "description": "Åpne assistenten og spør den om ting."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Administrer leverandører",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Legg til, rediger og fjern AI-leverandørene og API-nøklene deres."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Bruk forslag",
"description": "Let the assistant carry out the changes it suggests." "description": "La assistenten utføre endringene den foreslår."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Bruk AI fra andre funksjoner",
"description": "Other features may call the assistant on your behalf." "description": "Andre funksjoner kan ringe assistenten på dine vegne."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Del API-nøkkelen",
"description": "Other features may use the stored AI API key without seeing it." "description": "Andre funksjoner kan bruke den lagrede AI API-nøkkelen uten å se den."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "AI-assistenten er slått av på denne serveren.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Slå på AI-assistenten ovenfor for å legge til leverandører.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "AI-assistent",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "La brukere slå på AI-assistenten. Mens dette er av, er assistenten skjult og blokkert for alle."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Tillatte private AI-verter",
"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": "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Aktiver AI-assistent",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Assistent",
"send": "Send", "send": "Sende",
"stop": "Stopp", "stop": "Stopp",
"save": "Lagre", "save": "Lagre",
"cancel": "Avbryt", "cancel": "Avbryt",
"running": "kjører", "running": "kjører",
"approve": "Approve", "approve": "Vedta",
"reject": "Reject", "reject": "Avvis",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Spør om servitørene dine, eller beskriv en endring du vil foreslå",
"selectProvider": "Select a provider", "selectProvider": "Velg en leverandør",
"providerSettings": "Provider settings", "providerSettings": "Leverandørinnstillinger",
"addProvider": "Add provider", "addProvider": "Legg til leverandør",
"editProvider": "Edit provider", "editProvider": "Rediger leverandør",
"removeProvider": "Remove provider", "removeProvider": "Fjern leverandør",
"providerType": "Provider", "providerType": "Leverandør",
"providerLabel": "Navn", "providerLabel": "Navn",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "For eksempel: Lokal Ollama",
"baseUrl": "Server address", "baseUrl": "Serveradresse",
"apiKey": "API key", "apiKey": "API-nøkkel",
"defaultModel": "Default model", "defaultModel": "Standardmodell",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "For eksempel: llama3.1 eller claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Gi denne leverandøren et navn",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Kunne ikke lagre leverandøren",
"providerUpdated": "Provider updated", "providerUpdated": "Leverandøren er oppdatert",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Kunne ikke fjerne leverandøren",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Adresser på ditt private nettverk krever at en administrator tillater verten først.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antropisk",
"providerOpenai": "OpenAI", "providerOpenai": "Åpen kunstig intelligens",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "OpenAI-kompatibel",
"toolArguments": "Input", "toolArguments": "Inndata",
"toolResult": "Result", "toolResult": "Resultat",
"statusApplied": "Applied", "statusApplied": "Anvendt",
"statusRejected": "Rejected", "statusRejected": "Avvist",
"proposalApplied": "Change applied", "proposalApplied": "Endringen er brukt",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Kunne ikke bruke endringen",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Kunne ikke avvise endringen",
"enableTitle": "Enable the AI assistant", "enableTitle": "Aktiver AI-assistenten",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "La assistenten lese oppsettet ditt og foreslå endringer du kan godkjenne.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Tillat skrivebeskyttede diagnostiske kommandoer",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Kunne ikke nå leverandøren, så dette er en generell liste. Du kan skrive inn et hvilket som helst modellnavn.",
"modelCustom": "Enter a model name", "modelCustom": "Skriv inn et modellnavn",
"modelRefresh": "Refresh list", "modelRefresh": "Oppdater listen",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Velg eller skriv inn en modell",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Skriv inn @ for å referere til en vert, et kodeutdrag eller en automatisering. Endringer foreslås som du kan godkjenne.",
"runCommandTitle": "Run command", "runCommandTitle": "Kjør kommandoen",
"assistant": "AI Assistant", "assistant": "AI-assistent",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Spør assistenten om denne verten. Alt som endrer status trenger din godkjenning først.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Spør om denne verten...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Ingen AI-leverandør er konfigurert ennå. Legg til en i AI-assistent-fanen.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Kjører i din åpne terminaløkt.",
"runInTerminal": "Kjør", "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": { "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": { "nav": {
"ai": "AI" "ai": "AI"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "AI-assistent",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix kan inkludere en valgfri AI-assistent. Du kan endre dette senere i innstillingene dine.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "La det være av",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix fungerer som den gjør nå. Assistenten forblir skjult.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Slå den på",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Ingenting sendes noe sted før du legger til en leverandør og sender en melding."
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "Vis dokumenter"
} }
} }
+22 -22
View File
@@ -1,29 +1,29 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Użyj asystenta",
"description": "Open the assistant and ask it things." "description": "Otwórz asystenta i zadaj mu pytania."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Zarządzaj dostawcami",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Dodawaj, edytuj i usuwaj dostawców sztucznej inteligencji oraz ich klucze API."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Zastosuj propozycje",
"description": "Let the assistant carry out the changes it suggests." "description": "Pozwól asystentowi wprowadzić sugerowane zmiany."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Użyj sztucznej inteligencji z innych funkcji",
"description": "Other features may call the assistant on your behalf." "description": "Inne funkcje mogą umożliwiać wywoływanie asystenta w Twoim imieniu."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Udostępnij klucz API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Inne funkcje mogą wykorzystywać zapisany klucz API AI, nawet go nie widząc."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "Asystent AI jest wyłączony na tym serwerze.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Włącz asystenta AI powyżej, aby dodać dostawców.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "Asystent AI", "label": "Asystent AI",
@@ -31,13 +31,13 @@
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Dozwolone prywatne hosty AI", "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Włącz asystenta AI",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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", "modelPlaceholder": "Wybierz lub wpisz model",
"attachHint": "Wpisz @, aby odwołać się do hosta, snippetu lub automatyzacji. Zmiany są proponowane do Twojego zatwierdzenia.", "attachHint": "Wpisz @, aby odwołać się do hosta, snippetu lub automatyzacji. Zmiany są proponowane do Twojego zatwierdzenia.",
"runCommandTitle": "Uruchom polecenie", "runCommandTitle": "Uruchom polecenie",
"assistant": "AI Assistant", "assistant": "Asystent AI",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Zapytaj asystenta o tego hosta. Każda zmiana stanu wymaga Twojej zgody.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Zapytaj o tego gospodarza...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Nie skonfigurowano jeszcze żadnego dostawcy AI. Dodaj go w zakładce Asystent AI.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Działa w otwartej sesji terminalowej.",
"runInTerminal": "Uruchom", "runInTerminal": "Uruchom",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Oto wynik mojego terminala:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
+76 -76
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Use o assistente",
"description": "Open the assistant and ask it things." "description": "Abra o assistente e faça perguntas."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Gerenciar fornecedores",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Adicione, edite e remova os fornecedores de IA e suas chaves de API."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Apresentar propostas",
"description": "Let the assistant carry out the changes it suggests." "description": "Deixe que o assistente execute as alterações que sugerir."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Utilizar IA de outras funcionalidades",
"description": "Other features may call the assistant on your behalf." "description": "Outras funcionalidades podem chamar o assistente em seu nome."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Compartilhe a chave da API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Outras funcionalidades podem usar a chave da API de IA armazenada sem visualizá-la."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "O assistente de IA está desativado neste servidor.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "assistente de IA",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Permita que os usuários ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Hosts de IA privados permitidos",
"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": "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Ativar o assistente de IA",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Assistente",
"send": "Send", "send": "Enviar",
"stop": "Stop", "stop": "Parar",
"save": "Salvar", "save": "Salvar",
"cancel": "Cancelar", "cancel": "Cancelar",
"running": "running", "running": "correndo",
"approve": "Approve", "approve": "Aprovar",
"reject": "Reject", "reject": "Rejeitar",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Pergunte sobre seus servidores ou descreva uma alteração que você gostaria de propor.",
"selectProvider": "Select a provider", "selectProvider": "Selecione um fornecedor",
"providerSettings": "Provider settings", "providerSettings": "Configurações do provedor",
"addProvider": "Add provider", "addProvider": "Adicionar provedor",
"editProvider": "Edit provider", "editProvider": "Editar provedor",
"removeProvider": "Remove provider", "removeProvider": "Remover provedor",
"providerType": "Provider", "providerType": "Fornecedor",
"providerLabel": "Name", "providerLabel": "Nome",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Por exemplo: Ollama local",
"baseUrl": "Server address", "baseUrl": "Endereço do servidor",
"apiKey": "API key", "apiKey": "Chave de API",
"defaultModel": "Default model", "defaultModel": "Modelo padrão",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Dê um nome a este fornecedor.",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Não foi possível salvar o provedor.",
"providerUpdated": "Provider updated", "providerUpdated": "Fornecedor atualizado",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Não foi possível remover o provedor.",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Os endereços na sua rede privada precisam que um administrador autorize o host primeiro.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antrópico",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Compatível com OpenAI",
"toolArguments": "Entrada", "toolArguments": "Entrada",
"toolResult": "Result", "toolResult": "Resultado",
"statusApplied": "Applied", "statusApplied": "Aplicado",
"statusRejected": "Rejected", "statusRejected": "Rejeitado",
"proposalApplied": "Change applied", "proposalApplied": "Alteração aplicada",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Não foi possível aplicar a alteração.",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Não foi possível rejeitar a alteração.",
"enableTitle": "Enable the AI assistant", "enableTitle": "Ative o assistente de IA",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Deixe o assistente ler sua configuração e sugerir alterações para você aprovar.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Permitir comandos de diagnóstico somente leitura",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Não foi possível contatar o fornecedor, portanto esta é uma lista genérica. Você pode digitar o nome de qualquer modelo.",
"modelCustom": "Enter a model name", "modelCustom": "Insira o nome do modelo",
"modelRefresh": "Refresh list", "modelRefresh": "Atualizar lista",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Selecione ou digite um modelo",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para sua aprovação.",
"runCommandTitle": "Run command", "runCommandTitle": "Executar comando",
"assistant": "AI Assistant", "assistant": "Assistente de IA",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado precisa da sua aprovação prévia.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Nenhum provedor de IA está configurado ainda. Adicione um na aba do assistente de IA.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
"runInTerminal": "Run", "runInTerminal": "Correr",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Aqui está a saída do meu terminal:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "IA"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "assistente de IA",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "O Termix pode incluir um assistente de IA opcional. Você pode alterar isso posteriormente nas suas configurações.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Deixe desligado",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Ligue-o",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Nada será enviado até que você adicione um provedor e envie uma mensagem."
}, },
"hosts": { "hosts": {
"docsLink": "Documentação" "docsLink": "Documentação"
+72 -72
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Utilize o assistente",
"description": "Open the assistant and ask it things." "description": "Abra o assistente e coloque questões."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Gerir fornecedores",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Adicione, edite e remova os fornecedores de IA e as suas chaves API."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Apresentar propostas",
"description": "Let the assistant carry out the changes it suggests." "description": "Deixe que o assistente execute as alterações que sugerir."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Utilizar IA de outras funcionalidades",
"description": "Other features may call the assistant on your behalf." "description": "Outras funcionalidades podem chamar o assistente em seu nome."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Partilhar a chave da API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Outras funcionalidades podem utilizar a chave da API de IA armazenada sem a visualizar."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "O assistente de IA está desativado neste servidor.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "assistente de IA",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Permita que os utilizadores ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Hosts de IA privados permitidos",
"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": "Servidores na sua rede privada que os utilizadores podem utilizar como fornecedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha."
} }
}, },
"host": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Ativar o assistente de IA",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Assistente",
"send": "Send", "send": "Enviar",
"stop": "Stop", "stop": "Stop",
"save": "Guardar", "save": "Guardar",
"cancel": "Cancelar", "cancel": "Cancelar",
"running": "em execução", "running": "em execução",
"approve": "Approve", "approve": "Aprovar",
"reject": "Reject", "reject": "Rejeitar",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Pergunte pelos seus servidores ou descreva uma alteração que gostaria de propor.",
"selectProvider": "Select a provider", "selectProvider": "Selecione um fornecedor",
"providerSettings": "Provider settings", "providerSettings": "Configurações do fornecedor",
"addProvider": "Add provider", "addProvider": "Adicionar provedor",
"editProvider": "Edit provider", "editProvider": "Editar provedor",
"removeProvider": "Remove provider", "removeProvider": "Remover fornecedor",
"providerType": "Provider", "providerType": "Fornecedor",
"providerLabel": "Nome", "providerLabel": "Nome",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Por exemplo: Ollama local",
"baseUrl": "Server address", "baseUrl": "Endereço do servidor",
"apiKey": "API key", "apiKey": "Chave API",
"defaultModel": "Default model", "defaultModel": "Modelo padrão",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Dê um nome a este fornecedor.",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Não foi possível guardar o fornecedor.",
"providerUpdated": "Provider updated", "providerUpdated": "Fornecedor atualizado",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Não foi possível remover o fornecedor.",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Os endereços na sua rede privada necessitam que um administrador autorize primeiro o host.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antrópico",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Compatível com OpenAI",
"toolArguments": "Entrada", "toolArguments": "Entrada",
"toolResult": "Result", "toolResult": "Resultado",
"statusApplied": "Applied", "statusApplied": "Aplicado",
"statusRejected": "Rejected", "statusRejected": "Rejeitado",
"proposalApplied": "Change applied", "proposalApplied": "Alteração aplicada",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Não foi possível aplicar a alteração.",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Não foi possível rejeitar a alteração.",
"enableTitle": "Enable the AI assistant", "enableTitle": "Ative o assistente de IA",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Deixe o assistente ler a sua configuração e sugerir alterações para que a aprove.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Permitir comandos de diagnóstico de leitura apenas",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Não foi possível contactar o fornecedor, pelo que esta é uma lista genérica. Pode digitar o nome de qualquer modelo.",
"modelCustom": "Enter a model name", "modelCustom": "Introduza o nome do modelo",
"modelRefresh": "Refresh list", "modelRefresh": "Atualizar lista",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Selecione ou introduza um modelo",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "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": "Run command", "runCommandTitle": "Executar comando",
"assistant": "AI Assistant", "assistant": "Assistente de IA",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado necessita da sua aprovação prévia.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Nenhum fornecedor de IA está configurado ainda. Adicione um no separador do assistente de IA.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
"runInTerminal": "Executar", "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": { "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": { "nav": {
"ai": "AI" "ai": "IA"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "assistente de IA",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "O Termix pode incluir um assistente de IA opcional. Pode alterar isso posteriormente nas suas definições.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Deixe desligado",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Ligue-o",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Nada será enviado até que adicione um fornecedor e envie uma mensagem."
}, },
"hosts": { "hosts": {
"docsLink": "Ver documentação" "docsLink": "Ver documentação"
+73 -73
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Воспользуйтесь помощником",
"description": "Open the assistant and ask it things." "description": "Откройте ассистента и задайте ему вопросы."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Управление поставщиками",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Добавляйте, редактируйте и удаляйте поставщиков ИИ и их API-ключи."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Подайте заявки на участие в тендере.",
"description": "Let the assistant carry out the changes it suggests." "description": "Пусть ассистент внесет предложенные им изменения."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Используйте ИИ из других функций.",
"description": "Other features may call the assistant on your behalf." "description": "Другие функции могут вызывать голосового помощника от вашего имени."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Поделитесь ключом API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Другие функции могут использовать сохраненный ключ API ИИ, даже не видя его."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "На этом сервере ИИ-помощник отключен.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Включите ИИ-помощника выше, чтобы добавить поставщиков услуг.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "ИИ-помощник",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Разрешите пользователям включить голосового помощника. Если он выключен, помощник скрыт и заблокирован для всех."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Разрешены частные хосты ИИ",
"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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Включить ИИ-помощника",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "Разрешите помощнику с искусственным интеллектом помогать на терминале этого хоста. По умолчанию отключено, но для вашей учетной записи ИИ все равно должен быть включен."
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "Помощник",
"send": "Send", "send": "Отправлять",
"stop": "Остановить", "stop": "Остановить",
"save": "Сохранить", "save": "Сохранить",
"cancel": "Отмена", "cancel": "Отмена",
"running": "выполняется", "running": "выполняется",
"approve": "Approve", "approve": "Утвердить",
"reject": "Reject", "reject": "Отклонять",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Поинтересуйтесь состоянием ваших серверов или предложите внести изменения.",
"selectProvider": "Select a provider", "selectProvider": "Выберите поставщика",
"providerSettings": "Provider settings", "providerSettings": "Настройки поставщика",
"addProvider": "Add provider", "addProvider": "Добавить поставщика",
"editProvider": "Edit provider", "editProvider": "Поставщик редактирования",
"removeProvider": "Remove provider", "removeProvider": "Удалить поставщика",
"providerType": "Provider", "providerType": "Поставщик",
"providerLabel": "Название", "providerLabel": "Название",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Например: Местная лама",
"baseUrl": "Server address", "baseUrl": "Адрес сервера",
"apiKey": "API key", "apiKey": "ключ API",
"defaultModel": "Default model", "defaultModel": "Модель по умолчанию",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Например: llama3.1 или claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Укажите имя этого поставщика услуг.",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Не удалось сохранить поставщика услуг.",
"providerUpdated": "Provider updated", "providerUpdated": "Поставщик обновлен",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Не удалось удалить поставщика услуг.",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Для доступа к адресам в вашей частной сети необходимо предварительное разрешение администратора.",
"providerOllama": "Ollama", "providerOllama": "оллама",
"providerAnthropic": "Anthropic", "providerAnthropic": "Антропический",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Совместимость с OpenAI",
"toolArguments": "Ввод", "toolArguments": "Ввод",
"toolResult": "Result", "toolResult": "Результат",
"statusApplied": "Applied", "statusApplied": "Применяемый",
"statusRejected": "Rejected", "statusRejected": "Отклоненный",
"proposalApplied": "Change applied", "proposalApplied": "Внесены изменения.",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Не удалось применить изменения.",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Не мог отклонить изменение.",
"enableTitle": "Enable the AI assistant", "enableTitle": "Включите ИИ-помощника",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Позвольте ассистенту ознакомиться с вашими настройками и предложить изменения для утверждения.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Разрешить диагностические команды только для чтения",
"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.", "readOnlyCommandsDescription": "Ассистент может выполнить короткий список безопасных команд, таких как df и uptime, не запрашивая подтверждения каждый раз. Любая команда, изменяющая состояние сервера, всегда предлагается в первую очередь.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Не удалось связаться с поставщиком, поэтому это общий список. Вы можете ввести любое название модели.",
"modelCustom": "Enter a model name", "modelCustom": "Введите название модели",
"modelRefresh": "Refresh list", "modelRefresh": "Обновить список",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Выберите или введите модель",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Введите @ для ссылки на хост, фрагмент кода или автоматизацию. Предлагаются изменения для вашего утверждения.",
"runCommandTitle": "Run command", "runCommandTitle": "Выполните команду",
"assistant": "AI Assistant", "assistant": "ИИ-помощник",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Спросите помощника об этом хосте. Любое изменение состояния требует вашего предварительного одобрения.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Спросите об этом хостинге...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Поставщик ИИ пока не настроен. Добавьте его на вкладке «Помощник ИИ».",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Запускается в открытой терминальной сессии.",
"runInTerminal": "Запустить", "runInTerminal": "Запустить",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Вот вывод моего терминала:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "ИИ"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "ИИ-помощник",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "В Termix можно добавить опционального ИИ-помощника. Это можно изменить позже в настройках.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Оставьте это выключенным.",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix работает так, как сейчас. Ассистент остается скрытым.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Включите его",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "Добавляет помощника, который анализирует ваши настройки и предлагает изменения, которые вы одобряете. Требуется поставщик, которого вы предоставляете, например, местный Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Ничего никуда не отправляется, пока вы не добавите поставщика услуг и не отправите сообщение."
}, },
"hosts": { "hosts": {
"docsLink": "Документация" "docsLink": "Документация"
+82 -82
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Користите помоћника",
"description": "Open the assistant and ask it things." "description": "Отворите асистента и питајте га."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Управљајте добављачима",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Додајте, уредите и уклоните добављаче вештачке интелигенције и њихове АПИ кључеве."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Примени предлоге",
"description": "Let the assistant carry out the changes it suggests." "description": "Нека асистент изврши измене које предложи."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Користите вештачку интелигенцију из других функција",
"description": "Other features may call the assistant on your behalf." "description": "Друге функције могу позвати асистента у ваше име."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Поделите API кључ",
"description": "Other features may use the stored AI API key without seeing it." "description": "Друге функције могу користити сачувани AI API кључ, а да га не виде."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "АИ асистент је искључен на овом серверу.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Укључите AI асистента изнад да бисте додали добављаче.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "Асистент за вештачку интелигенцију",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Дозволите корисницима да укључе вештачку интелигенцију асистента. Док је ово искључено, асистент је скривен и блокиран за све."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Омогући AI асистент",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "Дозволите вештачкој интелигенцији да помогне у терминалу овог хоста. Искључено је подразумевано, а и даље је потребно да вештачка интелигенција буде омогућена за ваш налог."
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "Асистент",
"send": "Send", "send": "Пошаљи",
"stop": "Stop", "stop": "Заустави",
"save": "Save", "save": "Сачувај",
"cancel": "Cancel", "cancel": "Откажи",
"running": "running", "running": "трчање",
"approve": "Approve", "approve": "Одобри",
"reject": "Reject", "reject": "Одбиј",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Питајте о својим серверима или опишите промену коју желите да предложите",
"selectProvider": "Select a provider", "selectProvider": "Изаберите добављача",
"providerSettings": "Provider settings", "providerSettings": "Подешавања добављача",
"addProvider": "Add provider", "addProvider": "Додај добављача",
"editProvider": "Edit provider", "editProvider": "Измени добављача",
"removeProvider": "Remove provider", "removeProvider": "Уклони добављача",
"providerType": "Provider", "providerType": "Провајдер",
"providerLabel": "Name", "providerLabel": "Име",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "На пример: Локална Олама",
"baseUrl": "Server address", "baseUrl": "Адреса сервера",
"apiKey": "API key", "apiKey": "API кључ",
"defaultModel": "Default model", "defaultModel": "Подразумевани модел",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "На пример: llama3.1 или claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Дајте име овом добављачу",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Није могуће сачувати добављача",
"providerUpdated": "Provider updated", "providerUpdated": "Провајдер је ажуриран",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Није могуће уклонити добављача",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Адресе на вашој приватној мрежи прво треба да дозволе администратору хоста.",
"providerOllama": "Ollama", "providerOllama": "Олама",
"providerAnthropic": "Anthropic", "providerAnthropic": "Антропски",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Гугл Џемини",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Компатибилно са OpenAI-ом",
"toolArguments": "Input", "toolArguments": "Унос",
"toolResult": "Result", "toolResult": "Резултат",
"statusApplied": "Applied", "statusApplied": "Примењено",
"statusRejected": "Rejected", "statusRejected": "Одбијено",
"proposalApplied": "Change applied", "proposalApplied": "Промена је примењена",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Није могуће применити промену",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Није могуће одбити промену",
"enableTitle": "Enable the AI assistant", "enableTitle": "Омогућите вештачку интелигенцију (AI) асистента",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Нека асистент прочита ваша подешавања и предложи измене које ћете одобрити.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Дозволи дијагностичке команде само за читање",
"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.", "readOnlyCommandsDescription": "Асистент може да покрене кратку листу безбедних команди као што су df и uptime без сваког питања. Све што мења сервер се увек прво предлаже.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Нисмо могли да контактирамо добављача, тако да је ово општа листа. Можете да унесете било који назив модела.",
"modelCustom": "Enter a model name", "modelCustom": "Унесите назив модела",
"modelRefresh": "Refresh list", "modelRefresh": "Освежи листу",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Изаберите или унесите модел",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Унесите @ да бисте референцирали хост, исечак кода или аутоматизацију. Промене се предлажу да бисте их одобрили.",
"runCommandTitle": "Run command", "runCommandTitle": "Покрени команду",
"assistant": "AI Assistant", "assistant": "АИ асистент",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Питајте асистента о овом домаћину. Све што мења стање прво захтева ваше одобрење.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Питајте о овом домаћину...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Још увек није конфигурисан ниједан добављач вештачке интелигенције. Додајте га на картици помоћника за вештачку интелигенцију.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Покреће се у вашој отвореној терминалној сесији.",
"runInTerminal": "Run", "runInTerminal": "Трчи",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Ево мог терминалног излаза:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "Вештачка интелигенција"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "Асистент за вештачку интелигенцију",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix може да укључи опционог AI асистента. Ово можете касније променити у подешавањима.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Остави то искључено",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Термикс ради као и сада. Асистент остаје скривен.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Укључи га",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "Додаје асистента који чита ваша подешавања и предлаже измене које одобравате. Потребан је добављач кога ви обезбедите, као што је локални Олама.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Ништа се не шаље нигде док не додате провајдера и не пошаљете поруку."
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "Прикажи документе"
} }
} }
+79 -79
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Använd assistenten",
"description": "Open the assistant and ask it things." "description": "Öppna assistenten och fråga den saker."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Hantera leverantörer",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Lägg till, redigera och ta bort AI-leverantörerna och deras API-nycklar."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Tillämpa förslag",
"description": "Let the assistant carry out the changes it suggests." "description": "Låt assistenten utföra de ändringar den föreslår."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Använd AI från andra funktioner",
"description": "Other features may call the assistant on your behalf." "description": "Andra funktioner kan ringa assistenten åt dig."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Dela API-nyckeln",
"description": "Other features may use the stored AI API key without seeing it." "description": "Andra funktioner kan använda den lagrade AI API-nyckeln utan att se den."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "AI-assistenten är avstängd på den här servern.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Aktivera AI-assistenten ovan för att lägga till leverantörer.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "AI-assistent",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Låt användare aktivera AI-assistenten. Medan detta är avstängt är assistenten dold och blockerad för alla."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Tillåtna privata AI-värdar",
"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": "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Aktivera AI-assistenten",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Assistent",
"send": "Send", "send": "Skicka",
"stop": "Stop", "stop": "Stopp",
"save": "Save", "save": "Spara",
"cancel": "Cancel", "cancel": "Avboka",
"running": "running", "running": "spring",
"approve": "Approve", "approve": "Godkänna",
"reject": "Reject", "reject": "Avvisa",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Fråga om era servrar, eller beskriv en förändring att föreslå",
"selectProvider": "Select a provider", "selectProvider": "Välj en leverantör",
"providerSettings": "Provider settings", "providerSettings": "Leverantörsinställningar",
"addProvider": "Add provider", "addProvider": "Lägg till leverantör",
"editProvider": "Edit provider", "editProvider": "Redigera leverantör",
"removeProvider": "Remove provider", "removeProvider": "Ta bort leverantör",
"providerType": "Provider", "providerType": "Leverantör",
"providerLabel": "Name", "providerLabel": "Namn",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Till exempel: Lokal Ollama",
"baseUrl": "Server address", "baseUrl": "Serveradress",
"apiKey": "API key", "apiKey": "API-nyckel",
"defaultModel": "Default model", "defaultModel": "Standardmodell",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Till exempel: llama3.1 eller claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Ge den här leverantören ett namn",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Kunde inte spara leverantören",
"providerUpdated": "Provider updated", "providerUpdated": "Leverantören uppdaterad",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Kunde inte ta bort leverantören",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Adresser i ditt privata nätverk behöver en administratör som först tillåter värden.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antropisk",
"providerOpenai": "OpenAI", "providerOpenai": "Öppen AI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "OpenAI-kompatibel",
"toolArguments": "Input", "toolArguments": "Input",
"toolResult": "Result", "toolResult": "Resultat",
"statusApplied": "Applied", "statusApplied": "Tillämpad",
"statusRejected": "Rejected", "statusRejected": "Avvisad",
"proposalApplied": "Change applied", "proposalApplied": "Ändring tillämpad",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Kunde inte tillämpa ändringen",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Kunde inte avvisa ändringen",
"enableTitle": "Enable the AI assistant", "enableTitle": "Aktivera AI-assistenten",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Låt assistenten läsa dina inställningar och föreslå ändringar som du kan godkänna.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Tillåt skrivskyddade diagnostikkommandon",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Kunde inte nå leverantören, så detta är en allmän lista. Du kan skriva in vilket modellnamn som helst.",
"modelCustom": "Enter a model name", "modelCustom": "Ange ett modellnamn",
"modelRefresh": "Refresh list", "modelRefresh": "Uppdatera listan",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Välj eller skriv en modell",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "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": "Run command", "runCommandTitle": "Kör kommando",
"assistant": "AI Assistant", "assistant": "AI-assistent",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Fråga assistenten om den här värden. Allt som ändras kräver ditt godkännande först.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Fråga om den här värden...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Ingen AI-leverantör är konfigurerad ännu. Lägg till en på fliken AI-assistent.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Körs i din öppna terminalsession.",
"runInTerminal": "Run", "runInTerminal": "Sikt",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Här är min terminalutgång:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "AI"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "AI-assistent",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix kan inkludera en valfri AI-assistent. Du kan ändra detta senare i dina inställningar.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Lämna den av",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix fungerar som den gör nu. Assistenten förblir dold.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Slå på den",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Ingenting skickas någonstans förrän du lägger till en leverantör och skickar ett meddelande."
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "Visa dokument"
} }
} }
+82 -82
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "ใช้ตัวช่วย",
"description": "Open the assistant and ask it things." "description": "เปิดผู้ช่วยเสมือนจริงแล้วถามคำถามได้เลย"
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "จัดการผู้ให้บริการ",
"description": "Add, edit and remove the AI providers and their API keys." "description": "เพิ่ม แก้ไข และลบผู้ให้บริการ AI และคีย์ API ของพวกเขา"
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "ยื่นข้อเสนอ",
"description": "Let the assistant carry out the changes it suggests." "description": "ให้ผู้ช่วยดำเนินการเปลี่ยนแปลงตามที่ระบบแนะนำ"
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "ใช้ AI จากฟีเจอร์อื่นๆ",
"description": "Other features may call the assistant on your behalf." "description": "ฟังก์ชันอื่นๆ อาจโทรติดต่อผู้ช่วยในนามของคุณ"
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "แชร์คีย์ API",
"description": "Other features may use the stored AI API key without seeing it." "description": "ฟังก์ชันอื่นๆ อาจใช้คีย์ API ของ AI ที่บันทึกไว้โดยไม่เห็นคีย์นั้น"
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "ระบบผู้ช่วย AI ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "เปิดใช้งานผู้ช่วย AI ด้านบนเพื่อเพิ่มผู้ให้บริการ",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "ผู้ช่วย AI",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "อนุญาตให้ผู้ใช้เปิดใช้งานผู้ช่วย AI ได้ เมื่อปิดใช้งานอยู่ ผู้ช่วยจะถูกซ่อนและบล็อกไม่ให้ใครเห็น"
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "เปิดใช้งานผู้ช่วย AI",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "อนุญาตให้ผู้ช่วย AI ช่วยเหลือในเทอร์มินัลของโฮสต์นี้ โดยค่าเริ่มต้นจะปิดอยู่ และยังคงต้องเปิดใช้งาน AI สำหรับบัญชีของคุณก่อน"
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "ผู้ช่วย",
"send": "Send", "send": "ส่ง",
"stop": "Stop", "stop": "หยุด",
"save": "Save", "save": "บันทึก",
"cancel": "Cancel", "cancel": "ยกเลิก",
"running": "running", "running": "วิ่ง",
"approve": "Approve", "approve": "อนุมัติ",
"reject": "Reject", "reject": "ปฏิเสธ",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "สอบถามเกี่ยวกับเซิร์ฟเวอร์ของคุณ หรืออธิบายการเปลี่ยนแปลงที่คุณต้องการเสนอแนะ",
"selectProvider": "Select a provider", "selectProvider": "เลือกผู้ให้บริการ",
"providerSettings": "Provider settings", "providerSettings": "การตั้งค่าผู้ให้บริการ",
"addProvider": "Add provider", "addProvider": "เพิ่มผู้ให้บริการ",
"editProvider": "Edit provider", "editProvider": "แก้ไขผู้ให้บริการ",
"removeProvider": "Remove provider", "removeProvider": "ลบผู้ให้บริการ",
"providerType": "Provider", "providerType": "ผู้ให้บริการ",
"providerLabel": "Name", "providerLabel": "ชื่อ",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "ตัวอย่างเช่น: Ollama ท้องถิ่น",
"baseUrl": "Server address", "baseUrl": "ที่อยู่เซิร์ฟเวอร์",
"apiKey": "API key", "apiKey": "คีย์ API",
"defaultModel": "Default model", "defaultModel": "โมเดลเริ่มต้น",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "ตัวอย่างเช่น: llama3.1 หรือ claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "ตั้งชื่อให้ผู้ให้บริการรายนี้",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "ไม่สามารถบันทึกผู้ให้บริการได้",
"providerUpdated": "Provider updated", "providerUpdated": "ผู้ให้บริการได้รับการอัปเดตแล้ว",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "ไม่สามารถลบผู้ให้บริการได้",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "การเข้าถึงที่อยู่บนเครือข่ายส่วนตัวของคุณนั้น จำเป็นต้องให้ผู้ดูแลระบบอนุญาตก่อน",
"providerOllama": "Ollama", "providerOllama": "โอลาม่า",
"providerAnthropic": "Anthropic", "providerAnthropic": "แอนโทรปิก",
"providerOpenai": "OpenAI", "providerOpenai": "โอเพ่นไอ",
"providerGemini": "Google Gemini", "providerGemini": "กูเกิล เจมินี",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "เข้ากันได้กับ OpenAI",
"toolArguments": "Input", "toolArguments": "ป้อนข้อมูล",
"toolResult": "Result", "toolResult": "ผลลัพธ์",
"statusApplied": "Applied", "statusApplied": "สมัครแล้ว",
"statusRejected": "Rejected", "statusRejected": "ถูกปฏิเสธ",
"proposalApplied": "Change applied", "proposalApplied": "มีการเปลี่ยนแปลงเกิดขึ้น",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "ไม่สามารถทำการเปลี่ยนแปลงได้",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "ไม่สามารถปฏิเสธการเปลี่ยนแปลงได้",
"enableTitle": "Enable the AI assistant", "enableTitle": "เปิดใช้งานผู้ช่วย AI",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "ให้ผู้ช่วยอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงเพื่อให้คุณอนุมัติ",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "อนุญาตคำสั่งวินิจฉัยแบบอ่านอย่างเดียว",
"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.", "readOnlyCommandsDescription": "ผู้ช่วยอาจเรียกใช้คำสั่งที่ปลอดภัยเพียงไม่กี่คำสั่ง เช่น df และ uptime โดยไม่ต้องถามทุกครั้ง คำสั่งใดๆ ที่เปลี่ยนแปลงสถานะของเซิร์ฟเวอร์จะถูกเสนอให้ดำเนินการก่อนเสมอ",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "ไม่สามารถติดต่อผู้ให้บริการได้ ดังนั้นนี่จึงเป็นรายการทั่วไป คุณสามารถพิมพ์ชื่อรุ่นใดก็ได้",
"modelCustom": "Enter a model name", "modelCustom": "ป้อนชื่อรุ่น",
"modelRefresh": "Refresh list", "modelRefresh": "รีเฟรชรายการ",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "เลือกหรือพิมพ์แบบจำลอง",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "พิมพ์ @ เพื่ออ้างอิงถึงโฮสต์ สนิปเป็ต หรือระบบอัตโนมัติ การเปลี่ยนแปลงที่เสนอจะถูกนำมาให้คุณอนุมัติ",
"runCommandTitle": "Run command", "runCommandTitle": "เรียกใช้คำสั่ง",
"assistant": "AI Assistant", "assistant": "ผู้ช่วย AI",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "สอบถามผู้ช่วยเกี่ยวกับโฮสต์นี้ การเปลี่ยนแปลงสถานะใดๆ ต้องได้รับการอนุมัติจากคุณก่อน",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "สอบถามเกี่ยวกับโฮสต์รายนี้...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "ยังไม่ได้ตั้งค่าผู้ให้บริการ AI เพิ่มผู้ให้บริการในแท็บผู้ช่วย AI",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "ทำงานในเซสชันเทอร์มินัลที่เปิดอยู่ของคุณ",
"runInTerminal": "Run", "runInTerminal": "วิ่ง",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "นี่คือผลลัพธ์จากเทอร์มินัลของฉัน:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "AI"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "ผู้ช่วย AI",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix อาจมีผู้ช่วย AI เสริม คุณสามารถเปลี่ยนการตั้งค่าได้ในภายหลัง",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "ปิดมันไว้",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix ทำงานเหมือนเดิมทุกประการ ตัวช่วยยังคงซ่อนอยู่",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "เปิดใช้งาน",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "เพิ่มผู้ช่วยที่จะอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงที่คุณต้องอนุมัติ จำเป็นต้องมีผู้ให้บริการที่คุณจัดหาให้ เช่น Ollama ในพื้นที่ของคุณ",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "จะไม่มีการส่งข้อมูลใดๆ จนกว่าคุณจะเพิ่มผู้ให้บริการและส่งข้อความ"
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "ดูเอกสาร"
} }
} }
+72 -72
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Yardımcıyı kullanın",
"description": "Open the assistant and ask it things." "description": "Asistanı açın ve ona sorular sorun."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Sağlayıcıları yönetin",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Yapay zeka sağlayıcılarını ve API anahtarlarını ekleyin, düzenleyin ve kaldırın."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Tekliflerinizi sunun.",
"description": "Let the assistant carry out the changes it suggests." "description": "Yardımcının önerdiği değişiklikleri uygulamasına izin verin."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Diğer özelliklerden yapay zeka kullanın.",
"description": "Other features may call the assistant on your behalf." "description": "Diğer özellikler sizin adınıza asistanı arayabilir."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "API anahtarını paylaşın",
"description": "Other features may use the stored AI API key without seeing it." "description": "Diğer özellikler, kaydedilmiş yapay zeka API anahtarını görmeden kullanabilir."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "Bu sunucuda yapay zeka asistanı devre dışı bırakılmıştır.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Sağlayıcı eklemek için yukarıdaki yapay zeka asistanını açın.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "Yapay zeka asistanı",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "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": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Özel yapay zeka sunucularına izin verildi.",
"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": "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Yapay Zeka Asistanını Etkinleştir",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Asistan",
"send": "Send", "send": "Göndermek",
"stop": "Durdurma", "stop": "Durdurma",
"save": "Kaydet", "save": "Kaydet",
"cancel": "İptal", "cancel": "İptal",
"running": "çalışan", "running": "çalışan",
"approve": "Approve", "approve": "Onaylamak",
"reject": "Reject", "reject": "Reddetmek",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Sunucularınız hakkında bilgi isteyin veya önereceğiniz bir değişikliği açıklayın.",
"selectProvider": "Select a provider", "selectProvider": "Bir sağlayıcı seçin",
"providerSettings": "Provider settings", "providerSettings": "Sağlayıcı ayarları",
"addProvider": "Add provider", "addProvider": "Sağlayıcı ekle",
"editProvider": "Edit provider", "editProvider": "Sağlayıcıyı düzenle",
"removeProvider": "Remove provider", "removeProvider": "Sağlayıcıyı kaldır",
"providerType": "Provider", "providerType": "Sağlayıcı",
"providerLabel": "Ad", "providerLabel": "Ad",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Örneğin: Yerel Ollama",
"baseUrl": "Server address", "baseUrl": "Sunucu adresi",
"apiKey": "API key", "apiKey": "API anahtarı",
"defaultModel": "Default model", "defaultModel": "Varsayılan model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Örneğin: llama3.1 veya claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Bu sağlayıcıya bir isim verin.",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Sağlayıcı kaydedilemedi.",
"providerUpdated": "Provider updated", "providerUpdated": "Sağlayıcı güncellendi.",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Sağlayıcı kaldırılamadı.",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Özel ağınızdaki adreslerin kullanılabilmesi için öncelikle yöneticinin sunucuya izin vermesi gerekmektedir.",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Antropik",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "OpenAI uyumlu",
"toolArguments": "Giriş", "toolArguments": "Giriş",
"toolResult": "Result", "toolResult": "Sonuç",
"statusApplied": "Applied", "statusApplied": "Uygulandı",
"statusRejected": "Rejected", "statusRejected": "Reddedilmiş",
"proposalApplied": "Change applied", "proposalApplied": "Değişiklik uygulandı.",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Değişiklik uygulanamadı.",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Değişikliği reddedemedim.",
"enableTitle": "Enable the AI assistant", "enableTitle": "Yapay zekâ asistanını etkinleştirin",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Asistanın ayarlarınızı okumasını ve onaylamanız için değişiklik önerileri sunmasını sağlayın.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Yalnızca okuma amaçlı tanı komutlarına izin ver",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Sağlayıcıya ulaşılamadı, bu nedenle bu genel bir listedir. İstediğiniz model adını yazabilirsiniz.",
"modelCustom": "Enter a model name", "modelCustom": "Bir model adı girin",
"modelRefresh": "Refresh list", "modelRefresh": "Listeyi yenile",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Bir model seçin veya yazın.",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "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": "Run command", "runCommandTitle": "Çalıştır komutu",
"assistant": "AI Assistant", "assistant": "Yapay Zeka Asistanı",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Bu ev sahibi hakkında asistana danışın. Durum değişikliği gerektiren her şey önce sizin onayınızı gerektirir.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Bu ev sahibi hakkında bilgi isteyin...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Henüz hiçbir yapay zeka sağlayıcısı yapılandırılmadı. Yapay zeka asistanı sekmesinden bir tane ekleyin.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Açık terminal oturumunuzda çalışır.",
"runInTerminal": "Çalıştı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": { "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": { "nav": {
"ai": "AI" "ai": "Yapay zeka"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "Yapay zeka asistanı",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix isteğe bağlı bir yapay zeka asistanı içerebilir. Bunu daha sonra ayarlarınızdan değiştirebilirsiniz.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Kapalı bırakın",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix şu anki haliyle çalışıyor. Asistan gizli kalıyor.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Açın",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Bir sağlayıcı ekleyip mesaj gönderene kadar hiçbir şey hiçbir yere gönderilmez."
}, },
"hosts": { "hosts": {
"docsLink": "Dokümanları görüntüle" "docsLink": "Dokümanları görüntüle"
+82 -82
View File
@@ -1,119 +1,119 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Використовуйте помічника",
"description": "Open the assistant and ask it things." "description": "Відкрийте помічника та запитайте його."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Керування постачальниками",
"description": "Add, edit and remove the AI providers and their API keys." "description": "Додавайте, редагуйте та видаляйте постачальників штучного інтелекту та їхні ключі API."
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "Застосувати пропозиції",
"description": "Let the assistant carry out the changes it suggests." "description": "Нехай помічник внесе запропоновані ним зміни."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Використання ШІ з інших функцій",
"description": "Other features may call the assistant on your behalf." "description": "Інші функції можуть викликати помічника від вашого імені."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Поділитися ключем API",
"description": "Other features may use the stored AI API key without seeing it." "description": "Інші функції можуть використовувати збережений ключ API штучного інтелекту, не бачачи його."
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "Помічник зі штучним інтелектом вимкнено на цьому сервері.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Увімкніть помічника зі штучним інтелектом вище, щоб додати постачальників.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "Асистент зі штучним інтелектом",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "Дозвольте користувачам увімкнути помічника зі штучним інтелектом. Коли це вимкнено, помічник прихований і заблокований для всіх."
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Дозволені приватні хости ШІ",
"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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Увімкнути помічника зі штучним інтелектом",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "Дозволити помічнику зі штучним інтелектом допомагати в терміналі цього хоста. Вимкнено за замовчуванням, але все одно потребує ввімкнення штучного інтелекту для вашого облікового запису."
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "Помічник",
"send": "Send", "send": "Надіслати",
"stop": "Stop", "stop": "СТІЙ",
"save": "Save", "save": "Зберегти",
"cancel": "Cancel", "cancel": "Скасувати",
"running": "running", "running": "біг",
"approve": "Approve", "approve": "Схвалити",
"reject": "Reject", "reject": "Відхилити",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "Запитайте про ваші сервери або опишіть зміну, яку ви хочете запропонувати",
"selectProvider": "Select a provider", "selectProvider": "Виберіть постачальника",
"providerSettings": "Provider settings", "providerSettings": "Налаштування постачальника",
"addProvider": "Add provider", "addProvider": "Додати постачальника",
"editProvider": "Edit provider", "editProvider": "Редагувати постачальника",
"removeProvider": "Remove provider", "removeProvider": "Видалити постачальника",
"providerType": "Provider", "providerType": "Постачальник",
"providerLabel": "Name", "providerLabel": "Ім'я",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Наприклад: Місцевий Оллама",
"baseUrl": "Server address", "baseUrl": "Адреса сервера",
"apiKey": "API key", "apiKey": "Ключ API",
"defaultModel": "Default model", "defaultModel": "Модель за замовчуванням",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Наприклад: llama3.1 або claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Дайте назву цьому постачальнику",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Не вдалося зберегти постачальника",
"providerUpdated": "Provider updated", "providerUpdated": "Постачальника оновлено",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Не вдалося видалити постачальника",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "Адреси у вашій приватній мережі спочатку потребують дозволу адміністратора хоста.",
"providerOllama": "Ollama", "providerOllama": "Оллама",
"providerAnthropic": "Anthropic", "providerAnthropic": "Антропний",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Близнюки",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Сумісний з OpenAI",
"toolArguments": "Input", "toolArguments": "Вхід",
"toolResult": "Result", "toolResult": "Результат",
"statusApplied": "Applied", "statusApplied": "Застосовано",
"statusRejected": "Rejected", "statusRejected": "Відхилено",
"proposalApplied": "Change applied", "proposalApplied": "Зміну застосовано",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Не вдалося застосувати зміну",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Не вдалося відхилити зміну",
"enableTitle": "Enable the AI assistant", "enableTitle": "Увімкнути помічника зі штучним інтелектом",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "Дозвольте асистенту прочитати ваші налаштування та запропонувати зміни для вашого схвалення.",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "Дозволити діагностичні команди лише для читання",
"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.", "readOnlyCommandsDescription": "Помічник може виконувати короткий список безпечних команд, таких як df та uptime, не запитуючи щоразу. Будь-які зміни на сервері завжди пропонуються першими.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "Не вдалося зв’язатися з постачальником, тому це загальний список. Ви можете ввести будь-яку назву моделі.",
"modelCustom": "Enter a model name", "modelCustom": "Введіть назву моделі",
"modelRefresh": "Refresh list", "modelRefresh": "Оновити список",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Виберіть або введіть модель",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "Введіть @, щоб посилатися на хост, фрагмент або автоматизацію. Зміни пропонуються для вашого схвалення.",
"runCommandTitle": "Run command", "runCommandTitle": "Виконати команду",
"assistant": "AI Assistant", "assistant": "Помічник зі штучним інтелектом",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "Запитайте асистента про цього хоста. Будь-яка зміна стану потребує вашого попереднього схвалення.",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "Запитайте про цього хоста...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "Постачальника штучного інтелекту ще не налаштовано. Додайте його на вкладці помічника штучного інтелекту.",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "Працює у вашому відкритому термінальному сеансі.",
"runInTerminal": "Run", "runInTerminal": "Бігти",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "Ось мій вивід з терміналу:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "Штучний інтелект"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "Асистент зі штучним інтелектом",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix може включати додатковий помічник зі штучним інтелектом. Ви можете змінити це пізніше в налаштуваннях.",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "Залиште це вимкненим",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix працює як і зараз. Помічник залишається прихованим.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Увімкніть це",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "Додає помічника, який читає ваші налаштування та пропонує зміни, які ви схвалюєте. Потрібен постачальник, якого ви надаєте, наприклад, місцевий Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "Нічого нікуди не надсилається, доки ви не додасте постачальника та не надішлете повідомлення."
}, },
"hosts": { "hosts": {
"docsLink": "View docs" "docsLink": "Переглянути документи"
} }
} }
+72 -72
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "Sử dụng trợ lý",
"description": "Open the assistant and ask it things." "description": "Mở trợ lý ảo và hỏi nó những câu hỏi."
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "Quản lý nhà cung cấp",
"description": "Add, edit and remove the AI providers and their API keys." "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": { "apply_proposals": {
"title": "Apply proposals", "title": "Áp dụng các đề xuất",
"description": "Let the assistant carry out the changes it suggests." "description": "Hãy để trợ lý thực hiện những thay đổi mà nó đề xuất."
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "Sử dụng trí tuệ nhân tạo từ các tính năng khác",
"description": "Other features may call the assistant on your behalf." "description": "Các tính năng khác có thể gọi trợ lý ảo thay mặt bạn."
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "Chia sẻ khóa API",
"description": "Other features may use the stored AI API key without seeing it." "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": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "Trợ lý AI đã bị tắt trên máy chủ này.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "Hãy bật trợ lý AI ở trên để thêm nhà cung cấp.",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "Trợ lý AI",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "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": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "Cho phép máy chủ AI riêng",
"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": "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "Kích hoạt Trợ lý AI",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "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": { "ai": {
"title": "Assistant", "title": "Trợ lý",
"send": "Send", "send": "Gửi",
"stop": "Bit dừng", "stop": "Bit dừng",
"save": "Lưu", "save": "Lưu",
"cancel": "Hủy", "cancel": "Hủy",
"running": "đang chạy", "running": "đang chạy",
"approve": "Approve", "approve": "Chấp thuận",
"reject": "Reject", "reject": "Từ chối",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "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": "Select a provider", "selectProvider": "Chọn nhà cung cấp",
"providerSettings": "Provider settings", "providerSettings": "Cài đặt nhà cung cấp",
"addProvider": "Add provider", "addProvider": "Thêm nhà cung cấp",
"editProvider": "Edit provider", "editProvider": "Chỉnh sửa nhà cung cấp",
"removeProvider": "Remove provider", "removeProvider": "Xóa nhà cung cấp",
"providerType": "Provider", "providerType": "Nhà cung cấp",
"providerLabel": "Tên", "providerLabel": "Tên",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "Ví dụ: Ollama địa phương",
"baseUrl": "Server address", "baseUrl": "Địa chỉ máy chủ",
"apiKey": "API key", "apiKey": "Khóa API",
"defaultModel": "Default model", "defaultModel": "Mô hình mặc định",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "Ví dụ: llama3.1 hoặc claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "Đặt tên cho nhà cung cấp này",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "Không thể lưu nhà cung cấp",
"providerUpdated": "Provider updated", "providerUpdated": "Nhà cung cấp đã cập nhật",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "Không thể xóa nhà cung cấp",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "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", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Nhân loại",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "Tương thích với OpenAI",
"toolArguments": "Nhập", "toolArguments": "Nhập",
"toolResult": "Result", "toolResult": "Kết quả",
"statusApplied": "Applied", "statusApplied": "Đã áp dụng",
"statusRejected": "Rejected", "statusRejected": "Vật bị loại bỏ",
"proposalApplied": "Change applied", "proposalApplied": "Thay đổi đã được áp dụng",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "Không thể áp dụng thay đổi",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "Không thể từ chối thay đổi",
"enableTitle": "Enable the AI assistant", "enableTitle": "Kích hoạt trợ lý AI",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "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": "Allow read-only diagnostic commands", "readOnlyCommands": "Cho phép các lệnh chẩn đoán chỉ đọc",
"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.", "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": "Could not reach the provider, so this is a general list. You can type any model name.", "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": "Enter a model name", "modelCustom": "Nhập tên mẫu",
"modelRefresh": "Refresh list", "modelRefresh": "Làm mới danh sách",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "Chọn hoặc nhập mô hình",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "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": "Run command", "runCommandTitle": "Chạy lệnh",
"assistant": "AI Assistant", "assistant": "Trợ lý AI",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "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": "Ask about this host...", "terminalPanelPlaceholder": "Hãy hỏi về chủ nhà này...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "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": "Runs in your open terminal session.", "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", "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": { "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": { "nav": {
"ai": "AI" "ai": "Trí tuệ nhân tạo"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "Trợ lý AI",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "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": "Leave it off", "aiSkipTitle": "Đừng làm vậy",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix vẫn hoạt động như hiện tại. Trợ lý ảo vẫn ẩn mình.",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "Bật nó lên",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "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": "Nothing is sent anywhere until you add a provider and send a message." "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": { "hosts": {
"docsLink": "Xem tài liệu" "docsLink": "Xem tài liệu"
+51 -51
View File
@@ -1,29 +1,29 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "使用助手",
"description": "Open the assistant and ask it things." "description": "打开助手并向它提问。"
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "管理供应商",
"description": "Add, edit and remove the AI providers and their API keys." "description": "添加、编辑和删除人工智能提供商及其 API 密钥。"
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "提交提案",
"description": "Let the assistant carry out the changes it suggests." "description": "让助手执行它建议的更改。"
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "利用其他功能中的人工智能",
"description": "Other features may call the assistant on your behalf." "description": "其他功能可能会代表您呼叫语音助手。"
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "分享 API 密钥",
"description": "Other features may use the stored AI API key without seeing it." "description": "其他功能可能在看不到密钥的情况下使用已存储的 AI API 密钥。"
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "此服务器上的AI助手已关闭。",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "开启上方的AI助手,即可添加服务提供商。",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI 助手", "label": "AI 助手",
@@ -31,74 +31,74 @@
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "允许的私有 AI 主机", "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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "启用人工智能助手",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "允许 AI 助手在此主机的终端上提供帮助。默认情况下处于关闭状态,但仍需在您的帐户中启用 AI 功能。"
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "助手",
"send": "Send", "send": "发送",
"stop": "停止", "stop": "停止",
"save": "保存", "save": "保存",
"cancel": "取消", "cancel": "取消",
"running": "运行中", "running": "运行中",
"approve": "Approve", "approve": "批准",
"reject": "Reject", "reject": "拒绝",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "询问服务器相关情况,或描述要提出的变更建议",
"selectProvider": "Select a provider", "selectProvider": "选择服务提供商",
"providerSettings": "Provider settings", "providerSettings": "提供商设置",
"addProvider": "Add provider", "addProvider": "添加提供商",
"editProvider": "编辑提供商", "editProvider": "编辑提供商",
"removeProvider": "Remove provider", "removeProvider": "移除提供者",
"providerType": "提供商", "providerType": "提供商",
"providerLabel": "名称", "providerLabel": "名称",
"providerLabelPlaceholder": "例如:本地 Ollama", "providerLabelPlaceholder": "例如:本地 Ollama",
"baseUrl": "Server address", "baseUrl": "服务器地址",
"apiKey": "API 密钥", "apiKey": "API 密钥",
"defaultModel": "Default model", "defaultModel": "默认模型",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
"labelRequired": "给此提供商起个名字", "labelRequired": "给此提供商起个名字",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "无法保存提供商",
"providerUpdated": "Provider updated", "providerUpdated": "提供商已更新",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "无法移除提供商",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "您私有网络上的地址需要管理员先允许主机访问。",
"providerOllama": "Ollama", "providerOllama": "Ollama",
"providerAnthropic": "Anthropic", "providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "兼容 OpenAI",
"toolArguments": "输入", "toolArguments": "输入",
"toolResult": "Result", "toolResult": "结果",
"statusApplied": "已应用", "statusApplied": "已应用",
"statusRejected": "Rejected", "statusRejected": "已拒绝",
"proposalApplied": "Change applied", "proposalApplied": "变更已生效",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "无法应用更改",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "无法拒绝更改",
"enableTitle": "启用 AI 助手", "enableTitle": "启用 AI 助手",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "让助手读取您的设置并提出更改建议,供您批准。",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "允许只读诊断命令",
"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.", "readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。",
"modelDetectFailed": "无法联系到提供商,所以这里提供的是通用列表。您可以输入任何模型名称。", "modelDetectFailed": "无法联系到提供商,所以这里提供的是通用列表。您可以输入任何模型名称。",
"modelCustom": "请输入模型名称", "modelCustom": "请输入模型名称",
"modelRefresh": "Refresh list", "modelRefresh": "刷新列表",
"modelPlaceholder": "选择或输入模型", "modelPlaceholder": "选择或输入模型",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "输入 @ 符号可引用主机、代码片段或自动化流程。系统会提出更改建议,供您批准。",
"runCommandTitle": "Run command", "runCommandTitle": "运行命令",
"assistant": "AI Assistant", "assistant": "人工智能助手",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "向助理询问有关此房东的信息。任何状态变更都需要您先批准。",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "询问一下这位房东的情况……",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "尚未配置任何 AI 提供商。请在 AI 助手选项卡中添加。",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "在打开的终端会话中运行。",
"runInTerminal": "运行", "runInTerminal": "运行",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "以下是我的终端输出:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
@@ -106,7 +106,7 @@
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI 助手", "aiTitle": "AI 助手",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。",
"aiSkipTitle": "禁用", "aiSkipTitle": "禁用",
"aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。", "aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。",
"aiEnableTitle": "启用", "aiEnableTitle": "启用",
+73 -73
View File
@@ -1,117 +1,117 @@
{ {
"permissions": { "permissions": {
"use": { "use": {
"title": "Use the assistant", "title": "使用助手",
"description": "Open the assistant and ask it things." "description": "打開助手並向它提問。"
}, },
"manage_providers": { "manage_providers": {
"title": "Manage providers", "title": "管理供應商",
"description": "Add, edit and remove the AI providers and their API keys." "description": "新增、編輯和刪除人工智慧提供者及其 API 金鑰。"
}, },
"apply_proposals": { "apply_proposals": {
"title": "Apply proposals", "title": "提交提案",
"description": "Let the assistant carry out the changes it suggests." "description": "讓助手執行它建議的更改。"
}, },
"services.use": { "services.use": {
"title": "Use AI from other features", "title": "利用其他功能中的人工智慧",
"description": "Other features may call the assistant on your behalf." "description": "其他功能可能會代表您呼叫語音助理。"
}, },
"secrets.share": { "secrets.share": {
"title": "Share the API key", "title": "分享 API 金鑰",
"description": "Other features may use the stored AI API key without seeing it." "description": "其他功能可能會在不查看金鑰的情況下使用已儲存的 AI API 金鑰。"
} }
}, },
"settings": { "settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.", "assistantUnavailable": "此伺服器上的AI助理已關閉。",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.", "providersNeedOptIn": "開啟上方的AI助手,即可新增服務提供者。",
"admin": { "admin": {
"globallyEnabled": { "globallyEnabled": {
"label": "AI assistant", "label": "人工智慧助手",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone." "description": "允許用戶開啟AI助理。關閉此功能後,助手將被隱藏,所有用戶均無法存取。"
}, },
"privateEndpoints": { "privateEndpoints": {
"label": "Allowed private AI hosts", "label": "允許的私有人工智慧主機",
"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": { "host": {
"enableAiAssistant": { "enableAiAssistant": {
"label": "Enable AI Assistant", "label": "啟用人工智慧助手",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account." "description": "允許 AI 助理在此主機的終端機上提供協助。預設為關閉狀態,但仍需在您的帳戶中啟用 AI 功能。"
} }
} }
}, },
"ai": { "ai": {
"title": "Assistant", "title": "助理",
"send": "Send", "send": "傳送",
"stop": "停止位元", "stop": "停止位元",
"save": "儲存", "save": "儲存",
"cancel": "取消", "cancel": "取消",
"running": "執行中", "running": "執行中",
"approve": "Approve", "approve": "核准",
"reject": "Reject", "reject": "拒絕",
"inputPlaceholder": "Ask about your servers, or describe a change to propose", "inputPlaceholder": "詢問伺服器相關情況,或描述要提出的變更建議",
"selectProvider": "Select a provider", "selectProvider": "選擇服務提供者",
"providerSettings": "Provider settings", "providerSettings": "提供者設定",
"addProvider": "Add provider", "addProvider": "新增提供者",
"editProvider": "Edit provider", "editProvider": "編輯提供者",
"removeProvider": "Remove provider", "removeProvider": "移除提供者",
"providerType": "Provider", "providerType": "提供者",
"providerLabel": "名稱", "providerLabel": "名稱",
"providerLabelPlaceholder": "For example: Local Ollama", "providerLabelPlaceholder": "例如:本地奧拉馬",
"baseUrl": "Server address", "baseUrl": "伺服器位址",
"apiKey": "API key", "apiKey": "API金鑰",
"defaultModel": "Default model", "defaultModel": "預設模型",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5", "defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
"labelRequired": "Give this provider a name", "labelRequired": "給這家服務提供者取個名字",
"providerSaveFailed": "Could not save the provider", "providerSaveFailed": "無法儲存提供者",
"providerUpdated": "Provider updated", "providerUpdated": "提供者已更新",
"providerDeleteFailed": "Could not remove the provider", "providerDeleteFailed": "無法移除提供者",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.", "privateEndpointHint": "您私有網路上的位址需要管理員先允許主機存取。",
"providerOllama": "Ollama", "providerOllama": "奧拉瑪",
"providerAnthropic": "Anthropic", "providerAnthropic": "人類學",
"providerOpenai": "OpenAI", "providerOpenai": "OpenAI",
"providerGemini": "Google Gemini", "providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible", "providerOpenaiCompatible": "相容 OpenAI",
"toolArguments": "輸入", "toolArguments": "輸入",
"toolResult": "Result", "toolResult": "結果",
"statusApplied": "Applied", "statusApplied": "應用",
"statusRejected": "Rejected", "statusRejected": "已拒絕",
"proposalApplied": "Change applied", "proposalApplied": "變更已生效",
"proposalApplyFailed": "Could not apply the change", "proposalApplyFailed": "無法套用變更",
"proposalRejectFailed": "Could not reject the change", "proposalRejectFailed": "無法拒絕更改",
"enableTitle": "Enable the AI assistant", "enableTitle": "啟用人工智慧助手",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.", "enableDescription": "請助手讀取您的設定並提出更改建議,供您批准。",
"readOnlyCommands": "Allow read-only diagnostic commands", "readOnlyCommands": "允許只讀診斷命令",
"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.", "readOnlyCommandsDescription": "助手可能會在不每次都詢問的情況下執行一些安全的命令,例如 `df` 和 `uptime`。任何會更改伺服器的操作都會優先被提出。",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.", "modelDetectFailed": "無法聯繫到供應商,所以這裡提供的是通用清單。您可以輸入任何型號名稱。",
"modelCustom": "Enter a model name", "modelCustom": "請輸入型號名稱",
"modelRefresh": "Refresh list", "modelRefresh": "重新整理清單",
"modelPlaceholder": "Choose or type a model", "modelPlaceholder": "選擇或輸入型號",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.", "attachHint": "輸入 @ 符號可引用主機、程式碼片段或自動化流程。系統會提出更改建議,供您批准。",
"runCommandTitle": "Run command", "runCommandTitle": "運行命令",
"assistant": "AI Assistant", "assistant": "人工智慧助手",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.", "terminalPanelEmpty": "向助理詢問有關此房東的資訊。任何狀態變更都需要您先批准。",
"terminalPanelPlaceholder": "Ask about this host...", "terminalPanelPlaceholder": "詢問一下這位房東的狀況…",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.", "noProvidersConfigured": "尚未配置任何 AI 提供者。請在 AI 助理標籤中新增。",
"runsInOpenTerminal": "Runs in your open terminal session.", "runsInOpenTerminal": "在開啟的終端機會話中運行。",
"runInTerminal": "執行", "runInTerminal": "執行",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n", "terminalContextPrefill": "以下是我的終端輸出:\n\n{{output}}\n\n",
"secrets": { "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": { "nav": {
"ai": "AI" "ai": "人工智慧"
}, },
"onboarding": { "onboarding": {
"aiTitle": "AI assistant", "aiTitle": "人工智慧助手",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.", "aiIntro": "Termix 可以包含一個可選的 AI 助手。您可以稍後在設定中變更此選項。",
"aiSkipTitle": "Leave it off", "aiSkipTitle": "丟開",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.", "aiSkipDesc": "Termix 的運作方式與現在相同。助手保持隱藏狀態。",
"aiEnableTitle": "Turn it on", "aiEnableTitle": "打開它",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.", "aiEnableDesc": "添加一個助手,它可以讀取您的設定並提出您批准的更改建議。需要您提供服務提供者,例如當地的 Ollama 服務提供者。",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message." "aiNote": "在您新增服務提供者並發送訊息之前,任何內容都不會發送到任何地方。"
}, },
"hosts": { "hosts": {
"docsLink": "檢視文件" "docsLink": "檢視文件"
+119 -119
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "সতর্কতা"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "সতর্কতা ব্যবহার করুন",
"description": "Get alerts in the inbox and send them to your own channels." "description": "ইনবক্সে অ্যালার্ট পান এবং সেগুলো আপনার নিজের চ্যানেলগুলোতে পাঠান।"
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "সতর্কতা",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "সব অ্যালার্ট একটি ইনবক্সেই থাকবে, যা আপনি চাইলে ডিসকর্ড, এনটিএফওয়াই, ইমেল বা ওয়েবহুকে পাঠাতে পারবেন।"
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "সাধারণ",
"email": "Email" "email": "ইমেল"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "টারমিক্স ঘোষণা",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "টারমিক্স টিমের পক্ষ থেকে নিরাপত্তা বিজ্ঞপ্তি এবং নতুন রিলিজের মতো খবরগুলো সবার ইনবক্সে দেখান।"
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "(দিন) পর্যন্ত সতর্কতা চালু রাখুন",
"description": "Older alerts are removed from every inbox." "description": "প্রতিটি ইনবক্স থেকে পুরোনো অ্যালার্টগুলো মুছে ফেলা হয়।"
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP সার্ভার",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "ইমেল চ্যানেলের জন্য প্রয়োজন। ইমেল বন্ধ করতে খালি রাখুন।",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP পোর্ট",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "সাধারণত STARTTLS সহ 587 অথবা TLS সহ 465।"
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "শুরু থেকেই TLS ব্যবহার করুন",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "পোর্ট ৪৬৫-এর জন্য চালু করুন। ৫৮৭-এর জন্য বন্ধ রাখুন, যেটি নিজে থেকেই TLS-এ আপগ্রেড হয়ে যায়।"
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP ব্যবহারকারীর নাম",
"description": "Leave empty if the server does not need a login." "description": "সার্ভারে লগইন করার প্রয়োজন না হলে এই স্থানটি খালি রাখুন।"
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP পাসওয়ার্ড",
"description": "Stored encrypted." "description": "এনক্রিপ্ট করে সংরক্ষণ করা হয়েছে।"
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "ঠিকানা থেকে",
"description": "The sender alerts come from.", "description": "প্রেরকের কাছ থেকে সতর্কতাগুলো আসে।",
"placeholder": "Termix <alerts@example.com>" "placeholder": "টারমিক্স <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "সতর্কতা পপআপ",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "আপনি Termix ব্যবহার করার সময় কোন নতুন অ্যালার্টগুলো আসে? সেগুলো সবসময় ইনবক্সে আসে।",
"all": "All alerts", "all": "সমস্ত সতর্কতা",
"warning": "Warnings and critical", "warning": "সতর্কতা এবং সমালোচনামূলক",
"critical": "Critical only", "critical": "শুধুমাত্র সমালোচনামূলক",
"off": "None" "off": "কোনোটিই না"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "ইনবক্স",
"channels": "Channels", "channels": "চ্যানেল",
"rules": "Delivery rules" "rules": "ডেলিভারি নিয়মাবলী"
}, },
"severity": { "severity": {
"info": "Info", "info": "তথ্য",
"success": "Success", "success": "সাফল্য",
"warning": "Warning", "warning": "সতর্কতা",
"critical": "Critical" "critical": "সমালোচনামূলক"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "টার্মিক্স",
"openLink": "Open", "openLink": "খোলা",
"view": "View", "view": "দেখুন",
"unread": "Unread", "unread": "অপঠিত",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} চ্যানেল ব্যর্থ হয়েছে",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} চ্যানেল ব্যর্থ হয়েছে",
"markRead": "Mark as read", "markRead": "পঠিত হিসেবে চিহ্নিত করুন",
"markUnread": "Mark as unread", "markUnread": "অপঠিত হিসাবে চিহ্নিত করুন",
"markAllRead": "Mark all as read", "markAllRead": "সবগুলো পঠিত হিসেবে চিহ্নিত করুন।",
"delete": "Delete", "delete": "মুছে ফেলুন",
"clearRead": "Delete read alerts", "clearRead": "পঠিত সতর্কতাগুলি মুছুন",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "{{count}} সতর্কতা মুছে ফেলা হয়েছে",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "মুছে ফেলা {{count}} সতর্কতা",
"filterAll": "All", "filterAll": "সব",
"filterUnread": "Unread", "filterUnread": "অপঠিত",
"anySeverity": "Any severity", "anySeverity": "যেকোনো তীব্রতা",
"anySource": "Any source", "anySource": "যেকোনো উৎস",
"openAll": "Open in a tab", "openAll": "একটি ট্যাবে খুলুন",
"empty": "No alerts yet.", "empty": "এখনো কোনো সতর্কতা আসেনি।",
"emptyUnread": "You are all caught up.", "emptyUnread": "আপনি সবকিছু জেনে গেছেন।",
"loadMore": "Load more" "loadMore": "আরও লোড করুন"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "চ্যানেল হলো এমন জায়গা যেখানে অ্যালার্টগুলো টারমিক্সের বাইরে যেতে পারে। ডেলিভারি রুলগুলো নির্ধারণ করে কোন অ্যালার্টগুলো সেখানে ব্যবহৃত হবে।",
"add": "Add channel", "add": "চ্যানেল যোগ করুন",
"edit": "Edit channel", "edit": "চ্যানেল সম্পাদনা করুন",
"test": "Send a test", "test": "একটি পরীক্ষা পাঠান",
"testSent": "Test alert sent", "testSent": "পরীক্ষার সতর্কতা পাঠানো হয়েছে",
"testFailed": "Test failed: {{error}}", "testFailed": "পরীক্ষা ব্যর্থ হয়েছে: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "\"{{name}} \" চ্যানেলটি মুছে ফেলবেন?",
"deleted": "Channel deleted", "deleted": "চ্যানেল মুছে ফেলা হয়েছে",
"empty": "No channels yet.", "empty": "এখনো কোনো চ্যানেল নেই।",
"enabled": "Enabled", "enabled": "সক্ষম করা হয়েছে",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "পাঠানোর আগে এই চ্যানেলটি আবার খুলতে ও সংরক্ষণ করতে হবে।",
"name": "Name", "name": "নাম",
"nameRequired": "Name is required", "nameRequired": "নাম আবশ্যক",
"type": "Type", "type": "প্রকার",
"types": { "types": {
"webhook": "Webhook", "webhook": "ওয়েবহুক",
"ntfy": "ntfy", "ntfy": "এনটিএফওয়াই",
"discord": "Discord", "discord": "ডিসকর্ড",
"email": "Email" "email": "ইমেল"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "ইমেইলের জন্য একটি SMTP সার্ভার প্রয়োজন, যা অ্যাডমিন অ্যালার্ট সেটিংসে সেট আপ করেন।",
"webhookUrl": "URL", "webhookUrl": "ইউআরএল",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "প্রতিটি অ্যালার্টের জন্য একটি JSON বডি পাওয়া যায়।",
"method": "Method", "method": "পদ্ধতি",
"headers": "Headers", "headers": "হেডার",
"headersHint": "One per line, like Name: value.", "headersHint": "প্রতি লাইনে একটি করে, যেমন নাম: মান।",
"ntfyServer": "Server URL", "ntfyServer": "সার্ভার ইউআরএল",
"ntfyTopic": "Topic", "ntfyTopic": "বিষয়",
"ntfyToken": "Access token (optional)", "ntfyToken": "প্রবেশ টোকেন (ঐচ্ছিক)",
"discordUrl": "Discord webhook URL", "discordUrl": "ডিসকর্ড ওয়েবহুক ইউআরএল",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "ডিসকর্ডে চ্যানেলের সেটিংস থেকে, ইন্টিগ্রেশনস-এর অধীনে।",
"discordUsername": "Display name (optional)", "discordUsername": "প্রদর্শনের নাম (ঐচ্ছিক)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "অবতার ইউআরএল (ঐচ্ছিক)",
"emailTo": "Send to", "emailTo": "পাঠান",
"emailHint": "Separate more than one address with commas.", "emailHint": "একাধিক ঠিকানা কমা দিয়ে আলাদা করুন।",
"privateNetwork": "Allow a private network address", "privateNetwork": "একটি ব্যক্তিগত নেটওয়ার্ক ঠিকানা অনুমোদন করুন",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "এটি শুধুমাত্র সেইসব হোস্টের ক্ষেত্রেই কাজ করে, যেগুলোকে অ্যাডমিন তার প্রাইভেট এন্ডপয়েন্ট তালিকায় অনুমোদন দেয়।"
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "একটি ডেলিভারি রুল আপনার চ্যানেলগুলিতে প্রাসঙ্গিক অ্যালার্ট পাঠায়। অ্যালার্টগুলো সবসময় ইনবক্সেও থেকে যায়।",
"add": "Add rule", "add": "নিয়ম যোগ করুন",
"edit": "Edit rule", "edit": "নিয়ম সম্পাদনা করুন",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "এখনো কোনো নিয়ম তৈরি হয়নি, তাই অ্যালার্টগুলো শুধু ইনবক্সেই দেখা যায়।",
"needChannel": "Add a channel first.", "needChannel": "প্রথমে একটি চ্যানেল যোগ করুন।",
"enabled": "Enabled", "enabled": "সক্ষম করা হয়েছে",
"name": "Name", "name": "নাম",
"nameRequired": "Name is required", "nameRequired": "নাম আবশ্যক",
"match": "Alerts to send", "match": "পাঠানোর জন্য সতর্কতা",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "সবকিছুর জন্য, অটোমেশন। অটোমেশন থেকে প্রাপ্ত সবকিছুর জন্য, অথবা ঠিক এক ধরনের।",
"minSeverity": "At least", "minSeverity": "অন্তত",
"channels": "Send to", "channels": "পাঠান",
"channelRequired": "Pick at least one channel", "channelRequired": "অন্তত একটি চ্যানেল বেছে নিন",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "\"{{name}} \" নিয়মটি মুছে ফেলুন?",
"everything": "Everything", "everything": "সবকিছু",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} বা তার বেশি, থেকে {{channels}} পর্যন্ত"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "বাতিল করুন",
"save": "Save", "save": "সংরক্ষণ করুন",
"saving": "Saving...", "saving": "সঞ্চয়...",
"delete": "Delete" "delete": "মুছে ফেলুন"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "সতর্কতা ফিড",
"description": "Your latest alerts, with a quick way to mark them read", "description": "আপনার সর্বশেষ অ্যালার্টগুলো, এবং সেগুলোকে পঠিত হিসেবে চিহ্নিত করার একটি দ্রুত উপায়।",
"maxItems": "Max items", "maxItems": "সর্বোচ্চ আইটেম",
"showRead": "Show read alerts", "showRead": "পঠিত সতর্কতা দেখান",
"allClear": "All clear", "allClear": "সব পরিষ্কার",
"loading": "Loading..." "loading": "লোড হচ্ছে..."
} }
} }
+85 -85
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "अलर्ट का उपयोग करें",
"description": "Get alerts in the inbox and send them to your own channels." "description": "इनबॉक्स में अलर्ट प्राप्त करें और उन्हें अपने चैनलों पर भेजें।"
} }
}, },
"onboarding": { "onboarding": {
"feature": "अलर्ट", "feature": "अलर्ट",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "सभी अलर्ट एक ही इनबॉक्स में, और यदि आप चाहें तो उन्हें डिस्कोर्ड, एनटीएफआई, ईमेल या वेबहुक पर भेजा जा सकता है।"
}, },
"settings": { "settings": {
"group": { "group": {
@@ -19,141 +19,141 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "टर्मिक्स की घोषणाएँ",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "टर्मिक्स टीम से संबंधित समाचार, जैसे कि सुरक्षा संबंधी सूचनाएं और विज्ञप्तियां, सभी के इनबॉक्स में दिखाएं।"
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "(दिनों) के लिए अलर्ट चालू रखें",
"description": "Older alerts are removed from every inbox." "description": "सभी इनबॉक्स से पुराने अलर्ट हटा दिए जाते हैं।"
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "एसएमटीपी सर्वर",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "ईमेल चैनलों के लिए आवश्यक। ईमेल बंद करने के लिए इसे खाली छोड़ दें।",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "एसएमटीपी पोर्ट",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "आमतौर पर STARTTLS के साथ 587 या TLS के साथ 465 का उपयोग किया जाता है।"
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "शुरुआत से ही TLS का उपयोग करें",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "पोर्ट 465 के लिए इसे चालू करें। पोर्ट 587 के लिए इसे बंद रखें, क्योंकि यह अपने आप TLS में अपग्रेड हो जाता है।"
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "एसएमटीपी उपयोगकर्ता नाम",
"description": "Leave empty if the server does not need a login." "description": "यदि सर्वर को लॉगिन की आवश्यकता नहीं है तो इसे खाली छोड़ दें।"
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "एसएमटीपी पासवर्ड",
"description": "Stored encrypted." "description": "एन्क्रिप्टेड रूप में संग्रहीत।"
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "इस पते से",
"description": "The sender alerts come from.", "description": "प्रेषक अलर्ट कहाँ से आते हैं?",
"placeholder": "Termix <alerts@example.com>" "placeholder": "टर्मिक्स <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "अलर्ट पॉपअप",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "टर्मिक्स का उपयोग करते समय कौन-कौन से नए अलर्ट आते हैं? वे हमेशा आपके इनबॉक्स में आते हैं।",
"all": "All alerts", "all": "सभी अलर्ट",
"warning": "Warnings and critical", "warning": "चेतावनी और महत्वपूर्ण",
"critical": "Critical only", "critical": "केवल महत्वपूर्ण",
"off": "कोई नहीं" "off": "कोई नहीं"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "इनबॉक्स",
"channels": "चैनल", "channels": "चैनल",
"rules": "Delivery rules" "rules": "डिलीवरी नियम"
}, },
"severity": { "severity": {
"info": "जानकारी", "info": "जानकारी",
"success": "सफल", "success": "सफल",
"warning": "चेतावनी", "warning": "चेतावनी",
"critical": "Critical" "critical": "गंभीर"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "खोलें", "openLink": "खोलें",
"view": "देखें", "view": "देखें",
"unread": "Unread", "unread": "अपठित ग",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} चैनल विफल हो गया",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} चैनल विफल हो गए",
"markRead": "Mark as read", "markRead": "पढ़े हुए का चिह्न",
"markUnread": "Mark as unread", "markUnread": "अपठित के रूप में चिह्नित करें",
"markAllRead": "Mark all as read", "markAllRead": "सभी को पढ़ा हुआ मार्क करें",
"delete": "हटाएँ", "delete": "हटाएँ",
"clearRead": "Delete read alerts", "clearRead": "पढ़े गए अलर्ट हटाएं",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "अलर्ट हटा दिया गया {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "हटाए गए {{count}} अलर्ट",
"filterAll": "सभी", "filterAll": "सभी",
"filterUnread": "Unread", "filterUnread": "अपठित ग",
"anySeverity": "Any severity", "anySeverity": "किसी भी गंभीरता",
"anySource": "Any source", "anySource": "कोई भी स्रोत",
"openAll": "Open in a tab", "openAll": "एक टैब में खोलें",
"empty": "No alerts yet.", "empty": "अभी तक कोई अलर्ट नहीं है।",
"emptyUnread": "You are all caught up.", "emptyUnread": "आप सभी अपडेट्स से अवगत हैं।",
"loadMore": "Load more" "loadMore": "और लोड करें"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "चैनल वो जगह हैं जहां अलर्ट टर्मिक्स से बाहर जा सकते हैं। डिलीवरी नियम तय करते हैं कि कौन से अलर्ट इनका उपयोग करेंगे।",
"add": "Add channel", "add": "चैनल जोड़ें",
"edit": "Edit channel", "edit": "चैनल संपादित करें",
"test": "Send a test", "test": "टेस्ट भेजें",
"testSent": "Test alert sent", "testSent": "परीक्षण अलर्ट भेजा गया",
"testFailed": "Test failed: {{error}}", "testFailed": "परीक्षण विफल: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "चैनल \"{{name}} \" को हटा दें?",
"deleted": "Channel deleted", "deleted": "चैनल हटा दिया गया",
"empty": "No channels yet.", "empty": "अभी तक कोई चैनल उपलब्ध नहीं हैं।",
"enabled": "सक्षम", "enabled": "सक्षम",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "भेजने से पहले इस चैनल को दोबारा खोलकर सेव करना होगा।",
"name": "नाम", "name": "नाम",
"nameRequired": "नाम आवश्यक है", "nameRequired": "नाम आवश्यक है",
"type": "प्रकार", "type": "प्रकार",
"types": { "types": {
"webhook": "Webhook", "webhook": "WEbhook",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Discord",
"email": "ईमेल" "email": "ईमेल"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "ईमेल के लिए एक SMTP सर्वर की आवश्यकता होती है, जिसे एडमिन अलर्ट सेटिंग्स में सेट करता है।",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "प्रत्येक अलर्ट के लिए एक JSON बॉडी प्राप्त करता है।",
"method": "Method", "method": "तरीका",
"headers": "Headers", "headers": "हेडर",
"headersHint": "One per line, like Name: value.", "headersHint": "एक पंक्ति में एक, जैसे नाम: मान।",
"ntfyServer": "सर्वर URL", "ntfyServer": "सर्वर URL",
"ntfyTopic": "विषय", "ntfyTopic": "विषय",
"ntfyToken": "Access token (optional)", "ntfyToken": "एक्सेस टोकन (वैकल्पिक)",
"discordUrl": "Discord webhook URL", "discordUrl": "डिस्कॉर्ड वेबहुक यूआरएल",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "डिस्कोर्ड में चैनल की सेटिंग में, इंटीग्रेशन के अंतर्गत।",
"discordUsername": "Display name (optional)", "discordUsername": "प्रदर्शन नाम (वैकल्पिक)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "अवतार यूआरएल (वैकल्पिक)",
"emailTo": "Send to", "emailTo": "भेजना",
"emailHint": "Separate more than one address with commas.", "emailHint": "एक से अधिक पतों को अल्पविराम से अलग करें।",
"privateNetwork": "Allow a private network address", "privateNetwork": "एक निजी नेटवर्क पते की अनुमति दें",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "यह सुविधा केवल उन होस्ट्स के लिए काम करती है जिन्हें एडमिन निजी एंडपॉइंट सूची में शामिल करने की अनुमति देता है।"
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "एक डिलीवरी नियम आपके चैनलों पर मिलान करने वाले अलर्ट भेजता है। अलर्ट हमेशा आपके इनबॉक्स में भी रहते हैं।",
"add": "Add rule", "add": "नियम जोड़ें",
"edit": "Edit rule", "edit": "नियम संपादित करें",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "अभी तक कोई नियम नहीं बने हैं, इसलिए अलर्ट केवल इनबॉक्स में ही दिखाई देंगे।",
"needChannel": "Add a channel first.", "needChannel": "पहले एक चैनल जोड़ें।",
"enabled": "सक्षम", "enabled": "सक्षम",
"name": "नाम", "name": "नाम",
"nameRequired": "नाम आवश्यक है", "nameRequired": "नाम आवश्यक है",
"match": "Alerts to send", "match": "भेजे जाने वाले अलर्ट",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* हर चीज के लिए, स्वचालन। * स्वचालन से लेकर हर चीज के लिए, या एक सटीक प्रकार के लिए।",
"minSeverity": "At least", "minSeverity": "कम से कम",
"channels": "Send to", "channels": "भेजना",
"channelRequired": "Pick at least one channel", "channelRequired": "कम से कम एक चैनल चुनें",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "क्या नियम \"{{name}} \" को हटा दें?",
"everything": "Everything", "everything": "सब कुछ",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} या इससे अधिक, से {{channels}} तक"
}, },
"actions": { "actions": {
"cancel": "रद्द करें", "cancel": "रद्द करें",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "अलर्ट फीड", "name": "अलर्ट फीड",
"description": "Your latest alerts, with a quick way to mark them read", "description": "आपके नवीनतम अलर्ट, जिन्हें आप आसानी से पढ़ सकते हैं।",
"maxItems": "Max items", "maxItems": "अधिकतम आइटम",
"showRead": "Show read alerts", "showRead": "पढ़े जाने के अलर्ट दिखाएँ",
"allClear": "सब ठीक है", "allClear": "सब ठीक है",
"loading": "लोड हो रहा है..." "loading": "लोड हो रहा है..."
} }
+114 -114
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Peringatan"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Gunakan peringatan",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Dapatkan notifikasi di kotak masuk dan kirimkan ke saluran Anda sendiri."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "Peringatan",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Semua notifikasi dalam satu kotak masuk, yang kemudian dikirim ke Discord, ntfy, email, atau webhook jika Anda mau."
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "Umum",
"email": "Email" "email": "E-mail"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Pengumuman Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Tampilkan berita dari tim Termix, seperti pemberitahuan keamanan dan rilis, di kotak masuk setiap orang."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Aktifkan peringatan selama (hari)",
"description": "Older alerts are removed from every inbox." "description": "Notifikasi lama dihapus dari setiap kotak masuk."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "Server SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Diperlukan untuk saluran email. Biarkan kosong untuk menonaktifkan email.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "Port SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Biasanya 587 dengan STARTTLS atau 465 dengan TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Gunakan TLS sejak awal.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Aktifkan untuk port 465. Biarkan nonaktif untuk port 587, yang akan secara otomatis diupgrade ke TLS."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "Nama pengguna SMTP",
"description": "Leave empty if the server does not need a login." "description": "Biarkan kosong jika server tidak memerlukan login."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Kata sandi SMTP",
"description": "Stored encrypted." "description": "Disimpan dalam keadaan terenkripsi."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Dari alamat",
"description": "The sender alerts come from.", "description": "Peringatan pengirim berasal dari.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Popup peringatan",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Notifikasi baru apa saja yang muncul saat Anda menggunakan Termix? Notifikasi tersebut selalu masuk ke kotak masuk Anda.",
"all": "All alerts", "all": "Semua peringatan",
"warning": "Warnings and critical", "warning": "Peringatan dan hal-hal penting",
"critical": "Critical only", "critical": "Kritik saja",
"off": "None" "off": "Tidak ada"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Kotak Masuk",
"channels": "Channels", "channels": "Saluran",
"rules": "Delivery rules" "rules": "Aturan pengiriman"
}, },
"severity": { "severity": {
"info": "Info", "info": "Informasi",
"success": "Success", "success": "Kesuksesan",
"warning": "Warning", "warning": "Peringatan",
"critical": "Critical" "critical": "Kritis"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Open", "openLink": "Membuka",
"view": "View", "view": "Melihat",
"unread": "Unread", "unread": "Belum dibaca",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} saluran gagal",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} saluran gagal",
"markRead": "Mark as read", "markRead": "Tandai sebagai sudah dibaca",
"markUnread": "Mark as unread", "markUnread": "Tandai sebagai belum dibaca",
"markAllRead": "Mark all as read", "markAllRead": "Tandai semua sebagai sudah dibaca",
"delete": "Delete", "delete": "Menghapus",
"clearRead": "Delete read alerts", "clearRead": "Hapus notifikasi baca",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Peringatan {{count}} dihapus",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Peringatan {{count}} dihapus",
"filterAll": "All", "filterAll": "Semua",
"filterUnread": "Unread", "filterUnread": "Belum dibaca",
"anySeverity": "Any severity", "anySeverity": "Tingkat keparahan apa pun",
"anySource": "Any source", "anySource": "Sumber apa pun",
"openAll": "Open in a tab", "openAll": "Buka di tab",
"empty": "No alerts yet.", "empty": "Belum ada peringatan.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Anda sudah mengetahui semuanya.",
"loadMore": "Load more" "loadMore": "Muat lebih banyak"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Saluran adalah tempat peringatan dapat dikirim ke luar Termix. Aturan pengiriman memilih peringatan mana yang akan menggunakannya.",
"add": "Add channel", "add": "Tambahkan saluran",
"edit": "Edit channel", "edit": "Edit saluran",
"test": "Send a test", "test": "Kirim tes",
"testSent": "Test alert sent", "testSent": "Peringatan uji coba terkirim",
"testFailed": "Test failed: {{error}}", "testFailed": "Tes gagal: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Hapus saluran \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Saluran dihapus",
"empty": "No channels yet.", "empty": "Belum ada saluran.",
"enabled": "Enabled", "enabled": "Diaktifkan",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Saluran ini perlu dibuka dan disimpan kembali sebelum dapat mengirim data.",
"name": "Name", "name": "Nama",
"nameRequired": "Name is required", "nameRequired": "Nama wajib diisi.",
"type": "Type", "type": "Jenis",
"types": { "types": {
"webhook": "Webhook", "webhook": "Webhook",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Perselisihan",
"email": "Email" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Menerima isi JSON untuk setiap peringatan.",
"method": "Method", "method": "Metode",
"headers": "Headers", "headers": "Judul",
"headersHint": "One per line, like Name: value.", "headersHint": "Satu per baris, seperti Nama: nilai.",
"ntfyServer": "Server URL", "ntfyServer": "URL Server",
"ntfyTopic": "Topic", "ntfyTopic": "Topik",
"ntfyToken": "Access token (optional)", "ntfyToken": "Token akses (opsional)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL webhook Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Dari pengaturan saluran di Discord, di bawah Integrasi.",
"discordUsername": "Display name (optional)", "discordUsername": "Nama tampilan (opsional)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL Avatar (opsional)",
"emailTo": "Send to", "emailTo": "Kirim ke",
"emailHint": "Separate more than one address with commas.", "emailHint": "Pisahkan lebih dari satu alamat dengan koma.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Izinkan alamat jaringan pribadi",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Hanya berfungsi untuk host yang diizinkan oleh admin dalam daftar endpoint privat."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Aturan pengiriman mengirimkan peringatan yang sesuai ke saluran Anda. Peringatan juga selalu tetap berada di kotak masuk.",
"add": "Add rule", "add": "Tambahkan aturan",
"edit": "Edit rule", "edit": "Edit aturan",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Belum ada aturan, jadi notifikasi hanya muncul di kotak masuk.",
"needChannel": "Add a channel first.", "needChannel": "Tambahkan saluran terlebih dahulu.",
"enabled": "Enabled", "enabled": "Diaktifkan",
"name": "Name", "name": "Nama",
"nameRequired": "Name is required", "nameRequired": "Nama wajib diisi.",
"match": "Alerts to send", "match": "Peringatan untuk dikirim",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* untuk segala hal, otomatisasi.* untuk segala hal mulai dari otomatisasi, atau satu jenis tertentu.",
"minSeverity": "At least", "minSeverity": "Setidaknya",
"channels": "Send to", "channels": "Kirim ke",
"channelRequired": "Pick at least one channel", "channelRequired": "Pilih setidaknya satu saluran",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Hapus aturan \"{{name}}\"?",
"everything": "Everything", "everything": "Semuanya",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} atau lebih tinggi, hingga {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "Membatalkan",
"save": "Save", "save": "Menyimpan",
"saving": "Saving...", "saving": "Penghematan...",
"delete": "Delete" "delete": "Menghapus"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Umpan Peringatan",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Notifikasi terbaru Anda, dengan cara cepat untuk menandainya sebagai sudah dibaca.",
"maxItems": "Max items", "maxItems": "Jumlah maksimum",
"showRead": "Show read alerts", "showRead": "Tampilkan pemberitahuan telah dibaca",
"allClear": "All clear", "allClear": "Semuanya aman.",
"loading": "Loading..." "loading": "Memuat..."
} }
} }
+94 -94
View File
@@ -1,16 +1,16 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Varsler"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Bruk varsler",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Få varsler i innboksen og send dem til dine egne kanaler."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "Varsler",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Alle varsler i én innboks, sendt videre til Discord, ntfy, e-post eller en webhook om du vil."
}, },
"settings": { "settings": {
"group": { "group": {
@@ -19,141 +19,141 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix-kunngjøringer",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Vis nyheter fra Termix-teamet, som sikkerhetsvarsler og utgivelser, i alles innboks."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Behold varsler i (dager)",
"description": "Older alerts are removed from every inbox." "description": "Eldre varsler fjernes fra alle innbokser."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP-server",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Nødvendig for e-postkanaler. La stå tomt for å slå av e-post.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP-port",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Vanligvis 587 med STARTTLS eller 465 med TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Bruk TLS fra starten av",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Slå på port 465. Slå av for port 587, som oppgraderer til TLS på egenhånd."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP-brukernavn",
"description": "Leave empty if the server does not need a login." "description": "La feltet stå tomt hvis serveren ikke trenger pålogging."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP-passord",
"description": "Stored encrypted." "description": "Lagret kryptert."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Fra adresse",
"description": "The sender alerts come from.", "description": "Avsendervarslene kommer fra.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Varselspopup-vinduer",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Hvilke nye varsler dukker opp mens du bruker Termix? De havner alltid i innboksen.",
"all": "All alerts", "all": "Alle varsler",
"warning": "Warnings and critical", "warning": "Advarsler og kritiske",
"critical": "Critical only", "critical": "Kun kritisk",
"off": "Ingen" "off": "Ingen"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Innboks",
"channels": "Channels", "channels": "Kanaler",
"rules": "Delivery rules" "rules": "Leveringsregler"
}, },
"severity": { "severity": {
"info": "Info", "info": "Info",
"success": "Suksess", "success": "Suksess",
"warning": "Advarsel", "warning": "Advarsel",
"critical": "Critical" "critical": "Kritisk"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Open", "openLink": "Åpne",
"view": "View", "view": "Utsikt",
"unread": "Unread", "unread": "Ulest",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} kanal mislyktes",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} kanaler mislyktes",
"markRead": "Mark as read", "markRead": "Merk som lest",
"markUnread": "Mark as unread", "markUnread": "Merk som ulest",
"markAllRead": "Mark all as read", "markAllRead": "Merk alle som lest",
"delete": "Slett", "delete": "Slett",
"clearRead": "Delete read alerts", "clearRead": "Slett lesevarsler",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Slettet {{count}} -varsel",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Slettede {{count}} varsler",
"filterAll": "All", "filterAll": "Alle",
"filterUnread": "Unread", "filterUnread": "Ulest",
"anySeverity": "Any severity", "anySeverity": "Enhver alvorlighetsgrad",
"anySource": "Any source", "anySource": "Enhver kilde",
"openAll": "Open in a tab", "openAll": "Åpne i en fane",
"empty": "No alerts yet.", "empty": "Ingen varsler ennå.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Dere er helt oppdatert.",
"loadMore": "Load more" "loadMore": "Last inn mer"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Kanaler er der varsler kan sendes utenfor Termix. Leveringsregler velger hvilke varsler som bruker dem.",
"add": "Add channel", "add": "Legg til kanal",
"edit": "Edit channel", "edit": "Rediger kanal",
"test": "Send a test", "test": "Send en test",
"testSent": "Test alert sent", "testSent": "Testvarsel sendt",
"testFailed": "Test failed: {{error}}", "testFailed": "Testen mislyktes: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Slette kanalen «{{name}}»?",
"deleted": "Channel deleted", "deleted": "Kanalen slettet",
"empty": "No channels yet.", "empty": "Ingen kanaler ennå.",
"enabled": "Aktivert", "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", "name": "Navn",
"nameRequired": "Navn er påkrevd", "nameRequired": "Navn er påkrevd",
"type": "Type", "type": "Type",
"types": { "types": {
"webhook": "Webhook", "webhook": "Webhook",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Disharmoni",
"email": "E-post" "email": "E-post"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "E-post trenger en SMTP-server, som en administrator konfigurerer i varslingsinnstillingene.",
"webhookUrl": "URL", "webhookUrl": "URL-adresse",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Henter en JSON-tekst for hvert varsel.",
"method": "Method", "method": "Metode",
"headers": "Headers", "headers": "Overskrifter",
"headersHint": "One per line, like Name: value.", "headersHint": "Én per linje, som Navn: verdi.",
"ntfyServer": "Server-URL", "ntfyServer": "Server-URL",
"ntfyTopic": "Topic", "ntfyTopic": "Emne",
"ntfyToken": "Access token (optional)", "ntfyToken": "Tilgangstoken (valgfritt)",
"discordUrl": "Discord webhook URL", "discordUrl": "Discord webhook-URL",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Fra kanalens innstillinger i Discord, under Integrasjoner.",
"discordUsername": "Display name (optional)", "discordUsername": "Visningsnavn (valgfritt)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "Avatar-URL (valgfritt)",
"emailTo": "Send to", "emailTo": "Send til",
"emailHint": "Separate more than one address with commas.", "emailHint": "Skill mer enn én adresse med komma.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Tillat en privat nettverksadresse",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Fungerer bare for verter som en administrator tillater i listen over private endepunkter."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "En leveringsregel sender samsvarende varsler til kanalene dine. Varsler forblir også alltid i innboksen.",
"add": "Add rule", "add": "Legg til regel",
"edit": "Edit rule", "edit": "Rediger regel",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Ingen regler ennå, så varsler vises bare i innboksen.",
"needChannel": "Add a channel first.", "needChannel": "Legg til en kanal først.",
"enabled": "Aktivert", "enabled": "Aktivert",
"name": "Navn", "name": "Navn",
"nameRequired": "Navn er påkrevd", "nameRequired": "Navn er påkrevd",
"match": "Alerts to send", "match": "Varsler som skal sendes",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* for alt, automatiseringer.* for alt fra automatiseringer, eller én eksakt type.",
"minSeverity": "At least", "minSeverity": "Minst",
"channels": "Send to", "channels": "Send til",
"channelRequired": "Pick at least one channel", "channelRequired": "Velg minst én kanal",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Slette regelen «{{name}}»?",
"everything": "Everything", "everything": "Alt",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} eller høyere, til {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Avbryt", "cancel": "Avbryt",
@@ -162,11 +162,11 @@
"delete": "Slett" "delete": "Slett"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Varselstrøm",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Dine siste varsler, med en rask måte å merke dem som lest",
"maxItems": "Max items", "maxItems": "Maks antall varer",
"showRead": "Show read alerts", "showRead": "Vis lesevarsler",
"allClear": "All clear", "allClear": "Alt klart",
"loading": "Laster..." "loading": "Laster..."
} }
} }
+81 -81
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Użyj alertów",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Otrzymuj powiadomienia do skrzynki odbiorczej i wysyłaj je na swoje kanały."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerty", "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": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Ogłoszenia Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "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": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Zachowaj alerty przez (dni)",
"description": "Older alerts are removed from every inbox." "description": "Starsze alerty zostaną usunięte ze wszystkich skrzynek odbiorczych."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "Serwer SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Potrzebne dla kanałów e-mail. Pozostaw puste, aby wyłączyć pocztę e-mail.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "Port SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Zwykle 587 z STARTTLS lub 465 z TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Używaj protokołu TLS od samego początku",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Włącz dla portu 465. Pozostaw wyłączone dla portu 587, który automatycznie uaktualnia się do protokołu TLS."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "Nazwa użytkownika SMTP",
"description": "Leave empty if the server does not need a login." "description": "Pozostaw puste, jeśli serwer nie wymaga logowania."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Hasło SMTP",
"description": "Stored encrypted." "description": "Przechowywane w postaci zaszyfrowanej."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Z adresu",
"description": "The sender alerts come from.", "description": "Od nadawcy pochodzą alerty.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Okienka z alertami",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Jakie nowe alerty pojawiają się podczas korzystania z Termix. Zawsze trafiają do skrzynki odbiorczej.",
"all": "All alerts", "all": "Wszystkie alerty",
"warning": "Warnings and critical", "warning": "Ostrzeżenia i ostrzeżenia krytyczne",
"critical": "Critical only", "critical": "Tylko krytyczne",
"off": "Żaden" "off": "Żaden"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Skrzynka odbiorcza",
"channels": "Kanały", "channels": "Kanały",
"rules": "Delivery rules" "rules": "Zasady dostawy"
}, },
"severity": { "severity": {
"info": "Informacje", "info": "Informacje",
"success": "Powodzenie", "success": "Powodzenie",
"warning": "Ostrzeżenie", "warning": "Ostrzeżenie",
"critical": "Critical" "critical": "Krytyczny"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Otwórz", "openLink": "Otwórz",
"view": "Podgląd", "view": "Podgląd",
"unread": "Unread", "unread": "Niewykształcony",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} kanał uszkodzony",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} kanałów nie powiodło się",
"markRead": "Mark as read", "markRead": "Oznacz jako przeczytane",
"markUnread": "Mark as unread", "markUnread": "Oznacz jako nieprzeczytane",
"markAllRead": "Mark all as read", "markAllRead": "Oznacz wszystkie jako przeczytane",
"delete": "Usuń", "delete": "Usuń",
"clearRead": "Delete read alerts", "clearRead": "Usuń alerty odczytu",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Usunięto alert {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Usunięto {{count}} alertów",
"filterAll": "Wszystkie", "filterAll": "Wszystkie",
"filterUnread": "Unread", "filterUnread": "Niewykształcony",
"anySeverity": "Any severity", "anySeverity": "Jakakolwiek powaga",
"anySource": "Any source", "anySource": "Jakiekolwiek źródło",
"openAll": "Open in a tab", "openAll": "Otwórz w karcie",
"empty": "No alerts yet.", "empty": "Brak alertów.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Wszyscy jesteście na bieżąco.",
"loadMore": "Load more" "loadMore": "Załaduj więcej"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "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": "Add channel", "add": "Dodaj kanał",
"edit": "Edit channel", "edit": "Edytuj kanał",
"test": "Send a test", "test": "Wyślij test",
"testSent": "Test alert sent", "testSent": "Wysłano alert testowy",
"testFailed": "Test failed: {{error}}", "testFailed": "Test nie powiódł się: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Usunąć kanał „{{name}}”?",
"deleted": "Kanał usunięty", "deleted": "Kanał usunięty",
"empty": "No channels yet.", "empty": "Brak kanałów.",
"enabled": "Włączona", "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", "name": "Nazwa",
"nameRequired": "Nazwa jest wymagana", "nameRequired": "Nazwa jest wymagana",
"type": "Typ", "type": "Typ",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "E-mail" "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", "webhookUrl": "Adres URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Pobiera treść JSON dla każdego alertu.",
"method": "Metoda", "method": "Metoda",
"headers": "Headers", "headers": "Nagłówki",
"headersHint": "One per line, like Name: value.", "headersHint": "Po jednym w każdym wierszu, np. Nazwa: wartość.",
"ntfyServer": "Adres URL serwera", "ntfyServer": "Adres URL serwera",
"ntfyTopic": "Temat", "ntfyTopic": "Temat",
"ntfyToken": "Access token (optional)", "ntfyToken": "Token dostępu (opcjonalnie)",
"discordUrl": "Discord webhook URL", "discordUrl": "Adres URL webhooka Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "W ustawieniach kanału w Discordzie, w sekcji Integracje.",
"discordUsername": "Display name (optional)", "discordUsername": "Nazwa wyświetlana (opcjonalnie)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "Adres URL awatara (opcjonalnie)",
"emailTo": "Send to", "emailTo": "Wyślij do",
"emailHint": "Separate more than one address with commas.", "emailHint": "Oddziel więcej niż jeden adres przecinkami.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Zezwól na prywatny adres sieciowy",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Działa tylko w przypadku hostów dozwolonych przez administratora na liście prywatnych punktów końcowych."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Reguła dostarczania wysyła pasujące alerty do Twoich kanałów. Alerty zawsze pozostają w skrzynce odbiorczej.",
"add": "Add rule", "add": "Dodaj regułę",
"edit": "Edit rule", "edit": "Edytuj regułę",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Nie ma jeszcze żadnych reguł, więc powiadomienia pojawiają się tylko w skrzynce odbiorczej.",
"needChannel": "Add a channel first.", "needChannel": "Najpierw dodaj kanał.",
"enabled": "Włączona", "enabled": "Włączona",
"name": "Nazwa", "name": "Nazwa",
"nameRequired": "Nazwa jest wymagana", "nameRequired": "Nazwa jest wymagana",
"match": "Alerts to send", "match": "Alerty do wysłania",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* do wszystkiego, automatyzacje.* do wszystkiego, od automatyzacji, lub jednego konkretnego rodzaju.",
"minSeverity": "At least", "minSeverity": "Co najmniej",
"channels": "Send to", "channels": "Wyślij do",
"channelRequired": "Pick at least one channel", "channelRequired": "Wybierz co najmniej jeden kanał",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Usunąć regułę „{{name}}”?",
"everything": "Everything", "everything": "Wszystko",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} lub wyższy, do {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Anuluj", "cancel": "Anuluj",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "Kanał alertów", "name": "Kanał alertów",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Twoje najnowsze alerty z możliwością szybkiego oznaczenia ich jako przeczytanych",
"maxItems": "Max items", "maxItems": "Maksymalna liczba elementów",
"showRead": "Show read alerts", "showRead": "Pokaż alerty odczytu",
"allClear": "Bez alertów", "allClear": "Bez alertów",
"loading": "Ładowanie..." "loading": "Ładowanie..."
} }
+103 -103
View File
@@ -1,159 +1,159 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Alertas"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Usar alertas",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Receba alertas na caixa de entrada e envie-os para seus próprios canais."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "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 em uma única caixa de entrada, enviadas para o Discord, NTfy, e-mail ou webhook, se desejar."
}, },
"settings": { "settings": {
"group": { "group": {
"general": "Geral", "general": "Geral",
"email": "Email" "email": "E-mail"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Anúncios da Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Exibir notícias da equipe Termix, como avisos de segurança e comunicados, na caixa de entrada de todos."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Manter alertas por (dias)",
"description": "Older alerts are removed from every inbox." "description": "Alertas antigos são removidos de todas as caixas de entrada."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "Servidor SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "porta SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Normalmente, usa-se a porta 587 com STARTTLS ou a porta 465 com TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Use TLS desde o início.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "nome de usuário SMTP",
"description": "Leave empty if the server does not need a login." "description": "Deixe em branco se o servidor não exigir login."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Senha SMTP",
"description": "Stored encrypted." "description": "Armazenado criptografado."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Do endereço",
"description": "The sender alerts come from.", "description": "Os alertas do remetente vêm de:",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Janelas de alerta",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Quais novos alertas aparecem enquanto você usa o Termix? Eles sempre chegam na caixa de entrada.",
"all": "All alerts", "all": "Todos os alertas",
"warning": "Warnings and critical", "warning": "Avisos e alertas",
"critical": "Critical only", "critical": "Somente crítico",
"off": "Nenhum" "off": "Nenhum"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Caixa de entrada",
"channels": "Channels", "channels": "Canais",
"rules": "Delivery rules" "rules": "Regras de entrega"
}, },
"severity": { "severity": {
"info": "Info", "info": "Informações",
"success": "Success", "success": "Sucesso",
"warning": "Atenção", "warning": "Atenção",
"critical": "Critical" "critical": "Crítico"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Open", "openLink": "Abrir",
"view": "View", "view": "Visualizar",
"unread": "Unread", "unread": "Não lido",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} canal falhou",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} canais falharam",
"markRead": "Mark as read", "markRead": "Marcar como lido",
"markUnread": "Mark as unread", "markUnread": "Marcar como não lida",
"markAllRead": "Mark all as read", "markAllRead": "Marcar tudo como lido",
"delete": "Apagar", "delete": "Apagar",
"clearRead": "Delete read alerts", "clearRead": "Excluir alertas de leitura",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Alerta excluído {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Alertas excluídos {{count}}",
"filterAll": "All", "filterAll": "Todos",
"filterUnread": "Unread", "filterUnread": "Não lido",
"anySeverity": "Any severity", "anySeverity": "Qualquer gravidade",
"anySource": "Any source", "anySource": "Qualquer fonte",
"openAll": "Open in a tab", "openAll": "Abrir em uma aba",
"empty": "No alerts yet.", "empty": "Ainda não há alertas.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Vocês estão todos a par da situação.",
"loadMore": "Load more" "loadMore": "Carregar mais"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "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": "Add channel", "add": "Adicionar canal",
"edit": "Edit channel", "edit": "Editar canal",
"test": "Send a test", "test": "Enviar um teste",
"testSent": "Test alert sent", "testSent": "Alerta de teste enviado",
"testFailed": "Test failed: {{error}}", "testFailed": "Teste falhou: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Excluir o canal \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Canal excluído",
"empty": "No channels yet.", "empty": "Ainda não há canais.",
"enabled": "Enabled", "enabled": "Habilitado",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Este canal precisa ser aberto e salvo novamente antes de poder enviar mensagens.",
"name": "Name", "name": "Nome",
"nameRequired": "Name is required", "nameRequired": "O nome é obrigatório.",
"type": "Tipo", "type": "Tipo",
"types": { "types": {
"webhook": "Webhook", "webhook": "Webhook",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Discórdia",
"email": "Email" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Obtém um corpo JSON para cada alerta.",
"method": "Method", "method": "Método",
"headers": "Headers", "headers": "Cabeçalhos",
"headersHint": "One per line, like Name: value.", "headersHint": "Um por linha, como Nome: valor.",
"ntfyServer": "URL do Servidor", "ntfyServer": "URL do Servidor",
"ntfyTopic": "Topic", "ntfyTopic": "Tópico",
"ntfyToken": "Access token (optional)", "ntfyToken": "Token de acesso (opcional)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL do webhook do Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Nas configurações do canal no Discord, em Integrações.",
"discordUsername": "Display name (optional)", "discordUsername": "Nome de exibição (opcional)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL do avatar (opcional)",
"emailTo": "Send to", "emailTo": "Enviar para",
"emailHint": "Separate more than one address with commas.", "emailHint": "Separe mais de um endereço com vírgulas.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Permitir um endereço de rede privada",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.",
"add": "Add rule", "add": "Adicionar regra",
"edit": "Edit rule", "edit": "Editar regra",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Ainda não existem regras, portanto os alertas só aparecem na caixa de entrada.",
"needChannel": "Add a channel first.", "needChannel": "Primeiro, adicione um canal.",
"enabled": "Enabled", "enabled": "Habilitado",
"name": "Name", "name": "Nome",
"nameRequired": "Name is required", "nameRequired": "O nome é obrigatório.",
"match": "Alerts to send", "match": "Alertas a enviar",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* para tudo, automações.* para tudo, desde automações, até um tipo específico.",
"minSeverity": "At least", "minSeverity": "Pelo menos",
"channels": "Send to", "channels": "Enviar para",
"channelRequired": "Pick at least one channel", "channelRequired": "Escolha pelo menos um canal.",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Apagar a regra \"{{name}}\"?",
"everything": "Everything", "everything": "Tudo",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} ou superior, para {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancelar", "cancel": "Cancelar",
@@ -162,11 +162,11 @@
"delete": "Apagar" "delete": "Apagar"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Feed de alertas",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Seus alertas mais recentes, com uma maneira rápida de marcá-los como lidos.",
"maxItems": "Max items", "maxItems": "Itens máximos",
"showRead": "Show read alerts", "showRead": "Mostrar alertas de leitura",
"allClear": "All clear", "allClear": "Tudo certo",
"loading": "Carregando..." "loading": "Carregando..."
} }
} }
+84 -84
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Usar alertas",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Receba alertas na caixa de entrada e envie-os para os seus próprios canais."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alertas", "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": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Anúncios da Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Exibir notícias da equipa Termix, como avisos de segurança e comunicados, na caixa de entrada de todos."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Manter alertas durante (dias)",
"description": "Older alerts are removed from every inbox." "description": "Os alertas antigos são removidos de todas as caixas de entrada."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "Servidor SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.",
"placeholder": "smtp.example.com" "placeholder": "smtp.exemplo.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "porta SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Normalmente, utiliza-se a porta 587 com STARTTLS ou a porta 465 com TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Utilize TLS desde o início.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "nome de utilizador SMTP",
"description": "Leave empty if the server does not need a login." "description": "Deixe em branco se o servidor não necessitar de login."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Palavra-passe SMTP",
"description": "Stored encrypted." "description": "Armazenado encriptado."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Do endereço",
"description": "The sender alerts come from.", "description": "Os alertas do remetente provêm de:",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Janelas de alerta",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Que novos alertas aparecem enquanto utiliza o Termix? Chegam sempre na caixa de entrada.",
"all": "All alerts", "all": "Todos os alertas",
"warning": "Warnings and critical", "warning": "Avisos e alertas",
"critical": "Critical only", "critical": "Somente crítico",
"off": "Nenhuma" "off": "Nenhuma"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Caixa de entrada",
"channels": "Canais", "channels": "Canais",
"rules": "Delivery rules" "rules": "Regras de entrega"
}, },
"severity": { "severity": {
"info": "Info", "info": "Info",
"success": "Sucesso", "success": "Sucesso",
"warning": "Aviso", "warning": "Aviso",
"critical": "Critical" "critical": "Crítico"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Abrir", "openLink": "Abrir",
"view": "Ver", "view": "Ver",
"unread": "Unread", "unread": "Não lido",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} canal falhou",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} canais falharam",
"markRead": "Mark as read", "markRead": "Marcar como lido",
"markUnread": "Mark as unread", "markUnread": "Marcar como não lida",
"markAllRead": "Mark all as read", "markAllRead": "Marcar tudo como lido",
"delete": "Eliminar", "delete": "Eliminar",
"clearRead": "Delete read alerts", "clearRead": "Apagar alertas de leitura",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Alerta eliminado {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Alertas excluídos {{count}}",
"filterAll": "Todas", "filterAll": "Todas",
"filterUnread": "Unread", "filterUnread": "Não lido",
"anySeverity": "Any severity", "anySeverity": "Qualquer gravidade",
"anySource": "Any source", "anySource": "Qualquer fonte",
"openAll": "Open in a tab", "openAll": "Abrir numa aba",
"empty": "No alerts yet.", "empty": "Ainda não há alertas.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Estão todos a par da situação.",
"loadMore": "Load more" "loadMore": "Carregar mais"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "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": "Add channel", "add": "Adicionar canal",
"edit": "Edit channel", "edit": "Editar canal",
"test": "Send a test", "test": "Enviar um teste",
"testSent": "Test alert sent", "testSent": "Alerta de teste enviado",
"testFailed": "Test failed: {{error}}", "testFailed": "Teste falhou: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Apagar o canal \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Canal excluído",
"empty": "No channels yet.", "empty": "Ainda não há canais.",
"enabled": "Ativado", "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", "name": "Nome",
"nameRequired": "O nome é obrigatório", "nameRequired": "O nome é obrigatório",
"type": "Tipo", "type": "Tipo",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "E-mail" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Obtém um corpo JSON para cada alerta.",
"method": "Method", "method": "Método",
"headers": "Headers", "headers": "Cabeçalhos",
"headersHint": "One per line, like Name: value.", "headersHint": "Um por linha, como por exemplo Nome: valor.",
"ntfyServer": "URL do servidor", "ntfyServer": "URL do servidor",
"ntfyTopic": "Tópico", "ntfyTopic": "Tópico",
"ntfyToken": "Access token (optional)", "ntfyToken": "Token de acesso (opcional)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL do webhook do Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Nas definições do canal no Discord, em Integrações.",
"discordUsername": "Display name (optional)", "discordUsername": "Nome de visualização (opcional)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL do avatar (opcional)",
"emailTo": "Send to", "emailTo": "Enviar para",
"emailHint": "Separate more than one address with commas.", "emailHint": "Separe mais do que um endereço com vírgulas.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Permitir um endereço de rede privada",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.",
"add": "Add rule", "add": "Adicionar regra",
"edit": "Edit rule", "edit": "Editar regra",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Ainda não existem regras, pelo que os alertas apenas aparecem na caixa de entrada.",
"needChannel": "Add a channel first.", "needChannel": "Primeiro, adicione um canal.",
"enabled": "Ativado", "enabled": "Ativado",
"name": "Nome", "name": "Nome",
"nameRequired": "O nome é obrigatório", "nameRequired": "O nome é obrigatório",
"match": "Alerts to send", "match": "Alertas a enviar",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* para tudo, automações.* para tudo, desde automações, a um tipo específico.",
"minSeverity": "At least", "minSeverity": "Pelo menos",
"channels": "Send to", "channels": "Enviar para",
"channelRequired": "Pick at least one channel", "channelRequired": "Escolha pelo menos um canal.",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Apagar a regra \"{{name}}\"?",
"everything": "Everything", "everything": "Tudo",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} ou superior, para {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancelar", "cancel": "Cancelar",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "Feed de alertas", "name": "Feed de alertas",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Os seus alertas mais recentes, com uma forma rápida de os marcar como lidos.",
"maxItems": "Max items", "maxItems": "Itens máximos",
"showRead": "Show read alerts", "showRead": "Mostrar alertas de leitura",
"allClear": "Tudo em ordem", "allClear": "Tudo em ordem",
"loading": "A carregar..." "loading": "A carregar..."
} }
+85 -85
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Используйте оповещения",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Получайте уведомления на свою электронную почту и отправляйте их в свои каналы."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Оповещения", "feature": "Оповещения",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Все оповещения в одном почтовом ящике, которые можно отправить в Discord, ntfy, на электронную почту или через веб-хук, если хотите."
}, },
"settings": { "settings": {
"group": { "group": {
@@ -19,141 +19,141 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Объявления компании Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Показывайте новости от команды Termix, такие как уведомления о безопасности и обновления, в почтовые ящики всех пользователей."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Сохранять оповещения в течение (дней)",
"description": "Older alerts are removed from every inbox." "description": "Более старые уведомления удаляются из всех почтовых ящиков."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP-сервер",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Необходимо для каналов электронной почты. Оставьте поле пустым, чтобы отключить отправку писем.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP-порт",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Обычно используется код 587 с STARTTLS или 465 с TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Используйте TLS с самого начала.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Включите порт 465. Оставьте выключенным порт 587, так как он автоматически переходит на TLS."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "Имя пользователя SMTP",
"description": "Leave empty if the server does not need a login." "description": "Оставьте поле пустым, если серверу не требуется авторизация."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP-пароль",
"description": "Stored encrypted." "description": "Сохранено в зашифрованном виде."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "От адреса",
"description": "The sender alerts come from.", "description": "Уведомления поступают от отправителя.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Всплывающие уведомления",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Какие новые уведомления появляются во время использования Termix? Они всегда попадают во входящие сообщения.",
"all": "All alerts", "all": "Все оповещения",
"warning": "Warnings and critical", "warning": "Предупреждения и критические",
"critical": "Critical only", "critical": "Только критически важные",
"off": "Ни одного" "off": "Ни одного"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Входящие",
"channels": "Каналы", "channels": "Каналы",
"rules": "Delivery rules" "rules": "Правила доставки"
}, },
"severity": { "severity": {
"info": "Информация", "info": "Информация",
"success": "Успех", "success": "Успех",
"warning": "Предупреждение", "warning": "Предупреждение",
"critical": "Critical" "critical": "Критический"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Открыть", "openLink": "Открыть",
"view": "Просмотр", "view": "Просмотр",
"unread": "Unread", "unread": "Непрочитано",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} канал не работает",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} каналы не работают",
"markRead": "Mark as read", "markRead": "Отметить как прочитанное",
"markUnread": "Mark as unread", "markUnread": "Отметить как непрочитанное",
"markAllRead": "Mark all as read", "markAllRead": "Отметьте все как прочитанное",
"delete": "Удалить", "delete": "Удалить",
"clearRead": "Delete read alerts", "clearRead": "Удалить оповещения о прочтении",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Удалено {{count}} оповещение",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Удалены {{count}} оповещения",
"filterAll": "Все", "filterAll": "Все",
"filterUnread": "Unread", "filterUnread": "Непрочитано",
"anySeverity": "Any severity", "anySeverity": "Любая степень тяжести",
"anySource": "Any source", "anySource": "Любой источник",
"openAll": "Open in a tab", "openAll": "Открыть во вкладке",
"empty": "No alerts yet.", "empty": "Пока нет оповещений.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Вы всё успели посмотреть.",
"loadMore": "Load more" "loadMore": "Загрузить ещё"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Каналы — это место, куда могут отправляться оповещения за пределы Termix. Правила доставки определяют, какие оповещения будут их использовать.",
"add": "Add channel", "add": "Добавить канал",
"edit": "Edit channel", "edit": "Редактировать канал",
"test": "Send a test", "test": "Отправить тест",
"testSent": "Test alert sent", "testSent": "Отправлено тестовое оповещение",
"testFailed": "Test failed: {{error}}", "testFailed": "Тест не пройден: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Удалить канал \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Канал удален",
"empty": "No channels yet.", "empty": "Каналов пока нет.",
"enabled": "Включено", "enabled": "Включено",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Перед отправкой сообщения этот канал необходимо снова открыть и сохранить.",
"name": "Название", "name": "Название",
"nameRequired": "Имя обязательно", "nameRequired": "Имя обязательно",
"type": "Тип", "type": "Тип",
"types": { "types": {
"webhook": "Webhook", "webhook": "Вебхук",
"ntfy": "ntfy", "ntfy": "нтфи",
"discord": "Discord", "discord": "Discord",
"email": "Email" "email": "Email"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "Для работы электронной почты необходим SMTP-сервер, который администратор настраивает в параметрах оповещений.",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Получает JSON-тело для каждого оповещения.",
"method": "Method", "method": "Метод",
"headers": "Headers", "headers": "Заголовки",
"headersHint": "One per line, like Name: value.", "headersHint": "Один символ на строку, например, Имя: значение.",
"ntfyServer": "URL сервера", "ntfyServer": "URL сервера",
"ntfyTopic": "Тема", "ntfyTopic": "Тема",
"ntfyToken": "Access token (optional)", "ntfyToken": "Токен доступа (необязательно)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL веб-перехватчика Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "В настройках канала в Discord, в разделе «Интеграции».",
"discordUsername": "Display name (optional)", "discordUsername": "Отображаемое имя (необязательно)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL-адрес аватара (необязательно)",
"emailTo": "Send to", "emailTo": "Отправить",
"emailHint": "Separate more than one address with commas.", "emailHint": "Разделяя несколько адресов запятыми.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Разрешить использование частного сетевого адреса",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Работает только для хостов, разрешенных администратором в списке частных конечных точек."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Правило доставки отправляет соответствующие оповещения в ваши каналы. Оповещения также всегда остаются во входящих сообщениях.",
"add": "Add rule", "add": "Добавить правило",
"edit": "Edit rule", "edit": "Редактировать правило",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Правил пока нет, поэтому уведомления отображаются только во входящих сообщениях.",
"needChannel": "Add a channel first.", "needChannel": "Сначала добавьте канал.",
"enabled": "Включено", "enabled": "Включено",
"name": "Название", "name": "Название",
"nameRequired": "Имя обязательно", "nameRequired": "Имя обязательно",
"match": "Alerts to send", "match": "Уведомления для отправки",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* для всего, что связано с автоматизацией.* для всего, что связано с автоматизацией, или для одного конкретного типа.",
"minSeverity": "At least", "minSeverity": "По меньшей мере",
"channels": "Send to", "channels": "Отправить",
"channelRequired": "Pick at least one channel", "channelRequired": "Выберите хотя бы один канал",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Удалить правило \"{{name}}\"?",
"everything": "Everything", "everything": "Все",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} или выше, до {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Отмена", "cancel": "Отмена",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "Лента оповещений", "name": "Лента оповещений",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Ваши последние уведомления с возможностью быстрой пометки их как прочитанных.",
"maxItems": "Max items", "maxItems": "Максимальное количество предметов",
"showRead": "Show read alerts", "showRead": "Показать уведомления о прочтении",
"allClear": "Всё в порядке", "allClear": "Всё в порядке",
"loading": "Загрузка..." "loading": "Загрузка..."
} }
+118 -118
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Упозорења"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Користите упозорења",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Добијајте обавештења у пријемно сандуче и шаљите их на своје канале."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "Упозорења",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Свако упозорење у једном пријемном сандучету, послато на Discord, ntfy, имејл или вебхук ако желите."
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "Опште",
"email": "Email" "email": "Е-пошта"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix саопштења",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Прикажи вести од Termix тима, као што су безбедносна обавештења и издања, у пријемном сандучету свих корисника."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Задржавај упозорења (дана)",
"description": "Older alerts are removed from every inbox." "description": "Старија упозорења се уклањају из сваког пријемног сандучета."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP сервер",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Потребно за имејл канале. Оставите празно да бисте искључили имејл.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "СМТП порт",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Обично 587 са STARTTLS-ом или 465 са TLS-ом."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Користите TLS од почетка",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Укључите за порт 465. Оставите искључено за порт 587, који се сам надограђује на TLS."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP корисничко име",
"description": "Leave empty if the server does not need a login." "description": "Оставите празно ако сервер не захтева пријаву."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "СМТП лозинка",
"description": "Stored encrypted." "description": "Сачувано шифровано."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Адреса одакле",
"description": "The sender alerts come from.", "description": "Упозорења пошиљаоца долазе од.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Термикс <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Искачући прозори са упозорењима",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Која нова упозорења се појављују док користите Termix. Она увек стижу у пријемно сандуче.",
"all": "All alerts", "all": "Сва упозорења",
"warning": "Warnings and critical", "warning": "Упозорења и критичне информације",
"critical": "Critical only", "critical": "Само критично",
"off": "None" "off": "Ниједан"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Пријемно сандуче",
"channels": "Channels", "channels": "Канали",
"rules": "Delivery rules" "rules": "Правила испоруке"
}, },
"severity": { "severity": {
"info": "Info", "info": "Информације",
"success": "Success", "success": "Успех",
"warning": "Warning", "warning": "Упозорење",
"critical": "Critical" "critical": "Критично"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Термикс",
"openLink": "Open", "openLink": "Отворено",
"view": "View", "view": "Поглед",
"unread": "Unread", "unread": "Непрочитано",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} канал није успео",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} канала није успело",
"markRead": "Mark as read", "markRead": "Означи као прочитано",
"markUnread": "Mark as unread", "markUnread": "Означи као непрочитано",
"markAllRead": "Mark all as read", "markAllRead": "Означи све као прочитано",
"delete": "Delete", "delete": "Обриши",
"clearRead": "Delete read alerts", "clearRead": "Обриши упозорења о читању",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Обрисано упозорење {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Обрисана упозорења {{count}}",
"filterAll": "All", "filterAll": "Сви",
"filterUnread": "Unread", "filterUnread": "Непрочитано",
"anySeverity": "Any severity", "anySeverity": "Било која тежина",
"anySource": "Any source", "anySource": "Било који извор",
"openAll": "Open in a tab", "openAll": "Отвори у картици",
"empty": "No alerts yet.", "empty": "Још нема упозорења.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Све сте у току.",
"loadMore": "Load more" "loadMore": "Учитај још"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Канали су места где упозорења могу да се шаљу изван Termix-а. Правила испоруке бирају која упозорења их користе.",
"add": "Add channel", "add": "Додај канал",
"edit": "Edit channel", "edit": "Измени канал",
"test": "Send a test", "test": "Пошаљи тест",
"testSent": "Test alert sent", "testSent": "Послато је тестно упозорење",
"testFailed": "Test failed: {{error}}", "testFailed": "Тест није успео: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Обрисати канал „{{name}}“?",
"deleted": "Channel deleted", "deleted": "Канал је обрисан",
"empty": "No channels yet.", "empty": "Још нема канала.",
"enabled": "Enabled", "enabled": "Омогућено",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Овај канал треба поново отворити и сачувати пре него што се може послати.",
"name": "Name", "name": "Име",
"nameRequired": "Name is required", "nameRequired": "Име је обавезно",
"type": "Type", "type": "Тип",
"types": { "types": {
"webhook": "Webhook", "webhook": "Вебхук",
"ntfy": "ntfy", "ntfy": "нтфи",
"discord": "Discord", "discord": "Неслагање",
"email": "Email" "email": "Е-пошта"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "Е-пошти је потребан SMTP сервер, који администратор подешава у подешавањима упозорења.",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Добија JSON тело за свако упозорење.",
"method": "Method", "method": "Метод",
"headers": "Headers", "headers": "Заглавља",
"headersHint": "One per line, like Name: value.", "headersHint": "Један по реду, као што је Име: вредност.",
"ntfyServer": "Server URL", "ntfyServer": "URL сервера",
"ntfyTopic": "Topic", "ntfyTopic": "Тема",
"ntfyToken": "Access token (optional)", "ntfyToken": "Приступни токен (опционо)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL вебхука на Дискорду",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Из подешавања канала на Дискорду, под Интеграције.",
"discordUsername": "Display name (optional)", "discordUsername": "Приказано име (опционо)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL адреса аватара (опционо)",
"emailTo": "Send to", "emailTo": "Пошаљи",
"emailHint": "Separate more than one address with commas.", "emailHint": "Одвојите више од једне адресе зарезима.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Дозволи адресу приватне мреже",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Ради само за хостове које администратор дозвољава на листи приватних крајњих тачака."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Правило испоруке шаље одговарајућа упозорења вашим каналима. Упозорења такође увек остају у пријемном сандучету.",
"add": "Add rule", "add": "Додај правило",
"edit": "Edit rule", "edit": "Измени правило",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Још нема правила, тако да се упозорења приказују само у пријемном сандучету.",
"needChannel": "Add a channel first.", "needChannel": "Прво додајте канал.",
"enabled": "Enabled", "enabled": "Омогућено",
"name": "Name", "name": "Име",
"nameRequired": "Name is required", "nameRequired": "Име је обавезно",
"match": "Alerts to send", "match": "Обавештења за слање",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* за све, аутоматизације.* за све од аутоматизација, или само једну врсту.",
"minSeverity": "At least", "minSeverity": "Барем",
"channels": "Send to", "channels": "Пошаљи",
"channelRequired": "Pick at least one channel", "channelRequired": "Изаберите барем један канал",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Обрисати правило „{{name}}“?",
"everything": "Everything", "everything": "Све",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} или више, до {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "Откажи",
"save": "Save", "save": "Сачувај",
"saving": "Saving...", "saving": "Чување...",
"delete": "Delete" "delete": "Обриши"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Фид обавештења",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Ваша најновија обавештења, са брзим начином да их означите као прочитане",
"maxItems": "Max items", "maxItems": "Максималан број ставки",
"showRead": "Show read alerts", "showRead": "Прикажи обавештења о читању",
"allClear": "All clear", "allClear": "Све је чисто",
"loading": "Loading..." "loading": "Учитавање..."
} }
} }
+114 -114
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Aviseringar"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Använd varningar",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Få aviseringar i inkorgen och skicka dem till dina egna kanaler."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "Aviseringar",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Varje avisering i en inkorg, skickad vidare till Discord, ntfy, e-post eller en webhook om du vill."
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "Allmän",
"email": "Email" "email": "E-post"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix-meddelanden",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Visa nyheter från Termix-teamet, som säkerhetsmeddelanden och pressmeddelanden, i allas inkorg."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Behåll varningar i (dagar)",
"description": "Older alerts are removed from every inbox." "description": "Äldre aviseringar tas bort från alla inkorgar."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP-server",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Behövs för e-postkanaler. Lämna tomt för att stänga av e-post.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP-port",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Vanligtvis 587 med STARTTLS eller 465 med TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Använd TLS från början",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Aktivera port 465. Avaktivera port 587, som uppgraderar till TLS på egen hand."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP-användarnamn",
"description": "Leave empty if the server does not need a login." "description": "Lämna tomt om servern inte behöver inloggning."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP-lösenord",
"description": "Stored encrypted." "description": "Lagras krypterat."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Från adress",
"description": "The sender alerts come from.", "description": "Avsändaraviseringarna kommer från.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Aviseringspopup-fönster",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Vilka nya aviseringar dyker upp när du använder Termix? De hamnar alltid i inkorgen.",
"all": "All alerts", "all": "Alla varningar",
"warning": "Warnings and critical", "warning": "Varningar och kritiska",
"critical": "Critical only", "critical": "Endast kritisk",
"off": "None" "off": "Ingen"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Inkorg",
"channels": "Channels", "channels": "Kanaler",
"rules": "Delivery rules" "rules": "Leveransregler"
}, },
"severity": { "severity": {
"info": "Info", "info": "Info",
"success": "Success", "success": "Framgång",
"warning": "Warning", "warning": "Varning",
"critical": "Critical" "critical": "Kritisk"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Open", "openLink": "Öppna",
"view": "View", "view": "Se",
"unread": "Unread", "unread": "Oläst",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} kanal misslyckades",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} kanaler misslyckades",
"markRead": "Mark as read", "markRead": "Markera som läst",
"markUnread": "Mark as unread", "markUnread": "Markera som oläst",
"markAllRead": "Mark all as read", "markAllRead": "Markera alla som lästa",
"delete": "Delete", "delete": "Radera",
"clearRead": "Delete read alerts", "clearRead": "Ta bort läsaviseringar",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Borttagen {{count}} -avisering",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Borttagna {{count}} varningar",
"filterAll": "All", "filterAll": "Alla",
"filterUnread": "Unread", "filterUnread": "Oläst",
"anySeverity": "Any severity", "anySeverity": "Vilken allvarlighetsgrad som helst",
"anySource": "Any source", "anySource": "Vilken källa som helst",
"openAll": "Open in a tab", "openAll": "Öppna i en flik",
"empty": "No alerts yet.", "empty": "Inga varningar ännu.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Ni är helt uppdaterade.",
"loadMore": "Load more" "loadMore": "Ladda mer"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Kanaler är där aviseringar kan skickas utanför Termix. Leveransregler väljer vilka aviseringar som använder dem.",
"add": "Add channel", "add": "Lägg till kanal",
"edit": "Edit channel", "edit": "Redigera kanal",
"test": "Send a test", "test": "Skicka ett test",
"testSent": "Test alert sent", "testSent": "Testavisering skickad",
"testFailed": "Test failed: {{error}}", "testFailed": "Testet misslyckades: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Ta bort kanalen \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Kanal borttagen",
"empty": "No channels yet.", "empty": "Inga kanaler än.",
"enabled": "Enabled", "enabled": "Aktiverad",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Den här kanalen måste öppnas och sparas igen innan den kan skicka.",
"name": "Name", "name": "Namn",
"nameRequired": "Name is required", "nameRequired": "Namn krävs",
"type": "Type", "type": "Typ",
"types": { "types": {
"webhook": "Webhook", "webhook": "Webbhook",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Disharmoni",
"email": "Email" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Hämtar en JSON-text för varje avisering.",
"method": "Method", "method": "Metod",
"headers": "Headers", "headers": "Rubriker",
"headersHint": "One per line, like Name: value.", "headersHint": "En per rad, som Namn: värde.",
"ntfyServer": "Server URL", "ntfyServer": "Server-URL",
"ntfyTopic": "Topic", "ntfyTopic": "Ämne",
"ntfyToken": "Access token (optional)", "ntfyToken": "Åtkomsttoken (valfritt)",
"discordUrl": "Discord webhook URL", "discordUrl": "Discord webhook-URL",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Från kanalens inställningar i Discord, under Integrationer.",
"discordUsername": "Display name (optional)", "discordUsername": "Visningsnamn (valfritt)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "Avatar-URL (valfritt)",
"emailTo": "Send to", "emailTo": "Skicka till",
"emailHint": "Separate more than one address with commas.", "emailHint": "Separera mer än en adress med kommatecken.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Tillåt en privat nätverksadress",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Fungerar bara för värdar som en administratör tillåter i listan över privata slutpunkter."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "En leveransregel skickar matchande aviseringar till dina kanaler. Aviseringar finns alltid kvar i inkorgen också.",
"add": "Add rule", "add": "Lägg till regel",
"edit": "Edit rule", "edit": "Redigera regel",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Inga regler ännu, så aviseringar visas bara i inkorgen.",
"needChannel": "Add a channel first.", "needChannel": "Lägg till en kanal först.",
"enabled": "Enabled", "enabled": "Aktiverad",
"name": "Name", "name": "Namn",
"nameRequired": "Name is required", "nameRequired": "Namn krävs",
"match": "Alerts to send", "match": "Aviseringar att skicka",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* för allt, automatiseringar.* för allt från automatiseringar, eller en exakt sort.",
"minSeverity": "At least", "minSeverity": "Åtminstone",
"channels": "Send to", "channels": "Skicka till",
"channelRequired": "Pick at least one channel", "channelRequired": "Välj minst en kanal",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Ta bort regeln \"{{name}}\"?",
"everything": "Everything", "everything": "Allt",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} eller högre, till {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "Avboka",
"save": "Save", "save": "Spara",
"saving": "Saving...", "saving": "Sparande...",
"delete": "Delete" "delete": "Radera"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Aviseringsflöde",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Dina senaste aviseringar, med ett snabbt sätt att markera dem som lästa",
"maxItems": "Max items", "maxItems": "Max antal artiklar",
"showRead": "Show read alerts", "showRead": "Visa läsaviseringar",
"allClear": "All clear", "allClear": "Faran över",
"loading": "Loading..." "loading": "Belastning..."
} }
} }
+117 -117
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "การแจ้งเตือน"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "ใช้การแจ้งเตือน",
"description": "Get alerts in the inbox and send them to your own channels." "description": "รับการแจ้งเตือนในกล่องข้อความขาเข้า และส่งต่อไปยังช่องทางของคุณเองได้"
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "การแจ้งเตือน",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "การแจ้งเตือนทั้งหมดจะถูกส่งไปยังกล่องข้อความเดียว และส่งต่อไปยัง Discord, NTFI, อีเมล หรือ Webhook ตามที่คุณต้องการ"
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "ทั่วไป",
"email": "Email" "email": "อีเมล"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "ประกาศจาก Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "แสดงข่าวสารจากทีม Termix เช่น ประกาศด้านความปลอดภัยและการอัปเดตต่างๆ ในกล่องจดหมายของทุกคน"
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "ตั้งค่าการแจ้งเตือนเป็นเวลา (วัน)",
"description": "Older alerts are removed from every inbox." "description": "การแจ้งเตือนเก่าๆ จะถูกลบออกจากกล่องจดหมายทุกกล่อง"
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "เซิร์ฟเวอร์ SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "จำเป็นสำหรับช่องทางการส่งอีเมล เว้นว่างไว้เพื่อปิดการใช้งานอีเมล",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "พอร์ต SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "โดยทั่วไปจะใช้พอร์ต 587 สำหรับ STARTTLS หรือ 465 สำหรับ TLS"
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "ใช้ TLS ตั้งแต่เริ่มต้น",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "เปิดใช้งานสำหรับพอร์ต 465 ปิดใช้งานสำหรับพอร์ต 587 ซึ่งจะอัปเกรดเป็น TLS โดยอัตโนมัติ"
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "ชื่อผู้ใช้ SMTP",
"description": "Leave empty if the server does not need a login." "description": "เว้นว่างไว้หากเซิร์ฟเวอร์ไม่ต้องการการเข้าสู่ระบบ"
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "รหัสผ่าน SMTP",
"description": "Stored encrypted." "description": "จัดเก็บในรูปแบบเข้ารหัส"
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "จากที่อยู่",
"description": "The sender alerts come from.", "description": "การแจ้งเตือนจากผู้ส่งมาจาก...",
"placeholder": "Termix <alerts@example.com>" "placeholder": "เทอร์มิกซ์ <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "ป๊อปอัปแจ้งเตือน",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "มีการแจ้งเตือนใหม่ๆ อะไรบ้างที่จะปรากฏขึ้นขณะที่คุณใช้งาน Termix การแจ้งเตือนเหล่านั้นจะถูกส่งไปยังกล่องจดหมายเข้าเสมอ",
"all": "All alerts", "all": "การแจ้งเตือนทั้งหมด",
"warning": "Warnings and critical", "warning": "คำเตือนและข้อสำคัญ",
"critical": "Critical only", "critical": "เฉพาะกรณีวิกฤติเท่านั้น",
"off": "None" "off": "ไม่มี"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "กล่องขาเข้า",
"channels": "Channels", "channels": "ช่องต่างๆ",
"rules": "Delivery rules" "rules": "กฎการจัดส่ง"
}, },
"severity": { "severity": {
"info": "Info", "info": "ข้อมูล",
"success": "Success", "success": "ความสำเร็จ",
"warning": "Warning", "warning": "คำเตือน",
"critical": "Critical" "critical": "วิกฤต"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "เทอร์มิกซ์",
"openLink": "Open", "openLink": "เปิด",
"view": "View", "view": "ดู",
"unread": "Unread", "unread": "ยังไม่ได้อ่าน",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} ช่องทางล้มเหลว",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} ช่องทางล้มเหลว",
"markRead": "Mark as read", "markRead": "ทำเครื่องหมายว่าอ่านแล้ว",
"markUnread": "Mark as unread", "markUnread": "ทำเครื่องหมายว่ายังไม่ได้อ่าน",
"markAllRead": "Mark all as read", "markAllRead": "ทำเครื่องหมายว่าอ่านแล้วทั้งหมด",
"delete": "Delete", "delete": "ลบ",
"clearRead": "Delete read alerts", "clearRead": "ลบการแจ้งเตือนการอ่าน",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "ลบการแจ้งเตือน {{count}} แล้ว",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "ลบการแจ้งเตือน {{count}} แล้ว",
"filterAll": "All", "filterAll": "ทั้งหมด",
"filterUnread": "Unread", "filterUnread": "ยังไม่ได้อ่าน",
"anySeverity": "Any severity", "anySeverity": "ความรุนแรงใดๆ",
"anySource": "Any source", "anySource": "แหล่งที่มาใดๆ",
"openAll": "Open in a tab", "openAll": "เปิดในแท็บใหม่",
"empty": "No alerts yet.", "empty": "ยังไม่มีการแจ้งเตือนใดๆ",
"emptyUnread": "You are all caught up.", "emptyUnread": "คุณได้รับข้อมูลครบถ้วนแล้ว",
"loadMore": "Load more" "loadMore": "โหลดเพิ่มเติม"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "ช่องทางต่างๆ คือที่ที่การแจ้งเตือนสามารถส่งออกไปภายนอก Termix ได้ กฎการส่งจะเลือกว่าการแจ้งเตือนใดควรใช้ช่องทางเหล่านั้น",
"add": "Add channel", "add": "เพิ่มช่องทาง",
"edit": "Edit channel", "edit": "แก้ไขช่อง",
"test": "Send a test", "test": "ส่งทดสอบ",
"testSent": "Test alert sent", "testSent": "ส่งการแจ้งเตือนการทดสอบแล้ว",
"testFailed": "Test failed: {{error}}", "testFailed": "การทดสอบล้มเหลว: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "ลบช่อง \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "ช่องถูกลบแล้ว",
"empty": "No channels yet.", "empty": "ยังไม่มีช่องทางใด ๆ",
"enabled": "Enabled", "enabled": "เปิดใช้งาน",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "ต้องเปิดและบันทึกช่องทางนี้อีกครั้งก่อนจึงจะสามารถส่งได้",
"name": "Name", "name": "ชื่อ",
"nameRequired": "Name is required", "nameRequired": "ต้องระบุชื่อ",
"type": "Type", "type": "พิมพ์",
"types": { "types": {
"webhook": "Webhook", "webhook": "เว็บฮุค",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "ดิสคอร์ด",
"email": "Email" "email": "อีเมล"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "อีเมลจำเป็นต้องมีเซิร์ฟเวอร์ SMTP ซึ่งผู้ดูแลระบบจะตั้งค่าไว้ในการตั้งค่าการแจ้งเตือน",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "จะได้รับข้อมูล JSON สำหรับการแจ้งเตือนทุกครั้ง",
"method": "Method", "method": "วิธี",
"headers": "Headers", "headers": "ส่วนหัว",
"headersHint": "One per line, like Name: value.", "headersHint": "หนึ่งรายการต่อบรรทัด เช่น ชื่อ: ค่า",
"ntfyServer": "Server URL", "ntfyServer": "URL ของเซิร์ฟเวอร์",
"ntfyTopic": "Topic", "ntfyTopic": "หัวข้อ",
"ntfyToken": "Access token (optional)", "ntfyToken": "โทเค็นการเข้าถึง (ไม่บังคับ)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL เว็บฮุคของ Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "จากเมนูการตั้งค่าของช่องใน Discord ในส่วน \"การผสานรวม\"",
"discordUsername": "Display name (optional)", "discordUsername": "ชื่อที่แสดง (ไม่บังคับ)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL รูปประจำตัว (ไม่บังคับ)",
"emailTo": "Send to", "emailTo": "ส่งไปยัง",
"emailHint": "Separate more than one address with commas.", "emailHint": "คั่นที่อยู่มากกว่าหนึ่งรายการด้วยเครื่องหมายจุลภาค",
"privateNetwork": "Allow a private network address", "privateNetwork": "อนุญาตให้ใช้ที่อยู่เครือข่ายส่วนตัว",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "ใช้ได้เฉพาะกับโฮสต์ที่ผู้ดูแลระบบอนุญาตในรายการปลายทางส่วนตัวเท่านั้น"
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "กฎการส่งจะส่งการแจ้งเตือนที่ตรงกันไปยังช่องทางต่างๆ ของคุณ การแจ้งเตือนเหล่านี้จะยังคงอยู่ในกล่องจดหมายเข้าเสมอ",
"add": "Add rule", "add": "เพิ่มกฎ",
"edit": "Edit rule", "edit": "แก้ไขกฎ",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "ยังไม่มีการกำหนดกฎเกณฑ์ใดๆ ดังนั้นการแจ้งเตือนจะปรากฏเฉพาะในกล่องจดหมายเข้าเท่านั้น",
"needChannel": "Add a channel first.", "needChannel": "เพิ่มช่องทางก่อน",
"enabled": "Enabled", "enabled": "เปิดใช้งาน",
"name": "Name", "name": "ชื่อ",
"nameRequired": "Name is required", "nameRequired": "ต้องระบุชื่อ",
"match": "Alerts to send", "match": "การแจ้งเตือนที่จะส่ง",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "*สำหรับทุกสิ่งทุกอย่าง ระบบอัตโนมัติ* สำหรับทุกสิ่งทุกอย่างจากระบบอัตโนมัติ หรือระบบอัตโนมัติแบบใดแบบหนึ่งโดยเฉพาะ",
"minSeverity": "At least", "minSeverity": "อย่างน้อย",
"channels": "Send to", "channels": "ส่งไปยัง",
"channelRequired": "Pick at least one channel", "channelRequired": "เลือกอย่างน้อยหนึ่งช่อง",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "ลบกฎ \"{{name}} \" ออกหรือไม่?",
"everything": "Everything", "everything": "ทุกอย่าง",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} หรือสูงกว่า ไปจนถึง {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "ยกเลิก",
"save": "Save", "save": "บันทึก",
"saving": "Saving...", "saving": "ประหยัด...",
"delete": "Delete" "delete": "ลบ"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "ฟีดแจ้งเตือน",
"description": "Your latest alerts, with a quick way to mark them read", "description": "การแจ้งเตือนล่าสุดของคุณ พร้อมวิธีทำเครื่องหมายว่าอ่านแล้วอย่างรวดเร็ว",
"maxItems": "Max items", "maxItems": "ไอเทมสูงสุด",
"showRead": "Show read alerts", "showRead": "แสดงการแจ้งเตือนการอ่าน",
"allClear": "All clear", "allClear": "ทุกอย่างเรียบร้อย",
"loading": "Loading..." "loading": "กำลังโหลด..."
} }
} }
+82 -82
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Uyarıları kullanın",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Gelen kutunuza bildirimler alın ve bunları kendi kanallarınıza gönderin."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Uyarılar", "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": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix duyuruları",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Termix ekibinden gelen güvenlik uyarıları ve sürümler gibi haberleri herkesin e-posta kutusunda göster."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Uyarıları (gün) süreyle açık tut",
"description": "Older alerts are removed from every inbox." "description": "Eski bildirimler tüm gelen kutularından silinir."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP sunucusu",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "E-posta kanalları için gereklidir. E-postayı kapatmak için boş bırakın.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP bağlantı noktası",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Genellikle STARTTLS ile 587 veya TLS ile 465 kullanılır."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "TLS'yi en başından itibaren kullanın.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "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": { "smtpUser": {
"label": "SMTP username", "label": "SMTP kullanıcı adı",
"description": "Leave empty if the server does not need a login." "description": "Sunucuya giriş yapılması gerekmiyorsa boş bırakın."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP şifresi",
"description": "Stored encrypted." "description": "Şifrelenmiş olarak saklanmaktadır."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Gönderen adresi",
"description": "The sender alerts come from.", "description": "Uyarı gönderen şuradan geliyor.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Uyarı açılır pencereleri",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Termix kullanırken hangi yeni uyarılar belirir? Bunlar her zaman gelen kutunuza düşer.",
"all": "All alerts", "all": "Tüm uyarılar",
"warning": "Warnings and critical", "warning": "Uyarılar ve kritik noktalar",
"critical": "Critical only", "critical": "Sadece kritik",
"off": "Yok" "off": "Yok"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Gelen Kutusu",
"channels": "Kanallar", "channels": "Kanallar",
"rules": "Delivery rules" "rules": "Teslimat kuralları"
}, },
"severity": { "severity": {
"info": "Bilgi", "info": "Bilgi",
"success": "Başarılı", "success": "Başarılı",
"warning": "Uyarı", "warning": "Uyarı",
"critical": "Critical" "critical": "Kritik"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Aç", "openLink": "Aç",
"view": "Görüntüle", "view": "Görüntüle",
"unread": "Unread", "unread": "Okunmamış",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} kanal başarısız oldu",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} kanal başarısız oldu",
"markRead": "Mark as read", "markRead": "Okundu olarak işaretle",
"markUnread": "Mark as unread", "markUnread": "Okunmamış olarak işaretle",
"markAllRead": "Mark all as read", "markAllRead": "Tümünü okundu olarak işaretle",
"delete": "Sil", "delete": "Sil",
"clearRead": "Delete read alerts", "clearRead": "Okuma uyarılarını sil",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Silindi {{count}} uyarısı",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Silinen {{count}} uyarıları",
"filterAll": "Tümü", "filterAll": "Tümü",
"filterUnread": "Unread", "filterUnread": "Okunmamış",
"anySeverity": "Any severity", "anySeverity": "Herhangi bir şiddet",
"anySource": "Any source", "anySource": "Herhangi bir kaynak",
"openAll": "Open in a tab", "openAll": "Yeni sekmede aç",
"empty": "No alerts yet.", "empty": "Henüz herhangi bir uyarı yok.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Her şey tamamlandı.",
"loadMore": "Load more" "loadMore": "Daha fazla yükle"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Kanallar, uyarıların Termix dışına gönderilebileceği yerlerdir. Teslimat kuralları, hangi uyarıların bu kanalları kullanacağını belirler.",
"add": "Add channel", "add": "Kanal ekle",
"edit": "Edit channel", "edit": "Kanalı düzenle",
"test": "Send a test", "test": "Bir test gönderin",
"testSent": "Test alert sent", "testSent": "Test uyarısı gönderildi",
"testFailed": "Test failed: {{error}}", "testFailed": "Test başarısız oldu: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "\"{{name}} \" kanalını silmek mi istiyorsunuz?",
"deleted": "Channel deleted", "deleted": "Kanal silindi",
"empty": "No channels yet.", "empty": "Henüz kanal yok.",
"enabled": "Etkin", "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", "name": "Ad",
"nameRequired": "Ad zorunludur", "nameRequired": "Ad zorunludur",
"type": "Tür", "type": "Tür",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "E-posta" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Her uyarı için JSON formatında bir veri gövdesi alır.",
"method": "Method", "method": "Yöntem",
"headers": "Headers", "headers": "Başlıklar",
"headersHint": "One per line, like Name: value.", "headersHint": "Her satıra bir tane, örneğin İsim: değer şeklinde.",
"ntfyServer": "Sunucu URL'si", "ntfyServer": "Sunucu URL'si",
"ntfyTopic": "Konu", "ntfyTopic": "Konu",
"ntfyToken": "Access token (optional)", "ntfyToken": "Erişim belirteci (isteğe bağlı)",
"discordUrl": "Discord webhook URL", "discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Discord'daki kanal ayarlarından, Entegrasyonlar bölümünden.",
"discordUsername": "Display name (optional)", "discordUsername": "Görüntülenen ad (isteğe bağlı)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "Avatar URL'si (isteğe bağlı)",
"emailTo": "Send to", "emailTo": "Gönder",
"emailHint": "Separate more than one address with commas.", "emailHint": "Birden fazla adresi virgülle ayırın.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Özel ağ adresine izin verin",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Yalnızca yöneticinin özel uç nokta listesinde izin verdiği sunucular için çalışır."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Bir teslimat kuralı, eşleşen uyarıları kanallarınıza gönderir. Uyarılar her zaman gelen kutunuzda da kalır.",
"add": "Add rule", "add": "Kural ekle",
"edit": "Edit rule", "edit": "Kuralı düzenle",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Henüz kurallar belirlenmedi, bu nedenle uyarılar yalnızca gelen kutusunda görünüyor.",
"needChannel": "Add a channel first.", "needChannel": "Önce bir kanal ekleyin.",
"enabled": "Etkin", "enabled": "Etkin",
"name": "Ad", "name": "Ad",
"nameRequired": "Ad zorunludur", "nameRequired": "Ad zorunludur",
"match": "Alerts to send", "match": "Gönderilecek uyarılar",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "*Her şey için otomasyonlar.* Otomasyonlardan her şeye veya belirli bir türe kadar.",
"minSeverity": "At least", "minSeverity": "En azından",
"channels": "Send to", "channels": "Gönder",
"channelRequired": "Pick at least one channel", "channelRequired": "En az bir kanal seçin",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "\"{{name}} \" kuralını silmek mi istiyorsunuz?",
"everything": "Everything", "everything": "Her şey",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} veya daha yüksek, {{channels}}'ye kadar"
}, },
"actions": { "actions": {
"cancel": "İptal", "cancel": "İptal",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "Uyarı Akışı", "name": "Uyarı Akışı",
"description": "Your latest alerts, with a quick way to mark them read", "description": "En son bildirimleriniz ve bunları okundu olarak işaretlemenin hızlı bir yolu.",
"maxItems": "Max items", "maxItems": "Maksimum öğe",
"showRead": "Show read alerts", "showRead": "Okuma uyarılarını göster",
"allClear": "Her şey normal", "allClear": "Her şey normal",
"loading": "Yükleniyor..." "loading": "Yükleniyor..."
} }
+118 -118
View File
@@ -1,172 +1,172 @@
{ {
"nav": { "nav": {
"alerts": "Alerts" "alerts": "Сповіщення"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Використовуйте сповіщення",
"description": "Get alerts in the inbox and send them to your own channels." "description": "Отримуйте сповіщення у вхідні повідомлення та надсилайте їх на власні канали."
} }
}, },
"onboarding": { "onboarding": {
"feature": "Alerts", "feature": "Сповіщення",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "Кожне сповіщення в одній поштовій скриньці, що надсилається на Discord, ntfy, електронну пошту або вебхук, якщо хочете."
}, },
"settings": { "settings": {
"group": { "group": {
"general": "General", "general": "Загальне",
"email": "Email" "email": "Електронна пошта"
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Оголошення Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "Показувати новини від команди Termix, такі як повідомлення та релізи безпеки, у папці \"Вхідні\" для всіх."
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Зберігати сповіщення протягом (днів)",
"description": "Older alerts are removed from every inbox." "description": "Старіші сповіщення видаляються з усіх папок \"Вхідні\"."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP-сервер",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Потрібно для каналів електронної пошти. Залиште поле порожнім, щоб вимкнути електронну пошту.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP-порт",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Зазвичай 587 з STARTTLS або 465 з TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Використовуйте TLS з самого початку",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "Увімкніть для порту 465. Вимкніть для порту 587, який самостійно оновлюється до TLS."
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "Ім'я користувача SMTP",
"description": "Leave empty if the server does not need a login." "description": "Залиште поле порожнім, якщо сервер не потребує входу."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Пароль SMTP",
"description": "Stored encrypted." "description": "Зберігається зашифрованим."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "З адреси",
"description": "The sender alerts come from.", "description": "Сповіщення відправника надходять з.",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Термікс <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Спливаючі вікна сповіщень",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "Які нові сповіщення з’являються під час використання Termix. Вони завжди потрапляють у папку «Вхідні».",
"all": "All alerts", "all": "Усі сповіщення",
"warning": "Warnings and critical", "warning": "Попередження та критичні",
"critical": "Critical only", "critical": "Тільки критично",
"off": "None" "off": "Жоден"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Вхідні",
"channels": "Channels", "channels": "Канали",
"rules": "Delivery rules" "rules": "Правила доставки"
}, },
"severity": { "severity": {
"info": "Info", "info": "Інформація",
"success": "Success", "success": "Успіх",
"warning": "Warning", "warning": "УВАГА",
"critical": "Critical" "critical": "Критичний"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Термікс",
"openLink": "Open", "openLink": "ВІДЧИНЕНО",
"view": "View", "view": "Переглянути",
"unread": "Unread", "unread": "Непрочитане",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} канал не вдався",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} каналів не вдалося",
"markRead": "Mark as read", "markRead": "Позначити як прочитане",
"markUnread": "Mark as unread", "markUnread": "Позначити як непрочитане",
"markAllRead": "Mark all as read", "markAllRead": "Позначити всі як прочитані",
"delete": "Delete", "delete": "Видалити",
"clearRead": "Delete read alerts", "clearRead": "Видалити сповіщення про прочитання",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Видалено сповіщення {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Видалено сповіщень {{count}}",
"filterAll": "All", "filterAll": "Усі",
"filterUnread": "Unread", "filterUnread": "Непрочитане",
"anySeverity": "Any severity", "anySeverity": "Будь-якої тяжкості",
"anySource": "Any source", "anySource": "Будь-яке джерело",
"openAll": "Open in a tab", "openAll": "Відкрити у вкладці",
"empty": "No alerts yet.", "empty": "Поки що немає сповіщень.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Ви все в курсі.",
"loadMore": "Load more" "loadMore": "Завантажити більше"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "Канали – це місця, де сповіщення можуть надходити за межі Termix. Правила доставки вибирають, які сповіщення їх використовувати.",
"add": "Add channel", "add": "Додати канал",
"edit": "Edit channel", "edit": "Редагувати канал",
"test": "Send a test", "test": "Надіслати тест",
"testSent": "Test alert sent", "testSent": "Тестове сповіщення надіслано",
"testFailed": "Test failed: {{error}}", "testFailed": "Тест не вдався: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Видалити канал «{{name}}»?",
"deleted": "Channel deleted", "deleted": "Канал видалено",
"empty": "No channels yet.", "empty": "Поки що немає каналів.",
"enabled": "Enabled", "enabled": "Увімкнено",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "Цей канал потрібно знову відкрити та зберегти, перш ніж його можна буде надіслати.",
"name": "Name", "name": "Ім'я",
"nameRequired": "Name is required", "nameRequired": "Ім'я обов'язкове",
"type": "Type", "type": "Тип",
"types": { "types": {
"webhook": "Webhook", "webhook": "Вебхук",
"ntfy": "ntfy", "ntfy": "ntfy",
"discord": "Discord", "discord": "Дискорд",
"email": "Email" "email": "Електронна пошта"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "Для електронної пошти потрібен SMTP-сервер, який адміністратор налаштовує в налаштуваннях сповіщень.",
"webhookUrl": "URL", "webhookUrl": "URL-адреса",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Отримує тіло JSON для кожного сповіщення.",
"method": "Method", "method": "Метод",
"headers": "Headers", "headers": "Заголовки",
"headersHint": "One per line, like Name: value.", "headersHint": "По одному на рядок, наприклад, Ім'я: значення.",
"ntfyServer": "Server URL", "ntfyServer": "URL-адреса сервера",
"ntfyTopic": "Topic", "ntfyTopic": "Тема",
"ntfyToken": "Access token (optional)", "ntfyToken": "Токен доступу (необов'язково)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL-адреса вебхука Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "У налаштуваннях каналу в Discord, у розділі «Інтеграції».",
"discordUsername": "Display name (optional)", "discordUsername": "Відображуване ім'я (необов'язково)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL-адреса аватара (необов'язково)",
"emailTo": "Send to", "emailTo": "Надіслати",
"emailHint": "Separate more than one address with commas.", "emailHint": "Розділяйте більше однієї адреси комами.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Дозволити адресу приватної мережі",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "Працює лише для хостів, які адміністратор дозволяє в списку приватних кінцевих точок."
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "Правило доставки надсилає відповідні сповіщення до ваших каналів. Сповіщення також завжди залишаються у вхідних повідомленнях.",
"add": "Add rule", "add": "Додати правило",
"edit": "Edit rule", "edit": "Редагувати правило",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "Поки що немає правил, тому сповіщення відображаються лише у вхідних повідомленнях.",
"needChannel": "Add a channel first.", "needChannel": "Спочатку додайте канал.",
"enabled": "Enabled", "enabled": "Увімкнено",
"name": "Name", "name": "Ім'я",
"nameRequired": "Name is required", "nameRequired": "Ім'я обов'язкове",
"match": "Alerts to send", "match": "Сповіщення для надсилання",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "* для всього, автоматизації.* для всього, починаючи від автоматизації, або одного точного виду.",
"minSeverity": "At least", "minSeverity": "Принаймні",
"channels": "Send to", "channels": "Надіслати",
"channelRequired": "Pick at least one channel", "channelRequired": "Виберіть хоча б один канал",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Видалити правило \"{{name}}\"?",
"everything": "Everything", "everything": "Все",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} або вище, до {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Cancel", "cancel": "Скасувати",
"save": "Save", "save": "Зберегти",
"saving": "Saving...", "saving": "Збереження...",
"delete": "Delete" "delete": "Видалити"
}, },
"widget": { "widget": {
"name": "Alert Feed", "name": "Стрічка сповіщень",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Ваші останні сповіщення з можливістю швидко позначити їх як прочитані",
"maxItems": "Max items", "maxItems": "Макс. кількість елементів",
"showRead": "Show read alerts", "showRead": "Показувати сповіщення про прочитання",
"allClear": "All clear", "allClear": "Все чисто",
"loading": "Loading..." "loading": "Завантаження..."
} }
} }
+83 -83
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "Sử dụng cảnh báo",
"description": "Get alerts in the inbox and send them to your own channels." "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": { "onboarding": {
"feature": "Cảnh báo", "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": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Thông báo của Termix",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "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": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "Giữ cảnh báo trong (ngày)",
"description": "Older alerts are removed from every inbox." "description": "Các thông báo cũ hơn sẽ bị xóa khỏi mọi hộp thư đến."
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "Máy chủ SMTP",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "Cần thiết cho các kênh email. Để trống nếu muốn tắt email.",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "Cổng SMTP",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "Thông thường là cổng 587 với STARTTLS hoặc 465 với TLS."
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "Hãy sử dụng TLS ngay từ đầu.",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "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": { "smtpUser": {
"label": "SMTP username", "label": "Tên người dùng SMTP",
"description": "Leave empty if the server does not need a login." "description": "Để trống nếu máy chủ không cần đăng nhập."
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "Mật khẩu SMTP",
"description": "Stored encrypted." "description": "Được lưu trữ dưới dạng mã hóa."
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "Từ địa chỉ",
"description": "The sender alerts come from.", "description": "Thông báo đến từ nguồn nào?",
"placeholder": "Termix <alerts@example.com>" "placeholder": "Termix <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "Cửa sổ bật lên cảnh báo",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "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": "All alerts", "all": "Tất cả cảnh báo",
"warning": "Warnings and critical", "warning": "Cảnh báo và thông tin quan trọng",
"critical": "Critical only", "critical": "Chỉ quan trọng",
"off": "Không" "off": "Không"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "Hộp thư đến",
"channels": "Kênh", "channels": "Kênh",
"rules": "Delivery rules" "rules": "Quy tắc giao hàng"
}, },
"severity": { "severity": {
"info": "Thông tin", "info": "Thông tin",
"success": "Thành công", "success": "Thành công",
"warning": "Cảnh báo", "warning": "Cảnh báo",
"critical": "Critical" "critical": "Phê bình"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "Mở", "openLink": "Mở",
"view": "Xem", "view": "Xem",
"unread": "Unread", "unread": "Chưa đọc",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} kênh bị lỗi",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} kênh bị lỗi",
"markRead": "Mark as read", "markRead": "Đánh dấu là đã đọc",
"markUnread": "Mark as unread", "markUnread": "Đánh dấu là chưa đọc",
"markAllRead": "Mark all as read", "markAllRead": "Đánh dấu tất cả là đã đọc",
"delete": "Xóa", "delete": "Xóa",
"clearRead": "Delete read alerts", "clearRead": "Xóa thông báo đã đọc",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "Đã xóa cảnh báo {{count}}",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "Đã xóa {{count}} cảnh báo",
"filterAll": "Tất cả", "filterAll": "Tất cả",
"filterUnread": "Unread", "filterUnread": "Chưa đọc",
"anySeverity": "Any severity", "anySeverity": "Bất kỳ mức độ nghiêm trọng nào",
"anySource": "Any source", "anySource": "Bất kỳ nguồn nào",
"openAll": "Open in a tab", "openAll": "Mở trong một tab",
"empty": "No alerts yet.", "empty": "Chưa có thông báo nào.",
"emptyUnread": "You are all caught up.", "emptyUnread": "Bạn đã nắm bắt được hết mọi thứ rồi.",
"loadMore": "Load more" "loadMore": "Tải thêm"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "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": "Add channel", "add": "Thêm kênh",
"edit": "Edit channel", "edit": "Chỉnh sửa kênh",
"test": "Send a test", "test": "Gửi một bài kiểm tra",
"testSent": "Test alert sent", "testSent": "Đã gửi cảnh báo thử nghiệm",
"testFailed": "Test failed: {{error}}", "testFailed": "Kiểm tra thất bại: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "Xóa kênh \"{{name}}\"?",
"deleted": "Channel deleted", "deleted": "Kênh đã bị xóa",
"empty": "No channels yet.", "empty": "Chưa có kênh nào.",
"enabled": "Đã bật", "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", "name": "Tên",
"nameRequired": "Tên là bắt buộc", "nameRequired": "Tên là bắt buộc",
"type": "Loại", "type": "Loại",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "Email" "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", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "Lấy nội dung JSON cho mỗi thông báo.",
"method": "Method", "method": "Phương pháp",
"headers": "Headers", "headers": "Tiêu đề",
"headersHint": "One per line, like Name: value.", "headersHint": "Mỗi mục một dòng, ví dụ: Tên: giá trị.",
"ntfyServer": "URL máy chủ", "ntfyServer": "URL máy chủ",
"ntfyTopic": "Chủ đề", "ntfyTopic": "Chủ đề",
"ntfyToken": "Access token (optional)", "ntfyToken": "Mã truy cập (tùy chọn)",
"discordUrl": "Discord webhook URL", "discordUrl": "URL webhook Discord",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "Bạn có thể chọn \"Integrations\" trong phần cài đặt kênh trên Discord.",
"discordUsername": "Display name (optional)", "discordUsername": "Tên hiển thị (tùy chọn)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "URL ảnh đại diện (tùy chọn)",
"emailTo": "Send to", "emailTo": "Gửi đến",
"emailHint": "Separate more than one address with commas.", "emailHint": "Hãy sử dụng dấu phẩy để phân tách nhiều địa chỉ.",
"privateNetwork": "Allow a private network address", "privateNetwork": "Cho phép địa chỉ mạng riêng",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "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": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "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": "Add rule", "add": "Thêm quy tắc",
"edit": "Edit rule", "edit": "Chỉnh sửa quy tắc",
"empty": "No rules yet, so alerts only show up in the inbox.", "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": "Add a channel first.", "needChannel": "Trước tiên hãy thêm kênh.",
"enabled": "Đã bật", "enabled": "Đã bật",
"name": "Tên", "name": "Tên",
"nameRequired": "Tên là bắt buộc", "nameRequired": "Tên là bắt buộc",
"match": "Alerts to send", "match": "Thông báo cần gửi",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "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": "At least", "minSeverity": "Ít nhất",
"channels": "Send to", "channels": "Gửi đến",
"channelRequired": "Pick at least one channel", "channelRequired": "Chọn ít nhất một kênh",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "Xóa quy tắc \"{{name}}\"?",
"everything": "Everything", "everything": "Mọi thứ",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}, {{severity}} hoặc cao hơn, đến {{channels}}"
}, },
"actions": { "actions": {
"cancel": "Hủy", "cancel": "Hủy",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "Luồng cảnh báo", "name": "Luồng cảnh báo",
"description": "Your latest alerts, with a quick way to mark them read", "description": "Thông báo mới nhất của bạn, kèm theo cách nhanh để đánh dấu đã đọc.",
"maxItems": "Max items", "maxItems": "Số lượng vật phẩm tối đa",
"showRead": "Show read alerts", "showRead": "Hiển thị thông báo đã đọc",
"allClear": "Tất cả ổn", "allClear": "Tất cả ổn",
"loading": "Đang tải..." "loading": "Đang tải..."
} }
+83 -83
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "使用提醒",
"description": "Get alerts in the inbox and send them to your own channels." "description": "在收件箱中接收提醒,并将其发送到您自己的频道。"
} }
}, },
"onboarding": { "onboarding": {
"feature": "告警", "feature": "告警",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "所有提醒都集中在一个收件箱中,您可以选择将其发送到 Discord、ntfy、电子邮件或 webhook。"
}, },
"settings": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix公告",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "将 Termix 团队的新闻,例如安全通知和版本发布,发送到每个人的收件箱。"
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "保持警报(天)",
"description": "Older alerts are removed from every inbox." "description": "所有收件箱中都会删除较旧的提醒邮件。"
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP服务器",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "需要用于电子邮件渠道。留空则关闭电子邮件功能。",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP端口",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "通常使用 STARTTLS 的 587 端口或使用 TLS 的 465 端口。"
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "从一开始就使用TLS",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "启用 465 端口。保持 587 端口关闭,该端口会自动升级到 TLS。"
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP 用户名",
"description": "Leave empty if the server does not need a login." "description": "如果服务器不需要登录,请留空。"
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP密码",
"description": "Stored encrypted." "description": "已加密存储。"
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "来自地址",
"description": "The sender alerts come from.", "description": "发件人警报来自。",
"placeholder": "Termix <alerts@example.com>" "placeholder": "终端 <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "弹出式警报",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "使用Termix时会弹出哪些新提醒?它们都会发送到您的收件箱。",
"all": "All alerts", "all": "所有警报",
"warning": "Warnings and critical", "warning": "警告和关键信息",
"critical": "Critical only", "critical": "仅限关键",
"off": "全不选" "off": "全不选"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "收件箱",
"channels": "通道", "channels": "通道",
"rules": "Delivery rules" "rules": "配送规则"
}, },
"severity": { "severity": {
"info": "信息", "info": "信息",
"success": "成功", "success": "成功",
"warning": "警告", "warning": "警告",
"critical": "Critical" "critical": "批判的"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "打开", "openLink": "打开",
"view": "查看", "view": "查看",
"unread": "Unread", "unread": "未读",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} 通道失败",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} 通道失败",
"markRead": "Mark as read", "markRead": "标记为已读",
"markUnread": "Mark as unread", "markUnread": "标记为未读",
"markAllRead": "Mark all as read", "markAllRead": "全部标记为已读",
"delete": "删除", "delete": "删除",
"clearRead": "Delete read alerts", "clearRead": "删除已读提醒",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "已删除 {{count}} 警报",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "已删除 {{count}} 警报",
"filterAll": "全部", "filterAll": "全部",
"filterUnread": "Unread", "filterUnread": "未读",
"anySeverity": "Any severity", "anySeverity": "任何严重程度",
"anySource": "Any source", "anySource": "任何来源",
"openAll": "Open in a tab", "openAll": "在标签页中打开",
"empty": "No alerts yet.", "empty": "目前尚未收到任何警报。",
"emptyUnread": "You are all caught up.", "emptyUnread": "你们都跟上了。",
"loadMore": "Load more" "loadMore": "加载更多"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "通道是警报可以发送到 Termix 外部的途径。发送规则决定哪些警报使用哪个通道。",
"add": "Add channel", "add": "添加频道",
"edit": "Edit channel", "edit": "编辑频道",
"test": "Send a test", "test": "发送测试",
"testSent": "Test alert sent", "testSent": "已发送测试警报",
"testFailed": "Test failed: {{error}}", "testFailed": "测试失败: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "删除频道“{{name}}”?",
"deleted": "Channel deleted", "deleted": "频道已删除",
"empty": "No channels yet.", "empty": "暂无频道。",
"enabled": "已启用", "enabled": "已启用",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "该通道需要重新打开并保存才能发送消息。",
"name": "名称", "name": "名称",
"nameRequired": "名称为必填项", "nameRequired": "名称为必填项",
"type": "类型", "type": "类型",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "邮箱" "email": "邮箱"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "电子邮件需要 SMTP 服务器,管理员可以在“警报”设置中进行设置。",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "获取每个警报的 JSON 正文。",
"method": "Method", "method": "方法",
"headers": "Headers", "headers": "标题",
"headersHint": "One per line, like Name: value.", "headersHint": "每行一个,格式为:名称:值。",
"ntfyServer": "服务器 URL", "ntfyServer": "服务器 URL",
"ntfyTopic": "主题", "ntfyTopic": "主题",
"ntfyToken": "Access token (optional)", "ntfyToken": "访问令牌(可选)",
"discordUrl": "Discord webhook URL", "discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "在 Discord 的频道设置中,位于“集成”下。",
"discordUsername": "Display name (optional)", "discordUsername": "显示名称(可选)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "头像网址(可选)",
"emailTo": "Send to", "emailTo": "发送至",
"emailHint": "Separate more than one address with commas.", "emailHint": "多个地址之间用逗号分隔。",
"privateNetwork": "Allow a private network address", "privateNetwork": "允许使用专用网络地址",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "仅适用于管理员允许添加到私有端点列表中的主机。"
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "发送规则会将匹配的提醒发送到您的渠道。提醒也会始终保留在收件箱中。",
"add": "Add rule", "add": "添加规则",
"edit": "Edit rule", "edit": "编辑规则",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "目前还没有规则,所以提醒只会显示在收件箱中。",
"needChannel": "Add a channel first.", "needChannel": "请先添加频道。",
"enabled": "已启用", "enabled": "已启用",
"name": "名称", "name": "名称",
"nameRequired": "名称为必填项", "nameRequired": "名称为必填项",
"match": "Alerts to send", "match": "发送提醒",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "*适用于所有自动化操作。*适用于所有自动化操作,或某一特定类型。",
"minSeverity": "At least", "minSeverity": "至少",
"channels": "Send to", "channels": "发送至",
"channelRequired": "Pick at least one channel", "channelRequired": "至少选择一个频道",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "删除规则“{{name}}”?",
"everything": "Everything", "everything": "一切",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}、 {{severity}} 或更高,至 {{channels}}"
}, },
"actions": { "actions": {
"cancel": "取消", "cancel": "取消",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "告警信息流", "name": "告警信息流",
"description": "Your latest alerts, with a quick way to mark them read", "description": "您最新的提醒,以及快速标记为已读的功能。",
"maxItems": "Max items", "maxItems": "最大物品数",
"showRead": "Show read alerts", "showRead": "显示已读提醒",
"allClear": "一切正常", "allClear": "一切正常",
"loading": "加载中..." "loading": "加载中..."
} }
+83 -83
View File
@@ -4,13 +4,13 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use alerts", "title": "使用提醒",
"description": "Get alerts in the inbox and send them to your own channels." "description": "在收件匣中接收提醒,並將其發送到您自己的頻道。"
} }
}, },
"onboarding": { "onboarding": {
"feature": "警示", "feature": "警示",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want." "featureDesc": "所有提醒都集中在一個收件匣中,您可以選擇將其發送到 Discord、ntfy、電子郵件或 webhook。"
}, },
"settings": { "settings": {
"group": { "group": {
@@ -19,97 +19,97 @@
}, },
"admin": { "admin": {
"announcements": { "announcements": {
"label": "Termix announcements", "label": "Termix公告",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox." "description": "將 Termix 團隊的新聞,例如安全通知和版本發布,發送到每個人的收件匣。"
}, },
"retentionDays": { "retentionDays": {
"label": "Keep alerts for (days)", "label": "保持警報(天)",
"description": "Older alerts are removed from every inbox." "description": "所有收件匣中都會刪除較舊的提醒郵件。"
}, },
"smtpHost": { "smtpHost": {
"label": "SMTP server", "label": "SMTP伺服器",
"description": "Needed for email channels. Leave empty to turn email off.", "description": "需要用於電子郵件管道。留空則關閉電子郵件功能。",
"placeholder": "smtp.example.com" "placeholder": "smtp.example.com"
}, },
"smtpPort": { "smtpPort": {
"label": "SMTP port", "label": "SMTP連接埠",
"description": "Usually 587 with STARTTLS or 465 with TLS." "description": "通常使用 STARTTLS 的 587 連接埠或使用 TLS 的 465 連接埠。"
}, },
"smtpSecure": { "smtpSecure": {
"label": "Use TLS from the start", "label": "從一開始就使用TLS",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own." "description": "啟用 465 連接埠。保持 587 連接埠關閉,該連接埠會自動升級至 TLS。"
}, },
"smtpUser": { "smtpUser": {
"label": "SMTP username", "label": "SMTP 使用者名稱",
"description": "Leave empty if the server does not need a login." "description": "如果伺服器不需要登錄,請留空。"
}, },
"smtpPassword": { "smtpPassword": {
"label": "SMTP password", "label": "SMTP密碼",
"description": "Stored encrypted." "description": "已加密儲存。"
}, },
"smtpFrom": { "smtpFrom": {
"label": "From address", "label": "來自地址",
"description": "The sender alerts come from.", "description": "寄件者警報來自。",
"placeholder": "Termix <alerts@example.com>" "placeholder": "終端 <alerts@example.com>"
} }
}, },
"user": { "user": {
"popups": { "popups": {
"label": "Alert popups", "label": "彈出式警報",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.", "description": "使用Termix時會彈出哪些新提醒?它們都會發送到您的收件匣。",
"all": "All alerts", "all": "所有警報",
"warning": "Warnings and critical", "warning": "警告和關鍵訊息",
"critical": "Critical only", "critical": "僅限關鍵",
"off": "取消全選" "off": "取消全選"
} }
} }
}, },
"sections": { "sections": {
"inbox": "Inbox", "inbox": "收件匣",
"channels": "通道", "channels": "通道",
"rules": "Delivery rules" "rules": "配送規則"
}, },
"severity": { "severity": {
"info": "資訊", "info": "資訊",
"success": "成功", "success": "成功",
"warning": "警告", "warning": "警告",
"critical": "Critical" "critical": "批判的"
}, },
"inbox": { "inbox": {
"sourceTermix": "Termix", "sourceTermix": "Termix",
"openLink": "開啟", "openLink": "開啟",
"view": "檢視", "view": "檢視",
"unread": "Unread", "unread": "未讀",
"deliveryFailed_one": "{{count}} channel failed", "deliveryFailed_one": "{{count}} 頻道失敗",
"deliveryFailed_other": "{{count}} channels failed", "deliveryFailed_other": "{{count}} 頻道失敗",
"markRead": "Mark as read", "markRead": "標記為已讀",
"markUnread": "Mark as unread", "markUnread": "標記為未讀",
"markAllRead": "Mark all as read", "markAllRead": "全部標記為已讀",
"delete": "刪除", "delete": "刪除",
"clearRead": "Delete read alerts", "clearRead": "刪除已讀提醒",
"cleared_one": "Deleted {{count}} alert", "cleared_one": "已刪除 {{count}} 警報",
"cleared_other": "Deleted {{count}} alerts", "cleared_other": "已刪除 {{count}} 警報",
"filterAll": "全選", "filterAll": "全選",
"filterUnread": "Unread", "filterUnread": "未讀",
"anySeverity": "Any severity", "anySeverity": "任何嚴重程度",
"anySource": "Any source", "anySource": "任何來源",
"openAll": "Open in a tab", "openAll": "在標籤頁中開啟",
"empty": "No alerts yet.", "empty": "目前尚未收到任何警報。",
"emptyUnread": "You are all caught up.", "emptyUnread": "你們都跟上了。",
"loadMore": "Load more" "loadMore": "加載更多"
}, },
"channels": { "channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.", "intro": "通道是警報可以發送到 Termix 外部的途徑。發送規則決定哪些警報使用哪個通道。",
"add": "Add channel", "add": "新增頻道",
"edit": "Edit channel", "edit": "編輯頻道",
"test": "Send a test", "test": "發送測試",
"testSent": "Test alert sent", "testSent": "已發送測試警報",
"testFailed": "Test failed: {{error}}", "testFailed": "測試失敗: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?", "deleteConfirm": "刪除頻道「{{name}}」?",
"deleted": "Channel deleted", "deleted": "頻道已刪除",
"empty": "No channels yet.", "empty": "暫無頻道。",
"enabled": "已啟用", "enabled": "已啟用",
"needsSave": "This channel needs to be opened and saved again before it can send.", "needsSave": "該通道需要重新打開並保存才能發送訊息。",
"name": "名稱", "name": "名稱",
"nameRequired": "名稱為必填", "nameRequired": "名稱為必填",
"type": "類型", "type": "類型",
@@ -119,41 +119,41 @@
"discord": "Discord", "discord": "Discord",
"email": "電子郵件" "email": "電子郵件"
}, },
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.", "emailUnavailable": "電子郵件需要 SMTP 伺服器,管理員可以在「警報」設定中進行設定。",
"webhookUrl": "URL", "webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.", "webhookHint": "取得每個警報的 JSON 正文。",
"method": "Method", "method": "方法",
"headers": "Headers", "headers": "標題",
"headersHint": "One per line, like Name: value.", "headersHint": "每行一個,格式為:名稱:值。",
"ntfyServer": "伺服器 URL", "ntfyServer": "伺服器 URL",
"ntfyTopic": "主題", "ntfyTopic": "主題",
"ntfyToken": "Access token (optional)", "ntfyToken": "訪問令牌(可選)",
"discordUrl": "Discord webhook URL", "discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.", "discordHint": "在 Discord 的頻道設定中,位於「整合」下方。",
"discordUsername": "Display name (optional)", "discordUsername": "顯示名稱(可選)",
"discordAvatar": "Avatar URL (optional)", "discordAvatar": "頭像網址(可選)",
"emailTo": "Send to", "emailTo": "發送至",
"emailHint": "Separate more than one address with commas.", "emailHint": "多個地址之間以逗號分隔。",
"privateNetwork": "Allow a private network address", "privateNetwork": "允許使用專用網路位址",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list." "privateNetworkHint": "僅適用於管理員允許新增至私有端點清單中的主機。"
}, },
"rules": { "rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.", "intro": "發送規則會將符合的提醒傳送到您的頻道。提醒也會始終保留在收件匣中。",
"add": "Add rule", "add": "新增規則",
"edit": "Edit rule", "edit": "編輯規則",
"empty": "No rules yet, so alerts only show up in the inbox.", "empty": "目前還沒有規則,所以提醒只會顯示在收件匣中。",
"needChannel": "Add a channel first.", "needChannel": "請先新增頻道。",
"enabled": "已啟用", "enabled": "已啟用",
"name": "名稱", "name": "名稱",
"nameRequired": "名稱為必填", "nameRequired": "名稱為必填",
"match": "Alerts to send", "match": "發送提醒",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.", "matchHint": "*適用於所有自動化操作。 *適用於所有自動化操作,或某一特定類型。",
"minSeverity": "At least", "minSeverity": "至少",
"channels": "Send to", "channels": "發送至",
"channelRequired": "Pick at least one channel", "channelRequired": "至少選擇一個頻道",
"deleteConfirm": "Delete the rule \"{{name}}\"?", "deleteConfirm": "刪除規則“{{name}}”?",
"everything": "Everything", "everything": "一切",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}" "summary": "{{match}}、 {{severity}} 或更高,至 {{channels}}"
}, },
"actions": { "actions": {
"cancel": "取消", "cancel": "取消",
@@ -163,9 +163,9 @@
}, },
"widget": { "widget": {
"name": "警報動態", "name": "警報動態",
"description": "Your latest alerts, with a quick way to mark them read", "description": "您最新的提醒,以及快速標記為已讀的功能。",
"maxItems": "Max items", "maxItems": "最大物品數",
"showRead": "Show read alerts", "showRead": "顯示已讀提醒",
"allClear": "一切正常", "allClear": "一切正常",
"loading": "載入中..." "loading": "載入中..."
} }
+167 -167
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "অটোমেশনগুলি দেখুন",
"description": "See the automations and their history." "description": "স্বয়ংক্রিয় ব্যবস্থাগুলো এবং সেগুলোর ইতিহাস দেখুন।"
}, },
"create": { "create": {
"title": "Create automations", "title": "অটোমেশন তৈরি করুন",
"description": "Add new automations." "description": "নতুন অটোমেশন যোগ করুন।"
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "অটোমেশন সম্পাদনা করুন",
"description": "Change existing automations." "description": "বিদ্যমান অটোমেশনগুলো পরিবর্তন করুন।"
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "অটোমেশনগুলি মুছুন",
"description": "Remove automations." "description": "অটোমেশনগুলো সরিয়ে ফেলুন।"
}, },
"run": { "run": {
"title": "Run automations", "title": "অটোমেশন চালান",
"description": "Trigger an automation by hand." "description": "ম্যানুয়ালি অটোমেশনটি চালু করুন।"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "অটোমেশন",
"tabAutomations": "Automations", "tabAutomations": "অটোমেশন",
"tabRuns": "Runs", "tabRuns": "রান",
"tabChannels": "Channels", "tabChannels": "চ্যানেল",
"createAutomation": "New Automation", "createAutomation": "নতুন অটোমেশন",
"backToAutomations": "Back to Automations", "backToAutomations": "অটোমেশনে ফিরে যান",
"createTitle": "New Automation", "createTitle": "নতুন অটোমেশন",
"editTitle": "Edit Automation", "editTitle": "সম্পাদনা অটোমেশন",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "এখনো কোনো অটোমেশন নেই। কোনো মেট্রিক, শিডিউল বা ইভেন্টের প্রতিক্রিয়ায় একটি তৈরি করুন।",
"emptyRuns": "No runs yet.", "emptyRuns": "এখনো কোনো রান হয়নি।",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "অ্যালার্টে চ্যানেলগুলি সেট আপ করা আছে।",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "অ্যালার্টটি সবসময় আপনার ইনবক্সে আসে। এটি অন্য কোথাও পাঠানোর জন্য অ্যালার্টে চ্যানেল যোগ করুন।",
"nameLabel": "Name", "nameLabel": "নাম",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "যেমন, /data পূর্ণ হয়ে গেলে তা পরিষ্কার করুন।",
"nameRequired": "Name is required", "nameRequired": "নাম আবশ্যক",
"descriptionLabel": "Description", "descriptionLabel": "বর্ণনা",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "ঐচ্ছিক বিবরণ",
"enabledLabel": "Enabled", "enabledLabel": "সক্ষম করা হয়েছে",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "যদি এটি ইতিমধ্যে চালু থাকে",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "শেষ রান শেষ হওয়ার আগেই এটি আবার চালু হলে কী করতে হবে।",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "নতুন রানটি এড়িয়ে যান।",
"queue": "Wait and run after", "queue": "অপেক্ষা করো এবং পিছনে দৌড়াও",
"allow": "Run both at once" "allow": "একসাথে দুটোই চালান"
}, },
"save": "Save", "save": "সংরক্ষণ করুন",
"created": "Automation created", "created": "অটোমেশন তৈরি করা হয়েছে",
"updated": "Automation saved", "updated": "অটোমেশন সংরক্ষিত",
"deleted": "Automation deleted", "deleted": "অটোমেশন মুছে ফেলা হয়েছে",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "এই অটোমেশনটি ডিলিট করলে, এর রান হিস্ট্রিও ডিলিট হয়ে যাবে।",
"runNow": "Run now", "runNow": "এখনই দৌড়ান",
"testRun": "Test run", "testRun": "পরীক্ষামূলক চালনা",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "প্রতিটি ধাপ চলে কিন্তু টার্মিক্সের বাইরের কোনো কিছু স্পর্শ করে না।",
"runStarted": "Run started", "runStarted": "দৌড় শুরু হলো",
"runFinished": "Run finished: {{status}}", "runFinished": "দৌড় শেষ: {{status}}",
"trigger": "Trigger", "trigger": "ট্রিগার",
"steps": "Steps", "steps": "পদক্ষেপ",
"addStep": "Add step", "addStep": "ধাপ যোগ করুন",
"removeStep": "Remove step", "removeStep": "ধাপটি সরান",
"moveUp": "Move up", "moveUp": "উপরে উঠুন",
"moveDown": "Move down", "moveDown": "নিচে নামুন",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "এখনো কোনো ধাপ যোগ করা হয়নি। কী হওয়া উচিত তা জানাতে একটি ধাপ যোগ করুন।",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "ওয়েবহুক ইউআরএল",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "এটি একবারই দেখানো হবে। এখনই সংরক্ষণ করুন, পরে আর পুনরুদ্ধার করা যাবে না।",
"copy": "Copy", "copy": "অনুলিপি",
"copied": "Copied", "copied": "অনুলিপি করা হয়েছে",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "নির্মাতা",
"viewGraph": "Graph", "viewGraph": "গ্রাফ",
"lastRun": "Last run", "lastRun": "শেষ দৌড়",
"never": "Never", "never": "কখনো না",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "আউটপুট",
"stepError": "Error", "stepError": "ত্রুটি",
"dryRunBadge": "Test run", "dryRunBadge": "পরীক্ষামূলক চালনা",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "ট্রিগারিং হোস্ট",
"host": "Specific host", "host": "নির্দিষ্ট হোস্ট",
"fleet": "Fleet", "fleet": "ফ্লিট",
"all": "All hosts" "all": "সকল হোস্ট"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "মেট্রিক থ্রেশহোল্ড",
"host_status": "Host goes up or down", "host_status": "হোস্ট উপরে বা নিচে যায়",
"health_check": "Health check changes", "health_check": "স্বাস্থ্য পরীক্ষার পরিবর্তন",
"schedule": "On a schedule", "schedule": "একটি সময়সূচী অনুযায়ী",
"docker_event": "Container event", "docker_event": "কন্টেইনার ইভেন্ট",
"internal_event": "Termix event", "internal_event": "টারমিক্স ইভেন্ট",
"webhook": "Incoming webhook" "webhook": "ইনকামিং ওয়েবহুক"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "একটি সতর্কতা পাঠান",
"http": "Call a URL", "http": "একটি URL কল করুন",
"run_snippet": "Run a snippet", "run_snippet": "একটি স্নিপেট চালান",
"run_command": "Run a command", "run_command": "একটি কমান্ড চালান",
"docker": "Control a container", "docker": "একটি কন্টেইনার নিয়ন্ত্রণ করুন",
"tunnel": "Control a tunnel", "tunnel": "একটি টানেল নিয়ন্ত্রণ করুন",
"wol": "Wake a host", "wol": "একজন হোস্টকে জাগান",
"wait": "Wait", "wait": "অপেক্ষা করুন",
"set_var": "Set a variable", "set_var": "একটি ভেরিয়েবল সেট করুন",
"if": "If / otherwise", "if": "যদি / অন্যথায়",
"run_automation": "Run another automation", "run_automation": "আরেকটি অটোমেশন চালান",
"stop": "Stop" "stop": "থামুন"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "দৌড়ানো",
"success": "Success", "success": "সাফল্য",
"failed": "Failed", "failed": "ব্যর্থ",
"timeout": "Timed out", "timeout": "সময়সীমা শেষ",
"skipped": "Skipped", "skipped": "বাদ দেওয়া হয়েছে",
"cancelled": "Cancelled" "cancelled": "বাতিল করা হয়েছে"
}, },
"fields": { "fields": {
"host": "Host", "host": "হোস্ট",
"metric": "Metric", "metric": "মেট্রিক",
"mount": "Mount point", "mount": "মাউন্ট পয়েন্ট",
"operator": "Is", "operator": "হয়",
"value": "Value", "value": "মূল্য",
"forSeconds": "Sustained for (seconds)", "forSeconds": "(সেকেন্ড) ধরে স্থায়ী",
"cooldown": "Cooldown (minutes)", "cooldown": "কুলডাউন (মিনিট)",
"cron": "Cron expression", "cron": "ক্রোন এক্সপ্রেশন",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "প্রতি (সেকেন্ডে)",
"timezone": "Time zone", "timezone": "সময় অঞ্চল",
"timezoneServer": "Server time", "timezoneServer": "সার্ভারের সময়",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "এই জোনে ক্রন টাইম পড়া হয়। এটি ইন্টারভাল শিডিউলের ক্ষেত্রে প্রযোজ্য নয়।",
"container": "Container", "container": "কন্টেইনার",
"command": "Command", "command": "আদেশ",
"url": "URL", "url": "ইউআরএল",
"method": "Method", "method": "পদ্ধতি",
"body": "Body", "body": "শরীর",
"channels": "Also send to", "channels": "এছাড়াও পাঠান",
"title": "Title", "title": "শিরোনাম",
"message": "Message", "message": "বার্তা",
"snippet": "Snippet", "snippet": "স্নিপেট",
"seconds": "Seconds", "seconds": "সেকেন্ড",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "যাচাই করার মান",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "তুলনা করুন",
"variableName": "Variable name", "variableName": "ভেরিয়েবলের নাম",
"variableValue": "Value", "variableValue": "মূল্য",
"elevated": "Run with sudo", "elevated": "sudo দিয়ে চালান",
"onError": "If this fails", "onError": "যদি এটি ব্যর্থ হয়",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "স্থানীয় নেটওয়ার্ক ঠিকানাগুলির অনুমতি দিন",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "আপনার ল্যানে সেলফ-হোস্টেড সার্ভিসের জন্য প্রয়োজন। অভ্যন্তরীণ অ্যাড্রেসে অনুরোধ পাঠানো প্রতিরোধ করতে এটি ডিফল্টরূপে বন্ধ থাকে।"
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "দৌড় থামাও",
"continue": "Carry on" "continue": "চালিয়ে যান"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "প্রয়োজন {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "প্রয়োজনীয় ফিচারটি পুনরায় উপলব্ধ না হওয়া পর্যন্ত এই অটোমেশনটি বাদ দেওয়া হয়।",
"offBadge": "Off", "offBadge": "বন্ধ",
"docsLink": "View docs", "docsLink": "নথি দেখুন",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}সেকেন্ড আগে",
"minutes": "{{count}}m ago", "minutes": "{{count}}মিনিট আগে",
"hours": "{{count}}h ago", "hours": "{{count}}ঘণ্টা আগে",
"days": "{{count}}d ago" "days": "{{count}}দিন আগে"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "অটোমেশন"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "অটোমেশন",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "কোনো ঘটনা ঘটলে স্বয়ংক্রিয়ভাবে ধাপগুলো সম্পন্ন করুন এবং বিজ্ঞপ্তি পান।"
}, },
"maintenance": { "maintenance": {
"title": "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.", "description": "কাজ চলাকালীন হোস্ট স্ট্যাটাস, হেলথ, মেট্রিক, কন্টেইনার এবং টানেল-ডিসকানেকশন অটোমেশনগুলো থামিয়ে রাখুন। মনিটরিং, ম্যানুয়াল রান এবং নির্ধারিত অটোমেশনগুলো চলতে থাকবে।",
"denied": "You do not have permission to view maintenance.", "denied": "রক্ষণাবেক্ষণ দেখার অনুমতি আপনার নেই।",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "এই হোস্টটি আপনার সাথে শেয়ার করা হয়েছে। শুধুমাত্র এর মালিকই রক্ষণাবেক্ষণ পরিবর্তন করতে পারেন।",
"failed": "Maintenance could not be updated.", "failed": "রক্ষণাবেক্ষণ হালনাগাদ করা যায়নি।",
"active": "Maintenance active", "active": "রক্ষণাবেক্ষণ সক্রিয়",
"estimated": "Estimated completion", "estimated": "আনুমানিক সমাপ্তি",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "প্রাক্কলনটি রক্ষণাবেক্ষণের কাজ শেষ করে না। কাজ সম্পন্ন হলে স্পষ্টভাবে এটি শেষ করুন।",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "এই হোস্টের জন্য রক্ষণাবেক্ষণ শেষ করে ইভেন্ট-ট্রিগারড অটোমেশন পুনরায় চালু করবেন?",
"confirmEnd": "Confirm end", "confirmEnd": "শেষ নিশ্চিত করুন",
"cancel": "Cancel", "cancel": "বাতিল করুন",
"end": "End maintenance", "end": "শেষ রক্ষণাবেক্ষণ",
"action": "Action", "action": "পদক্ষেপ",
"startNow": "Start now", "startNow": "এখনই শুরু করুন",
"schedule": "Schedule for later", "schedule": "পরবর্তী সময়ের জন্য সময়সূচী",
"reason": "Reason", "reason": "কারণ",
"startUtc": "First start (UTC)", "startUtc": "প্রথম শুরু (ইউটিসি)",
"repeat": "Repeat", "repeat": "পুনরাবৃত্তি",
"once": "Once", "once": "একবার",
"weekly": "Weekly", "weekly": "সাপ্তাহিক",
"monthly": "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.", "utcHelp": "সারা বছর ধরে সময়সূচী UTC ব্যবহার করে। মাসিক সময়সূচীতে নির্বাচিত দিনটি ছাড়া মাসগুলো বাদ দেওয়া হয়। পরিকল্পিত কাজের সময়সীমা একে অপরের উপর পড়তে পারে না; নির্ধারিত সময়ের অতিরিক্ত রক্ষণাবেক্ষণ পরবর্তী সময়সীমাগুলোতেও চলতে থাকে।",
"duration": "Estimated duration (minutes)", "duration": "আনুমানিক সময়কাল (মিনিট)",
"grace": "Grace period (minutes)", "grace": "অতিরিক্ত সময় (মিনিট)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "আনুমানিক হিসাব এবং অতিরিক্ত সময়সীমার পরেও যদি অফলাইন থাকেন, তবে একবার জানান।",
"addSchedule": "Add schedule", "addSchedule": "সময়সূচী যোগ করুন",
"schedules": "Schedules", "schedules": "সময়সূচী",
"noSchedules": "No maintenance schedules.", "noSchedules": "কোনো রক্ষণাবেক্ষণের সময়সূচী নেই।",
"completed": "Already started", "completed": "ইতিমধ্যে শুরু হয়ে গেছে",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} মিনিট",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} মিনিট",
"remove": "Remove schedule", "remove": "সময়সূচী অপসারণ করুন",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "রক্ষণাবেক্ষণের অবস্থা রিফ্রেশ করা যায়নি। লোড না হওয়া পর্যন্ত পরিবর্তনগুলি নিষ্ক্রিয় থাকবে।",
"loading": "Loading maintenance status…" "loading": "রক্ষণাবেক্ষণের অবস্থা লোড হচ্ছে…"
} }
} }
+136 -136
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "स्वचालित सेवाओं को देखें",
"description": "See the automations and their history." "description": "स्वचालित प्रक्रियाओं और उनके इतिहास को देखें।"
}, },
"create": { "create": {
"title": "Create automations", "title": "स्वचालित प्रणालियाँ बनाएँ",
"description": "Add new automations." "description": "नई स्वचालित प्रणालियाँ जोड़ें।"
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "स्वचालित संपादन",
"description": "Change existing automations." "description": "मौजूदा स्वचालित प्रक्रियाओं में बदलाव करें।"
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "स्वचालित सेवाओं को हटाएं",
"description": "Remove automations." "description": "स्वचालित प्रक्रियाओं को हटा दें।"
}, },
"run": { "run": {
"title": "Run automations", "title": "स्वचालित संचालन चलाएँ",
"description": "Trigger an automation by hand." "description": "किसी स्वचालित प्रक्रिया को मैन्युअल रूप से शुरू करें।"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "स्वचालन",
"tabAutomations": "Automations", "tabAutomations": "स्वचालन",
"tabRuns": "Runs", "tabRuns": "दौड़ें",
"tabChannels": "चैनल", "tabChannels": "चैनल",
"createAutomation": "New Automation", "createAutomation": "नया स्वचालन",
"backToAutomations": "Back to Automations", "backToAutomations": "स्वचालन पर वापस जाएँ",
"createTitle": "New Automation", "createTitle": "नया स्वचालन",
"editTitle": "Edit Automation", "editTitle": "संपादन स्वचालन",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "अभी तक कोई ऑटोमेशन नहीं है। किसी मेट्रिक, शेड्यूल या इवेंट के आधार पर प्रतिक्रिया देने के लिए एक ऑटोमेशन बनाएं।",
"emptyRuns": "No runs yet.", "emptyRuns": "अभी तक कोई रन नहीं बना है।",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "अलर्ट में चैनल सेट किए जाते हैं।",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "यह अलर्ट हमेशा आपके इनबॉक्स में आता है। इसे कहीं और भेजने के लिए अलर्ट में चैनल जोड़ें।",
"nameLabel": "नाम", "nameLabel": "नाम",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "उदाहरण के लिए, जब /data भर जाए तो उसे साफ़ कर दें।",
"nameRequired": "नाम आवश्यक है", "nameRequired": "नाम आवश्यक है",
"descriptionLabel": "विवरण", "descriptionLabel": "विवरण",
"descriptionPlaceholder": "वैकल्पिक विवरण", "descriptionPlaceholder": "वैकल्पिक विवरण",
"enabledLabel": "सक्षम", "enabledLabel": "सक्षम",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "यदि यह पहले से चल रहा है",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "पिछली बार रन पूरा होने से पहले ही अगर यह समस्या दोबारा उत्पन्न हो जाए तो क्या करें।",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "नए रन को छोड़ दें",
"queue": "Wait and run after", "queue": "प्रतीक्षा करो और उसके पीछे दौड़ो",
"allow": "Run both at once" "allow": "दोनों को एक साथ चलाएं"
}, },
"save": "सहेजें", "save": "सहेजें",
"created": "Automation created", "created": "स्वचालन द्वारा निर्मित",
"updated": "Automation saved", "updated": "स्वचालन ने बचत की",
"deleted": "Automation deleted", "deleted": "स्वचालित रूप से हटा दिया गया",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "इस ऑटोमेशन को डिलीट करने पर, इसका रन हिस्ट्री भी डिलीट हो जाएगा।",
"runNow": "Run now", "runNow": "अब दौड़े",
"testRun": "Test run", "testRun": "परीक्षण के लिए चलाना",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "यह हर चरण में दौड़ता है लेकिन टर्मिक्स के बाहर किसी भी चीज को नहीं छूता है।",
"runStarted": "Run started", "runStarted": "दौड़ शुरू हो गई",
"runFinished": "Run finished: {{status}}", "runFinished": "रन समाप्त: {{status}}",
"trigger": "ट्रिगर", "trigger": "ट्रिगर",
"steps": "Steps", "steps": "चरण",
"addStep": "Add step", "addStep": "चरण जोड़ें",
"removeStep": "Remove step", "removeStep": "चरण हटाएँ",
"moveUp": "Move up", "moveUp": "बढ़ाना",
"moveDown": "Move down", "moveDown": "नीचे की ओर",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "अभी तक कोई चरण निर्धारित नहीं हैं। कृपया एक चरण जोड़कर बताएं कि आगे क्या होना चाहिए।",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "वेबहुक यूआरएल",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "यह केवल एक बार दिखाया जाएगा। इसे अभी सहेज लें, बाद में इसे पुनः प्राप्त नहीं किया जा सकेगा।",
"copy": "कॉपी", "copy": "कॉपी",
"copied": "कॉपी किया गया", "copied": "कॉपी किया गया",
"viewJson": "JSON", "viewJson": "जेएन",
"viewBuilder": "Builder", "viewBuilder": "निर्माता",
"viewGraph": "Graph", "viewGraph": "ग्राफ़",
"lastRun": "Last run", "lastRun": "आखरी बार",
"never": "कभी नहीं", "never": "कभी नहीं",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "आउटपुट", "stepOutput": "आउटपुट",
"stepError": "त्रुटि", "stepError": "त्रुटि",
"dryRunBadge": "Test run", "dryRunBadge": "परीक्षण के लिए चलाना",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "ट्रिगरिंग होस्ट",
"host": "Specific host", "host": "विशिष्ट मेज़बान",
"fleet": "Fleet", "fleet": "बेड़ा",
"all": "सभी होस्ट" "all": "सभी होस्ट"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "मीट्रिक सीमा",
"host_status": "Host goes up or down", "host_status": "होस्ट ऊपर या नीचे जाता है",
"health_check": "Health check changes", "health_check": "स्वास्थ्य जांच में बदलाव",
"schedule": "On a schedule", "schedule": "एक निर्धारित कार्यक्रम के अनुसार",
"docker_event": "Container event", "docker_event": "कंटेनर घटना",
"internal_event": "Termix event", "internal_event": "टर्मिक्स घटना",
"webhook": "Incoming webhook" "webhook": "इनकमिंग वेबहुक"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "अलर्ट भेजें",
"http": "Call a URL", "http": "किसी URL को कॉल करें",
"run_snippet": "Run a snippet", "run_snippet": "एक स्निपेट चलाएँ",
"run_command": "Run a command", "run_command": "एक कमांड चलाएँ",
"docker": "Control a container", "docker": "एक कंटेनर को नियंत्रित करें",
"tunnel": "Control a tunnel", "tunnel": "एक सुरंग को नियंत्रित करें",
"wol": "Wake a host", "wol": "किसी मेजबान को जगाओ",
"wait": "Wait", "wait": "इंतज़ार",
"set_var": "Set a variable", "set_var": "एक चर सेट करें",
"if": "If / otherwise", "if": "यदि / अन्यथा",
"run_automation": "Run another automation", "run_automation": "एक और ऑटोमेशन चलाएँ",
"stop": "स्टॉप" "stop": "स्टॉप"
}, },
"statuses": { "statuses": {
"running": "चालू", "running": "चालू",
"success": "सफल", "success": "सफल",
"failed": "असफल", "failed": "असफल",
"timeout": "Timed out", "timeout": "समय समााप्त",
"skipped": "Skipped", "skipped": "छोड़ा गया",
"cancelled": "Cancelled" "cancelled": "रद्द कर दिया गया"
}, },
"fields": { "fields": {
"host": "होस्ट", "host": "होस्ट",
"metric": "मीट्रिक", "metric": "मीट्रिक",
"mount": "Mount point", "mount": "माउंट पॉइंट",
"operator": "Is", "operator": "है",
"value": "Value", "value": "कीमत",
"forSeconds": "Sustained for (seconds)", "forSeconds": "(सेकंड) तक कायम रहा",
"cooldown": "कूलडाउन (मिनट)", "cooldown": "कूलडाउन (मिनट)",
"cron": "Cron expression", "cron": "क्रोन अभिव्यक्ति",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "हर (सेकंड)",
"timezone": "Time zone", "timezone": "समय क्षेत्र",
"timezoneServer": "Server time", "timezoneServer": "सर्वर समय",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "इस ज़ोन में क्रॉन टाइम पढ़े जाते हैं। यह इंटरवल शेड्यूल पर लागू नहीं होता है।",
"container": "Container", "container": "पात्र",
"command": "कमांड", "command": "कमांड",
"url": "URL", "url": "URL",
"method": "Method", "method": "तरीका",
"body": "Body", "body": "शरीर",
"channels": "Also send to", "channels": "इसे भी भेजें",
"title": "शीर्षक", "title": "शीर्षक",
"message": "Message", "message": "संदेश",
"snippet": "Snippet", "snippet": "टुकड़ा",
"seconds": "Seconds", "seconds": "सेकंड",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "जाँच करने के लिए मान",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "तुलना करें",
"variableName": "Variable name", "variableName": "चर का नाम",
"variableValue": "Value", "variableValue": "कीमत",
"elevated": "Run with sudo", "elevated": "sudo के साथ चलाएँ",
"onError": "If this fails", "onError": "यदि यह विफल हो जाता है",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "स्थानीय नेटवर्क पतों की अनुमति दें",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "आपके लोकल एरिया नेटवर्क (LAN) पर सेल्फ-होस्टेड सेवा के लिए आवश्यक। आंतरिक पतों पर अनुरोधों को रोकने के लिए डिफ़ॉल्ट रूप से बंद।"
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "दौड़ रोको",
"continue": "Carry on" "continue": "जारी रखो"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "आवश्यकताएँ {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "यह स्वचालन तब तक स्थगित रहेगा जब तक कि आवश्यक सुविधा पुनः उपलब्ध न हो जाए।",
"offBadge": "बंद", "offBadge": "बंद",
"docsLink": "दस्तावेज़ देखें", "docsLink": "दस्तावेज़ देखें",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}सेकंड पहले",
"minutes": "{{count}}m पहले", "minutes": "{{count}}m पहले",
"hours": "{{count}}h पहले", "hours": "{{count}}h पहले",
"days": "{{count}}d पहले" "days": "{{count}}d पहले"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "स्वचालन"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "स्वचालन",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "कुछ घटित होने पर चरणों को स्वचालित रूप से चलाएं और सूचना प्राप्त करें।"
}, },
"maintenance": { "maintenance": {
"title": "रखरखाव", "title": "रखरखाव",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "description": "कार्य प्रगति पर रहते हुए होस्ट की स्थिति, स्वास्थ्य, मीट्रिक, कंटेनर और टनल-डिस्कनेक्शन से संबंधित स्वचालित प्रक्रियाओं को रोकें। मॉनिटरिंग, मैन्युअल रन और निर्धारित स्वचालित प्रक्रियाएं जारी रहेंगी।",
"denied": "You do not have permission to view maintenance.", "denied": "आपको रखरखाव कार्य देखने की अनुमति नहीं है।",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "यह होस्ट आपके साथ साझा किया गया है। केवल इसका स्वामी ही रखरखाव में बदलाव कर सकता है।",
"failed": "Maintenance could not be updated.", "failed": "रखरखाव अपडेट नहीं हो सका।",
"active": "Maintenance active", "active": "रखरखाव सक्रिय है",
"estimated": "Estimated completion", "estimated": "अनुमानित समापन",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "यह अनुमान रखरखाव कार्य की समाप्ति का संकेत नहीं है। कार्य पूर्ण होने पर इसे स्पष्ट रूप से समाप्त करें।",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "इस होस्ट के लिए रखरखाव समाप्त करें और इवेंट-ट्रिगर ऑटोमेशन को पुनः आरंभ करें?",
"confirmEnd": "Confirm end", "confirmEnd": "समाप्ति की पुष्टि करें",
"cancel": "रद्द करें", "cancel": "रद्द करें",
"end": "End maintenance", "end": "रखरखाव समाप्त करें",
"action": "क्रिया", "action": "क्रिया",
"startNow": "Start now", "startNow": "शुरू करें",
"schedule": "Schedule for later", "schedule": "बाद के लिए शेड्यूल करें",
"reason": "Reason", "reason": "कारण",
"startUtc": "First start (UTC)", "startUtc": "पहली शुरुआत (UTC)",
"repeat": "Repeat", "repeat": "दोहराना",
"once": "Once", "once": "एक बार",
"weekly": "Weekly", "weekly": "साप्ताहिक",
"monthly": "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.", "utcHelp": "शेड्यूल पूरे वर्ष UTC समय का उपयोग करते हैं। मासिक शेड्यूल चयनित दिन वाले महीनों को छोड़ देते हैं। नियोजित समय सीमाएँ एक-दूसरे से ओवरलैप नहीं हो सकतीं; निर्धारित रखरखाव कार्य निर्धारित समय सीमाओं में भी जारी रहता है।",
"duration": "Estimated duration (minutes)", "duration": "अनुमानित अवधि (मिनटों में)",
"grace": "Grace period (minutes)", "grace": "अनुग्रह अवधि (मिनटों में)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "अनुमान और अनुग्रह अवधि के बाद भी ऑफ़लाइन रहने पर एक बार सूचित करें",
"addSchedule": "Add schedule", "addSchedule": "अनुसूची जोड़ें",
"schedules": "Schedules", "schedules": "अनुसूचियों",
"noSchedules": "No maintenance schedules.", "noSchedules": "कोई रखरखाव कार्यक्रम नहीं।",
"completed": "Already started", "completed": "पहले ही शुरू हो चुका है",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} मिनट",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} मिनट",
"remove": "Remove schedule", "remove": "अनुसूची हटाएँ",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "रखरखाव की स्थिति को रीफ़्रेश नहीं किया जा सका। जब तक यह लोड नहीं हो जाता, तब तक परिवर्तन अक्षम रहेंगे।",
"loading": "Loading maintenance status…" "loading": "रखरखाव की स्थिति लोड हो रही है…"
} }
} }
+163 -163
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Lihat otomatisasi",
"description": "See the automations and their history." "description": "Lihat otomatisasi dan riwayatnya."
}, },
"create": { "create": {
"title": "Create automations", "title": "Buat otomatisasi",
"description": "Add new automations." "description": "Tambahkan otomatisasi baru."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Edit otomatisasi",
"description": "Change existing automations." "description": "Ubah otomatisasi yang ada."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Hapus otomatisasi",
"description": "Remove automations." "description": "Hapus otomatisasi."
}, },
"run": { "run": {
"title": "Run automations", "title": "Jalankan otomatisasi",
"description": "Trigger an automation by hand." "description": "Memicu otomatisasi secara manual."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Otomatisasi",
"tabAutomations": "Automations", "tabAutomations": "Otomatisasi",
"tabRuns": "Runs", "tabRuns": "Lari",
"tabChannels": "Channels", "tabChannels": "Saluran",
"createAutomation": "New Automation", "createAutomation": "Otomatisasi Baru",
"backToAutomations": "Back to Automations", "backToAutomations": "Kembali ke Otomatisasi",
"createTitle": "New Automation", "createTitle": "Otomatisasi Baru",
"editTitle": "Edit Automation", "editTitle": "Edit Otomatisasi",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Belum ada otomatisasi. Buat satu untuk bereaksi terhadap metrik, jadwal, atau peristiwa.",
"emptyRuns": "No runs yet.", "emptyRuns": "Belum ada percobaan lari.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Saluran diatur dalam Peringatan.",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Notifikasi selalu masuk ke kotak masuk Anda. Tambahkan saluran di Notifikasi untuk mengirimkannya ke tempat lain juga.",
"nameLabel": "Name", "nameLabel": "Nama",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "misalnya, Bersihkan /data saat sudah penuh",
"nameRequired": "Name is required", "nameRequired": "Nama wajib diisi.",
"descriptionLabel": "Description", "descriptionLabel": "Keterangan",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Deskripsi opsional",
"enabledLabel": "Enabled", "enabledLabel": "Diaktifkan",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Jika sudah berjalan",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Apa yang harus dilakukan jika ini terpicu lagi sebelum proses terakhir selesai.",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Lewati lari baru",
"queue": "Wait and run after", "queue": "Tunggu dan lari setelahnya",
"allow": "Run both at once" "allow": "Jalankan keduanya sekaligus"
}, },
"save": "Save", "save": "Menyimpan",
"created": "Automation created", "created": "Otomatisasi dibuat",
"updated": "Automation saved", "updated": "Otomatisasi tersimpan",
"deleted": "Automation deleted", "deleted": "Otomatisasi dihapus",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Hapus otomatisasi ini? Riwayat eksekusinya juga akan terhapus.",
"runNow": "Run now", "runNow": "Lari sekarang",
"testRun": "Test run", "testRun": "Uji coba",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Berjalan di setiap langkah tetapi tidak menyentuh apa pun di luar Termix.",
"runStarted": "Run started", "runStarted": "Lari dimulai",
"runFinished": "Run finished: {{status}}", "runFinished": "Eksekusi selesai: {{status}}",
"trigger": "Trigger", "trigger": "Pemicu",
"steps": "Steps", "steps": "Tangga",
"addStep": "Add step", "addStep": "Tambahkan langkah",
"removeStep": "Remove step", "removeStep": "Hapus langkah",
"moveUp": "Move up", "moveUp": "Naikkan",
"moveDown": "Move down", "moveDown": "Turun ke bawah",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Belum ada langkah. Tambahkan satu langkah untuk menjelaskan apa yang seharusnya terjadi.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL Webhook",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Ini hanya ditampilkan sekali. Simpan sekarang, karena tidak dapat diambil kembali nanti.",
"copy": "Copy", "copy": "Menyalin",
"copied": "Copied", "copied": "Disalin",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Pembangun",
"viewGraph": "Graph", "viewGraph": "Grafik",
"lastRun": "Last run", "lastRun": "Lari terakhir",
"never": "Never", "never": "Tidak pernah",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "Keluaran",
"stepError": "Error", "stepError": "Kesalahan",
"dryRunBadge": "Test run", "dryRunBadge": "Uji coba",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Host pemicu",
"host": "Specific host", "host": "Host spesifik",
"fleet": "Fleet", "fleet": "Armada",
"all": "All hosts" "all": "Semua tuan rumah"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Ambang batas metrik",
"host_status": "Host goes up or down", "host_status": "Pembawa acara naik atau turun",
"health_check": "Health check changes", "health_check": "Perubahan pemeriksaan kesehatan",
"schedule": "On a schedule", "schedule": "Sesuai jadwal",
"docker_event": "Container event", "docker_event": "Acara kontainer",
"internal_event": "Termix event", "internal_event": "Acara Termix",
"webhook": "Incoming webhook" "webhook": "Webhook masuk"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Kirim peringatan",
"http": "Call a URL", "http": "Memanggil URL",
"run_snippet": "Run a snippet", "run_snippet": "Jalankan cuplikan kode",
"run_command": "Run a command", "run_command": "Jalankan perintah",
"docker": "Control a container", "docker": "Mengendalikan sebuah kontainer",
"tunnel": "Control a tunnel", "tunnel": "Mengendalikan terowongan",
"wol": "Wake a host", "wol": "Bangunkan tuan rumah",
"wait": "Wait", "wait": "Tunggu",
"set_var": "Set a variable", "set_var": "Tetapkan sebuah variabel",
"if": "If / otherwise", "if": "Jika/sebaliknya",
"run_automation": "Run another automation", "run_automation": "Jalankan otomatisasi lainnya",
"stop": "Stop" "stop": "Berhenti"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "Berlari",
"success": "Success", "success": "Kesuksesan",
"failed": "Failed", "failed": "Gagal",
"timeout": "Timed out", "timeout": "Waktu habis",
"skipped": "Skipped", "skipped": "Dilewati",
"cancelled": "Cancelled" "cancelled": "Dibatalkan"
}, },
"fields": { "fields": {
"host": "Host", "host": "Tuan rumah",
"metric": "Metric", "metric": "Metrik",
"mount": "Mount point", "mount": "Titik pemasangan",
"operator": "Is", "operator": "Adalah",
"value": "Value", "value": "Nilai",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Berlangsung selama (detik)",
"cooldown": "Cooldown (minutes)", "cooldown": "Waktu pendinginan (menit)",
"cron": "Cron expression", "cron": "Ekspresi Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Setiap (detik)",
"timezone": "Time zone", "timezone": "Zona waktu",
"timezoneServer": "Server time", "timezoneServer": "Waktu server",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Waktu Cron dibaca di zona ini. Tidak berlaku untuk jadwal interval.",
"container": "Container", "container": "Wadah",
"command": "Command", "command": "Memerintah",
"url": "URL", "url": "URL",
"method": "Method", "method": "Metode",
"body": "Body", "body": "Tubuh",
"channels": "Also send to", "channels": "Kirim juga ke",
"title": "Title", "title": "Judul",
"message": "Message", "message": "Pesan",
"snippet": "Snippet", "snippet": "Potongan",
"seconds": "Seconds", "seconds": "Detik",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Nilai yang perlu diperiksa",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Bandingkan dengan",
"variableName": "Variable name", "variableName": "Nama variabel",
"variableValue": "Value", "variableValue": "Nilai",
"elevated": "Run with sudo", "elevated": "Jalankan dengan sudo",
"onError": "If this fails", "onError": "Jika ini gagal",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Izinkan alamat jaringan lokal",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "Diperlukan untuk layanan yang dihosting sendiri di LAN Anda. Secara default dinonaktifkan untuk mencegah permintaan ke alamat internal."
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "Hentikan larinya",
"continue": "Carry on" "continue": "Melanjutkan"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Membutuhkan {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Otomatisasi ini dilewati hingga fitur yang dibutuhkan tersedia kembali.",
"offBadge": "Off", "offBadge": "Mati",
"docsLink": "View docs", "docsLink": "Lihat dokumen",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}detik yang lalu",
"minutes": "{{count}} menit lalu", "minutes": "{{count}} menit lalu",
"hours": "{{count}} jam lalu", "hours": "{{count}} jam lalu",
"days": "{{count}} detik lalu" "days": "{{count}} detik lalu"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Otomatisasi"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Otomatisasi",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Jalankan langkah-langkah secara otomatis saat sesuatu terjadi, dan dapatkan notifikasi."
}, },
"maintenance": { "maintenance": {
"title": "Maintenance", "title": "Pemeliharaan",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "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": "You do not have permission to view maintenance.", "denied": "Anda tidak memiliki izin untuk melihat pemeliharaan.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Host ini dibagikan kepada Anda. Hanya pemiliknya yang dapat mengubah pengaturan pemeliharaan.",
"failed": "Maintenance could not be updated.", "failed": "Informasi pemeliharaan tidak dapat diperbarui.",
"active": "Maintenance active", "active": "Pemeliharaan aktif",
"estimated": "Estimated completion", "estimated": "Perkiraan penyelesaian",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Estimasi tersebut tidak mengakhiri pemeliharaan. Akhiri secara eksplisit ketika pekerjaan selesai.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Akhiri pemeliharaan dan lanjutkan otomatisasi yang dipicu oleh peristiwa untuk host ini?",
"confirmEnd": "Confirm end", "confirmEnd": "Konfirmasi akhir",
"cancel": "Cancel", "cancel": "Membatalkan",
"end": "End maintenance", "end": "Akhir pemeliharaan",
"action": "Action", "action": "Tindakan",
"startNow": "Start now", "startNow": "Mulai sekarang",
"schedule": "Schedule for later", "schedule": "Jadwal untuk nanti",
"reason": "Reason", "reason": "Alasan",
"startUtc": "First start (UTC)", "startUtc": "Mulai pertama (UTC)",
"repeat": "Repeat", "repeat": "Mengulang",
"once": "Once", "once": "Sekali",
"weekly": "Weekly", "weekly": "Mingguan",
"monthly": "Monthly", "monthly": "Bulanan",
"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.", "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": "Estimated duration (minutes)", "duration": "Perkiraan durasi (menit)",
"grace": "Grace period (minutes)", "grace": "Masa tenggang (menit)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Beri tahu sekali jika masih offline setelah perkiraan ditambah masa tenggang.",
"addSchedule": "Add schedule", "addSchedule": "Tambahkan jadwal",
"schedules": "Schedules", "schedules": "Jadwal",
"noSchedules": "No maintenance schedules.", "noSchedules": "Tidak ada jadwal perawatan.",
"completed": "Already started", "completed": "Sudah dimulai",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} menit",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} menit",
"remove": "Remove schedule", "remove": "Hapus jadwal",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Status pemeliharaan tidak dapat diperbarui. Perubahan dinonaktifkan hingga status dapat dimuat.",
"loading": "Loading maintenance status…" "loading": "Memuat status pemeliharaan…"
} }
} }
+151 -151
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Se automatiseringer",
"description": "See the automations and their history." "description": "Se automatiseringene og historikken deres."
}, },
"create": { "create": {
"title": "Create automations", "title": "Opprett automatiseringer",
"description": "Add new automations." "description": "Legg til nye automatiseringer."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Rediger automatiseringer",
"description": "Change existing automations." "description": "Endre eksisterende automatiseringer."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Slett automatiseringer",
"description": "Remove automations." "description": "Fjern automatiseringer."
}, },
"run": { "run": {
"title": "Run automations", "title": "Kjør automatiseringer",
"description": "Trigger an automation by hand." "description": "Utløs en automatisering manuelt."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Automatiseringer",
"tabAutomations": "Automations", "tabAutomations": "Automatiseringer",
"tabRuns": "Runs", "tabRuns": "Løper",
"tabChannels": "Channels", "tabChannels": "Kanaler",
"createAutomation": "New Automation", "createAutomation": "Ny automatisering",
"backToAutomations": "Back to Automations", "backToAutomations": "Tilbake til automatiseringer",
"createTitle": "New Automation", "createTitle": "Ny automatisering",
"editTitle": "Edit Automation", "editTitle": "Rediger automatisering",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Ingen automatiseringer ennå. Opprett en for å reagere på en beregning, en tidsplan eller en hendelse.",
"emptyRuns": "No runs yet.", "emptyRuns": "Ingen løp ennå.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Kanaler er satt opp i varsler",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Varselet går alltid til innboksen din. Legg til kanaler i varsler for å også sende det et annet sted.",
"nameLabel": "Navn", "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", "nameRequired": "Navn er påkrevd",
"descriptionLabel": "Beskrivelse", "descriptionLabel": "Beskrivelse",
"descriptionPlaceholder": "Valgfri beskrivelse", "descriptionPlaceholder": "Valgfri beskrivelse",
"enabledLabel": "Aktivert", "enabledLabel": "Aktivert",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Hvis den allerede kjører",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Hva skal man gjøre når dette utløses igjen før siste kjøring er ferdig?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Hopp over den nye kjøringen",
"queue": "Wait and run after", "queue": "Vent og løp etter",
"allow": "Run both at once" "allow": "Kjør begge samtidig"
}, },
"save": "Lagre", "save": "Lagre",
"created": "Automation created", "created": "Automatisering opprettet",
"updated": "Automation saved", "updated": "Automatisering lagret",
"deleted": "Automation deleted", "deleted": "Automatisering slettet",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Vil du slette denne automatiseringen? Kjørehistorikken slettes også.",
"runNow": "Run now", "runNow": "Løp nå",
"testRun": "Test run", "testRun": "Testkjøring",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Kjører hvert trinn, men berører ikke noe utenfor Termix.",
"runStarted": "Run started", "runStarted": "Løpet startet",
"runFinished": "Run finished: {{status}}", "runFinished": "Kjøring fullført: {{status}}",
"trigger": "Trigger", "trigger": "Avtrekker",
"steps": "Steps", "steps": "Trinn",
"addStep": "Add step", "addStep": "Legg til trinn",
"removeStep": "Remove step", "removeStep": "Fjern trinn",
"moveUp": "Move up", "moveUp": "Flytt opp",
"moveDown": "Move down", "moveDown": "Flytt ned",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Ingen trinn ennå. Legg til ett for å si hva som skal skje.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "Webhook-URL",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Dette vises én gang. Lagre det nå, det kan ikke hentes frem senere.",
"copy": "Kopier", "copy": "Kopier",
"copied": "Copied", "copied": "Kopiert",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Bygger",
"viewGraph": "Graph", "viewGraph": "Kurve",
"lastRun": "Last run", "lastRun": "Siste løp",
"never": "Never", "never": "Aldri",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "Produksjon",
"stepError": "Feil", "stepError": "Feil",
"dryRunBadge": "Test run", "dryRunBadge": "Testkjøring",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Utløsende vert",
"host": "Specific host", "host": "Spesifikk vert",
"fleet": "Fleet", "fleet": "Flåte",
"all": "All hosts" "all": "Alle verter"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Metrisk terskel",
"host_status": "Host goes up or down", "host_status": "Verten går opp eller ned",
"health_check": "Health check changes", "health_check": "Endringer i helsesjekken",
"schedule": "On a schedule", "schedule": "På en tidsplan",
"docker_event": "Container event", "docker_event": "Containerhendelse",
"internal_event": "Termix event", "internal_event": "Termix-arrangementet",
"webhook": "Incoming webhook" "webhook": "Innkommende webhook"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Send et varsel",
"http": "Call a URL", "http": "Kall en URL",
"run_snippet": "Run a snippet", "run_snippet": "Kjør et utdrag",
"run_command": "Run a command", "run_command": "Kjør en kommando",
"docker": "Control a container", "docker": "Kontroller en container",
"tunnel": "Control a tunnel", "tunnel": "Kontroller en tunnel",
"wol": "Wake a host", "wol": "Vekk en vert",
"wait": "Wait", "wait": "Vente",
"set_var": "Set a variable", "set_var": "Angi en variabel",
"if": "If / otherwise", "if": "Hvis / ellers",
"run_automation": "Run another automation", "run_automation": "Kjør en annen automatisering",
"stop": "Stopp" "stop": "Stopp"
}, },
"statuses": { "statuses": {
"running": "Kjører", "running": "Kjører",
"success": "Suksess", "success": "Suksess",
"failed": "Mislyktes", "failed": "Mislyktes",
"timeout": "Timed out", "timeout": "Tidsavbrutt",
"skipped": "Skipped", "skipped": "Hoppet over",
"cancelled": "Cancelled" "cancelled": "Avlyst"
}, },
"fields": { "fields": {
"host": "Host", "host": "Vert",
"metric": "Metric", "metric": "Metrisk",
"mount": "Mount point", "mount": "Monteringspunkt",
"operator": "Is", "operator": "Er",
"value": "Value", "value": "Verdi",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Vedvarende i (sekunder)",
"cooldown": "Cooldown (minutes)", "cooldown": "Nedkjølingstid (minutter)",
"cron": "Cron expression", "cron": "Cron-uttrykk",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Hvert (sekund)",
"timezone": "Time zone", "timezone": "Tidssone",
"timezoneServer": "Server time", "timezoneServer": "Servertid",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Cron-tider leses i denne sonen. Gjelder ikke for intervallplaner.",
"container": "Container", "container": "Container",
"command": "Kommando", "command": "Kommando",
"url": "URL", "url": "URL-adresse",
"method": "Method", "method": "Metode",
"body": "Body", "body": "Kropp",
"channels": "Also send to", "channels": "Send også til",
"title": "Title", "title": "Tittel",
"message": "Message", "message": "Beskjed",
"snippet": "Snippet", "snippet": "Utdrag",
"seconds": "Seconds", "seconds": "Sekunder",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Verdi å sjekke",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Sammenlign mot",
"variableName": "Variable name", "variableName": "Variabelnavn",
"variableValue": "Value", "variableValue": "Verdi",
"elevated": "Run with sudo", "elevated": "Kjør med sudo",
"onError": "If this fails", "onError": "Hvis dette mislykkes",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Tillat lokale nettverksadresser",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "Nødvendig for en selvhostet tjeneste på LAN-et ditt. Av som standard for å forhindre forespørsler til interne adresser."
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "Stopp løpet",
"continue": "Carry on" "continue": "Fortsett"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Trenger {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Denne automatiseringen hoppes over inntil funksjonen den trenger er tilgjengelig igjen.",
"offBadge": "Off", "offBadge": "Av",
"docsLink": "View docs", "docsLink": "Vis dokumenter",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "For {{count}}sekunder siden",
"minutes": "{{count}}m ago", "minutes": "For {{count}}minutter siden",
"hours": "{{count}}h ago", "hours": "for {{count}}t siden",
"days": "{{count}}d ago" "days": "for {{count}}dager siden"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Automatiseringer"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Automatiseringer",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Kjør trinnene automatisk når noe skjer, og bli varslet."
}, },
"maintenance": { "maintenance": {
"title": "Vedlikehold", "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.", "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": "You do not have permission to view maintenance.", "denied": "Du har ikke tillatelse til å se vedlikehold.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Denne verten ble delt med deg. Bare eieren kan endre vedlikeholdet.",
"failed": "Maintenance could not be updated.", "failed": "Vedlikehold kunne ikke oppdateres.",
"active": "Maintenance active", "active": "Vedlikehold aktivt",
"estimated": "Estimated completion", "estimated": "Forventet ferdigstillelse",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Estimatet avslutter ikke vedlikeholdet. Avslutt det eksplisitt når arbeidet er fullført.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Vil du avslutte vedlikehold og gjenoppta hendelsesutløste automatiseringer for denne verten?",
"confirmEnd": "Confirm end", "confirmEnd": "Bekreft slutten",
"cancel": "Avbryt", "cancel": "Avbryt",
"end": "End maintenance", "end": "Avslutt vedlikehold",
"action": "Action", "action": "Handling",
"startNow": "Start now", "startNow": "Start nå",
"schedule": "Schedule for later", "schedule": "Planlegg for senere",
"reason": "Reason", "reason": "Grunn",
"startUtc": "First start (UTC)", "startUtc": "Første start (UTC)",
"repeat": "Repeat", "repeat": "Gjenta",
"once": "Once", "once": "En gang",
"weekly": "Weekly", "weekly": "Ukentlig",
"monthly": "Monthly", "monthly": "Månedlig",
"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.", "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": "Estimated duration (minutes)", "duration": "Estimert varighet (minutter)",
"grace": "Grace period (minutes)", "grace": "Frist (minutter)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Varsle én gang hvis du fortsatt er frakoblet etter estimatet pluss respitperioden",
"addSchedule": "Add schedule", "addSchedule": "Legg til timeplan",
"schedules": "Schedules", "schedules": "Tidsplaner",
"noSchedules": "No maintenance schedules.", "noSchedules": "Ingen vedlikeholdsplaner.",
"completed": "Already started", "completed": "Allerede startet",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} minutt",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} minutter",
"remove": "Remove schedule", "remove": "Fjern tidsplan",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Kunne ikke oppdatere vedlikeholdsstatusen. Endringer er deaktivert inntil den kan lastes inn.",
"loading": "Loading maintenance status…" "loading": "Laster inn vedlikeholdsstatus…"
} }
} }
@@ -1,24 +1,24 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Wyświetl automatyzacje",
"description": "See the automations and their history." "description": "Zobacz automatyzacje i ich historię."
}, },
"create": { "create": {
"title": "Create automations", "title": "Twórz automatyzacje",
"description": "Add new automations." "description": "Dodaj nowe automatyzacje."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Edytuj automatyzacje",
"description": "Change existing automations." "description": "Zmień istniejące automatyzacje."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Usuń automatyzacje",
"description": "Remove automations." "description": "Usuń automatyzacje."
}, },
"run": { "run": {
"title": "Run automations", "title": "Uruchom automatyzacje",
"description": "Trigger an automation by hand." "description": "Uruchom automatyzację ręcznie."
} }
}, },
"newUi": { "newUi": {
@@ -34,8 +34,8 @@
"editTitle": "Edytuj automatyzację", "editTitle": "Edytuj automatyzację",
"empty": "Brak jeszcze automatyzacji. Utwórz automatyzację, która będzie reagować na metrykę, harmonogram lub zdarzenie.", "empty": "Brak jeszcze automatyzacji. Utwórz automatyzację, która będzie reagować na metrykę, harmonogram lub zdarzenie.",
"emptyRuns": "Brak uruchomień.", "emptyRuns": "Brak uruchomień.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Kanały są skonfigurowane w Alertach",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Alert zawsze trafia do Twojej skrzynki odbiorczej. Dodaj kanały w Alertach, aby wysłać go również gdzie indziej.",
"nameLabel": "Nazwa", "nameLabel": "Nazwa",
"namePlaceholder": "np. Wyczyść /data, gdy się zapełni", "namePlaceholder": "np. Wyczyść /data, gdy się zapełni",
"nameRequired": "Nazwa jest wymagana", "nameRequired": "Nazwa jest wymagana",
@@ -95,7 +95,7 @@
"webhook": "Przychodzący webhook" "webhook": "Przychodzący webhook"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Wyślij alert",
"http": "Wywołaj adres URL", "http": "Wywołaj adres URL",
"run_snippet": "Uruchom snippet", "run_snippet": "Uruchom snippet",
"run_command": "Uruchom polecenie", "run_command": "Uruchom polecenie",
@@ -134,7 +134,7 @@
"url": "Adres URL", "url": "Adres URL",
"method": "Metoda", "method": "Metoda",
"body": "Treść", "body": "Treść",
"channels": "Also send to", "channels": "Wyślij również do",
"title": "Tytuł", "title": "Tytuł",
"message": "Wiadomość", "message": "Wiadomość",
"snippet": "Snippet", "snippet": "Snippet",
@@ -152,12 +152,12 @@
"stop": "Zatrzymaj uruchomienie", "stop": "Zatrzymaj uruchomienie",
"continue": "Kontynuuj" "continue": "Kontynuuj"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Potrzeba {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Ta automatyzacja jest pomijana do momentu, aż potrzebna funkcja stanie się ponownie dostępna.",
"offBadge": "Wył.", "offBadge": "Wył.",
"docsLink": "Zobacz dokumentację", "docsLink": "Zobacz dokumentację",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}s temu",
"minutes": "{{count}} min temu", "minutes": "{{count}} min temu",
"hours": "{{count}} godz. temu", "hours": "{{count}} godz. temu",
"days": "{{count}} dni temu" "days": "{{count}} dni temu"
@@ -174,38 +174,38 @@
}, },
"maintenance": { "maintenance": {
"title": "Konserwacja", "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.", "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": "You do not have permission to view maintenance.", "denied": "Nie masz uprawnień do przeglądania informacji o konserwacji.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Ten host został Ci udostępniony. Tylko jego właściciel może zmienić stan konserwacji.",
"failed": "Maintenance could not be updated.", "failed": "Nie udało się zaktualizować konserwacji.",
"active": "Maintenance active", "active": "Konserwacja aktywna",
"estimated": "Estimated completion", "estimated": "Szacowany termin ukończenia",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Kosztorys nie kończy prac konserwacyjnych. Należy go jednoznacznie zakończyć po zakończeniu prac.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Zakończyć konserwację i wznowić automatyzacje wyzwalane zdarzeniami dla tego hosta?",
"confirmEnd": "Confirm end", "confirmEnd": "Potwierdź koniec",
"cancel": "Anuluj", "cancel": "Anuluj",
"end": "End maintenance", "end": "Zakończ konserwację",
"action": "Akcja", "action": "Akcja",
"startNow": "Start now", "startNow": "Zacznij teraz",
"schedule": "Schedule for later", "schedule": "Zaplanuj na później",
"reason": "Reason", "reason": "Powód",
"startUtc": "First start (UTC)", "startUtc": "Pierwsze uruchomienie (UTC)",
"repeat": "Powtórz", "repeat": "Powtórz",
"once": "Once", "once": "Raz",
"weekly": "Weekly", "weekly": "Tygodnik",
"monthly": "Monthly", "monthly": "Miesięczny",
"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.", "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": "Estimated duration (minutes)", "duration": "Szacowany czas trwania (minuty)",
"grace": "Grace period (minutes)", "grace": "Okres karencji (minuty)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Powiadom raz, jeśli po upływie okresu szacunkowego i okresu karencji nadal będziesz offline",
"addSchedule": "Add schedule", "addSchedule": "Dodaj harmonogram",
"schedules": "Schedules", "schedules": "Harmonogramy",
"noSchedules": "No maintenance schedules.", "noSchedules": "Brak harmonogramów konserwacji.",
"completed": "Already started", "completed": "Już zaczęto",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} minuta",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} minut",
"remove": "Remove schedule", "remove": "Usuń harmonogram",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Nie można odświeżyć statusu konserwacji. Zmiany są zablokowane do czasu ich załadowania.",
"loading": "Loading maintenance status…" "loading": "Ładowanie statusu konserwacji…"
} }
} }
+159 -159
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Visualizar automações",
"description": "See the automations and their history." "description": "Veja as automações e seu histórico."
}, },
"create": { "create": {
"title": "Create automations", "title": "Criar automações",
"description": "Add new automations." "description": "Adicionar novas automações."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Editar automações",
"description": "Change existing automations." "description": "Alterar as automações existentes."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Excluir automações",
"description": "Remove automations." "description": "Remover automações."
}, },
"run": { "run": {
"title": "Run automations", "title": "Executar automações",
"description": "Trigger an automation by hand." "description": "Acione uma automação manualmente."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Automações",
"tabAutomations": "Automations", "tabAutomations": "Automações",
"tabRuns": "Runs", "tabRuns": "Corridas",
"tabChannels": "Channels", "tabChannels": "Canais",
"createAutomation": "New Automation", "createAutomation": "Nova Automação",
"backToAutomations": "Back to Automations", "backToAutomations": "Voltar para Automações",
"createTitle": "New Automation", "createTitle": "Nova Automação",
"editTitle": "Edit Automation", "editTitle": "Editar Automação",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Ainda não há automações. Crie uma para reagir a uma métrica, a um agendamento ou a um evento.",
"emptyRuns": "No runs yet.", "emptyRuns": "Ainda não houve nenhuma corrida.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Os canais são configurados em Alertas.",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "O alerta sempre será enviado para sua caixa de entrada. Adicione canais em Alertas para enviá-lo também para outros locais.",
"nameLabel": "Name", "nameLabel": "Nome",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "Por exemplo, limpe a pasta /data quando ela estiver cheia.",
"nameRequired": "Name is required", "nameRequired": "O nome é obrigatório.",
"descriptionLabel": "Description", "descriptionLabel": "Descrição",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Descrição opcional",
"enabledLabel": "Enabled", "enabledLabel": "Habilitado",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Se já estiver em execução",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "O que fazer quando isso for acionado novamente antes da última execução terminar?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Pule a nova corrida",
"queue": "Wait and run after", "queue": "Espere e corra atrás.",
"allow": "Run both at once" "allow": "Execute ambos simultaneamente"
}, },
"save": "Salvar", "save": "Salvar",
"created": "Automation created", "created": "Automação criada",
"updated": "Automation saved", "updated": "Automação economizou",
"deleted": "Automation deleted", "deleted": "Automação excluída",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Excluir esta automação? O histórico de execução dela também será excluído.",
"runNow": "Run now", "runNow": "Corra agora",
"testRun": "Test run", "testRun": "Teste de execução",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Executa cada etapa, mas não toca em nada fora do Termix.",
"runStarted": "Run started", "runStarted": "A corrida começou.",
"runFinished": "Run finished: {{status}}", "runFinished": "Execução concluída: {{status}}",
"trigger": "Trigger", "trigger": "Acionar",
"steps": "Steps", "steps": "Passos",
"addStep": "Add step", "addStep": "Adicionar etapa",
"removeStep": "Remove step", "removeStep": "Remover etapa",
"moveUp": "Move up", "moveUp": "Suba",
"moveDown": "Move down", "moveDown": "Desça",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Ainda não há etapas. Adicione uma para descrever o que deve acontecer.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL do Webhook",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Esta mensagem será exibida apenas uma vez. Salve-a agora, pois não poderá ser recuperada posteriormente.",
"copy": "Copiar", "copy": "Copiar",
"copied": "Copiado", "copied": "Copiado",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Construtor",
"viewGraph": "Graph", "viewGraph": "Gráfico",
"lastRun": "Last run", "lastRun": "Última corrida",
"never": "Never", "never": "Nunca",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "Saída",
"stepError": "Erro", "stepError": "Erro",
"dryRunBadge": "Test run", "dryRunBadge": "Teste de execução",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Host que desencadeia o ataque",
"host": "Specific host", "host": "hospedeiro específico",
"fleet": "Fleet", "fleet": "Frota",
"all": "All hosts" "all": "Todos os anfitriões"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Limiar métrico",
"host_status": "Host goes up or down", "host_status": "O host sobe ou desce.",
"health_check": "Health check changes", "health_check": "Alterações na verificação de saúde",
"schedule": "On a schedule", "schedule": "De acordo com um cronograma",
"docker_event": "Container event", "docker_event": "Evento de contêiner",
"internal_event": "Termix event", "internal_event": "Evento Termix",
"webhook": "Incoming webhook" "webhook": "Webhook de entrada"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Enviar um alerta",
"http": "Call a URL", "http": "Chamar um URL",
"run_snippet": "Run a snippet", "run_snippet": "Executar um trecho de código",
"run_command": "Run a command", "run_command": "Executar um comando",
"docker": "Control a container", "docker": "Controle um contêiner",
"tunnel": "Control a tunnel", "tunnel": "Controle um túnel",
"wol": "Wake a host", "wol": "Acorde um anfitrião",
"wait": "Wait", "wait": "Espere",
"set_var": "Set a variable", "set_var": "Defina uma variável",
"if": "If / otherwise", "if": "Se/caso contrário",
"run_automation": "Run another automation", "run_automation": "Execute outra automação",
"stop": "Stop" "stop": "Parar"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "Correndo",
"success": "Success", "success": "Sucesso",
"failed": "Failed", "failed": "Fracassado",
"timeout": "Timed out", "timeout": "Tempo limite excedido",
"skipped": "Skipped", "skipped": "Ignorado",
"cancelled": "Cancelled" "cancelled": "Cancelado"
}, },
"fields": { "fields": {
"host": "Host", "host": "Hospedar",
"metric": "Metric", "metric": "Métrica",
"mount": "Mount point", "mount": "Ponto de montagem",
"operator": "Is", "operator": "É",
"value": "Value", "value": "Valor",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Sustentado por (segundos)",
"cooldown": "Cooldown (minutes)", "cooldown": "Tempo de resfriamento (minutos)",
"cron": "Cron expression", "cron": "Expressão de Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "A cada (segundos)",
"timezone": "Time zone", "timezone": "Fuso horário",
"timezoneServer": "Server time", "timezoneServer": "Hora do servidor",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Os horários cron são lidos nesta zona. Não se aplica a agendamentos por intervalo.",
"container": "Container", "container": "Recipiente",
"command": "Command", "command": "Comando",
"url": "URL", "url": "URL",
"method": "Method", "method": "Método",
"body": "Body", "body": "Corpo",
"channels": "Also send to", "channels": "Enviar também para",
"title": "Title", "title": "Título",
"message": "Message", "message": "Mensagem",
"snippet": "Snippet", "snippet": "Trecho",
"seconds": "Seconds", "seconds": "Segundos",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Valor a verificar",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Compare com",
"variableName": "Variable name", "variableName": "Nome da variável",
"variableValue": "Value", "variableValue": "Valor",
"elevated": "Run with sudo", "elevated": "Executar com sudo",
"onError": "If this fails", "onError": "Se isso falhar",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Permitir endereços de rede local",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "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": { "onError": {
"stop": "Stop the run", "stop": "Pare a corrida",
"continue": "Carry on" "continue": "Continuar"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Necessita de {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Essa automação será ignorada até que o recurso necessário esteja disponível novamente.",
"offBadge": "Off", "offBadge": "Desligado",
"docsLink": "Documentação", "docsLink": "Documentação",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}s atrás",
"minutes": "{{count}}m ago", "minutes": "{{count}}m atrás",
"hours": "{{count}}h ago", "hours": "{{count}}h atrás",
"days": "{{count}}d ago" "days": "{{count}}há alguns dias"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Automações"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Automações",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Execute etapas automaticamente quando algo acontecer e receba notificações."
}, },
"maintenance": { "maintenance": {
"title": "Manutenção", "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.", "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": "You do not have permission to view maintenance.", "denied": "Você não tem permissão para visualizar a manutenção.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Este host foi compartilhado com você. Somente o proprietário pode alterar as configurações de manutenção.",
"failed": "Maintenance could not be updated.", "failed": "A atualização de manutenção não pôde ser concluída.",
"active": "Maintenance active", "active": "Manutenção ativa",
"estimated": "Estimated completion", "estimated": "Conclusão prevista",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "O orçamento não encerra a manutenção. Encerre-o explicitamente quando o trabalho estiver concluído.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Encerrar a manutenção e retomar as automações acionadas por eventos para este host?",
"confirmEnd": "Confirm end", "confirmEnd": "Confirme o fim",
"cancel": "Cancelar", "cancel": "Cancelar",
"end": "End maintenance", "end": "Manutenção final",
"action": "Action", "action": "Ação",
"startNow": "Start now", "startNow": "Comece agora",
"schedule": "Schedule for later", "schedule": "Agendamento para mais tarde",
"reason": "Reason", "reason": "Razão",
"startUtc": "First start (UTC)", "startUtc": "Primeiro início (UTC)",
"repeat": "Repeat", "repeat": "Repita",
"once": "Once", "once": "Uma vez",
"weekly": "Weekly", "weekly": "Semanalmente",
"monthly": "Monthly", "monthly": "Mensal",
"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.", "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": "Estimated duration (minutes)", "duration": "Duração estimada (minutos)",
"grace": "Grace period (minutes)", "grace": "Período de tolerância (minutos)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Notificar uma única vez se o usuário ainda estiver offline após o período estimado e de tolerância.",
"addSchedule": "Add schedule", "addSchedule": "Adicionar horário",
"schedules": "Schedules", "schedules": "Horários",
"noSchedules": "No maintenance schedules.", "noSchedules": "Sem cronograma de manutenção.",
"completed": "Already started", "completed": "Já começou",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} minuto",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} minutos",
"remove": "Remove schedule", "remove": "Remover agendamento",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "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": "Loading maintenance status…" "loading": "Carregando status de manutenção…"
} }
} }
+135 -135
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Visualizar automações",
"description": "See the automations and their history." "description": "Veja as automatizações e o seu histórico."
}, },
"create": { "create": {
"title": "Create automations", "title": "Criar automações",
"description": "Add new automations." "description": "Adicionar novas automatizações."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Editar automações",
"description": "Change existing automations." "description": "Alterar as automatizações existentes."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Apagar automações",
"description": "Remove automations." "description": "Remover automações."
}, },
"run": { "run": {
"title": "Run automations", "title": "Executar automações",
"description": "Trigger an automation by hand." "description": "Acione uma automatização manualmente."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Automações",
"tabAutomations": "Automations", "tabAutomations": "Automações",
"tabRuns": "Runs", "tabRuns": "Corridas",
"tabChannels": "Canais", "tabChannels": "Canais",
"createAutomation": "New Automation", "createAutomation": "Nova Automação",
"backToAutomations": "Back to Automations", "backToAutomations": "Voltar para Automações",
"createTitle": "New Automation", "createTitle": "Nova Automação",
"editTitle": "Edit Automation", "editTitle": "Editar Automação",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Ainda não há automatizações. Crie uma para reagir a uma métrica, a um agendamento ou a um evento.",
"emptyRuns": "No runs yet.", "emptyRuns": "Ainda não houve qualquer corrida.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Os canais são configurados em Alertas.",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "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", "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", "nameRequired": "O nome é obrigatório",
"descriptionLabel": "Descrição", "descriptionLabel": "Descrição",
"descriptionPlaceholder": "Descrição opcional", "descriptionPlaceholder": "Descrição opcional",
"enabledLabel": "Ativado", "enabledLabel": "Ativado",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Se já estiver em execução",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "O que fazer quando este for novamente acionado antes da última execução terminar?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Salte a nova corrida",
"queue": "Wait and run after", "queue": "Espere e corra atrás.",
"allow": "Run both at once" "allow": "Execute ambos em simultâneo"
}, },
"save": "Guardar", "save": "Guardar",
"created": "Automation created", "created": "Automação criada",
"updated": "Automation saved", "updated": "A automação economizou",
"deleted": "Automation deleted", "deleted": "Automação excluída",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Apagar esta automação? O histórico de execução da mesma também será eliminado.",
"runNow": "Run now", "runNow": "Corra agora",
"testRun": "Test run", "testRun": "Teste de execução",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Executa cada passo, mas não toca em nada fora do Termix.",
"runStarted": "Run started", "runStarted": "A corrida começou.",
"runFinished": "Run finished: {{status}}", "runFinished": "Execução concluída: {{status}}",
"trigger": "Gatilho", "trigger": "Gatilho",
"steps": "Steps", "steps": "Passos",
"addStep": "Add step", "addStep": "Adicionar etapa",
"removeStep": "Remove step", "removeStep": "Remover etapa",
"moveUp": "Move up", "moveUp": "Suba",
"moveDown": "Move down", "moveDown": "Desça",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Ainda não há etapas. Adicione uma para descrever o que deve acontecer.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL do Webhook",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Esta mensagem será apresentada apenas uma vez. Guarde-a agora, pois não poderá ser recuperada posteriormente.",
"copy": "Copiar", "copy": "Copiar",
"copied": "Copiado", "copied": "Copiado",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Construtor",
"viewGraph": "Graph", "viewGraph": "Gráfico",
"lastRun": "Last run", "lastRun": "Última corrida",
"never": "Nunca", "never": "Nunca",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Saída", "stepOutput": "Saída",
"stepError": "Erro", "stepError": "Erro",
"dryRunBadge": "Test run", "dryRunBadge": "Teste de execução",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Host que desencadeia o ataque",
"host": "Specific host", "host": "hospedeiro específico",
"fleet": "Fleet", "fleet": "Frota",
"all": "Todos os hosts" "all": "Todos os hosts"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Limiar métrico",
"host_status": "Host goes up or down", "host_status": "O host sobe ou desce.",
"health_check": "Health check changes", "health_check": "Alterações na verificação de saúde",
"schedule": "On a schedule", "schedule": "De acordo com um cronograma",
"docker_event": "Container event", "docker_event": "Evento de contentor",
"internal_event": "Termix event", "internal_event": "Evento Termix",
"webhook": "Incoming webhook" "webhook": "Webhook de entrada"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Enviar um alerta",
"http": "Call a URL", "http": "Chamar um URL",
"run_snippet": "Run a snippet", "run_snippet": "Executar um excerto de código",
"run_command": "Run a command", "run_command": "Executar um comando",
"docker": "Control a container", "docker": "Controle um contentor",
"tunnel": "Control a tunnel", "tunnel": "Controle um túnel",
"wol": "Wake a host", "wol": "Acorde um anfitrião",
"wait": "Wait", "wait": "Espera",
"set_var": "Set a variable", "set_var": "Defina uma variável",
"if": "If / otherwise", "if": "Se/caso contrário",
"run_automation": "Run another automation", "run_automation": "Execute outra automatização",
"stop": "Stop" "stop": "Stop"
}, },
"statuses": { "statuses": {
"running": "Em execução", "running": "Em execução",
"success": "Sucesso", "success": "Sucesso",
"failed": "Falhou", "failed": "Falhou",
"timeout": "Timed out", "timeout": "Tempo limite excedido",
"skipped": "Skipped", "skipped": "Ignorado",
"cancelled": "Cancelled" "cancelled": "Cancelado"
}, },
"fields": { "fields": {
"host": "Servidor", "host": "Servidor",
"metric": "Métrica", "metric": "Métrica",
"mount": "Mount point", "mount": "Ponto de montagem",
"operator": "Is", "operator": "É",
"value": "Value", "value": "Valor",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Sustentado por (segundos)",
"cooldown": "Período de arrefecimento (minutos)", "cooldown": "Período de arrefecimento (minutos)",
"cron": "Cron expression", "cron": "Expressão de Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "A cada (segundos)",
"timezone": "Time zone", "timezone": "Fuso horário",
"timezoneServer": "Server time", "timezoneServer": "Hora do servidor",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Os tempos cron são lidos nesta zona. Não se aplica a agendamentos por intervalo.",
"container": "Container", "container": "Recipiente",
"command": "Comando", "command": "Comando",
"url": "URL", "url": "URL",
"method": "Method", "method": "Método",
"body": "Body", "body": "Corpo",
"channels": "Also send to", "channels": "Enviar também para",
"title": "Título", "title": "Título",
"message": "Message", "message": "Mensagem",
"snippet": "Snippet", "snippet": "Trecho",
"seconds": "Seconds", "seconds": "Segundos",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Valor a verificar",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Compare com",
"variableName": "Variable name", "variableName": "Nome da variável",
"variableValue": "Value", "variableValue": "Valor",
"elevated": "Run with sudo", "elevated": "Executar com sudo",
"onError": "If this fails", "onError": "Se isso falhar",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Permitir endereços de rede local",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "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": { "onError": {
"stop": "Stop the run", "stop": "Pare a corrida",
"continue": "Carry on" "continue": "Continuar"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Necessita de {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Esta automatização será ignorada até que o recurso necessário esteja novamente disponível.",
"offBadge": "Desativado", "offBadge": "Desativado",
"docsLink": "Ver docs", "docsLink": "Ver docs",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}s atrás",
"minutes": "há {{count}} min", "minutes": "há {{count}} min",
"hours": "há {{count}} h", "hours": "há {{count}} h",
"days": "há {{count}} d" "days": "há {{count}} d"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Automações"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Automações",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Execute automaticamente os passos quando algo acontece e receba notificações."
}, },
"maintenance": { "maintenance": {
"title": "Manutenção", "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.", "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": "You do not have permission to view maintenance.", "denied": "Não tem permissão para visualizar a manutenção.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Este host foi partilhado consigo. Apenas o proprietário pode alterar as definições de manutenção.",
"failed": "Maintenance could not be updated.", "failed": "A atualização de manutenção não pôde ser concluída.",
"active": "Maintenance active", "active": "Manutenção ativa",
"estimated": "Estimated completion", "estimated": "Conclusão prevista",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "O orçamento não encerra a manutenção. Encerre-o explicitamente quando o trabalho estiver concluído.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Terminar a manutenção e retomar as automatizações acionadas por eventos para este host?",
"confirmEnd": "Confirm end", "confirmEnd": "Confirme o fim",
"cancel": "Cancelar", "cancel": "Cancelar",
"end": "End maintenance", "end": "Manutenção final",
"action": "Ação", "action": "Ação",
"startNow": "Start now", "startNow": "Comece agora",
"schedule": "Schedule for later", "schedule": "Agendamento para mais tarde",
"reason": "Reason", "reason": "Razão",
"startUtc": "First start (UTC)", "startUtc": "Primeiro arranque (UTC)",
"repeat": "Repeat", "repeat": "Repetir",
"once": "Once", "once": "Uma vez",
"weekly": "Weekly", "weekly": "Semanalmente",
"monthly": "Monthly", "monthly": "Mensal",
"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.", "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": "Estimated duration (minutes)", "duration": "Duração estimada (minutos)",
"grace": "Grace period (minutes)", "grace": "Período de tolerância (minutos)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Notificar uma única vez se o utilizador ainda estiver offline após o período estimado e de tolerância.",
"addSchedule": "Add schedule", "addSchedule": "Adicionar horário",
"schedules": "Schedules", "schedules": "Horários",
"noSchedules": "No maintenance schedules.", "noSchedules": "Sem plano de manutenção.",
"completed": "Already started", "completed": "Já começou",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} minuto",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} minutos",
"remove": "Remove schedule", "remove": "Remover agendamento",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "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": "Loading maintenance status…" "loading": "A carregar o estado de manutenção…"
} }
} }
+136 -136
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Просмотреть автоматизации",
"description": "See the automations and their history." "description": "Ознакомьтесь с автоматизацией и её историей."
}, },
"create": { "create": {
"title": "Create automations", "title": "Создавайте автоматизации",
"description": "Add new automations." "description": "Добавить новые автоматизации."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Редактировать автоматизацию",
"description": "Change existing automations." "description": "Измените существующие автоматизации."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Удалить автоматизации",
"description": "Remove automations." "description": "Удалите автоматизацию."
}, },
"run": { "run": {
"title": "Run automations", "title": "Запуск автоматизации",
"description": "Trigger an automation by hand." "description": "Запустите автоматизацию вручную."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Автоматизация",
"tabAutomations": "Automations", "tabAutomations": "Автоматизация",
"tabRuns": "Runs", "tabRuns": "Беги",
"tabChannels": "Каналы", "tabChannels": "Каналы",
"createAutomation": "New Automation", "createAutomation": "Новая автоматизация",
"backToAutomations": "Back to Automations", "backToAutomations": "Назад к автоматизации",
"createTitle": "New Automation", "createTitle": "Новая автоматизация",
"editTitle": "Edit Automation", "editTitle": "Редактировать автоматизацию",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Автоматизации пока нет. Создайте автоматизацию, которая будет реагировать на показатель, расписание или событие.",
"emptyRuns": "No runs yet.", "emptyRuns": "Пока ни одного заезда.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Каналы настраиваются в разделе «Оповещения».",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Уведомление всегда приходит в ваш почтовый ящик. Добавьте каналы в разделе «Уведомления», чтобы оно также отправлялось в другие места.",
"nameLabel": "Название", "nameLabel": "Название",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "Например, очищать каталог /data, когда он заполняется.",
"nameRequired": "Имя обязательно", "nameRequired": "Имя обязательно",
"descriptionLabel": "Описание", "descriptionLabel": "Описание",
"descriptionPlaceholder": "Необязательное описание", "descriptionPlaceholder": "Необязательное описание",
"enabledLabel": "Включено", "enabledLabel": "Включено",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Если он уже запущен",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Что делать, если это снова произойдет до завершения последнего запуска?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Пропустите новый запуск",
"queue": "Wait and run after", "queue": "Подожди и беги после",
"allow": "Run both at once" "allow": "Запустите оба одновременно."
}, },
"save": "Сохранить", "save": "Сохранить",
"created": "Automation created", "created": "Создана автоматизация",
"updated": "Automation saved", "updated": "Автоматизация спасла",
"deleted": "Automation deleted", "deleted": "Автоматизация удалена",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Удалить эту автоматизацию? История её выполнения также будет удалена.",
"runNow": "Run now", "runNow": "Запустите сейчас",
"testRun": "Test run", "testRun": "Тестовый запуск",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Программа выполняет каждый этап, но не затрагивает ничего за пределами Termix.",
"runStarted": "Run started", "runStarted": "Запуск начался",
"runFinished": "Run finished: {{status}}", "runFinished": "Выполнение завершено: {{status}}",
"trigger": "Триггер", "trigger": "Триггер",
"steps": "Steps", "steps": "Шаги",
"addStep": "Add step", "addStep": "Добавить шаг",
"removeStep": "Remove step", "removeStep": "Удалить шаг",
"moveUp": "Move up", "moveUp": "Поднимитесь выше",
"moveDown": "Move down", "moveDown": "Спуститесь вниз",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Шагов пока нет. Добавьте один, чтобы указать, что должно произойти.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL веб-перехватчика",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Эта информация отображается только один раз. Сохраните её сейчас, позже восстановить её будет невозможно.",
"copy": "Копировать", "copy": "Копировать",
"copied": "Скопировано", "copied": "Скопировано",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Строитель",
"viewGraph": "Graph", "viewGraph": "График",
"lastRun": "Last run", "lastRun": "Последний забег",
"never": "Никогда", "never": "Никогда",
"duration": "{{seconds}}s", "duration": "{{seconds}}с",
"stepOutput": "Вывод", "stepOutput": "Вывод",
"stepError": "Ошибка", "stepError": "Ошибка",
"dryRunBadge": "Test run", "dryRunBadge": "Тестовый запуск",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Запуск хоста",
"host": "Specific host", "host": "Конкретный хост",
"fleet": "Fleet", "fleet": "Флот",
"all": "Все хосты" "all": "Все хосты"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Пороговое значение метрики",
"host_status": "Host goes up or down", "host_status": "Хост переходит в режим повышения или понижения.",
"health_check": "Health check changes", "health_check": "Изменения в результатах медицинского осмотра",
"schedule": "On a schedule", "schedule": "По расписанию",
"docker_event": "Container event", "docker_event": "Событие контейнера",
"internal_event": "Termix event", "internal_event": "Мероприятие Termix",
"webhook": "Incoming webhook" "webhook": "Входящий веб-хук"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Отправить оповещение",
"http": "Call a URL", "http": "Вызов URL-адреса",
"run_snippet": "Run a snippet", "run_snippet": "Запустить фрагмент кода",
"run_command": "Run a command", "run_command": "Выполните команду",
"docker": "Control a container", "docker": "Управлять контейнером",
"tunnel": "Control a tunnel", "tunnel": "Контролируемый туннель",
"wol": "Wake a host", "wol": "Разбудить хозяина",
"wait": "Wait", "wait": "Ждать",
"set_var": "Set a variable", "set_var": "Задайте переменную",
"if": "If / otherwise", "if": "Если / в противном случае",
"run_automation": "Run another automation", "run_automation": "Запустите еще одну автоматизацию",
"stop": "Остановить" "stop": "Остановить"
}, },
"statuses": { "statuses": {
"running": "Запущен", "running": "Запущен",
"success": "Успех", "success": "Успех",
"failed": "Ошибка", "failed": "Ошибка",
"timeout": "Timed out", "timeout": "Время истекло",
"skipped": "Skipped", "skipped": "Пропущено",
"cancelled": "Cancelled" "cancelled": "Отменено"
}, },
"fields": { "fields": {
"host": "Хост", "host": "Хост",
"metric": "Метрика", "metric": "Метрика",
"mount": "Mount point", "mount": "Маунт-Пойнт",
"operator": "Is", "operator": "Является",
"value": "Value", "value": "Ценить",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Длительность (секунды)",
"cooldown": "Задержка повторения (минут)", "cooldown": "Задержка повторения (минут)",
"cron": "Cron expression", "cron": "Выражение Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Каждые (секунды)",
"timezone": "Time zone", "timezone": "Часовой пояс",
"timezoneServer": "Server time", "timezoneServer": "Время сервера",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "В этой зоне считываются временные параметры Cron. Это не относится к интервальным расписаниям.",
"container": "Container", "container": "Контейнер",
"command": "Команда", "command": "Команда",
"url": "URL", "url": "URL",
"method": "Method", "method": "Метод",
"body": "Body", "body": "Тело",
"channels": "Also send to", "channels": "Также отправить на",
"title": "Название", "title": "Название",
"message": "Message", "message": "Сообщение",
"snippet": "Snippet", "snippet": "Фрагмент",
"seconds": "Seconds", "seconds": "Секунды",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Значение для проверки",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Сравните с",
"variableName": "Variable name", "variableName": "Имя переменной",
"variableValue": "Value", "variableValue": "Ценить",
"elevated": "Run with sudo", "elevated": "Запустить с правами суперпользователя (sudo)",
"onError": "If this fails", "onError": "Если это не поможет",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Разрешить использование локальных сетевых адресов",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "Необходим для самостоятельного размещения сервиса в вашей локальной сети. По умолчанию отключен, чтобы предотвратить запросы к внутренним адресам."
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "Остановить бег",
"continue": "Carry on" "continue": "Продолжать"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Потребности {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Эта автоматизация пропускается до тех пор, пока необходимая функция снова не станет доступна.",
"offBadge": "Отключено", "offBadge": "Отключено",
"docsLink": "Документация", "docsLink": "Документация",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}s назад",
"minutes": "{{count}}м назад", "minutes": "{{count}}м назад",
"hours": "{{count}}ч назад", "hours": "{{count}}ч назад",
"days": "{{count}}д назад" "days": "{{count}}д назад"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Автоматизация"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Автоматизация",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Запускайте шаги автоматически при возникновении событий и получайте уведомления."
}, },
"maintenance": { "maintenance": {
"title": "Обслуживание", "title": "Обслуживание",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "description": "Приостановите автоматизацию проверки состояния хоста, работоспособности, метрик, контейнеров и разрыва туннелей на время выполнения работ. Мониторинг, ручные запуски и запланированные автоматизации продолжатся.",
"denied": "You do not have permission to view maintenance.", "denied": "У вас нет разрешения на просмотр информации о техническом обслуживании.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Этот хостинг был предоставлен вам. Только его владелец может вносить изменения в настройки технического обслуживания.",
"failed": "Maintenance could not be updated.", "failed": "Обновление информации о техническом обслуживании не удалось.",
"active": "Maintenance active", "active": "Техническое обслуживание активно",
"estimated": "Estimated completion", "estimated": "Предполагаемая дата завершения",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Смета не завершает техническое обслуживание. Завершайте его, когда работы будут полностью выполнены.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Завершить автоматизацию технического обслуживания и возобновить работу для этого хоста?",
"confirmEnd": "Confirm end", "confirmEnd": "Подтвердить конец",
"cancel": "Отмена", "cancel": "Отмена",
"end": "End maintenance", "end": "Завершение технического обслуживания",
"action": "Действие", "action": "Действие",
"startNow": "Start now", "startNow": "Начните прямо сейчас",
"schedule": "Schedule for later", "schedule": "Запланируйте на более позднее время",
"reason": "Reason", "reason": "Причина",
"startUtc": "First start (UTC)", "startUtc": "Первый запуск (UTC)",
"repeat": "Repeat", "repeat": "Повторить",
"once": "Once", "once": "Один раз",
"weekly": "Weekly", "weekly": "Еженедельно",
"monthly": "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.", "utcHelp": "В расписаниях используется UTC в течение всего года. В месячных расписаниях пропускаются месяцы, в которых отсутствует выбранный день. Запланированные временные окна не могут перекрываться; работы по техническому обслуживанию, выполняемые в течение более поздних временных окон, продолжаются и в последующие.",
"duration": "Estimated duration (minutes)", "duration": "Ориентировочная продолжительность (в минутах)",
"grace": "Grace period (minutes)", "grace": "Льготный период (в минутах)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Если после истечения расчетного периода и льготного периода связь по-прежнему отсутствует, сообщите об этом один раз.",
"addSchedule": "Add schedule", "addSchedule": "Добавить расписание",
"schedules": "Schedules", "schedules": "Расписания",
"noSchedules": "No maintenance schedules.", "noSchedules": "График технического обслуживания отсутствует.",
"completed": "Already started", "completed": "Уже началось",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} минут",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} минут",
"remove": "Remove schedule", "remove": "Удалить расписание",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Не удалось обновить статус технического обслуживания. Изменения отключены до тех пор, пока не будет загружена соответствующая информация.",
"loading": "Loading maintenance status…" "loading": "Статус технического обслуживания загрузки…"
} }
} }
+167 -167
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Прикажи аутоматизације",
"description": "See the automations and their history." "description": "Погледајте аутоматизације и њихову историју."
}, },
"create": { "create": {
"title": "Create automations", "title": "Креирајте аутоматизације",
"description": "Add new automations." "description": "Додајте нове аутоматизације."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Уреди аутоматизације",
"description": "Change existing automations." "description": "Промените постојеће аутоматизације."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Обриши аутоматизације",
"description": "Remove automations." "description": "Уклоните аутоматизације."
}, },
"run": { "run": {
"title": "Run automations", "title": "Покрени аутоматизације",
"description": "Trigger an automation by hand." "description": "Ручно покрените аутоматизацију."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Аутоматизације",
"tabAutomations": "Automations", "tabAutomations": "Аутоматизације",
"tabRuns": "Runs", "tabRuns": "Трчи",
"tabChannels": "Channels", "tabChannels": "Канали",
"createAutomation": "New Automation", "createAutomation": "Нова аутоматизација",
"backToAutomations": "Back to Automations", "backToAutomations": "Назад на аутоматизацију",
"createTitle": "New Automation", "createTitle": "Нова аутоматизација",
"editTitle": "Edit Automation", "editTitle": "Уреди аутоматизацију",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Још увек нема аутоматизација. Направите једну да бисте реаговали на метрику, распоред или догађај.",
"emptyRuns": "No runs yet.", "emptyRuns": "Још нема трчања.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Канали се подешавају у Обавештењима",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Обавештење увек иде у ваше пријемно сандуче. Додајте канале у Обавештења да бисте га послали и негде другде.",
"nameLabel": "Name", "nameLabel": "Име",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "нпр. Очисти /подаци када се попуне",
"nameRequired": "Name is required", "nameRequired": "Име је обавезно",
"descriptionLabel": "Description", "descriptionLabel": "Опис",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Опциони опис",
"enabledLabel": "Enabled", "enabledLabel": "Омогућено",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Ако већ ради",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Шта урадити када се ово поново покрене пре него што се заврши последње покретање.",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Прескочи нову вожњу",
"queue": "Wait and run after", "queue": "Чекај и трчи за њим",
"allow": "Run both at once" "allow": "Покрени оба одједном"
}, },
"save": "Save", "save": "Сачувај",
"created": "Automation created", "created": "Аутоматизација је креирана",
"updated": "Automation saved", "updated": "Аутоматизација је сачувана",
"deleted": "Automation deleted", "deleted": "Аутоматизација је обрисана",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Да ли желите да обришете ову аутоматизацију? Њена историја покретања је такође обрисана.",
"runNow": "Run now", "runNow": "Трчи сада",
"testRun": "Test run", "testRun": "Тестирање",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Покреће сваки корак, али не додирује ништа изван Термикса.",
"runStarted": "Run started", "runStarted": "Трчање је започето",
"runFinished": "Run finished: {{status}}", "runFinished": "Трка завршена: {{status}}",
"trigger": "Trigger", "trigger": "Окидач",
"steps": "Steps", "steps": "Кораци",
"addStep": "Add step", "addStep": "Додај корак",
"removeStep": "Remove step", "removeStep": "Уклони корак",
"moveUp": "Move up", "moveUp": "Помери горе",
"moveDown": "Move down", "moveDown": "Помери надоле",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Још нема корака. Додајте један да бисте рекли шта треба да се деси.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL вебхука",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Ово се приказује једном. Сачувајте то сада, не можете то касније преузети.",
"copy": "Copy", "copy": "Копија",
"copied": "Copied", "copied": "Копирано",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Градитељ",
"viewGraph": "Graph", "viewGraph": "График",
"lastRun": "Last run", "lastRun": "Последње трчање",
"never": "Never", "never": "Никад",
"duration": "{{seconds}}s", "duration": "{{seconds}}с",
"stepOutput": "Output", "stepOutput": "Излаз",
"stepError": "Error", "stepError": "Грешка",
"dryRunBadge": "Test run", "dryRunBadge": "Тестирање",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Покретач хоста",
"host": "Specific host", "host": "Одређени домаћин",
"fleet": "Fleet", "fleet": "Флота",
"all": "All hosts" "all": "Сви домаћини"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Праг метрике",
"host_status": "Host goes up or down", "host_status": "Домаћин иде горе или доле",
"health_check": "Health check changes", "health_check": "Промене у провери исправности",
"schedule": "On a schedule", "schedule": "По распореду",
"docker_event": "Container event", "docker_event": "Догађај контејнера",
"internal_event": "Termix event", "internal_event": "Термикс догађај",
"webhook": "Incoming webhook" "webhook": "Долазни вебхук"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Пошаљи упозорење",
"http": "Call a URL", "http": "Позовите URL",
"run_snippet": "Run a snippet", "run_snippet": "Покрени исечак",
"run_command": "Run a command", "run_command": "Покрените команду",
"docker": "Control a container", "docker": "Контролишите контејнер",
"tunnel": "Control a tunnel", "tunnel": "Контролишите тунел",
"wol": "Wake a host", "wol": "Пробудите домаћина",
"wait": "Wait", "wait": "Чекај",
"set_var": "Set a variable", "set_var": "Поставите променљиву",
"if": "If / otherwise", "if": "Ако / иначе",
"run_automation": "Run another automation", "run_automation": "Покрените још једну аутоматизацију",
"stop": "Stop" "stop": "Заустави"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "Трчање",
"success": "Success", "success": "Успех",
"failed": "Failed", "failed": "Неуспешно",
"timeout": "Timed out", "timeout": "Временско ограничење је истекло",
"skipped": "Skipped", "skipped": "Прескочено",
"cancelled": "Cancelled" "cancelled": "Отказано"
}, },
"fields": { "fields": {
"host": "Host", "host": "Домаћин",
"metric": "Metric", "metric": "Метрика",
"mount": "Mount point", "mount": "Тачка монтирања",
"operator": "Is", "operator": "Је",
"value": "Value", "value": "Вредност",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Задржано (секунде)",
"cooldown": "Cooldown (minutes)", "cooldown": "Хлађење (минути)",
"cron": "Cron expression", "cron": "Cron израз",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Сваких (секунде)",
"timezone": "Time zone", "timezone": "Временска зона",
"timezoneServer": "Server time", "timezoneServer": "Време сервера",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Cron времена се очитавају у овој зони. Не односи се на интервалне распореде.",
"container": "Container", "container": "Контејнер",
"command": "Command", "command": "Команда",
"url": "URL", "url": "URL",
"method": "Method", "method": "Метод",
"body": "Body", "body": "Тело",
"channels": "Also send to", "channels": "Такође пошаљите на",
"title": "Title", "title": "Наслов",
"message": "Message", "message": "Порука",
"snippet": "Snippet", "snippet": "Исечак",
"seconds": "Seconds", "seconds": "Секунде",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Вредност за проверу",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Упореди са",
"variableName": "Variable name", "variableName": "Назив променљиве",
"variableValue": "Value", "variableValue": "Вредност",
"elevated": "Run with sudo", "elevated": "Покрени са sudo-ом",
"onError": "If this fails", "onError": "Ако ово не успе",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Дозволи локалне мрежне адресе",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "Потребно за самостално хостовану услугу на вашој локалној мрежи. Подразумевано искључено да би се спречили захтеви ка интерним адресама."
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "Заустави трчање",
"continue": "Carry on" "continue": "Настави"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Потребно је {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Ова аутоматизација се прескаче док функција која јој је потребна поново не буде доступна.",
"offBadge": "Off", "offBadge": "Искључено",
"docsLink": "View docs", "docsLink": "Прикажи документе",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "Пре {{count}}сек",
"minutes": "{{count}}m ago", "minutes": "{{count}}пре мин",
"hours": "{{count}}h ago", "hours": "{{count}}пре сати",
"days": "{{count}}d ago" "days": "{{count}}пре д"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Аутоматизације"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Аутоматизације",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Аутоматски покрените кораке када се нешто деси и добијте обавештења."
}, },
"maintenance": { "maintenance": {
"title": "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.", "description": "Паузирајте аутоматизације статуса хоста, здравља, метрике, контејнера и тунелског искључивања док је рад у току. Праћење, ручна покретања и заказане аутоматизације се настављају.",
"denied": "You do not have permission to view maintenance.", "denied": "Немате дозволу за преглед одржавања.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Овај хост је дељен са вама. Само његов власник може да промени одржавање.",
"failed": "Maintenance could not be updated.", "failed": "Ажурирање одржавања није успело.",
"active": "Maintenance active", "active": "Одржавање је активно",
"estimated": "Estimated completion", "estimated": "Процењени завршетак",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Процена не завршава одржавање. Завршите га експлицитно када је посао завршен.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Да ли желите да завршите одржавање и наставите аутоматизације покренуте догађајима за овог хоста?",
"confirmEnd": "Confirm end", "confirmEnd": "Потврди крај",
"cancel": "Cancel", "cancel": "Откажи",
"end": "End maintenance", "end": "Заврши одржавање",
"action": "Action", "action": "Акција",
"startNow": "Start now", "startNow": "Почни сада",
"schedule": "Schedule for later", "schedule": "Закажите за касније",
"reason": "Reason", "reason": "Разлог",
"startUtc": "First start (UTC)", "startUtc": "Први почетак (UTC)",
"repeat": "Repeat", "repeat": "Понови",
"once": "Once", "once": "Једном",
"weekly": "Weekly", "weekly": "Недељно",
"monthly": "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.", "utcHelp": "Распореди користе UTC време током целе године. Месечни распореди прескачу месеце без изабраног дана. Планирани прозори се не могу преклапати; преоптерећено одржавање се наставља и у каснијим прозорима.",
"duration": "Estimated duration (minutes)", "duration": "Процењено трајање (минути)",
"grace": "Grace period (minutes)", "grace": "Грејс период (минути)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Обавести ме једном ако је и даље ван мреже након процене плус грејс период",
"addSchedule": "Add schedule", "addSchedule": "Додај распоред",
"schedules": "Schedules", "schedules": "Распореди",
"noSchedules": "No maintenance schedules.", "noSchedules": "Нема распореда одржавања.",
"completed": "Already started", "completed": "Већ је почело",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} минут",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} минута",
"remove": "Remove schedule", "remove": "Уклони распоред",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Није могуће освежити статус одржавања. Промене су онемогућене док се не учита.",
"loading": "Loading maintenance status…" "loading": "Учитавање статуса одржавања…"
} }
} }
+166 -166
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Visa automatiseringar",
"description": "See the automations and their history." "description": "Se automatiseringarna och deras historik."
}, },
"create": { "create": {
"title": "Create automations", "title": "Skapa automatiseringar",
"description": "Add new automations." "description": "Lägg till nya automatiseringar."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Redigera automatiseringar",
"description": "Change existing automations." "description": "Ändra befintliga automatiseringar."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Ta bort automatiseringar",
"description": "Remove automations." "description": "Ta bort automatiseringar."
}, },
"run": { "run": {
"title": "Run automations", "title": "Kör automatiseringar",
"description": "Trigger an automation by hand." "description": "Utlös en automatisering manuellt."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Automatiseringar",
"tabAutomations": "Automations", "tabAutomations": "Automatiseringar",
"tabRuns": "Runs", "tabRuns": "Löpningar",
"tabChannels": "Channels", "tabChannels": "Kanaler",
"createAutomation": "New Automation", "createAutomation": "Ny automatisering",
"backToAutomations": "Back to Automations", "backToAutomations": "Tillbaka till Automatiseringar",
"createTitle": "New Automation", "createTitle": "Ny automatisering",
"editTitle": "Edit Automation", "editTitle": "Redigera automatisering",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Inga automatiseringar ännu. Skapa en för att reagera på ett mätvärde, ett schema eller en händelse.",
"emptyRuns": "No runs yet.", "emptyRuns": "Inga löpningar än.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Kanaler konfigureras i aviseringar",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Aviseringen skickas alltid till din inkorg. Lägg till kanaler i Aviseringar för att även skicka den någon annanstans.",
"nameLabel": "Name", "nameLabel": "Namn",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "t.ex. Rensa upp /data när den fylls",
"nameRequired": "Name is required", "nameRequired": "Namn krävs",
"descriptionLabel": "Description", "descriptionLabel": "Beskrivning",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Valfri beskrivning",
"enabledLabel": "Enabled", "enabledLabel": "Aktiverad",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Om den redan är igång",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Vad man ska göra när detta utlöses igen innan den sista körningen är klar.",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Hoppa över den nya körningen",
"queue": "Wait and run after", "queue": "Vänta och spring efter",
"allow": "Run both at once" "allow": "Kör båda samtidigt"
}, },
"save": "Save", "save": "Spara",
"created": "Automation created", "created": "Automatisering skapad",
"updated": "Automation saved", "updated": "Automatisering sparad",
"deleted": "Automation deleted", "deleted": "Automatisering borttagen",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Vill du ta bort den här automatiseringen? Dess körhistorik raderas också.",
"runNow": "Run now", "runNow": "Kör nu",
"testRun": "Test run", "testRun": "Testkörning",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Kör varje steg men rör ingenting utanför Termix.",
"runStarted": "Run started", "runStarted": "Löpningen har startat",
"runFinished": "Run finished: {{status}}", "runFinished": "Körning avslutad: {{status}}",
"trigger": "Trigger", "trigger": "Utlösare",
"steps": "Steps", "steps": "Steg",
"addStep": "Add step", "addStep": "Lägg till steg",
"removeStep": "Remove step", "removeStep": "Ta bort steg",
"moveUp": "Move up", "moveUp": "Flytta upp",
"moveDown": "Move down", "moveDown": "Flytta nedåt",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Inga steg ännu. Lägg till ett för att ange vad som ska hända.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "Webhook-URL",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Detta visas en gång. Spara det nu, det kan inte hämtas senare.",
"copy": "Copy", "copy": "Kopiera",
"copied": "Copied", "copied": "Kopierad",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Byggmästare",
"viewGraph": "Graph", "viewGraph": "Graf",
"lastRun": "Last run", "lastRun": "Sista körningen",
"never": "Never", "never": "Aldrig",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "Produktion",
"stepError": "Error", "stepError": "Fel",
"dryRunBadge": "Test run", "dryRunBadge": "Testkörning",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Utlösande värd",
"host": "Specific host", "host": "Specifik värd",
"fleet": "Fleet", "fleet": "Flotta",
"all": "All hosts" "all": "Alla värdar"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Metrisk tröskelvärde",
"host_status": "Host goes up or down", "host_status": "Värden går upp eller ner",
"health_check": "Health check changes", "health_check": "Ändringar i hälsokontrollen",
"schedule": "On a schedule", "schedule": "Enligt ett schema",
"docker_event": "Container event", "docker_event": "Containerhändelse",
"internal_event": "Termix event", "internal_event": "Termix-evenemang",
"webhook": "Incoming webhook" "webhook": "Inkommande webhook"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Skicka en avisering",
"http": "Call a URL", "http": "Anropa en URL",
"run_snippet": "Run a snippet", "run_snippet": "Kör ett utdrag",
"run_command": "Run a command", "run_command": "Kör ett kommando",
"docker": "Control a container", "docker": "Styr en container",
"tunnel": "Control a tunnel", "tunnel": "Kontrollera en tunnel",
"wol": "Wake a host", "wol": "Väck en värd",
"wait": "Wait", "wait": "Vänta",
"set_var": "Set a variable", "set_var": "Ställ in en variabel",
"if": "If / otherwise", "if": "Om / annars",
"run_automation": "Run another automation", "run_automation": "Kör en annan automatisering",
"stop": "Stop" "stop": "Stopp"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "Spring",
"success": "Success", "success": "Framgång",
"failed": "Failed", "failed": "Misslyckades",
"timeout": "Timed out", "timeout": "Timeout",
"skipped": "Skipped", "skipped": "Hoppade över",
"cancelled": "Cancelled" "cancelled": "Avbruten"
}, },
"fields": { "fields": {
"host": "Host", "host": "Värd",
"metric": "Metric", "metric": "Metrisk",
"mount": "Mount point", "mount": "Monteringspunkt",
"operator": "Is", "operator": "Är",
"value": "Value", "value": "Värde",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Uthållen i (sekunder)",
"cooldown": "Cooldown (minutes)", "cooldown": "Nedkylningstid (minuter)",
"cron": "Cron expression", "cron": "Cron-uttryck",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Varje (sekund)",
"timezone": "Time zone", "timezone": "Tidszon",
"timezoneServer": "Server time", "timezoneServer": "Servertid",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Cron-tider läses i denna zon. Gäller inte för intervallscheman.",
"container": "Container", "container": "Behållare",
"command": "Command", "command": "Kommando",
"url": "URL", "url": "URL",
"method": "Method", "method": "Metod",
"body": "Body", "body": "Kropp",
"channels": "Also send to", "channels": "Skicka även till",
"title": "Title", "title": "Titel",
"message": "Message", "message": "Meddelande",
"snippet": "Snippet", "snippet": "Utdrag",
"seconds": "Seconds", "seconds": "Sekunder",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Värde att kontrollera",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Jämför mot",
"variableName": "Variable name", "variableName": "Variabelnamn",
"variableValue": "Value", "variableValue": "Värde",
"elevated": "Run with sudo", "elevated": "Kör med sudo",
"onError": "If this fails", "onError": "Om detta misslyckas",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Tillåt lokala nätverksadresser",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "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": { "onError": {
"stop": "Stop the run", "stop": "Stoppa löpningen",
"continue": "Carry on" "continue": "Fortsätta"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Behöver {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Denna automatisering hoppas över tills den funktion den behöver är tillgänglig igen.",
"offBadge": "Off", "offBadge": "Av",
"docsLink": "View docs", "docsLink": "Visa dokument",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}sekunder sedan",
"minutes": "{{count}}m ago", "minutes": "för {{count}}minuter sedan",
"hours": "{{count}}h ago", "hours": "för {{count}}timmar sedan",
"days": "{{count}}d ago" "days": "för {{count}}dagar sedan"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Automatiseringar"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Automatiseringar",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Kör steg automatiskt när något händer och få aviseringar."
}, },
"maintenance": { "maintenance": {
"title": "Maintenance", "title": "Underhåll",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "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": "You do not have permission to view maintenance.", "denied": "Du har inte behörighet att visa underhåll.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Denna värden delades med dig. Endast dess ägare kan ändra underhållet.",
"failed": "Maintenance could not be updated.", "failed": "Underhållet kunde inte uppdateras.",
"active": "Maintenance active", "active": "Underhåll aktivt",
"estimated": "Estimated completion", "estimated": "Beräknad färdigställande",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Uppskattningen avslutar inte underhållet. Avsluta det uttryckligen när arbetet är slutfört.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Vill du avsluta underhållet och återuppta händelseutlösta automatiseringar för den här värden?",
"confirmEnd": "Confirm end", "confirmEnd": "Bekräfta slutet",
"cancel": "Cancel", "cancel": "Avboka",
"end": "End maintenance", "end": "Avsluta underhåll",
"action": "Action", "action": "Handling",
"startNow": "Start now", "startNow": "Börja nu",
"schedule": "Schedule for later", "schedule": "Schema för senare",
"reason": "Reason", "reason": "Resonera",
"startUtc": "First start (UTC)", "startUtc": "Första start (UTC)",
"repeat": "Repeat", "repeat": "Upprepa",
"once": "Once", "once": "En gång",
"weekly": "Weekly", "weekly": "Varje vecka",
"monthly": "Monthly", "monthly": "Månatlig",
"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.", "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": "Estimated duration (minutes)", "duration": "Beräknad varaktighet (minuter)",
"grace": "Grace period (minutes)", "grace": "Respitperiod (minuter)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Meddela en gång om du fortfarande är offline efter uppskattningen plus respitperioden",
"addSchedule": "Add schedule", "addSchedule": "Lägg till schema",
"schedules": "Schedules", "schedules": "Scheman",
"noSchedules": "No maintenance schedules.", "noSchedules": "Inga underhållsscheman.",
"completed": "Already started", "completed": "Redan påbörjat",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} minut",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} minuter",
"remove": "Remove schedule", "remove": "Ta bort schema",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Kunde inte uppdatera underhållsstatusen. Ändringar är inaktiverade tills den kan läsas in.",
"loading": "Loading maintenance status…" "loading": "Laddar underhållsstatus…"
} }
} }
+167 -167
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "ดูระบบอัตโนมัติ",
"description": "See the automations and their history." "description": "ดูการทำงานอัตโนมัติและประวัติการทำงาน"
}, },
"create": { "create": {
"title": "Create automations", "title": "สร้างระบบอัตโนมัติ",
"description": "Add new automations." "description": "เพิ่มระบบอัตโนมัติใหม่"
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "แก้ไขระบบอัตโนมัติ",
"description": "Change existing automations." "description": "ปรับเปลี่ยนระบบอัตโนมัติที่มีอยู่เดิม"
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "ลบระบบอัตโนมัติ",
"description": "Remove automations." "description": "ลบระบบอัตโนมัติออก"
}, },
"run": { "run": {
"title": "Run automations", "title": "เรียกใช้ระบบอัตโนมัติ",
"description": "Trigger an automation by hand." "description": "สั่งการให้ระบบอัตโนมัติทำงานด้วยตนเอง"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "ระบบอัตโนมัติ",
"tabAutomations": "Automations", "tabAutomations": "ระบบอัตโนมัติ",
"tabRuns": "Runs", "tabRuns": "วิ่ง",
"tabChannels": "Channels", "tabChannels": "ช่องต่างๆ",
"createAutomation": "New Automation", "createAutomation": "ระบบอัตโนมัติใหม่",
"backToAutomations": "Back to Automations", "backToAutomations": "กลับสู่ระบบอัตโนมัติ",
"createTitle": "New Automation", "createTitle": "ระบบอัตโนมัติใหม่",
"editTitle": "Edit Automation", "editTitle": "แก้ไขอัตโนมัติ",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "ยังไม่มีระบบอัตโนมัติใดๆ สร้างระบบอัตโนมัติเพื่อตอบสนองต่อตัวชี้วัด กำหนดการ หรือเหตุการณ์ต่างๆ",
"emptyRuns": "No runs yet.", "emptyRuns": "ยังไม่มีการทดลองใดๆ เกิดขึ้น",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "ช่องทางต่างๆ ถูกตั้งค่าไว้ในระบบแจ้งเตือน",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "การแจ้งเตือนจะส่งไปยังกล่องจดหมายเข้าของคุณเสมอ เพิ่มช่องทางการแจ้งเตือนเพื่อส่งไปยังที่อื่นเพิ่มเติมได้",
"nameLabel": "Name", "nameLabel": "ชื่อ",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "เช่น ล้างข้อมูลใน /data เมื่อเต็ม",
"nameRequired": "Name is required", "nameRequired": "ต้องระบุชื่อ",
"descriptionLabel": "Description", "descriptionLabel": "คำอธิบาย",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "คำอธิบายเพิ่มเติม (ไม่บังคับ)",
"enabledLabel": "Enabled", "enabledLabel": "เปิดใช้งาน",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "หากกำลังทำงานอยู่แล้ว",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "ควรทำอย่างไรเมื่อเหตุการณ์นี้เกิดขึ้นอีกครั้งก่อนที่การทำงานครั้งสุดท้ายจะเสร็จสิ้น",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "ข้ามการวิ่งรอบใหม่ไป",
"queue": "Wait and run after", "queue": "รอและวิ่งตาม",
"allow": "Run both at once" "allow": "เรียกใช้ทั้งสองอย่างพร้อมกัน"
}, },
"save": "Save", "save": "บันทึก",
"created": "Automation created", "created": "ระบบอัตโนมัติสร้างขึ้น",
"updated": "Automation saved", "updated": "ระบบอัตโนมัติได้รับการบันทึกแล้ว",
"deleted": "Automation deleted", "deleted": "ระบบอัตโนมัติลบแล้ว",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "ลบระบบอัตโนมัตินี้แล้วใช่ไหม? ประวัติการทำงานของมันก็จะถูกลบไปด้วย",
"runNow": "Run now", "runNow": "วิ่งเลยตอนนี้",
"testRun": "Test run", "testRun": "การทดสอบการทำงาน",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "ทำงานทุกขั้นตอน แต่ไม่แตะต้องสิ่งใดนอกเหนือจาก Termix",
"runStarted": "Run started", "runStarted": "การวิ่งเริ่มต้นขึ้นแล้ว",
"runFinished": "Run finished: {{status}}", "runFinished": "การทำงานเสร็จสิ้น: {{status}}",
"trigger": "Trigger", "trigger": "สิ่งกระตุ้น",
"steps": "Steps", "steps": "ขั้นตอน",
"addStep": "Add step", "addStep": "เพิ่มขั้นตอน",
"removeStep": "Remove step", "removeStep": "ลบขั้นตอน",
"moveUp": "Move up", "moveUp": "เลื่อนขึ้น",
"moveDown": "Move down", "moveDown": "เลื่อนลง",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "ยังไม่มีขั้นตอนใดๆ เพิ่มขั้นตอนเพื่ออธิบายว่าควรเกิดอะไรขึ้น",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL ของเว็บฮุค",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "แสดงเพียงครั้งเดียว บันทึกตอนนี้ ไม่สามารถเรียกดูซ้ำได้ในภายหลัง",
"copy": "Copy", "copy": "สำเนา",
"copied": "Copied", "copied": "คัดลอกแล้ว",
"viewJson": "JSON", "viewJson": "เจซอน",
"viewBuilder": "Builder", "viewBuilder": "ผู้สร้าง",
"viewGraph": "Graph", "viewGraph": "กราฟ",
"lastRun": "Last run", "lastRun": "การวิ่งครั้งสุดท้าย",
"never": "Never", "never": "ไม่เคย",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Output", "stepOutput": "เอาต์พุต",
"stepError": "Error", "stepError": "ข้อผิดพลาด",
"dryRunBadge": "Test run", "dryRunBadge": "การทดสอบการทำงาน",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "โฮสต์ทริกเกอร์",
"host": "Specific host", "host": "โฮสต์เฉพาะ",
"fleet": "Fleet", "fleet": "กองเรือ",
"all": "All hosts" "all": "โฮสต์ทั้งหมด"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "เกณฑ์เมตริก",
"host_status": "Host goes up or down", "host_status": "โฮสต์ขึ้นหรือลง",
"health_check": "Health check changes", "health_check": "การเปลี่ยนแปลงการตรวจสุขภาพ",
"schedule": "On a schedule", "schedule": "ตามกำหนดเวลา",
"docker_event": "Container event", "docker_event": "เหตุการณ์คอนเทนเนอร์",
"internal_event": "Termix event", "internal_event": "กิจกรรมเทอร์มิกซ์",
"webhook": "Incoming webhook" "webhook": "เว็บฮุคขาเข้า"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "ส่งการแจ้งเตือน",
"http": "Call a URL", "http": "เรียกใช้ URL",
"run_snippet": "Run a snippet", "run_snippet": "เรียกใช้โค้ดตัวอย่าง",
"run_command": "Run a command", "run_command": "เรียกใช้คำสั่ง",
"docker": "Control a container", "docker": "ควบคุมคอนเทนเนอร์",
"tunnel": "Control a tunnel", "tunnel": "ควบคุมอุโมงค์",
"wol": "Wake a host", "wol": "ปลุกโฮสต์",
"wait": "Wait", "wait": "รอ",
"set_var": "Set a variable", "set_var": "ตั้งค่าตัวแปร",
"if": "If / otherwise", "if": "ถ้า / มิฉะนั้น",
"run_automation": "Run another automation", "run_automation": "เรียกใช้ระบบอัตโนมัติอีกครั้ง",
"stop": "Stop" "stop": "หยุด"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "วิ่ง",
"success": "Success", "success": "ความสำเร็จ",
"failed": "Failed", "failed": "ล้มเหลว",
"timeout": "Timed out", "timeout": "หมดเวลา",
"skipped": "Skipped", "skipped": "ข้ามไป",
"cancelled": "Cancelled" "cancelled": "ยกเลิก"
}, },
"fields": { "fields": {
"host": "Host", "host": "เจ้าภาพ",
"metric": "Metric", "metric": "เมตริก",
"mount": "Mount point", "mount": "จุดยึด",
"operator": "Is", "operator": "เป็น",
"value": "Value", "value": "ค่า",
"forSeconds": "Sustained for (seconds)", "forSeconds": "ต่อเนื่องเป็นเวลา (วินาที)",
"cooldown": "Cooldown (minutes)", "cooldown": "ระยะเวลาคูลดาวน์ (นาที)",
"cron": "Cron expression", "cron": "การแสดงออกของ Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "ทุกๆ (วินาที)",
"timezone": "Time zone", "timezone": "เขตเวลา",
"timezoneServer": "Server time", "timezoneServer": "เวลาเซิร์ฟเวอร์",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "เวลาของ Cron จะอ่านได้ในโซนนี้ ไม่สามารถใช้ได้กับตารางเวลาแบบช่วงเวลา",
"container": "Container", "container": "คอนเทนเนอร์",
"command": "Command", "command": "สั่งการ",
"url": "URL", "url": "URL",
"method": "Method", "method": "วิธี",
"body": "Body", "body": "ร่างกาย",
"channels": "Also send to", "channels": "ส่งไปที่ด้วยเช่นกัน",
"title": "Title", "title": "ชื่อ",
"message": "Message", "message": "ข้อความ",
"snippet": "Snippet", "snippet": "ส่วนหนึ่ง",
"seconds": "Seconds", "seconds": "วินาที",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "ค่าที่ต้องตรวจสอบ",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "เปรียบเทียบกับ",
"variableName": "Variable name", "variableName": "ชื่อตัวแปร",
"variableValue": "Value", "variableValue": "ค่า",
"elevated": "Run with sudo", "elevated": "เรียกใช้ด้วยคำสั่ง sudo",
"onError": "If this fails", "onError": "หากวิธีนี้ล้มเหลว",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "อนุญาตให้ใช้ที่อยู่เครือข่ายท้องถิ่น",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "จำเป็นสำหรับบริการที่โฮสต์เองบนเครือข่าย LAN ของคุณ โดยค่าเริ่มต้นจะปิดใช้งานเพื่อป้องกันการร้องขอไปยังที่อยู่ภายใน"
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "หยุดการวิ่ง",
"continue": "Carry on" "continue": "ดำเนินการต่อไป"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "ต้องการ {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "กระบวนการอัตโนมัตินี้จะถูกข้ามไปจนกว่าฟีเจอร์ที่ต้องการจะพร้อมใช้งานอีกครั้ง",
"offBadge": "Off", "offBadge": "ปิด",
"docsLink": "View docs", "docsLink": "ดูเอกสาร",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}วินาทีที่แล้ว",
"minutes": "{{count}}m ago", "minutes": "{{count}}นาทีที่แล้ว",
"hours": "{{count}}h ago", "hours": "{{count}}ชั่วโมงที่แล้ว",
"days": "{{count}}d ago" "days": "{{count}}วันก่อน"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "ระบบอัตโนมัติ"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "ระบบอัตโนมัติ",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "ดำเนินการตามขั้นตอนโดยอัตโนมัติเมื่อเกิดเหตุการณ์ใดๆ และรับการแจ้งเตือน"
}, },
"maintenance": { "maintenance": {
"title": "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.", "description": "หยุดการตรวจสอบสถานะโฮสต์ สุขภาพ เมตริก คอนเทนเนอร์ และการตัดการเชื่อมต่ออุโมงค์โดยอัตโนมัติชั่วคราวในระหว่างการดำเนินการ การตรวจสอบ การเรียกใช้งานด้วยตนเอง และการทำงานอัตโนมัติตามกำหนดเวลายังคงดำเนินต่อไป",
"denied": "You do not have permission to view maintenance.", "denied": "คุณไม่มีสิทธิ์ในการดูข้อมูลการบำรุงรักษา",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "โฮสต์นี้ถูกแชร์กับคุณ เจ้าของโฮสต์เท่านั้นที่สามารถเปลี่ยนแปลงการบำรุงรักษาได้",
"failed": "Maintenance could not be updated.", "failed": "ไม่สามารถอัปเดตการบำรุงรักษาได้",
"active": "Maintenance active", "active": "กำลังดำเนินการบำรุงรักษา",
"estimated": "Estimated completion", "estimated": "คาดว่าจะแล้วเสร็จ",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "การประเมินราคาไม่ได้หมายความว่าการบำรุงรักษาจะสิ้นสุดลง ให้ยุติการบำรุงรักษาอย่างชัดเจนเมื่อการทำงานเสร็จสมบูรณ์แล้ว",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "สิ้นสุดโหมดบำรุงรักษาและเริ่มการทำงานอัตโนมัติที่ทำงานเมื่อเกิดเหตุการณ์สำหรับโฮสต์นี้อีกครั้งหรือไม่?",
"confirmEnd": "Confirm end", "confirmEnd": "ยืนยันการสิ้นสุด",
"cancel": "Cancel", "cancel": "ยกเลิก",
"end": "End maintenance", "end": "สิ้นสุดการบำรุงรักษา",
"action": "Action", "action": "การกระทำ",
"startNow": "Start now", "startNow": "เริ่มเลยตอนนี้",
"schedule": "Schedule for later", "schedule": "กำหนดเวลาสำหรับภายหลัง",
"reason": "Reason", "reason": "เหตุผล",
"startUtc": "First start (UTC)", "startUtc": "เริ่มครั้งแรก (UTC)",
"repeat": "Repeat", "repeat": "ทำซ้ำ",
"once": "Once", "once": "ครั้งหนึ่ง",
"weekly": "Weekly", "weekly": "รายสัปดาห์",
"monthly": "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.", "utcHelp": "ตารางงานใช้เวลา UTC ตลอดทั้งปี ตารางงานรายเดือนจะข้ามเดือนที่ไม่มีวันที่เลือกไว้ ช่วงเวลาที่วางแผนไว้ไม่สามารถทับซ้อนกันได้ การบำรุงรักษาที่ล่าช้าจะดำเนินการต่อในช่วงเวลาถัดไป",
"duration": "Estimated duration (minutes)", "duration": "ระยะเวลาโดยประมาณ (นาที)",
"grace": "Grace period (minutes)", "grace": "ระยะเวลาผ่อนผัน (นาที)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "แจ้งเตือนครั้งเดียวหากยังคงออฟไลน์หลังจากเวลาที่คาดการณ์และช่วงเวลาผ่อนผันเสร็จสิ้นแล้ว",
"addSchedule": "Add schedule", "addSchedule": "เพิ่มตารางเวลา",
"schedules": "Schedules", "schedules": "ตารางเวลา",
"noSchedules": "No maintenance schedules.", "noSchedules": "ไม่มีกำหนดการบำรุงรักษา",
"completed": "Already started", "completed": "เริ่มแล้ว",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} นาที",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} นาที",
"remove": "Remove schedule", "remove": "ลบกำหนดการ",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "ไม่สามารถรีเฟรชสถานะการบำรุงรักษาได้ การเปลี่ยนแปลงจะถูกปิดใช้งานจนกว่าจะสามารถโหลดได้",
"loading": "Loading maintenance status…" "loading": "กำลังโหลดสถานะการบำรุงรักษา…"
} }
} }
+134 -134
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Otomasyonları görüntüle",
"description": "See the automations and their history." "description": "Otomasyonları ve tarihçelerini inceleyin."
}, },
"create": { "create": {
"title": "Create automations", "title": "Otomasyonlar oluşturun",
"description": "Add new automations." "description": "Yeni otomasyonlar ekleyin."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Düzenleme otomasyonları",
"description": "Change existing automations." "description": "Mevcut otomasyonları değiştirin."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Otomasyonları sil",
"description": "Remove automations." "description": "Otomasyonları kaldırın."
}, },
"run": { "run": {
"title": "Run automations", "title": "Otomasyonları çalıştır",
"description": "Trigger an automation by hand." "description": "Otomasyonu manuel olarak tetikleyin."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Otomasyonlar",
"tabAutomations": "Automations", "tabAutomations": "Otomasyonlar",
"tabRuns": "Runs", "tabRuns": "Koşular",
"tabChannels": "Kanallar", "tabChannels": "Kanallar",
"createAutomation": "New Automation", "createAutomation": "Yeni Otomasyon",
"backToAutomations": "Back to Automations", "backToAutomations": "Otomasyonlara geri dön",
"createTitle": "New Automation", "createTitle": "Yeni Otomasyon",
"editTitle": "Edit Automation", "editTitle": "Düzenleme Otomasyonu",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Henüz otomasyon yok. Bir ölçüme, bir programa veya bir olaya tepki verecek bir otomasyon oluşturun.",
"emptyRuns": "No runs yet.", "emptyRuns": "Henüz hiçbir deneme yapılmadı.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Uyarılar bölümünde kanallar oluşturulur.",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "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", "nameLabel": "Ad",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "Örneğin, /data klasörü dolduğunda temizle.",
"nameRequired": "Ad zorunludur", "nameRequired": "Ad zorunludur",
"descriptionLabel": "Açıklama", "descriptionLabel": "Açıklama",
"descriptionPlaceholder": "İsteğe bağlı açıklama", "descriptionPlaceholder": "İsteğe bağlı açıklama",
"enabledLabel": "Etkin", "enabledLabel": "Etkin",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Eğer zaten çalışıyorsa",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Son çalıştırma tamamlanmadan önce bu durum tekrar tetiklendiğinde ne yapılmalı?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Yeni sürümü atla",
"queue": "Wait and run after", "queue": "Bekle ve sonra koş",
"allow": "Run both at once" "allow": "İkisini birden çalıştırın"
}, },
"save": "Kaydet", "save": "Kaydet",
"created": "Automation created", "created": "Otomasyon oluşturuldu",
"updated": "Automation saved", "updated": "Otomasyon kaydedildi",
"deleted": "Automation deleted", "deleted": "Otomasyon silindi",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Bu otomasyonu silerseniz, çalıştırma geçmişi de silinir.",
"runNow": "Run now", "runNow": "Şimdi çalıştır",
"testRun": "Test run", "testRun": "Test çalıştırması",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Her adımı çalıştırır ancak Termix dışındaki hiçbir şeye dokunmaz.",
"runStarted": "Run started", "runStarted": "Koşu başladı",
"runFinished": "Run finished: {{status}}", "runFinished": "Çalıştırma tamamlandı: {{status}}",
"trigger": "Tetikleyici", "trigger": "Tetikleyici",
"steps": "Steps", "steps": "Adımlar",
"addStep": "Add step", "addStep": "Adım ekle",
"removeStep": "Remove step", "removeStep": "Adımı kaldır",
"moveUp": "Move up", "moveUp": "Yukarı çık",
"moveDown": "Move down", "moveDown": "Aşağıya doğru hareket edin",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Henüz hiçbir adım yok. Ne olması gerektiğini belirtmek için bir adım ekleyin.",
"webhookTokenTitle": "Webhook URL", "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", "copy": "Kopyala",
"copied": "Kopyalandı", "copied": "Kopyalandı",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "İnşaatçı",
"viewGraph": "Graph", "viewGraph": "Grafik",
"lastRun": "Last run", "lastRun": "Son koşu",
"never": "Hiçbir zaman", "never": "Hiçbir zaman",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Çıktı", "stepOutput": "Çıktı",
"stepError": "Hata", "stepError": "Hata",
"dryRunBadge": "Test run", "dryRunBadge": "Test çalıştırması",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Tetikleyici sunucu",
"host": "Specific host", "host": "Belirli ev sahibi",
"fleet": "Fleet", "fleet": "Filo",
"all": "Tüm sunucular" "all": "Tüm sunucular"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Metrik eşik",
"host_status": "Host goes up or down", "host_status": "Sunucu yukarı veya aşağı hareket eder.",
"health_check": "Health check changes", "health_check": "Sağlık kontrolü değişiklikleri",
"schedule": "On a schedule", "schedule": "Bir program dahilinde",
"docker_event": "Container event", "docker_event": "Konteyner olayı",
"internal_event": "Termix event", "internal_event": "Termix etkinliği",
"webhook": "Incoming webhook" "webhook": "Gelen web kancası"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Uyarı gönder",
"http": "Call a URL", "http": "Bir URL'yi çağırın",
"run_snippet": "Run a snippet", "run_snippet": "Bir kod parçası çalıştırın.",
"run_command": "Run a command", "run_command": "Bir komut çalıştır",
"docker": "Control a container", "docker": "Bir konteyneri kontrol edin.",
"tunnel": "Control a tunnel", "tunnel": "Bir tüneli kontrol edin.",
"wol": "Wake a host", "wol": "Bir ev sahibini uyandırın",
"wait": "Wait", "wait": "Beklemek",
"set_var": "Set a variable", "set_var": "Bir değişken tanımlayın",
"if": "If / otherwise", "if": "Eğer / aksi takdirde",
"run_automation": "Run another automation", "run_automation": "Başka bir otomasyon çalıştırın",
"stop": "Durdurma" "stop": "Durdurma"
}, },
"statuses": { "statuses": {
"running": "Çalışıyor", "running": "Çalışıyor",
"success": "Başarılı", "success": "Başarılı",
"failed": "Başarısız", "failed": "Başarısız",
"timeout": "Timed out", "timeout": "Süre doldu",
"skipped": "Skipped", "skipped": "Atlandı",
"cancelled": "Cancelled" "cancelled": "İptal edildi"
}, },
"fields": { "fields": {
"host": "Ana Bilgisayar", "host": "Ana Bilgisayar",
"metric": "Metrik", "metric": "Metrik",
"mount": "Mount point", "mount": "Montaj noktası",
"operator": "Is", "operator": "O",
"value": "Value", "value": "Değer",
"forSeconds": "Sustained for (seconds)", "forSeconds": "(Saniye) süreyle sürdürüldü",
"cooldown": "Bekleme süresi (dakika)", "cooldown": "Bekleme süresi (dakika)",
"cron": "Cron expression", "cron": "Cron ifadesi",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Her (saniye)",
"timezone": "Time zone", "timezone": "Saat dilimi",
"timezoneServer": "Server time", "timezoneServer": "Sunucu zamanı",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Cron zamanlama ayarları bu bölgede okunur. Aralıklı zamanlamalar için geçerli değildir.",
"container": "Container", "container": "Konteyner",
"command": "Komut", "command": "Komut",
"url": "URL", "url": "URL",
"method": "Method", "method": "Yöntem",
"body": "Body", "body": "Vücut",
"channels": "Also send to", "channels": "Ayrıca şuraya da gönderin:",
"title": "Başlık", "title": "Başlık",
"message": "Message", "message": "Mesaj",
"snippet": "Snippet", "snippet": "Alıntı",
"seconds": "Seconds", "seconds": "Saniyeler",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Kontrol edilecek değer",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Karşılaştırın",
"variableName": "Variable name", "variableName": "Değişken adı",
"variableValue": "Value", "variableValue": "Değer",
"elevated": "Run with sudo", "elevated": "sudo ile çalıştır",
"onError": "If this fails", "onError": "Eğer bu başarısız olursa",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Yerel ağ adreslerine izin verin.",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "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": { "onError": {
"stop": "Stop the run", "stop": "Koşuyu durdurun",
"continue": "Carry on" "continue": "Devam edin"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "İhtiyaçlar {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Bu otomasyon, ihtiyaç duyulan özellik tekrar kullanılabilir hale gelene kadar atlanır.",
"offBadge": "Kapalı", "offBadge": "Kapalı",
"docsLink": "Belgelere bak", "docsLink": "Belgelere bak",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}saniye önce",
"minutes": "{{count}} dakika önce", "minutes": "{{count}} dakika önce",
"hours": "{{count}} saat önce", "hours": "{{count}} saat önce",
"days": "{{count}} gün önce" "days": "{{count}} gün önce"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Otomasyonlar"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Otomasyonlar",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Bir şey olduğunda adımları otomatik olarak çalıştırın ve bildirim alın."
}, },
"maintenance": { "maintenance": {
"title": "Bakım", "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.", "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": "You do not have permission to view maintenance.", "denied": "Bakım çalışmalarını görüntüleme izniniz yok.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Bu sunucu sizinle paylaşıldı. Bakım değişikliklerini yalnızca sahibi yapabilir.",
"failed": "Maintenance could not be updated.", "failed": "Bakım bilgileri güncellenemedi.",
"active": "Maintenance active", "active": "Bakım aktif",
"estimated": "Estimated completion", "estimated": "Tahmini tamamlanma tarihi",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "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": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Bu sunucu için bakım işlemlerini sonlandırıp olay tetiklemeli otomasyonları yeniden başlatmak mı istiyorsunuz?",
"confirmEnd": "Confirm end", "confirmEnd": "Sonu onaylayın",
"cancel": "İptal", "cancel": "İptal",
"end": "End maintenance", "end": "Son bakım",
"action": "İşlem", "action": "İşlem",
"startNow": "Start now", "startNow": "Şimdi başla",
"schedule": "Schedule for later", "schedule": "Daha sonra için planla",
"reason": "Reason", "reason": "Sebep",
"startUtc": "First start (UTC)", "startUtc": "İlk başlangıç (UTC)",
"repeat": "Repeat", "repeat": "Tekrarlamak",
"once": "Once", "once": "Bir kere",
"weekly": "Weekly", "weekly": "Haftalık",
"monthly": "Monthly", "monthly": "Aylık",
"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.", "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": "Estimated duration (minutes)", "duration": "Tahmini süre (dakika)",
"grace": "Grace period (minutes)", "grace": "Bekleme süresi (dakika)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Tahmini süre ve ek bekleme süresinden sonra hala çevrimdışıysa bir kez bildirim gönderin.",
"addSchedule": "Add schedule", "addSchedule": "Program ekle",
"schedules": "Schedules", "schedules": "Programlar",
"noSchedules": "No maintenance schedules.", "noSchedules": "Bakım programı yok.",
"completed": "Already started", "completed": "Zaten başladı",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} dakika",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} dakika",
"remove": "Remove schedule", "remove": "Programı kaldır",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Bakım durumu yenilenemedi. Yüklenene kadar değişiklikler devre dışı bırakılmıştır.",
"loading": "Loading maintenance status…" "loading": "Bakım durumu yükleniyor…"
} }
} }
+168 -168
View File
@@ -1,211 +1,211 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Переглянути автоматизації",
"description": "See the automations and their history." "description": "Перегляньте автоматизації та їхню історію."
}, },
"create": { "create": {
"title": "Create automations", "title": "Створення автоматизацій",
"description": "Add new automations." "description": "Додайте нові автоматизації."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Редагувати автоматизації",
"description": "Change existing automations." "description": "Змінити існуючі автоматизації."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Видалити автоматизації",
"description": "Remove automations." "description": "Видаліть автоматизації."
}, },
"run": { "run": {
"title": "Run automations", "title": "Запуск автоматизації",
"description": "Trigger an automation by hand." "description": "Запустіть автоматизацію вручну."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Автоматизація",
"tabAutomations": "Automations", "tabAutomations": "Автоматизація",
"tabRuns": "Runs", "tabRuns": "Пробіжки",
"tabChannels": "Channels", "tabChannels": "Канали",
"createAutomation": "New Automation", "createAutomation": "Нова автоматизація",
"backToAutomations": "Back to Automations", "backToAutomations": "Назад до автоматизації",
"createTitle": "New Automation", "createTitle": "Нова автоматизація",
"editTitle": "Edit Automation", "editTitle": "Редагувати автоматизацію",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "Автоматизації поки що немає. Створіть її, щоб реагувати на метрику, розклад або подію.",
"emptyRuns": "No runs yet.", "emptyRuns": "Поки що жодних пробіжок.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Канали налаштовуються в розділі «Сповіщення»",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "Сповіщення завжди надходить до вашої поштової скриньки. Додайте канали в розділі \"Сповіщення\", щоб також надсилати його кудись ще.",
"nameLabel": "Name", "nameLabel": "Ім'я",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "наприклад, Очищати /дані, коли вони заповнюються",
"nameRequired": "Name is required", "nameRequired": "Ім'я обов'язкове",
"descriptionLabel": "Description", "descriptionLabel": "Опис",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Додатковий опис",
"enabledLabel": "Enabled", "enabledLabel": "Увімкнено",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Якщо воно вже працює",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "Що робити, якщо це спрацьовує знову до завершення останнього запуску.",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "Пропустити новий пробіг",
"queue": "Wait and run after", "queue": "Чекай і біжіть за ним",
"allow": "Run both at once" "allow": "Запустіть обидва одночасно"
}, },
"save": "Save", "save": "Зберегти",
"created": "Automation created", "created": "Автоматизація створена",
"updated": "Automation saved", "updated": "Автоматизація збережена",
"deleted": "Automation deleted", "deleted": "Автоматизацію видалено",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Видалити цю автоматизацію? Історія її запуску також видаляється.",
"runNow": "Run now", "runNow": "Біжи зараз",
"testRun": "Test run", "testRun": "Тестовий запуск",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "Виконує кожен крок, але не торкається нічого поза Termix.",
"runStarted": "Run started", "runStarted": "Біг розпочато",
"runFinished": "Run finished: {{status}}", "runFinished": "Виконання завершено: {{status}}",
"trigger": "Trigger", "trigger": "Тригер",
"steps": "Steps", "steps": "Кроки",
"addStep": "Add step", "addStep": "Додати крок",
"removeStep": "Remove step", "removeStep": "Видалити крок",
"moveUp": "Move up", "moveUp": "Перемістити вгору",
"moveDown": "Move down", "moveDown": "Перемістити вниз",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "Кроків поки що немає. Додайте один, щоб пояснити, що має статися.",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "URL-адреса вебхука",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "Це відображається один раз. Збережіть це зараз, пізніше це неможливо буде отримати.",
"copy": "Copy", "copy": "Копіювати",
"copied": "Copied", "copied": "Скопійовано",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Будівельник",
"viewGraph": "Graph", "viewGraph": "Графік",
"lastRun": "Last run", "lastRun": "Останній запуск",
"never": "Never", "never": "Ніколи",
"duration": "{{seconds}}s", "duration": "{{seconds}}с",
"stepOutput": "Output", "stepOutput": "Вихід",
"stepError": "Error", "stepError": "Помилка",
"dryRunBadge": "Test run", "dryRunBadge": "Тестовий запуск",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Хост-тригер",
"host": "Specific host", "host": "Конкретний хост",
"fleet": "Fleet", "fleet": "Флот",
"all": "All hosts" "all": "Усі хости"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Поріг показника",
"host_status": "Host goes up or down", "host_status": "Хост піднімається або опускається",
"health_check": "Health check changes", "health_check": "Зміни в перевірці стану здоров'я",
"schedule": "On a schedule", "schedule": "За розкладом",
"docker_event": "Container event", "docker_event": "Подія контейнера",
"internal_event": "Termix event", "internal_event": "Подія Termix",
"webhook": "Incoming webhook" "webhook": "Вхідний вебхук"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Надіслати сповіщення",
"http": "Call a URL", "http": "Виклик URL-адреси",
"run_snippet": "Run a snippet", "run_snippet": "Виконати фрагмент коду",
"run_command": "Run a command", "run_command": "Виконайте команду",
"docker": "Control a container", "docker": "Керування контейнером",
"tunnel": "Control a tunnel", "tunnel": "Контролюйте тунель",
"wol": "Wake a host", "wol": "Розбудити господаря",
"wait": "Wait", "wait": "Зачекайте",
"set_var": "Set a variable", "set_var": "Встановити змінну",
"if": "If / otherwise", "if": "Якщо / інакше",
"run_automation": "Run another automation", "run_automation": "Запустіть ще одну автоматизацію",
"stop": "Stop" "stop": "СТІЙ"
}, },
"statuses": { "statuses": {
"running": "Running", "running": "Біг",
"success": "Success", "success": "Успіх",
"failed": "Failed", "failed": "Не вдалося",
"timeout": "Timed out", "timeout": "Час очікування минув",
"skipped": "Skipped", "skipped": "Пропущено",
"cancelled": "Cancelled" "cancelled": "Скасовано"
}, },
"fields": { "fields": {
"host": "Host", "host": "Хост",
"metric": "Metric", "metric": "Метрика",
"mount": "Mount point", "mount": "Точка монтування",
"operator": "Is", "operator": "Є",
"value": "Value", "value": "Значення",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Триває протягом (секунд)",
"cooldown": "Cooldown (minutes)", "cooldown": "Охолодження (хвилини)",
"cron": "Cron expression", "cron": "Cron-вираз",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Кожні (секунди)",
"timezone": "Time zone", "timezone": "Часовий пояс",
"timezoneServer": "Server time", "timezoneServer": "Час сервера",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "Час Cron зчитується в цій зоні. Не стосується інтервальних розкладів.",
"container": "Container", "container": "Контейнер",
"command": "Command", "command": "Команда",
"url": "URL", "url": "URL-адреса",
"method": "Method", "method": "Метод",
"body": "Body", "body": "Тіло",
"channels": "Also send to", "channels": "Також надіслати до",
"title": "Title", "title": "Назва",
"message": "Message", "message": "Повідомлення",
"snippet": "Snippet", "snippet": "Фрагмент",
"seconds": "Seconds", "seconds": "Секунди",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Значення для перевірки",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "Порівняйте з",
"variableName": "Variable name", "variableName": "Ім'я змінної",
"variableValue": "Value", "variableValue": "Значення",
"elevated": "Run with sudo", "elevated": "Запустити за допомогою sudo",
"onError": "If this fails", "onError": "Якщо це не вдасться",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Дозволити адреси локальної мережі",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "Потрібно для самостійно розміщеної служби у вашій локальній мережі. Вимкнено за замовчуванням, щоб запобігти запитам до внутрішніх адрес."
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "Зупинити біг",
"continue": "Carry on" "continue": "Продовжуйте"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Потребує {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "Ця автоматизація пропускається, доки потрібна функція знову не стане доступною.",
"offBadge": "Off", "offBadge": "Вимкнено",
"docsLink": "View docs", "docsLink": "Переглянути документи",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}с тому",
"minutes": "{{count}}m ago", "minutes": "{{count}}хв тому",
"hours": "{{count}}h ago", "hours": "{{count}}год тому",
"days": "{{count}}d ago" "days": "{{count}}днів тому"
} }
} }
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Автоматизація"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Автоматизація",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "Автоматично виконувати кроки, коли щось відбувається, та отримувати сповіщення."
}, },
"maintenance": { "maintenance": {
"title": "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.", "description": "Призупинити автоматизацію стану хоста, справності, метрик, контейнерів та відключення тунелів під час виконання роботи. Моніторинг, ручні запуски та запланована автоматизація продовжуються.",
"denied": "You do not have permission to view maintenance.", "denied": "У вас немає дозволу на перегляд технічного обслуговування.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "Цей хост надано вам. Тільки його власник може змінити налаштування обслуговування.",
"failed": "Maintenance could not be updated.", "failed": "Не вдалося оновити технічне обслуговування.",
"active": "Maintenance active", "active": "Технічне обслуговування активне",
"estimated": "Estimated completion", "estimated": "Очікуване завершення",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "Кошторис не завершує технічне обслуговування. Завершіть його чітко після завершення робіт.",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "Завершити технічне обслуговування та відновити автоматизацію, що спрацьовує за подіями, для цього хоста?",
"confirmEnd": "Confirm end", "confirmEnd": "Підтвердити кінець",
"cancel": "Cancel", "cancel": "Скасувати",
"end": "End maintenance", "end": "Закінчення технічного обслуговування",
"action": "Action", "action": "Дія",
"startNow": "Start now", "startNow": "Почати зараз",
"schedule": "Schedule for later", "schedule": "Запланувати на пізніше",
"reason": "Reason", "reason": "Причина",
"startUtc": "First start (UTC)", "startUtc": "Перший запуск (UTC)",
"repeat": "Repeat", "repeat": "Повторити",
"once": "Once", "once": "Одного разу",
"weekly": "Weekly", "weekly": "Щотижнево",
"monthly": "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.", "utcHelp": "Розклади використовують UTC протягом року. Щомісячні розклади пропускають місяці без вибраного дня. Заплановані вікна не можуть перетинатися; перевищення термінів технічного обслуговування продовжується в наступних вікнах.",
"duration": "Estimated duration (minutes)", "duration": "Орієнтовна тривалість (хвилини)",
"grace": "Grace period (minutes)", "grace": "Пільговий період (хвилини)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "Повідомити один раз, якщо після оцінки плюс пільговий період все ще не в мережі",
"addSchedule": "Add schedule", "addSchedule": "Додати розклад",
"schedules": "Schedules", "schedules": "Розклади",
"noSchedules": "No maintenance schedules.", "noSchedules": "Немає графіків технічного обслуговування.",
"completed": "Already started", "completed": "Вже розпочато",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} хвилина",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} хвилин",
"remove": "Remove schedule", "remove": "Видалити розклад",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "Не вдалося оновити стан обслуговування. Зміни вимкнено, доки його не буде завантажено.",
"loading": "Loading maintenance status…" "loading": "Завантаження статусу технічного обслуговування…"
} }
} }
+135 -135
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "Xem các quy trình tự động hóa",
"description": "See the automations and their history." "description": "Xem các quy trình tự động hóa và lịch sử của chúng."
}, },
"create": { "create": {
"title": "Create automations", "title": "Tạo các quy trình tự động hóa",
"description": "Add new automations." "description": "Thêm các quy trình tự động hóa mới."
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "Chỉnh sửa tự động hóa",
"description": "Change existing automations." "description": "Thay đổi các quy trình tự động hóa hiện có."
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "Xóa các quy trình tự động hóa",
"description": "Remove automations." "description": "Loại bỏ các quy trình tự động hóa."
}, },
"run": { "run": {
"title": "Run automations", "title": "Chạy các quy trình tự động hóa",
"description": "Trigger an automation by hand." "description": "Kích hoạt quy trình tự động bằng tay."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "Tự động hóa",
"tabAutomations": "Automations", "tabAutomations": "Tự động hóa",
"tabRuns": "Runs", "tabRuns": "Chạy",
"tabChannels": "Kênh", "tabChannels": "Kênh",
"createAutomation": "New Automation", "createAutomation": "Tự động hóa mới",
"backToAutomations": "Back to Automations", "backToAutomations": "Quay lại phần Tự động hóa",
"createTitle": "New Automation", "createTitle": "Tự động hóa mới",
"editTitle": "Edit Automation", "editTitle": "Tự động chỉnh sửa",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "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": "No runs yet.", "emptyRuns": "Chưa có lượt chạy nào.",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "Các kênh được thiết lập trong mục Cảnh báo.",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "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", "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", "nameRequired": "Tên là bắt buộc",
"descriptionLabel": "Mô tả", "descriptionLabel": "Mô tả",
"descriptionPlaceholder": "Mô tả tùy chọn", "descriptionPlaceholder": "Mô tả tùy chọn",
"enabledLabel": "Đã bật", "enabledLabel": "Đã bật",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "Nếu nó đang chạy",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "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": { "concurrency": {
"skip": "Skip the new run", "skip": "Bỏ qua lần chạy mới",
"queue": "Wait and run after", "queue": "Chờ đợi và chạy theo",
"allow": "Run both at once" "allow": "Chạy cả hai cùng một lúc"
}, },
"save": "Lưu", "save": "Lưu",
"created": "Automation created", "created": "Tự động hóa được tạo",
"updated": "Automation saved", "updated": "Tự động hóa đã được lưu",
"deleted": "Automation deleted", "deleted": "Tự động hóa đã bị xóa",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "Xóa tự động hóa này? Lịch sử chạy của nó cũng bị xóa.",
"runNow": "Run now", "runNow": "Chạy ngay",
"testRun": "Test run", "testRun": "Chạy thử nghiệm",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "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": "Run started", "runStarted": "Chạy bắt đầu",
"runFinished": "Run finished: {{status}}", "runFinished": "Quá trình chạy đã hoàn tất: {{status}}",
"trigger": "Kích hoạt", "trigger": "Kích hoạt",
"steps": "Steps", "steps": "Các bước",
"addStep": "Add step", "addStep": "Thêm bước",
"removeStep": "Remove step", "removeStep": "Xóa bước",
"moveUp": "Move up", "moveUp": "Tiến lên",
"moveDown": "Move down", "moveDown": "Di chuyển xuống",
"noSteps": "No steps yet. Add one to say what should happen.", "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": "Webhook URL", "webhookTokenTitle": "URL Webhook",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "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", "copy": "Sao chép",
"copied": "Đã sao chép", "copied": "Đã sao chép",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "Nhà xây dựng",
"viewGraph": "Graph", "viewGraph": "Đồ thị",
"lastRun": "Last run", "lastRun": "Lần chạy cuối",
"never": "Chưa bao giờ", "never": "Chưa bao giờ",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "Đầu ra", "stepOutput": "Đầu ra",
"stepError": "Lỗi", "stepError": "Lỗi",
"dryRunBadge": "Test run", "dryRunBadge": "Chạy thử nghiệm",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "Máy chủ kích hoạt",
"host": "Specific host", "host": "Máy chủ cụ thể",
"fleet": "Fleet", "fleet": "Hạm đội",
"all": "Tất cả máy chủ" "all": "Tất cả máy chủ"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "Ngưỡng số liệu",
"host_status": "Host goes up or down", "host_status": "Máy chủ tăng hoặc giảm",
"health_check": "Health check changes", "health_check": "Thay đổi trong kiểm tra sức khỏe",
"schedule": "On a schedule", "schedule": "Theo lịch trình",
"docker_event": "Container event", "docker_event": "Sự kiện container",
"internal_event": "Termix event", "internal_event": "Sự kiện Termix",
"webhook": "Incoming webhook" "webhook": "Webhook đến"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "Gửi thông báo",
"http": "Call a URL", "http": "Gọi một URL",
"run_snippet": "Run a snippet", "run_snippet": "Chạy một đoạn mã",
"run_command": "Run a command", "run_command": "Chạy một lệnh",
"docker": "Control a container", "docker": "Kiểm soát một container",
"tunnel": "Control a tunnel", "tunnel": "Kiểm soát đường hầm",
"wol": "Wake a host", "wol": "Đánh thức một chủ nhà",
"wait": "Wait", "wait": "Chờ đợi",
"set_var": "Set a variable", "set_var": "Đặt một biến",
"if": "If / otherwise", "if": "Nếu/ngược lại",
"run_automation": "Run another automation", "run_automation": "Chạy một quy trình tự động hóa khác",
"stop": "Bit dừng" "stop": "Bit dừng"
}, },
"statuses": { "statuses": {
"running": "Đang chạy", "running": "Đang chạy",
"success": "Thành công", "success": "Thành công",
"failed": "Thất bại", "failed": "Thất bại",
"timeout": "Timed out", "timeout": "Hết thời gian",
"skipped": "Skipped", "skipped": "Bỏ qua",
"cancelled": "Cancelled" "cancelled": "Đã hủy"
}, },
"fields": { "fields": {
"host": "Máy chủ", "host": "Máy chủ",
"metric": "Chỉ số", "metric": "Chỉ số",
"mount": "Mount point", "mount": "Điểm gắn kết",
"operator": "Is", "operator": "Là",
"value": "Value", "value": "Giá trị",
"forSeconds": "Sustained for (seconds)", "forSeconds": "Duy trì trong (giây)",
"cooldown": "Thời gian chờ (phút)", "cooldown": "Thời gian chờ (phút)",
"cron": "Cron expression", "cron": "Biểu thức Cron",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "Mỗi (giây)",
"timezone": "Time zone", "timezone": "Múi giờ",
"timezoneServer": "Server time", "timezoneServer": "Thời gian máy chủ",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "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": "Container", "container": "Thùng chứa",
"command": "Lệnh", "command": "Lệnh",
"url": "URL", "url": "URL",
"method": "Method", "method": "Phương pháp",
"body": "Body", "body": "Thân hình",
"channels": "Also send to", "channels": "Cũng gửi đến",
"title": "Tiêu đề", "title": "Tiêu đề",
"message": "Message", "message": "Tin nhắn",
"snippet": "Snippet", "snippet": "Đoạn trích",
"seconds": "Seconds", "seconds": "Giây",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "Giá trị cần kiểm tra",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "So sánh với",
"variableName": "Variable name", "variableName": "Tên biến",
"variableValue": "Value", "variableValue": "Giá trị",
"elevated": "Run with sudo", "elevated": "Chạy với quyền sudo",
"onError": "If this fails", "onError": "Nếu điều này thất bại",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "Cho phép địa chỉ mạng cục bộ",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "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": { "onError": {
"stop": "Stop the run", "stop": "Dừng cuộc chạy",
"continue": "Carry on" "continue": "Tiếp tục"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "Nhu cầu {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "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", "offBadge": "Tắt",
"docsLink": "Xem tài liệu", "docsLink": "Xem tài liệu",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}giây trước",
"minutes": "{{count}} phút trước", "minutes": "{{count}} phút trước",
"hours": "{{count}} giờ trước", "hours": "{{count}} giờ trước",
"days": "{{count}} ngày trước" "days": "{{count}} ngày trước"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "Tự động hóa"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "Tự động hóa",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "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": { "maintenance": {
"title": "Bảo trì", "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.", "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": "You do not have permission to view maintenance.", "denied": "Bạn không có quyền xem thông tin bảo trì.",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "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": "Maintenance could not be updated.", "failed": "Không thể cập nhật bảo trì.",
"active": "Maintenance active", "active": "Đang bảo trì",
"estimated": "Estimated completion", "estimated": "Thời gian hoàn thành dự kiến",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "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": "End maintenance and resume event-triggered automations for this host?", "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": "Confirm end", "confirmEnd": "Xác nhận kết thúc",
"cancel": "Hủy", "cancel": "Hủy",
"end": "End maintenance", "end": "Kết thúc bảo trì",
"action": "Hành động", "action": "Hành động",
"startNow": "Start now", "startNow": "Bắt đầu ngay bây giờ",
"schedule": "Schedule for later", "schedule": "Lên lịch cho thời gian sau",
"reason": "Reason", "reason": "Lý do",
"startUtc": "First start (UTC)", "startUtc": "Lần khởi động đầu tiên (UTC)",
"repeat": "Repeat", "repeat": "Lặp lại",
"once": "Once", "once": "Một lần",
"weekly": "Weekly", "weekly": "Hàng tuần",
"monthly": "Monthly", "monthly": "Hàng tháng",
"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.", "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": "Estimated duration (minutes)", "duration": "Thời gian ước tính (phút)",
"grace": "Grace period (minutes)", "grace": "Thời gian ân hạn (phút)",
"notify": "Notify once if still offline after the estimate plus grace period", "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": "Add schedule", "addSchedule": "Thêm lịch trình",
"schedules": "Schedules", "schedules": "Lịch trình",
"noSchedules": "No maintenance schedules.", "noSchedules": "Không có lịch bảo trì.",
"completed": "Already started", "completed": "Đã bắt đầu",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} phút",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} phút",
"remove": "Remove schedule", "remove": "Xóa lịch trình",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "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": "Loading maintenance status…" "loading": "Đang tải trạng thái bảo trì…"
} }
} }
+113 -113
View File
@@ -1,110 +1,110 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "查看自动化流程",
"description": "See the automations and their history." "description": "查看自动化流程及其发展历程。"
}, },
"create": { "create": {
"title": "Create automations", "title": "创建自动化流程",
"description": "Add new automations." "description": "添加新的自动化流程。"
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "编辑自动化",
"description": "Change existing automations." "description": "修改现有自动化流程。"
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "删除自动化",
"description": "Remove automations." "description": "移除自动化流程。"
}, },
"run": { "run": {
"title": "Run automations", "title": "运行自动化",
"description": "Trigger an automation by hand." "description": "手动触发自动化流程。"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "自动化",
"tabAutomations": "Automations", "tabAutomations": "自动化",
"tabRuns": "运行记录", "tabRuns": "运行记录",
"tabChannels": "通道", "tabChannels": "通道",
"createAutomation": "New Automation", "createAutomation": "新自动化",
"backToAutomations": "Back to Automations", "backToAutomations": "返回自动化页面",
"createTitle": "New Automation", "createTitle": "新自动化",
"editTitle": "Edit Automation", "editTitle": "编辑自动化",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "目前还没有自动化流程。您可以创建一个自动化流程,使其能够根据指标、日程安排或事件做出反应。",
"emptyRuns": "暂无运行记录。", "emptyRuns": "暂无运行记录。",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "频道在警报中设置",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "提醒信息始终会发送到您的收件箱。您可以在“提醒”中添加其他渠道,以便将提醒信息也发送到其他位置。",
"nameLabel": "名称", "nameLabel": "名称",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "例如,当 /data 目录填满时进行清理。",
"nameRequired": "名称为必填项", "nameRequired": "名称为必填项",
"descriptionLabel": "描述", "descriptionLabel": "描述",
"descriptionPlaceholder": "可选描述", "descriptionPlaceholder": "可选描述",
"enabledLabel": "已启用", "enabledLabel": "已启用",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "如果它已经在运行",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "如果在上次运行结束前再次触发此问题,该怎么办?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "跳过新一轮",
"queue": "稍等会再运行", "queue": "稍等会再运行",
"allow": "Run both at once" "allow": "同时运行这两个程序"
}, },
"save": "保存", "save": "保存",
"created": "自动化已创建", "created": "自动化已创建",
"updated": "自动化已保存", "updated": "自动化已保存",
"deleted": "自动化已删除", "deleted": "自动化已删除",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "删除此自动化流程?其运行历史记录也会被删除。",
"runNow": "Run now", "runNow": "立即运行",
"testRun": "Test run", "testRun": "测试运行",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "执行所有步骤,但不触及 Termix 之外的任何内容。",
"runStarted": "Run started", "runStarted": "运行已启动",
"runFinished": "Run finished: {{status}}", "runFinished": "运行结束: {{status}}",
"trigger": "触发器", "trigger": "触发器",
"steps": "Steps", "steps": "步骤",
"addStep": "Add step", "addStep": "添加步骤",
"removeStep": "Remove step", "removeStep": "移除步骤",
"moveUp": "Move up", "moveUp": "向上",
"moveDown": "Move down", "moveDown": "向下",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "暂无步骤。请添加步骤说明应该发生什么。",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "Webhook URL",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "此信息仅显示一次。请立即保存,之后将无法调取。",
"copy": "复制", "copy": "复制",
"copied": "已复制", "copied": "已复制",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "构建器", "viewBuilder": "构建器",
"viewGraph": "Graph", "viewGraph": "图形",
"lastRun": "上次运行", "lastRun": "上次运行",
"never": "从未", "never": "从未",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "输出", "stepOutput": "输出",
"stepError": "错误", "stepError": "错误",
"dryRunBadge": "Test run", "dryRunBadge": "测试运行",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "触发主机",
"host": "Specific host", "host": "特定主机",
"fleet": "Fleet", "fleet": "舰队",
"all": "所有主机" "all": "所有主机"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "指标阈值",
"host_status": "主机上线或离线", "host_status": "主机上线或离线",
"health_check": "Health check changes", "health_check": "健康检查变化",
"schedule": "On a schedule", "schedule": "按计划",
"docker_event": "Container event", "docker_event": "容器事件",
"internal_event": "Termix 事件", "internal_event": "Termix 事件",
"webhook": "Incoming webhook" "webhook": "传入的 webhook"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "发送提醒",
"http": "Call a URL", "http": "调用 URL",
"run_snippet": "Run a snippet", "run_snippet": "运行一段代码片段",
"run_command": "Run a command", "run_command": "运行命令",
"docker": "Control a container", "docker": "控制容器",
"tunnel": "Control a tunnel", "tunnel": "控制隧道",
"wol": "Wake a host", "wol": "唤醒主机",
"wait": "Wait", "wait": "等待",
"set_var": "Set a variable", "set_var": "设置变量",
"if": "If / otherwise", "if": "如果/否则",
"run_automation": "运行另一个自动化程序", "run_automation": "运行另一个自动化程序",
"stop": "停止" "stop": "停止"
}, },
@@ -112,52 +112,52 @@
"running": "运行中", "running": "运行中",
"success": "成功", "success": "成功",
"failed": "失败", "failed": "失败",
"timeout": "Timed out", "timeout": "超时",
"skipped": "Skipped", "skipped": "跳过",
"cancelled": "已取消" "cancelled": "已取消"
}, },
"fields": { "fields": {
"host": "主机", "host": "主机",
"metric": "指标", "metric": "指标",
"mount": "挂载点", "mount": "挂载点",
"operator": "Is", "operator": "是",
"value": "值", "value": "值",
"forSeconds": "Sustained for (seconds)", "forSeconds": "持续(秒)",
"cooldown": "冷却时间(分钟)", "cooldown": "冷却时间(分钟)",
"cron": "Cron 表达式", "cron": "Cron 表达式",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "每隔(秒)",
"timezone": "Time zone", "timezone": "时区",
"timezoneServer": "Server time", "timezoneServer": "服务器时间",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "此区域读取 cron 任务的时间。不适用于间隔任务。",
"container": "Container", "container": "容器",
"command": "命令", "command": "命令",
"url": "URL", "url": "URL",
"method": "Method", "method": "方法",
"body": "请求体", "body": "请求体",
"channels": "Also send to", "channels": "也发送到",
"title": "标题", "title": "标题",
"message": "消息", "message": "消息",
"snippet": "Snippet", "snippet": "片段",
"seconds": "Seconds", "seconds": "秒",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "待检查的值",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "与……比较",
"variableName": "变量名", "variableName": "变量名",
"variableValue": "值", "variableValue": "值",
"elevated": "Run with sudo", "elevated": "使用 sudo 运行",
"onError": "If this fails", "onError": "如果失败",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "允许本地网络地址",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "在局域网内运行自托管服务时需要此功能。默认情况下处于关闭状态,以防止向内部地址发送请求。"
}, },
"onError": { "onError": {
"stop": "停止运行", "stop": "停止运行",
"continue": "Carry on" "continue": "继续"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "需要 {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "该自动化流程将被跳过,直到所需的功能再次可用为止。",
"offBadge": "关闭", "offBadge": "关闭",
"docsLink": "查看文档", "docsLink": "查看文档",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}秒前",
"minutes": "{{count}} 分钟前", "minutes": "{{count}} 分钟前",
"hours": "{{count}} 小时前", "hours": "{{count}} 小时前",
"days": "{{count}} 天前" "days": "{{count}} 天前"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "自动化"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "自动化",
"feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。" "feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。"
}, },
"maintenance": { "maintenance": {
"title": "维护中", "title": "维护中",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "description": "工作进行期间,暂停主机状态、健康状况、指标、容器和隧道断开连接的自动化操作。监控、手动运行和计划的自动化操作将继续进行。",
"denied": "You do not have permission to view maintenance.", "denied": "您没有权限查看维护信息。",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "这台主机是与您共享的。只有主机所有者才能更改维护设置。",
"failed": "Maintenance could not be updated.", "failed": "维护信息无法更新。",
"active": "Maintenance active", "active": "维护活动",
"estimated": "Estimated completion", "estimated": "预计完成时间",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "估价并不意味着维护工作结束。工作完成后,应明确终止维护合同。",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "结束此主机的维护并恢复事件触发的自动化操作?",
"confirmEnd": "Confirm end", "confirmEnd": "确认结束",
"cancel": "取消", "cancel": "取消",
"end": "End maintenance", "end": "维护结束",
"action": "操作", "action": "操作",
"startNow": "Start now", "startNow": "立即开始",
"schedule": "Schedule for later", "schedule": "稍后安排",
"reason": "Reason", "reason": "原因",
"startUtc": "First start (UTC)", "startUtc": "首次启动(UTC)",
"repeat": "Repeat", "repeat": "重复",
"once": "Once", "once": "一次",
"weekly": "Weekly", "weekly": "每周",
"monthly": "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.", "utcHelp": "全年所有计划均采用世界协调时 (UTC)。每月计划会跳过没有所选日期的月份。计划窗口不能重叠;超时维护会在后续窗口继续进行。",
"duration": "Estimated duration (minutes)", "duration": "预计持续时间(分钟)",
"grace": "Grace period (minutes)", "grace": "宽限期(分钟)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "如果在预估时间和宽限期结束后仍离线,请通知一次。",
"addSchedule": "Add schedule", "addSchedule": "添加日程",
"schedules": "Schedules", "schedules": "日程安排",
"noSchedules": "No maintenance schedules.", "noSchedules": "没有维护计划。",
"completed": "Already started", "completed": "已经开始",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} 分钟",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} 分钟",
"remove": "Remove schedule", "remove": "移除日程",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "无法刷新维护状态。更改功能已禁用,待状态加载完毕后方可启用。",
"loading": "Loading maintenance status…" "loading": "正在加载维护状态…"
} }
} }
+134 -134
View File
@@ -1,163 +1,163 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View automations", "title": "查看自動化流程",
"description": "See the automations and their history." "description": "查看自動化流程及其發展歷程。"
}, },
"create": { "create": {
"title": "Create automations", "title": "建立自動化流程",
"description": "Add new automations." "description": "新增新的自動化流程。"
}, },
"edit": { "edit": {
"title": "Edit automations", "title": "編輯自動化",
"description": "Change existing automations." "description": "修改現有自動化流程。"
}, },
"delete": { "delete": {
"title": "Delete automations", "title": "刪除自動化",
"description": "Remove automations." "description": "移除自動化流程。"
}, },
"run": { "run": {
"title": "Run automations", "title": "運作自動化",
"description": "Trigger an automation by hand." "description": "手動觸發自動化流程。"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"automations": { "automations": {
"title": "Automations", "title": "自動化",
"tabAutomations": "Automations", "tabAutomations": "自動化",
"tabRuns": "Runs", "tabRuns": "跑",
"tabChannels": "通道", "tabChannels": "通道",
"createAutomation": "New Automation", "createAutomation": "新自動化",
"backToAutomations": "Back to Automations", "backToAutomations": "返回自動化頁面",
"createTitle": "New Automation", "createTitle": "新自動化",
"editTitle": "Edit Automation", "editTitle": "編輯自動化",
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.", "empty": "目前還沒有自動化流程。您可以建立一個自動化流程,使其能夠根據指標、日程安排或事件做出反應。",
"emptyRuns": "No runs yet.", "emptyRuns": "目前還沒有人運行。",
"channelsHint": "Channels are set up in Alerts", "channelsHint": "頻道在警報中設置",
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.", "noChannelsHint": "提醒訊息始終會傳送到您的收件匣。您可以在「提醒」中新增其他管道,以便將提醒訊息也傳送到其他位置。",
"nameLabel": "名稱", "nameLabel": "名稱",
"namePlaceholder": "e.g., Clean up /data when it fills", "namePlaceholder": "例如,當 /data 目錄填滿時進行清理。",
"nameRequired": "名稱為必填", "nameRequired": "名稱為必填",
"descriptionLabel": "說明", "descriptionLabel": "說明",
"descriptionPlaceholder": "選用說明", "descriptionPlaceholder": "選用說明",
"enabledLabel": "已啟用", "enabledLabel": "已啟用",
"concurrencyLabel": "If it is already running", "concurrencyLabel": "如果它已經在運行",
"concurrencyHint": "What to do when this is triggered again before the last run has finished.", "concurrencyHint": "如果在上次運行結束前再次觸發此問題,該怎麼辦?",
"concurrency": { "concurrency": {
"skip": "Skip the new run", "skip": "跳過新一輪",
"queue": "Wait and run after", "queue": "等待並追趕",
"allow": "Run both at once" "allow": "同時運行這兩個程序"
}, },
"save": "儲存", "save": "儲存",
"created": "Automation created", "created": "自動化創建",
"updated": "Automation saved", "updated": "自動化保存",
"deleted": "Automation deleted", "deleted": "自動化刪除",
"deleteConfirm": "Delete this automation? Its run history is deleted too.", "deleteConfirm": "刪除此自動化流程?其運行歷史記錄也會被刪除。",
"runNow": "Run now", "runNow": "立即運行",
"testRun": "Test run", "testRun": "測試運行",
"testRunHint": "Runs every step but does not touch anything outside Termix.", "testRunHint": "執行所有步驟,但不觸及 Termix 以外的任何內容。",
"runStarted": "Run started", "runStarted": "運行已啟動",
"runFinished": "Run finished: {{status}}", "runFinished": "運轉結束: {{status}}",
"trigger": "觸發條件", "trigger": "觸發條件",
"steps": "Steps", "steps": "步驟",
"addStep": "Add step", "addStep": "新增步驟",
"removeStep": "Remove step", "removeStep": "移除步驟",
"moveUp": "Move up", "moveUp": "向上",
"moveDown": "Move down", "moveDown": "向下",
"noSteps": "No steps yet. Add one to say what should happen.", "noSteps": "暫無步驟。請加入步驟說明應該發生什麼。",
"webhookTokenTitle": "Webhook URL", "webhookTokenTitle": "Webhook URL",
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.", "webhookTokenDescription": "此資訊僅顯示一次。請立即儲存,之後將無法調取。",
"copy": "複製", "copy": "複製",
"copied": "已複製", "copied": "已複製",
"viewJson": "JSON", "viewJson": "JSON",
"viewBuilder": "Builder", "viewBuilder": "建造者",
"viewGraph": "Graph", "viewGraph": "圖形",
"lastRun": "Last run", "lastRun": "最後一次運行",
"never": "從未", "never": "從未",
"duration": "{{seconds}}s", "duration": "{{seconds}}s",
"stepOutput": "輸出", "stepOutput": "輸出",
"stepError": "錯誤", "stepError": "錯誤",
"dryRunBadge": "Test run", "dryRunBadge": "測試運行",
"hostSelector": { "hostSelector": {
"trigger": "Triggering host", "trigger": "觸發主機",
"host": "Specific host", "host": "特定主機",
"fleet": "Fleet", "fleet": "艦隊",
"all": "所有主機" "all": "所有主機"
}, },
"triggerKinds": { "triggerKinds": {
"metric_threshold": "Metric threshold", "metric_threshold": "指標閾值",
"host_status": "Host goes up or down", "host_status": "主機升溫或降溫",
"health_check": "Health check changes", "health_check": "健康檢查變化",
"schedule": "On a schedule", "schedule": "按計劃",
"docker_event": "Container event", "docker_event": "容器事件",
"internal_event": "Termix event", "internal_event": "Termix 活動",
"webhook": "Incoming webhook" "webhook": "傳入的 webhook"
}, },
"stepTypes": { "stepTypes": {
"notify": "Send an alert", "notify": "發送提醒",
"http": "Call a URL", "http": "呼叫 URL",
"run_snippet": "Run a snippet", "run_snippet": "運行一段程式碼片段",
"run_command": "Run a command", "run_command": "運行命令",
"docker": "Control a container", "docker": "控制容器",
"tunnel": "Control a tunnel", "tunnel": "控制隧道",
"wol": "Wake a host", "wol": "喚醒主機",
"wait": "Wait", "wait": "等待",
"set_var": "Set a variable", "set_var": "設定變數",
"if": "If / otherwise", "if": "如果/否則",
"run_automation": "Run another automation", "run_automation": "執行另一個自動化流程",
"stop": "停止位元" "stop": "停止位元"
}, },
"statuses": { "statuses": {
"running": "執行中", "running": "執行中",
"success": "成功", "success": "成功",
"failed": "失敗", "failed": "失敗",
"timeout": "Timed out", "timeout": "超時",
"skipped": "Skipped", "skipped": "跳過",
"cancelled": "Cancelled" "cancelled": "取消"
}, },
"fields": { "fields": {
"host": "主機", "host": "主機",
"metric": "指標", "metric": "指標",
"mount": "Mount point", "mount": "登山點",
"operator": "Is", "operator": "是",
"value": "Value", "value": "價值",
"forSeconds": "Sustained for (seconds)", "forSeconds": "持續(秒)",
"cooldown": "冷卻時間(分鐘)", "cooldown": "冷卻時間(分鐘)",
"cron": "Cron expression", "cron": "複製表達式",
"intervalSeconds": "Every (seconds)", "intervalSeconds": "每隔(秒)",
"timezone": "Time zone", "timezone": "時區",
"timezoneServer": "Server time", "timezoneServer": "伺服器時間",
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.", "timezoneHint": "此區域讀取 cron 任務的時間。不適用於間隔任務。",
"container": "Container", "container": "容器",
"command": "指令", "command": "指令",
"url": "URL", "url": "URL",
"method": "Method", "method": "方法",
"body": "Body", "body": "身體",
"channels": "Also send to", "channels": "也發送到",
"title": "標題", "title": "標題",
"message": "Message", "message": "訊息",
"snippet": "Snippet", "snippet": "片段",
"seconds": "Seconds", "seconds": "秒",
"conditionLeftPlaceholder": "Value to check", "conditionLeftPlaceholder": "待檢查的數值",
"conditionRightPlaceholder": "Compare against", "conditionRightPlaceholder": "與…比較",
"variableName": "Variable name", "variableName": "變數名",
"variableValue": "Value", "variableValue": "價值",
"elevated": "Run with sudo", "elevated": "使用 sudo 運行",
"onError": "If this fails", "onError": "如果失敗",
"allowPrivateNetwork": "Allow local network addresses", "allowPrivateNetwork": "允許本地網路位址",
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses." "allowPrivateNetworkHint": "在區域網路內執行自託管服務時需要此功能。預設為關閉狀態,以防止向內部位址發送請求。"
}, },
"onError": { "onError": {
"stop": "Stop the run", "stop": "停止奔跑",
"continue": "Carry on" "continue": "繼續"
}, },
"needsPlugin": "Needs {{plugin}}", "needsPlugin": "需要 {{plugin}}",
"needsPluginHint": "This automation is skipped until the feature it needs is available again.", "needsPluginHint": "這個自動化流程將被跳過,直到所需的功能再次可用為止。",
"offBadge": "關閉", "offBadge": "關閉",
"docsLink": "檢視文件", "docsLink": "檢視文件",
"ago": { "ago": {
"seconds": "{{count}}s ago", "seconds": "{{count}}秒前",
"minutes": "{{count}} 分鐘前", "minutes": "{{count}} 分鐘前",
"hours": "{{count}} 小時前", "hours": "{{count}} 小時前",
"days": "{{count}} 天前" "days": "{{count}} 天前"
@@ -166,46 +166,46 @@
} }
}, },
"nav": { "nav": {
"automations": "Automations" "automations": "自動化"
}, },
"onboarding": { "onboarding": {
"feature_automations": "Automations", "feature_automations": "自動化",
"feature_automations_desc": "Run steps automatically when something happens, and get notified." "feature_automations_desc": "當發生某些事情時,自動運行步驟並接收通知。"
}, },
"maintenance": { "maintenance": {
"title": "維護", "title": "維護",
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.", "description": "工作進行期間,暫停主機狀態、健康狀況、指標、容器和隧道斷開連線的自動化操作。監控、手動運行和計劃的自動化操作將繼續進行。",
"denied": "You do not have permission to view maintenance.", "denied": "您沒有權限查看維護資訊。",
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.", "sharedReadOnly": "這台主機是與您共享的。只有主機所有者才能變更維護設定。",
"failed": "Maintenance could not be updated.", "failed": "維護資訊無法更新。",
"active": "Maintenance active", "active": "維護活動",
"estimated": "Estimated completion", "estimated": "預計完成時間",
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.", "noAutoEnd": "估價並不意味著維護工作結束。工作完成後,應明確終止維護合約。",
"endConfirm": "End maintenance and resume event-triggered automations for this host?", "endConfirm": "結束此主機的維護並恢復事件觸發的自動化操作?",
"confirmEnd": "Confirm end", "confirmEnd": "確認結束",
"cancel": "取消", "cancel": "取消",
"end": "End maintenance", "end": "維護結束",
"action": "動作", "action": "動作",
"startNow": "Start now", "startNow": "立即開始",
"schedule": "Schedule for later", "schedule": "稍後安排",
"reason": "Reason", "reason": "原因",
"startUtc": "First start (UTC)", "startUtc": "首次啟動(UTC)",
"repeat": "Repeat", "repeat": "重複",
"once": "Once", "once": "一次",
"weekly": "Weekly", "weekly": "每週",
"monthly": "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.", "utcHelp": "全年所有計劃均採用世界協調時 (UTC)。每月計劃會跳過沒有所選日期的月份。計劃視窗不能重疊;逾時維護會在後續視窗繼續進行。",
"duration": "Estimated duration (minutes)", "duration": "預計持續時間(分鐘)",
"grace": "Grace period (minutes)", "grace": "寬限期(分鐘)",
"notify": "Notify once if still offline after the estimate plus grace period", "notify": "如果在預估時間和寬限期結束後仍離線,請通知一次。",
"addSchedule": "Add schedule", "addSchedule": "新增日程",
"schedules": "Schedules", "schedules": "日程安排",
"noSchedules": "No maintenance schedules.", "noSchedules": "沒有維護計劃。",
"completed": "Already started", "completed": "已經開始",
"minutes_one": "{{count}} minute", "minutes_one": "{{count}} 分鐘",
"minutes_other": "{{count}} minutes", "minutes_other": "{{count}} 分鐘",
"remove": "Remove schedule", "remove": "移除行程",
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.", "loadFailed": "無法刷新維護狀態。更改功能已停用,待狀態載入完畢後方可啟用。",
"loading": "Loading maintenance status…" "loading": "正在載入維護狀態…"
} }
} }
+120 -120
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "এই হোস্টের জন্য ডকার সক্রিয় করা নেই।",
"validating": "Validating Docker...", "validating": "ডকার যাচাই করা হচ্ছে...",
"connecting": "Connecting...", "connecting": "সংযোগ স্থাপন...",
"error": "Error", "error": "ত্রুটি",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "ডকারের সাথে সংযোগ করতে ব্যর্থ হয়েছে",
"containerStarted": "Container {{name}} started", "containerStarted": "কন্টেইনার {{name}} চালু হয়েছে",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "{{name}} কন্টেইনারটি শুরু করতে ব্যর্থ হয়েছে",
"containerStopped": "Container {{name}} stopped", "containerStopped": "কন্টেইনার {{name}} থেমে গেছে",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "কন্টেইনার বন্ধ করতে ব্যর্থ {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "কন্টেইনার {{name}} পুনরায় চালু হয়েছে",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "কন্টেইনার পুনরায় চালু করতে ব্যর্থ {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "কন্টেইনার {{name}} থামানো হয়েছে",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "কন্টেইনার {{name}} বিরতিহীন",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "কন্টেইনার {{name}} এর জন্য বিরতি অবস্থা টগল করতে ব্যর্থ হয়েছে",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "কন্টেইনার {{name}} সরানো হয়েছে",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "কন্টেইনার অপসারণ করা সম্ভব হয়নি {{name}}",
"image": "Image", "image": "ছবি",
"ports": "Ports", "ports": "বন্দর",
"noPorts": "No ports", "noPorts": "কোন পোর্ট নেই",
"start": "Start", "start": "শুরু করুন",
"stop": "Stop", "stop": "থামুন",
"status": "Status", "status": "অবস্থা",
"actions": "Actions", "actions": "কর্ম",
"cardView": "Card view", "cardView": "কার্ড ভিউ",
"listView": "List view", "listView": "তালিকা দৃশ্য",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "আপনি কি '{{name}}' কন্টেইনারটি সরাতে নিশ্চিত? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "সতর্কীকরণ: এই কন্টেইনারটি বর্তমানে চালু আছে। এটি অপসারণ করলে প্রথমে কন্টেইনারটি বন্ধ হবে।",
"loadingContainers": "Loading containers...", "loadingContainers": "কন্টেইনার লোড করা হচ্ছে...",
"manager": "Docker Manager", "manager": "ডকার ম্যানেজার",
"autoRefresh": "Auto Refresh", "autoRefresh": "স্বয়ংক্রিয় রিফ্রেশ",
"timestamps": "Timestamps", "timestamps": "টাইমস্ট্যাম্প",
"lines": "Lines", "lines": "লাইন",
"filterLogs": "Filter logs...", "filterLogs": "লগ ফিল্টার করুন...",
"refresh": "Refresh", "refresh": "রিফ্রেশ",
"download": "Download", "download": "ডাউনলোড করুন",
"clear": "Clear", "clear": "পরিষ্কার",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "লগগুলি সফলভাবে ডাউনলোড করা হয়েছে।",
"last50": "Last 50", "last50": "শেষ ৫০",
"last100": "Last 100", "last100": "শেষ ১০০",
"last500": "Last 500", "last500": "শেষ ৫০০",
"last1000": "Last 1000", "last1000": "শেষ ১০০০",
"allLogs": "All Logs", "allLogs": "সমস্ত লগ",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "\"{{query}} \" এর সাথে মেলে এমন কোনও লগ নেই",
"noLogsAvailable": "No logs available", "noLogsAvailable": "কোন লগ উপলব্ধ নেই",
"noContainersFound": "No containers found", "noContainersFound": "কোন কন্টেইনার পাওয়া যায়নি",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "এই হোস্টে কোনো ডকার কন্টেইনার উপলব্ধ নেই।",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "কন্টেইনারগুলি অনুসন্ধান করুন...",
"allStatuses": "All Statuses", "allStatuses": "সমস্ত স্ট্যাটাস",
"stateRunning": "Running", "stateRunning": "দৌড়ানো",
"statePaused": "Paused", "statePaused": "বিরতি দেওয়া হয়েছে",
"stateExited": "Exited", "stateExited": "উত্তেজিত",
"stateRestarting": "Restarting", "stateRestarting": "পুনরায় চালু করা",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "আপনার ফিল্টারগুলির সাথে কোনও কন্টেইনার মেলে না",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "আপনার অনুসন্ধান বা ফিল্টারের শর্তাবলী পরিবর্তন করে দেখুন।",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "কন্টেইনার পরিসংখ্যান আনতে ব্যর্থ হয়েছে",
"containerNotRunning": "Container not running", "containerNotRunning": "কন্টেইনারটি চলছে না",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "পরিসংখ্যান দেখতে কন্টেইনারটি চালু করুন।",
"loadingStats": "Loading statistics...", "loadingStats": "পরিসংখ্যান লোড হচ্ছে...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "পরিসংখ্যান লোড করতে ত্রুটি",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "কোন পরিসংখ্যান উপলব্ধ নেই",
"cpuUsage": "CPU Usage", "cpuUsage": "সিপিইউ ব্যবহার",
"current": "Current", "current": "বর্তমান",
"memoryUsage": "Memory Usage", "memoryUsage": "মেমরি ব্যবহার",
"networkIo": "Network I/O", "networkIo": "নেটওয়ার্ক আই/ও",
"input": "Input", "input": "ইনপুট",
"output": "Output", "output": "আউটপুট",
"blockIo": "Block I/O", "blockIo": "ব্লক আই/ও",
"read": "Read", "read": "পড়ুন",
"write": "Write", "write": "লিখুন",
"pids": "PIDs", "pids": "পিআইডি",
"containerInformation": "Container Information", "containerInformation": "কন্টেইনারের তথ্য",
"name": "Name", "name": "নাম",
"id": "ID", "id": "আইডি",
"state": "State", "state": "রাজ্য",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "কনসোল অ্যাক্সেস করতে হলে কন্টেইনারটি অবশ্যই চালু থাকতে হবে।",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "যাচাইকরণ কোড প্রবেশ করান",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "TOTP যাচাইকরণ ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "সাইন-ইন ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "{{containerName}} এর সাথে সংযুক্ত",
"disconnected": "Disconnected", "disconnected": "বিচ্ছিন্ন",
"consoleError": "Console error", "consoleError": "কনসোল ত্রুটি",
"errorMessage": "Error: {{message}}", "errorMessage": "ত্রুটি: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "কন্টেইনারের সাথে সংযোগ করতে ব্যর্থ হয়েছে",
"console": "Console", "console": "কনসোল",
"selectShell": "Select shell", "selectShell": "শেল নির্বাচন করুন",
"bash": "Bash", "bash": "ব্যাশ",
"sh": "sh", "sh": "শ",
"ash": "ash", "ash": "ছাই",
"connect": "Connect", "connect": "সংযোগ করুন",
"disconnect": "Disconnect", "disconnect": "সংযোগ বিচ্ছিন্ন করুন",
"notConnected": "Not connected", "notConnected": "সংযুক্ত নয়",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "শেল সেশন শুরু করতে কানেক্ট-এ ক্লিক করুন।",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "{{containerName}} এর সাথে সংযোগ স্থাপন করা হচ্ছে...",
"containerNotFound": "Container not found", "containerNotFound": "কন্টেইনারটি খুঁজে পাওয়া যায়নি",
"backToList": "Back to List", "backToList": "তালিকায় ফিরে যান",
"logs": "Logs", "logs": "লগ",
"stats": "Stats", "stats": "পরিসংখ্যান",
"consoleTab": "Console", "consoleTab": "কনসোল",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "কনসোল অ্যাক্সেস করতে কন্টেইনারটি চালু করুন।",
"noHostSelected": "No host selected", "noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "লগ আনতে ব্যর্থ: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "লগ ডাউনলোড করা যায়নি: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "ডকার"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "ডকার",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "ডকার চালিত যেকোনো হোস্টে কন্টেইনার দেখুন, লগ পড়ুন এবং পরিসংখ্যান পর্যবেক্ষণ করুন।"
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "পুনরায় চেষ্টা করুন",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "ক্লিপবোর্ড থেকে পড়তে ব্যর্থ হয়েছে। নিশ্চিত করুন যে ক্লিপবোর্ডের অনুমতি দেওয়া আছে।",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "ক্লিপবোর্ডে কপি করা সম্ভব হয়নি। নিশ্চিত করুন যে পৃষ্ঠাটি HTTPS বা লোকালহোস্টের মাধ্যমে পরিবেশিত হচ্ছে।"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "ডকার ব্যবহার করুন",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "যেসব হোস্টে ডকার সক্রিয় করা আছে, সেগুলোতে ডকার ম্যানেজার এবং কন্টেইনার কনসোল খুলুন।"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "ডকার সক্রিয় করুন",
"description": "Manage containers on this host." "description": "এই হোস্টে কন্টেইনারগুলি পরিচালনা করুন।"
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "কন্টেইনার রানটাইম",
"description": "Choose the CLI used for container management on this host", "description": "এই হোস্টে কন্টেইনার ব্যবস্থাপনার জন্য ব্যবহৃত CLI নির্বাচন করুন",
"docker": "Docker", "docker": "ডকার",
"podman": "Podman" "podman": "পডম্যান"
} }
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "রিমোট সার্ভার প্রয়োজন। এই সংযোগের ধরণটি ব্যবহার করতে সেটিংস-এ একটি রিমোট সার্ভার সংযুক্ত করুন।"
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "নথি দেখুন",
"hostNotFound": "Host not found", "hostNotFound": "হোস্ট খুঁজে পাওয়া যায়নি",
"loadingHost": "Loading host..." "loadingHost": "হোস্ট লোড হচ্ছে..."
} }
} }
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "प्रारंभ करें", "start": "प्रारंभ करें",
"stop": "स्टॉप", "stop": "स्टॉप",
"status": "स्थिति", "status": "स्थिति",
"actions": "Actions", "actions": "कार्रवाई",
"cardView": "Card view", "cardView": "कार्ड दृश्य",
"listView": "List view", "listView": "लिस्ट व्यू",
"confirmRemoveContainer": "क्या आप वाकई कंटेनर '{{name}}' हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती।", "confirmRemoveContainer": "क्या आप वाकई कंटेनर '{{name}}' हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती।",
"runningContainerWarning": "चेतावनी: यह कंटेनर वर्तमान में चल रहा है। हटाने पर पहले इसे रोका जाएगा।", "runningContainerWarning": "चेतावनी: यह कंटेनर वर्तमान में चल रहा है। हटाने पर पहले इसे रोका जाएगा।",
"loadingContainers": "कंटेनर लोड हो रहे हैं...", "loadingContainers": "कंटेनर लोड हो रहे हैं...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "कंसोल तक पहुंचने के लिए कंटेनर चालू होना चाहिए", "containerMustBeRunning": "कंसोल तक पहुंचने के लिए कंटेनर चालू होना चाहिए",
"verificationCodePrompt": "सत्यापन कोड दर्ज करें", "verificationCodePrompt": "सत्यापन कोड दर्ज करें",
"totpVerificationFailed": "TOTP सत्यापन विफल। कृपया पुनः प्रयास करें।", "totpVerificationFailed": "TOTP सत्यापन विफल। कृपया पुनः प्रयास करें।",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "प्रवेश विफल। कृपया दोबारा प्रयास करें।",
"connectedTo": "{{containerName}} से जुड़ा", "connectedTo": "{{containerName}} से जुड़ा",
"disconnected": "डिस्कनेक्टेड", "disconnected": "डिस्कनेक्टेड",
"consoleError": "कंसोल त्रुटि", "consoleError": "कंसोल त्रुटि",
@@ -101,15 +101,15 @@
"consoleTab": "कंसोल", "consoleTab": "कंसोल",
"startContainerToAccess": "कंसोल तक पहुंचने के लिए कंटेनर चालू करें", "startContainerToAccess": "कंसोल तक पहुंचने के लिए कंटेनर चालू करें",
"noHostSelected": "कोई होस्ट चयनित नहीं है", "noHostSelected": "कोई होस्ट चयनित नहीं है",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "लॉग प्राप्त करने में विफल: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "लॉग डाउनलोड करने में विफल: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Docker",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "डॉकर चलाने वाले किसी भी होस्ट पर कंटेनर देखें, लॉग पढ़ें और आंकड़े देखें।"
}, },
"terminal": { "terminal": {
"retry": "पुनः प्रयास करें", "retry": "पुनः प्रयास करें",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "डॉकर का उपयोग करें",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "जिन होस्ट पर डॉकर सक्षम है, उन पर डॉकर मैनेजर और कंटेनर कंसोल खोलें।"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Docker सक्षम करें", "label": "Docker सक्षम करें",
"description": "Manage containers on this host." "description": "इस होस्ट पर कंटेनरों का प्रबंधन करें।"
}, },
"containerRuntime": { "containerRuntime": {
"label": "कंटेनर रनटाइम", "label": "कंटेनर रनटाइम",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "रिमोट सर्वर आवश्यक है। इस कनेक्शन प्रकार का उपयोग करने के लिए सेटिंग्स में जाकर रिमोट सर्वर कनेक्ट करें।"
}, },
"hosts": { "hosts": {
"docsLink": "दस्तावेज़ देखें", "docsLink": "दस्तावेज़ देखें",
+117 -117
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Docker tidak diaktifkan untuk host ini.",
"validating": "Validating Docker...", "validating": "Memvalidasi Docker...",
"connecting": "Connecting...", "connecting": "Menghubungkan...",
"error": "Error", "error": "Kesalahan",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Gagal terhubung ke Docker",
"containerStarted": "Container {{name}} started", "containerStarted": "Kontainer {{name}} dimulai",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Gagal memulai kontainer {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Kontainer {{name}} berhenti",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Gagal menghentikan kontainer {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Kontainer {{name}} dimulai ulang",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Gagal memulai ulang kontainer {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "Kontainer {{name}} berhenti",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Kontainer {{name}} tidak dijeda",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Gagal mengubah status jeda untuk kontainer {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Kontainer {{name}} dihapus",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Gagal menghapus kontainer {{name}}",
"image": "Image", "image": "Gambar",
"ports": "Ports", "ports": "Pelabuhan",
"noPorts": "No ports", "noPorts": "Tidak ada port",
"start": "Start", "start": "Awal",
"stop": "Stop", "stop": "Berhenti",
"status": "Status", "status": "Status",
"actions": "Actions", "actions": "Tindakan",
"cardView": "Card view", "cardView": "Tampilan kartu",
"listView": "List view", "listView": "Tampilan daftar",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Apakah Anda yakin ingin menghapus kontainer '{{name}}'? Tindakan ini tidak dapat dibatalkan.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Peringatan: Kontainer ini sedang berjalan. Menghapusnya akan menghentikan kontainer terlebih dahulu.",
"loadingContainers": "Loading containers...", "loadingContainers": "Memuat kontainer...",
"manager": "Docker Manager", "manager": "Manajer Docker",
"autoRefresh": "Auto Refresh", "autoRefresh": "Penyegaran Otomatis",
"timestamps": "Timestamps", "timestamps": "Cap waktu",
"lines": "Lines", "lines": "Garis",
"filterLogs": "Filter logs...", "filterLogs": "Filter log...",
"refresh": "Refresh", "refresh": "Menyegarkan",
"download": "Download", "download": "Unduh",
"clear": "Clear", "clear": "Jernih",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Log berhasil diunduh.",
"last50": "Last 50", "last50": "50 Terakhir",
"last100": "Last 100", "last100": "100 terakhir",
"last500": "Last 500", "last500": "500 Terakhir",
"last1000": "Last 1000", "last1000": "1000 terakhir",
"allLogs": "All Logs", "allLogs": "Semua Log",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Tidak ada log yang cocok dengan \"{{query}}\"",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Tidak ada log yang tersedia.",
"noContainersFound": "No containers found", "noContainersFound": "Tidak ditemukan wadah apa pun",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "Tidak ada kontainer Docker yang tersedia di host ini.",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Cari kontainer...",
"allStatuses": "All Statuses", "allStatuses": "Semua Status",
"stateRunning": "Running", "stateRunning": "Berlari",
"statePaused": "Paused", "statePaused": "Dijeda",
"stateExited": "Exited", "stateExited": "Keluar",
"stateRestarting": "Restarting", "stateRestarting": "Memulai ulang",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Tidak ada wadah yang sesuai dengan filter Anda.",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Cobalah menyesuaikan kriteria pencarian atau filter Anda.",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Gagal mengambil statistik kontainer",
"containerNotRunning": "Container not running", "containerNotRunning": "Kontainer tidak berjalan",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Jalankan kontainer untuk melihat statistik.",
"loadingStats": "Loading statistics...", "loadingStats": "Memuat statistik...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Terjadi kesalahan saat memuat statistik.",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Tidak ada statistik yang tersedia.",
"cpuUsage": "CPU Usage", "cpuUsage": "Penggunaan CPU",
"current": "Current", "current": "Saat ini",
"memoryUsage": "Memory Usage", "memoryUsage": "Penggunaan Memori",
"networkIo": "Network I/O", "networkIo": "Input/Output Jaringan",
"input": "Input", "input": "Masukan",
"output": "Output", "output": "Keluaran",
"blockIo": "Block I/O", "blockIo": "Blok I/O",
"read": "Read", "read": "Membaca",
"write": "Write", "write": "Menulis",
"pids": "PIDs", "pids": "PID",
"containerInformation": "Container Information", "containerInformation": "Informasi Kontainer",
"name": "Name", "name": "Nama",
"id": "ID", "id": "PENGENAL",
"state": "State", "state": "Negara",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "Kontainer harus berjalan agar dapat mengakses konsol.",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "Masukkan kode verifikasi",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "Verifikasi TOTP gagal. Silakan coba lagi.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Login gagal. Silakan coba lagi.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Terhubung ke {{containerName}}",
"disconnected": "Disconnected", "disconnected": "Terputus",
"consoleError": "Console error", "consoleError": "Kesalahan konsol",
"errorMessage": "Error: {{message}}", "errorMessage": "Kesalahan: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Gagal terhubung ke kontainer",
"console": "Console", "console": "Menghibur",
"selectShell": "Select shell", "selectShell": "Pilih cangkang",
"bash": "Bash", "bash": "Pesta",
"sh": "sh", "sh": "sh",
"ash": "ash", "ash": "abu",
"connect": "Connect", "connect": "Menghubungkan",
"disconnect": "Disconnect", "disconnect": "Memutuskan",
"notConnected": "Not connected", "notConnected": "Tidak terhubung",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Klik sambungkan untuk memulai sesi shell.",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Menghubungkan ke {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Kontainer tidak ditemukan",
"backToList": "Back to List", "backToList": "Kembali ke Daftar",
"logs": "Logs", "logs": "Log",
"stats": "Stats", "stats": "Statistik",
"consoleTab": "Console", "consoleTab": "Menghibur",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Jalankan kontainer untuk mengakses konsol.",
"noHostSelected": "No host selected", "noHostSelected": "Tidak ada pembawa acara yang dipilih.",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Gagal mengambil log: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Gagal mengunduh log: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Buruh pelabuhan"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Buruh pelabuhan",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Lihat kontainer, baca log, dan pantau statistik pada host mana pun yang menjalankan Docker."
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "Mencoba kembali",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "Gagal membaca dari clipboard. Pastikan izin clipboard telah diberikan.",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "Gagal menyalin ke papan klip. Pastikan halaman disajikan melalui HTTPS atau localhost."
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Gunakan Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Buka pengelola Docker dan konsol kontainer pada host yang telah mengaktifkan Docker."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "Aktifkan Docker",
"description": "Manage containers on this host." "description": "Kelola kontainer di host ini."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Lingkungan Eksekusi Kontainer",
"description": "Choose the CLI used for container management on this host", "description": "Pilih CLI yang digunakan untuk manajemen kontainer pada host ini.",
"docker": "Docker", "docker": "Buruh pelabuhan",
"podman": "Podman" "podman": "Podman"
} }
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "View docs", "docsLink": "Lihat dokumen",
"hostNotFound": "Host not found", "hostNotFound": "Host tidak ditemukan",
"loadingHost": "Loading host..." "loadingHost": "Memuat host..."
} }
} }
+93 -93
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Docker er ikke aktivert for denne verten",
"validating": "Validating Docker...", "validating": "Validerer Docker...",
"connecting": "Kobler til...", "connecting": "Kobler til...",
"error": "Feil", "error": "Feil",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Kunne ikke koble til Docker",
"containerStarted": "Container {{name}} started", "containerStarted": "Container {{name}} startet",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Kunne ikke starte containeren {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Container {{name}} stoppet",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Klarte ikke å stoppe containeren {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Beholder {{name}} startet på nytt",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Kunne ikke starte beholderen {{name}} på nytt",
"containerPaused": "Container {{name}} paused", "containerPaused": "Beholder {{name}} satt på pause",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Beholder {{name}} er ikke satt på pause lenger",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Kunne ikke slå av/på pausetilstand for container {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Beholder {{name}} fjernet",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Kunne ikke fjerne beholderen {{name}}",
"image": "Image", "image": "Bilde",
"ports": "Ports", "ports": "Porter",
"noPorts": "No ports", "noPorts": "Ingen porter",
"start": "Start", "start": "Start",
"stop": "Stopp", "stop": "Stopp",
"status": "Status", "status": "Status",
"actions": "Handlinger", "actions": "Handlinger",
"cardView": "Card view", "cardView": "Kortvisning",
"listView": "List view", "listView": "Listevisning",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Er du sikker på at du vil fjerne beholderen '{{name}}'? Denne handlingen kan ikke angres.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Advarsel: Denne beholderen kjører for øyeblikket. Hvis du fjerner den, stoppes beholderen først.",
"loadingContainers": "Loading containers...", "loadingContainers": "Laster containere ...",
"manager": "Docker Manager", "manager": "Docker Manager",
"autoRefresh": "Auto Refresh", "autoRefresh": "Automatisk oppdatering",
"timestamps": "Timestamps", "timestamps": "Tidsstempler",
"lines": "Lines", "lines": "Linjer",
"filterLogs": "Filter logs...", "filterLogs": "Filtrer logger...",
"refresh": "Oppdater", "refresh": "Oppdater",
"download": "Last ned", "download": "Last ned",
"clear": "Tøm", "clear": "Tøm",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Loggene er lastet ned",
"last50": "Last 50", "last50": "Siste 50",
"last100": "Last 100", "last100": "Siste 100",
"last500": "Last 500", "last500": "Siste 500",
"last1000": "Last 1000", "last1000": "Siste 1000",
"allLogs": "All Logs", "allLogs": "Alle logger",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Ingen logger som samsvarer med «{{query}}»",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Ingen logger tilgjengelig",
"noContainersFound": "No containers found", "noContainersFound": "Ingen containere funnet",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "Ingen Docker-containere er tilgjengelige på denne verten",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Søk i containere...",
"allStatuses": "All Statuses", "allStatuses": "Alle statuser",
"stateRunning": "Kjører", "stateRunning": "Kjører",
"statePaused": "Paused", "statePaused": "Pauset",
"stateExited": "Exited", "stateExited": "Avsluttet",
"stateRestarting": "Restarting", "stateRestarting": "Starter på nytt",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Ingen beholdere samsvarer med filtrene dine",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Prøv å justere søke- eller filterkriteriene dine",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Kunne ikke hente containerstatistikk",
"containerNotRunning": "Container not running", "containerNotRunning": "Beholderen kjører ikke",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Start beholderen for å se statistikk",
"loadingStats": "Loading statistics...", "loadingStats": "Laster inn statistikk ...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Feil ved lasting av statistikk",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Ingen statistikk tilgjengelig",
"cpuUsage": "CPU-bruk", "cpuUsage": "CPU-bruk",
"current": "Current", "current": "Nåværende",
"memoryUsage": "Minnebruk", "memoryUsage": "Minnebruk",
"networkIo": "Network I/O", "networkIo": "Nettverk I/O",
"input": "Input", "input": "Inndata",
"output": "Output", "output": "Produksjon",
"blockIo": "Block I/O", "blockIo": "Blokk I/O",
"read": "Les", "read": "Les",
"write": "Skriv", "write": "Skriv",
"pids": "PIDs", "pids": "PID-er",
"containerInformation": "Container Information", "containerInformation": "Containerinformasjon",
"name": "Navn", "name": "Navn",
"id": "ID", "id": "ID",
"state": "State", "state": "Tilstand",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "Containeren må kjøre for å få tilgang til konsollen",
"verificationCodePrompt": "Angi verifikasjonskode", "verificationCodePrompt": "Angi verifikasjonskode",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "TOTP-verifisering mislyktes. Prøv på nytt.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Påloggingen mislyktes. Prøv på nytt.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Koblet til {{containerName}}",
"disconnected": "Frakoblet", "disconnected": "Frakoblet",
"consoleError": "Console error", "consoleError": "Konsollfeil",
"errorMessage": "Feil: {{message}}", "errorMessage": "Feil: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Kunne ikke koble til beholderen",
"console": "Console", "console": "Konsoll",
"selectShell": "Select shell", "selectShell": "Velg skall",
"bash": "Bash", "bash": "Bash",
"sh": "sh", "sh": "sh",
"ash": "ash", "ash": "aske",
"connect": "Koble til", "connect": "Koble til",
"disconnect": "Koble fra", "disconnect": "Koble fra",
"notConnected": "Not connected", "notConnected": "Ikke tilkoblet",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Klikk på koble til for å starte en skalløkt",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Kobler til {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Beholderen ble ikke funnet",
"backToList": "Back to List", "backToList": "Tilbake til listen",
"logs": "Logs", "logs": "Logger",
"stats": "Stats", "stats": "Statistikk",
"consoleTab": "Console", "consoleTab": "Konsoll",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Start containeren for å få tilgang til konsollen",
"noHostSelected": "Ingen vert valgt", "noHostSelected": "Ingen vert valgt",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Kunne ikke hente logger: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Kunne ikke laste ned logger: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Dokker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Dokker",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Se containere, les logger og se statistikk på alle verter som kjører Docker."
}, },
"terminal": { "terminal": {
"retry": "Prøv igjen", "retry": "Prøv igjen",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "Kunne ikke lese fra utklippstavlen. Sørg for at utklippstavlen har tillatelser.",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "Kunne ikke kopiere til utklippstavlen. Sørg for at siden serveres via HTTPS eller localhost."
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Bruk Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Åpne Docker-behandleren og containerkonsollene på verter med Docker aktivert."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "Aktiver Docker",
"description": "Manage containers on this host." "description": "Administrer containere på denne verten."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Containerkjøringstid",
"description": "Choose the CLI used for container management on this host", "description": "Velg CRI-et som brukes for containeradministrasjon på denne verten",
"docker": "Docker", "docker": "Dokker",
"podman": "Podman" "podman": "Podman"
} }
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "View docs", "docsLink": "Vis dokumenter",
"hostNotFound": "Host not found", "hostNotFound": "Verten ble ikke funnet",
"loadingHost": "Loading host..." "loadingHost": "Laster inn vert ..."
} }
} }
+9 -9
View File
@@ -23,9 +23,9 @@
"start": "Start", "start": "Start",
"stop": "Stop", "stop": "Stop",
"status": "Status", "status": "Status",
"actions": "Actions", "actions": "Akcje",
"cardView": "Card view", "cardView": "Widok karty",
"listView": "List view", "listView": "Widok listy",
"confirmRemoveContainer": "Czy na pewno chcesz usunąć kontener „{{name}}”? Tej czynności nie można cofnąć.", "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.", "runningContainerWarning": "Ostrzeżenie: Ten kontener jest obecnie uruchomiony. Jego usunięcie spowoduje najpierw jego zatrzymanie.",
"loadingContainers": "Ładowanie kontenerów...", "loadingContainers": "Ładowanie kontenerów...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "Aby uzyskać dostęp do konsoli, kontener musi być uruchomiony", "containerMustBeRunning": "Aby uzyskać dostęp do konsoli, kontener musi być uruchomiony",
"verificationCodePrompt": "Wprowadź kod weryfikacyjny", "verificationCodePrompt": "Wprowadź kod weryfikacyjny",
"totpVerificationFailed": "Weryfikacja TOTP nie powiodła się. Spróbuj ponownie.", "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}}", "connectedTo": "Połączono z {{containerName}}",
"disconnected": "Rozłączono", "disconnected": "Rozłączono",
"consoleError": "Błąd konsoli", "consoleError": "Błąd konsoli",
@@ -101,8 +101,8 @@
"consoleTab": "Konsola", "consoleTab": "Konsola",
"startContainerToAccess": "Uruchom kontener, aby uzyskać dostęp do konsoli", "startContainerToAccess": "Uruchom kontener, aby uzyskać dostęp do konsoli",
"noHostSelected": "Nie wybrano hosta", "noHostSelected": "Nie wybrano hosta",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Nie udało się pobrać dzienników: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Nie udało się pobrać dzienników: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Użyj Dockera",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Otwórz menedżera Docker i konsole kontenerów na hostach z włączonym Dockerem."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Włącz Docker", "label": "Włącz Docker",
"description": "Manage containers on this host." "description": "Zarządzaj kontenerami na tym hoście."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Środowisko wykonawcze kontenera", "label": "Środowisko wykonawcze kontenera",
+96 -96
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "O Docker não está habilitado para este host.",
"validating": "Validating Docker...", "validating": "Validando o Docker...",
"connecting": "Conectando...", "connecting": "Conectando...",
"error": "Erro", "error": "Erro",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Falha ao conectar ao Docker",
"containerStarted": "Container {{name}} started", "containerStarted": "Contêiner {{name}} iniciado",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Falha ao iniciar o contêiner {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Contêiner {{name}} parado",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Falha ao parar o contêiner {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Contêiner {{name}} reiniciado",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Falha ao reiniciar o contêiner {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "Contêiner {{name}} pausado",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Contêiner {{name}} despausado",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Falha ao alternar o estado de pausa para o contêiner {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Contêiner {{name}} removido",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Falha ao remover o contêiner {{name}}",
"image": "Image", "image": "Imagem",
"ports": "Ports", "ports": "Portos",
"noPorts": "No ports", "noPorts": "Sem portas",
"start": "Iniciar", "start": "Iniciar",
"stop": "Stop", "stop": "Parar",
"status": "Status", "status": "Status",
"actions": "Actions", "actions": "Ações",
"cardView": "Card view", "cardView": "Visualização em cartão",
"listView": "List view", "listView": "Visualização em lista",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Tem certeza de que deseja remover o contêiner '{{name}}'? Esta ação não pode ser desfeita.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Aviso: Este contêiner está em execução. Removê-lo interromperá o contêiner primeiro.",
"loadingContainers": "Loading containers...", "loadingContainers": "Carregando contêineres...",
"manager": "Docker Manager", "manager": "Gerenciador de Docker",
"autoRefresh": "Auto Refresh", "autoRefresh": "Atualização automática",
"timestamps": "Timestamps", "timestamps": "Carimbos de data/hora",
"lines": "Lines", "lines": "Linhas",
"filterLogs": "Filter logs...", "filterLogs": "Filtrar registros...",
"refresh": "Atualizar", "refresh": "Atualizar",
"download": "Download", "download": "Download",
"clear": "Limpar", "clear": "Limpar",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Registros baixados com sucesso",
"last50": "Last 50", "last50": "Últimos 50",
"last100": "Last 100", "last100": "Últimos 100",
"last500": "Last 500", "last500": "Últimos 500",
"last1000": "Last 1000", "last1000": "Últimos 1000",
"allLogs": "All Logs", "allLogs": "Todos os registros",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Nenhum registro correspondente a \"{{query}}\"",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Nenhum registro disponível",
"noContainersFound": "No containers found", "noContainersFound": "Nenhum contêiner encontrado",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "Não há contêineres Docker disponíveis neste host.",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Contêineres de pesquisa...",
"allStatuses": "All Statuses", "allStatuses": "Todos os status",
"stateRunning": "Running", "stateRunning": "Correndo",
"statePaused": "Paused", "statePaused": "Em pausa",
"stateExited": "Exited", "stateExited": "Saiu",
"stateRestarting": "Restarting", "stateRestarting": "Reiniciando",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Nenhum recipiente corresponde aos seus filtros.",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Tente ajustar seus critérios de pesquisa ou filtro.",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Falha ao obter as estatísticas do contêiner.",
"containerNotRunning": "Container not running", "containerNotRunning": "Contêiner não está em execução",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Inicie o contêiner para visualizar as estatísticas.",
"loadingStats": "Loading statistics...", "loadingStats": "Carregando estatísticas...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Estatísticas de carregamento de erros",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Não há estatísticas disponíveis.",
"cpuUsage": "CPU Usage", "cpuUsage": "Utilização da CPU",
"current": "Current", "current": "Atual",
"memoryUsage": "Memory Usage", "memoryUsage": "Uso de memória",
"networkIo": "Entrada e Saída de rede", "networkIo": "Entrada e Saída de rede",
"input": "Entrada", "input": "Entrada",
"output": "Output", "output": "Saída",
"blockIo": "Bloco de E/S", "blockIo": "Bloco de E/S",
"read": "Read", "read": "Ler",
"write": "Write", "write": "Escrever",
"pids": "Identificadores de Processos", "pids": "Identificadores de Processos",
"containerInformation": "Container Information", "containerInformation": "Informações do contêiner",
"name": "Name", "name": "Nome",
"id": "ID", "id": "EU IA",
"state": "State", "state": "Estado",
"containerMustBeRunning": "O contêiner precisa estar em execução para acessar o console", "containerMustBeRunning": "O contêiner precisa estar em execução para acessar o console",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "Insira o código de verificação",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "A verificação TOTP falhou. Tente novamente.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Conectado a {{containerName}}",
"disconnected": "Disconnected", "disconnected": "Desconectado",
"consoleError": "Console error", "consoleError": "Erro no console",
"errorMessage": "Error: {{message}}", "errorMessage": "Erro: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Falha ao conectar ao contêiner",
"console": "Console", "console": "Console",
"selectShell": "Select shell", "selectShell": "Selecione shell",
"bash": "Bash", "bash": "Bash",
"sh": "sh", "sh": "sh",
"ash": "ash", "ash": "cinzas",
"connect": "Conectar", "connect": "Conectar",
"disconnect": "Desconectar", "disconnect": "Desconectar",
"notConnected": "Not connected", "notConnected": "Não conectado",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Clique em conectar para iniciar uma sessão de shell.",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Conectando a {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Contêiner não encontrado",
"backToList": "Back to List", "backToList": "Voltar à lista",
"logs": "Logs", "logs": "Registros",
"stats": "Stats", "stats": "Estatísticas",
"consoleTab": "Console", "consoleTab": "Console",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Inicie o contêiner para acessar o console.",
"noHostSelected": "No host selected", "noHostSelected": "Nenhum host selecionado",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Falha ao obter os registros: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Falha ao baixar os registros: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "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": { "terminal": {
"retry": "Retry", "retry": "Tentar novamente",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "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": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "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": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Use o Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Abra o gerenciador do Docker e os consoles de contêineres nos hosts com o Docker habilitado."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Ativar Docker", "label": "Ativar Docker",
"description": "Manage containers on this host." "description": "Gerencie os contêineres neste host."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Tempo de execução do contêiner",
"description": "Choose the CLI used for container management on this host", "description": "Escolha a CLI usada para gerenciamento de contêineres neste host.",
"docker": "Docker", "docker": "Docker",
"podman": "Podman" "podman": "Podman"
} }
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "Documentação", "docsLink": "Documentação",
"hostNotFound": "Host not found", "hostNotFound": "Host não encontrado",
"loadingHost": "Loading host..." "loadingHost": "Carregando host..."
} }
} }
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "Iniciar", "start": "Iniciar",
"stop": "Stop", "stop": "Stop",
"status": "Estado", "status": "Estado",
"actions": "Actions", "actions": "Ações",
"cardView": "Card view", "cardView": "Visualização em cartão",
"listView": "List view", "listView": "Visualização em lista",
"confirmRemoveContainer": "Tem a certeza de que pretende remover o contentor '{{name}}'? Esta ação não pode ser desfeita.", "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.", "runningContainerWarning": "Aviso: Este contentor está em execução. Removê-lo irá pará-lo primeiro.",
"loadingContainers": "A carregar contentores...", "loadingContainers": "A carregar contentores...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "O contentor tem de estar em execução para aceder à consola", "containerMustBeRunning": "O contentor tem de estar em execução para aceder à consola",
"verificationCodePrompt": "Introduza o código de verificação", "verificationCodePrompt": "Introduza o código de verificação",
"totpVerificationFailed": "A verificação TOTP falhou. Por favor, tente novamente.", "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}}", "connectedTo": "Ligado a {{containerName}}",
"disconnected": "Desligado", "disconnected": "Desligado",
"consoleError": "Erro da consola", "consoleError": "Erro da consola",
@@ -101,15 +101,15 @@
"consoleTab": "Consola", "consoleTab": "Consola",
"startContainerToAccess": "Inicie o contentor para aceder à consola", "startContainerToAccess": "Inicie o contentor para aceder à consola",
"noHostSelected": "Nenhum anfitrião selecionado", "noHostSelected": "Nenhum anfitrião selecionado",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Falha ao obter os registos: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Falha ao descarregar os registos: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "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": { "terminal": {
"retry": "Repetir", "retry": "Repetir",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Utilize o Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Abra o gestor do Docker e as consolas de contentores nos hosts com o Docker ativado."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Ativar Docker", "label": "Ativar Docker",
"description": "Manage containers on this host." "description": "Gerir os contentores neste host."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Runtime de Contentores", "label": "Runtime de Contentores",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "Ver documentação", "docsLink": "Ver documentação",
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "Запустить", "start": "Запустить",
"stop": "Остановить", "stop": "Остановить",
"status": "Статус", "status": "Статус",
"actions": "Actions", "actions": "Действия",
"cardView": "Card view", "cardView": "Карточный вид",
"listView": "List view", "listView": "Список",
"confirmRemoveContainer": "Вы уверены, что хотите удалить контейнер «{{name}}»? Это действие нельзя отменить.", "confirmRemoveContainer": "Вы уверены, что хотите удалить контейнер «{{name}}»? Это действие нельзя отменить.",
"runningContainerWarning": "Предупреждение: этот контейнер в настоящее время работает. При удалении он будет сначала остановлен.", "runningContainerWarning": "Предупреждение: этот контейнер в настоящее время работает. При удалении он будет сначала остановлен.",
"loadingContainers": "Загрузка контейнеров...", "loadingContainers": "Загрузка контейнеров...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "Для доступа к консоли контейнер должен быть запущен", "containerMustBeRunning": "Для доступа к консоли контейнер должен быть запущен",
"verificationCodePrompt": "Введите код подтверждения", "verificationCodePrompt": "Введите код подтверждения",
"totpVerificationFailed": "Ошибка проверки TOTP. Попробуйте еще раз.", "totpVerificationFailed": "Ошибка проверки TOTP. Попробуйте еще раз.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Вход в систему не удался. Пожалуйста, попробуйте еще раз.",
"connectedTo": "Подключено к {{containerName}}", "connectedTo": "Подключено к {{containerName}}",
"disconnected": "Отключено", "disconnected": "Отключено",
"consoleError": "Ошибка консоли", "consoleError": "Ошибка консоли",
@@ -101,15 +101,15 @@
"consoleTab": "Консоль", "consoleTab": "Консоль",
"startContainerToAccess": "Запустите контейнер, чтобы получить доступ к консоли", "startContainerToAccess": "Запустите контейнер, чтобы получить доступ к консоли",
"noHostSelected": "Хост не выбран", "noHostSelected": "Хост не выбран",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Не удалось получить логи: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Не удалось загрузить логи: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Docker",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Просматривайте контейнеры, читайте журналы и отслеживайте статистику на любом хосте, где запущен Docker."
}, },
"terminal": { "terminal": {
"retry": "Повторить", "retry": "Повторить",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Используйте Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Откройте Docker Manager и консоли контейнеров на хостах с включенным Docker."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Включить Docker", "label": "Включить Docker",
"description": "Manage containers on this host." "description": "Управляйте контейнерами на этом хосте."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Среда выполнения контейнеров", "label": "Среда выполнения контейнеров",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "Требуется удаленный сервер. Для использования этого типа подключения подключите удаленный сервер в настройках."
}, },
"hosts": { "hosts": {
"docsLink": "Документация", "docsLink": "Документация",
+120 -120
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Докер није омогућен за овај хост",
"validating": "Validating Docker...", "validating": "Валидација Докера...",
"connecting": "Connecting...", "connecting": "Повезивање...",
"error": "Error", "error": "Грешка",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Повезивање са Докером није успело",
"containerStarted": "Container {{name}} started", "containerStarted": "Контејнер {{name}} је покренут",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Покретање контејнера {{name}} није успело",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Контејнер {{name}} је заустављен",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Заустављање контејнера {{name}} није успело",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Контејнер {{name}} поново покренут",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Поновно покретање контејнера није успело {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "Контејнер {{name}} је паузиран",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Паузирање контејнера {{name}} је прекинуто",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Није успело пребацивање стања паузе за контејнер {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Контејнер {{name}} је уклоњен",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Није успело уклањање контејнера {{name}}",
"image": "Image", "image": "Слика",
"ports": "Ports", "ports": "Портови",
"noPorts": "No ports", "noPorts": "Нема портова",
"start": "Start", "start": "Почетак",
"stop": "Stop", "stop": "Заустави",
"status": "Status", "status": "Статус",
"actions": "Actions", "actions": "Акције",
"cardView": "Card view", "cardView": "Приказ картице",
"listView": "List view", "listView": "Приказ листе",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Да ли сте сигурни да желите да уклоните контејнер „{{name}}“? Ова радња се не може поништити.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Упозорење: Овај контејнер је тренутно покренут. Његово уклањање ће прво зауставити рад контејнера.",
"loadingContainers": "Loading containers...", "loadingContainers": "Учитавање контејнера...",
"manager": "Docker Manager", "manager": "Докер менаџер",
"autoRefresh": "Auto Refresh", "autoRefresh": "Аутоматско освежавање",
"timestamps": "Timestamps", "timestamps": "Временске ознаке",
"lines": "Lines", "lines": "Линије",
"filterLogs": "Filter logs...", "filterLogs": "Филтрирај логове...",
"refresh": "Refresh", "refresh": "Освежи",
"download": "Download", "download": "Преузми",
"clear": "Clear", "clear": "Јасно",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Дневници су успешно преузети",
"last50": "Last 50", "last50": "Последњих 50",
"last100": "Last 100", "last100": "Последњих 100",
"last500": "Last 500", "last500": "Последњих 500",
"last1000": "Last 1000", "last1000": "Последњих 1000",
"allLogs": "All Logs", "allLogs": "Сви дневници",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Нема логова који одговарају „{{query}}“",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Нема доступних логова",
"noContainersFound": "No containers found", "noContainersFound": "Нису пронађени контејнери",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "На овом хосту нису доступни Docker контејнери",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Претражи контејнере...",
"allStatuses": "All Statuses", "allStatuses": "Сви статуси",
"stateRunning": "Running", "stateRunning": "Трчање",
"statePaused": "Paused", "statePaused": "Паузирано",
"stateExited": "Exited", "stateExited": "Изашао/ла",
"stateRestarting": "Restarting", "stateRestarting": "Поновно покретање",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Ниједан контејнер не одговара вашим филтерима",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Покушајте да прилагодите критеријуме претраге или филтрирања",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Није успело преузимање статистике контејнера",
"containerNotRunning": "Container not running", "containerNotRunning": "Контејнер се не покреће",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Покрените контејнер да бисте видели статистику",
"loadingStats": "Loading statistics...", "loadingStats": "Учитавање статистике...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Грешка при учитавању статистике",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Нема доступних статистика",
"cpuUsage": "CPU Usage", "cpuUsage": "Искоришћеност процесора",
"current": "Current", "current": "Тренутни",
"memoryUsage": "Memory Usage", "memoryUsage": "Коришћење меморије",
"networkIo": "Network I/O", "networkIo": "Мрежни улаз/излаз",
"input": "Input", "input": "Унос",
"output": "Output", "output": "Излаз",
"blockIo": "Block I/O", "blockIo": "Блок У/И",
"read": "Read", "read": "Читај",
"write": "Write", "write": "Пиши",
"pids": "PIDs", "pids": "ПИД-ови",
"containerInformation": "Container Information", "containerInformation": "Информације о контејнеру",
"name": "Name", "name": "Име",
"id": "ID", "id": "ИД",
"state": "State", "state": "Држава",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "Контејнер мора бити покренут да би се приступило конзоли",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "Унесите верификациони код",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "Верификација TOTP-а није успела. Молимо покушајте поново.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Пријављивање није успело. Молимо покушајте поново.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Повезано са {{containerName}}",
"disconnected": "Disconnected", "disconnected": "Искључено",
"consoleError": "Console error", "consoleError": "Грешка конзоле",
"errorMessage": "Error: {{message}}", "errorMessage": "Грешка: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Повезивање са контејнером није успело",
"console": "Console", "console": "Конзола",
"selectShell": "Select shell", "selectShell": "Изаберите љуску",
"bash": "Bash", "bash": "Баш",
"sh": "sh", "sh": "ш",
"ash": "ash", "ash": "пепео",
"connect": "Connect", "connect": "Повежи се",
"disconnect": "Disconnect", "disconnect": "Прекини везу",
"notConnected": "Not connected", "notConnected": "Није повезано",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Кликните на повезивање да бисте покренули сесију шкољке",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Повезивање са {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Контејнер није пронађен",
"backToList": "Back to List", "backToList": "Назад на листу",
"logs": "Logs", "logs": "Дневници",
"stats": "Stats", "stats": "Статистика",
"consoleTab": "Console", "consoleTab": "Конзола",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Покрените контејнер да бисте приступили конзоли",
"noHostSelected": "No host selected", "noHostSelected": "Није изабран домаћин",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Није успело преузимање логова: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Није успело преузимање логова: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Докер"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Докер",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Погледајте контејнере, читајте логове и пратите статистику на било ком хосту који користи Docker."
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "Покушај поново",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "Читање из међуспремника није успело. Уверите се да су дозволе за међуспремник одобрене.",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "Копирање у међуспремник није успело. Уверите се да се страница приказује преко HTTPS-а или localhost-а."
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Користите Докер",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Отворите Docker менаџер и конзоле контејнера на хостовима са омогућеним Docker-ом."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "Омогући Докер",
"description": "Manage containers on this host." "description": "Управљајте контејнерима на овом хосту."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Време извршавања контејнера",
"description": "Choose the CLI used for container management on this host", "description": "Изаберите CLI који се користи за управљање контејнерима на овом хосту",
"docker": "Docker", "docker": "Докер",
"podman": "Podman" "podman": "Подман"
} }
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "Потребан је удаљени сервер. Повежите се са удаљеним сервером у Подешавањима да бисте користили овај тип везе."
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "Прикажи документе",
"hostNotFound": "Host not found", "hostNotFound": "Хост није пронађен",
"loadingHost": "Loading host..." "loadingHost": "Учитавање хоста..."
} }
} }
+113 -113
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Docker är inte aktiverat för den här värden",
"validating": "Validating Docker...", "validating": "Validerar Docker...",
"connecting": "Connecting...", "connecting": "Ansluter...",
"error": "Error", "error": "Fel",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Misslyckades med att ansluta till Docker",
"containerStarted": "Container {{name}} started", "containerStarted": "Behållaren {{name}} startad",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Misslyckades med att starta containern {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Behållaren {{name}} har stoppats",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Misslyckades med att stoppa containern {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Behållaren {{name}} har startats om",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Misslyckades med att starta om behållaren {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "Behållaren {{name}} pausad",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Behållaren {{name}} har återupptagits",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Misslyckades med att växla pausläge för container {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Behållaren {{name}} har tagits bort",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Misslyckades med att ta bort behållaren {{name}}",
"image": "Image", "image": "Bild",
"ports": "Ports", "ports": "Hamnar",
"noPorts": "No ports", "noPorts": "Inga portar",
"start": "Start", "start": "Start",
"stop": "Stop", "stop": "Stopp",
"status": "Status", "status": "Status",
"actions": "Actions", "actions": "Åtgärder",
"cardView": "Card view", "cardView": "Kortvy",
"listView": "List view", "listView": "Listvy",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Är du säker på att du vill ta bort behållaren '{{name}}'? Den här åtgärden kan inte ångras.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Varning: Den här behållaren körs för närvarande. Om du tar bort den stoppas behållaren först.",
"loadingContainers": "Loading containers...", "loadingContainers": "Lastar containrar...",
"manager": "Docker Manager", "manager": "Docker Manager",
"autoRefresh": "Auto Refresh", "autoRefresh": "Automatisk uppdatering",
"timestamps": "Timestamps", "timestamps": "Tidsstämplar",
"lines": "Lines", "lines": "Rader",
"filterLogs": "Filter logs...", "filterLogs": "Filtrera loggar...",
"refresh": "Refresh", "refresh": "Uppdatera",
"download": "Download", "download": "Ladda ner",
"clear": "Clear", "clear": "Rensa",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Loggarna har laddats ner",
"last50": "Last 50", "last50": "Senaste 50",
"last100": "Last 100", "last100": "Senaste 100",
"last500": "Last 500", "last500": "Senaste 500",
"last1000": "Last 1000", "last1000": "Senaste 1000",
"allLogs": "All Logs", "allLogs": "Alla loggar",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Inga loggar som matchar \"{{query}}\"",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Inga loggar tillgängliga",
"noContainersFound": "No containers found", "noContainersFound": "Inga containrar hittades",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "Inga Docker-containrar är tillgängliga på den här värden",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Sök behållare...",
"allStatuses": "All Statuses", "allStatuses": "Alla statusar",
"stateRunning": "Running", "stateRunning": "Spring",
"statePaused": "Paused", "statePaused": "Pausad",
"stateExited": "Exited", "stateExited": "Avslutad",
"stateRestarting": "Restarting", "stateRestarting": "Omstart",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Inga behållare matchar dina filter",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Försök att justera dina sök- eller filterkriterier",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Misslyckades med att hämta containerstatistik",
"containerNotRunning": "Container not running", "containerNotRunning": "Behållaren körs inte",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Starta containern för att visa statistik",
"loadingStats": "Loading statistics...", "loadingStats": "Laddar statistik...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Fel vid inläsning av statistik",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Ingen statistik tillgänglig",
"cpuUsage": "CPU Usage", "cpuUsage": "CPU-användning",
"current": "Current", "current": "Nuvarande",
"memoryUsage": "Memory Usage", "memoryUsage": "Minnesanvändning",
"networkIo": "Network I/O", "networkIo": "Nätverks-I/O",
"input": "Input", "input": "Input",
"output": "Output", "output": "Produktion",
"blockIo": "Block I/O", "blockIo": "Blockera I/O",
"read": "Read", "read": "Läsa",
"write": "Write", "write": "Skriva",
"pids": "PIDs", "pids": "PID:er",
"containerInformation": "Container Information", "containerInformation": "Containerinformation",
"name": "Name", "name": "Namn",
"id": "ID", "id": "ID",
"state": "State", "state": "Ange",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "Behållaren måste köras för att komma åt konsolen",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "Ange verifieringskod",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "TOTP-verifieringen misslyckades. Försök igen.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Inloggningen misslyckades. Försök igen.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Ansluten till {{containerName}}",
"disconnected": "Disconnected", "disconnected": "Osammanhängande",
"consoleError": "Console error", "consoleError": "Konsolfel",
"errorMessage": "Error: {{message}}", "errorMessage": "Fel: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Misslyckades med att ansluta till containern",
"console": "Console", "console": "Trösta",
"selectShell": "Select shell", "selectShell": "Välj skal",
"bash": "Bash", "bash": "Våldsamt slag",
"sh": "sh", "sh": "sh",
"ash": "ash", "ash": "aska",
"connect": "Connect", "connect": "Ansluta",
"disconnect": "Disconnect", "disconnect": "Koppla från",
"notConnected": "Not connected", "notConnected": "Inte ansluten",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Klicka på Anslut för att starta en shell-session",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Ansluter till {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Behållaren hittades inte",
"backToList": "Back to List", "backToList": "Tillbaka till listan",
"logs": "Logs", "logs": "Loggar",
"stats": "Stats", "stats": "Statistik",
"consoleTab": "Console", "consoleTab": "Trösta",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Starta containern för att komma åt konsolen",
"noHostSelected": "No host selected", "noHostSelected": "Ingen värd vald",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Misslyckades med att hämta loggar: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Misslyckades med att ladda ner loggar: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Hamnarbetare"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Hamnarbetare",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Se containrar, läs loggar och titta på statistik för alla värdar som kör Docker."
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "Försöka igen",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "Kunde inte läsa från urklipp. Kontrollera att behörigheter för urklipp är beviljade.",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "Kunde inte kopiera till urklipp. Kontrollera att sidan serveras via HTTPS eller localhost."
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Använd Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Öppna Docker-hanteraren och containerkonsolerna på värdar med Docker aktiverat."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "Aktivera Docker",
"description": "Manage containers on this host." "description": "Hantera containrar på den här värden."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Containerkörningstid",
"description": "Choose the CLI used for container management on this host", "description": "Välj det CRI som används för containerhantering på den här värden",
"docker": "Docker", "docker": "Hamnarbetare",
"podman": "Podman" "podman": "Podman"
} }
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "View docs", "docsLink": "Visa dokument",
"hostNotFound": "Host not found", "hostNotFound": "Värden hittades inte",
"loadingHost": "Loading host..." "loadingHost": "Laddar värd..."
} }
} }
+119 -119
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Docker ไม่ได้เปิดใช้งานสำหรับโฮสต์นี้",
"validating": "Validating Docker...", "validating": "กำลังตรวจสอบความถูกต้องของ Docker...",
"connecting": "Connecting...", "connecting": "กำลังเชื่อมต่อ...",
"error": "Error", "error": "ข้อผิดพลาด",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "ไม่สามารถเชื่อมต่อกับ Docker ได้",
"containerStarted": "Container {{name}} started", "containerStarted": "คอนเทนเนอร์ {{name}} เริ่มทำงานแล้ว",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "ไม่สามารถเริ่มต้นคอนเทนเนอร์ได้ {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "คอนเทนเนอร์ {{name}} หยุดทำงานแล้ว",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "ไม่สามารถหยุดคอนเทนเนอร์ได้ {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "คอนเทนเนอร์ {{name}} รีสตาร์ทแล้ว",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "ไม่สามารถรีสตาร์ทคอนเทนเนอร์ได้ {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "คอนเทนเนอร์ {{name}} หยุดชั่วคราว",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "คอนเทนเนอร์ {{name}} ยกเลิกการหยุดชั่วคราว",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "ไม่สามารถสลับสถานะหยุดชั่วคราวสำหรับคอนเทนเนอร์ {{name}} ได้",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "คอนเทนเนอร์ {{name}} ถูกลบออกแล้ว",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "ไม่สามารถลบคอนเทนเนอร์ {{name}} ได้",
"image": "Image", "image": "ภาพ",
"ports": "Ports", "ports": "ท่าเรือ",
"noPorts": "No ports", "noPorts": "ไม่มีพอร์ต",
"start": "Start", "start": "เริ่ม",
"stop": "Stop", "stop": "หยุด",
"status": "Status", "status": "สถานะ",
"actions": "Actions", "actions": "การกระทำ",
"cardView": "Card view", "cardView": "มุมมองการ์ด",
"listView": "List view", "listView": "มุมมองรายการ",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "คุณแน่ใจหรือไม่ว่าต้องการลบคอนเทนเนอร์ '{{name}}'? การกระทำนี้ไม่สามารถย้อนกลับได้",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "คำเตือน: ขณะนี้คอนเทนเนอร์นี้กำลังทำงานอยู่ การลบคอนเทนเนอร์นี้จะหยุดการทำงานของคอนเทนเนอร์ก่อน",
"loadingContainers": "Loading containers...", "loadingContainers": "กำลังขนถ่ายตู้คอนเทนเนอร์...",
"manager": "Docker Manager", "manager": "ตัวจัดการ Docker",
"autoRefresh": "Auto Refresh", "autoRefresh": "รีเฟรชอัตโนมัติ",
"timestamps": "Timestamps", "timestamps": "ไทม์สแตมป์",
"lines": "Lines", "lines": "เส้น",
"filterLogs": "Filter logs...", "filterLogs": "กรองบันทึก...",
"refresh": "Refresh", "refresh": "รีเฟรช",
"download": "Download", "download": "ดาวน์โหลด",
"clear": "Clear", "clear": "ชัดเจน",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "ดาวน์โหลดบันทึกข้อมูลสำเร็จแล้ว",
"last50": "Last 50", "last50": "50 ครั้งสุดท้าย",
"last100": "Last 100", "last100": "100 ปีที่แล้ว",
"last500": "Last 500", "last500": "500 ครั้งสุดท้าย",
"last1000": "Last 1000", "last1000": "1000 ครั้งสุดท้าย",
"allLogs": "All Logs", "allLogs": "บันทึกทั้งหมด",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "ไม่พบบันทึกใดที่ตรงกับ \"{{query}}\"",
"noLogsAvailable": "No logs available", "noLogsAvailable": "ไม่มีบันทึกข้อมูล",
"noContainersFound": "No containers found", "noContainersFound": "ไม่พบภาชนะบรรจุใดๆ",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "ไม่มีคอนเทนเนอร์ Docker ให้บริการบนโฮสต์นี้",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "ค้นหาตู้คอนเทนเนอร์...",
"allStatuses": "All Statuses", "allStatuses": "สถานะทั้งหมด",
"stateRunning": "Running", "stateRunning": "วิ่ง",
"statePaused": "Paused", "statePaused": "หยุดชั่วคราว",
"stateExited": "Exited", "stateExited": "ออกแล้ว",
"stateRestarting": "Restarting", "stateRestarting": "เริ่มใหม่",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "ไม่มีภาชนะใดตรงกับตัวกรองของคุณ",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "ลองปรับเกณฑ์การค้นหาหรือตัวกรองของคุณดู",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "ไม่สามารถดึงข้อมูลสถิติของคอนเทนเนอร์ได้",
"containerNotRunning": "Container not running", "containerNotRunning": "คอนเทนเนอร์ไม่ทำงาน",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "เริ่มคอนเทนเนอร์เพื่อดูสถิติ",
"loadingStats": "Loading statistics...", "loadingStats": "กำลังโหลดสถิติ...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "ข้อผิดพลาดในการโหลดสถิติ",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "ไม่มีสถิติให้ดู",
"cpuUsage": "CPU Usage", "cpuUsage": "การใช้งาน CPU",
"current": "Current", "current": "ปัจจุบัน",
"memoryUsage": "Memory Usage", "memoryUsage": "การใช้งานหน่วยความจำ",
"networkIo": "Network I/O", "networkIo": "อินพุต/เอาต์พุตเครือข่าย",
"input": "Input", "input": "ป้อนข้อมูล",
"output": "Output", "output": "เอาต์พุต",
"blockIo": "Block I/O", "blockIo": "บล็อก I/O",
"read": "Read", "read": "อ่าน",
"write": "Write", "write": "เขียน",
"pids": "PIDs", "pids": "PIDs",
"containerInformation": "Container Information", "containerInformation": "ข้อมูลเกี่ยวกับตู้คอนเทนเนอร์",
"name": "Name", "name": "ชื่อ",
"id": "ID", "id": "รหัสประจำตัว",
"state": "State", "state": "สถานะ",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "ต้องรอให้คอนเทนเนอร์ทำงานอยู่จึงจะสามารถเข้าถึงคอนโซลได้",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "ป้อนรหัสยืนยัน",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "การตรวจสอบ TOTP ล้มเหลว โปรดลองอีกครั้ง",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "การเข้าสู่ระบบล้มเหลว โปรดลองใหม่อีกครั้ง",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "เชื่อมต่อกับ {{containerName}}",
"disconnected": "Disconnected", "disconnected": "ตัดการเชื่อมต่อ",
"consoleError": "Console error", "consoleError": "ข้อผิดพลาดของคอนโซล",
"errorMessage": "Error: {{message}}", "errorMessage": "ข้อผิดพลาด: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "ไม่สามารถเชื่อมต่อกับคอนเทนเนอร์ได้",
"console": "Console", "console": "คอนโซล",
"selectShell": "Select shell", "selectShell": "เลือกเปลือกหอย",
"bash": "Bash", "bash": "ทุบตี",
"sh": "sh", "sh": "ช",
"ash": "ash", "ash": "เถ้า",
"connect": "Connect", "connect": "เชื่อมต่อ",
"disconnect": "Disconnect", "disconnect": "ตัดการเชื่อมต่อ",
"notConnected": "Not connected", "notConnected": "ไม่ได้เชื่อมต่อ",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "คลิกเชื่อมต่อเพื่อเริ่มเซสชันเชลล์",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "กำลังเชื่อมต่อกับ {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "ไม่พบคอนเทนเนอร์",
"backToList": "Back to List", "backToList": "กลับสู่รายการ",
"logs": "Logs", "logs": "บันทึก",
"stats": "Stats", "stats": "สถิติ",
"consoleTab": "Console", "consoleTab": "คอนโซล",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "เริ่มคอนเทนเนอร์เพื่อเข้าถึงคอนโซล",
"noHostSelected": "No host selected", "noHostSelected": "ไม่ได้เลือกโฮสต์",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "ไม่สามารถดึงข้อมูลบันทึกได้: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "ไม่สามารถดาวน์โหลดบันทึกได้: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "ด็อกเกอร์"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "ด็อกเกอร์",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "ดูคอนเทนเนอร์ อ่านบันทึก และตรวจสอบสถิติบนโฮสต์ใดก็ได้ที่ใช้งาน Docker"
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "ลองใหม่อีกครั้ง",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "ไม่สามารถอ่านข้อมูลจากคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์การเข้าถึงคลิปบอร์ดแล้ว",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้ โปรดตรวจสอบให้แน่ใจว่าหน้าเว็บนั้นให้บริการผ่าน HTTPS หรือ localhost"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "ใช้ Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "เปิดตัวจัดการ Docker และคอนโซลคอนเทนเนอร์บนโฮสต์ที่เปิดใช้งาน Docker ไว้"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "เปิดใช้งาน Docker",
"description": "Manage containers on this host." "description": "จัดการคอนเทนเนอร์บนโฮสต์นี้"
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "รันไทม์คอนเทนเนอร์",
"description": "Choose the CLI used for container management on this host", "description": "เลือก CLI ที่ใช้สำหรับการจัดการคอนเทนเนอร์บนโฮสต์นี้",
"docker": "Docker", "docker": "ด็อกเกอร์",
"podman": "Podman" "podman": "พอดแมน"
} }
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "จำเป็นต้องใช้เซิร์ฟเวอร์ระยะไกล เชื่อมต่อเซิร์ฟเวอร์ระยะไกลในการตั้งค่าเพื่อใช้ประเภทการเชื่อมต่อนี้"
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "ดูเอกสาร",
"hostNotFound": "Host not found", "hostNotFound": "ไม่พบโฮสต์",
"loadingHost": "Loading host..." "loadingHost": "กำลังโหลดโฮสต์..."
} }
} }
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "Başlat", "start": "Başlat",
"stop": "Durdurma", "stop": "Durdurma",
"status": "Durum", "status": "Durum",
"actions": "Actions", "actions": "Eylemler",
"cardView": "Card view", "cardView": "Kart görünümü",
"listView": "List view", "listView": "Liste görünümü",
"confirmRemoveContainer": "'{{name}}' konteynerini kaldırmak istediğinizden emin misiniz? Bu işlem geri alınamaz.", "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.", "runningContainerWarning": "Uyarı: Bu konteyner şu anda çalışıyor. Kaldırma işlemi önce konteyneri durduracak.",
"loadingContainers": "Konteynerler yükleniyor...", "loadingContainers": "Konteynerler yükleniyor...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "Konsola erişmek için konteyner çalışıyor olmalıdır", "containerMustBeRunning": "Konsola erişmek için konteyner çalışıyor olmalıdır",
"verificationCodePrompt": "Doğrulama kodunu girin", "verificationCodePrompt": "Doğrulama kodunu girin",
"totpVerificationFailed": "TOTP doğrulaması başarısız oldu. Lütfen tekrar deneyin.", "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", "connectedTo": "{{containerName}} ile bağlantı kuruldu",
"disconnected": "Bağlantı kesildi", "disconnected": "Bağlantı kesildi",
"consoleError": "Konsol hatası", "consoleError": "Konsol hatası",
@@ -101,15 +101,15 @@
"consoleTab": "Konsol", "consoleTab": "Konsol",
"startContainerToAccess": "Konsola erişmek için konteyneri başlatın", "startContainerToAccess": "Konsola erişmek için konteyneri başlatın",
"noHostSelected": "Sunucu seçilmedi", "noHostSelected": "Sunucu seçilmedi",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Günlükleri alma işlemi başarısız oldu: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Günlük dosyaları indirilemedi: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "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": { "terminal": {
"retry": "Yeniden dene", "retry": "Yeniden dene",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Docker kullanın",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Docker'ın etkinleştirildiği sunucularda Docker yöneticisini ve kapsayıcı konsollarını açın."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Docker'ı Etkinleştir", "label": "Docker'ı Etkinleştir",
"description": "Manage containers on this host." "description": "Bu sunucudaki konteynerleri yönetin."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Kapsayıcı Çalışma Zamanı", "label": "Kapsayıcı Çalışma Zamanı",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "Dokümanları görüntüle", "docsLink": "Dokümanları görüntüle",
+120 -120
View File
@@ -1,147 +1,147 @@
{ {
"docker": { "docker": {
"notEnabled": "Docker is not enabled for this host", "notEnabled": "Docker не ввімкнено для цього хоста",
"validating": "Validating Docker...", "validating": "Перевірка Docker...",
"connecting": "Connecting...", "connecting": "Підключення...",
"error": "Error", "error": "Помилка",
"version": "{{runtime}} {{version}}", "version": "{{runtime}} {{version}}",
"connectionFailed": "Failed to connect to Docker", "connectionFailed": "Не вдалося підключитися до Docker",
"containerStarted": "Container {{name}} started", "containerStarted": "Контейнер {{name}} запущено",
"failedToStartContainer": "Failed to start container {{name}}", "failedToStartContainer": "Не вдалося запустити контейнер {{name}}",
"containerStopped": "Container {{name}} stopped", "containerStopped": "Контейнер {{name}} зупинено",
"failedToStopContainer": "Failed to stop container {{name}}", "failedToStopContainer": "Не вдалося зупинити контейнер {{name}}",
"containerRestarted": "Container {{name}} restarted", "containerRestarted": "Контейнер {{name}} перезапущено",
"failedToRestartContainer": "Failed to restart container {{name}}", "failedToRestartContainer": "Не вдалося перезапустити контейнер {{name}}",
"containerPaused": "Container {{name}} paused", "containerPaused": "Контейнер {{name}} призупинено",
"containerUnpaused": "Container {{name}} unpaused", "containerUnpaused": "Контейнер {{name}} відновлено",
"failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", "failedToTogglePauseContainer": "Не вдалося перемкнути стан паузи для контейнера {{name}}",
"containerRemoved": "Container {{name}} removed", "containerRemoved": "Контейнер {{name}} видалено",
"failedToRemoveContainer": "Failed to remove container {{name}}", "failedToRemoveContainer": "Не вдалося видалити контейнер {{name}}",
"image": "Image", "image": "Зображення",
"ports": "Ports", "ports": "Порти",
"noPorts": "No ports", "noPorts": "Без портів",
"start": "Start", "start": "Початок",
"stop": "Stop", "stop": "СТІЙ",
"status": "Status", "status": "Статус",
"actions": "Actions", "actions": "Дії",
"cardView": "Card view", "cardView": "Перегляд картки",
"listView": "List view", "listView": "Список",
"confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", "confirmRemoveContainer": "Ви впевнені, що хочете видалити контейнер '{{name}}'? Цю дію не можна скасувати.",
"runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", "runningContainerWarning": "Попередження: Цей контейнер зараз працює. Його видалення спочатку зупинить його роботу.",
"loadingContainers": "Loading containers...", "loadingContainers": "Завантаження контейнерів...",
"manager": "Docker Manager", "manager": "Менеджер Докера",
"autoRefresh": "Auto Refresh", "autoRefresh": "Автоматичне оновлення",
"timestamps": "Timestamps", "timestamps": "Позначки часу",
"lines": "Lines", "lines": "Лінії",
"filterLogs": "Filter logs...", "filterLogs": "Фільтрувати журнали...",
"refresh": "Refresh", "refresh": "Оновити",
"download": "Download", "download": "Завантажити",
"clear": "Clear", "clear": "Очистити",
"logsDownloaded": "Logs downloaded successfully", "logsDownloaded": "Журнали успішно завантажено",
"last50": "Last 50", "last50": "Останні 50",
"last100": "Last 100", "last100": "Останні 100",
"last500": "Last 500", "last500": "Останні 500",
"last1000": "Last 1000", "last1000": "Останні 1000",
"allLogs": "All Logs", "allLogs": "Усі журнали",
"noLogsMatching": "No logs matching \"{{query}}\"", "noLogsMatching": "Немає журналів, що відповідають \"{{query}}\"",
"noLogsAvailable": "No logs available", "noLogsAvailable": "Журнали недоступні",
"noContainersFound": "No containers found", "noContainersFound": "Контейнерів не знайдено",
"noContainersFoundHint": "No Docker containers are available on this host", "noContainersFoundHint": "На цьому хості немає доступних контейнерів Docker",
"searchPlaceholder": "Search containers...", "searchPlaceholder": "Пошук контейнерів...",
"allStatuses": "All Statuses", "allStatuses": "Усі статуси",
"stateRunning": "Running", "stateRunning": "Біг",
"statePaused": "Paused", "statePaused": "Призупинено",
"stateExited": "Exited", "stateExited": "Вихід",
"stateRestarting": "Restarting", "stateRestarting": "Перезапуск",
"noContainersMatchFilters": "No containers match your filters", "noContainersMatchFilters": "Немає контейнерів, що відповідають вашим фільтрам",
"noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", "noContainersMatchFiltersHint": "Спробуйте змінити критерії пошуку або фільтра",
"failedToFetchStats": "Failed to fetch container statistics", "failedToFetchStats": "Не вдалося отримати статистику контейнера",
"containerNotRunning": "Container not running", "containerNotRunning": "Контейнер не працює",
"startContainerToViewStats": "Start the container to view statistics", "startContainerToViewStats": "Запустіть контейнер для перегляду статистики",
"loadingStats": "Loading statistics...", "loadingStats": "Завантаження статистики...",
"errorLoadingStats": "Error loading statistics", "errorLoadingStats": "Помилка завантаження статистики",
"noStatsAvailable": "No statistics available", "noStatsAvailable": "Статистика недоступна",
"cpuUsage": "CPU Usage", "cpuUsage": "Використання процесора",
"current": "Current", "current": "Поточний",
"memoryUsage": "Memory Usage", "memoryUsage": "Використання пам'яті",
"networkIo": "Network I/O", "networkIo": "Мережевий ввід/вивід",
"input": "Input", "input": "Вхід",
"output": "Output", "output": "Вихід",
"blockIo": "Block I/O", "blockIo": "Блок вводу/виводу",
"read": "Read", "read": "Читати",
"write": "Write", "write": "Написати",
"pids": "PIDs", "pids": "PID-ідентифікатори",
"containerInformation": "Container Information", "containerInformation": "Інформація про контейнер",
"name": "Name", "name": "Ім'я",
"id": "ID", "id": "Ідентифікатор",
"state": "State", "state": "Штат",
"containerMustBeRunning": "Container must be running to access console", "containerMustBeRunning": "Для доступу до консолі контейнер має бути запущений",
"verificationCodePrompt": "Enter verification code", "verificationCodePrompt": "Введіть код підтвердження",
"totpVerificationFailed": "TOTP verification failed. Please try again.", "totpVerificationFailed": "Не вдалося перевірити TOTP. Спробуйте ще раз.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Не вдалося ввійти. Спробуйте ще раз.",
"connectedTo": "Connected to {{containerName}}", "connectedTo": "Підключено до {{containerName}}",
"disconnected": "Disconnected", "disconnected": "Відключено",
"consoleError": "Console error", "consoleError": "Помилка консолі",
"errorMessage": "Error: {{message}}", "errorMessage": "Помилка: {{message}}",
"failedToConnect": "Failed to connect to container", "failedToConnect": "Не вдалося підключитися до контейнера",
"console": "Console", "console": "Консоль",
"selectShell": "Select shell", "selectShell": "Виберіть оболонку",
"bash": "Bash", "bash": "Баш",
"sh": "sh", "sh": "ш",
"ash": "ash", "ash": "попіл",
"connect": "Connect", "connect": "Підключитися",
"disconnect": "Disconnect", "disconnect": "Відключитися",
"notConnected": "Not connected", "notConnected": "Не підключено",
"clickToConnect": "Click connect to start a shell session", "clickToConnect": "Натисніть кнопку «Підключитися», щоб розпочати сеанс оболонки",
"connectingTo": "Connecting to {{containerName}}...", "connectingTo": "Підключення до {{containerName}}...",
"containerNotFound": "Container not found", "containerNotFound": "Контейнер не знайдено",
"backToList": "Back to List", "backToList": "Назад до списку",
"logs": "Logs", "logs": "Журнали",
"stats": "Stats", "stats": "Статистика",
"consoleTab": "Console", "consoleTab": "Консоль",
"startContainerToAccess": "Start the container to access the console", "startContainerToAccess": "Запустіть контейнер для доступу до консолі",
"noHostSelected": "No host selected", "noHostSelected": "Хост не вибрано",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Не вдалося отримати журнали: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Не вдалося завантажити журнали: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Докер"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Докер",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "Переглядайте контейнери, читайте журнали та переглядайте статистику на будь-якому хості, на якому працює Docker."
}, },
"terminal": { "terminal": {
"retry": "Retry", "retry": "Повторити спробу",
"clipboardReadFailed": "Failed to read from clipboard. Make sure clipboard permissions are granted.", "clipboardReadFailed": "Не вдалося прочитати з буфера обміну. Переконайтеся, що надано дозволи на доступ до буфера обміну.",
"clipboardWriteFailed": "Failed to copy to clipboard. Make sure the page is served over HTTPS or localhost." "clipboardWriteFailed": "Не вдалося скопіювати в буфер обміну. Переконайтеся, що сторінка обслуговується через HTTPS або localhost."
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Використовуйте Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "Відкрийте менеджер Docker та консолі контейнерів на хостах з увімкненим Docker."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Enable Docker", "label": "Увімкнути Докер",
"description": "Manage containers on this host." "description": "Керувати контейнерами на цьому хості."
}, },
"containerRuntime": { "containerRuntime": {
"label": "Container Runtime", "label": "Середовище виконання контейнера",
"description": "Choose the CLI used for container management on this host", "description": "Виберіть інтерфейс командного рядка, який використовується для керування контейнерами на цьому хості",
"docker": "Docker", "docker": "Докер",
"podman": "Podman" "podman": "Подман"
} }
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "Потрібен віддалений сервер. Підключіться до віддаленого сервера в налаштуваннях, щоб використовувати цей тип підключення."
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "Переглянути документи",
"hostNotFound": "Host not found", "hostNotFound": "Хост не знайдено",
"loadingHost": "Loading host..." "loadingHost": "Завантаження хоста..."
} }
} }
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "Khởi động", "start": "Khởi động",
"stop": "Bit dừng", "stop": "Bit dừng",
"status": "Trạng thái", "status": "Trạng thái",
"actions": "Actions", "actions": "Hành động",
"cardView": "Card view", "cardView": "Chế độ xem thẻ",
"listView": "List view", "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.", "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.", "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...", "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", "containerMustBeRunning": "Container phải đang chạy để truy cập bảng điều khiển",
"verificationCodePrompt": "Nhập mã xác minh", "verificationCodePrompt": "Nhập mã xác minh",
"totpVerificationFailed": "Xác minh TOTP thất bại. Vui lòng thử lại.", "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}}", "connectedTo": "Đã kết nối đến {{containerName}}",
"disconnected": "Đã ngắt kết nối", "disconnected": "Đã ngắt kết nối",
"consoleError": "Lỗi bảng điều khiển", "consoleError": "Lỗi bảng điều khiển",
@@ -101,15 +101,15 @@
"consoleTab": "Bảng điều khiển", "consoleTab": "Bảng điều khiển",
"startContainerToAccess": "Khởi động container để truy cập 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ủ", "noHostSelected": "Chưa chọn máy chủ",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "Không thể tải nhật ký: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "Không thể tải xuống nhật ký: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "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": { "terminal": {
"retry": "Thử lại", "retry": "Thử lại",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "Sử dụng Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "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": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Bật Docker", "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": { "containerRuntime": {
"label": "Môi trường chạy container", "label": "Môi trường chạy container",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "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": { "hosts": {
"docsLink": "Xem tài liệu", "docsLink": "Xem tài liệu",
+7 -7
View File
@@ -24,8 +24,8 @@
"stop": "停止", "stop": "停止",
"status": "状态", "status": "状态",
"actions": "操作", "actions": "操作",
"cardView": "Card view", "cardView": "卡片视图",
"listView": "List view", "listView": "列表视图",
"confirmRemoveContainer": "确定要移除容器 '{{name}}' 吗?此操作无法撤销。", "confirmRemoveContainer": "确定要移除容器 '{{name}}' 吗?此操作无法撤销。",
"runningContainerWarning": "警告:此容器正在运行。移除操作将先停止容器。", "runningContainerWarning": "警告:此容器正在运行。移除操作将先停止容器。",
"loadingContainers": "正在加载容器...", "loadingContainers": "正在加载容器...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "访问控制台需要容器处于运行状态", "containerMustBeRunning": "访问控制台需要容器处于运行状态",
"verificationCodePrompt": "输入验证码", "verificationCodePrompt": "输入验证码",
"totpVerificationFailed": "TOTP 验证失败,请重试。", "totpVerificationFailed": "TOTP 验证失败,请重试。",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "登录失败,请重试。",
"connectedTo": "已连接到 {{containerName}}", "connectedTo": "已连接到 {{containerName}}",
"disconnected": "已断开连接", "disconnected": "已断开连接",
"consoleError": "控制台错误", "consoleError": "控制台错误",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "使用 Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "在已启用 Docker 的主机上打开 Docker 管理器和容器控制台。"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "启用 Docker", "label": "启用 Docker",
"description": "Manage containers on this host." "description": "管理此主机上的容器。"
}, },
"containerRuntime": { "containerRuntime": {
"label": "容器运行时", "label": "容器运行时",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "需要远程服务器。请在“设置”中连接远程服务器以使用此连接类型。"
}, },
"hosts": { "hosts": {
"docsLink": "查看文档", "docsLink": "查看文档",
+11 -11
View File
@@ -23,9 +23,9 @@
"start": "啟動", "start": "啟動",
"stop": "停止位元", "stop": "停止位元",
"status": "狀態", "status": "狀態",
"actions": "Actions", "actions": "行動",
"cardView": "Card view", "cardView": "卡片視圖",
"listView": "List view", "listView": "清單視圖",
"confirmRemoveContainer": "確定要移除容器 '{{name}}' 嗎?此動作無法復原。", "confirmRemoveContainer": "確定要移除容器 '{{name}}' 嗎?此動作無法復原。",
"runningContainerWarning": "警告:此容器正在執行中。移除時會先將其停止。", "runningContainerWarning": "警告:此容器正在執行中。移除時會先將其停止。",
"loadingContainers": "正在載入容器...", "loadingContainers": "正在載入容器...",
@@ -78,7 +78,7 @@
"containerMustBeRunning": "容器必須在執行中才能存取主控台", "containerMustBeRunning": "容器必須在執行中才能存取主控台",
"verificationCodePrompt": "請輸入驗證碼", "verificationCodePrompt": "請輸入驗證碼",
"totpVerificationFailed": "TOTP 驗證失敗,請再試一次。", "totpVerificationFailed": "TOTP 驗證失敗,請再試一次。",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "登入失敗,請重試。",
"connectedTo": "已連線至 {{containerName}}", "connectedTo": "已連線至 {{containerName}}",
"disconnected": "已中斷連線", "disconnected": "已中斷連線",
"consoleError": "主控台錯誤", "consoleError": "主控台錯誤",
@@ -101,15 +101,15 @@
"consoleTab": "主控台", "consoleTab": "主控台",
"startContainerToAccess": "啟動容器以存取主控台", "startContainerToAccess": "啟動容器以存取主控台",
"noHostSelected": "未選擇主機", "noHostSelected": "未選擇主機",
"failedToFetchLogs": "Failed to fetch logs: {{error}}", "failedToFetchLogs": "取得日誌失敗: {{error}}",
"failedToDownloadLogs": "Failed to download logs: {{error}}" "failedToDownloadLogs": "日誌下載失敗: {{error}}"
}, },
"nav": { "nav": {
"docker": "Docker" "docker": "Docker"
}, },
"onboarding": { "onboarding": {
"feature_docker": "Docker", "feature_docker": "Docker",
"feature_docker_desc": "See containers, read logs and watch stats on any host running Docker." "feature_docker_desc": "查看執行 Docker 的任何主機上的容器、讀取日誌和查看統計資料。"
}, },
"terminal": { "terminal": {
"retry": "重試", "retry": "重試",
@@ -118,15 +118,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use Docker", "title": "使用 Docker",
"description": "Open the Docker manager and container consoles on hosts with Docker enabled." "description": "在已啟用 Docker 的主機上開啟 Docker 管理員和容器控制台。"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "啟用 Docker", "label": "啟用 Docker",
"description": "Manage containers on this host." "description": "管理此主機上的容器。"
}, },
"containerRuntime": { "containerRuntime": {
"label": "容器執行環境", "label": "容器執行環境",
@@ -137,7 +137,7 @@
} }
}, },
"errors": { "errors": {
"remoteServerRequired": "Remote server required. Connect a remote server in Settings to use this connection type." "remoteServerRequired": "需要遠端伺服器。請在「設定」中連接遠端伺服器以使用此連線類型。"
}, },
"hosts": { "hosts": {
"docsLink": "檢視文件", "docsLink": "檢視文件",
File diff suppressed because it is too large. Load diff
+133 -133
View File
@@ -1,20 +1,20 @@
{ {
"nav": { "nav": {
"files": "फ़ाइलें", "files": "फ़ाइलें",
"sftp": "SFTP", "sftp": "एसएफटीपी",
"openFileManager": "फ़ाइल प्रबंधक खोलें" "openFileManager": "फ़ाइल प्रबंधक खोलें"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "फ़ाइल प्रबंधक का उपयोग करें",
"description": "Browse, edit and transfer files over SFTP." "description": "SFTP के माध्यम से फाइलों को ब्राउज़ करें, संपादित करें और स्थानांतरित करें।"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "फ़ाइल प्रबंधक सक्षम करें", "label": "फ़ाइल प्रबंधक सक्षम करें",
"description": "Browse and edit files on this host over SFTP." "description": "इस होस्ट पर SFTP के माध्यम से फाइलों को ब्राउज़ और संपादित करें।"
}, },
"defaultPath": { "defaultPath": {
"label": "डिफ़ॉल्ट पथ" "label": "डिफ़ॉल्ट पथ"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "एक साथ फ़ाइल स्थानांतरण",
"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." "description": "साइड-बाय-साइड लोकल/रिमोट मैनेजर एक ही समय में कितनी फाइलें अपलोड या डाउनलोड कर सकता है। यदि आपका सर्वर SFTP चैनलों को सीमित करता है तो इसे कम करें।"
}, },
"confirmBeforeTrash": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "फ़ाइलों को ट्रैश में भेजने से पहले पुष्टि कर लें",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "रिमोट फ़ाइलों को ट्रैश में ले जाने से पहले पूछ लें। स्थायी रूप से हटाने के लिए भी पुष्टि आवश्यक है।"
} }
} }
}, },
@@ -72,14 +72,14 @@
"rename": "नाम बदलें", "rename": "नाम बदलें",
"uploading": "अपलोड हो रहा है...", "uploading": "अपलोड हो रहा है...",
"uploadingFile": "{{name}} अपलोड हो रहा है...", "uploadingFile": "{{name}} अपलोड हो रहा है...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "अपलोड हो रहा है {{name}}: {{percent}}% (भाग {{chunk}} का {{total}})",
"fileName": "फ़ाइल का नाम", "fileName": "फ़ाइल का नाम",
"folderName": "फ़ोल्डर का नाम", "folderName": "फ़ोल्डर का नाम",
"fileUploadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक अपलोड हो गई", "fileUploadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक अपलोड हो गई",
"failedToUploadFile": "फ़ाइल अपलोड करने में विफल", "failedToUploadFile": "फ़ाइल अपलोड करने में विफल",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "{{count}} फ़ाइलें अपलोड की जा रही हैं...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "{{count}} फ़ाइलें सफलतापूर्वक अपलोड हो गईं",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "{{uploaded}} फ़ाइलें अपलोड की गईं, {{failed}} अपलोड विफल रहा।",
"fileDownloadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक डाउनलोड हो गई", "fileDownloadedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक डाउनलोड हो गई",
"failedToDownloadFile": "फ़ाइल डाउनलोड करने में विफल", "failedToDownloadFile": "फ़ाइल डाउनलोड करने में विफल",
"fileCreatedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक बनाई गई", "fileCreatedSuccessfully": "फ़ाइल \"{{name}}\" सफलतापूर्वक बनाई गई",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "sudo संचालन विफल", "sudoOperationFailed": "sudo संचालन विफल",
"sudoAuthFailed": "sudo प्रमाणीकरण विफल", "sudoAuthFailed": "sudo प्रमाणीकरण विफल",
"dragFilesToUpload": "अपलोड करने के लिए फ़ाइलें यहाँ छोड़ें", "dragFilesToUpload": "अपलोड करने के लिए फ़ाइलें यहाँ छोड़ें",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "अपलोड करने के लिए यहां ड्रॉप करें",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "डाउनलोड करने के लिए यहां क्लिक करें",
"localFiles": "स्थानीय", "localFiles": "स्थानीय",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "स्थानीय फ़ाइलें दिखाएँ (स्प्लिट व्यू)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "स्थानीय फ़ाइलों को छुपाएँ",
"localHome": "Home folder", "localHome": "होम फ़ोल्डर",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "स्थानीय फ़ोल्डर पथ",
"localShowHidden": "Show hidden files", "localShowHidden": "छिपी हुई फ़ाइलें दिखाएँ",
"localHideHidden": "Hide hidden files", "localHideHidden": "छिपी हुई फ़ाइलों को छुपाएँ",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "सिस्टम फ़ाइल प्रबंधक में दिखाएँ",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "फ़ोल्डर नहीं खोला जा सकता",
"localItemCount": "{{count}} आइटम", "localItemCount": "{{count}} आइटम",
"localSelectedCount": "{{count}} चयनित", "localSelectedCount": "{{count}} चयनित",
"back": "वापस", "back": "वापस",
"forward": "Forward", "forward": "आगे",
"up": "Up", "up": "ऊपर",
"kind": "Kind", "kind": "दयालु",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "{{total}} में से {{current}} अपलोड किया जा रहा है",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "{{total}} में से {{current}} डाउनलोड हो रहा है",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} एक साथ",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "डाउनलोड की तैयारी हो रही है...",
"localTransferCancelled": "स्थानांतरण रद्द किया गया।", "localTransferCancelled": "स्थानांतरण रद्द किया गया।",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "स्थानांतरित करने के लिए कुछ भी नहीं है",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "{{count}} फाइल अपलोड की गई",
"localUploadFailed": "Upload failed", "localUploadFailed": "अपलोड विफल",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "{{done}} फ़ाइलें अपलोड की गईं, {{failed}} अपलोड विफल रहा।",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "डाउनलोड की गई {{count}} फ़ाइलें",
"localDownloadFailed": "डाउनलोड विफल", "localDownloadFailed": "डाउनलोड विफल",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "{{done}} फ़ाइलें डाउनलोड की गईं, {{failed}} डाउनलोड विफल रहा।",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "इस फ़ोल्डर में पहले से ही {{count}} आइटम मौजूद हैं। क्या आप उन्हें बदलना चाहेंगे?",
"localReplace": "बदलें", "localReplace": "बदलें",
"localSkipExisting": "Skip", "localSkipExisting": "छोडना",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "मौजूदा आइटमों में से {{count}} को छोड़ दिया गया",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "इस कंप्यूटर पर जिन आइटमों के नाम इस्तेमाल नहीं किए जा सकते, उन्हें छोड़ दिया गया है {{count}}",
"localOpen": "खोलें", "localOpen": "खोलें",
"localOpenFolder": "Open folder", "localOpenFolder": "फोल्डर खोलें",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "सर्वर पर अपलोड करें",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "सर्वर पर {{count}} आइटम अपलोड करें",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "ट्रैश में ले जाएं",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "{{count}} आइटम ट्रैश में ले जाएं",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "क्या आप \"{{name}}\" को ट्रैश में ले जाना चाहते हैं?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "क्या आप फोल्डर \"{{name}}\" और उसकी सभी सामग्री को ट्रैश में ले जाना चाहते हैं?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "क्या {{count}} आइटम ट्रैश में ले जाएं?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "{{count}} आइटम ट्रैश में भेज दिए गए हैं",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "ट्रैश में नहीं ले जाया जा सका",
"localRenameFailed": "Rename failed", "localRenameFailed": "नाम बदलने में विफल रहा",
"localCreateFailed": "Could not create item", "localCreateFailed": "आइटम नहीं बनाया जा सका",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "मूल फ़ोल्डर पर जाएँ",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "साइडबार का आकार बदलने के लिए उसे खींचें (रीसेट करने के लिए उस पर डबल-क्लिक करें)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "स्थानीय फलक का आकार बदलने के लिए उसे खींचें (आकार बदलने के लिए उस पर दो बार क्लिक करें)",
"columns": "कॉलम", "columns": "कॉलम",
"columnsHint": "Right-click to choose columns", "columnsHint": "कॉलम चुनने के लिए राइट-क्लिक करें",
"emptyFolder": "यह फ़ोल्डर खाली है", "emptyFolder": "यह फ़ोल्डर खाली है",
"searchFiles": "फ़ाइलें खोजें...", "searchFiles": "फ़ाइलें खोजें...",
"upload": "अपलोड करें", "upload": "अपलोड करें",
@@ -202,26 +202,26 @@
"confirmDeleteMultipleItemsWithFolders": "क्या आप वाकई {{count}} आइटम स्थायी रूप से हटाना चाहते हैं? इसमें फ़ोल्डर और उनकी सामग्री शामिल है।", "confirmDeleteMultipleItemsWithFolders": "क्या आप वाकई {{count}} आइटम स्थायी रूप से हटाना चाहते हैं? इसमें फ़ोल्डर और उनकी सामग्री शामिल है।",
"confirmDeleteFolder": "क्या आप वाकई फ़ोल्डर \"{{name}}\" और उसकी सभी सामग्री को स्थायी रूप से हटाना चाहते हैं?", "confirmDeleteFolder": "क्या आप वाकई फ़ोल्डर \"{{name}}\" और उसकी सभी सामग्री को स्थायी रूप से हटाना चाहते हैं?",
"permanentDeleteWarning": "यह क्रिया पूर्ववत नहीं की जा सकती। आइटम सर्वर से स्थायी रूप से हटा दिए जाएँगे।", "permanentDeleteWarning": "यह क्रिया पूर्ववत नहीं की जा सकती। आइटम सर्वर से स्थायी रूप से हटा दिए जाएँगे।",
"moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", "moveToTrashWarning": "आइटम को टर्मिक्स ट्रैश में भेज दिया जाएगा और प्रतिधारण अवधि समाप्त होने से पहले इसे पुनर्स्थापित किया जा सकता है।",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} आइटम ट्रैश में चले गए",
"trash": "Trash", "trash": "कचरा",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "हटाए गए आइटम इस होस्ट पर {{days}} दिनों तक रखे जाते हैं।",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "ट्रैश लोड करने में विफल",
"trashEmpty": "Trash is empty", "trashEmpty": "कचरा पात्र खाली है",
"trashRestore": "पुनर्स्थापित करें", "trashRestore": "पुनर्स्थापित करें",
"trashRestored": "Restored {{name}}", "trashRestored": "पुनर्स्थापित {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "आइटम को पुनर्स्थापित करने में विफल। मूल पथ पहले से मौजूद हो सकता है।",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "स्थायी रूप से हटाएं",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "{{name}}को स्थायी रूप से हटा दें? इसे पूर्ववत नहीं किया जा सकता।",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "स्थायी रूप से हटा दिया गया {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "आइटम को स्थायी रूप से हटाने में विफल रहा",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "कचरा खाली करें",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "ट्रैश में मौजूद सभी आइटम को स्थायी रूप से हटाना चाहते हैं? इसे वापस नहीं लिया जा सकता।",
"trashEmptied": "Trash emptied", "trashEmptied": "कचरा खाली कर दिया गया",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "(दिनों) के बाद स्वचालित सफाई",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "कचरा संग्रहण प्रणाली को अद्यतन किया गया",
"trashRetentionFailed": "Failed to update Trash retention", "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": "हाल ही", "recent": "हाल ही",
"pinned": "पिन किए गए", "pinned": "पिन किए गए",
"folderShortcuts": "फ़ोल्डर शॉर्टकट", "folderShortcuts": "फ़ोल्डर शॉर्टकट",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}} {{count}} आइटम", "operationCompleted": "{{operation}} {{count}} आइटम",
"downloadFileSuccess": "फ़ाइल {{name}} सफलतापूर्वक डाउनलोड हुई", "downloadFileSuccess": "फ़ाइल {{name}} सफलतापूर्वक डाउनलोड हुई",
"downloadFileFailed": "डाउनलोड विफल", "downloadFileFailed": "डाउनलोड विफल",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "डाउनलोड हो रहा है {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "{{name}} में ले जाएँ", "moveTo": "{{name}} में ले जाएँ",
"diffCompareWith": "{{name}} के साथ डिफ तुलना करें", "diffCompareWith": "{{name}} के साथ डिफ तुलना करें",
@@ -329,7 +329,7 @@
"connecting": "कनेक्ट हो रहा है...", "connecting": "कनेक्ट हो रहा है...",
"connectedSuccessfully": "सफलतापूर्वक कनेक्ट हुआ", "connectedSuccessfully": "सफलतापूर्वक कनेक्ट हुआ",
"totpVerificationFailed": "TOTP सत्यापन विफल", "totpVerificationFailed": "TOTP सत्यापन विफल",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "प्रवेश विफल। कृपया दोबारा प्रयास करें।",
"authenticationFailed": "प्रमाणीकरण विफल", "authenticationFailed": "प्रमाणीकरण विफल",
"incorrectPassphrase": "गलत पासफ़्रेज़। कृपया पुनः प्रयास करें।", "incorrectPassphrase": "गलत पासफ़्रेज़। कृपया पुनः प्रयास करें।",
"verificationCodePrompt": "सत्यापन कोड:", "verificationCodePrompt": "सत्यापन कोड:",
@@ -361,73 +361,73 @@
"used": "प्रयुक्त", "used": "प्रयुक्त",
"of": "में से", "of": "में से",
"toggleSidebar": "साइडबार टॉगल करें", "toggleSidebar": "साइडबार टॉगल करें",
"compactLayout": "Use compact layout", "compactLayout": "कॉम्पैक्ट लेआउट का उपयोग करें",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "सुविधाजनक लेआउट का उपयोग करें",
"cannotLoadPdf": "PDF लोड नहीं कर सकता", "cannotLoadPdf": "PDF लोड नहीं कर सकता",
"pdfLoadError": "इस PDF फ़ाइल को लोड करने में त्रुटि हुई।", "pdfLoadError": "इस PDF फ़ाइल को लोड करने में त्रुटि हुई।",
"loadingPdf": "PDF लोड हो रहा है...", "loadingPdf": "PDF लोड हो रहा है...",
"loadingPage": "पृष्ठ लोड हो रहा है...", "loadingPage": "पृष्ठ लोड हो रहा है...",
"cancel": "रद्द करें", "cancel": "रद्द करें",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "आइटम कॉपी किया गया {{count}}",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "आइटम कॉपी किए गए {{count}}",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "{{name}}की प्रतिलिपि को हटाया नहीं जा सका : {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "{{count}} आइटम को {{target}} में स्थानांतरित किया गया",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "{{count}} आइटम {{target}} में स्थानांतरित किए गए",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "{{name}} को वापस नहीं ले जाया जा सका: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "टर्मिनल: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "{{name}} को डेस्कटॉप पर खींचना",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "{{count}} फ़ाइलों को डेस्कटॉप पर खींचना",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "फ़ोल्डरों को डेस्कटॉप पर ड्रैग करने की सुविधा अभी समर्थित नहीं है।",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "सेव करने में विफल: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "ड्रैग विफल: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "आपका ब्राउज़र इस वीडियो प्रारूप को नहीं चला सकता।",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "इसे कहीं और खेलने के लिए डाउनलोड करें",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "इस फ़ाइल प्रकार का पूर्वावलोकन नहीं किया जा सकता है",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "इस फ़ाइल प्रकार का कोई पूर्वावलोकन नहीं है। इसे डाउनलोड करके किसी अन्य ऐप में खोलें।"
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "एसएफटीपी",
"description": "Transfer files between two SSH hosts.", "description": "दो SSH होस्ट के बीच फ़ाइलें स्थानांतरित करें।",
"sourceServer": "Source Server", "sourceServer": "स्रोत सर्वर",
"destinationServer": "Destination Server", "destinationServer": "गंतव्य सर्वर",
"selectHost": "Select host", "selectHost": "होस्ट का चयन करें",
"noHostSelected": "कोई होस्ट चयनित नहीं है", "noHostSelected": "कोई होस्ट चयनित नहीं है",
"move": "ले जाएँ", "move": "ले जाएँ",
"copy": "कॉपी", "copy": "कॉपी",
"upload": "अपलोड करें", "upload": "अपलोड करें",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} आइटम चयनित",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} आइटम चयनित",
"ready": "तैयार", "ready": "तैयार",
"loadingHosts": "होस्ट लोड हो रहे हैं...", "loadingHosts": "होस्ट लोड हो रहे हैं...",
"name": "नाम", "name": "नाम",
"modified": "संशोधित", "modified": "संशोधित",
"size": "आकार", "size": "आकार",
"noFiles": "No files", "noFiles": "कोई फ़ाइल नहीं",
"open": "खोलें", "open": "खोलें",
"up": "Up", "up": "ऊपर",
"refresh": "ताज़ा करें", "refresh": "ताज़ा करें",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "लक्ष्य निर्देशिका में प्रतिलिपि करें",
"rename": "नाम बदलें", "rename": "नाम बदलें",
"delete": "हटाएँ", "delete": "हटाएँ",
"editPermissions": "Edit Permissions", "editPermissions": "संपादन अनुमतियाँ",
"createNewFolder": "Create New Folder", "createNewFolder": "नया फ़ोल्डर बनाएं",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "चयनित आइटम हटाएं",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "चयनित आइटम हटाएं {{count}}?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "चयनित आइटम हटाएं {{count}}?",
"cancel": "रद्द करें", "cancel": "रद्द करें",
"save": "सहेजें", "save": "सहेजें",
"folderCreated": "Folder created", "folderCreated": "फ़ोल्डर बनाया गया",
"itemRenamed": "Item renamed", "itemRenamed": "आइटम का नाम बदल दिया गया",
"actionFailed": "कार्रवाई विफल", "actionFailed": "कार्रवाई विफल",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} आइटम हटा दिया गया",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} आइटम हटा दिए गए",
"deleteFailed": "Delete failed", "deleteFailed": "डिलीट विफल",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "अनुमतियाँ अपडेट की गईं",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "कोई रिमोट सेशन कनेक्ट नहीं हुआ",
"failedToListFiles": "Failed to list files", "failedToListFiles": "फ़ाइलों को सूचीबद्ध करने में विफल",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "रीफ़्रेश करने में विफल",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "गंतव्य चयनित स्रोत पथ के अंदर नहीं हो सकता।",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "स्रोत और गंतव्य एक ही फ़ोल्डर हैं।"
}, },
"hosts": { "hosts": {
"fileManager": "फ़ाइल प्रबंधक", "fileManager": "फ़ाइल प्रबंधक",
@@ -438,8 +438,8 @@
"loadingHost": "होस्ट लोड हो रहा है..." "loadingHost": "होस्ट लोड हो रहा है..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "फ़ाइल मैनेजर",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "ऐप छोड़े बिना SFTP के माध्यम से फाइलों को ब्राउज़ करें, अपलोड करें, डाउनलोड करें और संपादित करें।"
}, },
"terminal": { "terminal": {
"runTitle": "{{command}} चल रहा है - {{host}}", "runTitle": "{{command}} चल रहा है - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "गंतव्य पथ", "destinationPath": "गंतव्य पथ",
"destMustBeDirectory": "कई आइटम स्थानांतरण के लिए गंतव्य एक निर्देशिका होना चाहिए", "destMustBeDirectory": "कई आइटम स्थानांतरण के लिए गंतव्य एक निर्देशिका होना चाहिए",
"goUp": "ऊपर जाएं", "goUp": "ऊपर जाएं",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "प्रमाणीकरण आवश्यक है। पहले इस होस्ट पर फ़ाइल मैनेजर खोलें।",
"hostConnecting": "कनेक्ट हो रहा है…", "hostConnecting": "कनेक्ट हो रहा है…",
"hostConnectionFailed": "कनेक्शन विफल", "hostConnectionFailed": "कनेक्शन विफल",
"hostDisconnected": "कनेक्ट नहीं है", "hostDisconnected": "कनेक्ट नहीं है",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "आपने प्रति-फ़ाइल SFTP चुना।", "user_item_sftp": "आपने प्रति-फ़ाइल SFTP चुना।",
"user_tar": "आपने tar संग्रह चुना।", "user_tar": "आपने tar संग्रह चुना।",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "tar_unavailable": "एक या दोनों होस्ट पर टार उपलब्ध नहीं है, इसलिए इसके बजाय प्रति-फाइल एसएफटीपी का उपयोग किया जाएगा।",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "इसमें विंडोज होस्ट शामिल है, इसलिए tar का उपयोग नहीं किया जाता है।",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "auto_multi_large": "ऑटो: कई फाइलें जिनमें संपीड़ित डेटा वाली एक बड़ी फाइल ({{largestSize}}) शामिल है। टार उन्हें एक ही स्थानांतरण में बंडल करता है।",
"auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "ऑटो: इस सेट में एक बड़ी फ़ाइल ({{largestSize}}), इसलिए प्रति-फ़ाइल SFTP.",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "ऑटो: अधिकतर असंपीड़नीय डेटा, इसलिए प्रति-फ़ाइल SFTP।",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "ऑटो: कई फाइलें ({{fileCount}}), टार प्रति-फाइल ओवरहेड को कम करता है।",
"auto_default": "ऑटो: इस सेट के लिए प्रति-फ़ाइल SFTP।" "auto_default": "ऑटो: इस सेट के लिए प्रति-फ़ाइल SFTP।"
}, },
"methodTar": "Tar संग्रह", "methodTar": "Tar संग्रह",
@@ -498,11 +498,11 @@
"metricsCompress": "स्रोत पर संपीड़न: {{duration}}", "metricsCompress": "स्रोत पर संपीड़न: {{duration}}",
"metricsExtract": "गंतव्य पर निष्कर्षण: {{duration}}", "metricsExtract": "गंतव्य पर निष्कर्षण: {{duration}}",
"metricsPrepare": "गंतव्य तैयारी: {{duration}}", "metricsPrepare": "गंतव्य तैयारी: {{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "रूट प्रोब: डायरेक्ट {{direct}}, रिले {{relay}}",
"metricsSourceDelete": "स्रोत से हटाना: {{duration}}", "metricsSourceDelete": "स्रोत से हटाना: {{duration}}",
"metricsTotal": "कुल: {{duration}}", "metricsTotal": "कुल: {{duration}}",
"metricsTransfer": "एंड-टू-एंड: {{throughput}} ({{duration}})", "metricsTransfer": "एंड-टू-एंड: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "SHA-256 सत्यापित: {{duration}}",
"moveFolderToHost": "फ़ोल्डर होस्ट पर स्थानांतरित करें…", "moveFolderToHost": "फ़ोल्डर होस्ट पर स्थानांतरित करें…",
"moveItemsToHost": "{{count}} आइटम होस्ट पर स्थानांतरित करें…", "moveItemsToHost": "{{count}} आइटम होस्ट पर स्थानांतरित करें…",
"moveToHost": "होस्ट पर ले जाएँ…", "moveToHost": "होस्ट पर ले जाएँ…",
@@ -511,7 +511,7 @@
"parallelSegmentsHint": "बड़ी फ़ाइलें 256 MB टुकड़ों में विभाजित होती हैं। एकाधिक लेन उच्च कुल थ्रूपुट के लिए अलग-अलग कनेक्शन का उपयोग करती हैं (जैसे कई स्थानांतरण प्रारंभ करना)।", "parallelSegmentsHint": "बड़ी फ़ाइलें 256 MB टुकड़ों में विभाजित होती हैं। एकाधिक लेन उच्च कुल थ्रूपुट के लिए अलग-अलग कनेक्शन का उपयोग करती हैं (जैसे कई स्थानांतरण प्रारंभ करना)।",
"parallelSegmentsLabel": "समानांतर स्थानांतरण लेन", "parallelSegmentsLabel": "समानांतर स्थानांतरण लेन",
"parallelSegmentsOption": "{{count}} लेन", "parallelSegmentsOption": "{{count}} लेन",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "सबसे तेज़ स्थानांतरण मार्ग का चयन करना…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "रद्द करें", "progressCancel": "रद्द करें",
"progressCancelling": "रद्द कर रहा है…", "progressCancelling": "रद्द कर रहा है…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} कुल ({{lanes}} लेन)", "progressTotalSpeed": "{{speed}} कुल ({{lanes}} लेन)",
"progressTransferring": "डेटा स्थानांतरित कर रहा है…", "progressTransferring": "डेटा स्थानांतरित कर रहा है…",
"progressTransferringItems": "फ़ाइलें स्थानांतरित कर रहा है ({{current}} / {{total}})…", "progressTransferringItems": "फ़ाइलें स्थानांतरित कर रहा है ({{current}} / {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "फ़ाइल की अखंडता का सत्यापन…",
"recentDestinations": "हाल के गंतव्य", "recentDestinations": "हाल के गंतव्य",
"resumedHint": "किसी अन्य विंडो में शुरू हुए सक्रिय स्थानांतरण से पुनः जुड़ा।", "resumedHint": "किसी अन्य विंडो में शुरू हुए सक्रिय स्थानांतरण से पुनः जुड़ा।",
"retryTransfer": "पुनः प्रयास करें", "retryTransfer": "पुनः प्रयास करें",
File diff suppressed because it is too large. Load diff
@@ -79,7 +79,7 @@
"failedToUploadFile": "Caricamento file non riuscito", "failedToUploadFile": "Caricamento file non riuscito",
"uploadingFolderFiles": "Caricamento del/dei file {{count}} in corso...", "uploadingFolderFiles": "Caricamento del/dei file {{count}} in corso...",
"uploadedFolderFiles": "File caricati con successo {{count}}", "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", "fileDownloadedSuccessfully": "File \"{{name}}\" scaricato con successo",
"failedToDownloadFile": "Scaricamento file non riuscito", "failedToDownloadFile": "Scaricamento file non riuscito",
"fileCreatedSuccessfully": "File \"{{name}}\" creato con successo", "fileCreatedSuccessfully": "File \"{{name}}\" creato con successo",
@@ -120,7 +120,7 @@
"localNothingToTransfer": "Nulla da trasferire", "localNothingToTransfer": "Nulla da trasferire",
"localUploadComplete": "Caricato/i file {{count}}", "localUploadComplete": "Caricato/i file {{count}}",
"localUploadFailed": "Caricamento non riuscito", "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}}", "localDownloadComplete": "Scaricato il/i file {{count}}",
"localDownloadFailed": "Download non riuscito", "localDownloadFailed": "Download non riuscito",
"localDownloadPartial": "Scaricamento del/dei file {{done}} , {{failed}} non riuscito", "localDownloadPartial": "Scaricamento del/dei file {{done}} , {{failed}} non riuscito",
+250 -250
View File
@@ -1,36 +1,36 @@
{ {
"nav": { "nav": {
"files": "Files", "files": "Filer",
"sftp": "SFTP", "sftp": "SFTP",
"openFileManager": "Åpne filutforsker" "openFileManager": "Åpne filutforsker"
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Bruk filbehandleren",
"description": "Browse, edit and transfer files over SFTP." "description": "Bla gjennom, rediger og overfør filer via SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Aktiver filutforsker", "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": { "defaultPath": {
"label": "Standardsti" "label": "Standardsti"
}, },
"scpLegacy": { "scpLegacy": {
"label": "SCP Legacy Mode" "label": "SCP Legacy-modus"
} }
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Samtidige filoverføringer",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Bekreft før du flytter filer til papirkurven",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "Spør før du flytter eksterne filer til papirkurven. Permanent sletting krever fortsatt bekreftelse."
} }
} }
}, },
@@ -39,7 +39,7 @@
}, },
"fileManager": { "fileManager": {
"noHostSelected": "Ingen vert valgt", "noHostSelected": "Ingen vert valgt",
"initializingEditor": "Initializing editor...", "initializingEditor": "Initialiserer redigeringsprogrammet...",
"file": "Fil", "file": "Fil",
"folder": "Mappe", "folder": "Mappe",
"uploadFile": "Last opp fil", "uploadFile": "Last opp fil",
@@ -72,14 +72,14 @@
"rename": "Gi nytt navn", "rename": "Gi nytt navn",
"uploading": "Laster opp...", "uploading": "Laster opp...",
"uploadingFile": "Laster opp {{name}}...", "uploadingFile": "Laster opp {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "Laster opp {{name}}: {{percent}}% (del {{chunk}} av {{total}})",
"fileName": "Filnavn", "fileName": "Filnavn",
"folderName": "Mappenavn", "folderName": "Mappenavn",
"fileUploadedSuccessfully": "Fil \"{{name}}\" ble lastet opp", "fileUploadedSuccessfully": "Fil \"{{name}}\" ble lastet opp",
"failedToUploadFile": "Kunne ikke laste opp fil", "failedToUploadFile": "Kunne ikke laste opp fil",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "Laster opp {{count}} fil(er)...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "Lastet opp {{count}} fil(er)",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "Opplasting av {{uploaded}} fil(er), {{failed}} mislyktes",
"fileDownloadedSuccessfully": "Filen ble lastet ned", "fileDownloadedSuccessfully": "Filen ble lastet ned",
"failedToDownloadFile": "Kunne ikke laste ned fil", "failedToDownloadFile": "Kunne ikke laste ned fil",
"fileCreatedSuccessfully": "Fil \"{{name}}\" ble opprettet", "fileCreatedSuccessfully": "Fil \"{{name}}\" ble opprettet",
@@ -89,69 +89,69 @@
"failedToResolveSymlink": "Kunne ikke løse symbolske lenker", "failedToResolveSymlink": "Kunne ikke løse symbolske lenker",
"itemsDeletedSuccessfully": "{{count}} elementer ble slettet", "itemsDeletedSuccessfully": "{{count}} elementer ble slettet",
"failedToDeleteItems": "Kunne ikke slette elementer", "failedToDeleteItems": "Kunne ikke slette elementer",
"sudoPasswordRequired": "Administrator Password Required", "sudoPasswordRequired": "Administratorpassord kreves",
"enterSudoPassword": "Enter sudo password to continue this operation", "enterSudoPassword": "Skriv inn sudo-passordet for å fortsette denne operasjonen",
"sudoPassword": "Sudo password", "sudoPassword": "Sudo-passord",
"sudoOperationFailed": "Sudo operation failed", "sudoOperationFailed": "Sudo-operasjonen mislyktes",
"sudoAuthFailed": "Sudo authentication failed", "sudoAuthFailed": "Sudo-autentisering mislyktes",
"dragFilesToUpload": "Slipp filer her for å laste opp", "dragFilesToUpload": "Slipp filer her for å laste opp",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Slipp for å laste opp her",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Slipp for å laste ned her",
"localFiles": "Lokal", "localFiles": "Lokal",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Vis lokale filer (delt visning)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Skjul lokale filer",
"localHome": "Home folder", "localHome": "Hjemmappe",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Lokal mappebane",
"localShowHidden": "Show hidden files", "localShowHidden": "Vis skjulte filer",
"localHideHidden": "Hide hidden files", "localHideHidden": "Skjul skjulte filer",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Avslør i systemfilbehandleren",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Kan ikke åpne mappen",
"localItemCount": "{{count}} elementer", "localItemCount": "{{count}} elementer",
"localSelectedCount": "{{count}} valgt", "localSelectedCount": "{{count}} valgt",
"back": "Tilbake", "back": "Tilbake",
"forward": "Forward", "forward": "Framover",
"up": "Up", "up": "Opp",
"kind": "Kind", "kind": "Type",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "Laster opp {{current}} av {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "Laster ned {{current}} av {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} med en gang",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "Forbereder nedlasting ...",
"localTransferCancelled": "Transfer cancelled", "localTransferCancelled": "Overføringen er avbrutt",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Ingenting å overføre",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Opplastede {{count}} fil(er)",
"localUploadFailed": "Upload failed", "localUploadFailed": "Opplastingen mislyktes",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "Opplasting av {{done}} fil(er), {{failed}} mislyktes",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "Lastet ned {{count}} fil(er)",
"localDownloadFailed": "Nedlasting mislyktes", "localDownloadFailed": "Nedlasting mislyktes",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "Nedlasting av {{done}} fil(er), {{failed}} mislyktes",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "{{count}} element(er) finnes allerede i denne mappen. Vil du erstatte dem?",
"localReplace": "Erstatt", "localReplace": "Erstatt",
"localSkipExisting": "Skip", "localSkipExisting": "Hopp over",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Hoppet over {{count}} eksisterende element(er)",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Hoppet over {{count}} elementer hvis navn ikke kan brukes på denne datamaskinen",
"localOpen": "Open", "localOpen": "Åpne",
"localOpenFolder": "Open folder", "localOpenFolder": "Åpne mappen",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Last opp til server",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Last opp {{count}} elementer til serveren",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Flytt til papirkurven",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Flytt {{count}} elementer til papirkurven",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Flytte «{{name}}» til papirkurven?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "Flytte mappen «{{name}}» og alt innholdet til papirkurven?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Flytte {{count}} elementer til papirkurven?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Flyttet {{count}} element(er) til papirkurven",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Kunne ikke flytte til papirkurven",
"localRenameFailed": "Rename failed", "localRenameFailed": "Mislyktes i å gi nytt navn",
"localCreateFailed": "Could not create item", "localCreateFailed": "Kunne ikke opprette elementet",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Gå til overordnet mappe",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Dra for å endre størrelsen på sidefeltet (dobbeltklikk for å tilbakestille)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Dra for å endre størrelsen på den lokale ruten (dobbeltklikk for å tilbakestille)",
"columns": "Columns", "columns": "Kolonner",
"columnsHint": "Right-click to choose columns", "columnsHint": "Høyreklikk for å velge kolonner",
"emptyFolder": "Denne mappen er tom", "emptyFolder": "Denne mappen er tom",
"searchFiles": "Søk i filer...", "searchFiles": "Søk i filer...",
"upload": "Last opp", "upload": "Last opp",
"selectHostToStart": "Velg en vert for å starte filhåndtering", "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", "failedToConnect": "Kunne ikke koble til SSH",
"failedToLoadDirectory": "Kunne ikke laste katalog", "failedToLoadDirectory": "Kunne ikke laste katalog",
"noSSHConnection": "Ingen SSH-tilkobling tilgjengelig", "noSSHConnection": "Ingen SSH-tilkobling tilgjengelig",
@@ -172,22 +172,22 @@
"pathCopiedToClipboard": "Sti kopiert til utklippstavlen", "pathCopiedToClipboard": "Sti kopiert til utklippstavlen",
"pathsCopiedToClipboard": "{{count}} stier kopiert til utklippstavlen", "pathsCopiedToClipboard": "{{count}} stier kopiert til utklippstavlen",
"failedToCopyPath": "Kunne ikke kopiere sti", "failedToCopyPath": "Kunne ikke kopiere sti",
"copyFolderLink": "Copy Link to Folder", "copyFolderLink": "Kopier lenke til mappe",
"copyCurrentFolderLink": "Copy Link to Current Folder", "copyCurrentFolderLink": "Kopier lenke til gjeldende mappe",
"folderLinkCopied": "Folder link copied to clipboard", "folderLinkCopied": "Mappelenke kopiert til utklippstavlen",
"failedToCopyFolderLink": "Failed to copy folder link", "failedToCopyFolderLink": "Kunne ikke kopiere mappelenken",
"movedItems": "Flyttet {{count}} elementer", "movedItems": "Flyttet {{count}} elementer",
"failedToDeleteItem": "Kunne ikke slette element", "failedToDeleteItem": "Kunne ikke slette element",
"itemRenamedSuccessfully": "{{type}} fikk nytt navn", "itemRenamedSuccessfully": "{{type}} fikk nytt navn",
"failedToRenameItem": "Kunne ikke gi element nytt navn", "failedToRenameItem": "Kunne ikke gi element nytt navn",
"download": "Last ned", "download": "Last ned",
"openExternalEditor": "Open externally", "openExternalEditor": "Åpne eksternt",
"chooseExternalEditor": "Choose external editor", "chooseExternalEditor": "Velg ekstern editor",
"externalEditorSelected": "External editor selected", "externalEditorSelected": "Ekstern redigerer valgt",
"externalEditorDesktopOnly": "External editor is only available in the desktop app", "externalEditorDesktopOnly": "Ekstern editor er bare tilgjengelig i skrivebordsappen",
"externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", "externalEditorOpened": "Åpnet i ekstern editor. Hvis du lagrer der, lastes endringene opp tilbake til serveren.",
"failedToOpenExternalEditor": "Failed to open external editor", "failedToOpenExternalEditor": "Kunne ikke åpne ekstern editor",
"failedToSelectExternalEditor": "Failed to select external editor", "failedToSelectExternalEditor": "Kunne ikke velge ekstern redigeringsprogram",
"permissions": "Tillatelser", "permissions": "Tillatelser",
"size": "Størrelse", "size": "Størrelse",
"modified": "Endret", "modified": "Endret",
@@ -202,26 +202,26 @@
"confirmDeleteMultipleItemsWithFolders": "Er du sikker på at du vil slette {{count}} elementer permanent? Dette inkluderer mapper og innholdet deres.", "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?", "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.", "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.", "moveToTrashWarning": "Elementet/elementene vil bli flyttet til Termix-papirkurven og kan gjenopprettes før oppbevaringsperioden utløper.",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} element(er) flyttet til papirkurven",
"trash": "Trash", "trash": "Søppel",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Slettede elementer lagres i {{days}} dag(er) på denne verten.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Kunne ikke laste inn papirkurven",
"trashEmpty": "Trash is empty", "trashEmpty": "Papirkurven er tom",
"trashRestore": "Restore", "trashRestore": "Restaurere",
"trashRestored": "Restored {{name}}", "trashRestored": "Gjenopprettet {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Kunne ikke gjenopprette elementet. Den opprinnelige banen finnes kanskje allerede.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Slett permanent",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "Vil du slette {{name}}permanent? Dette kan ikke angres.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Slettet permanent {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Kunne ikke slette elementet permanent",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Tøm søppelbøtten",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "Vil du slette alle elementene i papirkurven permanent? Dette kan ikke angres.",
"trashEmptied": "Trash emptied", "trashEmptied": "Søppelet tømt",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Automatisk opprydding etter (dager)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Oppbevaring av søppel er oppdatert",
"trashRetentionFailed": "Failed to update Trash retention", "trashRetentionFailed": "Kunne ikke oppdatere papirkurven",
"trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", "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", "recent": "Nylige",
"pinned": "Festet", "pinned": "Festet",
"folderShortcuts": "Mappesnarveier", "folderShortcuts": "Mappesnarveier",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}} {{count}} elementer", "operationCompleted": "{{operation}} {{count}} elementer",
"downloadFileSuccess": "Fil {{name}} ble lastet ned", "downloadFileSuccess": "Fil {{name}} ble lastet ned",
"downloadFileFailed": "Nedlasting mislyktes", "downloadFileFailed": "Nedlasting mislyktes",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "Laster ned {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Flytt til {{name}}", "moveTo": "Flytt til {{name}}",
"diffCompareWith": "Sammenlign forskjeller med {{name}}", "diffCompareWith": "Sammenlign forskjeller med {{name}}",
@@ -314,14 +314,14 @@
"move": "Flytt", "move": "Flytt",
"searchInFile": "Søk i fil (Ctrl+F)", "searchInFile": "Søk i fil (Ctrl+F)",
"showKeyboardShortcuts": "Vis tastatursnarveier", "showKeyboardShortcuts": "Vis tastatursnarveier",
"decreaseFontSize": "Decrease font size", "decreaseFontSize": "Reduser skriftstørrelsen",
"increaseFontSize": "Increase font size", "increaseFontSize": "Øk skriftstørrelsen",
"startWritingMarkdown": "Begynn å skrive markdown-innhold...", "startWritingMarkdown": "Begynn å skrive markdown-innhold...",
"loadingFileComparison": "Laster filsammenligning...", "loadingFileComparison": "Laster filsammenligning...",
"reload": "Last inn på nytt", "reload": "Last inn på nytt",
"compare": "Sammenlign", "compare": "Sammenlign",
"sideBySide": "Side om side", "sideBySide": "Side om side",
"inline": "Inline", "inline": "Innebygd",
"fileComparison": "Filsammenligning: {{file1}} vs {{file2}}", "fileComparison": "Filsammenligning: {{file1}} vs {{file2}}",
"fileTooLarge": "Fil for stor: {{error}}", "fileTooLarge": "Fil for stor: {{error}}",
"sshConnectionFailed": "SSH-tilkobling mislyktes. Kontroller tilkoblingen til {{name}} ({{ip}}:{{port}})", "sshConnectionFailed": "SSH-tilkobling mislyktes. Kontroller tilkoblingen til {{name}} ({{ip}}:{{port}})",
@@ -329,10 +329,10 @@
"connecting": "Kobler til...", "connecting": "Kobler til...",
"connectedSuccessfully": "Tilkoblet", "connectedSuccessfully": "Tilkoblet",
"totpVerificationFailed": "TOTP-verifisering mislyktes", "totpVerificationFailed": "TOTP-verifisering mislyktes",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Påloggingen mislyktes. Prøv på nytt.",
"authenticationFailed": "Authentication failed", "authenticationFailed": "Autentisering mislyktes",
"incorrectPassphrase": "Incorrect passphrase. Please try again.", "incorrectPassphrase": "Feil passordfrase. Prøv på nytt.",
"verificationCodePrompt": "Verification code:", "verificationCodePrompt": "Verifiseringskode:",
"changePermissions": "Endre tillatelser", "changePermissions": "Endre tillatelser",
"currentPermissions": "Gjeldende tillatelser", "currentPermissions": "Gjeldende tillatelser",
"owner": "Eier", "owner": "Eier",
@@ -345,101 +345,101 @@
"failedToChangePermissions": "Kunne ikke endre tillatelser", "failedToChangePermissions": "Kunne ikke endre tillatelser",
"name": "Navn", "name": "Navn",
"sortByName": "Navn", "sortByName": "Navn",
"sortByDate": "Date Modified", "sortByDate": "Dato endret",
"sortBySize": "Størrelse", "sortBySize": "Størrelse",
"ascending": "Ascending", "ascending": "Stigende",
"descending": "Descending", "descending": "Synkende",
"root": "Root", "root": "Rot",
"new": "New", "new": "Ny",
"sortBy": "Sort By", "sortBy": "Sorter etter",
"items": "Items", "items": "Elementer",
"selected": "Selected", "selected": "Valgt",
"editor": "Editor", "editor": "Redaktør",
"octal": "Octal", "octal": "Oktal",
"storage": "Storage", "storage": "Lagring",
"disk": "Disk", "disk": "Disk",
"used": "Brukt", "used": "Brukt",
"of": "av", "of": "av",
"toggleSidebar": "Slå av/på sidepanel", "toggleSidebar": "Slå av/på sidepanel",
"compactLayout": "Use compact layout", "compactLayout": "Bruk kompakt oppsett",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Bruk komfortabel layout",
"cannotLoadPdf": "Cannot load PDF", "cannotLoadPdf": "Kan ikke laste inn PDF-filen",
"pdfLoadError": "There was an error loading this PDF file.", "pdfLoadError": "Det oppsto en feil under lasting av denne PDF-filen.",
"loadingPdf": "Loading PDF...", "loadingPdf": "Laster inn PDF-filen...",
"loadingPage": "Loading page...", "loadingPage": "Laster inn side...",
"cancel": "Avbryt", "cancel": "Avbryt",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Kopierte {{count}} element",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Kopierte {{count}} elementer",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Kunne ikke slette kopien av {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Flyttet {{count}} element til {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Flyttet {{count}} elementer til {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Kunne ikke flytte {{name}} tilbake: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Terminal: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Dra {{name}} til skrivebordet",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Dra {{count}} filer til skrivebordet",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Det støttes ikke ennå å dra mapper til skrivebordet",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Lagring mislyktes: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Drag mislyktes: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Nettleseren din kan ikke spille av dette videoformatet.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Last ned for å spille det et annet sted",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Kan ikke forhåndsvise denne filtypen",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Denne filtypen har ingen forhåndsvisning. Last den ned for å åpne den i en annen app."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Overfør filer mellom to SSH-verter.",
"sourceServer": "Source Server", "sourceServer": "Kildeserver",
"destinationServer": "Destination Server", "destinationServer": "Destinasjonsserver",
"selectHost": "Select host", "selectHost": "Velg vert",
"noHostSelected": "Ingen vert valgt", "noHostSelected": "Ingen vert valgt",
"move": "Flytt", "move": "Flytt",
"copy": "Kopier", "copy": "Kopier",
"upload": "Last opp", "upload": "Last opp",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} element valgt",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} elementer valgt",
"ready": "Klar", "ready": "Klar",
"loadingHosts": "Laster verter...", "loadingHosts": "Laster verter...",
"name": "Navn", "name": "Navn",
"modified": "Endret", "modified": "Endret",
"size": "Størrelse", "size": "Størrelse",
"noFiles": "No files", "noFiles": "Ingen filer",
"open": "Open", "open": "Åpne",
"up": "Up", "up": "Opp",
"refresh": "Oppdater", "refresh": "Oppdater",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Kopier til målkatalogen",
"rename": "Gi nytt navn", "rename": "Gi nytt navn",
"delete": "Slett", "delete": "Slett",
"editPermissions": "Edit Permissions", "editPermissions": "Rediger tillatelser",
"createNewFolder": "Opprett ny mappe", "createNewFolder": "Opprett ny mappe",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Slett valgte elementer",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Slette {{count}} valgt element?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Slette {{count}} valgte elementer?",
"cancel": "Avbryt", "cancel": "Avbryt",
"save": "Lagre", "save": "Lagre",
"folderCreated": "Folder created", "folderCreated": "Mappe opprettet",
"itemRenamed": "Item renamed", "itemRenamed": "Elementet har fått nytt navn",
"actionFailed": "Action failed", "actionFailed": "Handlingen mislyktes",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} element slettet",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} elementer slettet",
"deleteFailed": "Delete failed", "deleteFailed": "Slettingen mislyktes",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Tillatelser oppdatert",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Ingen ekstern økt tilkoblet",
"failedToListFiles": "Kunne ikke liste filer", "failedToListFiles": "Kunne ikke liste filer",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Kunne ikke laste inn på nytt",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "Destinasjonen kan ikke være innenfor den valgte kildebanen.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "Kilde og destinasjon er i samme mappe."
}, },
"hosts": { "hosts": {
"fileManager": "Filbehandler", "fileManager": "Filbehandler",
"fileManagerUrlCopied": "File Manager URL copied", "fileManagerUrlCopied": "URL-adressen til filbehandleren er kopiert",
"copyFileManagerUrlAction": "Copy File Manager URL", "copyFileManagerUrlAction": "Kopier URL-adressen til filbehandleren",
"docsLink": "View docs", "docsLink": "Vis dokumenter",
"hostNotFound": "Host not found", "hostNotFound": "Verten ble ikke funnet",
"loadingHost": "Loading host..." "loadingHost": "Laster inn vert ..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Filbehandler",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "Bla gjennom, last opp, last ned og rediger filer via SFTP uten å forlate appen."
}, },
"terminal": { "terminal": {
"runTitle": "Kjører {{command}} - {{host}}", "runTitle": "Kjører {{command}} - {{host}}",
@@ -447,97 +447,97 @@
"terminalWithPath": "Terminal - {{host}}:{{path}}" "terminalWithPath": "Terminal - {{host}}:{{path}}"
}, },
"transfer": { "transfer": {
"browseFolders": "Browse destination folders", "browseFolders": "Bla gjennom målmapper",
"browsePathError": "Could not open this path on the destination host.", "browsePathError": "Kunne ikke åpne denne banen på målverten.",
"browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", "browsePathWillBeCreated": "Denne mappen finnes ikke ennå. Den vil bli opprettet når overføringen starter.",
"cancel": "Avbryt", "cancel": "Avbryt",
"cleanupDestFiles": "Clean up destination", "cleanupDestFiles": "Rydd opp destinasjonen",
"cleanupDestFilesError": "Cleanup failed", "cleanupDestFilesError": "Opprydding mislyktes",
"cleanupDestFilesNothing": "Nothing to clean up on the destination", "cleanupDestFilesNothing": "Ingenting å rydde opp i på destinasjonen",
"cleanupDestFilesPartial": "Some partial files could not be removed", "cleanupDestFilesPartial": "Kunne ikke fjerne noen delvise filer",
"cleanupDestFilesSuccess": "Removed partial files from the destination", "cleanupDestFilesSuccess": "Fjernet delvise filer fra destinasjonen",
"confirmCopy": "Kopier", "confirmCopy": "Kopier",
"confirmMove": "Flytt", "confirmMove": "Flytt",
"copyFolderToHost": "Copy folder to host…", "copyFolderToHost": "Kopier mappe til vert…",
"copyItemsToHost": "Copy {{count}} items to host…", "copyItemsToHost": "Kopier {{count}} elementer til vert for…",
"copyToHost": "Copy to host…", "copyToHost": "Kopier til vert…",
"destinationPath": "Destination path", "destinationPath": "Destinasjonssti",
"destMustBeDirectory": "Destination must be a directory for multi-item transfers", "destMustBeDirectory": "Destinasjonen må være en katalog for overføringer av flere elementer",
"goUp": "Go up", "goUp": "Gå opp",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "Autentisering kreves. Åpne Filbehandler på denne verten først",
"hostConnecting": "Connecting…", "hostConnecting": "Kobler til…",
"hostConnectionFailed": "Tilkobling mislyktes", "hostConnectionFailed": "Tilkobling mislyktes",
"hostDisconnected": "Not connected", "hostDisconnected": "Ikke tilkoblet",
"hostReady": "Klar", "hostReady": "Klar",
"itemsSummary": "{{count}} elementer", "itemsSummary": "{{count}} elementer",
"jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", "jumpHostLimitation": "Begge vertene må være tilgjengelige fra Termix-serveren. Direkte vert-til-vert-ruting støttes ikke.",
"methodAuto": "Auto", "methodAuto": "Bil",
"methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", "methodAutoHint": "Velger tar eller SFTP per fil basert på antall filer, størrelse og komprimerbarhet. Enkeltfiler bruker alltid strømme-SFTP.",
"methodItemSftp": "Per-file SFTP", "methodItemSftp": "SFTP per fil",
"methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", "methodItemSftpHint": "Overfør hver fil individuelt via SFTP. Fungerer på alle verter, inkludert 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.", "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": "Transfer method", "methodLabel": "Overføringsmetode",
"methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", "methodPreviewError": "Kunne ikke forhåndsvise overføringsmetoden. Serveren vil fortsatt velge en metode når du starter.",
"methodPreviewLoading": "Calculating transfer method…", "methodPreviewLoading": "Beregning av overføringsmetode…",
"methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", "methodPreviewScanSummary": "{{fileCount}} filer, {{totalSize}} totalt (skannet på kildeverten).",
"methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", "methodPreviewWillUseItemSftp": "Vil bruke: SFTP per fil",
"methodPreviewWillUseTar": "Will use: Tar archive", "methodPreviewWillUseTar": "Vil bruke: Tar-arkiv",
"methodReason": { "methodReason": {
"user_item_sftp": "You chose per-file SFTP.", "user_item_sftp": "Du valgte SFTP per fil.",
"user_tar": "You chose tar archive.", "user_tar": "Du valgte tar-arkiv.",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "tar_unavailable": "Tar er ikke tilgjengelig på én eller begge vertene, så SFTP per fil vil bli brukt i stedet.",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "En Windows-vert er involvert, så tar brukes ikke.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "Auto: én stor fil ({{largestSize}}) i dette settet, så SFTP per fil.",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Auto: stort sett inkomprimerbare data, så SFTP per fil.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "Auto: mange filer ({{fileCount}}), tar reduserer overhead per fil.",
"auto_default": "Auto: per-file SFTP for this set." "auto_default": "Auto: SFTP per fil for dette settet."
}, },
"methodTar": "Tar archive", "methodTar": "Tar-arkiv",
"methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", "methodTarHint": "Komprimer på kildekode, overfør ett arkiv, pakk ut på destinasjon. Krever tar på begge Unix-vertene.",
"metricsCompress": "Compress on source: {{duration}}", "metricsCompress": "Komprimer på kilde: {{duration}}",
"metricsExtract": "Extract on destination: {{duration}}", "metricsExtract": "Uttrekk på destinasjon: {{duration}}",
"metricsPrepare": "Prepare destination: {{duration}}", "metricsPrepare": "Forbered destinasjon: {{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "Rutesonde: direkte {{direct}}, relé {{relay}}",
"metricsSourceDelete": "Remove from source: {{duration}}", "metricsSourceDelete": "Fjern fra kilden: {{duration}}",
"metricsTotal": "Total: {{duration}}", "metricsTotal": "Totalt: {{duration}}",
"metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", "metricsTransfer": "Ende-til-ende: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "SHA-256 bekreftet: {{duration}}",
"moveFolderToHost": "Move folder to host…", "moveFolderToHost": "Flytt mappen til verten…",
"moveItemsToHost": "Move {{count}} items to host…", "moveItemsToHost": "Flytt {{count}} elementer til vert for…",
"moveToHost": "Move to host…", "moveToHost": "Flytt til vert…",
"noHostsConnected": "No other file-manager hosts available.", "noHostsConnected": "Ingen andre filbehandlerverter tilgjengelig.",
"noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", "noHostsConnectedHint": "Legg til en annen SSH-vert med Filbehandling aktivert i Vertsbehandling.",
"parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", "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": "Parallel transfer lanes", "parallelSegmentsLabel": "Parallelle overføringsfelt",
"parallelSegmentsOption": "{{count}} lanes", "parallelSegmentsOption": "{{count}} baner",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "Velge den raskeste overgangsruten…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "Avbryt", "progressCancel": "Avbryt",
"progressCancelling": "Cancelling…", "progressCancelling": "Avbryter…",
"progressCompressing": "Compressing on source host…", "progressCompressing": "Komprimering på kildevert…",
"progressExtracting": "Extracting on destination…", "progressExtracting": "Uttrekker på destinasjon…",
"progressItems": "{{current}} / {{total}} files", "progressItems": "{{current}} / {{total}} filer",
"progressReconnecting": "Reconnecting…", "progressReconnecting": "Kobler til igjen…",
"progressStalled": "Stalled", "progressStalled": "Fastlåst",
"progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", "progressTotalSpeed": "{{speed}} totalt ({{lanes}} baner)",
"progressTransferring": "Transferring data…", "progressTransferring": "Overføring av data…",
"progressTransferringItems": "Transferring files ({{current}} of {{total}})…", "progressTransferringItems": "Overføring av filer ({{current}} av {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "Verifiserer filintegritet…",
"recentDestinations": "Recent destinations", "recentDestinations": "Nylige destinasjoner",
"resumedHint": "Reconnected to an active transfer started in another window.", "resumedHint": "Koblet til igjen en aktiv overføring som startet i et annet vindu.",
"retryTransfer": "Prøv igjen", "retryTransfer": "Prøv igjen",
"retryTransferError": "Retry failed", "retryTransferError": "Forsøk på nytt mislyktes",
"selectDestinationHost": "Select destination host", "selectDestinationHost": "Velg destinasjonsvert",
"transferCancelled": "Transfer cancelled", "transferCancelled": "Overføringen er avbrutt",
"transferCancelledCopyHint": "Partial files may remain on the destination.", "transferCancelledCopyHint": "Delvise filer kan bli liggende igjen på destinasjonen.",
"transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", "transferCancelledMoveHint": "Delvise filer kan bli liggende igjen på destinasjonen. Kildefilene ble ikke fjernet.",
"transferError": "Transfer failed", "transferError": "Overføringen mislyktes",
"transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", "transferFailedRetryHint": "Delvise data ble lagret på destinasjonen. Forsøket gjenopptas når forbindelsen er tilbake.",
"transferPartialHint": "Could not transfer: {{paths}}", "transferPartialHint": "Kunne ikke overføre: {{paths}}",
"transferSuccess": "Transfer complete", "transferSuccess": "Overføringen er fullført",
"metricsHopSourceRead": "Source → server: {{throughput}}", "metricsHopSourceRead": "Kilde → server: {{throughput}}",
"metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", "metricsHopDestSftpWrite": "Server → destinasjon (SFTP): {{throughput}}",
"metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" "metricsHopDestLocalWrite": "Server → dest (lokal): {{throughput}}"
} }
} }
+101 -101
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Użyj menedżera plików",
"description": "Browse, edit and transfer files over SFTP." "description": "Przeglądaj, edytuj i przesyłaj pliki przez SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Włącz menedżer plików", "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": { "defaultPath": {
"label": "Domyślna ścieżka" "label": "Domyślna ścieżka"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Jednoczesne przesyłanie plików",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Potwierdź przed przeniesieniem plików do kosza",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "Zapytaj przed przeniesieniem plików zdalnych do kosza. Trwałe usunięcie nadal wymaga potwierdzenia."
} }
} }
}, },
@@ -72,7 +72,7 @@
"rename": "Zmień nazwę", "rename": "Zmień nazwę",
"uploading": "Przesyłanie...", "uploading": "Przesyłanie...",
"uploadingFile": "Przesyłanie {{name}}...", "uploadingFile": "Przesyłanie {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "Przesyłanie {{name}}: {{percent}}% (część {{chunk}} z {{total}})",
"fileName": "Nazwa pliku", "fileName": "Nazwa pliku",
"folderName": "Nazwa folderu", "folderName": "Nazwa folderu",
"fileUploadedSuccessfully": "Plik „{{name}}” został pomyślnie przesłany", "fileUploadedSuccessfully": "Plik „{{name}}” został pomyślnie przesłany",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Operacja sudo nie powiodła się", "sudoOperationFailed": "Operacja sudo nie powiodła się",
"sudoAuthFailed": "Uwierzytelnianie sudo nie powiodło się", "sudoAuthFailed": "Uwierzytelnianie sudo nie powiodło się",
"dragFilesToUpload": "Upuść pliki tutaj, aby je przesłać", "dragFilesToUpload": "Upuść pliki tutaj, aby je przesłać",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Upuść, aby przesłać tutaj",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Upuść, aby pobrać tutaj",
"localFiles": "Lokalne", "localFiles": "Lokalne",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Pokaż pliki lokalne (widok podzielony)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Ukryj pliki lokalne",
"localHome": "Home folder", "localHome": "Folder domowy",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Ścieżka do folderu lokalnego",
"localShowHidden": "Show hidden files", "localShowHidden": "Pokaż ukryte pliki",
"localHideHidden": "Hide hidden files", "localHideHidden": "Ukryj ukryte pliki",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Pokaż w menedżerze plików systemowych",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Nie można otworzyć folderu",
"localItemCount": "{{count}} elementów", "localItemCount": "{{count}} elementów",
"localSelectedCount": "Zaznaczono: {{count}}", "localSelectedCount": "Zaznaczono: {{count}}",
"back": "Wstecz", "back": "Wstecz",
"forward": "Forward", "forward": "Do przodu",
"up": "Up", "up": "W górę",
"kind": "Kind", "kind": "Uprzejmy",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "Przesyłanie {{current}} z {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "Pobieranie {{current}} z {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} natychmiast",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "Przygotowywanie do pobrania...",
"localTransferCancelled": "Transfer anulowany", "localTransferCancelled": "Transfer anulowany",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Nic do przeniesienia",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Przesłano {{count}} plików",
"localUploadFailed": "Upload failed", "localUploadFailed": "Przesyłanie nie powiodło się",
"localUploadPartial": "Przesłano {{done}} plików, {{failed}} 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ę", "localDownloadFailed": "Pobieranie nie powiodło się",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "Pobrano {{done}} plików, {{failed}} nie powiodło się",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "W tym folderze istnieje już {{count}} elementów. Czy je zastąpić?",
"localReplace": "Zamień", "localReplace": "Zamień",
"localSkipExisting": "Skip", "localSkipExisting": "Pominąć",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Pominięto {{count}} istniejących elementów",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Pominięto {{count}} elementów, których nazw nie można używać na tym komputerze",
"localOpen": "Otwórz", "localOpen": "Otwórz",
"localOpenFolder": "Open folder", "localOpenFolder": "Otwórz folder",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Prześlij na serwer",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Prześlij {{count}} elementów na serwer",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Przenieś do kosza",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Przenieś {{count}} elementów do Kosza",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Przenieść „{{name}}” do Kosza?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "Czy przenieść folder „{{name}}” i całą jego zawartość do Kosza?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Przenieść {{count}} elementów do Kosza?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Przeniesiono {{count}} elementów do Kosza",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Nie można przenieść do Kosza",
"localRenameFailed": "Rename failed", "localRenameFailed": "Zmiana nazwy nie powiodła się",
"localCreateFailed": "Could not create item", "localCreateFailed": "Nie można utworzyć elementu",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Przejdź do folderu nadrzędnego",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Przeciągnij, aby zmienić rozmiar paska bocznego (kliknij dwukrotnie, aby zresetować)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Przeciągnij, aby zmienić rozmiar panelu lokalnego (kliknij dwukrotnie, aby zresetować)",
"columns": "Kolumny", "columns": "Kolumny",
"columnsHint": "Right-click to choose columns", "columnsHint": "Kliknij prawym przyciskiem myszy, aby wybrać kolumny",
"emptyFolder": "Ten folder jest pusty", "emptyFolder": "Ten folder jest pusty",
"searchFiles": "Wyszukaj pliki...", "searchFiles": "Wyszukaj pliki...",
"upload": "Prześlij", "upload": "Prześlij",
@@ -329,7 +329,7 @@
"connecting": "Łączenie...", "connecting": "Łączenie...",
"connectedSuccessfully": "Połączono pomyślnie", "connectedSuccessfully": "Połączono pomyślnie",
"totpVerificationFailed": "Weryfikacja TOTP nie powiodła się", "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ę", "authenticationFailed": "Uwierzytelnianie nie powiodło się",
"incorrectPassphrase": "Nieprawidłowe hasło klucza. Spróbuj ponownie.", "incorrectPassphrase": "Nieprawidłowe hasło klucza. Spróbuj ponownie.",
"verificationCodePrompt": "Kod weryfikacyjny:", "verificationCodePrompt": "Kod weryfikacyjny:",
@@ -361,73 +361,73 @@
"used": "Użyte", "used": "Użyte",
"of": "z", "of": "z",
"toggleSidebar": "Przełącz pasek boczny", "toggleSidebar": "Przełącz pasek boczny",
"compactLayout": "Use compact layout", "compactLayout": "Użyj kompaktowego układu",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Użyj wygodnego układu",
"cannotLoadPdf": "Nie można załadować pliku PDF", "cannotLoadPdf": "Nie można załadować pliku PDF",
"pdfLoadError": "Wystąpił błąd podczas ładowania pliku PDF.", "pdfLoadError": "Wystąpił błąd podczas ładowania pliku PDF.",
"loadingPdf": "Ładowanie pliku PDF...", "loadingPdf": "Ładowanie pliku PDF...",
"loadingPage": "Ładowanie strony...", "loadingPage": "Ładowanie strony...",
"cancel": "Anuluj", "cancel": "Anuluj",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Skopiowano element {{count}}",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Skopiowano {{count}} elementów",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Nie można usunąć kopii {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Przeniesiono {{count}} element do {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Przeniesiono {{count}} elementów do {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Nie można przesunąć {{name}} wstecz: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Terminal: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Przeciąganie {{name}} na pulpit",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Przeciąganie plików {{count}} na pulpit",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Przeciąganie folderów na pulpit nie jest jeszcze obsługiwane",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Nie udało się zapisać: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Nie udało się przeciągnąć: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Twoja przeglądarka nie może odtworzyć tego formatu wideo.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Pobierz, aby odtworzyć w innym miejscu",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Nie można wyświetlić podglądu tego typu pliku",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Ten typ pliku nie ma podglądu. Pobierz go, aby otworzyć w innej aplikacji."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Przesyłanie plików pomiędzy dwoma hostami SSH.",
"sourceServer": "Source Server", "sourceServer": "Serwer źródłowy",
"destinationServer": "Destination Server", "destinationServer": "Serwer docelowy",
"selectHost": "Select host", "selectHost": "Wybierz hosta",
"noHostSelected": "Nie wybrano hosta", "noHostSelected": "Nie wybrano hosta",
"move": "Przenieś", "move": "Przenieś",
"copy": "Kopiuj", "copy": "Kopiuj",
"upload": "Prześlij", "upload": "Prześlij",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} wybrano element",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "Wybrano {{count}} elementów",
"ready": "Gotowy", "ready": "Gotowy",
"loadingHosts": "Ładowanie hostów...", "loadingHosts": "Ładowanie hostów...",
"name": "Nazwa", "name": "Nazwa",
"modified": "Zmodyfikowano", "modified": "Zmodyfikowano",
"size": "Rozmiar", "size": "Rozmiar",
"noFiles": "No files", "noFiles": "Brak plików",
"open": "Otwórz", "open": "Otwórz",
"up": "Up", "up": "W górę",
"refresh": "Odśwież", "refresh": "Odśwież",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Kopiuj do katalogu docelowego",
"rename": "Zmień nazwę", "rename": "Zmień nazwę",
"delete": "Usuń", "delete": "Usuń",
"editPermissions": "Edit Permissions", "editPermissions": "Edytuj uprawnienia",
"createNewFolder": "Create New Folder", "createNewFolder": "Utwórz nowy folder",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Usuń wybrane elementy",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Usunąć {{count}} wybrany element?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Usunąć {{count}} wybranych elementów?",
"cancel": "Anuluj", "cancel": "Anuluj",
"save": "Zapisz", "save": "Zapisz",
"folderCreated": "Folder created", "folderCreated": "Utworzono folder",
"itemRenamed": "Item renamed", "itemRenamed": "Zmieniono nazwę elementu",
"actionFailed": "Akcja nie powiodła się", "actionFailed": "Akcja nie powiodła się",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} element usunięty",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "Usunięto {{count}} elementów",
"deleteFailed": "Delete failed", "deleteFailed": "Usunięcie nie powiodło się",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Zaktualizowano uprawnienia",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Brak połączonych sesji zdalnych",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Nie udało się wyświetlić listy plików",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Nie udało się odświeżyć",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "Miejsce docelowe nie może znajdować się wewnątrz wybranej ścieżki źródłowej.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "Źródło i cel znajdują się w tym samym folderze."
}, },
"hosts": { "hosts": {
"fileManager": "Menedżer plików", "fileManager": "Menedżer plików",
@@ -464,7 +464,7 @@
"destinationPath": "Ścieżka docelowa", "destinationPath": "Ścieżka docelowa",
"destMustBeDirectory": "Miejsce docelowe musi być katalogiem przy transferze wielu elementów", "destMustBeDirectory": "Miejsce docelowe musi być katalogiem przy transferze wielu elementów",
"goUp": "W górę", "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…", "hostConnecting": "Łączenie…",
"hostConnectionFailed": "Połączenie nieudane", "hostConnectionFailed": "Połączenie nieudane",
"hostDisconnected": "Nie połączono", "hostDisconnected": "Nie połączono",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "Wybrano SFTP dla poszczególnych plików.", "user_item_sftp": "Wybrano SFTP dla poszczególnych plików.",
"user_tar": "Wybrano archiwum tar.", "user_tar": "Wybrano archiwum tar.",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "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": "A Windows host is involved, so tar is not used.", "windows_host": "Ponieważ wykorzystywany jest host Windows, nie używa się pliku tar.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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: one large file ({{largestSize}}) in this set, so per-file SFTP.", "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: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Auto: dane w większości niekompresowalne, więc SFTP dla każdego pliku.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "Auto: wiele plików ({{fileCount}}), tar redukuje narzut na plik.",
"auto_default": "Auto: SFTP dla każdego pliku w tym zestawie." "auto_default": "Auto: SFTP dla każdego pliku w tym zestawie."
}, },
"methodTar": "Archiwum tar", "methodTar": "Archiwum tar",
@@ -498,7 +498,7 @@
"metricsCompress": "Kompresja w źródle: {{duration}}", "metricsCompress": "Kompresja w źródle: {{duration}}",
"metricsExtract": "Rozpakowanie w miejscu docelowym: {{duration}}", "metricsExtract": "Rozpakowanie w miejscu docelowym: {{duration}}",
"metricsPrepare": "Przygotowanie miejsca docelowego: {{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}}", "metricsSourceDelete": "Usunięcie ze źródła: {{duration}}",
"metricsTotal": "Razem: {{duration}}", "metricsTotal": "Razem: {{duration}}",
"metricsTransfer": "Całościowo: {{throughput}} ({{duration}})", "metricsTransfer": "Całościowo: {{throughput}} ({{duration}})",
+445 -445
View File
@@ -6,31 +6,31 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Use o gerenciador de arquivos",
"description": "Browse, edit and transfer files over SFTP." "description": "Navegue, edite e transfira arquivos via SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Ativar Gerenciador de Arquivos", "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": { "defaultPath": {
"label": "Caminho padrão" "label": "Caminho padrão"
}, },
"scpLegacy": { "scpLegacy": {
"label": "SCP Legacy Mode" "label": "Modo Legado SCP"
} }
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Transferências simultâneas de arquivos",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Confirme antes de mover os arquivos para a lixeira.",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "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" "label": "Gerenciador de Arquivos"
}, },
"fileManager": { "fileManager": {
"noHostSelected": "No host selected", "noHostSelected": "Nenhum host selecionado",
"initializingEditor": "Initializing editor...", "initializingEditor": "Inicializando o editor...",
"file": "File", "file": "Arquivo",
"folder": "Pasta", "folder": "Pasta",
"uploadFile": "Enviar arquivo", "uploadFile": "Enviar arquivo",
"downloadFile": "Download", "downloadFile": "Download",
"extractArchive": "Extract Archive", "extractArchive": "Extrair arquivo",
"extractingArchive": "Extracting {{name}}...", "extractingArchive": "Extraindo {{name}}...",
"archiveExtractedSuccessfully": "{{name}} extracted successfully", "archiveExtractedSuccessfully": "{{name}} extraído com sucesso",
"extractFailed": "Extract failed", "extractFailed": "A extração falhou",
"compressFile": "Compress File", "compressFile": "Compactar arquivo",
"compressFiles": "Compress Files", "compressFiles": "Comprimir arquivos",
"compressFilesDesc": "Compress {{count}} items into an archive", "compressFilesDesc": "Comprima {{count}} itens em um arquivo",
"archiveName": "Archive Name", "archiveName": "Nome do arquivo",
"enterArchiveName": "Enter archive name...", "enterArchiveName": "Digite o nome do arquivo...",
"compressionFormat": "Compression Format", "compressionFormat": "Formato de compressão",
"selectedFiles": "Selected files", "selectedFiles": "Arquivos selecionados",
"andMoreFiles": "and {{count}} more...", "andMoreFiles": "e {{count}} mais...",
"compress": "Compress", "compress": "Compressa",
"compressingFiles": "Compressing {{count}} items into {{name}}...", "compressingFiles": "Comprimindo {{count}} itens em {{name}}...",
"filesCompressedSuccessfully": "{{name}} created successfully", "filesCompressedSuccessfully": "{{name}} criado com sucesso",
"compressFailed": "Compression failed", "compressFailed": "A compressão falhou",
"edit": "Editar", "edit": "Editar",
"preview": "Preview", "preview": "Pré-visualização",
"previous": "Voltar", "previous": "Voltar",
"next": "Próximo", "next": "Próximo",
"pageXOfY": "Page {{current}} of {{total}}", "pageXOfY": "Página {{current}} de {{total}}",
"zoomOut": "Zoom Out", "zoomOut": "Diminuir o zoom",
"zoomIn": "Zoom In", "zoomIn": "Ampliar",
"newFile": "New File", "newFile": "Novo arquivo",
"newFolder": "New Folder", "newFolder": "Nova pasta",
"rename": "Renomear", "rename": "Renomear",
"uploading": "Uploading...", "uploading": "Carregando...",
"uploadingFile": "Uploading {{name}}...", "uploadingFile": "Carregando {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "Enviando {{name}}: {{percent}}% (parte {{chunk}} de {{total}})",
"fileName": "File Name", "fileName": "Nome do arquivo",
"folderName": "Folder Name", "folderName": "Nome da pasta",
"fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", "fileUploadedSuccessfully": "Arquivo \"{{name}}\" enviado com sucesso",
"failedToUploadFile": "Failed to upload file", "failedToUploadFile": "Falha ao carregar o arquivo",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "Enviando {{count}} arquivo(s)...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "Arquivo(s) carregado(s) com sucesso {{count}}",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed",
"fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", "fileDownloadedSuccessfully": "Arquivo \"{{name}}\" baixado com sucesso",
"failedToDownloadFile": "Failed to download file", "failedToDownloadFile": "Falha ao baixar o arquivo",
"fileCreatedSuccessfully": "File \"{{name}}\" created successfully", "fileCreatedSuccessfully": "Arquivo \"{{name}}\" criado com sucesso",
"folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", "folderCreatedSuccessfully": "Pasta \"{{name}}\" criada com sucesso",
"failedToCreateItem": "Failed to create item", "failedToCreateItem": "Falha ao criar o item",
"operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", "operationFailed": "A operação {{operation}} falhou para {{name}}: {{error}}",
"failedToResolveSymlink": "Failed to resolve symlink", "failedToResolveSymlink": "Falha ao resolver o link simbólico",
"itemsDeletedSuccessfully": "{{count}} items deleted successfully", "itemsDeletedSuccessfully": "{{count}} itens excluídos com sucesso",
"failedToDeleteItems": "Failed to delete items", "failedToDeleteItems": "Falha ao excluir itens",
"sudoPasswordRequired": "Administrator Password Required", "sudoPasswordRequired": "Senha de administrador necessária",
"enterSudoPassword": "Enter sudo password to continue this operation", "enterSudoPassword": "Digite a senha de sudo para continuar esta operação.",
"sudoPassword": "Sudo password", "sudoPassword": "Senha de sudo",
"sudoOperationFailed": "Sudo operation failed", "sudoOperationFailed": "A operação sudo falhou",
"sudoAuthFailed": "Sudo authentication failed", "sudoAuthFailed": "Falha na autenticação sudo",
"dragFilesToUpload": "Drop files here to upload", "dragFilesToUpload": "Arraste e solte os arquivos aqui para fazer o upload.",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Arraste e faça o upload aqui.",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Faça o download aqui.",
"localFiles": "Local", "localFiles": "Local",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Exibir arquivos locais (visualização dividida)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Ocultar arquivos locais",
"localHome": "Home folder", "localHome": "Pasta inicial",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Caminho da pasta local",
"localShowHidden": "Show hidden files", "localShowHidden": "Mostrar arquivos ocultos",
"localHideHidden": "Hide hidden files", "localHideHidden": "Ocultar arquivos ocultos",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Exibir no gerenciador de arquivos do sistema",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Não é possível abrir a pasta",
"localItemCount": "{{count}} items", "localItemCount": "{{count}} itens",
"localSelectedCount": "{{count}} selected", "localSelectedCount": "{{count}} selecionado",
"back": "Voltar", "back": "Voltar",
"forward": "Forward", "forward": "Avançar",
"up": "Up", "up": "Acima",
"kind": "Kind", "kind": "Tipo",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "Enviando {{current}} de {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "Baixando {{current}} de {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} imediatamente",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "Preparando o download...",
"localTransferCancelled": "Transfer cancelled", "localTransferCancelled": "Transferência cancelada",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Nada a transferir",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Uploaded {{count}} file(s)",
"localUploadFailed": "Upload failed", "localUploadFailed": "Falha no upload",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "Arquivo(s) baixado(s) {{count}}",
"localDownloadFailed": "Download failed", "localDownloadFailed": "Falha no download",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "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": "Replace", "localReplace": "Substituir",
"localSkipExisting": "Skip", "localSkipExisting": "Pular",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Ignorou {{count}} item(ns) existente(s)",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Ignorado {{count}} item(ns) cujos nomes não podem ser usados neste computador",
"localOpen": "Open", "localOpen": "Abrir",
"localOpenFolder": "Open folder", "localOpenFolder": "Abra a pasta",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Enviar para o servidor",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Enviar {{count}} itens para o servidor",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Mover para a Lixeira",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Mova {{count}} itens para a Lixeira",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Mover \"{{name}}\" para a Lixeira?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "Mover a pasta \"{{name}}\" e todo o seu conteúdo para a Lixeira?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Mover {{count}} itens para a Lixeira?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Movidos {{count}} itens para a Lixeira",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Não foi possível mover para a Lixeira",
"localRenameFailed": "Rename failed", "localRenameFailed": "A renomeação falhou",
"localCreateFailed": "Could not create item", "localCreateFailed": "Não foi possível criar o item.",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Acesse a pasta principal",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Arraste para redimensionar a barra lateral (clique duas vezes para redefinir).",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Arraste para redimensionar o painel local (clique duas vezes para redefinir).",
"columns": "Columns", "columns": "Colunas",
"columnsHint": "Right-click to choose columns", "columnsHint": "Clique com o botão direito do mouse para escolher as colunas.",
"emptyFolder": "This folder is empty", "emptyFolder": "Esta pasta está vazia",
"searchFiles": "Search files...", "searchFiles": "Pesquisar arquivos...",
"upload": "Fazer upload", "upload": "Fazer upload",
"selectHostToStart": "Select a host to start file management", "selectHostToStart": "Selecione um host para iniciar o gerenciamento de arquivos.",
"sshRequiredForFileManager": "File manager requires SSH. This host does not have SSH enabled.", "sshRequiredForFileManager": "O gerenciador de arquivos requer SSH. Este host não tem o SSH habilitado.",
"failedToConnect": "Failed to connect to SSH", "failedToConnect": "Falha ao conectar-se ao SSH",
"failedToLoadDirectory": "Failed to load directory", "failedToLoadDirectory": "Falha ao carregar o diretório",
"noSSHConnection": "No SSH connection available", "noSSHConnection": "Nenhuma conexão SSH disponível",
"copy": "Copiar", "copy": "Copiar",
"cut": "Cut", "cut": "Corte",
"paste": "Colar", "paste": "Colar",
"copyPath": "Copy Path", "copyPath": "Copiar caminho",
"copyPaths": "Copy Paths", "copyPaths": "Copiar caminhos",
"delete": "Apagar", "delete": "Apagar",
"properties": "Properties", "properties": "Propriedades",
"refresh": "Atualizar", "refresh": "Atualizar",
"downloadFiles": "Download {{count}} files to Browser", "downloadFiles": "Baixar {{count}} arquivos para o navegador",
"copyFiles": "Copy {{count}} items", "copyFiles": "Copiar {{count}} itens",
"cutFiles": "Cut {{count}} items", "cutFiles": "Recortar {{count}} itens",
"deleteFiles": "Delete {{count}} items", "deleteFiles": "Excluir {{count}} itens",
"filesCopiedToClipboard": "{{count}} items copied to clipboard", "filesCopiedToClipboard": "{{count}} itens copiados para a área de transferência",
"filesCutToClipboard": "{{count}} items cut to clipboard", "filesCutToClipboard": "{{count}} itens copiados para a área de transferência",
"pathCopiedToClipboard": "Path copied to clipboard", "pathCopiedToClipboard": "Caminho copiado para a área de transferência",
"pathsCopiedToClipboard": "{{count}} paths copied to clipboard", "pathsCopiedToClipboard": "{{count}} caminhos copiados para a área de transferência",
"failedToCopyPath": "Failed to copy path to clipboard", "failedToCopyPath": "Falha ao copiar o caminho para a área de transferência",
"copyFolderLink": "Copy Link to Folder", "copyFolderLink": "Copiar link para a pasta",
"copyCurrentFolderLink": "Copy Link to Current Folder", "copyCurrentFolderLink": "Copiar link para a pasta atual",
"folderLinkCopied": "Folder link copied to clipboard", "folderLinkCopied": "Link da pasta copiado para a área de transferência",
"failedToCopyFolderLink": "Failed to copy folder link", "failedToCopyFolderLink": "Falha ao copiar o link da pasta",
"movedItems": "Moved {{count}} items", "movedItems": "Itens movidos {{count}}",
"failedToDeleteItem": "Failed to delete item", "failedToDeleteItem": "Falha ao excluir o item",
"itemRenamedSuccessfully": "{{type}} renamed successfully", "itemRenamedSuccessfully": "{{type}} renomeado com sucesso",
"failedToRenameItem": "Failed to rename item", "failedToRenameItem": "Falha ao renomear o item",
"download": "Download", "download": "Download",
"openExternalEditor": "Open externally", "openExternalEditor": "Abrir externamente",
"chooseExternalEditor": "Choose external editor", "chooseExternalEditor": "Escolha um editor externo.",
"externalEditorSelected": "External editor selected", "externalEditorSelected": "Editor externo selecionado",
"externalEditorDesktopOnly": "External editor is only available in the desktop app", "externalEditorDesktopOnly": "O editor externo está disponível apenas no aplicativo para desktop.",
"externalEditorOpened": "Opened in external editor. Saving there will upload changes back to the server.", "externalEditorOpened": "Aberto em um editor externo. Salvar aqui enviará as alterações de volta para o servidor.",
"failedToOpenExternalEditor": "Failed to open external editor", "failedToOpenExternalEditor": "Não foi possível abrir o editor externo.",
"failedToSelectExternalEditor": "Failed to select external editor", "failedToSelectExternalEditor": "Não foi possível selecionar o editor externo.",
"permissions": "Permissions", "permissions": "Permissões",
"size": "Size", "size": "Tamanho",
"modified": "Modified", "modified": "Modificado",
"path": "Path", "path": "Caminho",
"confirmDelete": "Are you sure you want to delete {{name}}?", "confirmDelete": "Tem certeza de que deseja excluir {{name}}?",
"permissionDenied": "Permission denied", "permissionDenied": "Permissão negada",
"serverError": "Server Error", "serverError": "Erro do servidor",
"fileSavedSuccessfully": "File saved successfully", "fileSavedSuccessfully": "Arquivo salvo com sucesso",
"failedToSaveFile": "Failed to save file", "failedToSaveFile": "Falha ao salvar o arquivo",
"confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", "confirmDeleteSingleItem": "Tem certeza de que deseja excluir permanentemente \"{{name}}\"?",
"confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", "confirmDeleteMultipleItems": "Tem certeza de que deseja excluir permanentemente {{count}} itens?",
"confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", "confirmDeleteMultipleItemsWithFolders": "Tem certeza de que deseja excluir permanentemente {{count}} itens? Isso inclui pastas e seus conteúdos.",
"confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", "confirmDeleteFolder": "Tem certeza de que deseja excluir permanentemente a pasta \"{{name}}\" e todo o seu conteúdo?",
"permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", "permanentDeleteWarning": "Esta ação não pode ser desfeita. O(s) item(ns) será(ão) excluído(s) permanentemente do servidor.",
"moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", "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(s) moved to Trash", "itemsMovedToTrash": "{{count}} item(ns) movido(s) para a Lixeira",
"trash": "Trash", "trash": "Lixo",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Os itens excluídos são retidos por {{days}} dia(s) neste host.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Falha ao carregar a Lixeira",
"trashEmpty": "Trash is empty", "trashEmpty": "A lixeira está vazia.",
"trashRestore": "Restaurar", "trashRestore": "Restaurar",
"trashRestored": "Restored {{name}}", "trashRestored": "Restaurado {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Falha ao restaurar o item. O caminho original pode já existir.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Excluir permanentemente",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "Excluir permanentemente {{name}}? Esta ação não pode ser desfeita.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Excluído permanentemente {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Falha ao excluir o item permanentemente",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Esvaziar o lixo",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "Excluir permanentemente todos os itens da Lixeira? Esta ação é irreversível.",
"trashEmptied": "Trash emptied", "trashEmptied": "Lixo esvaziado",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Limpeza automática após (dias)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Retenção de lixo atualizada",
"trashRetentionFailed": "Failed to update Trash retention", "trashRetentionFailed": "Falha na atualização da retenção de lixo",
"trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", "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": "Recent", "recent": "Recente",
"pinned": "Pinned", "pinned": "Fixado",
"folderShortcuts": "Folder Shortcuts", "folderShortcuts": "Atalhos de pastas",
"failedToReconnectSSH": "Failed to reconnect SSH session", "failedToReconnectSSH": "Falha ao reconectar a sessão SSH",
"openTerminalHere": "Open Terminal Here", "openTerminalHere": "Abra o terminal aqui",
"run": "Run", "run": "Correr",
"openTerminalInFolder": "Open Terminal in This Folder", "openTerminalInFolder": "Abra o terminal nesta pasta.",
"openTerminalInFileLocation": "Open Terminal at File Location", "openTerminalInFileLocation": "Abra o terminal no local do arquivo.",
"runningFile": "Running - {{file}}", "runningFile": "Correndo - {{file}}",
"onlyRunExecutableFiles": "Can only run executable files", "onlyRunExecutableFiles": "Só é possível executar arquivos executáveis.",
"directories": "Directories", "directories": "Diretórios",
"removedFromRecentFiles": "Removed \"{{name}}\" from recent files", "removedFromRecentFiles": "Removemos \"{{name}}\" dos arquivos recentes",
"removeFailed": "Remove failed", "removeFailed": "Remover falha",
"unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", "unpinnedSuccessfully": "Desfixado \"{{name}}\" com sucesso",
"unpinFailed": "Unpin failed", "unpinFailed": "Desafixar falhou",
"removedShortcut": "Removed shortcut \"{{name}}\"", "removedShortcut": "Atalho removido \"{{name}}\"",
"removeShortcutFailed": "Remove shortcut failed", "removeShortcutFailed": "A remoção do atalho falhou",
"clearedAllRecentFiles": "Cleared all recent files", "clearedAllRecentFiles": "Apaguei todos os arquivos recentes.",
"clearFailed": "Clear failed", "clearFailed": "Limpar falhou",
"removeFromRecentFiles": "Remove from recent files", "removeFromRecentFiles": "Remover dos arquivos recentes",
"clearAllRecentFiles": "Clear all recent files", "clearAllRecentFiles": "Limpar todos os arquivos recentes",
"unpinFile": "Unpin file", "unpinFile": "Desafixar arquivo",
"removeShortcut": "Remove shortcut", "removeShortcut": "Remover atalho",
"pinFile": "Pin file", "pinFile": "Arquivo PIN",
"addToShortcuts": "Add to shortcuts", "addToShortcuts": "Adicionar aos atalhos",
"pasteFailed": "Paste failed", "pasteFailed": "A colagem falhou",
"noUndoableActions": "No undoable actions", "noUndoableActions": "Ações não podem ser desfeitas",
"undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", "undoCopySuccess": "Operação de cópia desfeita: Arquivos copiados excluídos {{count}}",
"undoCopyFailedDelete": "Undo failed: Could not delete any copied files", "undoCopyFailedDelete": "Falha ao desfazer: Não foi possível excluir nenhum arquivo copiado.",
"undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", "undoCopyFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo copiado.",
"undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", "undoMoveSuccess": "Operação de movimentação desfeita: {{count}} arquivos foram movidos de volta para o local original.",
"undoMoveFailedMove": "Undo failed: Could not move any files back", "undoMoveFailedMove": "Falha ao desfazer: Não foi possível mover nenhum arquivo de volta.",
"undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", "undoMoveFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo movido.",
"undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", "undoDeleteNotSupported": "A operação de exclusão não pode ser desfeita: os arquivos foram excluídos permanentemente do servidor.",
"undoTypeNotSupported": "Unsupported undo operation type", "undoTypeNotSupported": "Tipo de operação de desfazer não suportado",
"undoOperationFailed": "Undo operation failed", "undoOperationFailed": "A operação de desfazer falhou",
"unknownError": "Unknown error", "unknownError": "Erro desconhecido",
"confirm": "Confirmar", "confirm": "Confirmar",
"find": "Find...", "find": "Encontrar...",
"replace": "Replace", "replace": "Substituir",
"downloadInstead": "Download Instead", "downloadInstead": "Baixe em vez de baixar.",
"keyboardShortcuts": "Keyboard Shortcuts", "keyboardShortcuts": "Atalhos de teclado",
"searchAndReplace": "Search & Replace", "searchAndReplace": "Localizar e substituir",
"editing": "Editing", "editing": "Edição",
"search": "Search", "search": "Procurar",
"findNext": "Find Next", "findNext": "Encontre a seguir",
"findPrevious": "Find Previous", "findPrevious": "Encontrar Anterior",
"save": "Salvar", "save": "Salvar",
"selectAll": "Selecionar Tudo", "selectAll": "Selecionar Tudo",
"undo": "Undo", "undo": "Desfazer",
"redo": "Redo", "redo": "Refazer",
"moveLineUp": "Move Line Up", "moveLineUp": "Mova a fila para cima",
"moveLineDown": "Move Line Down", "moveLineDown": "Deslizar a linha para baixo",
"toggleComment": "Toggle Comment", "toggleComment": "Alternar comentário",
"autoComplete": "Auto Complete", "autoComplete": "Preenchimento automático",
"imageLoadError": "Failed to load image", "imageLoadError": "Falha ao carregar a imagem",
"startTyping": "Start typing...", "startTyping": "Comece a digitar...",
"unknownSize": "Unknown size", "unknownSize": "Tamanho desconhecido",
"fileIsEmpty": "File is empty", "fileIsEmpty": "O arquivo está vazio",
"largeFileWarning": "Large File Warning", "largeFileWarning": "Aviso de Arquivo Grande",
"largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", "largeFileWarningDesc": "Este arquivo tem {{size}} de tamanho, o que pode causar problemas de desempenho ao ser aberto como texto.",
"fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", "fileNotFoundAndRemoved": "O arquivo \"{{name}}\" não foi encontrado e foi removido dos arquivos recentes/fixados",
"failedToLoadFile": "Failed to load file: {{error}}", "failedToLoadFile": "Falha ao carregar o arquivo: {{error}}",
"serverErrorOccurred": "Server error occurred. Please try again later.", "serverErrorOccurred": "Ocorreu um erro no servidor. Tente novamente mais tarde.",
"autoSaveFailed": "Auto-save failed", "autoSaveFailed": "O salvamento automático falhou",
"fileAutoSaved": "File auto-saved", "fileAutoSaved": "Arquivo salvo automaticamente",
"moveFileFailed": "Failed to move {{name}}", "moveFileFailed": "Falha ao mover {{name}}",
"moveOperationFailed": "Move operation failed", "moveOperationFailed": "A operação de movimentação falhou",
"canOnlyCompareFiles": "Can only compare two files", "canOnlyCompareFiles": "Só é possível comparar dois arquivos.",
"comparingFiles": "Comparing files: {{file1}} and {{file2}}", "comparingFiles": "Comparando arquivos: {{file1}} e {{file2}}",
"dragFailed": "Drag operation failed", "dragFailed": "A operação de arrastar falhou",
"filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", "filePinnedSuccessfully": "Arquivo \"{{name}}\" fixado com sucesso",
"pinFileFailed": "Failed to pin file", "pinFileFailed": "Falha ao fixar o arquivo",
"fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", "fileUnpinnedSuccessfully": "Arquivo \"{{name}}\" desafixado com sucesso",
"unpinFileFailed": "Failed to unpin file", "unpinFileFailed": "Falha ao desafixar o arquivo",
"shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", "shortcutAddedSuccessfully": "Atalho de pasta \"{{name}}\" adicionado com sucesso",
"addShortcutFailed": "Failed to add shortcut", "addShortcutFailed": "Falha ao adicionar atalho",
"operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", "operationCompletedSuccessfully": "{{operation}} {{count}} itens com sucesso",
"operationCompleted": "{{operation}} {{count}} items", "operationCompleted": "{{operation}} {{count}} itens",
"downloadFileSuccess": "File {{name}} downloaded successfully", "downloadFileSuccess": "Arquivo {{name}} baixado com sucesso",
"downloadFileFailed": "Download failed", "downloadFileFailed": "Falha no download",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "Baixando {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Move to {{name}}", "moveTo": "Mover para {{name}}",
"diffCompareWith": "Diff compare with {{name}}", "diffCompareWith": "Diff compare com {{name}}",
"dragOutsideToDownload": "Drag outside window to download ({{count}} files)", "dragOutsideToDownload": "Arraste para fora da janela para baixar ({{count}} arquivos)",
"newFolderDefault": "NewFolder", "newFolderDefault": "Nova pasta",
"newFileDefault": "NewFile.txt", "newFileDefault": "NovoArquivo.txt",
"successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", "successfullyMovedItems": "Movidos com sucesso {{count}} itens para {{target}}",
"move": "Move", "move": "Mover",
"searchInFile": "Search in file (Ctrl+F)", "searchInFile": "Pesquisar no arquivo (Ctrl+F)",
"showKeyboardShortcuts": "Show keyboard shortcuts", "showKeyboardShortcuts": "Mostrar atalhos de teclado",
"decreaseFontSize": "Decrease font size", "decreaseFontSize": "Diminuir o tamanho da fonte",
"increaseFontSize": "Increase font size", "increaseFontSize": "Aumentar o tamanho da fonte",
"startWritingMarkdown": "Start writing your markdown content...", "startWritingMarkdown": "Comece a escrever seu conteúdo em Markdown...",
"loadingFileComparison": "Loading file comparison...", "loadingFileComparison": "Carregando comparação de arquivos...",
"reload": "Recarregar", "reload": "Recarregar",
"compare": "Compare", "compare": "Comparar",
"sideBySide": "Side by Side", "sideBySide": "Lado a lado",
"inline": "Inline", "inline": "Em linha",
"fileComparison": "File Comparison: {{file1}} vs {{file2}}", "fileComparison": "Comparação de arquivos: {{file1}} vs {{file2}}",
"fileTooLarge": "File too large: {{error}}", "fileTooLarge": "Arquivo muito grande: {{error}}",
"sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", "sshConnectionFailed": "A conexão SSH falhou. Verifique sua conexão com {{name}} ({{ip}}:{{port}})",
"loadFileFailed": "Failed to load file: {{error}}", "loadFileFailed": "Falha ao carregar o arquivo: {{error}}",
"connecting": "Conectando...", "connecting": "Conectando...",
"connectedSuccessfully": "Connected successfully", "connectedSuccessfully": "Conexão estabelecida com sucesso.",
"totpVerificationFailed": "TOTP verification failed", "totpVerificationFailed": "A verificação TOTP falhou.",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Falha ao efetuar o login. Tente novamente.",
"authenticationFailed": "Authentication failed", "authenticationFailed": "A autenticação falhou.",
"incorrectPassphrase": "Incorrect passphrase. Please try again.", "incorrectPassphrase": "Senha incorreta. Tente novamente.",
"verificationCodePrompt": "Verification code:", "verificationCodePrompt": "Código de verificação:",
"changePermissions": "Change Permissions", "changePermissions": "Alterar permissões",
"currentPermissions": "Current Permissions", "currentPermissions": "Permissões atuais",
"owner": "Owner", "owner": "Proprietário",
"group": "Group", "group": "Grupo",
"others": "Others", "others": "Outros",
"read": "Read", "read": "Ler",
"write": "Write", "write": "Escrever",
"execute": "Execute", "execute": "Executar",
"permissionsChangedSuccessfully": "Permissions changed successfully", "permissionsChangedSuccessfully": "Permissões alteradas com sucesso",
"failedToChangePermissions": "Failed to change permissions", "failedToChangePermissions": "Falha ao alterar as permissões",
"name": "Name", "name": "Nome",
"sortByName": "Name", "sortByName": "Nome",
"sortByDate": "Date Modified", "sortByDate": "Data de modificação",
"sortBySize": "Size", "sortBySize": "Tamanho",
"ascending": "Ascending", "ascending": "Ascendente",
"descending": "Descending", "descending": "Descendente",
"root": "Root", "root": "Raiz",
"new": "New", "new": "Novo",
"sortBy": "Sort By", "sortBy": "Ordenar por",
"items": "Items", "items": "Unid",
"selected": "Selected", "selected": "Selecionado",
"editor": "Editor", "editor": "Editor",
"octal": "Octal", "octal": "Octal",
"storage": "Storage", "storage": "Armazenar",
"disk": "Disk", "disk": "Disco",
"used": "Used", "used": "Usado",
"of": "de", "of": "de",
"toggleSidebar": "Toggle Sidebar", "toggleSidebar": "Alternar barra lateral",
"compactLayout": "Use compact layout", "compactLayout": "Utilize um layout compacto.",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Use um layout confortável",
"cannotLoadPdf": "Cannot load PDF", "cannotLoadPdf": "Não foi possível carregar o PDF.",
"pdfLoadError": "There was an error loading this PDF file.", "pdfLoadError": "Ocorreu um erro ao carregar este arquivo PDF.",
"loadingPdf": "Loading PDF...", "loadingPdf": "Carregando PDF...",
"loadingPage": "Loading page...", "loadingPage": "Carregando página...",
"cancel": "Cancelar", "cancel": "Cancelar",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Item copiado {{count}}",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Itens copiados {{count}}",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Não foi possível excluir a cópia de {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Moved {{count}} item to {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Movidos {{count}} itens para {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Não foi possível mover {{name}} para trás: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Terminal: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Arrastar {{name}} para a área de trabalho",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Arrastar {{count}} arquivos para a área de trabalho",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Arrastar pastas para a área de trabalho ainda não é suportado.",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Falha ao salvar: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Falha ao arrastar: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Seu navegador não consegue reproduzir este formato de vídeo.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Faça o download para jogar em outro lugar.",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Não é possível visualizar este tipo de arquivo.",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Este tipo de arquivo não possui pré-visualização. Faça o download para abri-lo em outro aplicativo."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Transferir arquivos entre dois hosts SSH.",
"sourceServer": "Source Server", "sourceServer": "Servidor de origem",
"destinationServer": "Destination Server", "destinationServer": "Servidor de destino",
"selectHost": "Select host", "selectHost": "Selecione o host",
"noHostSelected": "No host selected", "noHostSelected": "Nenhum host selecionado",
"move": "Move", "move": "Mover",
"copy": "Copiar", "copy": "Copiar",
"upload": "Enviar", "upload": "Enviar",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} item selecionado",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} itens selecionados",
"ready": "Ready", "ready": "Preparar",
"loadingHosts": "Loading hosts...", "loadingHosts": "Carregando hosts...",
"name": "Name", "name": "Nome",
"modified": "Modified", "modified": "Modificado",
"size": "Size", "size": "Tamanho",
"noFiles": "No files", "noFiles": "Nenhum arquivo",
"open": "Open", "open": "Abrir",
"up": "Up", "up": "Acima",
"refresh": "Atualizar", "refresh": "Atualizar",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Copiar para o diretório de destino",
"rename": "Renomear", "rename": "Renomear",
"delete": "Apagar", "delete": "Apagar",
"editPermissions": "Edit Permissions", "editPermissions": "Editar permissões",
"createNewFolder": "Create New Folder", "createNewFolder": "Criar nova pasta",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Excluir itens selecionados",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Delete {{count}} selected item?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Excluir {{count}} itens selecionados?",
"cancel": "Cancelar", "cancel": "Cancelar",
"save": "Salvar", "save": "Salvar",
"folderCreated": "Folder created", "folderCreated": "Pasta criada",
"itemRenamed": "Item renamed", "itemRenamed": "Item renomeado",
"actionFailed": "Action failed", "actionFailed": "A ação falhou",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} item excluído",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} itens excluídos",
"deleteFailed": "Delete failed", "deleteFailed": "Falha ao excluir",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Permissões atualizadas",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Nenhuma sessão remota conectada.",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Falha ao listar os arquivos",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Falha ao atualizar",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "O destino não pode estar dentro do caminho de origem selecionado.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "A origem e o destino são a mesma pasta."
}, },
"hosts": { "hosts": {
"fileManager": "Gerenciador de Arquivos", "fileManager": "Gerenciador de Arquivos",
"fileManagerUrlCopied": "File Manager URL copied", "fileManagerUrlCopied": "URL do Gerenciador de Arquivos copiada",
"copyFileManagerUrlAction": "Copiar URL do Gerenciador de Arquivos", "copyFileManagerUrlAction": "Copiar URL do Gerenciador de Arquivos",
"docsLink": "Documentação", "docsLink": "Documentação",
"hostNotFound": "Host not found", "hostNotFound": "Host não encontrado",
"loadingHost": "Loading host..." "loadingHost": "Carregando host..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Gerenciador de arquivos",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "Navegue, carregue, baixe e edite arquivos via SFTP sem sair do aplicativo."
}, },
"terminal": { "terminal": {
"runTitle": "Running {{command}} - {{host}}", "runTitle": "Executando {{command}} - {{host}}",
"terminalTitle": "Terminal - {{host}}", "terminalTitle": "Terminal - {{host}}",
"terminalWithPath": "Terminal - {{host}}:{{path}}" "terminalWithPath": "Terminal - {{host}}:{{path}}"
}, },
"transfer": { "transfer": {
"browseFolders": "Browse destination folders", "browseFolders": "Procurar pastas de destino",
"browsePathError": "Could not open this path on the destination host.", "browsePathError": "Não foi possível abrir este caminho no host de destino.",
"browsePathWillBeCreated": "This folder does not exist yet. It will be created when the transfer starts.", "browsePathWillBeCreated": "Esta pasta ainda não existe. Ela será criada quando a transferência começar.",
"cancel": "Cancelar", "cancel": "Cancelar",
"cleanupDestFiles": "Clean up destination", "cleanupDestFiles": "destino de limpeza",
"cleanupDestFilesError": "Cleanup failed", "cleanupDestFilesError": "A limpeza falhou",
"cleanupDestFilesNothing": "Nothing to clean up on the destination", "cleanupDestFilesNothing": "Nada para limpar no destino.",
"cleanupDestFilesPartial": "Some partial files could not be removed", "cleanupDestFilesPartial": "Alguns arquivos parciais não puderam ser removidos.",
"cleanupDestFilesSuccess": "Removed partial files from the destination", "cleanupDestFilesSuccess": "Arquivos parciais removidos do destino.",
"confirmCopy": "Copiar", "confirmCopy": "Copiar",
"confirmMove": "Move", "confirmMove": "Mover",
"copyFolderToHost": "Copy folder to host…", "copyFolderToHost": "Copiar pasta para o host…",
"copyItemsToHost": "Copy {{count}} items to host…", "copyItemsToHost": "Copiar {{count}} itens para o host…",
"copyToHost": "Copy to host…", "copyToHost": "Copiar para o host…",
"destinationPath": "Destination path", "destinationPath": "Caminho de destino",
"destMustBeDirectory": "Destination must be a directory for multi-item transfers", "destMustBeDirectory": "O destino deve ser um diretório para transferências de múltiplos itens.",
"goUp": "Go up", "goUp": "Subir",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "É necessária autenticação. Primeiro, abra o Gerenciador de Arquivos neste host.",
"hostConnecting": "Connecting…", "hostConnecting": "Conectando…",
"hostConnectionFailed": "Connection failed", "hostConnectionFailed": "Falha na conexão",
"hostDisconnected": "Not connected", "hostDisconnected": "Não conectado",
"hostReady": "Ready", "hostReady": "Preparar",
"itemsSummary": "{{count}} items", "itemsSummary": "{{count}} itens",
"jumpHostLimitation": "Both hosts must be reachable from the Termix server. Direct host-to-host routing is not supported.", "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", "methodAuto": "Auto",
"methodAutoHint": "Picks tar or per-file SFTP based on file count, size, and compressibility. Single files always use streaming SFTP.", "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": "Per-file SFTP", "methodItemSftp": "SFTP por arquivo",
"methodItemSftpHint": "Transfer each file individually over SFTP. Works on all hosts including Windows.", "methodItemSftpHint": "Transfira cada arquivo individualmente via SFTP. Funciona em todos os hosts, incluindo 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.", "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": "Transfer method", "methodLabel": "Método de transferência",
"methodPreviewError": "Could not preview transfer method. The server will still pick a method when you start.", "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": "Calculating transfer method…", "methodPreviewLoading": "Calculando o método de transferência…",
"methodPreviewScanSummary": "{{fileCount}} files, {{totalSize}} total (scanned on source host).", "methodPreviewScanSummary": "{{fileCount}} arquivos, {{totalSize}} total (verificado no host de origem).",
"methodPreviewWillUseItemSftp": "Will use: Per-file SFTP", "methodPreviewWillUseItemSftp": "Será utilizado: SFTP por arquivo",
"methodPreviewWillUseTar": "Will use: Tar archive", "methodPreviewWillUseTar": "Será utilizado: Arquivo tar",
"methodReason": { "methodReason": {
"user_item_sftp": "You chose per-file SFTP.", "user_item_sftp": "Você escolheu SFTP por arquivo.",
"user_tar": "You chose tar archive.", "user_tar": "Você escolheu o arquivo tar.",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "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": "A Windows host is involved, so tar is not used.", "windows_host": "Como se trata de um host Windows, o tar não é utilizado.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "Automático: um arquivo grande ({{largestSize}}) neste conjunto, portanto, SFTP por arquivo.",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Automático: dados em sua maioria não compressíveis, portanto, SFTP por arquivo.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "Automático: muitos arquivos ({{fileCount}}), tar reduz a sobrecarga por arquivo.",
"auto_default": "Auto: per-file SFTP for this set." "auto_default": "Automático: SFTP por arquivo para este conjunto."
}, },
"methodTar": "Tar archive", "methodTar": "Arquivo Tar",
"methodTarHint": "Compress on source, transfer one archive, extract on destination. Requires tar on both Unix hosts.", "methodTarHint": "Comprima na origem, transfira um único arquivo compactado e extraia no destino. Requer o uso do tar em ambos os hosts Unix.",
"metricsCompress": "Compress on source: {{duration}}", "metricsCompress": "Comprimir na origem: {{duration}}",
"metricsExtract": "Extract on destination: {{duration}}", "metricsExtract": "Extrair no destino: {{duration}}",
"metricsPrepare": "Prepare destination: {{duration}}", "metricsPrepare": "Preparar destino: {{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "Sondagem de rota: direta {{direct}}, retransmissão {{relay}}",
"metricsSourceDelete": "Remove from source: {{duration}}", "metricsSourceDelete": "Remover da fonte: {{duration}}",
"metricsTotal": "Total: {{duration}}", "metricsTotal": "Total: {{duration}}",
"metricsTransfer": "End-to-end: {{throughput}} ({{duration}})", "metricsTransfer": "De ponta a ponta: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "Verificado por SHA-256: {{duration}}",
"moveFolderToHost": "Move folder to host…", "moveFolderToHost": "Mover pasta para o host…",
"moveItemsToHost": "Move {{count}} items to host…", "moveItemsToHost": "Mova {{count}} itens para o host…",
"moveToHost": "Move to host…", "moveToHost": "Mover para o host…",
"noHostsConnected": "No other file-manager hosts available.", "noHostsConnected": "Não há outros servidores de gerenciamento de arquivos disponíveis.",
"noHostsConnectedHint": "Add another SSH host with File Manager enabled in Host Manager.", "noHostsConnectedHint": "Adicione outro host SSH com o Gerenciador de Arquivos habilitado no Gerenciador de Hosts.",
"parallelSegmentsHint": "Large files are split into 256 MB chunks. Multiple lanes use separate connections (like starting several transfers) for higher total throughput.", "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": "Parallel transfer lanes", "parallelSegmentsLabel": "Faixas de transferência paralelas",
"parallelSegmentsOption": "{{count}} lanes", "parallelSegmentsOption": "{{count}} faixas",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "Selecionando a rota de transferência mais rápida…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "Cancelar", "progressCancel": "Cancelar",
"progressCancelling": "Cancelling…", "progressCancelling": "Cancelando…",
"progressCompressing": "Compressing on source host…", "progressCompressing": "Comprimindo no host de origem…",
"progressExtracting": "Extracting on destination…", "progressExtracting": "Extraindo no destino…",
"progressItems": "{{current}} / {{total}} files", "progressItems": "{{current}} / {{total}} arquivos",
"progressReconnecting": "Reconnecting…", "progressReconnecting": "Reconectando…",
"progressStalled": "Stalled", "progressStalled": "Paralisado",
"progressTotalSpeed": "{{speed}} total ({{lanes}} lanes)", "progressTotalSpeed": "{{speed}} total ({{lanes}} faixas)",
"progressTransferring": "Transferring data…", "progressTransferring": "Transferindo dados…",
"progressTransferringItems": "Transferring files ({{current}} of {{total}})…", "progressTransferringItems": "Transferindo arquivos ({{current}} de {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "Verificando a integridade do arquivo…",
"recentDestinations": "Recent destinations", "recentDestinations": "Destinos recentes",
"resumedHint": "Reconnected to an active transfer started in another window.", "resumedHint": "Reconectado a uma transferência ativa iniciada em outra janela.",
"retryTransfer": "Retry", "retryTransfer": "Tentar novamente",
"retryTransferError": "Retry failed", "retryTransferError": "A nova tentativa falhou.",
"selectDestinationHost": "Select destination host", "selectDestinationHost": "Selecione o host de destino",
"transferCancelled": "Transfer cancelled", "transferCancelled": "Transferência cancelada",
"transferCancelledCopyHint": "Partial files may remain on the destination.", "transferCancelledCopyHint": "Alguns arquivos podem permanecer no destino.",
"transferCancelledMoveHint": "Partial files may remain on the destination. Source files were not removed.", "transferCancelledMoveHint": "É possível que alguns arquivos permaneçam no destino. Os arquivos de origem não foram removidos.",
"transferError": "Transfer failed", "transferError": "A transferência falhou",
"transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back.", "transferFailedRetryHint": "Dados parciais foram mantidos no destino. A tentativa será retomada quando a conexão for restabelecida.",
"transferPartialHint": "Could not transfer: {{paths}}", "transferPartialHint": "Não foi possível transferir: {{paths}}",
"transferSuccess": "Transfer complete", "transferSuccess": "Transferência concluída",
"metricsHopSourceRead": "Source → server: {{throughput}}", "metricsHopSourceRead": "Origem → servidor: {{throughput}}",
"metricsHopDestSftpWrite": "Server → dest (SFTP): {{throughput}}", "metricsHopDestSftpWrite": "Servidor → destino (SFTP): {{throughput}}",
"metricsHopDestLocalWrite": "Server → dest (local): {{throughput}}" "metricsHopDestLocalWrite": "Servidor → destino (local): {{throughput}}"
} }
} }
+124 -124
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Use o gestor de ficheiros",
"description": "Browse, edit and transfer files over SFTP." "description": "Navegue, edite e transfira ficheiros via SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Ativar Gestor de Ficheiros", "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": { "defaultPath": {
"label": "Caminho Predefinido" "label": "Caminho Predefinido"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Transferências simultâneas de ficheiros",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Confirme antes de mover os ficheiros para a reciclagem.",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "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", "rename": "Renomear",
"uploading": "A enviar...", "uploading": "A enviar...",
"uploadingFile": "A enviar {{name}}...", "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", "fileName": "Nome do ficheiro",
"folderName": "Nome da pasta", "folderName": "Nome da pasta",
"fileUploadedSuccessfully": "Ficheiro \"{{name}}\" enviado com sucesso", "fileUploadedSuccessfully": "Ficheiro \"{{name}}\" enviado com sucesso",
"failedToUploadFile": "Falha ao enviar ficheiro", "failedToUploadFile": "Falha ao enviar ficheiro",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "A enviar {{count}} ficheiro(s)...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "Ficheiro(s) carregado(s) com sucesso {{count}}",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed",
"fileDownloadedSuccessfully": "Ficheiro \"{{name}}\" descarregado com sucesso", "fileDownloadedSuccessfully": "Ficheiro \"{{name}}\" descarregado com sucesso",
"failedToDownloadFile": "Falha ao descarregar ficheiro", "failedToDownloadFile": "Falha ao descarregar ficheiro",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Operação sudo falhou", "sudoOperationFailed": "Operação sudo falhou",
"sudoAuthFailed": "Autenticação sudo falhou", "sudoAuthFailed": "Autenticação sudo falhou",
"dragFilesToUpload": "Arraste ficheiros aqui para carregar", "dragFilesToUpload": "Arraste ficheiros aqui para carregar",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Arraste e faça o upload aqui.",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Faça o download aqui.",
"localFiles": "Local", "localFiles": "Local",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Visualizar ficheiros locais (visualização dividida)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Ocultar ficheiros locais",
"localHome": "Home folder", "localHome": "Pasta inicial",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Caminho da pasta local",
"localShowHidden": "Show hidden files", "localShowHidden": "Mostrar ficheiros ocultos",
"localHideHidden": "Hide hidden files", "localHideHidden": "Ocultar ficheiros ocultos",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Exibir no gestor de ficheiros do sistema",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Não é possível abrir a pasta",
"localItemCount": "{{count}} itens", "localItemCount": "{{count}} itens",
"localSelectedCount": "{{count}} selecionado(s)", "localSelectedCount": "{{count}} selecionado(s)",
"back": "Voltar", "back": "Voltar",
"forward": "Forward", "forward": "Encaminhar",
"up": "Up", "up": "Para cima",
"kind": "Kind", "kind": "Amabilidade",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "A enviar {{current}} de {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "A descarregar {{current}} de {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} imediatamente",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "A preparar o download...",
"localTransferCancelled": "Transferência cancelada", "localTransferCancelled": "Transferência cancelada",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Nada a transferir",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Uploaded {{count}} file(s)",
"localUploadFailed": "Upload failed", "localUploadFailed": "Falha no upload",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "Ficheiro(s) descarregado(s) {{count}}",
"localDownloadFailed": "Falha ao descarregar", "localDownloadFailed": "Falha ao descarregar",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "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", "localReplace": "Substituir",
"localSkipExisting": "Skip", "localSkipExisting": "Ignorar",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Ignorou {{count}} item(s) existente(s)",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Ignorado {{count}} item(s) cujos nomes não podem ser utilizados neste computador",
"localOpen": "Abrir", "localOpen": "Abrir",
"localOpenFolder": "Open folder", "localOpenFolder": "Abra a pasta",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Enviar para o servidor",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Enviar {{count}} itens para o servidor",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Mover para a Reciclagem",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Mover {{count}} itens para a Reciclagem",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Deslocar \"{{name}}\" para a Reciclagem?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "Mover a pasta \"{{name}}\" e todo o seu conteúdo para a Reciclagem?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Mover {{count}} itens para a Reciclagem?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Movidos {{count}} itens para a Reciclagem",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Não foi possível mover para a Reciclagem",
"localRenameFailed": "Rename failed", "localRenameFailed": "A renomeação falhou",
"localCreateFailed": "Could not create item", "localCreateFailed": "Não foi possível criar o item.",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Aceda à pasta principal",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Arraste para redimensionar a barra lateral (clique duas vezes para repor).",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Arraste para redimensionar o painel local (clique duas vezes para repor).",
"columns": "Colunas", "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", "emptyFolder": "Esta pasta está vazia",
"searchFiles": "Procurar ficheiros...", "searchFiles": "Procurar ficheiros...",
"upload": "Carregar", "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.", "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?", "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.", "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.", "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}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} artigo(s) movido(s) para a Reciclagem",
"trash": "Trash", "trash": "Lixo",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Os itens eliminados são retidos durante {{days}} dia(s) neste host.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Falha ao carregar a Reciclagem",
"trashEmpty": "Trash is empty", "trashEmpty": "A papeleira está vazia.",
"trashRestore": "Restaurar", "trashRestore": "Restaurar",
"trashRestored": "Restored {{name}}", "trashRestored": "Restaurado {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Falha ao restaurar o item. O caminho original pode já existir.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Apagar permanentemente",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "Apagar permanentemente {{name}}? Esta ação não pode ser anulada.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Eliminado permanentemente {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Falha ao eliminar o item permanentemente",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Esvaziar o lixo",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "Apagar permanentemente todos os itens da Reciclagem? Esta ação é irreversível.",
"trashEmptied": "Trash emptied", "trashEmptied": "Lixo esvaziado",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Limpeza automática após (dias)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Retenção de lixo atualizada",
"trashRetentionFailed": "Failed to update Trash retention", "trashRetentionFailed": "Falha na atualização da retenção de lixo",
"trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", "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", "recent": "Recentes",
"pinned": "Fixados", "pinned": "Fixados",
"folderShortcuts": "Atalhos de pastas", "folderShortcuts": "Atalhos de pastas",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}} {{count}} itens", "operationCompleted": "{{operation}} {{count}} itens",
"downloadFileSuccess": "Ficheiro {{name}} descarregado com sucesso", "downloadFileSuccess": "Ficheiro {{name}} descarregado com sucesso",
"downloadFileFailed": "Falha ao descarregar", "downloadFileFailed": "Falha ao descarregar",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "A descarregar {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Mover para {{name}}", "moveTo": "Mover para {{name}}",
"diffCompareWith": "Comparar diferenças com {{name}}", "diffCompareWith": "Comparar diferenças com {{name}}",
@@ -329,7 +329,7 @@
"connecting": "A ligar...", "connecting": "A ligar...",
"connectedSuccessfully": "Ligado com sucesso", "connectedSuccessfully": "Ligado com sucesso",
"totpVerificationFailed": "Falha na verificação TOTP", "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", "authenticationFailed": "Falha na autenticação",
"incorrectPassphrase": "Frase-passe incorreta. Tente novamente.", "incorrectPassphrase": "Frase-passe incorreta. Tente novamente.",
"verificationCodePrompt": "Código de verificação:", "verificationCodePrompt": "Código de verificação:",
@@ -361,73 +361,73 @@
"used": "Utilizado", "used": "Utilizado",
"of": "de", "of": "de",
"toggleSidebar": "Alternar Barra Lateral", "toggleSidebar": "Alternar Barra Lateral",
"compactLayout": "Use compact layout", "compactLayout": "Utilize um layout compacto.",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Utilize um layout confortável",
"cannotLoadPdf": "Não é possível carregar o PDF", "cannotLoadPdf": "Não é possível carregar o PDF",
"pdfLoadError": "Ocorreu um erro ao carregar este ficheiro PDF.", "pdfLoadError": "Ocorreu um erro ao carregar este ficheiro PDF.",
"loadingPdf": "A carregar PDF...", "loadingPdf": "A carregar PDF...",
"loadingPage": "A carregar página...", "loadingPage": "A carregar página...",
"cancel": "Cancelar", "cancel": "Cancelar",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Item copiado {{count}}",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Itens copiados {{count}}",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Não foi possível eliminar a cópia de {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Moved {{count}} item to {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Movidos {{count}} itens para {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Não foi possível mover {{name}} para trás: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Terminal: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Arrastar {{name}} para o ambiente de trabalho",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Arrastar {{count}} ficheiros para o ambiente de trabalho",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Arrastar pastas para o ambiente de trabalho ainda não é suportado.",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Falha ao guardar: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Falha ao arrastar: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "O seu navegador não consegue reproduzir este formato de vídeo.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Faça o download para jogar noutro local.",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Não é possível visualizar este tipo de ficheiro.",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Este tipo de ficheiro não possui pré-visualização. Faça o download para abri-lo noutra aplicação."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Transferir ficheiros entre dois hosts SSH.",
"sourceServer": "Source Server", "sourceServer": "Servidor de origem",
"destinationServer": "Destination Server", "destinationServer": "Servidor de destino",
"selectHost": "Select host", "selectHost": "Selecione o host",
"noHostSelected": "Nenhum anfitrião selecionado", "noHostSelected": "Nenhum anfitrião selecionado",
"move": "Mover", "move": "Mover",
"copy": "Copiar", "copy": "Copiar",
"upload": "Carregar", "upload": "Carregar",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} item selecionado",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} itens selecionados",
"ready": "Pronto", "ready": "Pronto",
"loadingHosts": "A carregar hosts...", "loadingHosts": "A carregar hosts...",
"name": "Nome", "name": "Nome",
"modified": "Modificado", "modified": "Modificado",
"size": "Tamanho", "size": "Tamanho",
"noFiles": "No files", "noFiles": "Nenhum ficheiro",
"open": "Abrir", "open": "Abrir",
"up": "Up", "up": "Para cima",
"refresh": "Atualizar", "refresh": "Atualizar",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Copiar para o diretório de destino",
"rename": "Renomear", "rename": "Renomear",
"delete": "Eliminar", "delete": "Eliminar",
"editPermissions": "Edit Permissions", "editPermissions": "Editar permissões",
"createNewFolder": "Create New Folder", "createNewFolder": "Criar nova pasta",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Apagar itens selecionados",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Delete {{count}} selected item?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Apagar {{count}} itens selecionados?",
"cancel": "Cancelar", "cancel": "Cancelar",
"save": "Guardar", "save": "Guardar",
"folderCreated": "Folder created", "folderCreated": "Pasta criada",
"itemRenamed": "Item renamed", "itemRenamed": "Artigo renomeado",
"actionFailed": "A ação falhou", "actionFailed": "A ação falhou",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} item eliminado",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} itens eliminados",
"deleteFailed": "Delete failed", "deleteFailed": "Falha ao eliminar",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Permissões atualizadas",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Nenhuma sessão remota ligada.",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Falha ao listar os ficheiros",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Falha ao atualizar",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "O destino não pode estar dentro do caminho de origem selecionado.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "A origem e o destino são a mesma pasta."
}, },
"hosts": { "hosts": {
"fileManager": "Gestor de Ficheiros", "fileManager": "Gestor de Ficheiros",
@@ -438,8 +438,8 @@
"loadingHost": "A carregar o host..." "loadingHost": "A carregar o host..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Gestor de arquivos",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "Navegue, carregue, descarregue e edite ficheiros via SFTP sem sair da aplicação."
}, },
"terminal": { "terminal": {
"runTitle": "A executar {{command}} - {{host}}", "runTitle": "A executar {{command}} - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "Caminho de destino", "destinationPath": "Caminho de destino",
"destMustBeDirectory": "O destino deve ser uma pasta para transferências de vários itens.", "destMustBeDirectory": "O destino deve ser uma pasta para transferências de vários itens.",
"goUp": "Subir", "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…", "hostConnecting": "A ligar…",
"hostConnectionFailed": "Falha na ligação", "hostConnectionFailed": "Falha na ligação",
"hostDisconnected": "Desligado", "hostDisconnected": "Desligado",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "Optou por SFTP ficheiro a ficheiro.", "user_item_sftp": "Optou por SFTP ficheiro a ficheiro.",
"user_tar": "Optou por ficheiro tar.", "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.", "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": "A Windows host is involved, so tar is not used.", "windows_host": "Como se trata de um host Windows, o tar não é utilizado.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "Automático: um ficheiro grande ({{largestSize}}) neste conjunto, portanto, SFTP por ficheiro.",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Automático: dados maioritariamente não compressíveis, portanto, SFTP por ficheiro.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "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." "auto_default": "Automático: SFTP ficheiro a ficheiro para este conjunto."
}, },
"methodTar": "Arquivo Tar", "methodTar": "Arquivo Tar",
@@ -498,11 +498,11 @@
"metricsCompress": "Compressão na origem: {{duration}}", "metricsCompress": "Compressão na origem: {{duration}}",
"metricsExtract": "Extração no destino: {{duration}}", "metricsExtract": "Extração no destino: {{duration}}",
"metricsPrepare": "Preparar 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}}", "metricsSourceDelete": "Remoção da origem: {{duration}}",
"metricsTotal": "Total: {{duration}}", "metricsTotal": "Total: {{duration}}",
"metricsTransfer": "Ponta a ponta: {{throughput}} ({{duration}})", "metricsTransfer": "Ponta a ponta: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "Verificado por SHA-256: {{duration}}",
"moveFolderToHost": "Mover pasta para o host…", "moveFolderToHost": "Mover pasta para o host…",
"moveItemsToHost": "Mover {{count}} itens para o host…", "moveItemsToHost": "Mover {{count}} itens para o host…",
"moveToHost": "Mover 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.", "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", "parallelSegmentsLabel": "Vias de transferência paralelas",
"parallelSegmentsOption": "{{count}} vias", "parallelSegmentsOption": "{{count}} vias",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "Selecionando a rota de transferência mais rápida…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "Cancelar", "progressCancel": "Cancelar",
"progressCancelling": "A cancelar…", "progressCancelling": "A cancelar…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} total ({{lanes}} vias)", "progressTotalSpeed": "{{speed}} total ({{lanes}} vias)",
"progressTransferring": "A transferir dados…", "progressTransferring": "A transferir dados…",
"progressTransferringItems": "A transferir ficheiros ({{current}} de {{total}})…", "progressTransferringItems": "A transferir ficheiros ({{current}} de {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "Verificação da integridade do ficheiro…",
"recentDestinations": "Destinos recentes", "recentDestinations": "Destinos recentes",
"resumedHint": "Reconectado a uma transferência ativa iniciada noutra janela.", "resumedHint": "Reconectado a uma transferência ativa iniciada noutra janela.",
"retryTransfer": "Repetir", "retryTransfer": "Repetir",
+131 -131
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Используйте файловый менеджер",
"description": "Browse, edit and transfer files over SFTP." "description": "Просматривайте, редактируйте и передавайте файлы по протоколу SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Включить файловый менеджер", "label": "Включить файловый менеджер",
"description": "Browse and edit files on this host over SFTP." "description": "Просматривайте и редактируйте файлы на этом хосте по протоколу SFTP."
}, },
"defaultPath": { "defaultPath": {
"label": "Путь по умолчанию" "label": "Путь по умолчанию"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Одновременная передача файлов",
"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." "description": "Сколько файлов менеджер, работающий в режиме локального/удалённого доступа, может загружать или скачивать одновременно. Уменьшите это значение, если ваш сервер ограничивает количество SFTP-каналов."
}, },
"confirmBeforeTrash": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Перед перемещением файлов в корзину подтвердите перемещение.",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "Перед перемещением удалённых файлов в корзину запросите подтверждение. Для окончательного удаления всё равно потребуется подтверждение."
} }
} }
}, },
@@ -72,14 +72,14 @@
"rename": "Переименовать", "rename": "Переименовать",
"uploading": "Загрузка...", "uploading": "Загрузка...",
"uploadingFile": "Загрузка {{name}}...", "uploadingFile": "Загрузка {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "Загрузка {{name}}: {{percent}}% (часть {{chunk}} из {{total}})",
"fileName": "Имя файла", "fileName": "Имя файла",
"folderName": "Имя папки", "folderName": "Имя папки",
"fileUploadedSuccessfully": "Файл «{{name}}» успешно загружен", "fileUploadedSuccessfully": "Файл «{{name}}» успешно загружен",
"failedToUploadFile": "Не удалось загрузить файл", "failedToUploadFile": "Не удалось загрузить файл",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "Загрузка {{count}} файла(ов)...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "Файл(ы) {{count}} успешно загружен(ы).",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "Загрузка {{uploaded}} файла(ов), {{failed}} не удалась.",
"fileDownloadedSuccessfully": "Файл «{{name}}» успешно скачан", "fileDownloadedSuccessfully": "Файл «{{name}}» успешно скачан",
"failedToDownloadFile": "Не удалось скачать файл", "failedToDownloadFile": "Не удалось скачать файл",
"fileCreatedSuccessfully": "Файл «{{name}}» успешно создан", "fileCreatedSuccessfully": "Файл «{{name}}» успешно создан",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Операция sudo не удалась", "sudoOperationFailed": "Операция sudo не удалась",
"sudoAuthFailed": "Аутентификация sudo не удалась", "sudoAuthFailed": "Аутентификация sudo не удалась",
"dragFilesToUpload": "Перетащите файлы сюда для загрузки", "dragFilesToUpload": "Перетащите файлы сюда для загрузки",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Перетащите файл для загрузки сюда.",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Скачать можно здесь (перетащите ссылку)",
"localFiles": "Локальная", "localFiles": "Локальная",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Отображение локальных файлов (в режиме разделенного экрана)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Скрыть локальные файлы",
"localHome": "Home folder", "localHome": "Домашняя папка",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Путь к локальной папке",
"localShowHidden": "Show hidden files", "localShowHidden": "Показать скрытые файлы",
"localHideHidden": "Hide hidden files", "localHideHidden": "Скрыть скрытые файлы",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Показать в системном файловом менеджере",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Не удаётся открыть папку",
"localItemCount": "{{count}} элементов", "localItemCount": "{{count}} элементов",
"localSelectedCount": "{{count}} выбрано", "localSelectedCount": "{{count}} выбрано",
"back": "Назад", "back": "Назад",
"forward": "Forward", "forward": "Вперед",
"up": "Up", "up": "Вверх",
"kind": "Kind", "kind": "Добрый",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "Загрузка {{current}} из {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "Загрузка {{current}} из {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} сразу",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "Подготовка к загрузке...",
"localTransferCancelled": "Передача отменена", "localTransferCancelled": "Передача отменена",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Нет ничего для перевода",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Загружено {{count}} файлов",
"localUploadFailed": "Upload failed", "localUploadFailed": "Загрузка не удалась.",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "Загружено {{count}} файлов",
"localDownloadFailed": "Не удалось загрузить", "localDownloadFailed": "Не удалось загрузить",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "{{count}} Элемент(ы) уже существуют в этой папке. Заменить их?",
"localReplace": "Заменить", "localReplace": "Заменить",
"localSkipExisting": "Skip", "localSkipExisting": "Пропускать",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Пропущено {{count}} существующих элементов",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Пропущено {{count}} элементов, названия которых нельзя использовать на этом компьютере",
"localOpen": "Открыть", "localOpen": "Открыть",
"localOpenFolder": "Open folder", "localOpenFolder": "Открыть папку",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Загрузка на сервер",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Загрузите {{count}} предметов на сервер",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Переместить в мусорное ведро",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Переместить {{count}} элементов в корзину",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Переместить \"{{name}}\" в корзину?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "Переместить папку \"{{name}}\" и всё её содержимое в корзину?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Переместить {{count}} элементов в корзину?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Перемещено {{count}} предметов в корзину",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Не удалось переместить в мусорный бак.",
"localRenameFailed": "Rename failed", "localRenameFailed": "Переименование не удалось.",
"localCreateFailed": "Could not create item", "localCreateFailed": "Не удалось создать элемент.",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Перейдите в родительскую папку",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Перетащите ползунок, чтобы изменить размер боковой панели (двойной щелчок для сброса).",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Перетащите курсор, чтобы изменить размер локальной панели (двойной щелчок для сброса).",
"columns": "Столбцы", "columns": "Столбцы",
"columnsHint": "Right-click to choose columns", "columnsHint": "Щелкните правой кнопкой мыши, чтобы выбрать столбцы.",
"emptyFolder": "Эта папка пуста", "emptyFolder": "Эта папка пуста",
"searchFiles": "Поиск файлов...", "searchFiles": "Поиск файлов...",
"upload": "Загрузить", "upload": "Загрузить",
@@ -202,26 +202,26 @@
"confirmDeleteMultipleItemsWithFolders": "Вы уверены, что хотите безвозвратно удалить {{count}} элементов? Включая папки и их содержимое.", "confirmDeleteMultipleItemsWithFolders": "Вы уверены, что хотите безвозвратно удалить {{count}} элементов? Включая папки и их содержимое.",
"confirmDeleteFolder": "Вы уверены, что хотите безвозвратно удалить папку \"{{name}}\" и всё её содержимое?", "confirmDeleteFolder": "Вы уверены, что хотите безвозвратно удалить папку \"{{name}}\" и всё её содержимое?",
"permanentDeleteWarning": "Это действие необратимо. Элемент(ы) будут безвозвратно удалены с сервера.", "permanentDeleteWarning": "Это действие необратимо. Элемент(ы) будут безвозвратно удалены с сервера.",
"moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", "moveToTrashWarning": "Предмет(ы) будут перемещены в корзину Termix и могут быть возвращены на место до истечения срока хранения.",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} элемент(ы) перемещены в корзину",
"trash": "Trash", "trash": "Мусор",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Удаленные элементы сохраняются на этом хосте в течение {{days}} дней.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Не удалось загрузить мусор.",
"trashEmpty": "Trash is empty", "trashEmpty": "Мусорное ведро пусто.",
"trashRestore": "Восстановить", "trashRestore": "Восстановить",
"trashRestored": "Restored {{name}}", "trashRestored": "Восстановлено {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Не удалось восстановить элемент. Возможно, исходный путь уже существует.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Удалить навсегда",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "Удалить {{name}}навсегда? Это действие необратимо.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Удалено навсегда {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Не удалось удалить элемент навсегда.",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Опустошите мусорный бак",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "Удалить все элементы из корзины навсегда? Это действие необратимо.",
"trashEmptied": "Trash emptied", "trashEmptied": "Мусор вывезен",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Автоматическая очистка через (дней)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Обновлена информация о хранении мусора.",
"trashRetentionFailed": "Failed to update Trash retention", "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": "Недавние", "recent": "Недавние",
"pinned": "Закреплённые", "pinned": "Закреплённые",
"folderShortcuts": "Ярлыки папок", "folderShortcuts": "Ярлыки папок",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}} {{count}} элементов", "operationCompleted": "{{operation}} {{count}} элементов",
"downloadFileSuccess": "Файл {{name}} успешно загружен", "downloadFileSuccess": "Файл {{name}} успешно загружен",
"downloadFileFailed": "Не удалось загрузить", "downloadFileFailed": "Не удалось загрузить",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "Загрузка {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Переместить в {{name}}", "moveTo": "Переместить в {{name}}",
"diffCompareWith": "Сравнить с {{name}}", "diffCompareWith": "Сравнить с {{name}}",
@@ -329,7 +329,7 @@
"connecting": "Подключение...", "connecting": "Подключение...",
"connectedSuccessfully": "Подключено успешно", "connectedSuccessfully": "Подключено успешно",
"totpVerificationFailed": "Ошибка проверки TOTP", "totpVerificationFailed": "Ошибка проверки TOTP",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "Вход в систему не удался. Пожалуйста, попробуйте еще раз.",
"authenticationFailed": "Ошибка аутентификации", "authenticationFailed": "Ошибка аутентификации",
"incorrectPassphrase": "Неверная парольная фраза. Попробуйте еще раз.", "incorrectPassphrase": "Неверная парольная фраза. Попробуйте еще раз.",
"verificationCodePrompt": "Код подтверждения:", "verificationCodePrompt": "Код подтверждения:",
@@ -361,73 +361,73 @@
"used": "Занято", "used": "Занято",
"of": "из", "of": "из",
"toggleSidebar": "Переключить боковую панель", "toggleSidebar": "Переключить боковую панель",
"compactLayout": "Use compact layout", "compactLayout": "Используйте компактную компоновку.",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Используйте удобную планировку",
"cannotLoadPdf": "Не удаётся загрузить PDF", "cannotLoadPdf": "Не удаётся загрузить PDF",
"pdfLoadError": "Ошибка при загрузке этого PDF-файла.", "pdfLoadError": "Ошибка при загрузке этого PDF-файла.",
"loadingPdf": "Загрузка PDF...", "loadingPdf": "Загрузка PDF...",
"loadingPage": "Загрузка страницы...", "loadingPage": "Загрузка страницы...",
"cancel": "Отмена", "cancel": "Отмена",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Скопировано {{count}} элемент",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Скопировано {{count}} элементов",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Не удалось удалить копию {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Перемещен элемент {{count}} в {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Перемещено {{count}} элементов в {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Не удалось переместить {{name}} назад: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Терминал: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Перетаскивание {{name}} на рабочий стол",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Перетаскивание {{count}} файлов на рабочий стол",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Перетаскивание папок на рабочий стол пока не поддерживается.",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Сохранение не удалось: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Перетаскивание не удалось: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Ваш браузер не может воспроизвести этот видеоформат.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Скачайте, чтобы играть в другом месте.",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Предварительный просмотр файла этого типа невозможен.",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Для этого типа файла предварительный просмотр недоступен. Скачайте его, чтобы открыть в другом приложении."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Передача файлов между двумя SSH-хостами.",
"sourceServer": "Source Server", "sourceServer": "Исходный сервер",
"destinationServer": "Destination Server", "destinationServer": "Сервер назначения",
"selectHost": "Select host", "selectHost": "Выберите хост",
"noHostSelected": "Хост не выбран", "noHostSelected": "Хост не выбран",
"move": "Переместить", "move": "Переместить",
"copy": "Копировать", "copy": "Копировать",
"upload": "Загрузить", "upload": "Загрузить",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} выбранный элемент",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} выбранные элементы",
"ready": "Готов", "ready": "Готов",
"loadingHosts": "Загрузка хостов...", "loadingHosts": "Загрузка хостов...",
"name": "Название", "name": "Название",
"modified": "Изменён", "modified": "Изменён",
"size": "По размеру", "size": "По размеру",
"noFiles": "No files", "noFiles": "Нет файлов",
"open": "Открыть", "open": "Открыть",
"up": "Up", "up": "Вверх",
"refresh": "Обновить", "refresh": "Обновить",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Скопировать в целевую директорию",
"rename": "Переименовать", "rename": "Переименовать",
"delete": "Удалить", "delete": "Удалить",
"editPermissions": "Edit Permissions", "editPermissions": "Изменить права доступа",
"createNewFolder": "Create New Folder", "createNewFolder": "Создать новую папку",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Удалить выбранные элементы",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Удалить {{count}} выбранный элемент?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Удалить {{count}} выбранные элементы?",
"cancel": "Отмена", "cancel": "Отмена",
"save": "Сохранить", "save": "Сохранить",
"folderCreated": "Folder created", "folderCreated": "Создана папка",
"itemRenamed": "Item renamed", "itemRenamed": "Элемент переименован",
"actionFailed": "Действие не удалось", "actionFailed": "Действие не удалось",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} элемент удален",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} удаленные элементы",
"deleteFailed": "Delete failed", "deleteFailed": "Удаление не удалось.",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Права доступа обновлены.",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Удалённая сессия не подключена",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Не удалось отобразить список файлов.",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Не удалось обновить",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "Место назначения не может находиться внутри выбранного пути источника.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "Исходная и целевая папки — одна и та же."
}, },
"hosts": { "hosts": {
"fileManager": "Файловый менеджер", "fileManager": "Файловый менеджер",
@@ -438,8 +438,8 @@
"loadingHost": "Загрузка хоста..." "loadingHost": "Загрузка хоста..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Файловый менеджер",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "Просматривайте, загружайте, скачивайте и редактируйте файлы по протоколу SFTP, не выходя из приложения."
}, },
"terminal": { "terminal": {
"runTitle": "Выполнение {{command}} - {{host}}", "runTitle": "Выполнение {{command}} - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "Путь назначения", "destinationPath": "Путь назначения",
"destMustBeDirectory": "Для передачи нескольких элементов путь назначения должен быть папкой", "destMustBeDirectory": "Для передачи нескольких элементов путь назначения должен быть папкой",
"goUp": "Вверх", "goUp": "Вверх",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "Требуется аутентификация. Сначала откройте файловый менеджер на этом хосте.",
"hostConnecting": "Подключение…", "hostConnecting": "Подключение…",
"hostConnectionFailed": "Ошибка подключения", "hostConnectionFailed": "Ошибка подключения",
"hostDisconnected": "Не подключен", "hostDisconnected": "Не подключен",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "Вы выбрали пофайловый SFTP.", "user_item_sftp": "Вы выбрали пофайловый SFTP.",
"user_tar": "Вы выбрали tar-архив.", "user_tar": "Вы выбрали tar-архив.",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "tar_unavailable": "Tar недоступен на одном или обоих хостах, поэтому вместо него будет использоваться SFTP для каждого файла.",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "В процессе используется хост под управлением Windows, поэтому tar не применяется.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "auto_multi_large": "Авто: несколько файлов, включая большой файл ({{largestSize}}) с данными, которые можно сжать. Tar объединяет их в одну передачу.",
"auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "Авто: один большой файл ({{largestSize}}) в этом наборе, поэтому SFTP для каждого файла отдельно.",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Авто: в основном несжимаемые данные, поэтому используется SFTP для каждого файла.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "Авто: много файлов ({{fileCount}}), tar сокращает накладные расходы на каждый файл.",
"auto_default": "Авто: пофайловый SFTP для этого набора." "auto_default": "Авто: пофайловый SFTP для этого набора."
}, },
"methodTar": "Архив Tar", "methodTar": "Архив Tar",
@@ -498,11 +498,11 @@
"metricsCompress": "Сжатие на источнике: {{duration}}", "metricsCompress": "Сжатие на источнике: {{duration}}",
"metricsExtract": "Распаковка на назначении: {{duration}}", "metricsExtract": "Распаковка на назначении: {{duration}}",
"metricsPrepare": "Подготовка назначения: {{duration}}", "metricsPrepare": "Подготовка назначения: {{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "Маршрутизация: прямой {{direct}}, ретранслятор {{relay}}",
"metricsSourceDelete": "Удаление с источника: {{duration}}", "metricsSourceDelete": "Удаление с источника: {{duration}}",
"metricsTotal": "Всего: {{duration}}", "metricsTotal": "Всего: {{duration}}",
"metricsTransfer": "Сквозной: {{throughput}} ({{duration}})", "metricsTransfer": "Сквозной: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "SHA-256 проверен: {{duration}}",
"moveFolderToHost": "Переместить папку на хост…", "moveFolderToHost": "Переместить папку на хост…",
"moveItemsToHost": "Переместить {{count}} элементов на хост…", "moveItemsToHost": "Переместить {{count}} элементов на хост…",
"moveToHost": "Переместить на хост…", "moveToHost": "Переместить на хост…",
@@ -511,7 +511,7 @@
"parallelSegmentsHint": "Большие файлы разбиваются на фрагменты по 256 МБ. Несколько каналов используют отдельные соединения (как при запуске нескольких передач) для повышения общей пропускной способности.", "parallelSegmentsHint": "Большие файлы разбиваются на фрагменты по 256 МБ. Несколько каналов используют отдельные соединения (как при запуске нескольких передач) для повышения общей пропускной способности.",
"parallelSegmentsLabel": "Параллельные каналы передачи", "parallelSegmentsLabel": "Параллельные каналы передачи",
"parallelSegmentsOption": "{{count}} каналов", "parallelSegmentsOption": "{{count}} каналов",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "Выбор самого быстрого маршрута пересадки…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "Отмена", "progressCancel": "Отмена",
"progressCancelling": "Отмена…", "progressCancelling": "Отмена…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} всего ({{lanes}} каналов)", "progressTotalSpeed": "{{speed}} всего ({{lanes}} каналов)",
"progressTransferring": "Передача данных…", "progressTransferring": "Передача данных…",
"progressTransferringItems": "Передача файлов ({{current}} из {{total}})…", "progressTransferringItems": "Передача файлов ({{current}} из {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "Проверка целостности файла…",
"recentDestinations": "Недавние назначения", "recentDestinations": "Недавние назначения",
"resumedHint": "Переподключено к активной передаче, запущенной в другом окне.", "resumedHint": "Переподключено к активной передаче, запущенной в другом окне.",
"retryTransfer": "Повторить", "retryTransfer": "Повторить",
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+128 -128
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Dosya yöneticisini kullanın.",
"description": "Browse, edit and transfer files over SFTP." "description": "SFTP üzerinden dosyalara göz atın, düzenleyin ve aktarın."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Dosya Yöneticisini Etkinleştir", "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": { "defaultPath": {
"label": "Varsayılan Yol" "label": "Varsayılan Yol"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Eşzamanlı Dosya Aktarımları",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Dosyaları çöp kutusuna taşımadan önce onaylayın.",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "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", "rename": "Yeniden Adlandır",
"uploading": "Yükleniyor...", "uploading": "Yükleniyor...",
"uploadingFile": "{{name}} 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ı", "fileName": "Dosya Adı",
"folderName": "Klasör Adı", "folderName": "Klasör Adı",
"fileUploadedSuccessfully": "\"{{name}}\" dosyası başarıyla yüklendi.", "fileUploadedSuccessfully": "\"{{name}}\" dosyası başarıyla yüklendi.",
"failedToUploadFile": "Dosya yüklenemedi.", "failedToUploadFile": "Dosya yüklenemedi.",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "{{count}} dosya yükleniyor...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "{{count}} dosya başarıyla yüklendi",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "{{uploaded}} dosya yüklendi, {{failed}} başarısız oldu",
"fileDownloadedSuccessfully": "\"{{name}}\" dosyası başarıyla indirildi.", "fileDownloadedSuccessfully": "\"{{name}}\" dosyası başarıyla indirildi.",
"failedToDownloadFile": "Dosya indirilemedi.", "failedToDownloadFile": "Dosya indirilemedi.",
"fileCreatedSuccessfully": "\"{{name}}\" dosyası başarıyla oluşturuldu.", "fileCreatedSuccessfully": "\"{{name}}\" dosyası başarıyla oluşturuldu.",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Sudo işlemi başarısız", "sudoOperationFailed": "Sudo işlemi başarısız",
"sudoAuthFailed": "Sudo kimlik doğrulaması başarısız", "sudoAuthFailed": "Sudo kimlik doğrulaması başarısız",
"dragFilesToUpload": "Yüklemek için dosyaları buraya bırakın", "dragFilesToUpload": "Yüklemek için dosyaları buraya bırakın",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Yüklemek için sürükle bırak özelliğini kullanın.",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "İndirmek için buraya tıklayın",
"localFiles": "Yerel", "localFiles": "Yerel",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Yerel dosyaları göster (bölünmüş görünüm)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Yerel dosyaları gizle",
"localHome": "Home folder", "localHome": "Ana klasör",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Yerel klasör yolu",
"localShowHidden": "Show hidden files", "localShowHidden": "Gizli dosyaları göster",
"localHideHidden": "Hide hidden files", "localHideHidden": "Gizli dosyaları gizle",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Sistem dosya yöneticisinde göster",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Klasör açılamıyor.",
"localItemCount": "{{count}} öğe", "localItemCount": "{{count}} öğe",
"localSelectedCount": "{{count}} seçili", "localSelectedCount": "{{count}} seçili",
"back": "Geri", "back": "Geri",
"forward": "Forward", "forward": "İleri",
"up": "Up", "up": "Yukarı",
"kind": "Kind", "kind": "Tür",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "{{total}}'ten {{current}} yükleniyor",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "{{total}}'ten {{current}} indiriliyor",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} hemen",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "İndirme işlemi hazırlanıyor...",
"localTransferCancelled": "Aktarım iptal edildi", "localTransferCancelled": "Aktarım iptal edildi",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Aktarılacak bir şey yok.",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "{{count}} dosya yüklendi",
"localUploadFailed": "Upload failed", "localUploadFailed": "Yükleme başarısız oldu",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "{{done}} dosya yüklendi, {{failed}} başarısız oldu",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "{{count}} dosya indirildi",
"localDownloadFailed": "İndirme başarısız oldu", "localDownloadFailed": "İndirme başarısız oldu",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "{{done}} dosya indirildi, {{failed}} başarısız oldu",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "Bu klasörde zaten {{count}} öğe mevcut. Bunların yerine yenilerini mi koymak istiyorsunuz?",
"localReplace": "Değiştir", "localReplace": "Değiştir",
"localSkipExisting": "Skip", "localSkipExisting": "Atlamak",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "{{count}} mevcut öğe atlandı",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "Bu bilgisayarda adları kullanılamayan {{count}} öğe atlandı.",
"localOpen": "Aç", "localOpen": "Aç",
"localOpenFolder": "Open folder", "localOpenFolder": "Klasörü aç",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Sunucuya yükle",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Sunucuya {{count}} öğe yükle",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Çöp Kutusuna Taşı",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "{{count}} öğeyi Çöp Kutusuna Taşı",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "\"{{name}}\" öğesini Çöp Kutusuna taşı?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "\"{{name}}\" klasörünü ve tüm içeriğini Çöp Kutusu'na taşı?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "{{count}} öğeyi Çöp Kutusuna taşı?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "{{count}} öğe Çöp Kutusu'na taşındı",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Çöp kutusuna taşınamadı",
"localRenameFailed": "Rename failed", "localRenameFailed": "Yeniden adlandırma başarısız oldu.",
"localCreateFailed": "Could not create item", "localCreateFailed": "Öğe oluşturulamadı.",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Üst klasöre git",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "Kenar çubuğunu yeniden boyutlandırmak için sürükleyin (sıfırlamak için çift tıklayın)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "Yerel bölmeyi yeniden boyutlandırmak için sürükleyin (sıfırlamak için çift tıklayın).",
"columns": "Sütunlar", "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ş", "emptyFolder": "Bu klasör boş",
"searchFiles": "Dosya ara...", "searchFiles": "Dosya ara...",
"upload": "Yükle", "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.", "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?", "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.", "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.", "moveToTrashWarning": "Öğeler Termix Çöp Kutusu'na taşınacak ve saklama süresi dolmadan önce geri yüklenebilecektir.",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} öğe Çöp Kutusuna taşındı",
"trash": "Trash", "trash": "Çöp",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Silinen öğeler bu sunucuda {{days}} gün boyunca saklanır.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Çöp kutusu yüklenemedi.",
"trashEmpty": "Trash is empty", "trashEmpty": "Çöp kutusu boş.",
"trashRestore": "Geri Yükle", "trashRestore": "Geri Yükle",
"trashRestored": "Restored {{name}}", "trashRestored": "Geri Yüklendi {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Öğeyi geri yükleme başarısız oldu. Orijinal yol zaten mevcut olabilir.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Kalıcı olarak sil",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "{{name}}öğesini kalıcı olarak silmek istiyor musunuz? Bu işlem geri alınamaz.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Kalıcı olarak silindi {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Öğeyi kalıcı olarak silme işlemi başarısız oldu.",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Çöpü Boşaltın",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "Çöp kutusundaki tüm öğeleri kalıcı olarak silmek mi istiyorsunuz? Bu işlem geri alınamaz.",
"trashEmptied": "Trash emptied", "trashEmptied": "Çöp boşaltıldı.",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Otomatik temizleme süresi (gün)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Çöp saklama süresi güncellendi",
"trashRetentionFailed": "Failed to update Trash retention", "trashRetentionFailed": "Çöp kutusu saklama süresi güncellenemedi.",
"trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", "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", "recent": "Son Kullanılanlar",
"pinned": "Sabitlenmiş", "pinned": "Sabitlenmiş",
"folderShortcuts": "Klasör Kısayolları", "folderShortcuts": "Klasör Kısayolları",
@@ -303,7 +303,7 @@
"operationCompleted": "{{count}} öğe {{operation}}", "operationCompleted": "{{count}} öğe {{operation}}",
"downloadFileSuccess": "{{name}} dosyası başarıyla indirildi", "downloadFileSuccess": "{{name}} dosyası başarıyla indirildi",
"downloadFileFailed": "İndirme başarısız oldu", "downloadFileFailed": "İndirme başarısız oldu",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "{{name}}… indiriliyor",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "{{name}} konumuna taşı", "moveTo": "{{name}} konumuna taşı",
"diffCompareWith": "{{name}} ile diff karşılaştır", "diffCompareWith": "{{name}} ile diff karşılaştır",
@@ -329,7 +329,7 @@
"connecting": "Bağlanıyor...", "connecting": "Bağlanıyor...",
"connectedSuccessfully": "Bağlantı başarıyla kuruldu", "connectedSuccessfully": "Bağlantı başarıyla kuruldu",
"totpVerificationFailed": "TOTP doğrulaması başarısız oldu", "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", "authenticationFailed": "Kimlik doğrulama başarısız oldu",
"incorrectPassphrase": "Yanlış parola. Lütfen tekrar deneyin.", "incorrectPassphrase": "Yanlış parola. Lütfen tekrar deneyin.",
"verificationCodePrompt": "Doğrulama kodu:", "verificationCodePrompt": "Doğrulama kodu:",
@@ -361,73 +361,73 @@
"used": "Kullanılan", "used": "Kullanılan",
"of": " / ", "of": " / ",
"toggleSidebar": "Kenar Çubuğunu Göster/Gizle", "toggleSidebar": "Kenar Çubuğunu Göster/Gizle",
"compactLayout": "Use compact layout", "compactLayout": "Kompakt düzeni kullanın.",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Rahat bir düzen kullanın.",
"cannotLoadPdf": "PDF yüklenemiyor", "cannotLoadPdf": "PDF yüklenemiyor",
"pdfLoadError": "Bu PDF dosyası yüklenirken bir hata oluştu.", "pdfLoadError": "Bu PDF dosyası yüklenirken bir hata oluştu.",
"loadingPdf": "PDF yükleniyor...", "loadingPdf": "PDF yükleniyor...",
"loadingPage": "Sayfa yükleniyor...", "loadingPage": "Sayfa yükleniyor...",
"cancel": "İptal", "cancel": "İptal",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Kopyalanan {{count}} öğe",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Kopyalanan {{count}} öğe",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "{{name}}kopyası silinemedi : {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "{{count}} öğesi {{target}} konumuna taşındı.",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "{{count}} öğe {{target}} konumuna taşındı.",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "{{name}} geri taşınamadı: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Terminal: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "{{name}} dosyasını masaüstüne sürükleme",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "{{count}} dosyaları masaüstüne sürükleme",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "Klasörleri masaüstüne sürükleme özelliği henüz desteklenmiyor.",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "Kaydetme başarısız: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Sürükleme başarısız oldu: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Tarayıcınız bu video formatını oynatamıyor.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Başka yerde oynamak için indirin",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Bu dosya türünün önizlemesi yapılamıyor.",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "Bu dosya türünün önizlemesi yok. Başka bir uygulamada açmak için indirin."
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "İki SSH sunucusu arasında dosya aktarımı.",
"sourceServer": "Source Server", "sourceServer": "Kaynak Sunucusu",
"destinationServer": "Destination Server", "destinationServer": "Hedef Sunucu",
"selectHost": "Select host", "selectHost": "Sunucu seçin",
"noHostSelected": "Sunucu seçilmedi", "noHostSelected": "Sunucu seçilmedi",
"move": "Taşı", "move": "Taşı",
"copy": "Kopyala", "copy": "Kopyala",
"upload": "Yükle", "upload": "Yükle",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} seçilen öğe",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} öğe seçildi",
"ready": "Hazır", "ready": "Hazır",
"loadingHosts": "Hostlar yükleniyor...", "loadingHosts": "Hostlar yükleniyor...",
"name": "Ad", "name": "Ad",
"modified": "Değiştirilme", "modified": "Değiştirilme",
"size": "Boyut", "size": "Boyut",
"noFiles": "No files", "noFiles": "Dosya yok",
"open": "Aç", "open": "Aç",
"up": "Up", "up": "Yukarı",
"refresh": "Yenile", "refresh": "Yenile",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Hedef Dizine Kopyala",
"rename": "Yeniden adlandır", "rename": "Yeniden adlandır",
"delete": "Sil", "delete": "Sil",
"editPermissions": "Edit Permissions", "editPermissions": "Düzenleme İzinleri",
"createNewFolder": "Create New Folder", "createNewFolder": "Yeni Klasör Oluştur",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Seçili Öğeleri Sil",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Delete {{count}} selected item?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Delete {{count}} selected items?",
"cancel": "İptal", "cancel": "İptal",
"save": "Kaydet", "save": "Kaydet",
"folderCreated": "Folder created", "folderCreated": "Klasör oluşturuldu",
"itemRenamed": "Item renamed", "itemRenamed": "Öğe yeniden adlandırıldı.",
"actionFailed": "Eylem başarısız oldu", "actionFailed": "Eylem başarısız oldu",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} öğe silindi",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} öğe silindi",
"deleteFailed": "Delete failed", "deleteFailed": "Silme işlemi başarısız oldu.",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "İzinler güncellendi",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Bağlantı kurulmuş uzaktan oturum yok.",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Dosyaları listeleme başarısız oldu.",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Yenileme başarısız oldu",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "Hedef, seçilen kaynak yolunun içinde olamaz.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "Kaynak ve hedef aynı klasördedir."
}, },
"hosts": { "hosts": {
"fileManager": "Dosya Yöneticisi", "fileManager": "Dosya Yöneticisi",
@@ -438,8 +438,8 @@
"loadingHost": "Host yükleniyor..." "loadingHost": "Host yükleniyor..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Dosya yöneticisi",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "Uygulamadan çıkmadan SFTP üzerinden dosyalara göz atın, yükleyin, indirin ve düzenleyin."
}, },
"terminal": { "terminal": {
"runTitle": "Çalıştırılıyor: {{command}} - {{host}}", "runTitle": "Çalıştırılıyor: {{command}} - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "Hedef yol", "destinationPath": "Hedef yol",
"destMustBeDirectory": "Çoklu öğe aktarımları için hedef bir dizin olmalıdır", "destMustBeDirectory": "Çoklu öğe aktarımları için hedef bir dizin olmalıdır",
"goUp": "Yukarı", "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…", "hostConnecting": "Bağlanıyor…",
"hostConnectionFailed": "Bağlantı başarısız", "hostConnectionFailed": "Bağlantı başarısız",
"hostDisconnected": "Bağlı değil", "hostDisconnected": "Bağlı değil",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "Dosya bazında SFTP seçtiniz.", "user_item_sftp": "Dosya bazında SFTP seçtiniz.",
"user_tar": "Tar arşivi 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.", "tar_unavailable": "Tar, sunuculardan birinde veya her ikisinde de mevcut olmadığından, bunun yerine dosya bazlı SFTP kullanılacaktır.",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "Windows işletim sistemli bir sunucu söz konusu olduğundan tar kullanılmamıştır.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "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": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "Otomatik: Çoğunlukla sıkıştırılamayan veriler, bu nedenle dosya bazında SFTP.",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "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." "auto_default": "Otomatik: bu küme için dosya bazında SFTP."
}, },
"methodTar": "Tar arşivi", "methodTar": "Tar arşivi",
@@ -498,11 +498,11 @@
"metricsCompress": "Kaynakta sıkıştırma: {{duration}}", "metricsCompress": "Kaynakta sıkıştırma: {{duration}}",
"metricsExtract": "Hedefte çıkarma: {{duration}}", "metricsExtract": "Hedefte çıkarma: {{duration}}",
"metricsPrepare": "Hedefi hazırla: {{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}}", "metricsSourceDelete": "Kaynaktan silme: {{duration}}",
"metricsTotal": "Toplam: {{duration}}", "metricsTotal": "Toplam: {{duration}}",
"metricsTransfer": "Uçtan uca: {{throughput}} ({{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şı…", "moveFolderToHost": "Klasörü ana bilgisayara taşı…",
"moveItemsToHost": "{{count}} öğeyi ana bilgisayara taşı…", "moveItemsToHost": "{{count}} öğeyi ana bilgisayara taşı…",
"moveToHost": "Sunucuya 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).", "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ı", "parallelSegmentsLabel": "Paralel aktarım yolları",
"parallelSegmentsOption": "{{count}} yol", "parallelSegmentsOption": "{{count}} yol",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "En hızlı aktarma rotasını seçme…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "İptal", "progressCancel": "İptal",
"progressCancelling": "İptal ediliyor…", "progressCancelling": "İptal ediliyor…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} toplam ({{lanes}} yol)", "progressTotalSpeed": "{{speed}} toplam ({{lanes}} yol)",
"progressTransferring": "Veri aktarılıyor…", "progressTransferring": "Veri aktarılıyor…",
"progressTransferringItems": "Dosyalar aktarılıyor ({{current}} / {{total}})…", "progressTransferringItems": "Dosyalar aktarılıyor ({{current}} / {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "Dosya bütünlüğünün doğrulanması…",
"recentDestinations": "Son hedefler", "recentDestinations": "Son hedefler",
"resumedHint": "Başka bir pencerede başlatılan aktif bir aktarıma yeniden bağlanıldı.", "resumedHint": "Başka bir pencerede başlatılan aktif bir aktarıma yeniden bağlanıldı.",
"retryTransfer": "Yeniden dene", "retryTransfer": "Yeniden dene",
File diff suppressed because it is too large. Load diff
+131 -131
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "Sử dụng trình quản lý tệp",
"description": "Browse, edit and transfer files over SFTP." "description": "Duyệt, chỉnh sửa và chuyển file qua SFTP."
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "Bật Trình quản lý tập tin", "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": { "defaultPath": {
"label": "Đường dẫn mặc định" "label": "Đường dẫn mặc định"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "Truyền tệp đồng thời",
"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." "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": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "Xác nhận trước khi chuyển tập tin vào thùng rác.",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "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", "rename": "Đổi tên",
"uploading": "Đang tải lên...", "uploading": "Đang tải lên...",
"uploadingFile": "Đang tải lên {{name}}...", "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", "fileName": "Tên tập tin",
"folderName": "Tên thư mục", "folderName": "Tên thư mục",
"fileUploadedSuccessfully": "Tập tin \"{{name}}\" đã được tải lên thành công", "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", "failedToUploadFile": "Tải tập tin lên thất bại",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "Đang tải lên {{count}} tập tin...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "Đã tải lên {{count}} tập tin thành công",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "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", "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", "failedToDownloadFile": "Tải tập tin xuống thất bại",
"fileCreatedSuccessfully": "Tập tin \"{{name}}\" đã được tạo thành công", "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", "sudoOperationFailed": "Thao tác sudo thất bại",
"sudoAuthFailed": "Xác thự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", "dragFilesToUpload": "Kéo tệp vào đây để tải lên",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "Kéo thả để tải lên tại đây",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "Kéo thả để tải xuống tại đây",
"localFiles": "Cục bộ", "localFiles": "Cục bộ",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "Hiển thị các tệp cục bộ (chế độ chia đôi màn hình)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "Ẩn các tệp cục bộ",
"localHome": "Home folder", "localHome": "Thư mục trang chủ",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "Đường dẫn thư mục cục bộ",
"localShowHidden": "Show hidden files", "localShowHidden": "Hiển thị các tệp ẩn",
"localHideHidden": "Hide hidden files", "localHideHidden": "Ẩn các tệp tin ẩn",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "Hiển thị trong trình quản lý tệp hệ thống",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "Không thể mở thư mục",
"localItemCount": "{{count}} mục", "localItemCount": "{{count}} mục",
"localSelectedCount": "{{count}} đã chọn", "localSelectedCount": "{{count}} đã chọn",
"back": "Quay lại", "back": "Quay lại",
"forward": "Forward", "forward": "Phía trước",
"up": "Up", "up": "Hướng lên",
"kind": "Kind", "kind": "Loại",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "Đang tải lên {{current}} trong số {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "Đang tải xuống {{current}} của {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} ngay lập tức",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "Đang chuẩn bị tải xuống...",
"localTransferCancelled": "Đã hủy chuyển", "localTransferCancelled": "Đã hủy chuyển",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "Không có gì để chuyển",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "Đã tải lên {{count}} tập tin",
"localUploadFailed": "Upload failed", "localUploadFailed": "Tải lên thất bại",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "Đã tải lên {{done}} tập tin, {{failed}} thất bại",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "Đã tải xuống {{count}} tập tin",
"localDownloadFailed": "Tải xuống thất bại", "localDownloadFailed": "Tải xuống thất bại",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "Đã tải xuống {{done}} tập tin, {{failed}} thất bại",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "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ế", "localReplace": "Thay thế",
"localSkipExisting": "Skip", "localSkipExisting": "Nhảy",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "Đã bỏ qua {{count}} mục hiện có",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "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ở", "localOpen": "Mở",
"localOpenFolder": "Open folder", "localOpenFolder": "Mở thư mục",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "Tải lên máy chủ",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "Tải lên {{count}} mục lên máy chủ",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "Chuyển vào thùng rác",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "Di chuyển {{count}} mục vào Thùng rác",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "Di chuyển \"{{name}}\" vào Thùng rác?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "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": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "Di chuyển {{count}} mục vào Thùng rác?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "Đã chuyển {{count}} mục vào Thùng rác",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "Không thể chuyển vào Thùng rác",
"localRenameFailed": "Rename failed", "localRenameFailed": "Đổi tên không thành công",
"localCreateFailed": "Could not create item", "localCreateFailed": "Không thể tạo mục",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "Đi đến thư mục cha",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "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": "Drag to resize the local pane (double-click to reset)", "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", "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", "emptyFolder": "Thư mục này trống",
"searchFiles": "Tìm kiếm tệp...", "searchFiles": "Tìm kiếm tệp...",
"upload": "Tải lên", "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.", "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ó?", "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ủ.", "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.", "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}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} mục đã được chuyển vào Thùng rác",
"trash": "Trash", "trash": "Rác",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "Các mục đã xóa sẽ được lưu giữ trong {{days}} ngày trên máy chủ này.",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "Không thể tải Thùng rác",
"trashEmpty": "Trash is empty", "trashEmpty": "Thùng rác trống",
"trashRestore": "Khôi phục", "trashRestore": "Khôi phục",
"trashRestored": "Restored {{name}}", "trashRestored": "Đã khôi phục {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "Không thể khôi phục mục. Đường dẫn gốc có thể đã tồn tại.",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "Xóa vĩnh viễn",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "Xóa vĩnh viễn {{name}}? Thao tác này không thể hoàn tác.",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "Đã xóa vĩnh viễn {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "Không thể xóa mục vĩnh viễn",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "Đổ rác",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "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": "Trash emptied", "trashEmptied": "Thùng rác đã được đổ",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "Tự động dọn dẹp sau (ngày)",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "Cập nhật thời gian lưu trữ rác",
"trashRetentionFailed": "Failed to update Trash retention", "trashRetentionFailed": "Không thể cập nhật thời gian lưu trữ thùng rác.",
"trashUnavailableConfirm": "This item cannot be moved to Trash, usually because it is on another filesystem or requires elevated permissions. Delete it permanently instead?", "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", "recent": "Gần đây",
"pinned": "Đã ghim", "pinned": "Đã ghim",
"folderShortcuts": "Lối tắt thư mục", "folderShortcuts": "Lối tắt thư mục",
@@ -303,7 +303,7 @@
"operationCompleted": "Đã {{operation}} {{count}} mục", "operationCompleted": "Đã {{operation}} {{count}} mục",
"downloadFileSuccess": "Đã tải xuống tệp {{name}} thành công", "downloadFileSuccess": "Đã tải xuống tệp {{name}} thành công",
"downloadFileFailed": "Tải xuống thất bại", "downloadFileFailed": "Tải xuống thất bại",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "Đang tải xuống {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Di chuyển tới {{name}}", "moveTo": "Di chuyển tới {{name}}",
"diffCompareWith": "So sánh khác biệt với {{name}}", "diffCompareWith": "So sánh khác biệt với {{name}}",
@@ -329,7 +329,7 @@
"connecting": "Đang kết nối...", "connecting": "Đang kết nối...",
"connectedSuccessfully": "Đã kết nối thành công", "connectedSuccessfully": "Đã kết nối thành công",
"totpVerificationFailed": "Xác minh TOTP thất bại", "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", "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.", "incorrectPassphrase": "Cụm mật khẩu không đúng. Vui lòng thử lại.",
"verificationCodePrompt": "Mã xác minh:", "verificationCodePrompt": "Mã xác minh:",
@@ -361,73 +361,73 @@
"used": "Đã dùng", "used": "Đã dùng",
"of": "của", "of": "của",
"toggleSidebar": "Ẩn/Hiện thanh bên", "toggleSidebar": "Ẩn/Hiện thanh bên",
"compactLayout": "Use compact layout", "compactLayout": "Sử dụng bố cục nhỏ gọn",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "Sử dụng bố cục thoải mái",
"cannotLoadPdf": "Không thể tải PDF", "cannotLoadPdf": "Không thể tải PDF",
"pdfLoadError": "Đã xảy ra lỗi khi tải tệp PDF này.", "pdfLoadError": "Đã xảy ra lỗi khi tải tệp PDF này.",
"loadingPdf": "Đang tải PDF...", "loadingPdf": "Đang tải PDF...",
"loadingPage": "Đang tải trang...", "loadingPage": "Đang tải trang...",
"cancel": "Hủy", "cancel": "Hủy",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "Đã sao chép mục {{count}}",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "Đã sao chép {{count}} mục",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "Không thể xóa bản sao của {{name}}: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "Đã di chuyển mục {{count}} đến {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "Đã di chuyển {{count}} mục đến {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "Không thể di chuyển {{name}} trở lại: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "Thiết bị đầu cuối: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "Kéo {{name}} ra màn hình nền",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "Kéo {{count}} tập tin ra màn hình nền",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "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": "Save failed: {{error}}", "saveToDesktopFailed": "Lưu thất bại: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "Kéo thả thất bại: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "Trình duyệt của bạn không thể phát định dạng video này.",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "Tải xuống để chơi ở nơi khác",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "Không thể xem trước loại tệp này",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "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": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "Truyền tệp giữa hai máy chủ SSH.",
"sourceServer": "Source Server", "sourceServer": "Máy chủ nguồn",
"destinationServer": "Destination Server", "destinationServer": "Máy chủ đích",
"selectHost": "Select host", "selectHost": "Chọn máy chủ",
"noHostSelected": "Chưa chọn máy chủ", "noHostSelected": "Chưa chọn máy chủ",
"move": "Di chuyển", "move": "Di chuyển",
"copy": "Sao chép", "copy": "Sao chép",
"upload": "Tải lên", "upload": "Tải lên",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} mục đã chọn",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} mục đã chọn",
"ready": "Sẵn sàng", "ready": "Sẵn sàng",
"loadingHosts": "Đang tải các máy chủ...", "loadingHosts": "Đang tải các máy chủ...",
"name": "Tên", "name": "Tên",
"modified": "Đã sửa", "modified": "Đã sửa",
"size": "Kích thước", "size": "Kích thước",
"noFiles": "No files", "noFiles": "Không có tệp nào",
"open": "Mở", "open": "Mở",
"up": "Up", "up": "Hướng lên",
"refresh": "Làm mới", "refresh": "Làm mới",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "Sao chép vào thư mục đích",
"rename": "Đổi tên", "rename": "Đổi tên",
"delete": "Xóa", "delete": "Xóa",
"editPermissions": "Edit Permissions", "editPermissions": "Chỉnh sửa quyền",
"createNewFolder": "Create New Folder", "createNewFolder": "Tạo thư mục mới",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "Xóa các mục đã chọn",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "Xóa mục đã chọn {{count}}?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "Xóa {{count}} mục đã chọn?",
"cancel": "Hủy", "cancel": "Hủy",
"save": "Lưu", "save": "Lưu",
"folderCreated": "Folder created", "folderCreated": "Thư mục đã được tạo",
"itemRenamed": "Item renamed", "itemRenamed": "Mục đã được đổi tên",
"actionFailed": "Hành động thất bại", "actionFailed": "Hành động thất bại",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} mục đã bị xóa",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} mục đã bị xóa",
"deleteFailed": "Delete failed", "deleteFailed": "Xóa không thành công",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "Quyền hạn đã được cập nhật",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "Không có phiên kết nối từ xa nào được thiết lập.",
"failedToListFiles": "Failed to list files", "failedToListFiles": "Không thể liệt kê các tệp.",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "Không thể làm mới",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "Đường dẫn đích không được nằm bên trong đường dẫn nguồn đã chọn.",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "Thư mục nguồn và thư mục đích đều nằm trong cùng một thư mục."
}, },
"hosts": { "hosts": {
"fileManager": "Trình quản lý tệp", "fileManager": "Trình quản lý tệp",
@@ -438,8 +438,8 @@
"loadingHost": "Đang tải máy chủ..." "loadingHost": "Đang tải máy chủ..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "Trình quản lý tập tin",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "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": { "terminal": {
"runTitle": "Đang chạy {{command}} - {{host}}", "runTitle": "Đang chạy {{command}} - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "Đường dẫn đích", "destinationPath": "Đường dẫn đích",
"destMustBeDirectory": "Đích phải là thư mục khi truyền tải nhiều mục", "destMustBeDirectory": "Đích phải là thư mục khi truyền tải nhiều mục",
"goUp": "Lên trên", "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…", "hostConnecting": "Đang kết nối…",
"hostConnectionFailed": "Kết nối thất bại", "hostConnectionFailed": "Kết nối thất bại",
"hostDisconnected": "Chưa kết nối", "hostDisconnected": "Chưa kết nối",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "Bạn đã chọn SFTP từng tệp.", "user_item_sftp": "Bạn đã chọn SFTP từng tệp.",
"user_tar": "Bạn đã chọn dùng tar.", "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.", "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": "A Windows host is involved, so tar is not used.", "windows_host": "Vì đây là máy chủ Windows nên không sử dụng lệnh tar.",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "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": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "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": "Auto: mostly incompressible data, so per-file SFTP.", "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": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "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." "auto_default": "Tự động: SFTP từng tệp cho tập này."
}, },
"methodTar": "Lưu trữ tar", "methodTar": "Lưu trữ tar",
@@ -498,11 +498,11 @@
"metricsCompress": "Nén tại nguồn: {{duration}}", "metricsCompress": "Nén tại nguồn: {{duration}}",
"metricsExtract": "Giải nén tại đích: {{duration}}", "metricsExtract": "Giải nén tại đích: {{duration}}",
"metricsPrepare": "Chuẩn bị đí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}}", "metricsSourceDelete": "Xóa khỏi nguồn: {{duration}}",
"metricsTotal": "Tổng: {{duration}}", "metricsTotal": "Tổng: {{duration}}",
"metricsTransfer": "Toàn trình: {{throughput}} ({{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ủ…", "moveFolderToHost": "Di chuyển thư mục tới máy chủ…",
"moveItemsToHost": "Di chuyển {{count}} 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ủ…", "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.", "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", "parallelSegmentsLabel": "Làn truyền song song",
"parallelSegmentsOption": "{{count}} làn", "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}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "Hủy", "progressCancel": "Hủy",
"progressCancelling": "Đang hủy…", "progressCancelling": "Đang hủy…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} tổng ({{lanes}} làn)", "progressTotalSpeed": "{{speed}} tổng ({{lanes}} làn)",
"progressTransferring": "Đang truyền dữ liệu…", "progressTransferring": "Đang truyền dữ liệu…",
"progressTransferringItems": "Đang truyền tệp ({{current}}/{{total}})…", "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", "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.", "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", "retryTransfer": "Thử lại",
+121 -121
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "使用文件管理器",
"description": "Browse, edit and transfer files over SFTP." "description": "通过 SFTP 浏览、编辑和传输文件。"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "启用文件管理器", "label": "启用文件管理器",
"description": "Browse and edit files on this host over SFTP." "description": "通过 SFTP 浏览和编辑此主机上的文件。"
}, },
"defaultPath": { "defaultPath": {
"label": "默认路径" "label": "默认路径"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "同时文件传输",
"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." "description": "本地/远程并排管理器同时上传或下载的文件数量。如果您的服务器限制 SFTP 通道,请降低此值。"
}, },
"confirmBeforeTrash": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "请确认后再将文件移至回收站",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "将远程文件移至回收站前请先询问。永久删除仍需确认。"
} }
} }
}, },
@@ -72,14 +72,14 @@
"rename": "重命名", "rename": "重命名",
"uploading": "上传中...", "uploading": "上传中...",
"uploadingFile": "正在上传 {{name}}...", "uploadingFile": "正在上传 {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "正在上传 {{name}}: {{percent}}% ( {{chunk}} 的一部分,共 {{total}})",
"fileName": "文件名", "fileName": "文件名",
"folderName": "文件夹名称", "folderName": "文件夹名称",
"fileUploadedSuccessfully": "文件 \"{{name}}\" 上传成功", "fileUploadedSuccessfully": "文件 \"{{name}}\" 上传成功",
"failedToUploadFile": "上传文件失败", "failedToUploadFile": "上传文件失败",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "正在上传 {{count}} 文件...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "已成功上传 {{count}} 个文件",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "上传了 {{uploaded}} 个文件, {{failed}} 个文件失败",
"fileDownloadedSuccessfully": "文件 \"{{name}}\" 下载成功", "fileDownloadedSuccessfully": "文件 \"{{name}}\" 下载成功",
"failedToDownloadFile": "下载文件失败", "failedToDownloadFile": "下载文件失败",
"fileCreatedSuccessfully": "文件 \"{{name}}\" 创建成功", "fileCreatedSuccessfully": "文件 \"{{name}}\" 创建成功",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Sudo 操作失败", "sudoOperationFailed": "Sudo 操作失败",
"sudoAuthFailed": "Sudo 认证失败", "sudoAuthFailed": "Sudo 认证失败",
"dragFilesToUpload": "将文件拖放到此处以上传", "dragFilesToUpload": "将文件拖放到此处以上传",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "在此处上传",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "点击此处下载",
"localFiles": "本地", "localFiles": "本地",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "显示本地文件(分屏显示)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "隐藏本地文件",
"localHome": "Home folder", "localHome": "主页",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "本地文件夹路径",
"localShowHidden": "Show hidden files", "localShowHidden": "显示隐藏文件",
"localHideHidden": "Hide hidden files", "localHideHidden": "隐藏隐藏文件",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "在系统文件管理器中显示",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "无法打开文件夹",
"localItemCount": "{{count}} 个项目", "localItemCount": "{{count}} 个项目",
"localSelectedCount": "已选择 {{count}} 项", "localSelectedCount": "已选择 {{count}} 项",
"back": "返回", "back": "返回",
"forward": "Forward", "forward": "向前",
"up": "Up", "up": "向上",
"kind": "Kind", "kind": "种类",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "正在上传 {{current}} 中的 {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "正在下载 {{current}} 中的 {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} 立刻",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "正在准备下载……",
"localTransferCancelled": "传输已取消", "localTransferCancelled": "传输已取消",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "无需转移",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "已上传 {{count}} 个文件",
"localUploadFailed": "Upload failed", "localUploadFailed": "上传失败",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "上传文件 {{done}} 个失败, {{failed}} 个失败",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "已下载 {{count}} 个文件",
"localDownloadFailed": "下载失败", "localDownloadFailed": "下载失败",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "下载了 {{done}} 个文件, {{failed}} 个文件失败",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "此文件夹中已存在 {{count}} 个项目。是否替换它们?",
"localReplace": "替换", "localReplace": "替换",
"localSkipExisting": "Skip", "localSkipExisting": "跳过",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "已跳过 {{count}} 个现有项目",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "已跳过 {{count}} 个名称无法在此计算机上使用的项目。",
"localOpen": "打开", "localOpen": "打开",
"localOpenFolder": "Open folder", "localOpenFolder": "打开文件夹",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "上传到服务器",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "上传 {{count}} 项到服务器",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "移至垃圾桶",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "将 {{count}} 个物品移至垃圾桶",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "将“{{name}}”移至回收站?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "将文件夹“{{name}}”及其所有内容移至回收站?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "将 {{count}} 个项目移至回收站?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "已将 {{count}} 个项目移至回收站",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "无法移至垃圾桶",
"localRenameFailed": "Rename failed", "localRenameFailed": "重命名失败",
"localCreateFailed": "Could not create item", "localCreateFailed": "无法创建项目",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "转到上文件夹",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "拖动即可调整侧边栏大小(双击即可重置)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "拖动即可调整本地窗格大小(双击可重置)",
"columns": "列", "columns": "列",
"columnsHint": "Right-click to choose columns", "columnsHint": "右键单击选择列",
"emptyFolder": "此文件夹为空", "emptyFolder": "此文件夹为空",
"searchFiles": "搜索文件...", "searchFiles": "搜索文件...",
"upload": "上传", "upload": "上传",
@@ -203,25 +203,25 @@
"confirmDeleteFolder": "确定要永久删除文件夹“{{name}}”及其所有内容吗?", "confirmDeleteFolder": "确定要永久删除文件夹“{{name}}”及其所有内容吗?",
"permanentDeleteWarning": "此操作无法撤销。项目将从服务器永久删除。", "permanentDeleteWarning": "此操作无法撤销。项目将从服务器永久删除。",
"moveToTrashWarning": "该项目将被移至 Termix 回收站,可在保留期到期前恢复。", "moveToTrashWarning": "该项目将被移至 Termix 回收站,可在保留期到期前恢复。",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} 项已移至回收站",
"trash": "回收站", "trash": "回收站",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "已删除的项目将在本主机上保留 {{days}} 天。",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "加载回收站失败",
"trashEmpty": "回收站是空的", "trashEmpty": "回收站是空的",
"trashRestore": "恢复", "trashRestore": "恢复",
"trashRestored": "Restored {{name}}", "trashRestored": "已恢复 {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "恢复项目失败。原始路径可能已存在。",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "永久删除",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "永久删除 {{name}}?此操作无法撤销。",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "永久删除 {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "无法永久删除项目",
"trashEmptyAction": "清空回收站", "trashEmptyAction": "清空回收站",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "永久删除回收站中的所有项目?此操作无法撤销。",
"trashEmptied": "回收站已清空", "trashEmptied": "回收站已清空",
"trashRetention": "自动清理(N 天后)", "trashRetention": "自动清理(N 天后)",
"trashRetentionSaved": "回收站保留设置已更新", "trashRetentionSaved": "回收站保留设置已更新",
"trashRetentionFailed": "更新回收站保留设置失败", "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": "最近", "recent": "最近",
"pinned": "已固定", "pinned": "已固定",
"folderShortcuts": "文件夹快捷方式", "folderShortcuts": "文件夹快捷方式",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}}了{{count}}个项目", "operationCompleted": "{{operation}}了{{count}}个项目",
"downloadFileSuccess": "文件 {{name}} 下载成功", "downloadFileSuccess": "文件 {{name}} 下载成功",
"downloadFileFailed": "下载失败", "downloadFileFailed": "下载失败",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "正在下载 {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "移动到 {{name}}", "moveTo": "移动到 {{name}}",
"diffCompareWith": "与 {{name}} 对比差异", "diffCompareWith": "与 {{name}} 对比差异",
@@ -329,7 +329,7 @@
"connecting": "连接中...", "connecting": "连接中...",
"connectedSuccessfully": "连接成功", "connectedSuccessfully": "连接成功",
"totpVerificationFailed": "TOTP 验证失败", "totpVerificationFailed": "TOTP 验证失败",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "登录失败,请重试。",
"authenticationFailed": "认证失败", "authenticationFailed": "认证失败",
"incorrectPassphrase": "密码错误。请重试。", "incorrectPassphrase": "密码错误。请重试。",
"verificationCodePrompt": "验证码:", "verificationCodePrompt": "验证码:",
@@ -361,73 +361,73 @@
"used": "已用", "used": "已用",
"of": "/", "of": "/",
"toggleSidebar": "切换侧边栏", "toggleSidebar": "切换侧边栏",
"compactLayout": "Use compact layout", "compactLayout": "采用紧凑型布局",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "采用舒适的布局",
"cannotLoadPdf": "无法加载 PDF", "cannotLoadPdf": "无法加载 PDF",
"pdfLoadError": "加载此 PDF 文件时出错。", "pdfLoadError": "加载此 PDF 文件时出错。",
"loadingPdf": "正在加载 PDF...", "loadingPdf": "正在加载 PDF...",
"loadingPage": "正在加载页面...", "loadingPage": "正在加载页面...",
"cancel": "取消", "cancel": "取消",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "已复制 {{count}} 项目",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "已复制 {{count}} 项",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "无法删除 {{name}}的副本: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "将 {{count}} 项移动到 {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "已将 {{count}} 个项目移动到 {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "无法将 {{name}} 向后移动: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "终端: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "将 {{name}} 拖到桌面",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "将 {{count}} 文件拖到桌面",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "目前尚不支持将文件夹拖到桌面。",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "保存失败: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "拖拽失败: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "您的浏览器无法播放此视频格式。",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "下载后即可在其他地方播放",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "无法预览此文件类型",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "此文件类型没有预览。请下载后在其他应用程序中打开。"
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "在两台SSH主机之间传输文件。",
"sourceServer": "Source Server", "sourceServer": "源服务器",
"destinationServer": "Destination Server", "destinationServer": "目标服务器",
"selectHost": "Select host", "selectHost": "选择主机",
"noHostSelected": "未选择主机", "noHostSelected": "未选择主机",
"move": "移动", "move": "移动",
"copy": "复制", "copy": "复制",
"upload": "上传", "upload": "上传",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} 已选择项目",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} 已选择项目",
"ready": "就绪", "ready": "就绪",
"loadingHosts": "正在加载主机...", "loadingHosts": "正在加载主机...",
"name": "名称", "name": "名称",
"modified": "修改时间", "modified": "修改时间",
"size": "大小", "size": "大小",
"noFiles": "No files", "noFiles": "没有文件",
"open": "打开", "open": "打开",
"up": "Up", "up": "向上",
"refresh": "刷新", "refresh": "刷新",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "复制到目标目录",
"rename": "重命名", "rename": "重命名",
"delete": "删除", "delete": "删除",
"editPermissions": "Edit Permissions", "editPermissions": "编辑权限",
"createNewFolder": "Create New Folder", "createNewFolder": "创建新文件夹",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "删除选定项目",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "删除 {{count}} 选定项目?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "删除 {{count}} 选定项目?",
"cancel": "取消", "cancel": "取消",
"save": "保存", "save": "保存",
"folderCreated": "Folder created", "folderCreated": "已创建文件夹",
"itemRenamed": "Item renamed", "itemRenamed": "项目已重命名",
"actionFailed": "操作失败", "actionFailed": "操作失败",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} 项目已删除",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} 项已删除",
"deleteFailed": "Delete failed", "deleteFailed": "删除失败",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "权限已更新",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "未连接远程会话",
"failedToListFiles": "文件列表失败", "failedToListFiles": "文件列表失败",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "刷新失败",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "目标路径不能位于所选源路径内。",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "源文件夹和目标文件夹是同一个文件夹。"
}, },
"hosts": { "hosts": {
"fileManager": "文件管理器", "fileManager": "文件管理器",
@@ -438,7 +438,7 @@
"loadingHost": "正在加载主机..." "loadingHost": "正在加载主机..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "文件管理器",
"feature_files_desc": "无需离开应用,即可通过 SFTP 浏览、上传、下载及编辑文件。" "feature_files_desc": "无需离开应用,即可通过 SFTP 浏览、上传、下载及编辑文件。"
}, },
"terminal": { "terminal": {
@@ -464,7 +464,7 @@
"destinationPath": "目标路径", "destinationPath": "目标路径",
"destMustBeDirectory": "对于多项目传输,目标必须是一个目录", "destMustBeDirectory": "对于多项目传输,目标必须是一个目录",
"goUp": "向上", "goUp": "向上",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "需要进行身份验证。请先在此主机上打开文件管理器。",
"hostConnecting": "连接中…", "hostConnecting": "连接中…",
"hostConnectionFailed": "连接失败", "hostConnectionFailed": "连接失败",
"hostDisconnected": "未连接", "hostDisconnected": "未连接",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "您选择了逐文件 SFTP。", "user_item_sftp": "您选择了逐文件 SFTP。",
"user_tar": "您选择了 Tar 归档。", "user_tar": "您选择了 Tar 归档。",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "tar_unavailable": "如果一台或两台主机上没有 Tar 服务,则将改用按文件传输的 SFTP 服务。",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "由于涉及 Windows 主机,因此不使用 tar。",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "auto_multi_large": "自动:支持多个文件,其中包括一个包含可压缩数据的大文件({{largestSize}})。Tar 会将它们打包成一个文件进行传输。",
"auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "自动:此集合中有一个大文件({{largestSize}}),因此按文件 SFTP。",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "自动:数据大多不可压缩,因此按文件进行 SFTP 传输。",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "自动:多个文件({{fileCount}}),tar 可以减少每个文件的开销。",
"auto_default": "自动:此集合使用逐文件 SFTP。" "auto_default": "自动:此集合使用逐文件 SFTP。"
}, },
"methodTar": "Tar 归档", "methodTar": "Tar 归档",
@@ -498,11 +498,11 @@
"metricsCompress": "源端压缩:{{duration}}", "metricsCompress": "源端压缩:{{duration}}",
"metricsExtract": "目标端解压:{{duration}}", "metricsExtract": "目标端解压:{{duration}}",
"metricsPrepare": "准备目标:{{duration}}", "metricsPrepare": "准备目标:{{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "路由探测:直接 {{direct}},中继 {{relay}}",
"metricsSourceDelete": "从源端删除:{{duration}}", "metricsSourceDelete": "从源端删除:{{duration}}",
"metricsTotal": "总计:{{duration}}", "metricsTotal": "总计:{{duration}}",
"metricsTransfer": "端到端:{{throughput}} ({{duration}})", "metricsTransfer": "端到端:{{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "SHA-256 已验证: {{duration}}",
"moveFolderToHost": "移动文件夹到主机…", "moveFolderToHost": "移动文件夹到主机…",
"moveItemsToHost": "移动 {{count}} 个项目到主机…", "moveItemsToHost": "移动 {{count}} 个项目到主机…",
"moveToHost": "移动到主机…", "moveToHost": "移动到主机…",
@@ -511,7 +511,7 @@
"parallelSegmentsHint": "大文件会被拆分为 256 MB 的块。多个通道使用独立连接(如同同时进行多个传输),以获得更高的总吞吐量。", "parallelSegmentsHint": "大文件会被拆分为 256 MB 的块。多个通道使用独立连接(如同同时进行多个传输),以获得更高的总吞吐量。",
"parallelSegmentsLabel": "并行传输通道", "parallelSegmentsLabel": "并行传输通道",
"parallelSegmentsOption": "{{count}} 个通道", "parallelSegmentsOption": "{{count}} 个通道",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "选择最快的传输路线…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "取消", "progressCancel": "取消",
"progressCancelling": "正在取消…", "progressCancelling": "正在取消…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "{{speed}} 总计({{lanes}} 通道)", "progressTotalSpeed": "{{speed}} 总计({{lanes}} 通道)",
"progressTransferring": "正在传输数据…", "progressTransferring": "正在传输数据…",
"progressTransferringItems": "正在传输文件({{current}}/{{total}})…", "progressTransferringItems": "正在传输文件({{current}}/{{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "正在验证文件完整性…",
"recentDestinations": "最近目标", "recentDestinations": "最近目标",
"resumedHint": "已重新连接到在另一个窗口中启动的进行中的传输。", "resumedHint": "已重新连接到在另一个窗口中启动的进行中的传输。",
"retryTransfer": "重试", "retryTransfer": "重试",
+130 -130
View File
@@ -6,15 +6,15 @@
}, },
"permissions": { "permissions": {
"use": { "use": {
"title": "Use file manager", "title": "使用檔案管理器",
"description": "Browse, edit and transfer files over SFTP." "description": "透過 SFTP 瀏覽、編輯和傳輸檔案。"
} }
}, },
"settings": { "settings": {
"host": { "host": {
"enable": { "enable": {
"label": "啟用檔案管理員", "label": "啟用檔案管理員",
"description": "Browse and edit files on this host over SFTP." "description": "透過 SFTP 瀏覽和編輯此主機上的檔案。"
}, },
"defaultPath": { "defaultPath": {
"label": "預設路徑" "label": "預設路徑"
@@ -25,12 +25,12 @@
}, },
"user": { "user": {
"transferConcurrency": { "transferConcurrency": {
"label": "Simultaneous File Transfers", "label": "同時文件傳輸",
"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." "description": "本機/遠端並排管理器同時上傳或下載的檔案數量。如果您的伺服器限制 SFTP 通道,請降低此值。"
}, },
"confirmBeforeTrash": { "confirmBeforeTrash": {
"label": "Confirm before moving files to trash", "label": "請確認後再將文件移至回收站",
"description": "Ask before moving remote files to trash. Permanent deletion still requires confirmation." "description": "將遠端文件移至回收站前請先詢問。永久刪除仍需確認。"
} }
} }
}, },
@@ -72,14 +72,14 @@
"rename": "重新命名", "rename": "重新命名",
"uploading": "上傳中...", "uploading": "上傳中...",
"uploadingFile": "正在上傳 {{name}}...", "uploadingFile": "正在上傳 {{name}}...",
"uploadingChunk": "Uploading {{name}}: {{percent}}% (part {{chunk}} of {{total}})", "uploadingChunk": "正在上傳 {{name}}: {{percent}}% ( {{chunk}} 的一部分,共 {{total}})",
"fileName": "檔案名稱", "fileName": "檔案名稱",
"folderName": "資料夾名稱", "folderName": "資料夾名稱",
"fileUploadedSuccessfully": "檔案「{{name}}」上傳成功", "fileUploadedSuccessfully": "檔案「{{name}}」上傳成功",
"failedToUploadFile": "上傳檔案失敗", "failedToUploadFile": "上傳檔案失敗",
"uploadingFolderFiles": "Uploading {{count}} file(s)...", "uploadingFolderFiles": "正在上傳 {{count}} 檔案...",
"uploadedFolderFiles": "Uploaded {{count}} file(s) successfully", "uploadedFolderFiles": "已成功上傳 {{count}} 個文件",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed", "uploadedFolderPartial": "上傳檔案 {{uploaded}} 失敗, {{failed}} 失敗",
"fileDownloadedSuccessfully": "檔案「{{name}}」下載成功", "fileDownloadedSuccessfully": "檔案「{{name}}」下載成功",
"failedToDownloadFile": "下載檔案失敗", "failedToDownloadFile": "下載檔案失敗",
"fileCreatedSuccessfully": "檔案「{{name}}」建立成功", "fileCreatedSuccessfully": "檔案「{{name}}」建立成功",
@@ -95,58 +95,58 @@
"sudoOperationFailed": "Sudo 操作失敗", "sudoOperationFailed": "Sudo 操作失敗",
"sudoAuthFailed": "Sudo 驗證失敗", "sudoAuthFailed": "Sudo 驗證失敗",
"dragFilesToUpload": "拖放檔案至此以上傳", "dragFilesToUpload": "拖放檔案至此以上傳",
"dropToUploadHere": "Drop to upload here", "dropToUploadHere": "在此處上傳",
"dropToDownloadHere": "Drop to download here", "dropToDownloadHere": "點此下載",
"localFiles": "本機", "localFiles": "本機",
"showLocalFiles": "Show local files (split view)", "showLocalFiles": "顯示本地文件(分割畫面顯示)",
"hideLocalFiles": "Hide local files", "hideLocalFiles": "隱藏本地文件",
"localHome": "Home folder", "localHome": "首頁",
"localPathPlaceholder": "Local folder path", "localPathPlaceholder": "本機資料夾路徑",
"localShowHidden": "Show hidden files", "localShowHidden": "顯示隱藏文件",
"localHideHidden": "Hide hidden files", "localHideHidden": "隱藏隱藏文件",
"localRevealInFileManager": "Reveal in system file manager", "localRevealInFileManager": "在系統檔案管理器中顯示",
"localCannotOpenFolder": "Cannot open folder", "localCannotOpenFolder": "無法開啟資料夾",
"localItemCount": "{{count}} 個項目", "localItemCount": "{{count}} 個項目",
"localSelectedCount": "已選取 {{count}} 個", "localSelectedCount": "已選取 {{count}} 個",
"back": "返回", "back": "返回",
"forward": "Forward", "forward": "向前",
"up": "Up", "up": "向上",
"kind": "Kind", "kind": "種類",
"localUploadingProgress": "Uploading {{current}} of {{total}}", "localUploadingProgress": "正在上傳 {{current}} 中的 {{total}}",
"localDownloadingProgress": "Downloading {{current}} of {{total}}", "localDownloadingProgress": "正在下載 {{current}} 中的 {{total}}",
"localTransferInFlight": "{{count}} at once", "localTransferInFlight": "{{count}} 立刻",
"localPreparingDownload": "Preparing download...", "localPreparingDownload": "正在準備下載…",
"localTransferCancelled": "傳輸已取消", "localTransferCancelled": "傳輸已取消",
"localNothingToTransfer": "Nothing to transfer", "localNothingToTransfer": "無需轉移",
"localUploadComplete": "Uploaded {{count}} file(s)", "localUploadComplete": "已上傳 {{count}} 個文件",
"localUploadFailed": "Upload failed", "localUploadFailed": "上傳失敗",
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed", "localUploadPartial": "上傳檔案 {{done}} 失敗, {{failed}} 失敗",
"localDownloadComplete": "Downloaded {{count}} file(s)", "localDownloadComplete": "已下載 {{count}} 個文件",
"localDownloadFailed": "下載失敗", "localDownloadFailed": "下載失敗",
"localDownloadPartial": "Downloaded {{done}} file(s), {{failed}} failed", "localDownloadPartial": "下載了 {{done}} 個文件, {{failed}} 個文件失敗",
"localReplaceExistingPrompt": "{{count}} item(s) already exist in this folder. Replace them?", "localReplaceExistingPrompt": "此資料夾中已存在 {{count}} 個項目。是否替換它們?",
"localReplace": "取代", "localReplace": "取代",
"localSkipExisting": "Skip", "localSkipExisting": "跳過",
"localSkippedExisting": "Skipped {{count}} existing item(s)", "localSkippedExisting": "已跳過 {{count}} 個現有項目",
"localUnsafeNamesSkipped": "Skipped {{count}} item(s) whose names cannot be used on this computer", "localUnsafeNamesSkipped": "已跳過 {{count}} 個名稱無法在此電腦上使用的項目。",
"localOpen": "開啟", "localOpen": "開啟",
"localOpenFolder": "Open folder", "localOpenFolder": "打開資料夾",
"localUploadToRemote": "Upload to server", "localUploadToRemote": "上傳到伺服器",
"localUploadToRemoteMany": "Upload {{count}} items to server", "localUploadToRemoteMany": "上傳 {{count}} 項目到伺服器",
"localMoveToTrash": "Move to Trash", "localMoveToTrash": "移至垃圾桶",
"localMoveToTrashMany": "Move {{count}} items to Trash", "localMoveToTrashMany": "將 {{count}} 個物品移至垃圾桶",
"localTrashConfirmSingle": "Move \"{{name}}\" to the Trash?", "localTrashConfirmSingle": "將「{{name}}」移至回收站?",
"localTrashConfirmFolder": "Move the folder \"{{name}}\" and all its contents to the Trash?", "localTrashConfirmFolder": "將資料夾「{{name}}」及其所有內容移至回收站?",
"localTrashConfirmMany": "Move {{count}} items to the Trash?", "localTrashConfirmMany": "將 {{count}} 個項目移至回收站?",
"localTrashed": "Moved {{count}} item(s) to the Trash", "localTrashed": "已將 {{count}} 個項目移至回收站",
"localTrashFailed": "Could not move to the Trash", "localTrashFailed": "無法移至垃圾桶",
"localRenameFailed": "Rename failed", "localRenameFailed": "重新命名失敗",
"localCreateFailed": "Could not create item", "localCreateFailed": "無法建立專案",
"goToParentFolder": "Go to parent folder", "goToParentFolder": "轉到上資料夾",
"resizeSidebar": "Drag to resize the sidebar (double-click to reset)", "resizeSidebar": "拖曳即可調整側邊欄大小(雙擊即可重設)",
"resizeLocalPane": "Drag to resize the local pane (double-click to reset)", "resizeLocalPane": "拖曳即可調整本機窗格大小(雙擊可重設)",
"columns": "欄", "columns": "欄",
"columnsHint": "Right-click to choose columns", "columnsHint": "右鍵單擊選擇列",
"emptyFolder": "此資料夾為空", "emptyFolder": "此資料夾為空",
"searchFiles": "搜尋檔案...", "searchFiles": "搜尋檔案...",
"upload": "上傳", "upload": "上傳",
@@ -202,26 +202,26 @@
"confirmDeleteMultipleItemsWithFolders": "確定要永久刪除 {{count}} 個項目嗎?這包含資料夾及其內容。", "confirmDeleteMultipleItemsWithFolders": "確定要永久刪除 {{count}} 個項目嗎?這包含資料夾及其內容。",
"confirmDeleteFolder": "確定要永久刪除資料夾「{{name}}」及其所有內容嗎?", "confirmDeleteFolder": "確定要永久刪除資料夾「{{name}}」及其所有內容嗎?",
"permanentDeleteWarning": "此動作無法復原。項目將從伺服器永久刪除。", "permanentDeleteWarning": "此動作無法復原。項目將從伺服器永久刪除。",
"moveToTrashWarning": "The item(s) will be moved to the Termix Trash and can be restored before the retention period expires.", "moveToTrashWarning": "該物品將移至 Termix 回收站,可在保留期到期前恢復。",
"itemsMovedToTrash": "{{count}} item(s) moved to Trash", "itemsMovedToTrash": "{{count}} 項已移至回收站",
"trash": "Trash", "trash": "垃圾",
"trashDescription": "Deleted items are retained for {{days}} day(s) on this host.", "trashDescription": "已刪除的項目將保留在本主機上 {{days}} 天。",
"trashLoadFailed": "Failed to load Trash", "trashLoadFailed": "載入回收站失敗",
"trashEmpty": "Trash is empty", "trashEmpty": "垃圾桶是空的。",
"trashRestore": "還原", "trashRestore": "還原",
"trashRestored": "Restored {{name}}", "trashRestored": "已恢復 {{name}}",
"trashRestoreFailed": "Failed to restore item. The original path may already exist.", "trashRestoreFailed": "恢復專案失敗。原始路徑可能已存在。",
"trashDeletePermanently": "Delete permanently", "trashDeletePermanently": "永久刪除",
"trashDeleteConfirm": "Permanently delete {{name}}? This cannot be undone.", "trashDeleteConfirm": "永久刪除 {{name}}?此操作無法撤銷。",
"trashPermanentlyDeleted": "Permanently deleted {{name}}", "trashPermanentlyDeleted": "永久刪除 {{name}}",
"trashDeleteFailed": "Failed to permanently delete item", "trashDeleteFailed": "無法永久刪除項目",
"trashEmptyAction": "Empty Trash", "trashEmptyAction": "清空垃圾桶",
"trashEmptyConfirm": "Permanently delete every item in Trash? This cannot be undone.", "trashEmptyConfirm": "永久刪除回收站中的所有項目?此操作無法撤銷。",
"trashEmptied": "Trash emptied", "trashEmptied": "垃圾已清空",
"trashRetention": "Automatic cleanup after (days)", "trashRetention": "自動清理(天數)後",
"trashRetentionSaved": "Trash retention updated", "trashRetentionSaved": "垃圾保留狀況更新",
"trashRetentionFailed": "Failed to update Trash retention", "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": "最近", "recent": "最近",
"pinned": "已釘選", "pinned": "已釘選",
"folderShortcuts": "資料夾捷徑", "folderShortcuts": "資料夾捷徑",
@@ -303,7 +303,7 @@
"operationCompleted": "{{operation}} {{count}} 個項目", "operationCompleted": "{{operation}} {{count}} 個項目",
"downloadFileSuccess": "檔案 {{name}} 已成功下載", "downloadFileSuccess": "檔案 {{name}} 已成功下載",
"downloadFileFailed": "下載失敗", "downloadFileFailed": "下載失敗",
"downloadingFile": "Downloading {{name}}…", "downloadingFile": "正在下載 {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}", "downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "移動至 {{name}}", "moveTo": "移動至 {{name}}",
"diffCompareWith": "與 {{name}} 進行差異比對", "diffCompareWith": "與 {{name}} 進行差異比對",
@@ -329,7 +329,7 @@
"connecting": "連線中...", "connecting": "連線中...",
"connectedSuccessfully": "已成功連線", "connectedSuccessfully": "已成功連線",
"totpVerificationFailed": "TOTP 驗證失敗", "totpVerificationFailed": "TOTP 驗證失敗",
"browserSignInFailed": "Sign-in failed. Please try again.", "browserSignInFailed": "登入失敗,請重試。",
"authenticationFailed": "驗證失敗", "authenticationFailed": "驗證失敗",
"incorrectPassphrase": "密碼片語錯誤。請再試一次。", "incorrectPassphrase": "密碼片語錯誤。請再試一次。",
"verificationCodePrompt": "驗證碼:", "verificationCodePrompt": "驗證碼:",
@@ -361,73 +361,73 @@
"used": "已使用", "used": "已使用",
"of": " / ", "of": " / ",
"toggleSidebar": "切換側邊欄", "toggleSidebar": "切換側邊欄",
"compactLayout": "Use compact layout", "compactLayout": "採用緊湊型佈局",
"comfortableLayout": "Use comfortable layout", "comfortableLayout": "採用舒適的佈局",
"cannotLoadPdf": "無法載入 PDF", "cannotLoadPdf": "無法載入 PDF",
"pdfLoadError": "載入此 PDF 檔案時發生錯誤。", "pdfLoadError": "載入此 PDF 檔案時發生錯誤。",
"loadingPdf": "正在載入 PDF...", "loadingPdf": "正在載入 PDF...",
"loadingPage": "正在載入頁面...", "loadingPage": "正在載入頁面...",
"cancel": "取消", "cancel": "取消",
"copiedItems_one": "Copied {{count}} item", "copiedItems_one": "已複製 {{count}} 項目",
"copiedItems_other": "Copied {{count}} items", "copiedItems_other": "已複製 {{count}} 項",
"deleteCopiedFileFailed": "Could not delete the copy of {{name}}: {{error}}", "deleteCopiedFileFailed": "無法刪除 {{name}}的副本: {{error}}",
"dragMovedItems_one": "Moved {{count}} item to {{target}}", "dragMovedItems_one": "將 {{count}} 項移到 {{target}}",
"dragMovedItems_other": "Moved {{count}} items to {{target}}", "dragMovedItems_other": "已將 {{count}} 個項目移至 {{target}}",
"moveBackFileFailed": "Could not move {{name}} back: {{error}}", "moveBackFileFailed": "無法將 {{name}} 向後移動: {{error}}",
"terminal": "Terminal: {{host}} ({{path}})", "terminal": "終端: {{host}} ({{path}})",
"dragToDesktop": "Dragging {{name}} to the desktop", "dragToDesktop": "將 {{name}} 拖曳到桌面",
"dragFilesToDesktop": "Dragging {{count}} files to the desktop", "dragFilesToDesktop": "將 {{count}} 檔案拖曳到桌面",
"folderDragUnsupported": "Dragging folders to the desktop is not supported yet", "folderDragUnsupported": "目前尚不支援將資料夾拖曳到桌面。",
"saveToDesktopFailed": "Save failed: {{error}}", "saveToDesktopFailed": "儲存失敗: {{error}}",
"dragFailedDetail": "Drag failed: {{error}}", "dragFailedDetail": "拖曳失敗: {{error}}",
"videoUnsupported": "Your browser cannot play this video format.", "videoUnsupported": "您的瀏覽器無法播放此影片格式。",
"downloadToPlay": "Download to play it elsewhere", "downloadToPlay": "下載後即可在其他地方播放",
"cannotPreviewType": "Cannot preview this file type", "cannotPreviewType": "無法預覽此文件類型",
"cannotPreviewTypeHint": "This file type has no preview. Download it to open it in another app." "cannotPreviewTypeHint": "此文件類型沒有預覽。請下載後在其他應用程式中開啟。"
}, },
"sftpTransfer": { "sftpTransfer": {
"title": "SFTP", "title": "SFTP",
"description": "Transfer files between two SSH hosts.", "description": "在兩台SSH主機之間傳輸檔案。",
"sourceServer": "Source Server", "sourceServer": "來源伺服器",
"destinationServer": "Destination Server", "destinationServer": "目標伺服器",
"selectHost": "Select host", "selectHost": "選擇主機",
"noHostSelected": "未選擇主機", "noHostSelected": "未選擇主機",
"move": "移動", "move": "移動",
"copy": "複製", "copy": "複製",
"upload": "上傳", "upload": "上傳",
"itemsSelected": "{{count}} item selected", "itemsSelected": "{{count}} 已選擇項目",
"itemsSelected_other": "{{count}} items selected", "itemsSelected_other": "{{count}} 已選擇項目",
"ready": "就緒", "ready": "就緒",
"loadingHosts": "正在載入主機...", "loadingHosts": "正在載入主機...",
"name": "名稱", "name": "名稱",
"modified": "修改時間", "modified": "修改時間",
"size": "大小", "size": "大小",
"noFiles": "No files", "noFiles": "沒有文件",
"open": "開啟", "open": "開啟",
"up": "Up", "up": "向上",
"refresh": "重新整理", "refresh": "重新整理",
"copyToTarget": "Copy to Target Directory", "copyToTarget": "複製到目標目錄",
"rename": "重新命名", "rename": "重新命名",
"delete": "刪除", "delete": "刪除",
"editPermissions": "Edit Permissions", "editPermissions": "編輯權限",
"createNewFolder": "Create New Folder", "createNewFolder": "建立新資料夾",
"deleteSelectedItems": "Delete Selected Items", "deleteSelectedItems": "刪除選定項目",
"deleteConfirm": "Delete {{count}} selected item?", "deleteConfirm": "刪除 {{count}} 選取項目?",
"deleteConfirm_other": "Delete {{count}} selected items?", "deleteConfirm_other": "刪除 {{count}} 選取項目?",
"cancel": "取消", "cancel": "取消",
"save": "儲存", "save": "儲存",
"folderCreated": "Folder created", "folderCreated": "已建立資料夾",
"itemRenamed": "Item renamed", "itemRenamed": "項目已重新命名",
"actionFailed": "操作失敗", "actionFailed": "操作失敗",
"itemsDeleted": "{{count}} item deleted", "itemsDeleted": "{{count}} 項目已刪除",
"itemsDeleted_other": "{{count}} items deleted", "itemsDeleted_other": "{{count}} 項目已刪除",
"deleteFailed": "Delete failed", "deleteFailed": "刪除失敗",
"permissionsUpdated": "Permissions updated", "permissionsUpdated": "權限已更新",
"noRemoteSessionConnected": "No remote session connected", "noRemoteSessionConnected": "未連接遠端會話",
"failedToListFiles": "檔案列表失敗", "failedToListFiles": "檔案列表失敗",
"failedToRefresh": "Failed to refresh", "failedToRefresh": "刷新失敗",
"destinationInsideSource": "Destination cannot be inside the selected source path.", "destinationInsideSource": "目標路徑不能位於所選來源路徑內。",
"sameHostNoOp": "Source and destination are the same folder." "sameHostNoOp": "來源資料夾和目標資料夾是同一個資料夾。"
}, },
"hosts": { "hosts": {
"fileManager": "檔案管理員", "fileManager": "檔案管理員",
@@ -438,8 +438,8 @@
"loadingHost": "正在載入主機..." "loadingHost": "正在載入主機..."
}, },
"onboarding": { "onboarding": {
"feature_files": "File manager", "feature_files": "文件管理器",
"feature_files_desc": "Browse, upload, download and edit files over SFTP without leaving the app." "feature_files_desc": "無需離開應用程序,即可透過 SFTP 瀏覽、上傳、下載和編輯檔案。"
}, },
"terminal": { "terminal": {
"runTitle": "正在執行 {{command}} - {{host}}", "runTitle": "正在執行 {{command}} - {{host}}",
@@ -464,7 +464,7 @@
"destinationPath": "目標路徑", "destinationPath": "目標路徑",
"destMustBeDirectory": "多項目傳送時,目標必須是資料夾", "destMustBeDirectory": "多項目傳送時,目標必須是資料夾",
"goUp": "向上", "goUp": "向上",
"hostAuthRequired": "Authentication required. Open File Manager on this host first", "hostAuthRequired": "需要進行身份驗證。請先在此主機上開啟檔案總管。",
"hostConnecting": "連線中…", "hostConnecting": "連線中…",
"hostConnectionFailed": "連線失敗", "hostConnectionFailed": "連線失敗",
"hostDisconnected": "未連線", "hostDisconnected": "未連線",
@@ -485,12 +485,12 @@
"methodReason": { "methodReason": {
"user_item_sftp": "您選擇了逐檔 SFTP。", "user_item_sftp": "您選擇了逐檔 SFTP。",
"user_tar": "您選擇了 tar 封存。", "user_tar": "您選擇了 tar 封存。",
"tar_unavailable": "Tar is not available on one or both hosts, so per-file SFTP will be used instead.", "tar_unavailable": "如果一台或兩台主機上沒有 Tar 服務,則將改用按檔案傳輸的 SFTP 服務。",
"windows_host": "A Windows host is involved, so tar is not used.", "windows_host": "由於涉及 Windows 主機,因此不使用 tar。",
"auto_multi_large": "Auto: multiple files including a large file ({{largestSize}}) with compressible data. Tar bundles them into one transfer.", "auto_multi_large": "自動:支援多個文件,其中包括一個包含可壓縮資料的大文件({{largestSize}})。 Tar 會將它們打包成一個檔案來傳輸。",
"auto_single_large_in_archive": "Auto: one large file ({{largestSize}}) in this set, so per-file SFTP.", "auto_single_large_in_archive": "自動:此集合中有一個大檔案({{largestSize}}),因此請按檔案 SFTP。",
"auto_many_incompressible": "Auto: mostly incompressible data, so per-file SFTP.", "auto_many_incompressible": "自動:資料大多不可壓縮,因此按檔案進行 SFTP 傳輸。",
"auto_many_files": "Auto: many files ({{fileCount}}), tar cuts the per-file overhead.", "auto_many_files": "自動:多個檔案({{fileCount}}),tar 可以減少每個檔案的開銷。",
"auto_default": "自動:此集合使用逐檔 SFTP。" "auto_default": "自動:此集合使用逐檔 SFTP。"
}, },
"methodTar": "Tar 封存", "methodTar": "Tar 封存",
@@ -498,11 +498,11 @@
"metricsCompress": "在來源主機壓縮: {{duration}}", "metricsCompress": "在來源主機壓縮: {{duration}}",
"metricsExtract": "在目標主機解壓縮: {{duration}}", "metricsExtract": "在目標主機解壓縮: {{duration}}",
"metricsPrepare": "準備目標:{{duration}}", "metricsPrepare": "準備目標:{{duration}}",
"metricsRouteBenchmark": "Route probe: direct {{direct}}, relay {{relay}}", "metricsRouteBenchmark": "路由探測:直 {{direct}},中繼 {{relay}}",
"metricsSourceDelete": "從來源主機刪除: {{duration}}", "metricsSourceDelete": "從來源主機刪除: {{duration}}",
"metricsTotal": "總計: {{duration}}", "metricsTotal": "總計: {{duration}}",
"metricsTransfer": "端對端: {{throughput}} ({{duration}})", "metricsTransfer": "端對端: {{throughput}} ({{duration}})",
"metricsVerify": "SHA-256 verified: {{duration}}", "metricsVerify": "SHA-256 已驗證: {{duration}}",
"moveFolderToHost": "移動資料夾至主機…", "moveFolderToHost": "移動資料夾至主機…",
"moveItemsToHost": "將 {{count}} 個項目移至主機…", "moveItemsToHost": "將 {{count}} 個項目移至主機…",
"moveToHost": "移動到主機…", "moveToHost": "移動到主機…",
@@ -511,7 +511,7 @@
"parallelSegmentsHint": "大型檔案會分割成 256 MB 區塊。多個通道會使用獨立的連線(如同啟動多個傳輸作業)以獲取更高的總傳輸速率。", "parallelSegmentsHint": "大型檔案會分割成 256 MB 區塊。多個通道會使用獨立的連線(如同啟動多個傳輸作業)以獲取更高的總傳輸速率。",
"parallelSegmentsLabel": "平行傳輸通道", "parallelSegmentsLabel": "平行傳輸通道",
"parallelSegmentsOption": "{{count}} 個通道", "parallelSegmentsOption": "{{count}} 個通道",
"progressBenchmarking": "Selecting the fastest transfer route…", "progressBenchmarking": "選擇最快的傳輸路線…",
"progressBytes": "{{transferred}} / {{total}}", "progressBytes": "{{transferred}} / {{total}}",
"progressCancel": "取消", "progressCancel": "取消",
"progressCancelling": "正在取消…", "progressCancelling": "正在取消…",
@@ -523,7 +523,7 @@
"progressTotalSpeed": "總計 {{speed}}({{lanes}} 個通道)", "progressTotalSpeed": "總計 {{speed}}({{lanes}} 個通道)",
"progressTransferring": "傳輸資料中…", "progressTransferring": "傳輸資料中…",
"progressTransferringItems": "傳輸檔案中({{current}} / {{total}})…", "progressTransferringItems": "傳輸檔案中({{current}} / {{total}})…",
"progressVerifying": "Verifying file integrity…", "progressVerifying": "正在驗證檔案完整性…",
"recentDestinations": "最近使用的目的地", "recentDestinations": "最近使用的目的地",
"resumedHint": "已重新連線至在另一個視窗中啟動的進行中傳輸。", "resumedHint": "已重新連線至在另一個視窗中啟動的進行中傳輸。",
"retryTransfer": "重試", "retryTransfer": "重試",
+116 -116
View File
@@ -1,150 +1,150 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View fleets", "title": "ফ্লিটগুলি দেখুন",
"description": "See fleets, their members and inventory." "description": "নৌবহর, তাদের সদস্য এবং মজুদ দেখুন।"
}, },
"manage": { "manage": {
"title": "Manage fleets", "title": "ফ্লিট পরিচালনা করুন",
"description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." "description": "ফ্লিট তৈরি, সম্পাদনা ও মুছে ফেলুন, সদস্যপদ পরিবর্তন করুন এবং অন্যান্য ব্যবহারকারী বা ভূমিকার সাথে ফ্লিট শেয়ার করুন।"
}, },
"execute": { "execute": {
"title": "Run fleet actions", "title": "ফ্লিট অ্যাকশন চালান",
"description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." "description": "একটি ফ্লিট জুড়ে কমান্ড ও প্যাকেজ অ্যাকশন চালান, এবং এর সদস্য হোস্টগুলোতে ফাইল আদান-প্রদান করুন।"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"fleets": { "fleets": {
"title": "Fleets", "title": "ফ্লিট",
"createFleet": "Create Fleet", "createFleet": "ফ্লিট তৈরি করুন",
"createFleetTitle": "Create Fleet", "createFleetTitle": "ফ্লিট তৈরি করুন",
"editFleetTitle": "Edit Fleet", "editFleetTitle": "ফ্লিট সম্পাদনা করুন",
"createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", "createFleetDescription": "ফ্লিট হলো নামযুক্ত হোস্টদের একটি দল, যাদের বিরুদ্ধে আপনি একটি ইউনিট হিসেবে বিভিন্ন অ্যাকশন চালাতে পারেন।",
"nameLabel": "Name", "nameLabel": "নাম",
"namePlaceholder": "e.g., Web Servers", "namePlaceholder": "যেমন, ওয়েব সার্ভার",
"nameRequired": "Fleet name is required", "nameRequired": "ফ্লিটের নাম প্রয়োজন",
"descriptionLabel": "Description", "descriptionLabel": "বর্ণনা",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "ঐচ্ছিক বিবরণ",
"colorLabel": "Color", "colorLabel": "রঙ",
"tagRulesLabel": "Tag rules", "tagRulesLabel": "ট্যাগ নিয়ম",
"tagRulesPlaceholder": "prod-web, edge", "tagRulesPlaceholder": "প্রোড-ওয়েব, এজ",
"tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", "tagRulesHint": "ম্যানুয়ালি যোগ করা হোস্টগুলোর পাশাপাশি, এই ট্যাগগুলোর যেকোনো একটি থাকা হোস্টগুলো স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়ে যায়।",
"fleetCreated": "Fleet created", "fleetCreated": "ফ্লিট তৈরি করা হয়েছে",
"fleetUpdated": "Fleet updated", "fleetUpdated": "ফ্লিট আপডেট করা হয়েছে",
"fleetDeleted": "Fleet deleted", "fleetDeleted": "ফ্লিট মুছে ফেলা হয়েছে",
"saveFailed": "Failed to save fleet", "saveFailed": "বহর সংরক্ষণ করতে ব্যর্থ হয়েছে",
"deleteFailed": "Failed to delete fleet", "deleteFailed": "ফ্লিট মুছে ফেলতে ব্যর্থ হয়েছে",
"loadFailed": "Failed to load fleets", "loadFailed": "ফ্লিট লোড করতে ব্যর্থ হয়েছে",
"deleteFleetTitle": "Delete Fleet", "deleteFleetTitle": "ফ্লিট মুছুন",
"deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", "deleteFleetDescription": "আপনি কি \"{{name}}\" মুছে ফেলতে নিশ্চিত? এটি সদস্য হোস্টদেরকে মুছে ফেলে না।",
"searchFleets": "Search fleets...", "searchFleets": "নৌবহর অনুসন্ধান করুন...",
"noFleets": "No fleets yet. Create one to get started.", "noFleets": "এখনো কোনো ফ্লিট নেই। শুরু করার জন্য একটি তৈরি করুন।",
"memberCount": "{{count}} host", "memberCount": "{{count}} হোস্ট",
"memberCount_other": "{{count}} hosts", "memberCount_other": "{{count}} হোস্ট",
"manageMembers": "Manage Members", "manageMembers": "সদস্যদের পরিচালনা করুন",
"manageMembersTitle": "Manage Fleet Members", "manageMembersTitle": "ফ্লিট সদস্যদের পরিচালনা করুন",
"manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", "manageMembersDescription": "এই ফ্লিটের স্ট্যাটিক সদস্যপদে হোস্টদের অন্তর্ভুক্ত বা বহির্ভূত করুন। ট্যাগ নিয়ম দ্বারা মেলানো হোস্টরা সর্বদা অন্তর্ভুক্ত থাকে।",
"searchHosts": "Search hosts...", "searchHosts": "হোস্ট অনুসন্ধান করুন...",
"noHostsFound": "No hosts found", "noHostsFound": "কোন হোস্ট খুঁজে পাওয়া যায়নি",
"noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", "noMembers": "এই ফ্লিটে এখনও কোনো সদস্য নেই। হোস্ট যোগ করুন অথবা একটি ট্যাগ নিয়ম সেট করুন।",
"membersLoadFailed": "Failed to load fleet members", "membersLoadFailed": "ফ্লিট সদস্যদের লোড করতে ব্যর্থ হয়েছে",
"memberUpdateFailed": "Failed to update fleet membership", "memberUpdateFailed": "ফ্লিট সদস্যপদ আপডেট করতে ব্যর্থ হয়েছে",
"tabRun": "Run Command", "tabRun": "রান কমান্ড",
"tabTransfer": "Transfer Files", "tabTransfer": "ফাইল স্থানান্তর করুন",
"tabInventory": "Inventory", "tabInventory": "ইনভেন্টরি",
"openInventoryTab": "Open in full tab", "openInventoryTab": "সম্পূর্ণ ট্যাবে খুলুন",
"tabPackages": "Packages", "tabPackages": "প্যাকেজ",
"runOnFleet": "Run on Fleet", "runOnFleet": "ফ্লিটে চালান",
"commandPlaceholder": "uptime && df -h", "commandPlaceholder": "আপটাইম && df -h",
"commandRequired": "A command is required", "commandRequired": "একটি কমান্ড প্রয়োজন",
"commandInputsLabel": "Command inputs", "commandInputsLabel": "কমান্ড ইনপুট",
"commandSucceeded": "Command succeeded on all hosts", "commandSucceeded": "সকল হোস্টে কমান্ড সফল হয়েছে।",
"commandPartialFailure": "{{failed}} of {{total}} hosts failed", "commandPartialFailure": "{{failed}} এর {{total}} হোস্ট ব্যর্থ হয়েছে",
"commandFailed": "Failed to run command", "commandFailed": "কমান্ড চালাতে ব্যর্থ হয়েছে",
"resultSuccess": "Success", "resultSuccess": "সাফল্য",
"resultFailed": "Failed", "resultFailed": "ব্যর্থ",
"push": "Push", "push": "ধাক্কা দিন",
"pull": "Pull", "pull": "টান",
"remotePathLabel": "Remote path", "remotePathLabel": "দূরবর্তী পথ",
"remotePathRequired": "A remote path is required", "remotePathRequired": "একটি দূরবর্তী পথের প্রয়োজন",
"fileLabel": "File", "fileLabel": "ফাইল",
"fileRequired": "A file is required", "fileRequired": "একটি ফাইল প্রয়োজন",
"pushHint": "The selected file is written to this exact path on every host in the fleet.", "pushHint": "নির্বাচিত ফাইলটি ফ্লিটের প্রতিটি হোস্টের এই নির্দিষ্ট পাথে লেখা হয়।",
"pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", "pullHint": "এই পাথের ফাইলটি প্রতিটি হোস্ট থেকে পড়া হয় এবং একটি একক জিপ ফাইল হিসেবে ডাউনলোড করা হয়, যা প্রতি হোস্টে একটি করে ফোল্ডারে বিভক্ত থাকে।",
"transferComplete": "Transfer complete", "transferComplete": "স্থানান্তর সম্পন্ন হয়েছে",
"transferFailed": "Transfer failed", "transferFailed": "স্থানান্তর ব্যর্থ হয়েছে",
"refreshInventory": "Refresh Inventory", "refreshInventory": "ইনভেন্টরি রিফ্রেশ করুন",
"inventoryLoadFailed": "Failed to load inventory", "inventoryLoadFailed": "ইনভেন্টরি লোড করতে ব্যর্থ হয়েছে",
"inventoryRefreshed": "Inventory refreshed", "inventoryRefreshed": "ইনভেন্টরি রিফ্রেশ করা হয়েছে",
"inventoryRefreshFailed": "Failed to refresh inventory", "inventoryRefreshFailed": "ইনভেন্টরি রিফ্রেশ করতে ব্যর্থ হয়েছে",
"inventoryNoData": "No inventory data yet - refresh to collect it.", "inventoryNoData": "এখনও কোনো ইনভেন্টরি ডেটা নেই - এটি সংগ্রহ করতে রিফ্রেশ করুন।",
"inventoryHost": "Host", "inventoryHost": "হোস্ট",
"inventoryCollectedCount": "{{count}}/{{total}} collected", "inventoryCollectedCount": "{{count}}/{{total}} সংগৃহীত",
"inventoryOs": "OS", "inventoryOs": "ওএস",
"inventoryKernel": "Kernel", "inventoryKernel": "কার্নেল",
"inventoryArch": "Arch", "inventoryArch": "খিলান",
"inventoryUptime": "Uptime", "inventoryUptime": "আপটাইম",
"inventoryPackageManager": "Package manager", "inventoryPackageManager": "প্যাকেজ ম্যানেজার",
"inventoryCollectedAt": "Collected", "inventoryCollectedAt": "সংগৃহীত",
"packageActionLabel": "Action", "packageActionLabel": "পদক্ষেপ",
"packageInstall": "Install", "packageInstall": "ইনস্টল করুন",
"packageRemove": "Remove", "packageRemove": "অপসারণ করুন",
"packageUpgradeAll": "Upgrade all packages", "packageUpgradeAll": "সমস্ত প্যাকেজ আপগ্রেড করুন",
"packageNameLabel": "Package name", "packageNameLabel": "প্যাকেজের নাম",
"packageNameRequired": "A package name is required", "packageNameRequired": "একটি প্যাকেজের নাম প্রয়োজন",
"packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", "packageHint": "প্রতিটি হোস্টের জন্য ম্যানেজ-লেভেল অ্যাক্সেস প্রয়োজন এবং হোস্টের সংরক্ষিত sudo পাসওয়ার্ড ব্যবহার করে অ্যাক্সেস উন্নত করা হয়।",
"shareFleet": "Share Fleet", "shareFleet": "শেয়ার ফ্লিট",
"shareFleetTitle": "Share \"{{name}}\"", "shareFleetTitle": "শেয়ার করুন \"{{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.", "shareFleetDescription": "এই ফ্লিটের বর্তমান সদস্য হোস্টগুলোকে নির্বাচিত ব্যবহারকারী বা রোলের সাথে শেয়ার করে। ফ্লিটে পরে যোগ করা হোস্টগুলো স্বয়ংক্রিয়ভাবে শেয়ার হয় না - সেগুলোকে অন্তর্ভুক্ত করতে আবার শেয়ার করুন।",
"shareSelectionRequired": "Select at least one user or role", "shareSelectionRequired": "অন্তত একজন ব্যবহারকারী বা ভূমিকা নির্বাচন করুন",
"fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", "fleetSharedSuccessfully": "এই ফ্লিটে {{total}} টি {{shared}} টি শেয়ার করা হোস্ট রয়েছে।",
"failedToShareFleet": "Failed to share fleet", "failedToShareFleet": "ফ্লিট শেয়ার করতে ব্যর্থ হয়েছে",
"noMembersToShare": "This fleet has no member hosts to share yet." "noMembersToShare": "এই ফ্লিটে এখনও শেয়ার করার মতো কোনো সদস্য হোস্ট নেই।"
} }
} }
}, },
"nav": { "nav": {
"fleets": "Fleets" "fleets": "ফ্লিট"
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "নথি দেখুন",
"sharing": { "sharing": {
"customHoursPlaceholder": "Hours until access expires", "customHoursPlaceholder": "অ্যাক্সেসের মেয়াদ শেষ হতে বাকি ঘন্টা",
"expiry": { "expiry": {
"never": "Never", "never": "কখনো না",
"oneHour": "1 hour", "oneHour": "১ ঘন্টা",
"oneDay": "24 hours", "oneDay": "২৪ ঘন্টা",
"sevenDays": "7 days", "sevenDays": "৭ দিন",
"thirtyDays": "30 days", "thirtyDays": "৩০ দিন",
"custom": "Custom" "custom": "কাস্টম"
}, },
"expiryLabel": "Access expiry", "expiryLabel": "অ্যাক্সেসের মেয়াদ শেষ",
"levels": { "levels": {
"connect": { "connect": {
"label": "Connect", "label": "সংযোগ করুন",
"description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." "description": "শুধুমাত্র টার্মিনাল, রিমোট ডেস্কটপ, ফাইল ম্যানেজার, টানেল এবং ডকার সেশনগুলো খোলা থাকবে। হোস্ট কনফিগারেশনে কোনো অ্যাক্সেস নেই।"
}, },
"view": { "view": {
"label": "View", "label": "দেখুন",
"description": "Connect, plus see the host configuration. Secrets are never shown." "description": "সংযোগ করুন, এবং হোস্ট কনফিগারেশন দেখুন। গোপনীয় তথ্য কখনোই দেখানো হয় না।"
}, },
"edit": { "edit": {
"label": "Edit", "label": "সম্পাদনা",
"description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." "description": "নন-অথেনটিকেশন হোস্ট সেটিংস দেখুন এবং পরিবর্তন করুন। মালিকের SSH অথেনটিকেশন ব্যক্তিগত এবং শুধুমাত্র মালিকের জন্যই সংরক্ষিত থাকে।"
}, },
"manage": { "manage": {
"label": "Manage", "label": "পরিচালনা করুন",
"description": "Edit, plus share the host with others, change permission levels and revoke access." "description": "সম্পাদনা করুন, সেইসাথে অন্যদের সাথে হোস্টটি শেয়ার করুন, অনুমতির স্তর পরিবর্তন করুন এবং অ্যাক্সেস প্রত্যাহার করুন।"
} }
}, },
"noMatches": "No matches found", "noMatches": "কোনো মিল খুঁজে পাওয়া যায়নি",
"permissionLevelLabel": "Permission level", "permissionLevelLabel": "অনুমতি স্তর",
"rolesTab": "Roles", "rolesTab": "ভূমিকা",
"searchPlaceholder": "Search users or roles...", "searchPlaceholder": "ব্যবহারকারী বা ভূমিকা অনুসন্ধান করুন...",
"shareButton": "Share", "shareButton": "শেয়ার",
"shareWithCount": "Share ({{count}})", "shareWithCount": "শেয়ার করুন ({{count}})",
"usersTab": "Users" "usersTab": "ব্যবহারকারীরা"
} }
} }
} }
+74 -74
View File
@@ -1,111 +1,111 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View fleets", "title": "बेड़े देखें",
"description": "See fleets, their members and inventory." "description": "बेड़े, उनके सदस्य और माल सूची देखें।"
}, },
"manage": { "manage": {
"title": "Manage fleets", "title": "बेड़े का प्रबंधन करें",
"description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." "description": "फ्लीट बनाएं, संपादित करें और हटाएं, सदस्यता बदलें और फ्लीट को अन्य उपयोगकर्ताओं या भूमिकाओं के साथ साझा करें।"
}, },
"execute": { "execute": {
"title": "Run fleet actions", "title": "फ्लीट कार्रवाइयां चलाएं",
"description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." "description": "एक फ्लीट में कमांड चलाएं और पैकेज संबंधी कार्रवाइयां करें, और इसके सदस्य होस्ट से और उनके बीच फाइलें स्थानांतरित करें।"
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"fleets": { "fleets": {
"title": "Fleets", "title": "बेड़े",
"createFleet": "Create Fleet", "createFleet": "बेड़ा बनाएं",
"createFleetTitle": "Create Fleet", "createFleetTitle": "बेड़ा बनाएं",
"editFleetTitle": "Edit Fleet", "editFleetTitle": "बेड़े को संपादित करें",
"createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", "createFleetDescription": "फ्लीट होस्ट का एक नामित समूह है जिसके विरुद्ध आप एक इकाई के रूप में कार्रवाई कर सकते हैं।",
"nameLabel": "नाम", "nameLabel": "नाम",
"namePlaceholder": "e.g., Web Servers", "namePlaceholder": "उदाहरण के लिए, वेब सर्वर",
"nameRequired": "Fleet name is required", "nameRequired": "बेड़े का नाम आवश्यक है",
"descriptionLabel": "विवरण", "descriptionLabel": "विवरण",
"descriptionPlaceholder": "वैकल्पिक विवरण", "descriptionPlaceholder": "वैकल्पिक विवरण",
"colorLabel": "रंग", "colorLabel": "रंग",
"tagRulesLabel": "Tag rules", "tagRulesLabel": "टैग नियम",
"tagRulesPlaceholder": "prod-web, edge", "tagRulesPlaceholder": "प्रोड-वेब, एज",
"tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", "tagRulesHint": "मैन्युअल रूप से जोड़े गए होस्ट के अतिरिक्त, इनमें से किसी भी टैग वाले होस्ट स्वचालित रूप से शामिल हो जाते हैं।",
"fleetCreated": "Fleet created", "fleetCreated": "बेड़ा बनाया गया",
"fleetUpdated": "Fleet updated", "fleetUpdated": "बेड़े को अपडेट किया गया",
"fleetDeleted": "Fleet deleted", "fleetDeleted": "बेड़ा हटा दिया गया",
"saveFailed": "Failed to save fleet", "saveFailed": "बेड़े को बचाने में विफल",
"deleteFailed": "Failed to delete fleet", "deleteFailed": "बेड़ा हटाने में विफल",
"loadFailed": "Failed to load fleets", "loadFailed": "फ्लीट लोड करने में विफल",
"deleteFleetTitle": "Delete Fleet", "deleteFleetTitle": "बेड़ा हटाएं",
"deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", "deleteFleetDescription": "क्या आप वाकई \"{{name}}\" को हटाना चाहते हैं? इससे सदस्य होस्ट स्वयं नहीं हटेंगे।",
"searchFleets": "Search fleets...", "searchFleets": "खोज बेड़े...",
"noFleets": "No fleets yet. Create one to get started.", "noFleets": "अभी तक कोई बेड़ा नहीं है। शुरुआत करने के लिए एक बेड़ा बनाएं।",
"memberCount": "{{count}} host", "memberCount": "{{count}} होस्ट",
"memberCount_other": "{{count}} होस्ट", "memberCount_other": "{{count}} होस्ट",
"manageMembers": "Manage Members", "manageMembers": "सदस्यों का प्रबंधन करें",
"manageMembersTitle": "Manage Fleet Members", "manageMembersTitle": "बेड़े के सदस्यों का प्रबंधन करें",
"manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", "manageMembersDescription": "इस फ्लीट की स्थायी सदस्यता में होस्ट को शामिल या बाहर करें। टैग नियमों द्वारा मेल खाने वाले होस्ट हमेशा शामिल होते हैं।",
"searchHosts": "होस्ट खोजें...", "searchHosts": "होस्ट खोजें...",
"noHostsFound": "कोई होस्ट नहीं मिला", "noHostsFound": "कोई होस्ट नहीं मिला",
"noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", "noMembers": "इस फ्लीट में अभी कोई सदस्य नहीं है। होस्ट जोड़ें या टैग नियम सेट करें।",
"membersLoadFailed": "Failed to load fleet members", "membersLoadFailed": "फ्लीट सदस्यों को लोड करने में विफल",
"memberUpdateFailed": "Failed to update fleet membership", "memberUpdateFailed": "फ्लीट सदस्यता को अपडेट करने में विफल",
"tabRun": "Run Command", "tabRun": "कमांड चलाएँ",
"tabTransfer": "Transfer Files", "tabTransfer": "फ़ाइलें स्थानांतरित करें",
"tabInventory": "Inventory", "tabInventory": "भंडार",
"openInventoryTab": "Open in full tab", "openInventoryTab": "पूरे टैब में खोलें",
"tabPackages": "पैकेजेस", "tabPackages": "पैकेजेस",
"runOnFleet": "Run on Fleet", "runOnFleet": "फ्लीट पर चलाएँ",
"commandPlaceholder": "uptime && df -h", "commandPlaceholder": "अपटाइम && df -h",
"commandRequired": "A command is required", "commandRequired": "एक आदेश आवश्यक है",
"commandInputsLabel": "Command inputs", "commandInputsLabel": "कमांड इनपुट",
"commandSucceeded": "Command succeeded on all hosts", "commandSucceeded": "सभी होस्ट पर कमांड सफलतापूर्वक संचालित हुई।",
"commandPartialFailure": "{{failed}} of {{total}} hosts failed", "commandPartialFailure": "{{failed}} में से {{total}} होस्ट विफल हो गए",
"commandFailed": "Failed to run command", "commandFailed": "कमांड चलाने में विफल",
"resultSuccess": "सफल", "resultSuccess": "सफल",
"resultFailed": "असफल", "resultFailed": "असफल",
"push": "Push", "push": "धकेलना",
"pull": "Pull", "pull": "खींचो",
"remotePathLabel": "Remote path", "remotePathLabel": "दूरस्थ पथ",
"remotePathRequired": "A remote path is required", "remotePathRequired": "एक दूरस्थ मार्ग आवश्यक है",
"fileLabel": "फ़ाइल", "fileLabel": "फ़ाइल",
"fileRequired": "A file is required", "fileRequired": "एक फ़ाइल आवश्यक है",
"pushHint": "The selected file is written to this exact path on every host in the fleet.", "pushHint": "चयनित फ़ाइल को फ्लीट में मौजूद प्रत्येक होस्ट पर ठीक इसी पथ पर लिखा जाता है।",
"pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", "pullHint": "इस पथ पर स्थित फ़ाइल को प्रत्येक होस्ट से पढ़ा जाता है और एक ही ज़िप फ़ाइल के रूप में डाउनलोड किया जाता है, जिसमें प्रत्येक होस्ट के लिए एक फ़ोल्डर होता है।",
"transferComplete": "स्थानांतरण पूर्ण", "transferComplete": "स्थानांतरण पूर्ण",
"transferFailed": "स्थानांतरण विफल", "transferFailed": "स्थानांतरण विफल",
"refreshInventory": "Refresh Inventory", "refreshInventory": "इन्वेंट्री रीफ़्रेश करें",
"inventoryLoadFailed": "Failed to load inventory", "inventoryLoadFailed": "इन्वेंट्री लोड करने में विफल",
"inventoryRefreshed": "Inventory refreshed", "inventoryRefreshed": "इन्वेंट्री रीफ़्रेश हो गई",
"inventoryRefreshFailed": "Failed to refresh inventory", "inventoryRefreshFailed": "इन्वेंट्री को रीफ़्रेश करने में विफल",
"inventoryNoData": "No inventory data yet - refresh to collect it.", "inventoryNoData": "अभी कोई इन्वेंट्री डेटा उपलब्ध नहीं है - इसे प्राप्त करने के लिए पेज को रिफ्रेश करें।",
"inventoryHost": "होस्ट", "inventoryHost": "होस्ट",
"inventoryCollectedCount": "{{count}}/{{total}} collected", "inventoryCollectedCount": "{{count}}/{{total}} एकत्रित",
"inventoryOs": "ओएस", "inventoryOs": "ओएस",
"inventoryKernel": "कर्नेल", "inventoryKernel": "कर्नेल",
"inventoryArch": "Arch", "inventoryArch": "मेहराब",
"inventoryUptime": "अपटाइम", "inventoryUptime": "अपटाइम",
"inventoryPackageManager": "Package manager", "inventoryPackageManager": "पैकेज प्रबंधक",
"inventoryCollectedAt": "Collected", "inventoryCollectedAt": "एकत्र किया हुआ",
"packageActionLabel": "क्रिया", "packageActionLabel": "क्रिया",
"packageInstall": "Install", "packageInstall": "स्थापित करना",
"packageRemove": "हटाएँ", "packageRemove": "हटाएँ",
"packageUpgradeAll": "Upgrade all packages", "packageUpgradeAll": "सभी पैकेजों को अपग्रेड करें",
"packageNameLabel": "Package name", "packageNameLabel": "पैकेज का नाम",
"packageNameRequired": "A package name is required", "packageNameRequired": "पैकेज का नाम आवश्यक है",
"packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", "packageHint": "प्रत्येक होस्ट के लिए प्रबंधन-स्तर की पहुँच आवश्यक है और होस्ट के संग्रहीत सूडो पासवर्ड का उपयोग करके पहुँच को बढ़ाया जा सकता है।",
"shareFleet": "Share Fleet", "shareFleet": "शेयर फ्लीट",
"shareFleetTitle": "Share \"{{name}}\"", "shareFleetTitle": "शेयर करें \"{{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.", "shareFleetDescription": "यह सेवा इस फ्लीट के वर्तमान सदस्य होस्ट्स को चयनित उपयोगकर्ताओं या भूमिकाओं के साथ साझा करती है। फ्लीट में बाद में जोड़े गए होस्ट्स स्वचालित रूप से साझा नहीं होते हैं - उन्हें शामिल करने के लिए पुनः साझा करें।",
"shareSelectionRequired": "Select at least one user or role", "shareSelectionRequired": "कम से कम एक उपयोगकर्ता या भूमिका का चयन करें",
"fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", "fleetSharedSuccessfully": "इस बेड़े में {{total}} मेज़बान(ओं) का साझा {{shared}} है",
"failedToShareFleet": "Failed to share fleet", "failedToShareFleet": "बेड़ा साझा करने में विफल",
"noMembersToShare": "This fleet has no member hosts to share yet." "noMembersToShare": "इस फ्लीट में अभी तक कोई सदस्य होस्ट नहीं है जो अपनी सेवाएं साझा कर सके।"
} }
} }
}, },
"nav": { "nav": {
"fleets": "Fleets" "fleets": "बेड़े"
}, },
"hosts": { "hosts": {
"docsLink": "दस्तावेज़ देखें", "docsLink": "दस्तावेज़ देखें",
@@ -131,7 +131,7 @@
}, },
"edit": { "edit": {
"label": "संपादित करें", "label": "संपादित करें",
"description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only." "description": "आप बिना प्रमाणीकरण वाले होस्ट की सेटिंग्स देख सकते हैं और उनमें बदलाव कर सकते हैं। मालिक का SSH प्रमाणीकरण गोपनीय रहता है और केवल मालिक के लिए ही उपलब्ध होता है।"
}, },
"manage": { "manage": {
"label": "प्रबंधित करें", "label": "प्रबंधित करें",
+115 -115
View File
@@ -1,150 +1,150 @@
{ {
"permissions": { "permissions": {
"view": { "view": {
"title": "View fleets", "title": "Lihat armada",
"description": "See fleets, their members and inventory." "description": "Lihat armada, anggotanya, dan inventarisnya."
}, },
"manage": { "manage": {
"title": "Manage fleets", "title": "Mengelola armada",
"description": "Create, edit and delete fleets, change membership, and share fleets with other users or roles." "description": "Buat, edit, dan hapus armada, ubah keanggotaan, dan bagikan armada dengan pengguna atau peran lain."
}, },
"execute": { "execute": {
"title": "Run fleet actions", "title": "Jalankan tindakan armada.",
"description": "Run commands and package actions across a fleet, and transfer files to and from its member hosts." "description": "Jalankan perintah dan tindakan paket di seluruh armada, dan transfer file ke dan dari host anggotanya."
} }
}, },
"newUi": { "newUi": {
"sidebar": { "sidebar": {
"fleets": { "fleets": {
"title": "Fleets", "title": "Armada",
"createFleet": "Create Fleet", "createFleet": "Buat Armada",
"createFleetTitle": "Create Fleet", "createFleetTitle": "Buat Armada",
"editFleetTitle": "Edit Fleet", "editFleetTitle": "Edit Armada",
"createFleetDescription": "A fleet is a named group of hosts you can run actions against as a unit.", "createFleetDescription": "Armada adalah kelompok host bernama yang dapat Anda serang sebagai satu unit.",
"nameLabel": "Name", "nameLabel": "Nama",
"namePlaceholder": "e.g., Web Servers", "namePlaceholder": "misalnya, Server Web",
"nameRequired": "Fleet name is required", "nameRequired": "Nama armada wajib diisi.",
"descriptionLabel": "Description", "descriptionLabel": "Keterangan",
"descriptionPlaceholder": "Optional description", "descriptionPlaceholder": "Deskripsi opsional",
"colorLabel": "Color", "colorLabel": "Warna",
"tagRulesLabel": "Tag rules", "tagRulesLabel": "Aturan tag",
"tagRulesPlaceholder": "prod-web, edge", "tagRulesPlaceholder": "prod-web, tepi",
"tagRulesHint": "Hosts with any of these tags are automatically included, in addition to hosts added manually.", "tagRulesHint": "Host yang memiliki salah satu tag ini akan disertakan secara otomatis, di samping host yang ditambahkan secara manual.",
"fleetCreated": "Fleet created", "fleetCreated": "Armada yang dibuat",
"fleetUpdated": "Fleet updated", "fleetUpdated": "Armada diperbarui",
"fleetDeleted": "Fleet deleted", "fleetDeleted": "Armada dihapus",
"saveFailed": "Failed to save fleet", "saveFailed": "Gagal menyelamatkan armada.",
"deleteFailed": "Failed to delete fleet", "deleteFailed": "Gagal menghapus armada",
"loadFailed": "Failed to load fleets", "loadFailed": "Gagal memuat armada",
"deleteFleetTitle": "Delete Fleet", "deleteFleetTitle": "Hapus Armada",
"deleteFleetDescription": "Are you sure you want to delete \"{{name}}\"? This does not delete the member hosts themselves.", "deleteFleetDescription": "Apakah Anda yakin ingin menghapus \"{{name}}\"? Ini tidak menghapus host anggota itu sendiri.",
"searchFleets": "Search fleets...", "searchFleets": "Armada pencarian...",
"noFleets": "No fleets yet. Create one to get started.", "noFleets": "Belum ada armada. Buat satu untuk memulai.",
"memberCount": "{{count}} host", "memberCount": "{{count}} tuan rumah",
"memberCount_other": "{{count}} hosts", "memberCount_other": "{{count}} tuan rumah",
"manageMembers": "Manage Members", "manageMembers": "Kelola Anggota",
"manageMembersTitle": "Manage Fleet Members", "manageMembersTitle": "Mengelola Anggota Armada",
"manageMembersDescription": "Toggle hosts in or out of this fleet's static membership. Hosts matched by tag rules are always included.", "manageMembersDescription": "Aktifkan atau nonaktifkan keanggotaan statis host dalam armada ini. Host yang cocok dengan aturan tag akan selalu disertakan.",
"searchHosts": "Search hosts...", "searchHosts": "Cari host...",
"noHostsFound": "No hosts found", "noHostsFound": "Tidak ada host yang ditemukan.",
"noMembers": "This fleet has no members yet. Add hosts or set a tag rule.", "noMembers": "Armada ini belum memiliki anggota. Tambahkan host atau tetapkan aturan tag.",
"membersLoadFailed": "Failed to load fleet members", "membersLoadFailed": "Gagal memuat anggota armada",
"memberUpdateFailed": "Failed to update fleet membership", "memberUpdateFailed": "Gagal memperbarui keanggotaan armada.",
"tabRun": "Run Command", "tabRun": "Jalankan Perintah",
"tabTransfer": "Transfer Files", "tabTransfer": "Transfer File",
"tabInventory": "Inventory", "tabInventory": "Inventaris",
"openInventoryTab": "Open in full tab", "openInventoryTab": "Buka di tab penuh",
"tabPackages": "Packages", "tabPackages": "Paket",
"runOnFleet": "Run on Fleet", "runOnFleet": "Lari di Armada",
"commandPlaceholder": "uptime && df -h", "commandPlaceholder": "waktu aktif && df -h",
"commandRequired": "A command is required", "commandRequired": "Diperlukan sebuah perintah.",
"commandInputsLabel": "Command inputs", "commandInputsLabel": "Masukan perintah",
"commandSucceeded": "Command succeeded on all hosts", "commandSucceeded": "Perintah berhasil dijalankan di semua host.",
"commandPartialFailure": "{{failed}} of {{total}} hosts failed", "commandPartialFailure": "{{failed}} dari {{total}} host gagal",
"commandFailed": "Failed to run command", "commandFailed": "Perintah gagal dijalankan.",
"resultSuccess": "Success", "resultSuccess": "Kesuksesan",
"resultFailed": "Failed", "resultFailed": "Gagal",
"push": "Push", "push": "Dorongan",
"pull": "Pull", "pull": "Menarik",
"remotePathLabel": "Remote path", "remotePathLabel": "Jalur jarak jauh",
"remotePathRequired": "A remote path is required", "remotePathRequired": "Diperlukan jalur jarak jauh.",
"fileLabel": "File", "fileLabel": "Mengajukan",
"fileRequired": "A file is required", "fileRequired": "Diperlukan sebuah berkas.",
"pushHint": "The selected file is written to this exact path on every host in the fleet.", "pushHint": "File yang dipilih akan ditulis ke jalur persis ini di setiap host dalam armada.",
"pullHint": "The file at this path is read from every host and downloaded as a single zip, one folder per host.", "pullHint": "Berkas di jalur ini dibaca dari setiap host dan diunduh sebagai satu file zip, satu folder per host.",
"transferComplete": "Transfer complete", "transferComplete": "Transfer selesai",
"transferFailed": "Transfer failed", "transferFailed": "Transfer gagal",
"refreshInventory": "Refresh Inventory", "refreshInventory": "Perbarui Inventaris",
"inventoryLoadFailed": "Failed to load inventory", "inventoryLoadFailed": "Gagal memuat inventaris",
"inventoryRefreshed": "Inventory refreshed", "inventoryRefreshed": "Persediaan diperbarui",
"inventoryRefreshFailed": "Failed to refresh inventory", "inventoryRefreshFailed": "Gagal memperbarui inventaris",
"inventoryNoData": "No inventory data yet - refresh to collect it.", "inventoryNoData": "Belum ada data inventaris - segarkan halaman untuk mengumpulkannya.",
"inventoryHost": "Host", "inventoryHost": "Tuan rumah",
"inventoryCollectedCount": "{{count}}/{{total}} collected", "inventoryCollectedCount": "{{count}}/{{total}} dikumpulkan",
"inventoryOs": "OS", "inventoryOs": "Sistem Operasi",
"inventoryKernel": "Kernel", "inventoryKernel": "Inti",
"inventoryArch": "Arch", "inventoryArch": "Lengkungan",
"inventoryUptime": "Uptime", "inventoryUptime": "Waktu aktif",
"inventoryPackageManager": "Package manager", "inventoryPackageManager": "Pengelola paket",
"inventoryCollectedAt": "Collected", "inventoryCollectedAt": "Dikumpulkan",
"packageActionLabel": "Action", "packageActionLabel": "Tindakan",
"packageInstall": "Install", "packageInstall": "Memasang",
"packageRemove": "Remove", "packageRemove": "Menghapus",
"packageUpgradeAll": "Upgrade all packages", "packageUpgradeAll": "Tingkatkan semua paket",
"packageNameLabel": "Package name", "packageNameLabel": "Nama paket",
"packageNameRequired": "A package name is required", "packageNameRequired": "Nama paket wajib diisi.",
"packageHint": "Requires manage-level access per host and elevates using the host's stored sudo password.", "packageHint": "Membutuhkan akses tingkat pengelola per host dan ditingkatkan menggunakan kata sandi sudo yang tersimpan di host tersebut.",
"shareFleet": "Share Fleet", "shareFleet": "Armada Bersama",
"shareFleetTitle": "Share \"{{name}}\"", "shareFleetTitle": "Bagikan \"{{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.", "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": "Select at least one user or role", "shareSelectionRequired": "Pilih setidaknya satu pengguna atau peran",
"fleetSharedSuccessfully": "Shared {{shared}} of {{total}} host(s) in this fleet", "fleetSharedSuccessfully": "Berbagi {{shared}} dari {{total}} host di armada ini",
"failedToShareFleet": "Failed to share fleet", "failedToShareFleet": "Gagal berbagi armada",
"noMembersToShare": "This fleet has no member hosts to share yet." "noMembersToShare": "Armada ini belum memiliki anggota yang dapat dibagikan."
} }
} }
}, },
"nav": { "nav": {
"fleets": "Fleets" "fleets": "Armada"
}, },
"hosts": { "hosts": {
"docsLink": "View docs", "docsLink": "Lihat dokumen",
"sharing": { "sharing": {
"customHoursPlaceholder": "Hours until access expires", "customHoursPlaceholder": "Waktu hingga akses berakhir",
"expiry": { "expiry": {
"never": "Never", "never": "Tidak pernah",
"oneHour": "1 hour", "oneHour": "1 jam",
"oneDay": "24 hours", "oneDay": "24 jam",
"sevenDays": "7 days", "sevenDays": "7 hari",
"thirtyDays": "30 days", "thirtyDays": "30 hari",
"custom": "Custom" "custom": "Kebiasaan"
}, },
"expiryLabel": "Access expiry", "expiryLabel": "Kedaluwarsa akses",
"levels": { "levels": {
"connect": { "connect": {
"label": "Connect", "label": "Menghubungkan",
"description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration." "description": "Hanya sesi yang diizinkan untuk dibuka: terminal, desktop jarak jauh, pengelola file, terowongan, dan Docker. Tidak ada akses ke konfigurasi host."
}, },
"view": { "view": {
"label": "View", "label": "Melihat",
"description": "Connect, plus see the host configuration. Secrets are never shown." "description": "Hubungkan, dan lihat konfigurasi host. Rahasia tidak akan pernah ditampilkan."
}, },
"edit": { "edit": {
"label": "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": { "manage": {
"label": "Manage", "label": "Mengelola",
"description": "Edit, plus share the host with others, change permission levels and revoke access." "description": "Edit, bagikan host dengan orang lain, ubah tingkat izin, dan cabut akses."
} }
}, },
"noMatches": "No matches found", "noMatches": "Tidak ditemukan kecocokan.",
"permissionLevelLabel": "Permission level", "permissionLevelLabel": "Tingkat izin",
"rolesTab": "Roles", "rolesTab": "Peran",
"searchPlaceholder": "Search users or roles...", "searchPlaceholder": "Cari pengguna atau peran...",
"shareButton": "Share", "shareButton": "Membagikan",
"shareWithCount": "Share ({{count}})", "shareWithCount": "Bagikan ({{count}})",
"usersTab": "Users" "usersTab": "Pengguna"
} }
} }
} }
Loaded 100 of 560 files, more files were not shown because too many files have changed in this diff. Show more