Merge branch 'dev-2.9.1' into dev-26.10.0

# Conflicts:
#	package-lock.json
#	package.json
#	plugins/ai/locales/translated/af_ZA.json
#	plugins/ai/locales/translated/ar_SA.json
#	plugins/ai/locales/translated/bg_BG.json
#	plugins/ai/locales/translated/bn_BD.json
#	plugins/ai/locales/translated/ca_ES.json
#	plugins/ai/locales/translated/cs_CZ.json
#	plugins/ai/locales/translated/da_DK.json
#	plugins/ai/locales/translated/de_DE.json
#	plugins/ai/locales/translated/el_GR.json
#	plugins/ai/locales/translated/es_ES.json
#	plugins/ai/locales/translated/fi_FI.json
#	plugins/ai/locales/translated/fr_FR.json
#	plugins/ai/locales/translated/he_IL.json
#	plugins/ai/locales/translated/hi_IN.json
#	plugins/ai/locales/translated/hu_HU.json
#	plugins/ai/locales/translated/id_ID.json
#	plugins/ai/locales/translated/it_IT.json
#	plugins/ai/locales/translated/ja_JP.json
#	plugins/ai/locales/translated/ko_KR.json
#	plugins/ai/locales/translated/nl_NL.json
#	plugins/ai/locales/translated/no_NO.json
#	plugins/ai/locales/translated/pl_PL.json
#	plugins/ai/locales/translated/pt_BR.json
#	plugins/ai/locales/translated/pt_PT.json
#	plugins/ai/locales/translated/ro_RO.json
#	plugins/ai/locales/translated/ru_RU.json
#	plugins/ai/locales/translated/sr_SP.json
#	plugins/ai/locales/translated/sv_SE.json
#	plugins/ai/locales/translated/th_TH.json
#	plugins/ai/locales/translated/tr_TR.json
#	plugins/ai/locales/translated/uk_UA.json
#	plugins/ai/locales/translated/vi_VN.json
#	plugins/ai/locales/translated/zh_TW.json
This commit is contained in:
LukeGus committed 2026-10-04 17:34:09 -05:00
commit 6b91c3a460
996 files changed
+56245 -47648

No files matched your search

@@ -54,5 +54,8 @@
"request": "Versoek nou 'n sertifikaat",
"requesting": "Versoek sertifikaat...",
"issued": "Sertifikaat uitgereik en geïnstalleer"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "اطلب الشهادة الآن",
"requesting": "جارٍ طلب الشهادة...",
"issued": "تم إصدار الشهادة وتركيبها"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Заявете сертификат сега",
"requesting": "Заявка за сертификат...",
"issued": "Сертификат издаден и инсталиран"
},
"plugin": {
"name": "ACME Certificates"
}
}
+35 -32
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "ACME সার্টিফিকেটগুলি পরিচালনা করুন",
"description": "সার্টিফিকেটের অবস্থা দেখুন এবং এখনই একটি নতুন সার্টিফিকেটের জন্য অনুরোধ করুন।"
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "স্বয়ংক্রিয়ভাবে নবায়ন করুন",
"description": "দিনে দুইবার পরীক্ষা করুন এবং যখন কোনো সার্টিফিকেট থাকবে না, সেটি ডোমেইনকে কভার করবে না, অথবা ৩০ দিনের মধ্যে এর মেয়াদ শেষ হয়ে যাবে, তখন একটি নতুন সার্টিফিকেট সংগ্রহ করুন।"
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "ডোমেইন",
"description": "সার্টিফিকেটটির পাবলিক ডোমেইন নাম।",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "ইমেল",
"description": "ACME অ্যাকাউন্ট এবং মেয়াদ শেষ হওয়ার বিজ্ঞপ্তির জন্য যোগাযোগের ইমেল।",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "শংসাপত্র কর্তৃপক্ষ",
"description": "সার্টিফিকেটটি কোথা থেকে পাবেন। Let's Encrypt-এর রেট লিমিট অতিক্রম না করে পরীক্ষা করার জন্য স্টেজিং ব্যবহার করুন।",
"letsencrypt": "আসুন এনক্রিপ্ট করি",
"letsencryptStaging": "লেটস এনক্রিপ্ট (স্টেজিং)",
"custom": "কাস্টম ACME ডিরেক্টরি"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "ACME ডিরেক্টরি URL",
"description": "শুধুমাত্র কাস্টম সার্টিফিকেট অথরিটির জন্য। অবশ্যই একটি https URL হতে হবে।"
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "চ্যালেঞ্জের ধরণ",
"description": "ডোমেইনটির মালিকানা কীভাবে প্রমাণ করবেন।",
"http": "HTTP - এর জন্য ইন্টারনেট থেকে পোর্ট ৮০ অ্যাক্সেসযোগ্য হতে হবে।",
"cloudflare": "ডিএনএস (ক্লাউডফ্লেয়ার) - একটি ক্লাউডফ্লেয়ার এপিআই টোকেন প্রয়োজন"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "ক্লাউডফ্লেয়ার এপিআই টোকেন",
"description": "আপনার ডোমেনের জন্য Zone:DNS:Edit অনুমতিসহ স্কোপড টোকেন।"
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "সার্টিফিকেটের অবস্থা",
"none": "কোন সার্টিফিকেট নেই",
"names": "{{names}} কভার করে",
"issuer": "{{issuer}} দ্বারা জারি করা হয়েছে",
"expires": "মেয়াদ শেষ হবে {{date}}",
"lastIssued": "সর্বশেষ প্রকাশিত {{date}}",
"lastError": "শেষ চেষ্টা ব্যর্থ: {{error}}",
"missing": "সার্টিফিকেটের জন্য অনুরোধ করার আগে, ডোমেইন, ইমেল এবং আপনার চ্যালেঞ্জ টাইপের জন্য প্রয়োজনীয় ফিল্ডগুলো সেট করুন, তারপর সেভ করুন।",
"request": "এখনই সার্টিফিকেটের জন্য অনুরোধ করুন",
"requesting": "সার্টিফিকেটের জন্য অনুরোধ...",
"issued": "সার্টিফিকেট ইস্যু এবং ইনস্টল করা হয়েছে"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Sol·licita el certificat ara",
"requesting": "Sol·licitant certificat...",
"issued": "Certificat emès i instal·lat"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Vyžádejte si certifikát nyní",
"requesting": "Žádost o certifikát...",
"issued": "Certifikát vydán a nainstalován"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Anmod om certifikat nu",
"requesting": "Anmoder om certifikat...",
"issued": "Certifikat udstedt og installeret"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Zertifikat jetzt anfordern",
"requesting": "Zertifikat wird angefordert...",
"issued": "Zertifikat ausgestellt und installiert"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Ζητήστε πιστοποιητικό τώρα",
"requesting": "Αίτημα πιστοποιητικού...",
"issued": "Έκδοση και εγκατάσταση πιστοποιητικού"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Solicita tu certificado ahora",
"requesting": "Solicitando certificado...",
"issued": "Certificado emitido e instalado"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Pyydä todistus nyt",
"requesting": "Pyydetään varmennetta...",
"issued": "Sertifikaatti myönnetty ja asennettu"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Demandez votre certificat dès maintenant",
"requesting": "Demande de certificat en cours...",
"issued": "Certificat délivré et installé"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "בקשת תעודה עכשיו",
"requesting": "מבקש תעודה...",
"issued": "תעודה הונפקה והותקנה"
},
"plugin": {
"name": "ACME Certificates"
}
}
+26 -23
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "ACME प्रमाणपत्रों का प्रबंधन करें",
"description": "प्रमाणपत्र की स्थिति देखें और अभी नए प्रमाणपत्र के लिए अनुरोध करें।"
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "स्वचालित रूप से नवीनीकरण करें",
"description": "दिन में दो बार जांच करें और यदि कोई प्रमाणपत्र मौजूद नहीं है, या वह डोमेन को कवर नहीं करता है, या 30 दिनों के भीतर समाप्त हो रहा है, तो नया प्रमाणपत्र प्राप्त करें।"
},
"domain": {
"label": "डोमेन",
@@ -17,42 +17,45 @@
},
"email": {
"label": "ईमेल",
"description": "Contact email for the ACME account and expiry notices.",
"description": "ACME खाते और समाप्ति सूचनाओं के लिए संपर्क ईमेल पता।",
"placeholder": "admin@example.com"
},
"provider": {
"label": "प्रमाणपत्र प्राधिकरण",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"description": "सर्टिफिकेट कहां से प्राप्त करें। Let's Encrypt की दर सीमा का उल्लंघन किए बिना परीक्षण के लिए स्टेजिंग का उपयोग करें।",
"letsencrypt": "आइए एन्क्रिप्ट करें",
"letsencryptStaging": "लेट्स एनक्रिप्ट (चरणबद्ध)",
"custom": "कस्टम एसीएमई निर्देशिका"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "ACME निर्देशिका URL",
"description": "केवल कस्टम सर्टिफिकेट अथॉरिटी के लिए। यूआरएल HTTPS होना चाहिए।"
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "चुनौती का प्रकार",
"description": "आप डोमेन के मालिक होने का प्रमाण कैसे दे सकते हैं?",
"http": "HTTP - इसके लिए इंटरनेट से पोर्ट 80 तक पहुंच आवश्यक है।",
"cloudflare": "DNS (Cloudflare) - इसके लिए Cloudflare API टोकन की आवश्यकता होती है।"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "क्लाउडफ्लेयर एपीआई टोकन",
"description": "आपके डोमेन के लिए Zone:DNS:Edit अनुमति वाला स्कोप्ड टोकन।"
}
},
"status": {
"title": "Certificate status",
"title": "प्रमाणपत्र की स्थिति",
"none": "कोई प्रमाणपत्र नहीं",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "कवर {{names}}",
"issuer": "{{issuer}} द्वारा जारी किया गया",
"expires": "{{date}} को समाप्त होगा",
"lastIssued": "अंतिम जारी: {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "अंतिम प्रयास विफल रहा: {{error}}",
"missing": "डोमेन, ईमेल और आपके चैलेंज टाइप के लिए आवश्यक फ़ील्ड सेट करें, फिर प्रमाणपत्र का अनुरोध करने से पहले सेव करें।",
"request": "अभी प्रमाणपत्र का अनुरोध करें",
"requesting": "प्रमाणपत्र अनुरोध किया जा रहा है...",
"issued": "Certificate issued and installed"
"issued": "प्रमाणपत्र जारी और स्थापित किया गया"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Igényeljen tanúsítványt most",
"requesting": "Tanúsítvány kérése...",
"issued": "Tanúsítvány kiállítva és telepítve"
},
"plugin": {
"name": "ACME Certificates"
}
}
+34 -31
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Kelola sertifikat ACME",
"description": "Lihat status sertifikat dan ajukan permohonan sertifikat baru sekarang."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Perpanjang secara otomatis",
"description": "Periksa dua kali sehari dan dapatkan sertifikat baru jika tidak ada, tidak mencakup domain, atau akan kedaluwarsa dalam 30 hari."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"description": "Nama domain publik untuk sertifikat tersebut.",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "E-mail",
"description": "Alamat email kontak untuk akun ACME dan pemberitahuan masa berlaku.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Lembaga sertifikasi",
"description": "Di mana mendapatkan sertifikat? Gunakan staging untuk pengujian tanpa melampaui batas kuota Let's Encrypt.",
"letsencrypt": "Mari Enkripsi",
"letsencryptStaging": "Let's Encrypt (pementasan)",
"custom": "Direktori ACME khusus"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL direktori ACME",
"description": "Hanya untuk otoritas sertifikat khusus. Harus berupa URL https."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Jenis tantangan",
"description": "Bagaimana cara membuktikan bahwa Anda pemilik domain tersebut.",
"http": "HTTP - memerlukan port 80 yang dapat diakses dari internet.",
"cloudflare": "DNS (Cloudflare) - memerlukan token API Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Token API Cloudflare",
"description": "Token terlingkup dengan izin Zone:DNS:Edit untuk domain Anda."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Status sertifikat",
"none": "Tidak ada sertifikat",
"names": "Sampul {{names}}",
"issuer": "Dikeluarkan oleh {{issuer}}",
"expires": "Berakhir {{date}}",
"lastIssued": "Terakhir diterbitkan {{date}}",
"lastError": "Upaya terakhir gagal: {{error}}",
"missing": "Atur domain, email, dan kolom yang dibutuhkan oleh tipe tantangan Anda, lalu simpan, sebelum meminta sertifikat.",
"request": "Ajukan sertifikat sekarang",
"requesting": "Meminta sertifikat...",
"issued": "Sertifikat telah diterbitkan dan dipasang."
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Richiedi subito il certificato",
"requesting": "Richiesta certificato in corso...",
"issued": "Certificato rilasciato e installato"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "今すぐ証明書を申請する",
"requesting": "証明書をリクエスト中...",
"issued": "証明書が発行され、インストールされました。"
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "지금 인증서를 요청하세요",
"requesting": "인증서 요청 중...",
"issued": "인증서가 발급 및 설치되었습니다."
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Vraag nu uw certificaat aan",
"requesting": "Certificaat aanvragen...",
"issued": "Certificaat afgegeven en geïnstalleerd"
},
"plugin": {
"name": "ACME Certificates"
}
}
+34 -31
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Administrer ACME-sertifikater",
"description": "Se sertifikatstatusen og be om et nytt sertifikat nå."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Forny automatisk",
"description": "Sjekk to ganger om dagen og få et nytt sertifikat når det ikke finnes noe, det ikke dekker domenet, eller det utløper innen 30 dager."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "Domene",
"description": "Det offentlige domenenavnet for sertifikatet.",
"placeholder": "termix.example.com"
},
"email": {
"label": "E-post",
"description": "Contact email for the ACME account and expiry notices.",
"description": "Kontakt-e-postadresse for ACME-kontoen og utløpsvarsler.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Sertifikatmyndighet",
"description": "Hvor får man tak i sertifikatet? Bruk staging for å teste uten å nå hastighetsgrensene til Let's Encrypt.",
"letsencrypt": "La oss kryptere",
"letsencryptStaging": "La oss kryptere (staging)",
"custom": "Tilpasset ACME-katalog"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL-adressen til ACME-katalogen",
"description": "Kun for en tilpasset sertifiseringsinstans. Må være en https-URL."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Utfordringstype",
"description": "Hvordan bevise at du eier domenet.",
"http": "HTTP - trenger port 80 som kan nås fra internett",
"cloudflare": "DNS (Cloudflare) – trenger et Cloudflare API-token"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Cloudflare API-token",
"description": "Scope-token med Zone:DNS:Rediger-tillatelse for domenet ditt."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Sertifikatstatus",
"none": "Ingen sertifikat",
"names": "Omslag {{names}}",
"issuer": "Utstedt av {{issuer}}",
"expires": "Utløper {{date}}",
"lastIssued": "Sist utstedt {{date}}",
"lastError": "Siste forsøk mislyktes: {{error}}",
"missing": "Angi domenet, e-postadressen og feltene utfordringstypen din trenger, og lagre deretter før du ber om et sertifikat.",
"request": "Be om sertifikat nå",
"requesting": "Ber om sertifikat...",
"issued": "Sertifikat utstedt og installert"
},
"plugin": {
"name": "ACME Certificates"
}
}
+26 -23
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Zarządzaj certyfikatami ACME",
"description": "Sprawdź status certyfikatu i poproś o nowy certyfikat już teraz."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Odnów automatycznie",
"description": "Sprawdzaj dwa razy dziennie i wykup nowy certyfikat, jeśli go nie masz, nie obejmuje on tej domeny lub wygasa w ciągu 30 dni."
},
"domain": {
"label": "Domena",
@@ -17,42 +17,45 @@
},
"email": {
"label": "E-mail",
"description": "Contact email for the ACME account and expiry notices.",
"description": "Adres e-mail kontaktowy do konta ACME i powiadomień o wygaśnięciu.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Urząd certyfikacji (CA)",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"description": "Gdzie uzyskać certyfikat? Użyj środowiska testowego do testowania bez przekraczania limitów przepustowości Let's Encrypt.",
"letsencrypt": "Szyfrujmy",
"letsencryptStaging": "Let's Encrypt (etap przygotowawczy)",
"custom": "Niestandardowy katalog ACME"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "Adres URL katalogu ACME",
"description": "Tylko dla niestandardowego urzędu certyfikacji. Adres URL musi być w formacie https."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Typ wyzwania",
"description": "Jak udowodnić, że jesteś właścicielem domeny.",
"http": "HTTP - wymaga dostępu do portu 80 z Internetu",
"cloudflare": "DNS (Cloudflare) – wymaga tokenu API Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "Token API Cloudflare",
"description": "Token zakresowy z uprawnieniem Zone:DNS:Edit dla Twojej domeny."
}
},
"status": {
"title": "Certificate status",
"title": "Status certyfikatu",
"none": "Brak certyfikatu",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "Obejmuje {{names}}",
"issuer": "Wydane przez {{issuer}}",
"expires": "Wygasa {{date}}",
"lastIssued": "Ostatnio wystawiono {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "Ostatnia próba nieudana: {{error}}",
"missing": "Ustaw domenę, adres e-mail i pola, których wymaga Twój typ wyzwania, a następnie zapisz, zanim poprosisz o certyfikat.",
"request": "Złóż wniosek o certyfikat już teraz",
"requesting": "Żądanie certyfikatu...",
"issued": "Certificate issued and installed"
"issued": "Certyfikat wydany i zainstalowany"
},
"plugin": {
"name": "ACME Certificates"
}
}
+35 -32
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Gerenciar certificados ACME",
"description": "Veja o status do certificado e solicite um novo agora mesmo."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Renovar automaticamente",
"description": "Verifique duas vezes ao dia e obtenha um novo certificado quando não houver nenhum, se ele não cobrir o domínio ou se expirar em 30 dias."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "Domínio",
"description": "O nome de domínio público do certificado.",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "E-mail",
"description": "E-mail de contato para a conta ACME e avisos de vencimento.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Autoridade certificadora",
"description": "Onde obter o certificado. Use o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.",
"letsencrypt": "Vamos criptografar",
"letsencryptStaging": "Let's Encrypt (em fase de testes)",
"custom": "Diretório ACME personalizado"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL do diretório ACME",
"description": "Somente para uma autoridade de certificação personalizada. Deve ser um URL https."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Tipo de desafio",
"description": "Como comprovar que você é o proprietário do domínio.",
"http": "HTTP - requer que a porta 80 esteja acessível pela internet.",
"cloudflare": "DNS (Cloudflare) - requer um token de API do Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Token da API Cloudflare",
"description": "Token com escopo definido e permissão Zone:DNS:Edit para o seu domínio."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Status do certificado",
"none": "Sem certificado",
"names": "Capas {{names}}",
"issuer": "Emitido por {{issuer}}",
"expires": "Expira em {{date}}",
"lastIssued": "Última edição {{date}}",
"lastError": "Última tentativa falhou: {{error}}",
"missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e salve as alterações antes de solicitar um certificado.",
"request": "Solicite o certificado agora",
"requesting": "Solicitar certificado...",
"issued": "Certificado emitido e instalado."
},
"plugin": {
"name": "ACME Certificates"
}
}
+26 -23
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Gerir certificados ACME",
"description": "Veja o estado do certificado e solicite um novo agora mesmo."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Renovar automaticamente",
"description": "Verifique duas vezes por dia e obtenha um novo certificado quando não houver nenhum, se não cobrir o domínio ou se expirar dentro de 30 dias."
},
"domain": {
"label": "Domínio",
@@ -17,42 +17,45 @@
},
"email": {
"label": "E-mail",
"description": "Contact email for the ACME account and expiry notices.",
"description": "E-mail de contacto para a conta ACME e avisos de vencimento.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Autoridade de certificação",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"description": "Onde obter o certificado. Utilize o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.",
"letsencrypt": "Vamos encriptar",
"letsencryptStaging": "Let's Encrypt (em fase de testes)",
"custom": "Diretório ACME personalizado"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL do diretório ACME",
"description": "Apenas para uma autoridade de certificação personalizada. Deve ser um URL https."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Tipo de desafio",
"description": "Como comprovar que é o proprietário do domínio.",
"http": "HTTP - requer que a porta 80 esteja acessível através da internet.",
"cloudflare": "DNS (Cloudflare) - requer um token API do Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "Token da API Cloudflare",
"description": "Token com âmbito e permissão Zone:DNS:Edit para o seu domínio."
}
},
"status": {
"title": "Certificate status",
"title": "Estado do certificado",
"none": "Sem certificado",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "Capas {{names}}",
"issuer": "Emitido por {{issuer}}",
"expires": "Expira a {{date}}",
"lastIssued": "Última emissão a {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "Última tentativa falhada: {{error}}",
"missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e guarde as alterações antes de solicitar um certificado.",
"request": "Solicite já o certificado",
"requesting": "A solicitar certificado...",
"issued": "Certificate issued and installed"
"issued": "Certificado emitido e instalado."
},
"plugin": {
"name": "ACME Certificates"
}
}
@@ -54,5 +54,8 @@
"request": "Solicitați certificatul acum",
"requesting": "Se solicită certificatul...",
"issued": "Certificat emis și instalat"
},
"plugin": {
"name": "ACME Certificates"
}
}
+25 -22
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Управление сертификатами ACME",
"description": "Проверьте статус сертификата и запросите новый сертификат прямо сейчас."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Автоматическое продление",
"description": "Проверяйте дважды в день и получайте новый сертификат, если его нет, если он не покрывает домен или если срок действия старого истекает в течение 30 дней."
},
"domain": {
"label": "Домен",
@@ -17,42 +17,45 @@
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"description": "Адрес электронной почты, указанный в учетной записи ACME, для получения уведомлений об истечении срока действия.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Центр сертификации",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"description": "Где получить сертификат. Используйте тестовую среду (staging) для проверки без превышения лимитов запросов Let's Encrypt.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"letsencryptStaging": "Let's Encrypt (тестовая версия)",
"custom": "Пользовательский каталог ACME"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL-адрес каталога ACME",
"description": "Только для пользовательского центра сертификации. URL-адрес должен быть HTTPS."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Тип задачи",
"description": "Как доказать, что вы являетесь владельцем домена.",
"http": "HTTP — требуется доступ к порту 80 из интернета.",
"cloudflare": "DNS (Cloudflare) — требуется токен API Cloudflare."
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "API-токен Cloudflare",
"description": "Токен с ограниченной областью действия и разрешением Zone:DNS:Edit для вашего домена."
}
},
"status": {
"title": "Certificate status",
"title": "Статус сертификата",
"none": "Сертификат отсутствует",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "Обложки {{names}}",
"issuer": "Выпущено {{issuer}}",
"expires": "Истекает {{date}}",
"lastIssued": "Последний выпуск {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "Последняя попытка не удалась: {{error}}",
"missing": "Укажите домен, адрес электронной почты и поля, необходимые для типа проверки подлинности, затем сохраните изменения, прежде чем запрашивать сертификат.",
"request": "Запросить сертификат сейчас",
"requesting": "Запрос сертификата...",
"issued": "Certificate issued and installed"
"issued": "Сертификат выдан и установлен."
},
"plugin": {
"name": "ACME Certificates"
}
}
+35 -32
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Управљање ACME сертификатима",
"description": "Погледајте статус сертификата и одмах затражите нови сертификат."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Аутоматски обнови",
"description": "Проверавајте два пута дневно и набавите нови сертификат када га нема, када не покрива домен или када истиче у року од 30 дана."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "Домен",
"description": "Јавно име домена за сертификат.",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "Е-пошта",
"description": "Контакт имејл за ACME налог и обавештења о истеку.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Сертификатски ауторитет",
"description": "Где добити сертификат. Користите припрему за тестирање без достизања ограничења брзине Let's Encrypt-а.",
"letsencrypt": "Хајде да шифрујемо",
"letsencryptStaging": "Хајде да шифрујемо (припрема)",
"custom": "Прилагођени ACME директоријум"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL ACME директоријума",
"description": "Само за прилагођени ауторитет за сертификате. Мора бити https URL."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Тип изазова",
"description": "Како доказати да сте власник домена.",
"http": "HTTP - потребан је порт 80 доступан са интернета",
"cloudflare": "DNS (Cloudflare) - потребан је Cloudflare API токен"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Клаудфлејр АПИ токен",
"description": "Ограничени токен са дозволом Zone:DNS:Edit за ваш домен."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Статус сертификата",
"none": "Без сертификата",
"names": "Навлаке {{names}}",
"issuer": "Издао/ла {{issuer}}",
"expires": "Истиче {{date}}",
"lastIssued": "Последње издање {{date}}",
"lastError": "Последњи покушај није успео: {{error}}",
"missing": "Подесите домен, имејл адресу и поља која су потребна вашем типу изазова, а затим сачувајте подешавања пре него што затражите сертификат.",
"request": "Затражите сертификат сада",
"requesting": "Захтева се сертификат...",
"issued": "Сертификат издат и инсталиран"
},
"plugin": {
"name": "ACME Certificates"
}
}
+35 -32
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Hantera ACME-certifikat",
"description": "Se certifikatets status och begär ett nytt certifikat nu."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Förnya automatiskt",
"description": "Kontrollera två gånger om dagen och skaffa ett nytt certifikat om det inte finns något, om det inte täcker domänen eller om det löper ut inom 30 dagar."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "Domän",
"description": "Det offentliga domännamnet för certifikatet.",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "E-post",
"description": "Kontakta e-postadressen för ACME-kontot och meddelanden om utgångsdatum.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Certifikatutfärdare",
"description": "Var man kan hämta certifikatet. Använd staging för att testa utan att nå hastighetsgränserna för Let's Encrypt.",
"letsencrypt": "Låt oss kryptera",
"letsencryptStaging": "Låt oss kryptera (staging)",
"custom": "Anpassad ACME-katalog"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "ACME-katalogens URL",
"description": "Endast för en anpassad certifikatutfärdare. Måste vara en https-URL."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Utmaningstyp",
"description": "Hur man bevisar att man äger domänen.",
"http": "HTTP - behöver port 80 som kan nås från internet",
"cloudflare": "DNS (Cloudflare) - behöver en Cloudflare API-token"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Cloudflare API-token",
"description": "Scoped-token med Zone:DNS:Edit-behörighet för din domän."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Certifikatstatus",
"none": "Inget certifikat",
"names": "Omslag {{names}}",
"issuer": "Utfärdad av {{issuer}}",
"expires": "Utgångsdatum {{date}}",
"lastIssued": "Senast utfärdad {{date}}",
"lastError": "Senaste försöket misslyckades: {{error}}",
"missing": "Ange domän, e-postadress och de fält som din utmaningstyp behöver, spara sedan innan du begär ett certifikat.",
"request": "Begär certifikat nu",
"requesting": "Begär certifikat...",
"issued": "Certifikat utfärdat och installerat"
},
"plugin": {
"name": "ACME Certificates"
}
}
+36 -33
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "จัดการใบรับรอง ACME",
"description": "ตรวจสอบสถานะใบรับรองและขอใบรับรองใหม่ได้เลยตอนนี้"
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "ต่ออายุอัตโนมัติ",
"description": "ตรวจสอบวันละสองครั้ง และขอใบรับรองใหม่เมื่อไม่มีใบรับรอง หากใบรับรองไม่ครอบคลุมโดเมน หรือหากใบรับรองหมดอายุภายใน 30 วัน"
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"placeholder": "termix.example.com"
"label": "โดเมน",
"description": "ชื่อโดเมนสาธารณะสำหรับใบรับรอง",
"placeholder": "เทอร์มิกซ์.ตัวอย่าง.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "อีเมล",
"description": "อีเมลสำหรับติดต่อเพื่อรับข้อมูลเกี่ยวกับบัญชี ACME และประกาศแจ้งเตือนวันหมดอายุ",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "หน่วยงานออกใบรับรอง",
"description": "จะขอรับใบรับรองได้จากที่ไหน ใช้ระบบทดสอบ (staging) เพื่อทดสอบโดยไม่ให้เกินขีดจำกัดการใช้งานของ Let's Encrypt",
"letsencrypt": "เลทส์ เอนคริปท์",
"letsencryptStaging": "Let's Encrypt (รุ่นทดสอบ)",
"custom": "ไดเร็กทอรี ACME แบบกำหนดเอง"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL ของไดเร็กทอรี ACME",
"description": "ใช้ได้เฉพาะกับหน่วยงานออกใบรับรองที่กำหนดเองเท่านั้น ต้องเป็น URL ที่ใช้ HTTPS"
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "ประเภทความท้าทาย",
"description": "วิธีพิสูจน์ว่าคุณเป็นเจ้าของโดเมน",
"http": "HTTP - ต้องมีพอร์ต 80 ที่สามารถเข้าถึงได้จากอินเทอร์เน็ต",
"cloudflare": "DNS (Cloudflare) - ต้องใช้โทเค็น API ของ Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "โทเค็น API ของ Cloudflare",
"description": "โทเค็นแบบจำกัดขอบเขตพร้อมสิทธิ์ Zone:DNS:Edit สำหรับโดเมนของคุณ"
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "สถานะใบรับรอง",
"none": "ไม่มีใบรับรอง",
"names": "ปก {{names}}",
"issuer": "ออกโดย {{issuer}}",
"expires": "หมดอายุ {{date}}",
"lastIssued": "ออกครั้งล่าสุด {{date}}",
"lastError": "ความพยายามครั้งล่าสุดล้มเหลว: {{error}}",
"missing": "ตั้งค่าโดเมน อีเมล และข้อมูลที่จำเป็นสำหรับประเภทการตรวจสอบสิทธิ์ของคุณ จากนั้นบันทึกก่อนที่จะขอใบรับรอง",
"request": "ขอใบรับรองตอนนี้",
"requesting": "ขอใบรับรอง...",
"issued": "ออกและติดตั้งใบรับรองแล้ว"
},
"plugin": {
"name": "ACME Certificates"
}
}
+25 -22
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "ACME sertifikalarını yönetin",
"description": "Sertifika durumunu kontrol edin ve şimdi yeni bir sertifika talep edin."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Otomatik olarak yenile",
"description": "Sertifikayı günde iki kez kontrol edin ve yoksa, alan adını kapsamıyorsa veya 30 gün içinde süresi dolacaksa yenisini alın."
},
"domain": {
"label": "Alan Adı",
@@ -17,42 +17,45 @@
},
"email": {
"label": "E-posta",
"description": "Contact email for the ACME account and expiry notices.",
"description": "ACME hesabı ve sona erme bildirimleri için iletişim e-posta adresi.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Sertifika yetkilisi",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"description": "Sertifikayı nereden alabilirsiniz? Let's Encrypt'in hız sınırlamalarına takılmadan test etmek için hazırlık ortamını kullanın.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"letsencryptStaging": "Let's Encrypt (test aşaması)",
"custom": "Özel ACME dizini"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "ACME dizin URL'si",
"description": "Yalnızca özel sertifika yetkilisi için geçerlidir. HTTPS URL'si olmalıdır."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Meydan okuma türü",
"description": "Alan adının size ait olduğunu nasıl kanıtlayabilirsiniz?",
"http": "HTTP - internetten erişilebilir 80 numaralı porta ihtiyaç duyar.",
"cloudflare": "DNS (Cloudflare) - Cloudflare API belirteci gerektirir."
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "Cloudflare API belirteci",
"description": "Alan adınız için Zone:DNS:Edit iznine sahip kapsamlı belirteç."
}
},
"status": {
"title": "Certificate status",
"title": "Sertifika durumu",
"none": "Sertifika yok",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "Kapaklar {{names}}",
"issuer": "{{issuer}} tarafından yayınlandı",
"expires": "Son kullanma: {{date}}",
"lastIssued": "Son veriliş: {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "Son deneme başarısız oldu: {{error}}",
"missing": "Sertifika talebinde bulunmadan önce etki alanını, e-postayı ve doğrulama türünüzün gerektirdiği alanları ayarlayın, ardından kaydedin.",
"request": "Şimdi sertifika talep edin",
"requesting": "Sertifika isteniyor...",
"issued": "Certificate issued and installed"
"issued": "Sertifika düzenlendi ve kuruldu."
},
"plugin": {
"name": "ACME Certificates"
}
}
+35 -32
View File
@@ -1,58 +1,61 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Керування сертифікатами ACME",
"description": "Перегляньте статус сертифіката та запросіть новий сертифікат зараз."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Автоматичне поновлення",
"description": "Перевіряйте двічі на день та отримуйте новий сертифікат, коли його немає, він не поширюється на домен або термін його дії закінчується протягом 30 днів."
},
"domain": {
"label": "Domain",
"description": "The public domain name for the certificate.",
"label": "Домен",
"description": "Ім'я публічного домену для сертифіката.",
"placeholder": "termix.example.com"
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"label": "Електронна пошта",
"description": "Контактна електронна адреса для облікового запису ACME та повідомлень про закінчення терміну дії.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Certificate authority",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"label": "Центр сертифікації",
"description": "Де отримати сертифікат. Використовуйте проміжну версію для тестування без перевищення обмежень швидкості Let's Encrypt.",
"letsencrypt": "Давайте зашифруємо",
"letsencryptStaging": "Давайте зашифруємо (підготовка)",
"custom": "Користувацький каталог ACME"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL-адреса каталогу ACME",
"description": "Тільки для власного центру сертифікації. Має бути URL-адреса https."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Тип виклику",
"description": "Як довести, що ви є власником домену.",
"http": "HTTP – потрібен порт 80, доступний з Інтернету",
"cloudflare": "DNS (Cloudflare) – потрібен токен API Cloudflare"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
"label": "Токен API Cloudflare",
"description": "Токен з обмеженою областю дії та дозволом Zone:DNS:Edit для вашого домену."
}
},
"status": {
"title": "Certificate status",
"none": "No certificate",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"expires": "Expires {{date}}",
"lastIssued": "Last issued {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"requesting": "Requesting certificate...",
"issued": "Certificate issued and installed"
"title": "Статус сертифіката",
"none": "Без сертифіката",
"names": "Обкладинки {{names}}",
"issuer": "Видано {{issuer}}",
"expires": "Термін дії закінчується {{date}}",
"lastIssued": "Останній виданий {{date}}",
"lastError": "Остання спроба не вдалася: {{error}}",
"missing": "Вкажіть домен, електронну пошту та поля, необхідні для вашого типу завдання, а потім збережіть зміни, перш ніж запитувати сертифікат.",
"request": "Замовити сертифікат зараз",
"requesting": "Запит сертифіката...",
"issued": "Сертифікат видано та встановлено"
},
"plugin": {
"name": "ACME Certificates"
}
}
+26 -23
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "Quản lý chứng chỉ ACME",
"description": "Xem trạng thái chứng chỉ và yêu cầu chứng chỉ mới ngay bây giờ."
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "Tự động gia hạn",
"description": "Hãy kiểm tra hai lần một ngày và lấy chứng chỉ mới nếu chứng chỉ hiện không có, không bao phủ tên miền hoặc hết hạn trong vòng 30 ngày."
},
"domain": {
"label": "Tên miền",
@@ -17,42 +17,45 @@
},
"email": {
"label": "Email",
"description": "Contact email for the ACME account and expiry notices.",
"description": "Địa chỉ email liên hệ cho tài khoản ACME và thông báo hết hạn.",
"placeholder": "admin@example.com"
},
"provider": {
"label": "Cơ quan chứng thực",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"description": "Lấy chứng chỉ ở đâu? Sử dụng môi trường thử nghiệm để kiểm tra mà không vượt quá giới hạn số lượng yêu cầu của Let's Encrypt.",
"letsencrypt": "Hãy mã hóa",
"letsencryptStaging": "Let's Encrypt (phiên bản thử nghiệm)",
"custom": "Danh mục ACME tùy chỉnh"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "URL thư mục ACME",
"description": "Chỉ dành cho cơ quan cấp chứng chỉ tùy chỉnh. Phải là URL HTTPS."
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "Loại thử thách",
"description": "Cách chứng minh bạn sở hữu tên miền.",
"http": "HTTP - cần cổng 80 có thể truy cập được từ internet",
"cloudflare": "DNS (Cloudflare) - cần mã thông báo API của Cloudflare."
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "Mã thông báo API Cloudflare",
"description": "Token có phạm vi với quyền Zone:DNS:Edit cho tên miền của bạn."
}
},
"status": {
"title": "Certificate status",
"title": "Trạng thái chứng chỉ",
"none": "Không có chứng chỉ",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "Ảnh bìa {{names}}",
"issuer": "Được phát hành bởi {{issuer}}",
"expires": "Hết hạn {{date}}",
"lastIssued": "Cấp lần cuối {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "Lần thử cuối cùng thất bại: {{error}}",
"missing": "Hãy thiết lập tên miền, email và các trường thông tin mà loại thử thách của bạn yêu cầu, sau đó lưu lại trước khi yêu cầu chứng chỉ.",
"request": "Yêu cầu chứng chỉ ngay bây giờ",
"requesting": "Đang yêu cầu chứng chỉ...",
"issued": "Certificate issued and installed"
"issued": "Giấy chứng nhận đã được cấp và cài đặt"
},
"plugin": {
"name": "ACME Certificates"
}
}
+17 -17
View File
@@ -7,8 +7,8 @@
},
"settings": {
"autoRenew": {
"label": "自动续期",
"description": "每天检查两次。在没有证书、证书未覆盖域名或将在 30 天内过期时申请新证书。"
"label": "自动续订",
"description": "每天检查两次,如果没有证书、证书不涵盖该域名或证书将在 30 天内过期,则获取新证书。"
},
"domain": {
"label": "域名",
@@ -17,25 +17,25 @@
},
"email": {
"label": "邮箱",
"description": "用于 ACME 账户和到期通知的联系邮箱。",
"description": "ACME账户及到期通知的联系邮箱。",
"placeholder": "admin@example.com"
},
"provider": {
"label": "证书颁发机构",
"description": "证书申请来源。测试时使用测试环境,以免触发 Let's Encrypt 频率限制。",
"description": "证书获取途径。使用测试环境进行测试,避免超出 Let's Encrypt 的速率限制。",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt(测试环境)",
"letsencryptStaging": "Let's Encrypt(测试版)",
"custom": "自定义 ACME 目录"
},
"directoryUrl": {
"label": "ACME 目录 URL",
"description": "仅用于自定义证书颁发机构,必须为 HTTPS URL。"
"label": "ACME目录URL",
"description": "仅适用于自定义证书颁发机构。必须是 https URL。"
},
"challengeType": {
"label": "验证类型",
"description": "用于证明域名所有权的方式。",
"http": "HTTP:需要互联网能够访问端口 80",
"cloudflare": "DNS(Cloudflare):需要 Cloudflare API 令牌"
"label": "挑战类型",
"description": "如何证明您拥有该域名。",
"http": "HTTP协议需要可通过互联网访问的80端口。",
"cloudflare": "DNS(Cloudflare)——需要 Cloudflare API 令牌"
},
"cloudflareToken": {
"label": "Cloudflare API 令牌",
@@ -45,17 +45,17 @@
"status": {
"title": "证书状态",
"none": "无证书",
"names": "覆盖域名:{{names}}",
"issuer": "签发者:{{issuer}}",
"names": "封面 {{names}}",
"issuer": "由 {{issuer}} 发行",
"expires": "过期于 {{date}}",
"lastIssued": "上次签发于 {{date}}",
"lastError": "上次尝试失败:{{error}}",
"missing": "请先设置域名、邮箱及所选验证方式需要的字段,保存后再申请证书。",
"lastError": "最后一次尝试失败: {{error}}",
"missing": "设置域名、电子邮件和您的质询类型所需的字段,然后保存,再申请证书。",
"request": "立即申请证书",
"requesting": "正在请求证书...",
"issued": "证书已签发并安装"
"issued": "证书已颁发并安装"
},
"plugin": {
"name": "ACME 证书"
"name": "ACME Certificates"
}
}
+25 -22
View File
@@ -1,14 +1,14 @@
{
"permissions": {
"manage": {
"title": "Manage ACME certificates",
"description": "See the certificate status and request a new certificate now."
"title": "管理 ACME 證書",
"description": "查看證書狀態並立即申請新證書。"
}
},
"settings": {
"autoRenew": {
"label": "Renew automatically",
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
"label": "自動續訂",
"description": "每天檢查兩次,如果沒有證書、證書不涵蓋該網域或證書將在 30 天內過期,則取得新證書。"
},
"domain": {
"label": "網域",
@@ -17,42 +17,45 @@
},
"email": {
"label": "電子郵件",
"description": "Contact email for the ACME account and expiry notices.",
"description": "ACME帳戶及到期通知的聯絡信箱。",
"placeholder": "admin@example.com"
},
"provider": {
"label": "憑證授權中心",
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
"description": "證書取得途徑。使用測試環境進行測試,避免超出 Let's Encrypt 的速率限制。",
"letsencrypt": "Let's Encrypt",
"letsencryptStaging": "Let's Encrypt (staging)",
"custom": "Custom ACME directory"
"letsencryptStaging": "Let's Encrypt(測試版)",
"custom": "自訂 ACME 目錄"
},
"directoryUrl": {
"label": "ACME directory URL",
"description": "Only for a custom certificate authority. Must be an https URL."
"label": "ACME目錄URL",
"description": "僅適用於自訂憑證授權單位。必須是 https URL。"
},
"challengeType": {
"label": "Challenge type",
"description": "How to prove you own the domain.",
"http": "HTTP - needs port 80 reachable from the internet",
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
"label": "挑戰類型",
"description": "如何證明您擁有該網域。",
"http": "HTTP協定需要80個可透過網際網路存取的連接埠。",
"cloudflare": "DNS(Cloudflare)-需要 Cloudflare API 令牌"
},
"cloudflareToken": {
"label": "Cloudflare API token",
"label": "Cloudflare API 令牌",
"description": "具有您網域 Zone:DNS:Edit 權限的限定範圍權杖。"
}
},
"status": {
"title": "Certificate status",
"title": "證書狀態",
"none": "無憑證",
"names": "Covers {{names}}",
"issuer": "Issued by {{issuer}}",
"names": "封面 {{names}}",
"issuer": "由 {{issuer}} 發行",
"expires": "到期日 {{date}}",
"lastIssued": "上次簽發日期 {{date}}",
"lastError": "Last attempt failed: {{error}}",
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
"request": "Request certificate now",
"lastError": "最後嘗試失敗: {{error}}",
"missing": "設定網域名稱、電子郵件和您的質詢類型所需的字段,然後儲存,再申請憑證。",
"request": "立即申請證書",
"requesting": "請求憑證中...",
"issued": "Certificate issued and installed"
"issued": "證書已頒發並安裝"
},
"plugin": {
"name": "ACME Certificates"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+86 -83
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "সহকারী ব্যবহার করুন",
"description": "অ্যাসিস্ট্যান্টটি খুলুন এবং এটিকে বিভিন্ন জিনিস জিজ্ঞাসা করুন।"
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "সরবরাহকারীদের পরিচালনা করুন",
"description": "এআই প্রোভাইডার এবং তাদের এপিআই কীগুলো যোগ, সম্পাদনা ও অপসারণ করুন।"
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "প্রস্তাবগুলি প্রয়োগ করুন",
"description": "সহকারীকে তার প্রস্তাবিত পরিবর্তনগুলো কার্যকর করতে দিন।"
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "অন্যান্য বৈশিষ্ট্য থেকে এআই ব্যবহার করুন",
"description": "অন্যান্য বৈশিষ্ট্য আপনার পক্ষ থেকে সহকারীকে ডাকতে পারে।"
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "এপিআই কী শেয়ার করুন",
"description": "অন্যান্য ফিচারগুলো সংরক্ষিত এআই এপিআই কী-টি না দেখেই ব্যবহার করতে পারে।"
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "এই সার্ভারে এআই অ্যাসিস্ট্যান্ট বন্ধ করা আছে।",
"providersNeedOptIn": "প্রোভাইডার যোগ করতে উপরের এআই অ্যাসিস্ট্যান্টটি চালু করুন।",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "এআই সহকারী",
"description": "ব্যবহারকারীদের এআই অ্যাসিস্ট্যান্ট চালু করার সুযোগ দিন। এটি বন্ধ থাকা অবস্থায়, অ্যাসিস্ট্যান্টটি সকলের জন্য লুকানো এবং ব্লক করা থাকবে।"
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "ব্যক্তিগত এআই হোস্ট অনুমোদিত",
"description": "আপনার প্রাইভেট নেটওয়ার্কে এমন হোস্ট রাখুন, যেগুলোকে ব্যবহারকারীরা কোনো প্রোভাইডারের দিকে নির্দেশ করতে পারে, যেমন একটি সেলফ-হোস্টেড ওলামা। প্রতিটি লাইনে একটি করে হোস্ট রাখুন।"
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
"description": "এই হোস্টের টার্মিনালে সাহায্য করার জন্য এআই অ্যাসিস্ট্যান্টকে অনুমতি দিন। এটি ডিফল্টরূপে বন্ধ থাকে এবং আপনার অ্যাকাউন্টের জন্য এআই চালু করা প্রয়োজন।"
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"title": "সহকারী",
"send": "পাঠান",
"stop": "থামুন",
"save": "সংরক্ষণ করুন",
"cancel": "বাতিল করুন",
"running": "দৌড়ানো",
"approve": "অনুমোদন করুন",
"reject": "প্রত্যাখ্যান করুন",
"inputPlaceholder": "আপনার সার্ভারগুলো সম্পর্কে জিজ্ঞাসা করুন, অথবা কোনো পরিবর্তনের প্রস্তাব বর্ণনা করুন।",
"selectProvider": "একজন সরবরাহকারী নির্বাচন করুন",
"providerSettings": "প্রদানকারীর সেটিংস",
"addProvider": "প্রদানকারী যোগ করুন",
"editProvider": "সম্পাদনা প্রদানকারী",
"removeProvider": "প্রদানকারীকে অপসারণ করুন",
"providerType": "সরবরাহকারী",
"providerLabel": "নাম",
"providerLabelPlaceholder": "উদাহরণস্বরূপ: স্থানীয় ওলামা",
"baseUrl": "সার্ভারের ঠিকানা",
"apiKey": "এপিআই কী",
"defaultModel": "ডিফল্ট মডেল",
"defaultModelPlaceholder": "উদাহরণস্বরূপ: llama3.1 অথবা claude-opus-5",
"labelRequired": "এই সরবরাহকারীকে একটি নাম দিন",
"providerSaveFailed": "প্রদানকারীকে সংরক্ষণ করা যায়নি",
"providerUpdated": "প্রদানকারী আপডেট করেছেন",
"providerDeleteFailed": "প্রদানকারীকে সরানো যায়নি",
"privateEndpointHint": "আপনার ব্যক্তিগত নেটওয়ার্কের অ্যাড্রেসগুলো ব্যবহার করার জন্য প্রথমে একজন অ্যাডমিনিস্ট্রেটরের কাছ থেকে হোস্টটিকে অনুমতি নিতে হয়।",
"providerOllama": "ওল্লামা",
"providerAnthropic": "অ্যানথ্রোপিক",
"providerOpenai": "ওপেনএআই",
"providerGemini": "গুগল জেমিনি",
"providerOpenaiCompatible": "ওপেনএআই সামঞ্জস্যপূর্ণ",
"toolArguments": "ইনপুট",
"toolResult": "ফলাফল",
"statusApplied": "প্রয়োগ করা হয়েছে",
"statusRejected": "প্রত্যাখ্যাত",
"proposalApplied": "পরিবর্তন প্রয়োগ করা হয়েছে",
"proposalApplyFailed": "পরিবর্তনটি প্রয়োগ করা যায়নি।",
"proposalRejectFailed": "পরিবর্তনটি প্রত্যাখ্যান করা যায়নি",
"enableTitle": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
"enableDescription": "সহকারীকে আপনার সেটআপটি পড়তে দিন এবং আপনার অনুমোদনের জন্য পরিবর্তনের পরামর্শ দিতে দিন।",
"readOnlyCommands": "শুধুমাত্র পঠনযোগ্য ডায়াগনস্টিক কমান্ডের অনুমতি দিন",
"readOnlyCommandsDescription": "সহকারী প্রতিবার অনুমতি না নিয়েই df এবং uptime-এর মতো কয়েকটি নিরাপদ কমান্ড চালাতে পারে। সার্ভার পরিবর্তন করে এমন যেকোনো কিছু সর্বদা প্রথমে প্রস্তাব করা হয়।",
"modelDetectFailed": "সরবরাহকারীর সাথে যোগাযোগ করা সম্ভব হয়নি, তাই এটি একটি সাধারণ তালিকা। আপনি যেকোনো মডেলের নাম টাইপ করতে পারেন।",
"modelCustom": "একটি মডেলের নাম লিখুন",
"modelRefresh": "তালিকা রিফ্রেশ করুন",
"modelPlaceholder": "একটি মডেল বেছে নিন বা টাইপ করুন",
"attachHint": "কোনো হোস্ট, স্নিপেট বা অটোমেশন উল্লেখ করতে @ টাইপ করুন। আপনার অনুমোদনের জন্য পরিবর্তনগুলো প্রস্তাব করা হবে।",
"runCommandTitle": "রান কমান্ড",
"assistant": "এআই সহকারী",
"terminalPanelEmpty": "এই হোস্ট সম্পর্কে অ্যাসিস্ট্যান্টকে জিজ্ঞাসা করুন। অবস্থা পরিবর্তনের জন্য প্রথমে আপনার অনুমোদন প্রয়োজন।",
"terminalPanelPlaceholder": "এই হোস্ট সম্পর্কে জিজ্ঞাসা করুন...",
"noProvidersConfigured": "এখনো কোনো এআই প্রোভাইডার কনফিগার করা হয়নি। এআই অ্যাসিস্ট্যান্ট ট্যাবে একটি যোগ করুন।",
"runsInOpenTerminal": "আপনার খোলা টার্মিনাল সেশনে চলে।",
"runInTerminal": "দৌড়",
"terminalContextPrefill": "আমার টার্মিনাল আউটপুট নিচে দেওয়া হলো:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "অন্যান্য ফিচারগুলোকে তাদের নিজস্ব অনুরোধের জন্য আপনার এআই প্রোভাইডার এপিআই কী ব্যবহার করতে দিন। কী-টি কখনোই কপি করা হয় না এবং আপনি যেকোনো সময় এটি প্রত্যাহার করতে পারেন।"
}
},
"nav": {
"ai": "AI"
"ai": "এআই"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "এআই সহকারী",
"aiIntro": "টারমিক্সে একটি ঐচ্ছিক এআই অ্যাসিস্ট্যান্ট অন্তর্ভুক্ত থাকতে পারে। আপনি পরবর্তীতে আপনার সেটিংসে এটি পরিবর্তন করতে পারবেন।",
"aiSkipTitle": "এটা ছেড়ে দাও",
"aiSkipDesc": "টারমিক্স এখন যেমন কাজ করে, তেমনই কাজ করে। অ্যাসিস্ট্যান্টটি লুকানো থাকে।",
"aiEnableTitle": "এটা চালু করুন",
"aiEnableDesc": "একজন সহকারী যোগ করে যে আপনার সেটআপ পড়ে এবং আপনার অনুমোদিত পরিবর্তনের পরামর্শ দেয়। এর জন্য আপনার সরবরাহ করা একজন প্রদানকারীর প্রয়োজন, যেমন একজন স্থানীয় ওলামা।",
"aiNote": "আপনি একজন প্রোভাইডার যোগ করে মেসেজ না পাঠানো পর্যন্ত কোথাও কিছু পাঠানো হয় না।"
},
"hosts": {
"docsLink": "View docs"
"docsLink": "নথি দেখুন"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+78 -75
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "सहायक का उपयोग करें",
"description": "असिस्टेंट खोलें और उससे सवाल पूछें।"
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "प्रदाताओं का प्रबंधन करें",
"description": "एआई प्रदाताओं और उनकी एपीआई कुंजियों को जोड़ें, संपादित करें और हटाएं।"
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "प्रस्ताव लागू करें",
"description": "सहायक को उसके द्वारा सुझाए गए बदलावों को लागू करने दें।"
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "अन्य सुविधाओं से एआई का उपयोग करें",
"description": "अन्य सुविधाएं आपकी ओर से असिस्टेंट को कॉल कर सकती हैं।"
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "एपीआई कुंजी साझा करें",
"description": "अन्य सुविधाएं संग्रहीत एआई एपीआई कुंजी का उपयोग उसे देखे बिना भी कर सकती हैं।"
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "इस सर्वर पर एआई असिस्टेंट बंद है।",
"providersNeedOptIn": "प्रदाताओं को जोड़ने के लिए ऊपर दिए गए एआई सहायक को चालू करें।",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "एआई सहायक",
"description": "उपयोगकर्ताओं को एआई सहायक चालू करने की अनुमति दें। जब यह बंद होगा, तो सहायक सभी के लिए छिपा हुआ और अवरुद्ध रहेगा।"
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "निजी एआई होस्ट की अनुमति दी गई",
"description": "आपके निजी नेटवर्क पर मौजूद होस्ट, जिन्हें उपयोगकर्ता किसी प्रदाता से जोड़ सकते हैं, जैसे कि स्व-होस्टेड ओलामा। प्रत्येक पंक्ति में एक होस्ट रखें।"
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "एआई असिस्टेंट को सक्षम करें",
"description": "इस होस्ट के टर्मिनल में एआई सहायक को मदद करने की अनुमति दें। यह डिफ़ॉल्ट रूप से बंद है, लेकिन आपके खाते के लिए एआई को सक्षम करना आवश्यक है।"
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "सहायक",
"send": "भेजना",
"stop": "स्टॉप",
"save": "सहेजें",
"cancel": "रद्द करें",
"running": "चल रहे",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "मंज़ूरी देना",
"reject": "अस्वीकार करना",
"inputPlaceholder": "अपने सर्वरों के बारे में पूछें, या प्रस्तावित परिवर्तन का वर्णन करें।",
"selectProvider": "एक प्रदाता का चयन करें",
"providerSettings": "प्रदाता सेटिंग्स",
"addProvider": "प्रदाता जोड़ें",
"editProvider": "प्रदाता संपादित करें",
"removeProvider": "प्रदाता को हटाएँ",
"providerType": "प्रदाता",
"providerLabel": "नाम",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerLabelPlaceholder": "उदाहरण के लिए: स्थानीय ओलामा",
"baseUrl": "सर्वर पता",
"apiKey": "एपीआई कुंजी",
"defaultModel": "डिफ़ॉल्ट मॉडल",
"defaultModelPlaceholder": "उदाहरण के लिए: llama3.1 या claude-opus-5",
"labelRequired": "इस प्रदाता को एक नाम दें",
"providerSaveFailed": "प्रदाता को बचाया नहीं जा सका",
"providerUpdated": "प्रदाता ने अपडेट किया",
"providerDeleteFailed": "प्रदाता को हटाया नहीं जा सका",
"privateEndpointHint": "आपके निजी नेटवर्क पर मौजूद पतों के लिए पहले एक प्रशासक द्वारा होस्ट को अनुमति देना आवश्यक है।",
"providerOllama": "ओलामा",
"providerAnthropic": "anthropic",
"providerOpenai": "ओपनएआई",
"providerGemini": "गूगल जेमिनी",
"providerOpenaiCompatible": "OpenAI संगत",
"toolArguments": "इनपुट",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "परिणाम",
"statusApplied": "लागू किया गया",
"statusRejected": "अस्वीकार कर दिया",
"proposalApplied": "परिवर्तन लागू हो गया",
"proposalApplyFailed": "परिवर्तन लागू नहीं हो सका",
"proposalRejectFailed": "परिवर्तन को अस्वीकार नहीं किया जा सका",
"enableTitle": "एआई सहायक को सक्रिय करें",
"enableDescription": "सहायक को आपकी सेटअप प्रक्रिया पढ़ने दें और वह आपके अनुमोदन के लिए परिवर्तन सुझाएगा।",
"readOnlyCommands": "केवल पढ़ने योग्य डायग्नोस्टिक कमांड की अनुमति दें",
"readOnlyCommandsDescription": "सहायक बिना पूछे ही df और uptime जैसे कुछ सुरक्षित कमांड चला सकता है। सर्वर में कोई भी बदलाव करने का प्रस्ताव हमेशा पहले दिया जाता है।",
"modelDetectFailed": "प्रदाता से संपर्क नहीं हो सका, इसलिए यह एक सामान्य सूची है। आप किसी भी मॉडल का नाम टाइप कर सकते हैं।",
"modelCustom": "मॉडल का नाम दर्ज करें",
"modelRefresh": "सूची रीफ़्रेश करें",
"modelPlaceholder": "कोई मॉडल चुनें या टाइप करें",
"attachHint": "किसी होस्ट, स्निपेट या ऑटोमेशन को संदर्भित करने के लिए @ टाइप करें। आपके अनुमोदन के लिए परिवर्तन प्रस्तावित किए जा रहे हैं।",
"runCommandTitle": "कमांड चलाएँ",
"assistant": "एआई सहायक",
"terminalPanelEmpty": "इस होस्ट के बारे में असिस्टेंट से पूछें। किसी भी स्थिति में बदलाव के लिए पहले आपकी स्वीकृति आवश्यक है।",
"terminalPanelPlaceholder": "इस होस्ट के बारे में पूछें...",
"noProvidersConfigured": "अभी तक कोई एआई प्रदाता कॉन्फ़िगर नहीं किया गया है। एआई सहायक टैब में एक जोड़ें।",
"runsInOpenTerminal": "यह आपके खुले टर्मिनल सत्र में चलता है।",
"runInTerminal": "चलाएं",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "यह मेरे टर्मिनल का आउटपुट है:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "अन्य सुविधाओं को अपने अनुरोधों के लिए आपके एआई प्रदाता एपीआई कुंजी का उपयोग करने दें। कुंजी की कभी प्रतिलिपि नहीं बनाई जाती है, और आप इसे किसी भी समय रद्द कर सकते हैं।"
}
},
"nav": {
"ai": "AI"
"ai": "ऐ"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "एआई सहायक",
"aiIntro": "टर्मिक्स में एक वैकल्पिक एआई सहायक शामिल हो सकता है। आप इसे बाद में अपनी सेटिंग्स में बदल सकते हैं।",
"aiSkipTitle": "इसे बंद कर दो",
"aiSkipDesc": "टर्मिक्स अभी की तरह ही काम करता है। असिस्टेंट छिपा रहता है।",
"aiEnableTitle": "इसे चालू करें",
"aiEnableDesc": "यह एक सहायक सुविधा जोड़ता है जो आपके सेटअप को पढ़ता है और आपके द्वारा स्वीकृत किए जाने वाले परिवर्तनों का सुझाव देता है। इसके लिए आपको एक प्रदाता उपलब्ध कराना होगा, जैसे कि स्थानीय ओलामा।",
"aiNote": "जब तक आप कोई प्रदाता नहीं जोड़ते और संदेश नहीं भेजते, तब तक कुछ भी कहीं नहीं भेजा जाता।"
},
"hosts": {
"docsLink": "दस्तावेज़ देखें"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+82 -79
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Gunakan asisten",
"description": "Buka asisten dan ajukan pertanyaan kepadanya."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Mengelola penyedia",
"description": "Tambahkan, edit, dan hapus penyedia AI dan kunci API mereka."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Ajukan proposal",
"description": "Biarkan asisten tersebut menjalankan perubahan yang disarankannya."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Gunakan AI dari fitur lain.",
"description": "Fitur lainnya mungkin akan memanggil asisten atas nama Anda."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Bagikan kunci API",
"description": "Fitur lain mungkin menggunakan kunci API AI yang tersimpan tanpa mengetahuinya."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "Asisten AI dinonaktifkan di server ini.",
"providersNeedOptIn": "Aktifkan asisten AI di atas untuk menambahkan penyedia.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "Asisten AI",
"description": "Izinkan pengguna untuk mengaktifkan asisten AI. Saat dinonaktifkan, asisten akan disembunyikan dan diblokir untuk semua orang."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Host AI pribadi yang diizinkan",
"description": "Host di jaringan pribadi Anda yang dapat diarahkan pengguna ke penyedia layanan, seperti Ollama yang dihosting sendiri. Letakkan satu host di setiap baris."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Aktifkan Asisten AI",
"description": "Izinkan asisten AI untuk membantu di terminal host ini. Secara default dinonaktifkan, dan AI tetap perlu diaktifkan untuk akun Anda."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"title": "Asisten",
"send": "Mengirim",
"stop": "Berhenti",
"save": "Menyimpan",
"cancel": "Membatalkan",
"running": "berlari",
"approve": "Menyetujui",
"reject": "Menolak",
"inputPlaceholder": "Tanyakan tentang server Anda, atau jelaskan perubahan yang ingin Anda usulkan.",
"selectProvider": "Pilih penyedia",
"providerSettings": "Pengaturan penyedia",
"addProvider": "Tambahkan penyedia",
"editProvider": "Penyedia pengeditan",
"removeProvider": "Hapus penyedia",
"providerType": "Penyedia",
"providerLabel": "Nama",
"providerLabelPlaceholder": "Contohnya: Ollama setempat",
"baseUrl": "Alamat server",
"apiKey": "Kunci API",
"defaultModel": "Model default",
"defaultModelPlaceholder": "Misalnya: llama3.1 atau claude-opus-5",
"labelRequired": "Beri nama penyedia ini",
"providerSaveFailed": "Penyedia layanan tidak dapat disimpan.",
"providerUpdated": "Penyedia diperbarui",
"providerDeleteFailed": "Penyedia layanan tidak dapat dihapus.",
"privateEndpointHint": "Alamat-alamat di jaringan pribadi Anda memerlukan izin administrator terlebih dahulu untuk host tersebut.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerAnthropic": "Antropis",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"providerOpenaiCompatible": "Kompatibel dengan OpenAI",
"toolArguments": "Masukan",
"toolResult": "Hasil",
"statusApplied": "Terapan",
"statusRejected": "Ditolak",
"proposalApplied": "Perubahan diterapkan",
"proposalApplyFailed": "Perubahan tidak dapat diterapkan.",
"proposalRejectFailed": "Tidak bisa menolak perubahan tersebut",
"enableTitle": "Aktifkan asisten AI",
"enableDescription": "Biarkan asisten membaca pengaturan Anda dan menyarankan perubahan yang perlu Anda setujui.",
"readOnlyCommands": "Izinkan perintah diagnostik hanya baca.",
"readOnlyCommandsDescription": "Asisten dapat menjalankan daftar singkat perintah aman seperti df dan uptime tanpa bertanya setiap kali. Apa pun yang mengubah server selalu diusulkan terlebih dahulu.",
"modelDetectFailed": "Tidak dapat menghubungi penyedia, jadi ini adalah daftar umum. Anda dapat mengetikkan nama model apa pun.",
"modelCustom": "Masukkan nama model",
"modelRefresh": "Perbarui daftar",
"modelPlaceholder": "Pilih atau ketik model",
"attachHint": "Ketik @ untuk merujuk ke host, cuplikan kode, atau otomatisasi. Perubahan diajukan untuk Anda setujui.",
"runCommandTitle": "Jalankan perintah",
"assistant": "Asisten AI",
"terminalPanelEmpty": "Tanyakan kepada asisten tentang tuan rumah ini. Segala sesuatu yang berubah status memerlukan persetujuan Anda terlebih dahulu.",
"terminalPanelPlaceholder": "Tanyakan tentang tuan rumah ini...",
"noProvidersConfigured": "Belum ada penyedia AI yang dikonfigurasi. Tambahkan satu di tab asisten AI.",
"runsInOpenTerminal": "Berjalan di sesi terminal Anda yang sedang terbuka.",
"runInTerminal": "Berlari",
"terminalContextPrefill": "Berikut adalah output terminal saya:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Izinkan fitur lain menggunakan kunci API penyedia AI Anda untuk permintaan mereka sendiri. Kunci tersebut tidak pernah disalin, dan Anda dapat mencabutnya kapan saja."
}
},
"nav": {
"ai": "AI"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "Asisten AI",
"aiIntro": "Termix dapat menyertakan asisten AI opsional. Anda dapat mengubahnya nanti di pengaturan Anda.",
"aiSkipTitle": "Biarkan saja",
"aiSkipDesc": "Termix berfungsi seperti sekarang. Asisten tetap tersembunyi.",
"aiEnableTitle": "Nyalakan",
"aiEnableDesc": "Menambahkan asisten yang membaca pengaturan Anda dan menyarankan perubahan yang Anda setujui. Membutuhkan penyedia yang Anda berikan, seperti Ollama lokal.",
"aiNote": "Tidak ada data yang dikirim ke mana pun sampai Anda menambahkan penyedia dan mengirim pesan."
},
"hosts": {
"docsLink": "View docs"
"docsLink": "Lihat dokumen"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+77 -74
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Bruk assistenten",
"description": "Åpne assistenten og spør den om ting."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Administrer leverandører",
"description": "Legg til, rediger og fjern AI-leverandørene og API-nøklene deres."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Bruk forslag",
"description": "La assistenten utføre endringene den foreslår."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Bruk AI fra andre funksjoner",
"description": "Andre funksjoner kan ringe assistenten på dine vegne."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Del API-nøkkelen",
"description": "Andre funksjoner kan bruke den lagrede AI API-nøkkelen uten å se den."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "AI-assistenten er slått av på denne serveren.",
"providersNeedOptIn": "Slå på AI-assistenten ovenfor for å legge til leverandører.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "AI-assistent",
"description": "La brukere slå på AI-assistenten. Mens dette er av, er assistenten skjult og blokkert for alle."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Tillatte private AI-verter",
"description": "Verter på ditt private nettverk som brukere kan peke en leverandør til, for eksempel en selvhostet Ollama. Plasser én vert på hver linje."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Aktiver AI-assistent",
"description": "Tillat at AI-assistenten hjelper til i denne vertens terminal. Av som standard, og krever fortsatt at AI er aktivert for kontoen din."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "Assistent",
"send": "Sende",
"stop": "Stopp",
"save": "Lagre",
"cancel": "Avbryt",
"running": "kjører",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "Vedta",
"reject": "Avvis",
"inputPlaceholder": "Spør om servitørene dine, eller beskriv en endring du vil foreslå",
"selectProvider": "Velg en leverandør",
"providerSettings": "Leverandørinnstillinger",
"addProvider": "Legg til leverandør",
"editProvider": "Rediger leverandør",
"removeProvider": "Fjern leverandør",
"providerType": "Leverandør",
"providerLabel": "Navn",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerLabelPlaceholder": "For eksempel: Lokal Ollama",
"baseUrl": "Serveradresse",
"apiKey": "API-nøkkel",
"defaultModel": "Standardmodell",
"defaultModelPlaceholder": "For eksempel: llama3.1 eller claude-opus-5",
"labelRequired": "Gi denne leverandøren et navn",
"providerSaveFailed": "Kunne ikke lagre leverandøren",
"providerUpdated": "Leverandøren er oppdatert",
"providerDeleteFailed": "Kunne ikke fjerne leverandøren",
"privateEndpointHint": "Adresser på ditt private nettverk krever at en administrator tillater verten først.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
"providerAnthropic": "Antropisk",
"providerOpenai": "Åpen kunstig intelligens",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"providerOpenaiCompatible": "OpenAI-kompatibel",
"toolArguments": "Inndata",
"toolResult": "Resultat",
"statusApplied": "Anvendt",
"statusRejected": "Avvist",
"proposalApplied": "Endringen er brukt",
"proposalApplyFailed": "Kunne ikke bruke endringen",
"proposalRejectFailed": "Kunne ikke avvise endringen",
"enableTitle": "Aktiver AI-assistenten",
"enableDescription": "La assistenten lese oppsettet ditt og foreslå endringer du kan godkjenne.",
"readOnlyCommands": "Tillat skrivebeskyttede diagnostiske kommandoer",
"readOnlyCommandsDescription": "Assistenten kan kjøre en kort liste med sikre kommandoer som df og uptime uten å spørre hver gang. Alt som endrer en server blir alltid foreslått først.",
"modelDetectFailed": "Kunne ikke nå leverandøren, så dette er en generell liste. Du kan skrive inn et hvilket som helst modellnavn.",
"modelCustom": "Skriv inn et modellnavn",
"modelRefresh": "Oppdater listen",
"modelPlaceholder": "Velg eller skriv inn en modell",
"attachHint": "Skriv inn @ for å referere til en vert, et kodeutdrag eller en automatisering. Endringer foreslås som du kan godkjenne.",
"runCommandTitle": "Kjør kommandoen",
"assistant": "AI-assistent",
"terminalPanelEmpty": "Spør assistenten om denne verten. Alt som endrer status trenger din godkjenning først.",
"terminalPanelPlaceholder": "Spør om denne verten...",
"noProvidersConfigured": "Ingen AI-leverandør er konfigurert ennå. Legg til en i AI-assistent-fanen.",
"runsInOpenTerminal": "Kjører i din åpne terminaløkt.",
"runInTerminal": "Kjør",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "Her er terminalutgangen min:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "La andre funksjoner bruke API-nøkkelen til AI-leverandøren din for sine egne forespørsler. Nøkkelen kopieres aldri, og du kan tilbakekalle den når som helst."
}
},
"nav": {
"ai": "AI"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "AI-assistent",
"aiIntro": "Termix kan inkludere en valgfri AI-assistent. Du kan endre dette senere i innstillingene dine.",
"aiSkipTitle": "La det være av",
"aiSkipDesc": "Termix fungerer som den gjør nå. Assistenten forblir skjult.",
"aiEnableTitle": "Slå den på",
"aiEnableDesc": "Legger til en assistent som leser oppsettet ditt og foreslår endringer du godkjenner. Krever en leverandør du oppgir, for eksempel en lokal Ollama.",
"aiNote": "Ingenting sendes noe sted før du legger til en leverandør og sender en melding."
},
"hosts": {
"docsLink": "View docs"
"docsLink": "Vis dokumenter"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+25 -22
View File
@@ -1,29 +1,29 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Użyj asystenta",
"description": "Otwórz asystenta i zadaj mu pytania."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Zarządzaj dostawcami",
"description": "Dodawaj, edytuj i usuwaj dostawców sztucznej inteligencji oraz ich klucze API."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Zastosuj propozycje",
"description": "Pozwól asystentowi wprowadzić sugerowane zmiany."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Użyj sztucznej inteligencji z innych funkcji",
"description": "Inne funkcje mogą umożliwiać wywoływanie asystenta w Twoim imieniu."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Udostępnij klucz API",
"description": "Inne funkcje mogą wykorzystywać zapisany klucz API AI, nawet go nie widząc."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "Asystent AI jest wyłączony na tym serwerze.",
"providersNeedOptIn": "Włącz asystenta AI powyżej, aby dodać dostawców.",
"admin": {
"globallyEnabled": {
"label": "Asystent AI",
@@ -31,13 +31,13 @@
},
"privateEndpoints": {
"label": "Dozwolone prywatne hosty AI",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"description": "Hosty w Twojej sieci prywatnej, na które użytkownicy mogą wskazać dostawcę, na przykład samodzielnie hostowany Ollama. Umieść jednego hosta na każdej linii."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Włącz asystenta AI",
"description": "Zezwól asystentowi AI na pomoc w terminalu tego hosta. Domyślnie wyłączone, ale nadal wymaga włączenia AI na Twoim koncie."
}
}
},
@@ -90,15 +90,15 @@
"modelPlaceholder": "Wybierz lub wpisz model",
"attachHint": "Wpisz @, aby odwołać się do hosta, snippetu lub automatyzacji. Zmiany są proponowane do Twojego zatwierdzenia.",
"runCommandTitle": "Uruchom polecenie",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"assistant": "Asystent AI",
"terminalPanelEmpty": "Zapytaj asystenta o tego hosta. Każda zmiana stanu wymaga Twojej zgody.",
"terminalPanelPlaceholder": "Zapytaj o tego gospodarza...",
"noProvidersConfigured": "Nie skonfigurowano jeszcze żadnego dostawcy AI. Dodaj go w zakładce Asystent AI.",
"runsInOpenTerminal": "Działa w otwartej sesji terminalowej.",
"runInTerminal": "Uruchom",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "Oto wynik mojego terminala:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Pozwól innym funkcjom używać klucza API dostawcy sztucznej inteligencji do własnych żądań. Klucz nigdy nie jest kopiowany i możesz go w dowolnym momencie cofnąć."
}
},
"nav": {
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+79 -76
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Use o assistente",
"description": "Abra o assistente e faça perguntas."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Gerenciar fornecedores",
"description": "Adicione, edite e remova os fornecedores de IA e suas chaves de API."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Apresentar propostas",
"description": "Deixe que o assistente execute as alterações que sugerir."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Utilizar IA de outras funcionalidades",
"description": "Outras funcionalidades podem chamar o assistente em seu nome."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Compartilhe a chave da API",
"description": "Outras funcionalidades podem usar a chave da API de IA armazenada sem visualizá-la."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "O assistente de IA está desativado neste servidor.",
"providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "assistente de IA",
"description": "Permita que os usuários ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Hosts de IA privados permitidos",
"description": "Servidores na sua rede privada que os usuários podem usar como provedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Ativar o assistente de IA",
"description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por padrão, mas ainda precisa que a IA esteja ativada para sua conta."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"title": "Assistente",
"send": "Enviar",
"stop": "Parar",
"save": "Salvar",
"cancel": "Cancelar",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"running": "correndo",
"approve": "Aprovar",
"reject": "Rejeitar",
"inputPlaceholder": "Pergunte sobre seus servidores ou descreva uma alteração que você gostaria de propor.",
"selectProvider": "Selecione um fornecedor",
"providerSettings": "Configurações do provedor",
"addProvider": "Adicionar provedor",
"editProvider": "Editar provedor",
"removeProvider": "Remover provedor",
"providerType": "Fornecedor",
"providerLabel": "Nome",
"providerLabelPlaceholder": "Por exemplo: Ollama local",
"baseUrl": "Endereço do servidor",
"apiKey": "Chave de API",
"defaultModel": "Modelo padrão",
"defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
"labelRequired": "Dê um nome a este fornecedor.",
"providerSaveFailed": "Não foi possível salvar o provedor.",
"providerUpdated": "Fornecedor atualizado",
"providerDeleteFailed": "Não foi possível remover o provedor.",
"privateEndpointHint": "Os endereços na sua rede privada precisam que um administrador autorize o host primeiro.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerAnthropic": "Antrópico",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "Compatível com OpenAI",
"toolArguments": "Entrada",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"toolResult": "Resultado",
"statusApplied": "Aplicado",
"statusRejected": "Rejeitado",
"proposalApplied": "Alteração aplicada",
"proposalApplyFailed": "Não foi possível aplicar a alteração.",
"proposalRejectFailed": "Não foi possível rejeitar a alteração.",
"enableTitle": "Ative o assistente de IA",
"enableDescription": "Deixe o assistente ler sua configuração e sugerir alterações para você aprovar.",
"readOnlyCommands": "Permitir comandos de diagnóstico somente leitura",
"readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar a cada vez. Qualquer alteração que faça no servidor será sempre sugerida primeiro.",
"modelDetectFailed": "Não foi possível contatar o fornecedor, portanto esta é uma lista genérica. Você pode digitar o nome de qualquer modelo.",
"modelCustom": "Insira o nome do modelo",
"modelRefresh": "Atualizar lista",
"modelPlaceholder": "Selecione ou digite um modelo",
"attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para sua aprovação.",
"runCommandTitle": "Executar comando",
"assistant": "Assistente de IA",
"terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado precisa da sua aprovação prévia.",
"terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
"noProvidersConfigured": "Nenhum provedor de IA está configurado ainda. Adicione um na aba do assistente de IA.",
"runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
"runInTerminal": "Correr",
"terminalContextPrefill": "Aqui está a saída do meu terminal:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Permita que outros recursos usem sua chave de API do provedor de IA para suas próprias solicitações. A chave nunca é copiada e você pode revogá-la a qualquer momento."
}
},
"nav": {
"ai": "AI"
"ai": "IA"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "assistente de IA",
"aiIntro": "O Termix pode incluir um assistente de IA opcional. Você pode alterar isso posteriormente nas suas configurações.",
"aiSkipTitle": "Deixe desligado",
"aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
"aiEnableTitle": "Ligue-o",
"aiEnableDesc": "Adiciona um assistente que lê sua configuração e sugere alterações que você aprova. Requer um provedor fornecido por você, como um Ollama local.",
"aiNote": "Nada será enviado até que você adicione um provedor e envie uma mensagem."
},
"hosts": {
"docsLink": "Documentação"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+75 -72
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Utilize o assistente",
"description": "Abra o assistente e coloque questões."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Gerir fornecedores",
"description": "Adicione, edite e remova os fornecedores de IA e as suas chaves API."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Apresentar propostas",
"description": "Deixe que o assistente execute as alterações que sugerir."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Utilizar IA de outras funcionalidades",
"description": "Outras funcionalidades podem chamar o assistente em seu nome."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Partilhar a chave da API",
"description": "Outras funcionalidades podem utilizar a chave da API de IA armazenada sem a visualizar."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "O assistente de IA está desativado neste servidor.",
"providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "assistente de IA",
"description": "Permita que os utilizadores ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Hosts de IA privados permitidos",
"description": "Servidores na sua rede privada que os utilizadores podem utilizar como fornecedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Ativar o assistente de IA",
"description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por defeito, mas ainda precisa que a IA esteja ativada para a sua conta."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "Assistente",
"send": "Enviar",
"stop": "Stop",
"save": "Guardar",
"cancel": "Cancelar",
"running": "em execução",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "Aprovar",
"reject": "Rejeitar",
"inputPlaceholder": "Pergunte pelos seus servidores ou descreva uma alteração que gostaria de propor.",
"selectProvider": "Selecione um fornecedor",
"providerSettings": "Configurações do fornecedor",
"addProvider": "Adicionar provedor",
"editProvider": "Editar provedor",
"removeProvider": "Remover fornecedor",
"providerType": "Fornecedor",
"providerLabel": "Nome",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerLabelPlaceholder": "Por exemplo: Ollama local",
"baseUrl": "Endereço do servidor",
"apiKey": "Chave API",
"defaultModel": "Modelo padrão",
"defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
"labelRequired": "Dê um nome a este fornecedor.",
"providerSaveFailed": "Não foi possível guardar o fornecedor.",
"providerUpdated": "Fornecedor atualizado",
"providerDeleteFailed": "Não foi possível remover o fornecedor.",
"privateEndpointHint": "Os endereços na sua rede privada necessitam que um administrador autorize primeiro o host.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerAnthropic": "Antrópico",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "Compatível com OpenAI",
"toolArguments": "Entrada",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "Resultado",
"statusApplied": "Aplicado",
"statusRejected": "Rejeitado",
"proposalApplied": "Alteração aplicada",
"proposalApplyFailed": "Não foi possível aplicar a alteração.",
"proposalRejectFailed": "Não foi possível rejeitar a alteração.",
"enableTitle": "Ative o assistente de IA",
"enableDescription": "Deixe o assistente ler a sua configuração e sugerir alterações para que a aprove.",
"readOnlyCommands": "Permitir comandos de diagnóstico de leitura apenas",
"readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar de cada vez. Qualquer alteração que faça no servidor será sempre sugerida em primeiro lugar.",
"modelDetectFailed": "Não foi possível contactar o fornecedor, pelo que esta é uma lista genérica. Pode digitar o nome de qualquer modelo.",
"modelCustom": "Introduza o nome do modelo",
"modelRefresh": "Atualizar lista",
"modelPlaceholder": "Selecione ou introduza um modelo",
"attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para a sua aprovação.",
"runCommandTitle": "Executar comando",
"assistant": "Assistente de IA",
"terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado necessita da sua aprovação prévia.",
"terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
"noProvidersConfigured": "Nenhum fornecedor de IA está configurado ainda. Adicione um no separador do assistente de IA.",
"runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
"runInTerminal": "Executar",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "Eis a saída do meu terminal:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Permita que outros recursos utilizem a sua chave API do fornecedor de IA para os seus próprios pedidos. A chave nunca é copiada e pode revogá-la a qualquer momento."
}
},
"nav": {
"ai": "AI"
"ai": "IA"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "assistente de IA",
"aiIntro": "O Termix pode incluir um assistente de IA opcional. Pode alterar isso posteriormente nas suas definições.",
"aiSkipTitle": "Deixe desligado",
"aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
"aiEnableTitle": "Ligue-o",
"aiEnableDesc": "Adiciona um assistente que lê a sua configuração e sugere alterações que aprova. Requer um fornecedor fornecido por si, como um Ollama local.",
"aiNote": "Nada será enviado até que adicione um fornecedor e envie uma mensagem."
},
"hosts": {
"docsLink": "Ver documentação"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+3
View File
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+76 -73
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Воспользуйтесь помощником",
"description": "Откройте ассистента и задайте ему вопросы."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Управление поставщиками",
"description": "Добавляйте, редактируйте и удаляйте поставщиков ИИ и их API-ключи."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Подайте заявки на участие в тендере.",
"description": "Пусть ассистент внесет предложенные им изменения."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Используйте ИИ из других функций.",
"description": "Другие функции могут вызывать голосового помощника от вашего имени."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Поделитесь ключом API",
"description": "Другие функции могут использовать сохраненный ключ API ИИ, даже не видя его."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "На этом сервере ИИ-помощник отключен.",
"providersNeedOptIn": "Включите ИИ-помощника выше, чтобы добавить поставщиков услуг.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "ИИ-помощник",
"description": "Разрешите пользователям включить голосового помощника. Если он выключен, помощник скрыт и заблокирован для всех."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Разрешены частные хосты ИИ",
"description": "Разместите на каждой линии по одному хосту в вашей частной сети, на которые пользователи могут направлять запросы провайдера, например, самостоятельно размещенный Ollama."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Включить ИИ-помощника",
"description": "Разрешите помощнику с искусственным интеллектом помогать на терминале этого хоста. По умолчанию отключено, но для вашей учетной записи ИИ все равно должен быть включен."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "Помощник",
"send": "Отправлять",
"stop": "Остановить",
"save": "Сохранить",
"cancel": "Отмена",
"running": "выполняется",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "Утвердить",
"reject": "Отклонять",
"inputPlaceholder": "Поинтересуйтесь состоянием ваших серверов или предложите внести изменения.",
"selectProvider": "Выберите поставщика",
"providerSettings": "Настройки поставщика",
"addProvider": "Добавить поставщика",
"editProvider": "Поставщик редактирования",
"removeProvider": "Удалить поставщика",
"providerType": "Поставщик",
"providerLabel": "Название",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerLabelPlaceholder": "Например: Местная лама",
"baseUrl": "Адрес сервера",
"apiKey": "ключ API",
"defaultModel": "Модель по умолчанию",
"defaultModelPlaceholder": "Например: llama3.1 или claude-opus-5",
"labelRequired": "Укажите имя этого поставщика услуг.",
"providerSaveFailed": "Не удалось сохранить поставщика услуг.",
"providerUpdated": "Поставщик обновлен",
"providerDeleteFailed": "Не удалось удалить поставщика услуг.",
"privateEndpointHint": "Для доступа к адресам в вашей частной сети необходимо предварительное разрешение администратора.",
"providerOllama": "оллама",
"providerAnthropic": "Антропический",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "Совместимость с OpenAI",
"toolArguments": "Ввод",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "Результат",
"statusApplied": "Применяемый",
"statusRejected": "Отклоненный",
"proposalApplied": "Внесены изменения.",
"proposalApplyFailed": "Не удалось применить изменения.",
"proposalRejectFailed": "Не мог отклонить изменение.",
"enableTitle": "Включите ИИ-помощника",
"enableDescription": "Позвольте ассистенту ознакомиться с вашими настройками и предложить изменения для утверждения.",
"readOnlyCommands": "Разрешить диагностические команды только для чтения",
"readOnlyCommandsDescription": "Ассистент может выполнить короткий список безопасных команд, таких как df и uptime, не запрашивая подтверждения каждый раз. Любая команда, изменяющая состояние сервера, всегда предлагается в первую очередь.",
"modelDetectFailed": "Не удалось связаться с поставщиком, поэтому это общий список. Вы можете ввести любое название модели.",
"modelCustom": "Введите название модели",
"modelRefresh": "Обновить список",
"modelPlaceholder": "Выберите или введите модель",
"attachHint": "Введите @ для ссылки на хост, фрагмент кода или автоматизацию. Предлагаются изменения для вашего утверждения.",
"runCommandTitle": "Выполните команду",
"assistant": "ИИ-помощник",
"terminalPanelEmpty": "Спросите помощника об этом хосте. Любое изменение состояния требует вашего предварительного одобрения.",
"terminalPanelPlaceholder": "Спросите об этом хостинге...",
"noProvidersConfigured": "Поставщик ИИ пока не настроен. Добавьте его на вкладке «Помощник ИИ».",
"runsInOpenTerminal": "Запускается в открытой терминальной сессии.",
"runInTerminal": "Запустить",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "Вот вывод моего терминала:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Разрешите другим функциям использовать ваш API-ключ поставщика ИИ для своих запросов. Ключ никогда не копируется, и вы можете отозвать его в любое время."
}
},
"nav": {
"ai": "AI"
"ai": "ИИ"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "ИИ-помощник",
"aiIntro": "В Termix можно добавить опционального ИИ-помощника. Это можно изменить позже в настройках.",
"aiSkipTitle": "Оставьте это выключенным.",
"aiSkipDesc": "Termix работает так, как сейчас. Ассистент остается скрытым.",
"aiEnableTitle": "Включите его",
"aiEnableDesc": "Добавляет помощника, который анализирует ваши настройки и предлагает изменения, которые вы одобряете. Требуется поставщик, которого вы предоставляете, например, местный Ollama.",
"aiNote": "Ничего никуда не отправляется, пока вы не добавите поставщика услуг и не отправите сообщение."
},
"hosts": {
"docsLink": "Документация"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+85 -82
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Користите помоћника",
"description": "Отворите асистента и питајте га."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Управљајте добављачима",
"description": "Додајте, уредите и уклоните добављаче вештачке интелигенције и њихове АПИ кључеве."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Примени предлоге",
"description": "Нека асистент изврши измене које предложи."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Користите вештачку интелигенцију из других функција",
"description": "Друге функције могу позвати асистента у ваше име."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Поделите API кључ",
"description": "Друге функције могу користити сачувани AI API кључ, а да га не виде."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "АИ асистент је искључен на овом серверу.",
"providersNeedOptIn": "Укључите AI асистента изнад да бисте додали добављаче.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "Асистент за вештачку интелигенцију",
"description": "Дозволите корисницима да укључе вештачку интелигенцију асистента. Док је ово искључено, асистент је скривен и блокиран за све."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Дозвољени приватни AI хостови",
"description": "Домаћини на вашој приватној мрежи на које корисници могу усмерити провајдера, као што је самостално хостовани Ollama. Ставите по један хост у сваки ред."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Омогући AI асистент",
"description": "Дозволите вештачкој интелигенцији да помогне у терминалу овог хоста. Искључено је подразумевано, а и даље је потребно да вештачка интелигенција буде омогућена за ваш налог."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"title": "Асистент",
"send": "Пошаљи",
"stop": "Заустави",
"save": "Сачувај",
"cancel": "Откажи",
"running": "трчање",
"approve": "Одобри",
"reject": "Одбиј",
"inputPlaceholder": "Питајте о својим серверима или опишите промену коју желите да предложите",
"selectProvider": "Изаберите добављача",
"providerSettings": "Подешавања добављача",
"addProvider": "Додај добављача",
"editProvider": "Измени добављача",
"removeProvider": "Уклони добављача",
"providerType": "Провајдер",
"providerLabel": "Име",
"providerLabelPlaceholder": "На пример: Локална Олама",
"baseUrl": "Адреса сервера",
"apiKey": "API кључ",
"defaultModel": "Подразумевани модел",
"defaultModelPlaceholder": "На пример: llama3.1 или claude-opus-5",
"labelRequired": "Дајте име овом добављачу",
"providerSaveFailed": "Није могуће сачувати добављача",
"providerUpdated": "Провајдер је ажуриран",
"providerDeleteFailed": "Није могуће уклонити добављача",
"privateEndpointHint": "Адресе на вашој приватној мрежи прво треба да дозволе администратору хоста.",
"providerOllama": "Олама",
"providerAnthropic": "Антропски",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"providerGemini": "Гугл Џемини",
"providerOpenaiCompatible": "Компатибилно са OpenAI-ом",
"toolArguments": "Унос",
"toolResult": "Резултат",
"statusApplied": "Примењено",
"statusRejected": "Одбијено",
"proposalApplied": "Промена је примењена",
"proposalApplyFailed": "Није могуће применити промену",
"proposalRejectFailed": "Није могуће одбити промену",
"enableTitle": "Омогућите вештачку интелигенцију (AI) асистента",
"enableDescription": "Нека асистент прочита ваша подешавања и предложи измене које ћете одобрити.",
"readOnlyCommands": "Дозволи дијагностичке команде само за читање",
"readOnlyCommandsDescription": "Асистент може да покрене кратку листу безбедних команди као што су df и uptime без сваког питања. Све што мења сервер се увек прво предлаже.",
"modelDetectFailed": "Нисмо могли да контактирамо добављача, тако да је ово општа листа. Можете да унесете било који назив модела.",
"modelCustom": "Унесите назив модела",
"modelRefresh": "Освежи листу",
"modelPlaceholder": "Изаберите или унесите модел",
"attachHint": "Унесите @ да бисте референцирали хост, исечак кода или аутоматизацију. Промене се предлажу да бисте их одобрили.",
"runCommandTitle": "Покрени команду",
"assistant": "АИ асистент",
"terminalPanelEmpty": "Питајте асистента о овом домаћину. Све што мења стање прво захтева ваше одобрење.",
"terminalPanelPlaceholder": "Питајте о овом домаћину...",
"noProvidersConfigured": "Још увек није конфигурисан ниједан добављач вештачке интелигенције. Додајте га на картици помоћника за вештачку интелигенцију.",
"runsInOpenTerminal": "Покреће се у вашој отвореној терминалној сесији.",
"runInTerminal": "Трчи",
"terminalContextPrefill": "Ево мог терминалног излаза:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Дозволите другим функцијама да користе ваш API кључ добављача вештачке интелигенције за сопствене захтеве. Кључ се никада не копира и можете га опозвати у било ком тренутку."
}
},
"nav": {
"ai": "AI"
"ai": "Вештачка интелигенција"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "Асистент за вештачку интелигенцију",
"aiIntro": "Termix може да укључи опционог AI асистента. Ово можете касније променити у подешавањима.",
"aiSkipTitle": "Остави то искључено",
"aiSkipDesc": "Термикс ради као и сада. Асистент остаје скривен.",
"aiEnableTitle": "Укључи га",
"aiEnableDesc": "Додаје асистента који чита ваша подешавања и предлаже измене које одобравате. Потребан је добављач кога ви обезбедите, као што је локални Олама.",
"aiNote": "Ништа се не шаље нигде док не додате провајдера и не пошаљете поруку."
},
"hosts": {
"docsLink": "View docs"
"docsLink": "Прикажи документе"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+82 -79
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Använd assistenten",
"description": "Öppna assistenten och fråga den saker."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Hantera leverantörer",
"description": "Lägg till, redigera och ta bort AI-leverantörerna och deras API-nycklar."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Tillämpa förslag",
"description": "Låt assistenten utföra de ändringar den föreslår."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Använd AI från andra funktioner",
"description": "Andra funktioner kan ringa assistenten åt dig."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Dela API-nyckeln",
"description": "Andra funktioner kan använda den lagrade AI API-nyckeln utan att se den."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "AI-assistenten är avstängd på den här servern.",
"providersNeedOptIn": "Aktivera AI-assistenten ovan för att lägga till leverantörer.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "AI-assistent",
"description": "Låt användare aktivera AI-assistenten. Medan detta är avstängt är assistenten dold och blockerad för alla."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Tillåtna privata AI-värdar",
"description": "Värdar på ditt privata nätverk som användare kan hänvisa en leverantör till, till exempel en självhostad Ollama. Lägg en värd på varje rad."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Aktivera AI-assistenten",
"description": "Tillåt AI-assistenten att hjälpa till i den här värdens terminal. Av som standard och kräver fortfarande att AI är aktiverat för ditt konto."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"title": "Assistent",
"send": "Skicka",
"stop": "Stopp",
"save": "Spara",
"cancel": "Avboka",
"running": "spring",
"approve": "Godkänna",
"reject": "Avvisa",
"inputPlaceholder": "Fråga om era servrar, eller beskriv en förändring att föreslå",
"selectProvider": "Välj en leverantör",
"providerSettings": "Leverantörsinställningar",
"addProvider": "Lägg till leverantör",
"editProvider": "Redigera leverantör",
"removeProvider": "Ta bort leverantör",
"providerType": "Leverantör",
"providerLabel": "Namn",
"providerLabelPlaceholder": "Till exempel: Lokal Ollama",
"baseUrl": "Serveradress",
"apiKey": "API-nyckel",
"defaultModel": "Standardmodell",
"defaultModelPlaceholder": "Till exempel: llama3.1 eller claude-opus-5",
"labelRequired": "Ge den här leverantören ett namn",
"providerSaveFailed": "Kunde inte spara leverantören",
"providerUpdated": "Leverantören uppdaterad",
"providerDeleteFailed": "Kunde inte ta bort leverantören",
"privateEndpointHint": "Adresser i ditt privata nätverk behöver en administratör som först tillåter värden.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
"providerAnthropic": "Antropisk",
"providerOpenai": "Öppen AI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "OpenAI-kompatibel",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"toolResult": "Resultat",
"statusApplied": "Tillämpad",
"statusRejected": "Avvisad",
"proposalApplied": "Ändring tillämpad",
"proposalApplyFailed": "Kunde inte tillämpa ändringen",
"proposalRejectFailed": "Kunde inte avvisa ändringen",
"enableTitle": "Aktivera AI-assistenten",
"enableDescription": "Låt assistenten läsa dina inställningar och föreslå ändringar som du kan godkänna.",
"readOnlyCommands": "Tillåt skrivskyddade diagnostikkommandon",
"readOnlyCommandsDescription": "Assistenten kan köra en kort lista med säkra kommandon som df och uptime utan att fråga varje gång. Allt som ändrar en server föreslås alltid först.",
"modelDetectFailed": "Kunde inte nå leverantören, så detta är en allmän lista. Du kan skriva in vilket modellnamn som helst.",
"modelCustom": "Ange ett modellnamn",
"modelRefresh": "Uppdatera listan",
"modelPlaceholder": "Välj eller skriv en modell",
"attachHint": "Skriv @ för att referera till en värd, ett kodavsnitt eller en automatisering. Ändringar föreslås för dig att godkänna.",
"runCommandTitle": "Kör kommando",
"assistant": "AI-assistent",
"terminalPanelEmpty": "Fråga assistenten om den här värden. Allt som ändras kräver ditt godkännande först.",
"terminalPanelPlaceholder": "Fråga om den här värden...",
"noProvidersConfigured": "Ingen AI-leverantör är konfigurerad ännu. Lägg till en på fliken AI-assistent.",
"runsInOpenTerminal": "Körs i din öppna terminalsession.",
"runInTerminal": "Sikt",
"terminalContextPrefill": "Här är min terminalutgång:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Låt andra funktioner använda din AI-leverantörs API-nyckel för sina egna förfrågningar. Nyckeln kopieras aldrig och du kan återkalla den när som helst."
}
},
"nav": {
"ai": "AI"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "AI-assistent",
"aiIntro": "Termix kan inkludera en valfri AI-assistent. Du kan ändra detta senare i dina inställningar.",
"aiSkipTitle": "Lämna den av",
"aiSkipDesc": "Termix fungerar som den gör nu. Assistenten förblir dold.",
"aiEnableTitle": "Slå på den",
"aiEnableDesc": "Lägger till en assistent som läser din installation och föreslår ändringar som du godkänner. Kräver en leverantör som du tillhandahåller, till exempel en lokal Ollama.",
"aiNote": "Ingenting skickas någonstans förrän du lägger till en leverantör och skickar ett meddelande."
},
"hosts": {
"docsLink": "View docs"
"docsLink": "Visa dokument"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+85 -82
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "ใช้ตัวช่วย",
"description": "เปิดผู้ช่วยเสมือนจริงแล้วถามคำถามได้เลย"
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "จัดการผู้ให้บริการ",
"description": "เพิ่ม แก้ไข และลบผู้ให้บริการ AI และคีย์ API ของพวกเขา"
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "ยื่นข้อเสนอ",
"description": "ให้ผู้ช่วยดำเนินการเปลี่ยนแปลงตามที่ระบบแนะนำ"
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "ใช้ AI จากฟีเจอร์อื่นๆ",
"description": "ฟังก์ชันอื่นๆ อาจโทรติดต่อผู้ช่วยในนามของคุณ"
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "แชร์คีย์ API",
"description": "ฟังก์ชันอื่นๆ อาจใช้คีย์ API ของ AI ที่บันทึกไว้โดยไม่เห็นคีย์นั้น"
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "ระบบผู้ช่วย AI ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้",
"providersNeedOptIn": "เปิดใช้งานผู้ช่วย AI ด้านบนเพื่อเพิ่มผู้ให้บริการ",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "ผู้ช่วย AI",
"description": "อนุญาตให้ผู้ใช้เปิดใช้งานผู้ช่วย AI ได้ เมื่อปิดใช้งานอยู่ ผู้ช่วยจะถูกซ่อนและบล็อกไม่ให้ใครเห็น"
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "อนุญาตให้โฮสต์ AI ส่วนตัว",
"description": "โฮสต์บนเครือข่ายส่วนตัวของคุณที่ผู้ใช้สามารถชี้ไปยังผู้ให้บริการได้ เช่น Ollama ที่ติดตั้งเอง ให้ใส่โฮสต์หนึ่งตัวต่อหนึ่งบรรทัด"
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "เปิดใช้งานผู้ช่วย AI",
"description": "อนุญาตให้ผู้ช่วย AI ช่วยเหลือในเทอร์มินัลของโฮสต์นี้ โดยค่าเริ่มต้นจะปิดอยู่ และยังคงต้องเปิดใช้งาน AI สำหรับบัญชีของคุณก่อน"
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"title": "ผู้ช่วย",
"send": "ส่ง",
"stop": "หยุด",
"save": "บันทึก",
"cancel": "ยกเลิก",
"running": "วิ่ง",
"approve": "อนุมัติ",
"reject": "ปฏิเสธ",
"inputPlaceholder": "สอบถามเกี่ยวกับเซิร์ฟเวอร์ของคุณ หรืออธิบายการเปลี่ยนแปลงที่คุณต้องการเสนอแนะ",
"selectProvider": "เลือกผู้ให้บริการ",
"providerSettings": "การตั้งค่าผู้ให้บริการ",
"addProvider": "เพิ่มผู้ให้บริการ",
"editProvider": "แก้ไขผู้ให้บริการ",
"removeProvider": "ลบผู้ให้บริการ",
"providerType": "ผู้ให้บริการ",
"providerLabel": "ชื่อ",
"providerLabelPlaceholder": "ตัวอย่างเช่น: Ollama ท้องถิ่น",
"baseUrl": "ที่อยู่เซิร์ฟเวอร์",
"apiKey": "คีย์ API",
"defaultModel": "โมเดลเริ่มต้น",
"defaultModelPlaceholder": "ตัวอย่างเช่น: llama3.1 หรือ claude-opus-5",
"labelRequired": "ตั้งชื่อให้ผู้ให้บริการรายนี้",
"providerSaveFailed": "ไม่สามารถบันทึกผู้ให้บริการได้",
"providerUpdated": "ผู้ให้บริการได้รับการอัปเดตแล้ว",
"providerDeleteFailed": "ไม่สามารถลบผู้ให้บริการได้",
"privateEndpointHint": "การเข้าถึงที่อยู่บนเครือข่ายส่วนตัวของคุณนั้น จำเป็นต้องให้ผู้ดูแลระบบอนุญาตก่อน",
"providerOllama": "โอลาม่า",
"providerAnthropic": "แอนโทรปิก",
"providerOpenai": "โอเพ่นไอ",
"providerGemini": "กูเกิล เจมินี",
"providerOpenaiCompatible": "เข้ากันได้กับ OpenAI",
"toolArguments": "ป้อนข้อมูล",
"toolResult": "ผลลัพธ์",
"statusApplied": "สมัครแล้ว",
"statusRejected": "ถูกปฏิเสธ",
"proposalApplied": "มีการเปลี่ยนแปลงเกิดขึ้น",
"proposalApplyFailed": "ไม่สามารถทำการเปลี่ยนแปลงได้",
"proposalRejectFailed": "ไม่สามารถปฏิเสธการเปลี่ยนแปลงได้",
"enableTitle": "เปิดใช้งานผู้ช่วย AI",
"enableDescription": "ให้ผู้ช่วยอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงเพื่อให้คุณอนุมัติ",
"readOnlyCommands": "อนุญาตคำสั่งวินิจฉัยแบบอ่านอย่างเดียว",
"readOnlyCommandsDescription": "ผู้ช่วยอาจเรียกใช้คำสั่งที่ปลอดภัยเพียงไม่กี่คำสั่ง เช่น df และ uptime โดยไม่ต้องถามทุกครั้ง คำสั่งใดๆ ที่เปลี่ยนแปลงสถานะของเซิร์ฟเวอร์จะถูกเสนอให้ดำเนินการก่อนเสมอ",
"modelDetectFailed": "ไม่สามารถติดต่อผู้ให้บริการได้ ดังนั้นนี่จึงเป็นรายการทั่วไป คุณสามารถพิมพ์ชื่อรุ่นใดก็ได้",
"modelCustom": "ป้อนชื่อรุ่น",
"modelRefresh": "รีเฟรชรายการ",
"modelPlaceholder": "เลือกหรือพิมพ์แบบจำลอง",
"attachHint": "พิมพ์ @ เพื่ออ้างอิงถึงโฮสต์ สนิปเป็ต หรือระบบอัตโนมัติ การเปลี่ยนแปลงที่เสนอจะถูกนำมาให้คุณอนุมัติ",
"runCommandTitle": "เรียกใช้คำสั่ง",
"assistant": "ผู้ช่วย AI",
"terminalPanelEmpty": "สอบถามผู้ช่วยเกี่ยวกับโฮสต์นี้ การเปลี่ยนแปลงสถานะใดๆ ต้องได้รับการอนุมัติจากคุณก่อน",
"terminalPanelPlaceholder": "สอบถามเกี่ยวกับโฮสต์รายนี้...",
"noProvidersConfigured": "ยังไม่ได้ตั้งค่าผู้ให้บริการ AI เพิ่มผู้ให้บริการในแท็บผู้ช่วย AI",
"runsInOpenTerminal": "ทำงานในเซสชันเทอร์มินัลที่เปิดอยู่ของคุณ",
"runInTerminal": "วิ่ง",
"terminalContextPrefill": "นี่คือผลลัพธ์จากเทอร์มินัลของฉัน:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "อนุญาตให้ฟีเจอร์อื่นๆ ใช้คีย์ API ของผู้ให้บริการ AI ของคุณสำหรับการร้องขอของตนเอง คีย์นี้จะไม่ถูกคัดลอก และคุณสามารถยกเลิกได้ทุกเมื่อ"
}
},
"nav": {
"ai": "AI"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "ผู้ช่วย AI",
"aiIntro": "Termix อาจมีผู้ช่วย AI เสริม คุณสามารถเปลี่ยนการตั้งค่าได้ในภายหลัง",
"aiSkipTitle": "ปิดมันไว้",
"aiSkipDesc": "Termix ทำงานเหมือนเดิมทุกประการ ตัวช่วยยังคงซ่อนอยู่",
"aiEnableTitle": "เปิดใช้งาน",
"aiEnableDesc": "เพิ่มผู้ช่วยที่จะอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงที่คุณต้องอนุมัติ จำเป็นต้องมีผู้ให้บริการที่คุณจัดหาให้ เช่น Ollama ในพื้นที่ของคุณ",
"aiNote": "จะไม่มีการส่งข้อมูลใดๆ จนกว่าคุณจะเพิ่มผู้ให้บริการและส่งข้อความ"
},
"hosts": {
"docsLink": "View docs"
"docsLink": "ดูเอกสาร"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+75 -72
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Yardımcıyı kullanın",
"description": "Asistanı açın ve ona sorular sorun."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Sağlayıcıları yönetin",
"description": "Yapay zeka sağlayıcılarını ve API anahtarlarını ekleyin, düzenleyin ve kaldırın."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Tekliflerinizi sunun.",
"description": "Yardımcının önerdiği değişiklikleri uygulamasına izin verin."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Diğer özelliklerden yapay zeka kullanın.",
"description": "Diğer özellikler sizin adınıza asistanı arayabilir."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "API anahtarını paylaşın",
"description": "Diğer özellikler, kaydedilmiş yapay zeka API anahtarını görmeden kullanabilir."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "Bu sunucuda yapay zeka asistanı devre dışı bırakılmıştır.",
"providersNeedOptIn": "Sağlayıcı eklemek için yukarıdaki yapay zeka asistanını açın.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "Yapay zeka asistanı",
"description": "Kullanıcıların yapay zeka asistanını açmasına izin verin. Bu özellik kapalıyken, asistan gizlenir ve herkes için engellenir."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Özel yapay zeka sunucularına izin verildi.",
"description": "Kullanıcıların bir sağlayıcıya yönlendirebileceği özel ağınızdaki sunucular (örneğin, kendi sunucunuzda barındırdığınız Ollama). Her satıra bir sunucu yazın."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Yapay Zeka Asistanını Etkinleştir",
"description": "Bu sunucunun terminalinde yapay zeka asistanının yardımcı olmasına izin verin. Varsayılan olarak kapalıdır ve hesabınız için yapay zekanın etkinleştirilmiş olması gerekir."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "Asistan",
"send": "Göndermek",
"stop": "Durdurma",
"save": "Kaydet",
"cancel": "İptal",
"running": "çalışan",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "Onaylamak",
"reject": "Reddetmek",
"inputPlaceholder": "Sunucularınız hakkında bilgi isteyin veya önereceğiniz bir değişikliği açıklayın.",
"selectProvider": "Bir sağlayıcı seçin",
"providerSettings": "Sağlayıcı ayarları",
"addProvider": "Sağlayıcı ekle",
"editProvider": "Sağlayıcıyı düzenle",
"removeProvider": "Sağlayıcıyı kaldır",
"providerType": "Sağlayıcı",
"providerLabel": "Ad",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerLabelPlaceholder": "Örneğin: Yerel Ollama",
"baseUrl": "Sunucu adresi",
"apiKey": "API anahtarı",
"defaultModel": "Varsayılan model",
"defaultModelPlaceholder": "Örneğin: llama3.1 veya claude-opus-5",
"labelRequired": "Bu sağlayıcıya bir isim verin.",
"providerSaveFailed": "Sağlayıcı kaydedilemedi.",
"providerUpdated": "Sağlayıcı güncellendi.",
"providerDeleteFailed": "Sağlayıcı kaldırılamadı.",
"privateEndpointHint": "Özel ağınızdaki adreslerin kullanılabilmesi için öncelikle yöneticinin sunucuya izin vermesi gerekmektedir.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerAnthropic": "Antropik",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "OpenAI uyumlu",
"toolArguments": "Giriş",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "Sonuç",
"statusApplied": "Uygulandı",
"statusRejected": "Reddedilmiş",
"proposalApplied": "Değişiklik uygulandı.",
"proposalApplyFailed": "Değişiklik uygulanamadı.",
"proposalRejectFailed": "Değişikliği reddedemedim.",
"enableTitle": "Yapay zekâ asistanını etkinleştirin",
"enableDescription": "Asistanın ayarlarınızı okumasını ve onaylamanız için değişiklik önerileri sunmasını sağlayın.",
"readOnlyCommands": "Yalnızca okuma amaçlı tanı komutlarına izin ver",
"readOnlyCommandsDescription": "Yardımcı program, her seferinde sormadan df ve uptime gibi kısa bir güvenli komut listesini çalıştırabilir. Sunucuda değişiklik yapan her şey her zaman önce önerilir.",
"modelDetectFailed": "Sağlayıcıya ulaşılamadı, bu nedenle bu genel bir listedir. İstediğiniz model adını yazabilirsiniz.",
"modelCustom": "Bir model adı girin",
"modelRefresh": "Listeyi yenile",
"modelPlaceholder": "Bir model seçin veya yazın.",
"attachHint": "Bir sunucuya, kod parçasına veya otomasyona referans vermek için @ işaretini kullanın. Onaylamanız için değişiklikler öneriliyor.",
"runCommandTitle": "Çalıştır komutu",
"assistant": "Yapay Zeka Asistanı",
"terminalPanelEmpty": "Bu ev sahibi hakkında asistana danışın. Durum değişikliği gerektiren her şey önce sizin onayınızı gerektirir.",
"terminalPanelPlaceholder": "Bu ev sahibi hakkında bilgi isteyin...",
"noProvidersConfigured": "Henüz hiçbir yapay zeka sağlayıcısı yapılandırılmadı. Yapay zeka asistanı sekmesinden bir tane ekleyin.",
"runsInOpenTerminal": "Açık terminal oturumunuzda çalışır.",
"runInTerminal": "Çalıştır",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "İşte terminal çıktım:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Diğer özelliklerin kendi istekleri için yapay zeka sağlayıcınızın API anahtarını kullanmasına izin verin. Anahtar asla kopyalanmaz ve bunu istediğiniz zaman iptal edebilirsiniz."
}
},
"nav": {
"ai": "AI"
"ai": "Yapay zeka"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "Yapay zeka asistanı",
"aiIntro": "Termix isteğe bağlı bir yapay zeka asistanı içerebilir. Bunu daha sonra ayarlarınızdan değiştirebilirsiniz.",
"aiSkipTitle": "Kapalı bırakın",
"aiSkipDesc": "Termix şu anki haliyle çalışıyor. Asistan gizli kalıyor.",
"aiEnableTitle": "Açın",
"aiEnableDesc": "Ayarlarınızı okuyan ve onaylamanız halinde değişiklikler öneren bir asistan ekler. Yerel bir Ollama gibi, sizin sağladığınız bir sağlayıcıya ihtiyaç duyar.",
"aiNote": "Bir sağlayıcı ekleyip mesaj gönderene kadar hiçbir şey hiçbir yere gönderilmez."
},
"hosts": {
"docsLink": "Dokümanları görüntüle"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+85 -82
View File
@@ -1,120 +1,120 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Використовуйте помічника",
"description": "Відкрийте помічника та запитайте його."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Керування постачальниками",
"description": "Додавайте, редагуйте та видаляйте постачальників штучного інтелекту та їхні ключі API."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Застосувати пропозиції",
"description": "Нехай помічник внесе запропоновані ним зміни."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Використання ШІ з інших функцій",
"description": "Інші функції можуть викликати помічника від вашого імені."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Поділитися ключем API",
"description": "Інші функції можуть використовувати збережений ключ API штучного інтелекту, не бачачи його."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "Помічник зі штучним інтелектом вимкнено на цьому сервері.",
"providersNeedOptIn": "Увімкніть помічника зі штучним інтелектом вище, щоб додати постачальників.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "Асистент зі штучним інтелектом",
"description": "Дозвольте користувачам увімкнути помічника зі штучним інтелектом. Коли це вимкнено, помічник прихований і заблокований для всіх."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Дозволені приватні хости ШІ",
"description": "Хости у вашій приватній мережі, на які користувачі можуть вказувати провайдера, наприклад, Ollama з власним хостингом. Розмістіть по одному хосту в кожному рядку."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Увімкнути помічника зі штучним інтелектом",
"description": "Дозволити помічнику зі штучним інтелектом допомагати в терміналі цього хоста. Вимкнено за замовчуванням, але все одно потребує ввімкнення штучного інтелекту для вашого облікового запису."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"stop": "Stop",
"save": "Save",
"cancel": "Cancel",
"running": "running",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"providerLabel": "Name",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"title": "Помічник",
"send": "Надіслати",
"stop": "СТІЙ",
"save": "Зберегти",
"cancel": "Скасувати",
"running": "біг",
"approve": "Схвалити",
"reject": "Відхилити",
"inputPlaceholder": "Запитайте про ваші сервери або опишіть зміну, яку ви хочете запропонувати",
"selectProvider": "Виберіть постачальника",
"providerSettings": "Налаштування постачальника",
"addProvider": "Додати постачальника",
"editProvider": "Редагувати постачальника",
"removeProvider": "Видалити постачальника",
"providerType": "Постачальник",
"providerLabel": "Ім'я",
"providerLabelPlaceholder": "Наприклад: Місцевий Оллама",
"baseUrl": "Адреса сервера",
"apiKey": "Ключ API",
"defaultModel": "Модель за замовчуванням",
"defaultModelPlaceholder": "Наприклад: llama3.1 або claude-opus-5",
"labelRequired": "Дайте назву цьому постачальнику",
"providerSaveFailed": "Не вдалося зберегти постачальника",
"providerUpdated": "Постачальника оновлено",
"providerDeleteFailed": "Не вдалося видалити постачальника",
"privateEndpointHint": "Адреси у вашій приватній мережі спочатку потребують дозволу адміністратора хоста.",
"providerOllama": "Оллама",
"providerAnthropic": "Антропний",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"toolArguments": "Input",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"runInTerminal": "Run",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"providerGemini": "Google Близнюки",
"providerOpenaiCompatible": "Сумісний з OpenAI",
"toolArguments": "Вхід",
"toolResult": "Результат",
"statusApplied": "Застосовано",
"statusRejected": "Відхилено",
"proposalApplied": "Зміну застосовано",
"proposalApplyFailed": "Не вдалося застосувати зміну",
"proposalRejectFailed": "Не вдалося відхилити зміну",
"enableTitle": "Увімкнути помічника зі штучним інтелектом",
"enableDescription": "Дозвольте асистенту прочитати ваші налаштування та запропонувати зміни для вашого схвалення.",
"readOnlyCommands": "Дозволити діагностичні команди лише для читання",
"readOnlyCommandsDescription": "Помічник може виконувати короткий список безпечних команд, таких як df та uptime, не запитуючи щоразу. Будь-які зміни на сервері завжди пропонуються першими.",
"modelDetectFailed": "Не вдалося зв’язатися з постачальником, тому це загальний список. Ви можете ввести будь-яку назву моделі.",
"modelCustom": "Введіть назву моделі",
"modelRefresh": "Оновити список",
"modelPlaceholder": "Виберіть або введіть модель",
"attachHint": "Введіть @, щоб посилатися на хост, фрагмент або автоматизацію. Зміни пропонуються для вашого схвалення.",
"runCommandTitle": "Виконати команду",
"assistant": "Помічник зі штучним інтелектом",
"terminalPanelEmpty": "Запитайте асистента про цього хоста. Будь-яка зміна стану потребує вашого попереднього схвалення.",
"terminalPanelPlaceholder": "Запитайте про цього хоста...",
"noProvidersConfigured": "Постачальника штучного інтелекту ще не налаштовано. Додайте його на вкладці помічника штучного інтелекту.",
"runsInOpenTerminal": "Працює у вашому відкритому термінальному сеансі.",
"runInTerminal": "Бігти",
"terminalContextPrefill": "Ось мій вивід з терміналу:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Дозвольте іншим функціям використовувати ваш ключ API постачальника штучного інтелекту для власних запитів. Ключ ніколи не копіюється, і ви можете скасувати його будь-коли."
}
},
"nav": {
"ai": "AI"
"ai": "Штучний інтелект"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "Асистент зі штучним інтелектом",
"aiIntro": "Termix може включати додатковий помічник зі штучним інтелектом. Ви можете змінити це пізніше в налаштуваннях.",
"aiSkipTitle": "Залиште це вимкненим",
"aiSkipDesc": "Termix працює як і зараз. Помічник залишається прихованим.",
"aiEnableTitle": "Увімкніть це",
"aiEnableDesc": "Додає помічника, який читає ваші налаштування та пропонує зміни, які ви схвалюєте. Потрібен постачальник, якого ви надаєте, наприклад, місцевий Ollama.",
"aiNote": "Нічого нікуди не надсилається, доки ви не додасте постачальника та не надішлете повідомлення."
},
"hosts": {
"docsLink": "View docs"
"docsLink": "Переглянути документи"
},
"agents": {
"title": "AI Agent",
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+75 -72
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "Sử dụng trợ lý",
"description": "Mở trợ lý ảo và hỏi nó những câu hỏi."
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "Quản lý nhà cung cấp",
"description": "Thêm, chỉnh sửa và xóa các nhà cung cấp AI và khóa API của họ."
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "Áp dụng các đề xuất",
"description": "Hãy để trợ lý thực hiện những thay đổi mà nó đề xuất."
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "Sử dụng trí tuệ nhân tạo từ các tính năng khác",
"description": "Các tính năng khác có thể gọi trợ lý ảo thay mặt bạn."
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "Chia sẻ khóa API",
"description": "Các tính năng khác có thể sử dụng khóa API AI đã lưu trữ mà không cần nhìn thấy khóa đó."
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "Trợ lý AI đã bị tắt trên máy chủ này.",
"providersNeedOptIn": "Hãy bật trợ lý AI ở trên để thêm nhà cung cấp.",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "Trợ lý AI",
"description": "Cho phép người dùng bật trợ lý AI. Khi chức năng này tắt, trợ lý sẽ bị ẩn và chặn đối với tất cả mọi người."
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "Cho phép máy chủ AI riêng",
"description": "Các máy chủ trên mạng riêng của bạn mà người dùng có thể trỏ đến nhà cung cấp, chẳng hạn như Ollama tự lưu trữ. Đặt một máy chủ trên mỗi dòng."
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "Kích hoạt Trợ lý AI",
"description": "Cho phép trợ lý AI hỗ trợ trong thiết bị đầu cuối của máy chủ này. Mặc định là tắt, nhưng bạn vẫn cần bật AI cho tài khoản của mình."
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "Trợ lý",
"send": "Gửi",
"stop": "Bit dừng",
"save": "Lưu",
"cancel": "Hủy",
"running": "đang chạy",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "Chấp thuận",
"reject": "Từ chối",
"inputPlaceholder": "Hãy hỏi về máy chủ của bạn, hoặc mô tả một thay đổi mà bạn muốn đề xuất.",
"selectProvider": "Chọn nhà cung cấp",
"providerSettings": "Cài đặt nhà cung cấp",
"addProvider": "Thêm nhà cung cấp",
"editProvider": "Chỉnh sửa nhà cung cấp",
"removeProvider": "Xóa nhà cung cấp",
"providerType": "Nhà cung cấp",
"providerLabel": "Tên",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerLabelPlaceholder": "Ví dụ: Ollama địa phương",
"baseUrl": "Địa chỉ máy chủ",
"apiKey": "Khóa API",
"defaultModel": "Mô hình mặc định",
"defaultModelPlaceholder": "Ví dụ: llama3.1 hoặc claude-opus-5",
"labelRequired": "Đặt tên cho nhà cung cấp này",
"providerSaveFailed": "Không thể lưu nhà cung cấp",
"providerUpdated": "Nhà cung cấp đã cập nhật",
"providerDeleteFailed": "Không thể xóa nhà cung cấp",
"privateEndpointHint": "Các địa chỉ trên mạng riêng của bạn cần được quản trị viên cho phép truy cập trước.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerAnthropic": "Nhân loại",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "Tương thích với OpenAI",
"toolArguments": "Nhập",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "Kết quả",
"statusApplied": "Đã áp dụng",
"statusRejected": "Vật bị loại bỏ",
"proposalApplied": "Thay đổi đã được áp dụng",
"proposalApplyFailed": "Không thể áp dụng thay đổi",
"proposalRejectFailed": "Không thể từ chối thay đổi",
"enableTitle": "Kích hoạt trợ lý AI",
"enableDescription": "Hãy để trợ lý đọc cấu hình của bạn và đề xuất các thay đổi để bạn phê duyệt.",
"readOnlyCommands": "Cho phép các lệnh chẩn đoán chỉ đọc",
"readOnlyCommandsDescription": "Trợ lý có thể chạy một danh sách ngắn các lệnh an toàn như df và uptime mà không cần hỏi mỗi lần. Bất kỳ lệnh nào thay đổi máy chủ đều được đề xuất trước tiên.",
"modelDetectFailed": "Không thể liên lạc được với nhà cung cấp, vì vậy đây là danh sách chung. Bạn có thể nhập bất kỳ tên mẫu nào.",
"modelCustom": "Nhập tên mẫu",
"modelRefresh": "Làm mới danh sách",
"modelPlaceholder": "Chọn hoặc nhập mô hình",
"attachHint": "Nhập @ để tham chiếu đến máy chủ, đoạn mã hoặc quy trình tự động hóa. Các thay đổi được đề xuất để bạn phê duyệt.",
"runCommandTitle": "Chạy lệnh",
"assistant": "Trợ lý AI",
"terminalPanelEmpty": "Hãy hỏi trợ lý về máy chủ này. Bất cứ thay đổi nào về trạng thái đều cần sự chấp thuận của bạn trước.",
"terminalPanelPlaceholder": "Hãy hỏi về chủ nhà này...",
"noProvidersConfigured": "Chưa có nhà cung cấp AI nào được cấu hình. Hãy thêm một nhà cung cấp trong tab trợ lý AI.",
"runsInOpenTerminal": "Chương trình này chạy trong cửa sổ dòng lệnh đang mở của bạn.",
"runInTerminal": "Chạy",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "Đây là kết quả hiển thị trên terminal của tôi:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "Cho phép các tính năng khác sử dụng khóa API của nhà cung cấp AI của bạn cho các yêu cầu riêng của chúng. Khóa này không bao giờ được sao chép và bạn có thể thu hồi nó bất cứ lúc nào."
}
},
"nav": {
"ai": "AI"
"ai": "Trí tuệ nhân tạo"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "Trợ lý AI",
"aiIntro": "Termix có thể bao gồm trợ lý AI tùy chọn. Bạn có thể thay đổi điều này sau trong phần cài đặt.",
"aiSkipTitle": "Đừng làm vậy",
"aiSkipDesc": "Termix vẫn hoạt động như hiện tại. Trợ lý ảo vẫn ẩn mình.",
"aiEnableTitle": "Bật nó lên",
"aiEnableDesc": "Thêm một trợ lý đọc cấu hình của bạn và đề xuất các thay đổi mà bạn chấp thuận. Cần có nhà cung cấp do bạn chỉ định, chẳng hạn như Ollama địa phương.",
"aiNote": "Không có dữ liệu nào được gửi đi cho đến khi bạn thêm nhà cung cấp và gửi tin nhắn."
},
"hosts": {
"docsLink": "Xem tài liệu"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
+36 -36
View File
@@ -2,28 +2,28 @@
"permissions": {
"use": {
"title": "使用助手",
"description": "打开助手并向其提问。"
"description": "打开助手并向它提问。"
},
"manage_providers": {
"title": "管理服务提供商",
"description": "添加、编辑和移除 AI 服务提供商及其 API 密钥。"
"title": "管理供应商",
"description": "添加、编辑和删除人工智能提供商及其 API 密钥。"
},
"apply_proposals": {
"title": "应用建议",
"description": "允许助手执行其建议的更改。"
"title": "提交提案",
"description": "让助手执行它建议的更改。"
},
"services.use": {
"title": "在其他功能中使用 AI",
"description": "其他功能可以代表你调用助手。"
"title": "利用其他功能中的人工智能",
"description": "其他功能可能会代表您呼叫语音助手。"
},
"secrets.share": {
"title": "共享 API 密钥",
"description": "其他功能可以使用已保存的 AI API 密钥,但无法查看其内容。"
"title": "分享 API 密钥",
"description": "其他功能可能在看不到密钥的情况下使用已存储的 AI API 密钥。"
}
},
"settings": {
"assistantUnavailable": "此服务器已关闭 AI 助手。",
"providersNeedOptIn": "请先在上方启用 AI 助手,再添加服务提供商。",
"assistantUnavailable": "此服务器上的AI助手已关闭。",
"providersNeedOptIn": "开启上方的AI助手,即可添加服务提供商。",
"admin": {
"globallyEnabled": {
"label": "AI 助手",
@@ -31,13 +31,13 @@
},
"privateEndpoints": {
"label": "允许的私有 AI 主机",
"description": "允许用户将服务提供商指向的内网主机,例如自托管的 Ollama。每行填写一台主机。"
"description": "用户可向服务提供商指向的私有网络上的主机,例如自托管的 Ollama。每行填写一个主机。"
}
},
"host": {
"enableAiAssistant": {
"label": "启用 AI 助手",
"description": "允许 AI 助手在此主机的终端中提供帮助。默认关闭,且你的账户也必须启用 AI。"
"label": "启用人工智能助手",
"description": "允许 AI 助手在此主机的终端上提供帮助。默认情况下处于关闭状态,但仍需在您的帐户中启用 AI 功能。"
}
}
},
@@ -50,24 +50,24 @@
"running": "运行中",
"approve": "批准",
"reject": "拒绝",
"inputPlaceholder": "询问服务器相关问题,或描述你想进行的更改",
"inputPlaceholder": "询问服务器相关情况,或描述要提出的变更建议",
"selectProvider": "选择服务提供商",
"providerSettings": "服务提供商设置",
"addProvider": "添加服务提供商",
"providerSettings": "提供商设置",
"addProvider": "添加提供商",
"editProvider": "编辑提供商",
"removeProvider": "移除服务提供商",
"removeProvider": "移除提供者",
"providerType": "提供商",
"providerLabel": "名称",
"providerLabelPlaceholder": "例如:本地 Ollama",
"baseUrl": "服务器地址",
"apiKey": "API 密钥",
"defaultModel": "默认模型",
"defaultModelPlaceholder": "例如 llama3.1 或 claude-opus-5",
"defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
"labelRequired": "给此提供商起个名字",
"providerSaveFailed": "无法保存服务提供商",
"providerUpdated": "服务提供商已更新",
"providerDeleteFailed": "无法移除服务提供商",
"privateEndpointHint": "使用内网地址前,需要管理员先允许该主机。",
"providerSaveFailed": "无法保存提供商",
"providerUpdated": "提供商已更新",
"providerDeleteFailed": "无法移除提供商",
"privateEndpointHint": "您私有网络上的地址需要管理员先允许主机访问。",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerOpenai": "OpenAI",
@@ -77,28 +77,28 @@
"toolResult": "结果",
"statusApplied": "已应用",
"statusRejected": "已拒绝",
"proposalApplied": "更改已应用",
"proposalApplied": "变更已生效",
"proposalApplyFailed": "无法应用更改",
"proposalRejectFailed": "无法拒绝更改",
"enableTitle": "启用 AI 助手",
"enableDescription": "允许助手读取你的配置并提出更改建议,由你批准后执行。",
"enableDescription": "让助手读取您的设置并提出更改建议,供您批准。",
"readOnlyCommands": "允许只读诊断命令",
"readOnlyCommandsDescription": "助手可以执行 df、uptime 等少量安全命令,无需每次询问。任何会修改服务器的操作都会先提交建议。",
"readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。",
"modelDetectFailed": "无法联系到提供商,所以这里提供的是通用列表。您可以输入任何模型名称。",
"modelCustom": "请输入模型名称",
"modelRefresh": "刷新列表",
"modelPlaceholder": "选择或输入模型",
"attachHint": "输入 @ 引用主机、代码片段或自动化。更改会先提交给你批准。",
"runCommandTitle": "执行命令",
"assistant": "AI 助手",
"terminalPanelEmpty": "向助手询问此主机的相关问题。任何会改变状态的操作都需要先获得你的批准。",
"terminalPanelPlaceholder": "询问此主机的相关问题……",
"noProvidersConfigured": "尚未配置 AI 服务提供商,请在 AI 助手标签页中添加。",
"runsInOpenTerminal": "在你已打开的终端会话中执行。",
"attachHint": "输入 @ 符号可引用主机、代码片段或自动化流程。系统会提出更改建议,供您批准。",
"runCommandTitle": "运行命令",
"assistant": "人工智能助手",
"terminalPanelEmpty": "向助理询问有关此房东的信息。任何状态变更都需要您先批准。",
"terminalPanelPlaceholder": "询问一下这位房东的情况……",
"noProvidersConfigured": "尚未配置任何 AI 提供商。请在 AI 助手选项卡中添加。",
"runsInOpenTerminal": "在打开的终端会话中运行。",
"runInTerminal": "运行",
"terminalContextPrefill": "以下是我的终端输出:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "允许其他功能使用你的 AI 服务提供商 API 密钥发起请求。密钥不会被复制,你可以随时撤销授权。"
"shareApiKey": "允许其他功能使用您的 AI 提供商 API 密钥发出各自的请求。该密钥绝不会被复制,您可以随时撤销此授权。"
}
},
"nav": {
@@ -106,7 +106,7 @@
},
"onboarding": {
"aiTitle": "AI 助手",
"aiIntro": "Termix 提供可选的 AI 助手,你可以稍后在设置中更改。",
"aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。",
"aiSkipTitle": "禁用",
"aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。",
"aiEnableTitle": "启用",
@@ -193,6 +193,6 @@
"shortcuts": "Enter 发送或排队 · Shift+Enter 换行 · Esc 中断并暂停队列"
},
"plugin": {
"name": "AI 助手"
"name": "AI Assistant"
}
}
+76 -73
View File
@@ -1,117 +1,117 @@
{
"permissions": {
"use": {
"title": "Use the assistant",
"description": "Open the assistant and ask it things."
"title": "使用助手",
"description": "打開助手並向它提問。"
},
"manage_providers": {
"title": "Manage providers",
"description": "Add, edit and remove the AI providers and their API keys."
"title": "管理供應商",
"description": "新增、編輯和刪除人工智慧提供者及其 API 金鑰。"
},
"apply_proposals": {
"title": "Apply proposals",
"description": "Let the assistant carry out the changes it suggests."
"title": "提交提案",
"description": "讓助手執行它建議的更改。"
},
"services.use": {
"title": "Use AI from other features",
"description": "Other features may call the assistant on your behalf."
"title": "利用其他功能中的人工智慧",
"description": "其他功能可能會代表您呼叫語音助理。"
},
"secrets.share": {
"title": "Share the API key",
"description": "Other features may use the stored AI API key without seeing it."
"title": "分享 API 金鑰",
"description": "其他功能可能會在不查看金鑰的情況下使用已儲存的 AI API 金鑰。"
}
},
"settings": {
"assistantUnavailable": "The AI assistant is turned off on this server.",
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
"assistantUnavailable": "此伺服器上的AI助理已關閉。",
"providersNeedOptIn": "開啟上方的AI助手,即可新增服務提供者。",
"admin": {
"globallyEnabled": {
"label": "AI assistant",
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
"label": "人工智慧助手",
"description": "允許用戶開啟AI助理。關閉此功能後,助手將被隱藏,所有用戶均無法存取。"
},
"privateEndpoints": {
"label": "Allowed private AI hosts",
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
"label": "允許的私有人工智慧主機",
"description": "使用者可將服務提供者指向的私有網路上的主機,例如自架的 Ollama。每行填寫一個主機。"
}
},
"host": {
"enableAiAssistant": {
"label": "Enable AI Assistant",
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
"label": "啟用人工智慧助手",
"description": "允許 AI 助理在此主機的終端機上提供協助。預設為關閉狀態,但仍需在您的帳戶中啟用 AI 功能。"
}
}
},
"ai": {
"title": "Assistant",
"send": "Send",
"title": "助理",
"send": "傳送",
"stop": "停止位元",
"save": "儲存",
"cancel": "取消",
"running": "執行中",
"approve": "Approve",
"reject": "Reject",
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
"selectProvider": "Select a provider",
"providerSettings": "Provider settings",
"addProvider": "Add provider",
"editProvider": "Edit provider",
"removeProvider": "Remove provider",
"providerType": "Provider",
"approve": "核准",
"reject": "拒絕",
"inputPlaceholder": "詢問伺服器相關情況,或描述要提出的變更建議",
"selectProvider": "選擇服務提供者",
"providerSettings": "提供者設定",
"addProvider": "新增提供者",
"editProvider": "編輯提供者",
"removeProvider": "移除提供者",
"providerType": "提供者",
"providerLabel": "名稱",
"providerLabelPlaceholder": "For example: Local Ollama",
"baseUrl": "Server address",
"apiKey": "API key",
"defaultModel": "Default model",
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
"labelRequired": "Give this provider a name",
"providerSaveFailed": "Could not save the provider",
"providerUpdated": "Provider updated",
"providerDeleteFailed": "Could not remove the provider",
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
"providerOllama": "Ollama",
"providerAnthropic": "Anthropic",
"providerLabelPlaceholder": "例如:本地奧拉馬",
"baseUrl": "伺服器位址",
"apiKey": "API金鑰",
"defaultModel": "預設模型",
"defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
"labelRequired": "給這家服務提供者取個名字",
"providerSaveFailed": "無法儲存提供者",
"providerUpdated": "提供者已更新",
"providerDeleteFailed": "無法移除提供者",
"privateEndpointHint": "您私有網路上的位址需要管理員先允許主機存取。",
"providerOllama": "奧拉瑪",
"providerAnthropic": "人類學",
"providerOpenai": "OpenAI",
"providerGemini": "Google Gemini",
"providerOpenaiCompatible": "OpenAI compatible",
"providerOpenaiCompatible": "相容 OpenAI",
"toolArguments": "輸入",
"toolResult": "Result",
"statusApplied": "Applied",
"statusRejected": "Rejected",
"proposalApplied": "Change applied",
"proposalApplyFailed": "Could not apply the change",
"proposalRejectFailed": "Could not reject the change",
"enableTitle": "Enable the AI assistant",
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
"readOnlyCommands": "Allow read-only diagnostic commands",
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
"modelCustom": "Enter a model name",
"modelRefresh": "Refresh list",
"modelPlaceholder": "Choose or type a model",
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
"runCommandTitle": "Run command",
"assistant": "AI Assistant",
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
"terminalPanelPlaceholder": "Ask about this host...",
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
"runsInOpenTerminal": "Runs in your open terminal session.",
"toolResult": "結果",
"statusApplied": "應用",
"statusRejected": "已拒絕",
"proposalApplied": "變更已生效",
"proposalApplyFailed": "無法套用變更",
"proposalRejectFailed": "無法拒絕更改",
"enableTitle": "啟用人工智慧助手",
"enableDescription": "請助手讀取您的設定並提出更改建議,供您批准。",
"readOnlyCommands": "允許只讀診斷命令",
"readOnlyCommandsDescription": "助手可能會在不每次都詢問的情況下執行一些安全的命令,例如 `df` 和 `uptime`。任何會更改伺服器的操作都會優先被提出。",
"modelDetectFailed": "無法聯繫到供應商,所以這裡提供的是通用清單。您可以輸入任何型號名稱。",
"modelCustom": "請輸入型號名稱",
"modelRefresh": "重新整理清單",
"modelPlaceholder": "選擇或輸入型號",
"attachHint": "輸入 @ 符號可引用主機、程式碼片段或自動化流程。系統會提出更改建議,供您批准。",
"runCommandTitle": "運行命令",
"assistant": "人工智慧助手",
"terminalPanelEmpty": "向助理詢問有關此房東的資訊。任何狀態變更都需要您先批准。",
"terminalPanelPlaceholder": "詢問一下這位房東的狀況…",
"noProvidersConfigured": "尚未配置任何 AI 提供者。請在 AI 助理標籤中新增。",
"runsInOpenTerminal": "在開啟的終端機會話中運行。",
"runInTerminal": "執行",
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
"terminalContextPrefill": "以下是我的終端輸出:\n\n{{output}}\n\n",
"secrets": {
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
"shareApiKey": "允許其他功能使用您的 AI 提供者 API 金鑰發出各自的請求。該密鑰絕不會被複製,您可以隨時撤銷此授權。"
}
},
"nav": {
"ai": "AI"
"ai": "人工智慧"
},
"onboarding": {
"aiTitle": "AI assistant",
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
"aiSkipTitle": "Leave it off",
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
"aiEnableTitle": "Turn it on",
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
"aiTitle": "人工智慧助手",
"aiIntro": "Termix 可以包含一個可選的 AI 助手。您可以稍後在設定中變更此選項。",
"aiSkipTitle": "丟開",
"aiSkipDesc": "Termix 的運作方式與現在相同。助手保持隱藏狀態。",
"aiEnableTitle": "打開它",
"aiEnableDesc": "添加一個助手,它可以讀取您的設定並提出您批准的更改建議。需要您提供服務提供者,例如當地的 Ollama 服務提供者。",
"aiNote": "在您新增服務提供者並發送訊息之前,任何內容都不會發送到任何地方。"
},
"hosts": {
"docsLink": "檢視文件"
@@ -191,5 +191,8 @@
"reconnecting": "Reconnecting and restoring messages…",
"unavailable": "Session is no longer accessible. Check your permissions or sign in again.",
"shortcuts": "Enter sends or queues · Shift+Enter adds a line · Esc interrupts and pauses the queue"
},
"plugin": {
"name": "AI Assistant"
}
}
@@ -168,5 +168,8 @@
"showRead": "Wys leeswaarskuwings",
"allClear": "Alles duidelik",
"loading": "Laai tans..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "عرض تنبيهات القراءة",
"allClear": "كل شيء طبيعي",
"loading": "جارٍ التحميل..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Показване на известия за четене",
"allClear": "Всичко е чисто",
"loading": "Зареждане..."
},
"plugin": {
"name": "Alerts"
}
}
+122 -119
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "সতর্কতা"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "সতর্কতা ব্যবহার করুন",
"description": "ইনবক্সে অ্যালার্ট পান এবং সেগুলো আপনার নিজের চ্যানেলগুলোতে পাঠান।"
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "সতর্কতা",
"featureDesc": "সব অ্যালার্ট একটি ইনবক্সেই থাকবে, যা আপনি চাইলে ডিসকর্ড, এনটিএফওয়াই, ইমেল বা ওয়েবহুকে পাঠাতে পারবেন।"
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "সাধারণ",
"email": "ইমেল"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "টারমিক্স ঘোষণা",
"description": "টারমিক্স টিমের পক্ষ থেকে নিরাপত্তা বিজ্ঞপ্তি এবং নতুন রিলিজের মতো খবরগুলো সবার ইনবক্সে দেখান।"
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "(দিন) পর্যন্ত সতর্কতা চালু রাখুন",
"description": "প্রতিটি ইনবক্স থেকে পুরোনো অ্যালার্টগুলো মুছে ফেলা হয়।"
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP সার্ভার",
"description": "ইমেল চ্যানেলের জন্য প্রয়োজন। ইমেল বন্ধ করতে খালি রাখুন।",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP পোর্ট",
"description": "সাধারণত STARTTLS সহ 587 অথবা TLS সহ 465।"
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "শুরু থেকেই TLS ব্যবহার করুন",
"description": "পোর্ট ৪৬৫-এর জন্য চালু করুন। ৫৮৭-এর জন্য বন্ধ রাখুন, যেটি নিজে থেকেই TLS-এ আপগ্রেড হয়ে যায়।"
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "SMTP ব্যবহারকারীর নাম",
"description": "সার্ভারে লগইন করার প্রয়োজন না হলে এই স্থানটি খালি রাখুন।"
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "SMTP পাসওয়ার্ড",
"description": "এনক্রিপ্ট করে সংরক্ষণ করা হয়েছে।"
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"placeholder": "Termix <alerts@example.com>"
"label": "ঠিকানা থেকে",
"description": "প্রেরকের কাছ থেকে সতর্কতাগুলো আসে।",
"placeholder": "টারমিক্স <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "সতর্কতা পপআপ",
"description": "আপনি Termix ব্যবহার করার সময় কোন নতুন অ্যালার্টগুলো আসে? সেগুলো সবসময় ইনবক্সে আসে।",
"all": "সমস্ত সতর্কতা",
"warning": "সতর্কতা এবং সমালোচনামূলক",
"critical": "শুধুমাত্র সমালোচনামূলক",
"off": "কোনোটিই না"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "ইনবক্স",
"channels": "চ্যানেল",
"rules": "ডেলিভারি নিয়মাবলী"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"info": "তথ্য",
"success": "সাফল্য",
"warning": "সতর্কতা",
"critical": "সমালোচনামূলক"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"sourceTermix": "টার্মিক্স",
"openLink": "খোলা",
"view": "দেখুন",
"unread": "অপঠিত",
"deliveryFailed_one": "{{count}} চ্যানেল ব্যর্থ হয়েছে",
"deliveryFailed_other": "{{count}} চ্যানেল ব্যর্থ হয়েছে",
"markRead": "পঠিত হিসেবে চিহ্নিত করুন",
"markUnread": "অপঠিত হিসাবে চিহ্নিত করুন",
"markAllRead": "সবগুলো পঠিত হিসেবে চিহ্নিত করুন।",
"delete": "মুছে ফেলুন",
"clearRead": "পঠিত সতর্কতাগুলি মুছুন",
"cleared_one": "{{count}} সতর্কতা মুছে ফেলা হয়েছে",
"cleared_other": "মুছে ফেলা {{count}} সতর্কতা",
"filterAll": "সব",
"filterUnread": "অপঠিত",
"anySeverity": "যেকোনো তীব্রতা",
"anySource": "যেকোনো উৎস",
"openAll": "একটি ট্যাবে খুলুন",
"empty": "এখনো কোনো সতর্কতা আসেনি।",
"emptyUnread": "আপনি সবকিছু জেনে গেছেন।",
"loadMore": "আরও লোড করুন"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "চ্যানেল হলো এমন জায়গা যেখানে অ্যালার্টগুলো টারমিক্সের বাইরে যেতে পারে। ডেলিভারি রুলগুলো নির্ধারণ করে কোন অ্যালার্টগুলো সেখানে ব্যবহৃত হবে।",
"add": "চ্যানেল যোগ করুন",
"edit": "চ্যানেল সম্পাদনা করুন",
"test": "একটি পরীক্ষা পাঠান",
"testSent": "পরীক্ষার সতর্কতা পাঠানো হয়েছে",
"testFailed": "পরীক্ষা ব্যর্থ হয়েছে: {{error}}",
"deleteConfirm": "\"{{name}} \" চ্যানেলটি মুছে ফেলবেন?",
"deleted": "চ্যানেল মুছে ফেলা হয়েছে",
"empty": "এখনো কোনো চ্যানেল নেই।",
"enabled": "সক্ষম করা হয়েছে",
"needsSave": "পাঠানোর আগে এই চ্যানেলটি আবার খুলতে ও সংরক্ষণ করতে হবে।",
"name": "নাম",
"nameRequired": "নাম আবশ্যক",
"type": "প্রকার",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"webhook": "ওয়েবহুক",
"ntfy": "এনটিএফওয়াই",
"discord": "ডিসকর্ড",
"email": "ইমেল"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"emailUnavailable": "ইমেইলের জন্য একটি SMTP সার্ভার প্রয়োজন, যা অ্যাডমিন অ্যালার্ট সেটিংসে সেট আপ করেন।",
"webhookUrl": "ইউআরএল",
"webhookHint": "প্রতিটি অ্যালার্টের জন্য একটি JSON বডি পাওয়া যায়।",
"method": "পদ্ধতি",
"headers": "হেডার",
"headersHint": "প্রতি লাইনে একটি করে, যেমন নাম: মান।",
"ntfyServer": "সার্ভার ইউআরএল",
"ntfyTopic": "বিষয়",
"ntfyToken": "প্রবেশ টোকেন (ঐচ্ছিক)",
"discordUrl": "ডিসকর্ড ওয়েবহুক ইউআরএল",
"discordHint": "ডিসকর্ডে চ্যানেলের সেটিংস থেকে, ইন্টিগ্রেশনস-এর অধীনে।",
"discordUsername": "প্রদর্শনের নাম (ঐচ্ছিক)",
"discordAvatar": "অবতার ইউআরএল (ঐচ্ছিক)",
"emailTo": "পাঠান",
"emailHint": "একাধিক ঠিকানা কমা দিয়ে আলাদা করুন।",
"privateNetwork": "একটি ব্যক্তিগত নেটওয়ার্ক ঠিকানা অনুমোদন করুন",
"privateNetworkHint": "এটি শুধুমাত্র সেইসব হোস্টের ক্ষেত্রেই কাজ করে, যেগুলোকে অ্যাডমিন তার প্রাইভেট এন্ডপয়েন্ট তালিকায় অনুমোদন দেয়।"
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "একটি ডেলিভারি রুল আপনার চ্যানেলগুলিতে প্রাসঙ্গিক অ্যালার্ট পাঠায়। অ্যালার্টগুলো সবসময় ইনবক্সেও থেকে যায়।",
"add": "নিয়ম যোগ করুন",
"edit": "নিয়ম সম্পাদনা করুন",
"empty": "এখনো কোনো নিয়ম তৈরি হয়নি, তাই অ্যালার্টগুলো শুধু ইনবক্সেই দেখা যায়।",
"needChannel": "প্রথমে একটি চ্যানেল যোগ করুন।",
"enabled": "সক্ষম করা হয়েছে",
"name": "নাম",
"nameRequired": "নাম আবশ্যক",
"match": "পাঠানোর জন্য সতর্কতা",
"matchHint": "সবকিছুর জন্য, অটোমেশন। অটোমেশন থেকে প্রাপ্ত সবকিছুর জন্য, অথবা ঠিক এক ধরনের।",
"minSeverity": "অন্তত",
"channels": "পাঠান",
"channelRequired": "অন্তত একটি চ্যানেল বেছে নিন",
"deleteConfirm": "\"{{name}} \" নিয়মটি মুছে ফেলুন?",
"everything": "সবকিছু",
"summary": "{{match}}, {{severity}} বা তার বেশি, থেকে {{channels}} পর্যন্ত"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "বাতিল করুন",
"save": "সংরক্ষণ করুন",
"saving": "সঞ্চয়...",
"delete": "মুছে ফেলুন"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "সতর্কতা ফিড",
"description": "আপনার সর্বশেষ অ্যালার্টগুলো, এবং সেগুলোকে পঠিত হিসেবে চিহ্নিত করার একটি দ্রুত উপায়।",
"maxItems": "সর্বোচ্চ আইটেম",
"showRead": "পঠিত সতর্কতা দেখান",
"allClear": "সব পরিষ্কার",
"loading": "লোড হচ্ছে..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Mostra les alertes de lectura",
"allClear": "Tot clar",
"loading": "S'està carregant..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Zobrazit upozornění na přečtení",
"allClear": "Všechno čisté",
"loading": "Načítání..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Vis læseadvarsler",
"allClear": "Alt klart",
"loading": "Indlæser..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Lesebenachrichtigungen anzeigen",
"allClear": "Alles in Ordnung",
"loading": "Laden..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Εμφάνιση ειδοποιήσεων ανάγνωσης",
"allClear": "Ορίζοντας είναι σαφής",
"loading": "Φόρτωση..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Mostrar alertas de lectura",
"allClear": "Todo correcto",
"loading": "Cargando..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Näytä lukuilmoitukset",
"allClear": "Kaikki selvää",
"loading": "Ladataan..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Afficher les alertes de lecture",
"allClear": "Aucune alerte",
"loading": "Chargement..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "הצג התראות קריאה",
"allClear": "הכל ברור",
"loading": "טְעִינָה..."
},
"plugin": {
"name": "Alerts"
}
}
+88 -85
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "अलर्ट का उपयोग करें",
"description": "इनबॉक्स में अलर्ट प्राप्त करें और उन्हें अपने चैनलों पर भेजें।"
}
},
"onboarding": {
"feature": "अलर्ट",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "सभी अलर्ट एक ही इनबॉक्स में, और यदि आप चाहें तो उन्हें डिस्कोर्ड, एनटीएफआई, ईमेल या वेबहुक पर भेजा जा सकता है।"
},
"settings": {
"group": {
@@ -19,141 +19,141 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "टर्मिक्स की घोषणाएँ",
"description": "टर्मिक्स टीम से संबंधित समाचार, जैसे कि सुरक्षा संबंधी सूचनाएं और विज्ञप्तियां, सभी के इनबॉक्स में दिखाएं।"
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "(दिनों) के लिए अलर्ट चालू रखें",
"description": "सभी इनबॉक्स से पुराने अलर्ट हटा दिए जाते हैं।"
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "एसएमटीपी सर्वर",
"description": "ईमेल चैनलों के लिए आवश्यक। ईमेल बंद करने के लिए इसे खाली छोड़ दें।",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "एसएमटीपी पोर्ट",
"description": "आमतौर पर STARTTLS के साथ 587 या TLS के साथ 465 का उपयोग किया जाता है।"
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "शुरुआत से ही TLS का उपयोग करें",
"description": "पोर्ट 465 के लिए इसे चालू करें। पोर्ट 587 के लिए इसे बंद रखें, क्योंकि यह अपने आप TLS में अपग्रेड हो जाता है।"
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "एसएमटीपी उपयोगकर्ता नाम",
"description": "यदि सर्वर को लॉगिन की आवश्यकता नहीं है तो इसे खाली छोड़ दें।"
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "एसएमटीपी पासवर्ड",
"description": "एन्क्रिप्टेड रूप में संग्रहीत।"
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"placeholder": "Termix <alerts@example.com>"
"label": "इस पते से",
"description": "प्रेषक अलर्ट कहाँ से आते हैं?",
"placeholder": "टर्मिक्स <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "अलर्ट पॉपअप",
"description": "टर्मिक्स का उपयोग करते समय कौन-कौन से नए अलर्ट आते हैं? वे हमेशा आपके इनबॉक्स में आते हैं।",
"all": "सभी अलर्ट",
"warning": "चेतावनी और महत्वपूर्ण",
"critical": "केवल महत्वपूर्ण",
"off": "कोई नहीं"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "इनबॉक्स",
"channels": "चैनल",
"rules": "Delivery rules"
"rules": "डिलीवरी नियम"
},
"severity": {
"info": "जानकारी",
"success": "सफल",
"warning": "चेतावनी",
"critical": "Critical"
"critical": "गंभीर"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "खोलें",
"view": "देखें",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "अपठित ग",
"deliveryFailed_one": "{{count}} चैनल विफल हो गया",
"deliveryFailed_other": "{{count}} चैनल विफल हो गए",
"markRead": "पढ़े हुए का चिह्न",
"markUnread": "अपठित के रूप में चिह्नित करें",
"markAllRead": "सभी को पढ़ा हुआ मार्क करें",
"delete": "हटाएँ",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "पढ़े गए अलर्ट हटाएं",
"cleared_one": "अलर्ट हटा दिया गया {{count}}",
"cleared_other": "हटाए गए {{count}} अलर्ट",
"filterAll": "सभी",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "अपठित ग",
"anySeverity": "किसी भी गंभीरता",
"anySource": "कोई भी स्रोत",
"openAll": "एक टैब में खोलें",
"empty": "अभी तक कोई अलर्ट नहीं है।",
"emptyUnread": "आप सभी अपडेट्स से अवगत हैं।",
"loadMore": "और लोड करें"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "चैनल वो जगह हैं जहां अलर्ट टर्मिक्स से बाहर जा सकते हैं। डिलीवरी नियम तय करते हैं कि कौन से अलर्ट इनका उपयोग करेंगे।",
"add": "चैनल जोड़ें",
"edit": "चैनल संपादित करें",
"test": "टेस्ट भेजें",
"testSent": "परीक्षण अलर्ट भेजा गया",
"testFailed": "परीक्षण विफल: {{error}}",
"deleteConfirm": "चैनल \"{{name}} \" को हटा दें?",
"deleted": "चैनल हटा दिया गया",
"empty": "अभी तक कोई चैनल उपलब्ध नहीं हैं।",
"enabled": "सक्षम",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "भेजने से पहले इस चैनल को दोबारा खोलकर सेव करना होगा।",
"name": "नाम",
"nameRequired": "नाम आवश्यक है",
"type": "प्रकार",
"types": {
"webhook": "Webhook",
"webhook": "WEbhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "ईमेल"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "ईमेल के लिए एक SMTP सर्वर की आवश्यकता होती है, जिसे एडमिन अलर्ट सेटिंग्स में सेट करता है।",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "प्रत्येक अलर्ट के लिए एक JSON बॉडी प्राप्त करता है।",
"method": "तरीका",
"headers": "हेडर",
"headersHint": "एक पंक्ति में एक, जैसे नाम: मान।",
"ntfyServer": "सर्वर URL",
"ntfyTopic": "विषय",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyToken": "एक्सेस टोकन (वैकल्पिक)",
"discordUrl": "डिस्कॉर्ड वेबहुक यूआरएल",
"discordHint": "डिस्कोर्ड में चैनल की सेटिंग में, इंटीग्रेशन के अंतर्गत।",
"discordUsername": "प्रदर्शन नाम (वैकल्पिक)",
"discordAvatar": "अवतार यूआरएल (वैकल्पिक)",
"emailTo": "भेजना",
"emailHint": "एक से अधिक पतों को अल्पविराम से अलग करें।",
"privateNetwork": "एक निजी नेटवर्क पते की अनुमति दें",
"privateNetworkHint": "यह सुविधा केवल उन होस्ट्स के लिए काम करती है जिन्हें एडमिन निजी एंडपॉइंट सूची में शामिल करने की अनुमति देता है।"
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "एक डिलीवरी नियम आपके चैनलों पर मिलान करने वाले अलर्ट भेजता है। अलर्ट हमेशा आपके इनबॉक्स में भी रहते हैं।",
"add": "नियम जोड़ें",
"edit": "नियम संपादित करें",
"empty": "अभी तक कोई नियम नहीं बने हैं, इसलिए अलर्ट केवल इनबॉक्स में ही दिखाई देंगे।",
"needChannel": "पहले एक चैनल जोड़ें।",
"enabled": "सक्षम",
"name": "नाम",
"nameRequired": "नाम आवश्यक है",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "भेजे जाने वाले अलर्ट",
"matchHint": "* हर चीज के लिए, स्वचालन। * स्वचालन से लेकर हर चीज के लिए, या एक सटीक प्रकार के लिए।",
"minSeverity": "कम से कम",
"channels": "भेजना",
"channelRequired": "कम से कम एक चैनल चुनें",
"deleteConfirm": "क्या नियम \"{{name}} \" को हटा दें?",
"everything": "सब कुछ",
"summary": "{{match}}, {{severity}} या इससे अधिक, से {{channels}} तक"
},
"actions": {
"cancel": "रद्द करें",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "अलर्ट फीड",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "आपके नवीनतम अलर्ट, जिन्हें आप आसानी से पढ़ सकते हैं।",
"maxItems": "अधिकतम आइटम",
"showRead": "पढ़े जाने के अलर्ट दिखाएँ",
"allClear": "सब ठीक है",
"loading": "लोड हो रहा है..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Olvasási értesítések megjelenítése",
"allClear": "Minden tiszta",
"loading": "Terhelés..."
},
"plugin": {
"name": "Alerts"
}
}
+117 -114
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Peringatan"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Gunakan peringatan",
"description": "Dapatkan notifikasi di kotak masuk dan kirimkan ke saluran Anda sendiri."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Peringatan",
"featureDesc": "Semua notifikasi dalam satu kotak masuk, yang kemudian dikirim ke Discord, ntfy, email, atau webhook jika Anda mau."
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "Umum",
"email": "E-mail"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Pengumuman Termix",
"description": "Tampilkan berita dari tim Termix, seperti pemberitahuan keamanan dan rilis, di kotak masuk setiap orang."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Aktifkan peringatan selama (hari)",
"description": "Notifikasi lama dihapus dari setiap kotak masuk."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "Server SMTP",
"description": "Diperlukan untuk saluran email. Biarkan kosong untuk menonaktifkan email.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "Port SMTP",
"description": "Biasanya 587 dengan STARTTLS atau 465 dengan TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Gunakan TLS sejak awal.",
"description": "Aktifkan untuk port 465. Biarkan nonaktif untuk port 587, yang akan secara otomatis diupgrade ke TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "Nama pengguna SMTP",
"description": "Biarkan kosong jika server tidak memerlukan login."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Kata sandi SMTP",
"description": "Disimpan dalam keadaan terenkripsi."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Dari alamat",
"description": "Peringatan pengirim berasal dari.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "Popup peringatan",
"description": "Notifikasi baru apa saja yang muncul saat Anda menggunakan Termix? Notifikasi tersebut selalu masuk ke kotak masuk Anda.",
"all": "Semua peringatan",
"warning": "Peringatan dan hal-hal penting",
"critical": "Kritik saja",
"off": "Tidak ada"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Kotak Masuk",
"channels": "Saluran",
"rules": "Aturan pengiriman"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"info": "Informasi",
"success": "Kesuksesan",
"warning": "Peringatan",
"critical": "Kritis"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"openLink": "Membuka",
"view": "Melihat",
"unread": "Belum dibaca",
"deliveryFailed_one": "{{count}} saluran gagal",
"deliveryFailed_other": "{{count}} saluran gagal",
"markRead": "Tandai sebagai sudah dibaca",
"markUnread": "Tandai sebagai belum dibaca",
"markAllRead": "Tandai semua sebagai sudah dibaca",
"delete": "Menghapus",
"clearRead": "Hapus notifikasi baca",
"cleared_one": "Peringatan {{count}} dihapus",
"cleared_other": "Peringatan {{count}} dihapus",
"filterAll": "Semua",
"filterUnread": "Belum dibaca",
"anySeverity": "Tingkat keparahan apa pun",
"anySource": "Sumber apa pun",
"openAll": "Buka di tab",
"empty": "Belum ada peringatan.",
"emptyUnread": "Anda sudah mengetahui semuanya.",
"loadMore": "Muat lebih banyak"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "Saluran adalah tempat peringatan dapat dikirim ke luar Termix. Aturan pengiriman memilih peringatan mana yang akan menggunakannya.",
"add": "Tambahkan saluran",
"edit": "Edit saluran",
"test": "Kirim tes",
"testSent": "Peringatan uji coba terkirim",
"testFailed": "Tes gagal: {{error}}",
"deleteConfirm": "Hapus saluran \"{{name}}\"?",
"deleted": "Saluran dihapus",
"empty": "Belum ada saluran.",
"enabled": "Diaktifkan",
"needsSave": "Saluran ini perlu dibuka dan disimpan kembali sebelum dapat mengirim data.",
"name": "Nama",
"nameRequired": "Nama wajib diisi.",
"type": "Jenis",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"discord": "Perselisihan",
"email": "E-mail"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "Email memerlukan server SMTP, yang diatur oleh administrator di pengaturan Notifikasi.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"webhookHint": "Menerima isi JSON untuk setiap peringatan.",
"method": "Metode",
"headers": "Judul",
"headersHint": "Satu per baris, seperti Nama: nilai.",
"ntfyServer": "URL Server",
"ntfyTopic": "Topik",
"ntfyToken": "Token akses (opsional)",
"discordUrl": "URL webhook Discord",
"discordHint": "Dari pengaturan saluran di Discord, di bawah Integrasi.",
"discordUsername": "Nama tampilan (opsional)",
"discordAvatar": "URL Avatar (opsional)",
"emailTo": "Kirim ke",
"emailHint": "Pisahkan lebih dari satu alamat dengan koma.",
"privateNetwork": "Izinkan alamat jaringan pribadi",
"privateNetworkHint": "Hanya berfungsi untuk host yang diizinkan oleh admin dalam daftar endpoint privat."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "Aturan pengiriman mengirimkan peringatan yang sesuai ke saluran Anda. Peringatan juga selalu tetap berada di kotak masuk.",
"add": "Tambahkan aturan",
"edit": "Edit aturan",
"empty": "Belum ada aturan, jadi notifikasi hanya muncul di kotak masuk.",
"needChannel": "Tambahkan saluran terlebih dahulu.",
"enabled": "Diaktifkan",
"name": "Nama",
"nameRequired": "Nama wajib diisi.",
"match": "Peringatan untuk dikirim",
"matchHint": "* untuk segala hal, otomatisasi.* untuk segala hal mulai dari otomatisasi, atau satu jenis tertentu.",
"minSeverity": "Setidaknya",
"channels": "Kirim ke",
"channelRequired": "Pilih setidaknya satu saluran",
"deleteConfirm": "Hapus aturan \"{{name}}\"?",
"everything": "Semuanya",
"summary": "{{match}}, {{severity}} atau lebih tinggi, hingga {{channels}}"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "Membatalkan",
"save": "Menyimpan",
"saving": "Penghematan...",
"delete": "Menghapus"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "Umpan Peringatan",
"description": "Notifikasi terbaru Anda, dengan cara cepat untuk menandainya sebagai sudah dibaca.",
"maxItems": "Jumlah maksimum",
"showRead": "Tampilkan pemberitahuan telah dibaca",
"allClear": "Semuanya aman.",
"loading": "Memuat..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Mostra gli avvisi di lettura",
"allClear": "Tutto a posto",
"loading": "Caricamento in corso..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "既読通知を表示する",
"allClear": "すべて正常",
"loading": "読み込み中..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "읽음 알림 표시",
"allClear": "모두 정상",
"loading": "로딩 중..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Leeswaarschuwingen weergeven",
"allClear": "Alles in orde",
"loading": "Laden..."
},
"plugin": {
"name": "Alerts"
}
}
+97 -94
View File
@@ -1,16 +1,16 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Varsler"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Bruk varsler",
"description": "Få varsler i innboksen og send dem til dine egne kanaler."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Varsler",
"featureDesc": "Alle varsler i én innboks, sendt videre til Discord, ntfy, e-post eller en webhook om du vil."
},
"settings": {
"group": {
@@ -19,141 +19,141 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Termix-kunngjøringer",
"description": "Vis nyheter fra Termix-teamet, som sikkerhetsvarsler og utgivelser, i alles innboks."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Behold varsler i (dager)",
"description": "Eldre varsler fjernes fra alle innbokser."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP-server",
"description": "Nødvendig for e-postkanaler. La stå tomt for å slå av e-post.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP-port",
"description": "Vanligvis 587 med STARTTLS eller 465 med TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Bruk TLS fra starten av",
"description": "Slå på port 465. Slå av for port 587, som oppgraderer til TLS på egenhånd."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "SMTP-brukernavn",
"description": "La feltet stå tomt hvis serveren ikke trenger pålogging."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "SMTP-passord",
"description": "Lagret kryptert."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Fra adresse",
"description": "Avsendervarslene kommer fra.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Varselspopup-vinduer",
"description": "Hvilke nye varsler dukker opp mens du bruker Termix? De havner alltid i innboksen.",
"all": "Alle varsler",
"warning": "Advarsler og kritiske",
"critical": "Kun kritisk",
"off": "Ingen"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Innboks",
"channels": "Kanaler",
"rules": "Leveringsregler"
},
"severity": {
"info": "Info",
"success": "Suksess",
"warning": "Advarsel",
"critical": "Critical"
"critical": "Kritisk"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"openLink": "Åpne",
"view": "Utsikt",
"unread": "Ulest",
"deliveryFailed_one": "{{count}} kanal mislyktes",
"deliveryFailed_other": "{{count}} kanaler mislyktes",
"markRead": "Merk som lest",
"markUnread": "Merk som ulest",
"markAllRead": "Merk alle som lest",
"delete": "Slett",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"clearRead": "Slett lesevarsler",
"cleared_one": "Slettet {{count}} -varsel",
"cleared_other": "Slettede {{count}} varsler",
"filterAll": "Alle",
"filterUnread": "Ulest",
"anySeverity": "Enhver alvorlighetsgrad",
"anySource": "Enhver kilde",
"openAll": "Åpne i en fane",
"empty": "Ingen varsler ennå.",
"emptyUnread": "Dere er helt oppdatert.",
"loadMore": "Last inn mer"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "Kanaler er der varsler kan sendes utenfor Termix. Leveringsregler velger hvilke varsler som bruker dem.",
"add": "Legg til kanal",
"edit": "Rediger kanal",
"test": "Send en test",
"testSent": "Testvarsel sendt",
"testFailed": "Testen mislyktes: {{error}}",
"deleteConfirm": "Slette kanalen «{{name}}»?",
"deleted": "Kanalen slettet",
"empty": "Ingen kanaler ennå.",
"enabled": "Aktivert",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Denne kanalen må åpnes og lagres på nytt før den kan sende.",
"name": "Navn",
"nameRequired": "Navn er påkrevd",
"type": "Type",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"discord": "Discord",
"discord": "Disharmoni",
"email": "E-post"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"emailUnavailable": "E-post trenger en SMTP-server, som en administrator konfigurerer i varslingsinnstillingene.",
"webhookUrl": "URL-adresse",
"webhookHint": "Henter en JSON-tekst for hvert varsel.",
"method": "Metode",
"headers": "Overskrifter",
"headersHint": "Én per linje, som Navn: verdi.",
"ntfyServer": "Server-URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyTopic": "Emne",
"ntfyToken": "Tilgangstoken (valgfritt)",
"discordUrl": "Discord webhook-URL",
"discordHint": "Fra kanalens innstillinger i Discord, under Integrasjoner.",
"discordUsername": "Visningsnavn (valgfritt)",
"discordAvatar": "Avatar-URL (valgfritt)",
"emailTo": "Send til",
"emailHint": "Skill mer enn én adresse med komma.",
"privateNetwork": "Tillat en privat nettverksadresse",
"privateNetworkHint": "Fungerer bare for verter som en administrator tillater i listen over private endepunkter."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "En leveringsregel sender samsvarende varsler til kanalene dine. Varsler forblir også alltid i innboksen.",
"add": "Legg til regel",
"edit": "Rediger regel",
"empty": "Ingen regler ennå, så varsler vises bare i innboksen.",
"needChannel": "Legg til en kanal først.",
"enabled": "Aktivert",
"name": "Navn",
"nameRequired": "Navn er påkrevd",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Varsler som skal sendes",
"matchHint": "* for alt, automatiseringer.* for alt fra automatiseringer, eller én eksakt type.",
"minSeverity": "Minst",
"channels": "Send til",
"channelRequired": "Velg minst én kanal",
"deleteConfirm": "Slette regelen «{{name}}»?",
"everything": "Alt",
"summary": "{{match}}, {{severity}} eller høyere, til {{channels}}"
},
"actions": {
"cancel": "Avbryt",
@@ -162,11 +162,14 @@
"delete": "Slett"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"name": "Varselstrøm",
"description": "Dine siste varsler, med en rask måte å merke dem som lest",
"maxItems": "Maks antall varer",
"showRead": "Vis lesevarsler",
"allClear": "Alt klart",
"loading": "Laster..."
},
"plugin": {
"name": "Alerts"
}
}
+84 -81
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Użyj alertów",
"description": "Otrzymuj powiadomienia do skrzynki odbiorczej i wysyłaj je na swoje kanały."
}
},
"onboarding": {
"feature": "Alerty",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "Każdy alert w jednej skrzynce odbiorczej, wysyłany na Discord, ntfy, e-mail lub webhook, jeśli sobie tego życzysz."
},
"settings": {
"group": {
@@ -19,97 +19,97 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Ogłoszenia Termix",
"description": "Wyświetlaj aktualności zespołu Termix, takie jak powiadomienia i komunikaty dotyczące bezpieczeństwa, w skrzynkach odbiorczych wszystkich użytkowników."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Zachowaj alerty przez (dni)",
"description": "Starsze alerty zostaną usunięte ze wszystkich skrzynek odbiorczych."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "Serwer SMTP",
"description": "Potrzebne dla kanałów e-mail. Pozostaw puste, aby wyłączyć pocztę e-mail.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "Port SMTP",
"description": "Zwykle 587 z STARTTLS lub 465 z TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Używaj protokołu TLS od samego początku",
"description": "Włącz dla portu 465. Pozostaw wyłączone dla portu 587, który automatycznie uaktualnia się do protokołu TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "Nazwa użytkownika SMTP",
"description": "Pozostaw puste, jeśli serwer nie wymaga logowania."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Hasło SMTP",
"description": "Przechowywane w postaci zaszyfrowanej."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Z adresu",
"description": "Od nadawcy pochodzą alerty.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Okienka z alertami",
"description": "Jakie nowe alerty pojawiają się podczas korzystania z Termix. Zawsze trafiają do skrzynki odbiorczej.",
"all": "Wszystkie alerty",
"warning": "Ostrzeżenia i ostrzeżenia krytyczne",
"critical": "Tylko krytyczne",
"off": "Żaden"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "Skrzynka odbiorcza",
"channels": "Kanały",
"rules": "Delivery rules"
"rules": "Zasady dostawy"
},
"severity": {
"info": "Informacje",
"success": "Powodzenie",
"warning": "Ostrzeżenie",
"critical": "Critical"
"critical": "Krytyczny"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Otwórz",
"view": "Podgląd",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "Niewykształcony",
"deliveryFailed_one": "{{count}} kanał uszkodzony",
"deliveryFailed_other": "{{count}} kanałów nie powiodło się",
"markRead": "Oznacz jako przeczytane",
"markUnread": "Oznacz jako nieprzeczytane",
"markAllRead": "Oznacz wszystkie jako przeczytane",
"delete": "Usuń",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "Usuń alerty odczytu",
"cleared_one": "Usunięto alert {{count}}",
"cleared_other": "Usunięto {{count}} alertów",
"filterAll": "Wszystkie",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "Niewykształcony",
"anySeverity": "Jakakolwiek powaga",
"anySource": "Jakiekolwiek źródło",
"openAll": "Otwórz w karcie",
"empty": "Brak alertów.",
"emptyUnread": "Wszyscy jesteście na bieżąco.",
"loadMore": "Załaduj więcej"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"intro": "Kanały to miejsca, do których alerty mogą trafiać poza Termix. Reguły dostarczania określają, które alerty z nich korzystają.",
"add": "Dodaj kanał",
"edit": "Edytuj kanał",
"test": "Wyślij test",
"testSent": "Wysłano alert testowy",
"testFailed": "Test nie powiódł się: {{error}}",
"deleteConfirm": "Usunąć kanał „{{name}}”?",
"deleted": "Kanał usunięty",
"empty": "No channels yet.",
"empty": "Brak kanałów.",
"enabled": "Włączona",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Przed wysłaniem należy ponownie otworzyć i zapisać ten kanał.",
"name": "Nazwa",
"nameRequired": "Nazwa jest wymagana",
"type": "Typ",
@@ -119,41 +119,41 @@
"discord": "Discord",
"email": "E-mail"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "Do obsługi poczty e-mail potrzebny jest serwer SMTP, który administrator konfiguruje w ustawieniach alertów.",
"webhookUrl": "Adres URL",
"webhookHint": "Gets a JSON body for every alert.",
"webhookHint": "Pobiera treść JSON dla każdego alertu.",
"method": "Metoda",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"headers": "Nagłówki",
"headersHint": "Po jednym w każdym wierszu, np. Nazwa: wartość.",
"ntfyServer": "Adres URL serwera",
"ntfyTopic": "Temat",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyToken": "Token dostępu (opcjonalnie)",
"discordUrl": "Adres URL webhooka Discord",
"discordHint": "W ustawieniach kanału w Discordzie, w sekcji Integracje.",
"discordUsername": "Nazwa wyświetlana (opcjonalnie)",
"discordAvatar": "Adres URL awatara (opcjonalnie)",
"emailTo": "Wyślij do",
"emailHint": "Oddziel więcej niż jeden adres przecinkami.",
"privateNetwork": "Zezwól na prywatny adres sieciowy",
"privateNetworkHint": "Działa tylko w przypadku hostów dozwolonych przez administratora na liście prywatnych punktów końcowych."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "Reguła dostarczania wysyła pasujące alerty do Twoich kanałów. Alerty zawsze pozostają w skrzynce odbiorczej.",
"add": "Dodaj regułę",
"edit": "Edytuj regułę",
"empty": "Nie ma jeszcze żadnych reguł, więc powiadomienia pojawiają się tylko w skrzynce odbiorczej.",
"needChannel": "Najpierw dodaj kanał.",
"enabled": "Włączona",
"name": "Nazwa",
"nameRequired": "Nazwa jest wymagana",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Alerty do wysłania",
"matchHint": "* do wszystkiego, automatyzacje.* do wszystkiego, od automatyzacji, lub jednego konkretnego rodzaju.",
"minSeverity": "Co najmniej",
"channels": "Wyślij do",
"channelRequired": "Wybierz co najmniej jeden kanał",
"deleteConfirm": "Usunąć regułę „{{name}}”?",
"everything": "Wszystko",
"summary": "{{match}}, {{severity}} lub wyższy, do {{channels}}"
},
"actions": {
"cancel": "Anuluj",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "Kanał alertów",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "Twoje najnowsze alerty z możliwością szybkiego oznaczenia ich jako przeczytanych",
"maxItems": "Maksymalna liczba elementów",
"showRead": "Pokaż alerty odczytu",
"allClear": "Bez alertów",
"loading": "Ładowanie..."
},
"plugin": {
"name": "Alerts"
}
}
+106 -103
View File
@@ -1,159 +1,159 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Alertas"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Usar alertas",
"description": "Receba alertas na caixa de entrada e envie-os para seus próprios canais."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Alertas",
"featureDesc": "Todas as notificações em uma única caixa de entrada, enviadas para o Discord, NTfy, e-mail ou webhook, se desejar."
},
"settings": {
"group": {
"general": "Geral",
"email": "Email"
"email": "E-mail"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Anúncios da Termix",
"description": "Exibir notícias da equipe Termix, como avisos de segurança e comunicados, na caixa de entrada de todos."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Manter alertas por (dias)",
"description": "Alertas antigos são removidos de todas as caixas de entrada."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "Servidor SMTP",
"description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "porta SMTP",
"description": "Normalmente, usa-se a porta 587 com STARTTLS ou a porta 465 com TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Use TLS desde o início.",
"description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "nome de usuário SMTP",
"description": "Deixe em branco se o servidor não exigir login."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Senha SMTP",
"description": "Armazenado criptografado."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Do endereço",
"description": "Os alertas do remetente vêm de:",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Janelas de alerta",
"description": "Quais novos alertas aparecem enquanto você usa o Termix? Eles sempre chegam na caixa de entrada.",
"all": "Todos os alertas",
"warning": "Avisos e alertas",
"critical": "Somente crítico",
"off": "Nenhum"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Caixa de entrada",
"channels": "Canais",
"rules": "Regras de entrega"
},
"severity": {
"info": "Info",
"success": "Success",
"info": "Informações",
"success": "Sucesso",
"warning": "Atenção",
"critical": "Critical"
"critical": "Crítico"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"openLink": "Abrir",
"view": "Visualizar",
"unread": "Não lido",
"deliveryFailed_one": "{{count}} canal falhou",
"deliveryFailed_other": "{{count}} canais falharam",
"markRead": "Marcar como lido",
"markUnread": "Marcar como não lida",
"markAllRead": "Marcar tudo como lido",
"delete": "Apagar",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"clearRead": "Excluir alertas de leitura",
"cleared_one": "Alerta excluído {{count}}",
"cleared_other": "Alertas excluídos {{count}}",
"filterAll": "Todos",
"filterUnread": "Não lido",
"anySeverity": "Qualquer gravidade",
"anySource": "Qualquer fonte",
"openAll": "Abrir em uma aba",
"empty": "Ainda não há alertas.",
"emptyUnread": "Vocês estão todos a par da situação.",
"loadMore": "Carregar mais"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"intro": "Os canais são locais para onde os alertas podem ser enviados fora do Termix. As regras de entrega definem quais alertas os utilizarão.",
"add": "Adicionar canal",
"edit": "Editar canal",
"test": "Enviar um teste",
"testSent": "Alerta de teste enviado",
"testFailed": "Teste falhou: {{error}}",
"deleteConfirm": "Excluir o canal \"{{name}}\"?",
"deleted": "Canal excluído",
"empty": "Ainda não há canais.",
"enabled": "Habilitado",
"needsSave": "Este canal precisa ser aberto e salvo novamente antes de poder enviar mensagens.",
"name": "Nome",
"nameRequired": "O nome é obrigatório.",
"type": "Tipo",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"discord": "Discórdia",
"email": "E-mail"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "O envio de e-mails requer um servidor SMTP, que um administrador configura nas configurações de Alertas.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "Obtém um corpo JSON para cada alerta.",
"method": "Método",
"headers": "Cabeçalhos",
"headersHint": "Um por linha, como Nome: valor.",
"ntfyServer": "URL do Servidor",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyTopic": "Tópico",
"ntfyToken": "Token de acesso (opcional)",
"discordUrl": "URL do webhook do Discord",
"discordHint": "Nas configurações do canal no Discord, em Integrações.",
"discordUsername": "Nome de exibição (opcional)",
"discordAvatar": "URL do avatar (opcional)",
"emailTo": "Enviar para",
"emailHint": "Separe mais de um endereço com vírgulas.",
"privateNetwork": "Permitir um endereço de rede privada",
"privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.",
"add": "Adicionar regra",
"edit": "Editar regra",
"empty": "Ainda não existem regras, portanto os alertas só aparecem na caixa de entrada.",
"needChannel": "Primeiro, adicione um canal.",
"enabled": "Habilitado",
"name": "Nome",
"nameRequired": "O nome é obrigatório.",
"match": "Alertas a enviar",
"matchHint": "* para tudo, automações.* para tudo, desde automações, até um tipo específico.",
"minSeverity": "Pelo menos",
"channels": "Enviar para",
"channelRequired": "Escolha pelo menos um canal.",
"deleteConfirm": "Apagar a regra \"{{name}}\"?",
"everything": "Tudo",
"summary": "{{match}}, {{severity}} ou superior, para {{channels}}"
},
"actions": {
"cancel": "Cancelar",
@@ -162,11 +162,14 @@
"delete": "Apagar"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"name": "Feed de alertas",
"description": "Seus alertas mais recentes, com uma maneira rápida de marcá-los como lidos.",
"maxItems": "Itens máximos",
"showRead": "Mostrar alertas de leitura",
"allClear": "Tudo certo",
"loading": "Carregando..."
},
"plugin": {
"name": "Alerts"
}
}
+87 -84
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Usar alertas",
"description": "Receba alertas na caixa de entrada e envie-os para os seus próprios canais."
}
},
"onboarding": {
"feature": "Alertas",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "Todas as notificações numa única caixa de entrada, enviadas para o Discord, NTfy, e-mail ou webhook, se desejar."
},
"settings": {
"group": {
@@ -19,97 +19,97 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Anúncios da Termix",
"description": "Exibir notícias da equipa Termix, como avisos de segurança e comunicados, na caixa de entrada de todos."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Manter alertas durante (dias)",
"description": "Os alertas antigos são removidos de todas as caixas de entrada."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"placeholder": "smtp.example.com"
"label": "Servidor SMTP",
"description": "Necessário para canais de e-mail. Deixe em branco para desativar o e-mail.",
"placeholder": "smtp.exemplo.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "porta SMTP",
"description": "Normalmente, utiliza-se a porta 587 com STARTTLS ou a porta 465 com TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Utilize TLS desde o início.",
"description": "Ative para a porta 465. Deixe desativado para a porta 587, que atualiza para TLS automaticamente."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "nome de utilizador SMTP",
"description": "Deixe em branco se o servidor não necessitar de login."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Palavra-passe SMTP",
"description": "Armazenado encriptado."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Do endereço",
"description": "Os alertas do remetente provêm de:",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Janelas de alerta",
"description": "Que novos alertas aparecem enquanto utiliza o Termix? Chegam sempre na caixa de entrada.",
"all": "Todos os alertas",
"warning": "Avisos e alertas",
"critical": "Somente crítico",
"off": "Nenhuma"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "Caixa de entrada",
"channels": "Canais",
"rules": "Delivery rules"
"rules": "Regras de entrega"
},
"severity": {
"info": "Info",
"success": "Sucesso",
"warning": "Aviso",
"critical": "Critical"
"critical": "Crítico"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Abrir",
"view": "Ver",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "Não lido",
"deliveryFailed_one": "{{count}} canal falhou",
"deliveryFailed_other": "{{count}} canais falharam",
"markRead": "Marcar como lido",
"markUnread": "Marcar como não lida",
"markAllRead": "Marcar tudo como lido",
"delete": "Eliminar",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "Apagar alertas de leitura",
"cleared_one": "Alerta eliminado {{count}}",
"cleared_other": "Alertas excluídos {{count}}",
"filterAll": "Todas",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "Não lido",
"anySeverity": "Qualquer gravidade",
"anySource": "Qualquer fonte",
"openAll": "Abrir numa aba",
"empty": "Ainda não há alertas.",
"emptyUnread": "Estão todos a par da situação.",
"loadMore": "Carregar mais"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "Os canais são locais para onde os alertas podem ser enviados fora do Termix. As regras de entrega definem quais os alertas que os irão utilizar.",
"add": "Adicionar canal",
"edit": "Editar canal",
"test": "Enviar um teste",
"testSent": "Alerta de teste enviado",
"testFailed": "Teste falhou: {{error}}",
"deleteConfirm": "Apagar o canal \"{{name}}\"?",
"deleted": "Canal excluído",
"empty": "Ainda não há canais.",
"enabled": "Ativado",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Este canal precisa de ser aberto e guardado novamente antes de poder enviar mensagens.",
"name": "Nome",
"nameRequired": "O nome é obrigatório",
"type": "Tipo",
@@ -119,41 +119,41 @@
"discord": "Discord",
"email": "E-mail"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "O envio de e-mails requer um servidor SMTP, que um administrador configura nas definições de Alertas.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "Obtém um corpo JSON para cada alerta.",
"method": "Método",
"headers": "Cabeçalhos",
"headersHint": "Um por linha, como por exemplo Nome: valor.",
"ntfyServer": "URL do servidor",
"ntfyTopic": "Tópico",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyToken": "Token de acesso (opcional)",
"discordUrl": "URL do webhook do Discord",
"discordHint": "Nas definições do canal no Discord, em Integrações.",
"discordUsername": "Nome de visualização (opcional)",
"discordAvatar": "URL do avatar (opcional)",
"emailTo": "Enviar para",
"emailHint": "Separe mais do que um endereço com vírgulas.",
"privateNetwork": "Permitir um endereço de rede privada",
"privateNetworkHint": "Funciona apenas para hosts que um administrador permite na lista de endpoints privados."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "Uma regra de entrega envia alertas correspondentes aos seus canais. Os alertas também permanecem sempre na caixa de entrada.",
"add": "Adicionar regra",
"edit": "Editar regra",
"empty": "Ainda não existem regras, pelo que os alertas apenas aparecem na caixa de entrada.",
"needChannel": "Primeiro, adicione um canal.",
"enabled": "Ativado",
"name": "Nome",
"nameRequired": "O nome é obrigatório",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Alertas a enviar",
"matchHint": "* para tudo, automações.* para tudo, desde automações, a um tipo específico.",
"minSeverity": "Pelo menos",
"channels": "Enviar para",
"channelRequired": "Escolha pelo menos um canal.",
"deleteConfirm": "Apagar a regra \"{{name}}\"?",
"everything": "Tudo",
"summary": "{{match}}, {{severity}} ou superior, para {{channels}}"
},
"actions": {
"cancel": "Cancelar",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "Feed de alertas",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "Os seus alertas mais recentes, com uma forma rápida de os marcar como lidos.",
"maxItems": "Itens máximos",
"showRead": "Mostrar alertas de leitura",
"allClear": "Tudo em ordem",
"loading": "A carregar..."
},
"plugin": {
"name": "Alerts"
}
}
@@ -168,5 +168,8 @@
"showRead": "Afișează alertele de citire",
"allClear": "Totul este clar",
"loading": "Încărcare..."
},
"plugin": {
"name": "Alerts"
}
}
+88 -85
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Используйте оповещения",
"description": "Получайте уведомления на свою электронную почту и отправляйте их в свои каналы."
}
},
"onboarding": {
"feature": "Оповещения",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "Все оповещения в одном почтовом ящике, которые можно отправить в Discord, ntfy, на электронную почту или через веб-хук, если хотите."
},
"settings": {
"group": {
@@ -19,141 +19,141 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Объявления компании Termix",
"description": "Показывайте новости от команды Termix, такие как уведомления о безопасности и обновления, в почтовые ящики всех пользователей."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Сохранять оповещения в течение (дней)",
"description": "Более старые уведомления удаляются из всех почтовых ящиков."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP-сервер",
"description": "Необходимо для каналов электронной почты. Оставьте поле пустым, чтобы отключить отправку писем.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP-порт",
"description": "Обычно используется код 587 с STARTTLS или 465 с TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Используйте TLS с самого начала.",
"description": "Включите порт 465. Оставьте выключенным порт 587, так как он автоматически переходит на TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "Имя пользователя SMTP",
"description": "Оставьте поле пустым, если серверу не требуется авторизация."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "SMTP-пароль",
"description": "Сохранено в зашифрованном виде."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "От адреса",
"description": "Уведомления поступают от отправителя.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Всплывающие уведомления",
"description": "Какие новые уведомления появляются во время использования Termix? Они всегда попадают во входящие сообщения.",
"all": "Все оповещения",
"warning": "Предупреждения и критические",
"critical": "Только критически важные",
"off": "Ни одного"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "Входящие",
"channels": "Каналы",
"rules": "Delivery rules"
"rules": "Правила доставки"
},
"severity": {
"info": "Информация",
"success": "Успех",
"warning": "Предупреждение",
"critical": "Critical"
"critical": "Критический"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Открыть",
"view": "Просмотр",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "Непрочитано",
"deliveryFailed_one": "{{count}} канал не работает",
"deliveryFailed_other": "{{count}} каналы не работают",
"markRead": "Отметить как прочитанное",
"markUnread": "Отметить как непрочитанное",
"markAllRead": "Отметьте все как прочитанное",
"delete": "Удалить",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "Удалить оповещения о прочтении",
"cleared_one": "Удалено {{count}} оповещение",
"cleared_other": "Удалены {{count}} оповещения",
"filterAll": "Все",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "Непрочитано",
"anySeverity": "Любая степень тяжести",
"anySource": "Любой источник",
"openAll": "Открыть во вкладке",
"empty": "Пока нет оповещений.",
"emptyUnread": "Вы всё успели посмотреть.",
"loadMore": "Загрузить ещё"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "Каналы — это место, куда могут отправляться оповещения за пределы Termix. Правила доставки определяют, какие оповещения будут их использовать.",
"add": "Добавить канал",
"edit": "Редактировать канал",
"test": "Отправить тест",
"testSent": "Отправлено тестовое оповещение",
"testFailed": "Тест не пройден: {{error}}",
"deleteConfirm": "Удалить канал \"{{name}}\"?",
"deleted": "Канал удален",
"empty": "Каналов пока нет.",
"enabled": "Включено",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Перед отправкой сообщения этот канал необходимо снова открыть и сохранить.",
"name": "Название",
"nameRequired": "Имя обязательно",
"type": "Тип",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"webhook": "Вебхук",
"ntfy": "нтфи",
"discord": "Discord",
"email": "Email"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "Для работы электронной почты необходим SMTP-сервер, который администратор настраивает в параметрах оповещений.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "Получает JSON-тело для каждого оповещения.",
"method": "Метод",
"headers": "Заголовки",
"headersHint": "Один символ на строку, например, Имя: значение.",
"ntfyServer": "URL сервера",
"ntfyTopic": "Тема",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyToken": "Токен доступа (необязательно)",
"discordUrl": "URL веб-перехватчика Discord",
"discordHint": "В настройках канала в Discord, в разделе «Интеграции».",
"discordUsername": "Отображаемое имя (необязательно)",
"discordAvatar": "URL-адрес аватара (необязательно)",
"emailTo": "Отправить",
"emailHint": "Разделяя несколько адресов запятыми.",
"privateNetwork": "Разрешить использование частного сетевого адреса",
"privateNetworkHint": "Работает только для хостов, разрешенных администратором в списке частных конечных точек."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "Правило доставки отправляет соответствующие оповещения в ваши каналы. Оповещения также всегда остаются во входящих сообщениях.",
"add": "Добавить правило",
"edit": "Редактировать правило",
"empty": "Правил пока нет, поэтому уведомления отображаются только во входящих сообщениях.",
"needChannel": "Сначала добавьте канал.",
"enabled": "Включено",
"name": "Название",
"nameRequired": "Имя обязательно",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Уведомления для отправки",
"matchHint": "* для всего, что связано с автоматизацией.* для всего, что связано с автоматизацией, или для одного конкретного типа.",
"minSeverity": "По меньшей мере",
"channels": "Отправить",
"channelRequired": "Выберите хотя бы один канал",
"deleteConfirm": "Удалить правило \"{{name}}\"?",
"everything": "Все",
"summary": "{{match}}, {{severity}} или выше, до {{channels}}"
},
"actions": {
"cancel": "Отмена",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "Лента оповещений",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "Ваши последние уведомления с возможностью быстрой пометки их как прочитанных.",
"maxItems": "Максимальное количество предметов",
"showRead": "Показать уведомления о прочтении",
"allClear": "Всё в порядке",
"loading": "Загрузка..."
},
"plugin": {
"name": "Alerts"
}
}
+121 -118
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Упозорења"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Користите упозорења",
"description": "Добијајте обавештења у пријемно сандуче и шаљите их на своје канале."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Упозорења",
"featureDesc": "Свако упозорење у једном пријемном сандучету, послато на Discord, ntfy, имејл или вебхук ако желите."
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "Опште",
"email": "Е-пошта"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Termix саопштења",
"description": "Прикажи вести од Termix тима, као што су безбедносна обавештења и издања, у пријемном сандучету свих корисника."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Задржавај упозорења (дана)",
"description": "Старија упозорења се уклањају из сваког пријемног сандучета."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP сервер",
"description": "Потребно за имејл канале. Оставите празно да бисте искључили имејл.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "СМТП порт",
"description": "Обично 587 са STARTTLS-ом или 465 са TLS-ом."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Користите TLS од почетка",
"description": "Укључите за порт 465. Оставите искључено за порт 587, који се сам надограђује на TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "SMTP корисничко име",
"description": "Оставите празно ако сервер не захтева пријаву."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "СМТП лозинка",
"description": "Сачувано шифровано."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"placeholder": "Termix <alerts@example.com>"
"label": "Адреса одакле",
"description": "Упозорења пошиљаоца долазе од.",
"placeholder": "Термикс <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "Искачући прозори са упозорењима",
"description": "Која нова упозорења се појављују док користите Termix. Она увек стижу у пријемно сандуче.",
"all": "Сва упозорења",
"warning": "Упозорења и критичне информације",
"critical": "Само критично",
"off": "Ниједан"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Пријемно сандуче",
"channels": "Канали",
"rules": "Правила испоруке"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"info": "Информације",
"success": "Успех",
"warning": "Упозорење",
"critical": "Критично"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"sourceTermix": "Термикс",
"openLink": "Отворено",
"view": "Поглед",
"unread": "Непрочитано",
"deliveryFailed_one": "{{count}} канал није успео",
"deliveryFailed_other": "{{count}} канала није успело",
"markRead": "Означи као прочитано",
"markUnread": "Означи као непрочитано",
"markAllRead": "Означи све као прочитано",
"delete": "Обриши",
"clearRead": "Обриши упозорења о читању",
"cleared_one": "Обрисано упозорење {{count}}",
"cleared_other": "Обрисана упозорења {{count}}",
"filterAll": "Сви",
"filterUnread": "Непрочитано",
"anySeverity": "Било која тежина",
"anySource": "Било који извор",
"openAll": "Отвори у картици",
"empty": "Још нема упозорења.",
"emptyUnread": "Све сте у току.",
"loadMore": "Учитај још"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "Канали су места где упозорења могу да се шаљу изван Termix-а. Правила испоруке бирају која упозорења их користе.",
"add": "Додај канал",
"edit": "Измени канал",
"test": "Пошаљи тест",
"testSent": "Послато је тестно упозорење",
"testFailed": "Тест није успео: {{error}}",
"deleteConfirm": "Обрисати канал „{{name}}“?",
"deleted": "Канал је обрисан",
"empty": "Још нема канала.",
"enabled": "Омогућено",
"needsSave": "Овај канал треба поново отворити и сачувати пре него што се може послати.",
"name": "Име",
"nameRequired": "Име је обавезно",
"type": "Тип",
"types": {
"webhook": "Webhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"webhook": "Вебхук",
"ntfy": "нтфи",
"discord": "Неслагање",
"email": "Е-пошта"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "Е-пошти је потребан SMTP сервер, који администратор подешава у подешавањима упозорења.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"webhookHint": "Добија JSON тело за свако упозорење.",
"method": "Метод",
"headers": "Заглавља",
"headersHint": "Један по реду, као што је Име: вредност.",
"ntfyServer": "URL сервера",
"ntfyTopic": "Тема",
"ntfyToken": "Приступни токен (опционо)",
"discordUrl": "URL вебхука на Дискорду",
"discordHint": "Из подешавања канала на Дискорду, под Интеграције.",
"discordUsername": "Приказано име (опционо)",
"discordAvatar": "URL адреса аватара (опционо)",
"emailTo": "Пошаљи",
"emailHint": "Одвојите више од једне адресе зарезима.",
"privateNetwork": "Дозволи адресу приватне мреже",
"privateNetworkHint": "Ради само за хостове које администратор дозвољава на листи приватних крајњих тачака."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "Правило испоруке шаље одговарајућа упозорења вашим каналима. Упозорења такође увек остају у пријемном сандучету.",
"add": "Додај правило",
"edit": "Измени правило",
"empty": "Још нема правила, тако да се упозорења приказују само у пријемном сандучету.",
"needChannel": "Прво додајте канал.",
"enabled": "Омогућено",
"name": "Име",
"nameRequired": "Име је обавезно",
"match": "Обавештења за слање",
"matchHint": "* за све, аутоматизације.* за све од аутоматизација, или само једну врсту.",
"minSeverity": "Барем",
"channels": "Пошаљи",
"channelRequired": "Изаберите барем један канал",
"deleteConfirm": "Обрисати правило „{{name}}“?",
"everything": "Све",
"summary": "{{match}}, {{severity}} или више, до {{channels}}"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "Откажи",
"save": "Сачувај",
"saving": "Чување...",
"delete": "Обриши"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "Фид обавештења",
"description": "Ваша најновија обавештења, са брзим начином да их означите као прочитане",
"maxItems": "Максималан број ставки",
"showRead": "Прикажи обавештења о читању",
"allClear": "Све је чисто",
"loading": "Учитавање..."
},
"plugin": {
"name": "Alerts"
}
}
+117 -114
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Aviseringar"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Använd varningar",
"description": "Få aviseringar i inkorgen och skicka dem till dina egna kanaler."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Aviseringar",
"featureDesc": "Varje avisering i en inkorg, skickad vidare till Discord, ntfy, e-post eller en webhook om du vill."
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "Allmän",
"email": "E-post"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Termix-meddelanden",
"description": "Visa nyheter från Termix-teamet, som säkerhetsmeddelanden och pressmeddelanden, i allas inkorg."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Behåll varningar i (dagar)",
"description": "Äldre aviseringar tas bort från alla inkorgar."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP-server",
"description": "Behövs för e-postkanaler. Lämna tomt för att stänga av e-post.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP-port",
"description": "Vanligtvis 587 med STARTTLS eller 465 med TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Använd TLS från början",
"description": "Aktivera port 465. Avaktivera port 587, som uppgraderar till TLS på egen hand."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "SMTP-användarnamn",
"description": "Lämna tomt om servern inte behöver inloggning."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "SMTP-lösenord",
"description": "Lagras krypterat."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Från adress",
"description": "Avsändaraviseringarna kommer från.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "Aviseringspopup-fönster",
"description": "Vilka nya aviseringar dyker upp när du använder Termix? De hamnar alltid i inkorgen.",
"all": "Alla varningar",
"warning": "Varningar och kritiska",
"critical": "Endast kritisk",
"off": "Ingen"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Inkorg",
"channels": "Kanaler",
"rules": "Leveransregler"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"success": "Framgång",
"warning": "Varning",
"critical": "Kritisk"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"openLink": "Öppna",
"view": "Se",
"unread": "Oläst",
"deliveryFailed_one": "{{count}} kanal misslyckades",
"deliveryFailed_other": "{{count}} kanaler misslyckades",
"markRead": "Markera som läst",
"markUnread": "Markera som oläst",
"markAllRead": "Markera alla som lästa",
"delete": "Radera",
"clearRead": "Ta bort läsaviseringar",
"cleared_one": "Borttagen {{count}} -avisering",
"cleared_other": "Borttagna {{count}} varningar",
"filterAll": "Alla",
"filterUnread": "Oläst",
"anySeverity": "Vilken allvarlighetsgrad som helst",
"anySource": "Vilken källa som helst",
"openAll": "Öppna i en flik",
"empty": "Inga varningar ännu.",
"emptyUnread": "Ni är helt uppdaterade.",
"loadMore": "Ladda mer"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "Kanaler är där aviseringar kan skickas utanför Termix. Leveransregler väljer vilka aviseringar som använder dem.",
"add": "Lägg till kanal",
"edit": "Redigera kanal",
"test": "Skicka ett test",
"testSent": "Testavisering skickad",
"testFailed": "Testet misslyckades: {{error}}",
"deleteConfirm": "Ta bort kanalen \"{{name}}\"?",
"deleted": "Kanal borttagen",
"empty": "Inga kanaler än.",
"enabled": "Aktiverad",
"needsSave": "Den här kanalen måste öppnas och sparas igen innan den kan skicka.",
"name": "Namn",
"nameRequired": "Namn krävs",
"type": "Typ",
"types": {
"webhook": "Webhook",
"webhook": "Webbhook",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"discord": "Disharmoni",
"email": "E-post"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "E-post behöver en SMTP-server, vilket en administratör konfigurerar i aviseringsinställningarna.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"webhookHint": "Hämtar en JSON-text för varje avisering.",
"method": "Metod",
"headers": "Rubriker",
"headersHint": "En per rad, som Namn: värde.",
"ntfyServer": "Server-URL",
"ntfyTopic": "Ämne",
"ntfyToken": "Åtkomsttoken (valfritt)",
"discordUrl": "Discord webhook-URL",
"discordHint": "Från kanalens inställningar i Discord, under Integrationer.",
"discordUsername": "Visningsnamn (valfritt)",
"discordAvatar": "Avatar-URL (valfritt)",
"emailTo": "Skicka till",
"emailHint": "Separera mer än en adress med kommatecken.",
"privateNetwork": "Tillåt en privat nätverksadress",
"privateNetworkHint": "Fungerar bara för värdar som en administratör tillåter i listan över privata slutpunkter."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "En leveransregel skickar matchande aviseringar till dina kanaler. Aviseringar finns alltid kvar i inkorgen också.",
"add": "Lägg till regel",
"edit": "Redigera regel",
"empty": "Inga regler ännu, så aviseringar visas bara i inkorgen.",
"needChannel": "Lägg till en kanal först.",
"enabled": "Aktiverad",
"name": "Namn",
"nameRequired": "Namn krävs",
"match": "Aviseringar att skicka",
"matchHint": "* för allt, automatiseringar.* för allt från automatiseringar, eller en exakt sort.",
"minSeverity": "Åtminstone",
"channels": "Skicka till",
"channelRequired": "Välj minst en kanal",
"deleteConfirm": "Ta bort regeln \"{{name}}\"?",
"everything": "Allt",
"summary": "{{match}}, {{severity}} eller högre, till {{channels}}"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "Avboka",
"save": "Spara",
"saving": "Sparande...",
"delete": "Radera"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "Aviseringsflöde",
"description": "Dina senaste aviseringar, med ett snabbt sätt att markera dem som lästa",
"maxItems": "Max antal artiklar",
"showRead": "Visa läsaviseringar",
"allClear": "Faran över",
"loading": "Belastning..."
},
"plugin": {
"name": "Alerts"
}
}
+120 -117
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "การแจ้งเตือน"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "ใช้การแจ้งเตือน",
"description": "รับการแจ้งเตือนในกล่องข้อความขาเข้า และส่งต่อไปยังช่องทางของคุณเองได้"
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "การแจ้งเตือน",
"featureDesc": "การแจ้งเตือนทั้งหมดจะถูกส่งไปยังกล่องข้อความเดียว และส่งต่อไปยัง Discord, NTFI, อีเมล หรือ Webhook ตามที่คุณต้องการ"
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "ทั่วไป",
"email": "อีเมล"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "ประกาศจาก Termix",
"description": "แสดงข่าวสารจากทีม Termix เช่น ประกาศด้านความปลอดภัยและการอัปเดตต่างๆ ในกล่องจดหมายของทุกคน"
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "ตั้งค่าการแจ้งเตือนเป็นเวลา (วัน)",
"description": "การแจ้งเตือนเก่าๆ จะถูกลบออกจากกล่องจดหมายทุกกล่อง"
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "เซิร์ฟเวอร์ SMTP",
"description": "จำเป็นสำหรับช่องทางการส่งอีเมล เว้นว่างไว้เพื่อปิดการใช้งานอีเมล",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "พอร์ต SMTP",
"description": "โดยทั่วไปจะใช้พอร์ต 587 สำหรับ STARTTLS หรือ 465 สำหรับ TLS"
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "ใช้ TLS ตั้งแต่เริ่มต้น",
"description": "เปิดใช้งานสำหรับพอร์ต 465 ปิดใช้งานสำหรับพอร์ต 587 ซึ่งจะอัปเกรดเป็น TLS โดยอัตโนมัติ"
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "ชื่อผู้ใช้ SMTP",
"description": "เว้นว่างไว้หากเซิร์ฟเวอร์ไม่ต้องการการเข้าสู่ระบบ"
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "รหัสผ่าน SMTP",
"description": "จัดเก็บในรูปแบบเข้ารหัส"
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"placeholder": "Termix <alerts@example.com>"
"label": "จากที่อยู่",
"description": "การแจ้งเตือนจากผู้ส่งมาจาก...",
"placeholder": "เทอร์มิกซ์ <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "ป๊อปอัปแจ้งเตือน",
"description": "มีการแจ้งเตือนใหม่ๆ อะไรบ้างที่จะปรากฏขึ้นขณะที่คุณใช้งาน Termix การแจ้งเตือนเหล่านั้นจะถูกส่งไปยังกล่องจดหมายเข้าเสมอ",
"all": "การแจ้งเตือนทั้งหมด",
"warning": "คำเตือนและข้อสำคัญ",
"critical": "เฉพาะกรณีวิกฤติเท่านั้น",
"off": "ไม่มี"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "กล่องขาเข้า",
"channels": "ช่องต่างๆ",
"rules": "กฎการจัดส่ง"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"info": "ข้อมูล",
"success": "ความสำเร็จ",
"warning": "คำเตือน",
"critical": "วิกฤต"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"sourceTermix": "เทอร์มิกซ์",
"openLink": "เปิด",
"view": "ดู",
"unread": "ยังไม่ได้อ่าน",
"deliveryFailed_one": "{{count}} ช่องทางล้มเหลว",
"deliveryFailed_other": "{{count}} ช่องทางล้มเหลว",
"markRead": "ทำเครื่องหมายว่าอ่านแล้ว",
"markUnread": "ทำเครื่องหมายว่ายังไม่ได้อ่าน",
"markAllRead": "ทำเครื่องหมายว่าอ่านแล้วทั้งหมด",
"delete": "ลบ",
"clearRead": "ลบการแจ้งเตือนการอ่าน",
"cleared_one": "ลบการแจ้งเตือน {{count}} แล้ว",
"cleared_other": "ลบการแจ้งเตือน {{count}} แล้ว",
"filterAll": "ทั้งหมด",
"filterUnread": "ยังไม่ได้อ่าน",
"anySeverity": "ความรุนแรงใดๆ",
"anySource": "แหล่งที่มาใดๆ",
"openAll": "เปิดในแท็บใหม่",
"empty": "ยังไม่มีการแจ้งเตือนใดๆ",
"emptyUnread": "คุณได้รับข้อมูลครบถ้วนแล้ว",
"loadMore": "โหลดเพิ่มเติม"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "ช่องทางต่างๆ คือที่ที่การแจ้งเตือนสามารถส่งออกไปภายนอก Termix ได้ กฎการส่งจะเลือกว่าการแจ้งเตือนใดควรใช้ช่องทางเหล่านั้น",
"add": "เพิ่มช่องทาง",
"edit": "แก้ไขช่อง",
"test": "ส่งทดสอบ",
"testSent": "ส่งการแจ้งเตือนการทดสอบแล้ว",
"testFailed": "การทดสอบล้มเหลว: {{error}}",
"deleteConfirm": "ลบช่อง \"{{name}}\"?",
"deleted": "ช่องถูกลบแล้ว",
"empty": "ยังไม่มีช่องทางใด ๆ",
"enabled": "เปิดใช้งาน",
"needsSave": "ต้องเปิดและบันทึกช่องทางนี้อีกครั้งก่อนจึงจะสามารถส่งได้",
"name": "ชื่อ",
"nameRequired": "ต้องระบุชื่อ",
"type": "พิมพ์",
"types": {
"webhook": "Webhook",
"webhook": "เว็บฮุค",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"discord": "ดิสคอร์ด",
"email": "อีเมล"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "อีเมลจำเป็นต้องมีเซิร์ฟเวอร์ SMTP ซึ่งผู้ดูแลระบบจะตั้งค่าไว้ในการตั้งค่าการแจ้งเตือน",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"webhookHint": "จะได้รับข้อมูล JSON สำหรับการแจ้งเตือนทุกครั้ง",
"method": "วิธี",
"headers": "ส่วนหัว",
"headersHint": "หนึ่งรายการต่อบรรทัด เช่น ชื่อ: ค่า",
"ntfyServer": "URL ของเซิร์ฟเวอร์",
"ntfyTopic": "หัวข้อ",
"ntfyToken": "โทเค็นการเข้าถึง (ไม่บังคับ)",
"discordUrl": "URL เว็บฮุคของ Discord",
"discordHint": "จากเมนูการตั้งค่าของช่องใน Discord ในส่วน \"การผสานรวม\"",
"discordUsername": "ชื่อที่แสดง (ไม่บังคับ)",
"discordAvatar": "URL รูปประจำตัว (ไม่บังคับ)",
"emailTo": "ส่งไปยัง",
"emailHint": "คั่นที่อยู่มากกว่าหนึ่งรายการด้วยเครื่องหมายจุลภาค",
"privateNetwork": "อนุญาตให้ใช้ที่อยู่เครือข่ายส่วนตัว",
"privateNetworkHint": "ใช้ได้เฉพาะกับโฮสต์ที่ผู้ดูแลระบบอนุญาตในรายการปลายทางส่วนตัวเท่านั้น"
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "กฎการส่งจะส่งการแจ้งเตือนที่ตรงกันไปยังช่องทางต่างๆ ของคุณ การแจ้งเตือนเหล่านี้จะยังคงอยู่ในกล่องจดหมายเข้าเสมอ",
"add": "เพิ่มกฎ",
"edit": "แก้ไขกฎ",
"empty": "ยังไม่มีการกำหนดกฎเกณฑ์ใดๆ ดังนั้นการแจ้งเตือนจะปรากฏเฉพาะในกล่องจดหมายเข้าเท่านั้น",
"needChannel": "เพิ่มช่องทางก่อน",
"enabled": "เปิดใช้งาน",
"name": "ชื่อ",
"nameRequired": "ต้องระบุชื่อ",
"match": "การแจ้งเตือนที่จะส่ง",
"matchHint": "*สำหรับทุกสิ่งทุกอย่าง ระบบอัตโนมัติ* สำหรับทุกสิ่งทุกอย่างจากระบบอัตโนมัติ หรือระบบอัตโนมัติแบบใดแบบหนึ่งโดยเฉพาะ",
"minSeverity": "อย่างน้อย",
"channels": "ส่งไปยัง",
"channelRequired": "เลือกอย่างน้อยหนึ่งช่อง",
"deleteConfirm": "ลบกฎ \"{{name}} \" ออกหรือไม่?",
"everything": "ทุกอย่าง",
"summary": "{{match}}, {{severity}} หรือสูงกว่า ไปจนถึง {{channels}}"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "ยกเลิก",
"save": "บันทึก",
"saving": "ประหยัด...",
"delete": "ลบ"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "ฟีดแจ้งเตือน",
"description": "การแจ้งเตือนล่าสุดของคุณ พร้อมวิธีทำเครื่องหมายว่าอ่านแล้วอย่างรวดเร็ว",
"maxItems": "ไอเทมสูงสุด",
"showRead": "แสดงการแจ้งเตือนการอ่าน",
"allClear": "ทุกอย่างเรียบร้อย",
"loading": "กำลังโหลด..."
},
"plugin": {
"name": "Alerts"
}
}
+85 -82
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Uyarıları kullanın",
"description": "Gelen kutunuza bildirimler alın ve bunları kendi kanallarınıza gönderin."
}
},
"onboarding": {
"feature": "Uyarılar",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "Tüm uyarılar tek bir gelen kutusunda toplanır ve isterseniz Discord, NTfy, e-posta veya webhook üzerinden de gönderilebilir."
},
"settings": {
"group": {
@@ -19,97 +19,97 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Termix duyuruları",
"description": "Termix ekibinden gelen güvenlik uyarıları ve sürümler gibi haberleri herkesin e-posta kutusunda göster."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Uyarıları (gün) süreyle açık tut",
"description": "Eski bildirimler tüm gelen kutularından silinir."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP sunucusu",
"description": "E-posta kanalları için gereklidir. E-postayı kapatmak için boş bırakın.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP bağlantı noktası",
"description": "Genellikle STARTTLS ile 587 veya TLS ile 465 kullanılır."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "TLS'yi en başından itibaren kullanın.",
"description": "465 numaralı bağlantı noktası için etkinleştirin. 587 numaralı bağlantı noktasını ise devre dışı bırakın; bu bağlantı noktası otomatik olarak TLS'ye yükseltilir."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "SMTP kullanıcı adı",
"description": "Sunucuya giriş yapılması gerekmiyorsa boş bırakın."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "SMTP şifresi",
"description": "Şifrelenmiş olarak saklanmaktadır."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Gönderen adresi",
"description": "Uyarı gönderen şuradan geliyor.",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Uyarı açılır pencereleri",
"description": "Termix kullanırken hangi yeni uyarılar belirir? Bunlar her zaman gelen kutunuza düşer.",
"all": "Tüm uyarılar",
"warning": "Uyarılar ve kritik noktalar",
"critical": "Sadece kritik",
"off": "Yok"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "Gelen Kutusu",
"channels": "Kanallar",
"rules": "Delivery rules"
"rules": "Teslimat kuralları"
},
"severity": {
"info": "Bilgi",
"success": "Başarılı",
"warning": "Uyarı",
"critical": "Critical"
"critical": "Kritik"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Aç",
"view": "Görüntüle",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "Okunmamış",
"deliveryFailed_one": "{{count}} kanal başarısız oldu",
"deliveryFailed_other": "{{count}} kanal başarısız oldu",
"markRead": "Okundu olarak işaretle",
"markUnread": "Okunmamış olarak işaretle",
"markAllRead": "Tümünü okundu olarak işaretle",
"delete": "Sil",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "Okuma uyarılarını sil",
"cleared_one": "Silindi {{count}} uyarısı",
"cleared_other": "Silinen {{count}} uyarıları",
"filterAll": "Tümü",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "Okunmamış",
"anySeverity": "Herhangi bir şiddet",
"anySource": "Herhangi bir kaynak",
"openAll": "Yeni sekmede aç",
"empty": "Henüz herhangi bir uyarı yok.",
"emptyUnread": "Her şey tamamlandı.",
"loadMore": "Daha fazla yükle"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "Kanallar, uyarıların Termix dışına gönderilebileceği yerlerdir. Teslimat kuralları, hangi uyarıların bu kanalları kullanacağını belirler.",
"add": "Kanal ekle",
"edit": "Kanalı düzenle",
"test": "Bir test gönderin",
"testSent": "Test uyarısı gönderildi",
"testFailed": "Test başarısız oldu: {{error}}",
"deleteConfirm": "\"{{name}} \" kanalını silmek mi istiyorsunuz?",
"deleted": "Kanal silindi",
"empty": "Henüz kanal yok.",
"enabled": "Etkin",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Bu kanalın gönderilebilmesi için önce açılıp tekrar kaydedilmesi gerekiyor.",
"name": "Ad",
"nameRequired": "Ad zorunludur",
"type": "Tür",
@@ -119,41 +119,41 @@
"discord": "Discord",
"email": "E-posta"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "E-posta göndermek için bir SMTP sunucusuna ihtiyaç vardır ve bu sunucu yönetici tarafından Uyarılar ayarlarında kurulur.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "Her uyarı için JSON formatında bir veri gövdesi alır.",
"method": "Yöntem",
"headers": "Başlıklar",
"headersHint": "Her satıra bir tane, örneğin İsim: değer şeklinde.",
"ntfyServer": "Sunucu URL'si",
"ntfyTopic": "Konu",
"ntfyToken": "Access token (optional)",
"ntfyToken": "Erişim belirteci (isteğe bağlı)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"discordHint": "Discord'daki kanal ayarlarından, Entegrasyonlar bölümünden.",
"discordUsername": "Görüntülenen ad (isteğe bağlı)",
"discordAvatar": "Avatar URL'si (isteğe bağlı)",
"emailTo": "Gönder",
"emailHint": "Birden fazla adresi virgülle ayırın.",
"privateNetwork": "Özel ağ adresine izin verin",
"privateNetworkHint": "Yalnızca yöneticinin özel uç nokta listesinde izin verdiği sunucular için çalışır."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "Bir teslimat kuralı, eşleşen uyarıları kanallarınıza gönderir. Uyarılar her zaman gelen kutunuzda da kalır.",
"add": "Kural ekle",
"edit": "Kuralı düzenle",
"empty": "Henüz kurallar belirlenmedi, bu nedenle uyarılar yalnızca gelen kutusunda görünüyor.",
"needChannel": "Önce bir kanal ekleyin.",
"enabled": "Etkin",
"name": "Ad",
"nameRequired": "Ad zorunludur",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Gönderilecek uyarılar",
"matchHint": "*Her şey için otomasyonlar.* Otomasyonlardan her şeye veya belirli bir türe kadar.",
"minSeverity": "En azından",
"channels": "Gönder",
"channelRequired": "En az bir kanal seçin",
"deleteConfirm": "\"{{name}} \" kuralını silmek mi istiyorsunuz?",
"everything": "Her şey",
"summary": "{{match}}, {{severity}} veya daha yüksek, {{channels}}'ye kadar"
},
"actions": {
"cancel": "İptal",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "Uyarı Akışı",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "En son bildirimleriniz ve bunları okundu olarak işaretlemenin hızlı bir yolu.",
"maxItems": "Maksimum öğe",
"showRead": "Okuma uyarılarını göster",
"allClear": "Her şey normal",
"loading": "Yükleniyor..."
},
"plugin": {
"name": "Alerts"
}
}
+121 -118
View File
@@ -1,172 +1,175 @@
{
"nav": {
"alerts": "Alerts"
"alerts": "Сповіщення"
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Використовуйте сповіщення",
"description": "Отримуйте сповіщення у вхідні повідомлення та надсилайте їх на власні канали."
}
},
"onboarding": {
"feature": "Alerts",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"feature": "Сповіщення",
"featureDesc": "Кожне сповіщення в одній поштовій скриньці, що надсилається на Discord, ntfy, електронну пошту або вебхук, якщо хочете."
},
"settings": {
"group": {
"general": "General",
"email": "Email"
"general": "Загальне",
"email": "Електронна пошта"
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Оголошення Termix",
"description": "Показувати новини від команди Termix, такі як повідомлення та релізи безпеки, у папці \"Вхідні\" для всіх."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Зберігати сповіщення протягом (днів)",
"description": "Старіші сповіщення видаляються з усіх папок \"Вхідні\"."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "SMTP-сервер",
"description": "Потрібно для каналів електронної пошти. Залиште поле порожнім, щоб вимкнути електронну пошту.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "SMTP-порт",
"description": "Зазвичай 587 з STARTTLS або 465 з TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Використовуйте TLS з самого початку",
"description": "Увімкніть для порту 465. Вимкніть для порту 587, який самостійно оновлюється до TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "Ім'я користувача SMTP",
"description": "Залиште поле порожнім, якщо сервер не потребує входу."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Пароль SMTP",
"description": "Зберігається зашифрованим."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"placeholder": "Termix <alerts@example.com>"
"label": "З адреси",
"description": "Сповіщення відправника надходять з.",
"placeholder": "Термікс <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"off": "None"
"label": "Спливаючі вікна сповіщень",
"description": "Які нові сповіщення з’являються під час використання Termix. Вони завжди потрапляють у папку «Вхідні».",
"all": "Усі сповіщення",
"warning": "Попередження та критичні",
"critical": "Тільки критично",
"off": "Жоден"
}
}
},
"sections": {
"inbox": "Inbox",
"channels": "Channels",
"rules": "Delivery rules"
"inbox": "Вхідні",
"channels": "Канали",
"rules": "Правила доставки"
},
"severity": {
"info": "Info",
"success": "Success",
"warning": "Warning",
"critical": "Critical"
"info": "Інформація",
"success": "Успіх",
"warning": "УВАГА",
"critical": "Критичний"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Open",
"view": "View",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"delete": "Delete",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"filterAll": "All",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"sourceTermix": "Термікс",
"openLink": "ВІДЧИНЕНО",
"view": "Переглянути",
"unread": "Непрочитане",
"deliveryFailed_one": "{{count}} канал не вдався",
"deliveryFailed_other": "{{count}} каналів не вдалося",
"markRead": "Позначити як прочитане",
"markUnread": "Позначити як непрочитане",
"markAllRead": "Позначити всі як прочитані",
"delete": "Видалити",
"clearRead": "Видалити сповіщення про прочитання",
"cleared_one": "Видалено сповіщення {{count}}",
"cleared_other": "Видалено сповіщень {{count}}",
"filterAll": "Усі",
"filterUnread": "Непрочитане",
"anySeverity": "Будь-якої тяжкості",
"anySource": "Будь-яке джерело",
"openAll": "Відкрити у вкладці",
"empty": "Поки що немає сповіщень.",
"emptyUnread": "Ви все в курсі.",
"loadMore": "Завантажити більше"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"enabled": "Enabled",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"name": "Name",
"nameRequired": "Name is required",
"type": "Type",
"intro": "Канали – це місця, де сповіщення можуть надходити за межі Termix. Правила доставки вибирають, які сповіщення їх використовувати.",
"add": "Додати канал",
"edit": "Редагувати канал",
"test": "Надіслати тест",
"testSent": "Тестове сповіщення надіслано",
"testFailed": "Тест не вдався: {{error}}",
"deleteConfirm": "Видалити канал «{{name}}»?",
"deleted": "Канал видалено",
"empty": "Поки що немає каналів.",
"enabled": "Увімкнено",
"needsSave": "Цей канал потрібно знову відкрити та зберегти, перш ніж його можна буде надіслати.",
"name": "Ім'я",
"nameRequired": "Ім'я обов'язкове",
"type": "Тип",
"types": {
"webhook": "Webhook",
"webhook": "Вебхук",
"ntfy": "ntfy",
"discord": "Discord",
"email": "Email"
"discord": "Дискорд",
"email": "Електронна пошта"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"ntfyServer": "Server URL",
"ntfyTopic": "Topic",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"emailUnavailable": "Для електронної пошти потрібен SMTP-сервер, який адміністратор налаштовує в налаштуваннях сповіщень.",
"webhookUrl": "URL-адреса",
"webhookHint": "Отримує тіло JSON для кожного сповіщення.",
"method": "Метод",
"headers": "Заголовки",
"headersHint": "По одному на рядок, наприклад, Ім'я: значення.",
"ntfyServer": "URL-адреса сервера",
"ntfyTopic": "Тема",
"ntfyToken": "Токен доступу (необов'язково)",
"discordUrl": "URL-адреса вебхука Discord",
"discordHint": "У налаштуваннях каналу в Discord, у розділі «Інтеграції».",
"discordUsername": "Відображуване ім'я (необов'язково)",
"discordAvatar": "URL-адреса аватара (необов'язково)",
"emailTo": "Надіслати",
"emailHint": "Розділяйте більше однієї адреси комами.",
"privateNetwork": "Дозволити адресу приватної мережі",
"privateNetworkHint": "Працює лише для хостів, які адміністратор дозволяє в списку приватних кінцевих точок."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"enabled": "Enabled",
"name": "Name",
"nameRequired": "Name is required",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"intro": "Правило доставки надсилає відповідні сповіщення до ваших каналів. Сповіщення також завжди залишаються у вхідних повідомленнях.",
"add": "Додати правило",
"edit": "Редагувати правило",
"empty": "Поки що немає правил, тому сповіщення відображаються лише у вхідних повідомленнях.",
"needChannel": "Спочатку додайте канал.",
"enabled": "Увімкнено",
"name": "Ім'я",
"nameRequired": "Ім'я обов'язкове",
"match": "Сповіщення для надсилання",
"matchHint": "* для всього, автоматизації.* для всього, починаючи від автоматизації, або одного точного виду.",
"minSeverity": "Принаймні",
"channels": "Надіслати",
"channelRequired": "Виберіть хоча б один канал",
"deleteConfirm": "Видалити правило \"{{name}}\"?",
"everything": "Все",
"summary": "{{match}}, {{severity}} або вище, до {{channels}}"
},
"actions": {
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"delete": "Delete"
"cancel": "Скасувати",
"save": "Зберегти",
"saving": "Збереження...",
"delete": "Видалити"
},
"widget": {
"name": "Alert Feed",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"allClear": "All clear",
"loading": "Loading..."
"name": "Стрічка сповіщень",
"description": "Ваші останні сповіщення з можливістю швидко позначити їх як прочитані",
"maxItems": "Макс. кількість елементів",
"showRead": "Показувати сповіщення про прочитання",
"allClear": "Все чисто",
"loading": "Завантаження..."
},
"plugin": {
"name": "Alerts"
}
}
+86 -83
View File
@@ -4,13 +4,13 @@
},
"permissions": {
"use": {
"title": "Use alerts",
"description": "Get alerts in the inbox and send them to your own channels."
"title": "Sử dụng cảnh báo",
"description": "Nhận thông báo trong hộp thư đến và chia sẻ chúng lên các kênh của riêng bạn."
}
},
"onboarding": {
"feature": "Cảnh báo",
"featureDesc": "Every alert in one inbox, sent on to Discord, ntfy, email or a webhook if you want."
"featureDesc": "Tất cả thông báo đều được tập trung trong một hộp thư đến, sau đó được gửi đến Discord, NTFS, email hoặc webhook nếu bạn muốn."
},
"settings": {
"group": {
@@ -19,97 +19,97 @@
},
"admin": {
"announcements": {
"label": "Termix announcements",
"description": "Show news from the Termix team, like security notices and releases, in everyone's inbox."
"label": "Thông báo của Termix",
"description": "Hiển thị tin tức từ đội ngũ Termix, chẳng hạn như thông báo bảo mật và bản phát hành, trong hộp thư đến của mọi người."
},
"retentionDays": {
"label": "Keep alerts for (days)",
"description": "Older alerts are removed from every inbox."
"label": "Giữ cảnh báo trong (ngày)",
"description": "Các thông báo cũ hơn sẽ bị xóa khỏi mọi hộp thư đến."
},
"smtpHost": {
"label": "SMTP server",
"description": "Needed for email channels. Leave empty to turn email off.",
"label": "Máy chủ SMTP",
"description": "Cần thiết cho các kênh email. Để trống nếu muốn tắt email.",
"placeholder": "smtp.example.com"
},
"smtpPort": {
"label": "SMTP port",
"description": "Usually 587 with STARTTLS or 465 with TLS."
"label": "Cổng SMTP",
"description": "Thông thường là cổng 587 với STARTTLS hoặc 465 với TLS."
},
"smtpSecure": {
"label": "Use TLS from the start",
"description": "Turn on for port 465. Leave off for 587, which upgrades to TLS on its own."
"label": "Hãy sử dụng TLS ngay từ đầu.",
"description": "Bật tính năng này cho cổng 465. Tắt tính năng cho cổng 587, vì cổng này sẽ tự động nâng cấp lên TLS."
},
"smtpUser": {
"label": "SMTP username",
"description": "Leave empty if the server does not need a login."
"label": "Tên người dùng SMTP",
"description": "Để trống nếu máy chủ không cần đăng nhập."
},
"smtpPassword": {
"label": "SMTP password",
"description": "Stored encrypted."
"label": "Mật khẩu SMTP",
"description": "Được lưu trữ dưới dạng mã hóa."
},
"smtpFrom": {
"label": "From address",
"description": "The sender alerts come from.",
"label": "Từ địa chỉ",
"description": "Thông báo đến từ nguồn nào?",
"placeholder": "Termix <alerts@example.com>"
}
},
"user": {
"popups": {
"label": "Alert popups",
"description": "Which new alerts pop up while you use Termix. They always land in the inbox.",
"all": "All alerts",
"warning": "Warnings and critical",
"critical": "Critical only",
"label": "Cửa sổ bật lên cảnh báo",
"description": "Những thông báo mới nào xuất hiện khi bạn sử dụng Termix? Chúng luôn được gửi đến hộp thư đến.",
"all": "Tất cả cảnh báo",
"warning": "Cảnh báo và thông tin quan trọng",
"critical": "Chỉ quan trọng",
"off": "Không"
}
}
},
"sections": {
"inbox": "Inbox",
"inbox": "Hộp thư đến",
"channels": "Kênh",
"rules": "Delivery rules"
"rules": "Quy tắc giao hàng"
},
"severity": {
"info": "Thông tin",
"success": "Thành công",
"warning": "Cảnh báo",
"critical": "Critical"
"critical": "Phê bình"
},
"inbox": {
"sourceTermix": "Termix",
"openLink": "Mở",
"view": "Xem",
"unread": "Unread",
"deliveryFailed_one": "{{count}} channel failed",
"deliveryFailed_other": "{{count}} channels failed",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAllRead": "Mark all as read",
"unread": "Chưa đọc",
"deliveryFailed_one": "{{count}} kênh bị lỗi",
"deliveryFailed_other": "{{count}} kênh bị lỗi",
"markRead": "Đánh dấu là đã đọc",
"markUnread": "Đánh dấu là chưa đọc",
"markAllRead": "Đánh dấu tất cả là đã đọc",
"delete": "Xóa",
"clearRead": "Delete read alerts",
"cleared_one": "Deleted {{count}} alert",
"cleared_other": "Deleted {{count}} alerts",
"clearRead": "Xóa thông báo đã đọc",
"cleared_one": "Đã xóa cảnh báo {{count}}",
"cleared_other": "Đã xóa {{count}} cảnh báo",
"filterAll": "Tất cả",
"filterUnread": "Unread",
"anySeverity": "Any severity",
"anySource": "Any source",
"openAll": "Open in a tab",
"empty": "No alerts yet.",
"emptyUnread": "You are all caught up.",
"loadMore": "Load more"
"filterUnread": "Chưa đọc",
"anySeverity": "Bất kỳ mức độ nghiêm trọng nào",
"anySource": "Bất kỳ nguồn nào",
"openAll": "Mở trong một tab",
"empty": "Chưa có thông báo nào.",
"emptyUnread": "Bạn đã nắm bắt được hết mọi thứ rồi.",
"loadMore": "Tải thêm"
},
"channels": {
"intro": "Channels are where alerts can go outside Termix. Delivery rules pick which alerts use them.",
"add": "Add channel",
"edit": "Edit channel",
"test": "Send a test",
"testSent": "Test alert sent",
"testFailed": "Test failed: {{error}}",
"deleteConfirm": "Delete the channel \"{{name}}\"?",
"deleted": "Channel deleted",
"empty": "No channels yet.",
"intro": "Các kênh là nơi các cảnh báo có thể được gửi ra ngoài Termix. Các quy tắc phân phối sẽ chọn những cảnh báo nào sử dụng các kênh đó.",
"add": "Thêm kênh",
"edit": "Chỉnh sửa kênh",
"test": "Gửi một bài kiểm tra",
"testSent": "Đã gửi cảnh báo thử nghiệm",
"testFailed": "Kiểm tra thất bại: {{error}}",
"deleteConfirm": "Xóa kênh \"{{name}}\"?",
"deleted": "Kênh đã bị xóa",
"empty": "Chưa có kênh nào.",
"enabled": "Đã bật",
"needsSave": "This channel needs to be opened and saved again before it can send.",
"needsSave": "Kênh này cần được mở và lưu lại một lần nữa trước khi có thể gửi.",
"name": "Tên",
"nameRequired": "Tên là bắt buộc",
"type": "Loại",
@@ -119,41 +119,41 @@
"discord": "Discord",
"email": "Email"
},
"emailUnavailable": "Email needs an SMTP server, which an admin sets up in the Alerts settings.",
"emailUnavailable": "Email cần có máy chủ SMTP, mà quản trị viên sẽ thiết lập trong phần cài đặt Thông báo.",
"webhookUrl": "URL",
"webhookHint": "Gets a JSON body for every alert.",
"method": "Method",
"headers": "Headers",
"headersHint": "One per line, like Name: value.",
"webhookHint": "Lấy nội dung JSON cho mỗi thông báo.",
"method": "Phương pháp",
"headers": "Tiêu đề",
"headersHint": "Mỗi mục một dòng, ví dụ: Tên: giá trị.",
"ntfyServer": "URL máy chủ",
"ntfyTopic": "Chủ đề",
"ntfyToken": "Access token (optional)",
"discordUrl": "Discord webhook URL",
"discordHint": "From the channel's settings in Discord, under Integrations.",
"discordUsername": "Display name (optional)",
"discordAvatar": "Avatar URL (optional)",
"emailTo": "Send to",
"emailHint": "Separate more than one address with commas.",
"privateNetwork": "Allow a private network address",
"privateNetworkHint": "Only works for hosts an admin allows in the private endpoint list."
"ntfyToken": "Mã truy cập (tùy chọn)",
"discordUrl": "URL webhook Discord",
"discordHint": "Bạn có thể chọn \"Integrations\" trong phần cài đặt kênh trên Discord.",
"discordUsername": "Tên hiển thị (tùy chọn)",
"discordAvatar": "URL ảnh đại diện (tùy chọn)",
"emailTo": "Gửi đến",
"emailHint": "Hãy sử dụng dấu phẩy để phân tách nhiều địa chỉ.",
"privateNetwork": "Cho phép địa chỉ mạng riêng",
"privateNetworkHint": "Chỉ hoạt động với các máy chủ mà quản trị viên cho phép trong danh sách điểm cuối riêng tư."
},
"rules": {
"intro": "A delivery rule sends matching alerts to your channels. Alerts always stay in the inbox too.",
"add": "Add rule",
"edit": "Edit rule",
"empty": "No rules yet, so alerts only show up in the inbox.",
"needChannel": "Add a channel first.",
"intro": "Quy tắc phân phối sẽ gửi các thông báo phù hợp đến các kênh của bạn. Các thông báo này cũng luôn được lưu trữ trong hộp thư đến.",
"add": "Thêm quy tắc",
"edit": "Chỉnh sửa quy tắc",
"empty": "Hiện chưa có quy tắc nào, vì vậy thông báo chỉ hiển thị trong hộp thư đến.",
"needChannel": "Trước tiên hãy thêm kênh.",
"enabled": "Đã bật",
"name": "Tên",
"nameRequired": "Tên là bắt buộc",
"match": "Alerts to send",
"matchHint": "* for everything, automations.* for everything from automations, or one exact kind.",
"minSeverity": "At least",
"channels": "Send to",
"channelRequired": "Pick at least one channel",
"deleteConfirm": "Delete the rule \"{{name}}\"?",
"everything": "Everything",
"summary": "{{match}}, {{severity}} or higher, to {{channels}}"
"match": "Thông báo cần gửi",
"matchHint": "* Cho mọi thứ, tự động hóa.* Cho mọi thứ từ tự động hóa, hoặc một loại cụ thể nào đó.",
"minSeverity": "Ít nhất",
"channels": "Gửi đến",
"channelRequired": "Chọn ít nhất một kênh",
"deleteConfirm": "Xóa quy tắc \"{{name}}\"?",
"everything": "Mọi thứ",
"summary": "{{match}}, {{severity}} hoặc cao hơn, đến {{channels}}"
},
"actions": {
"cancel": "Hủy",
@@ -163,10 +163,13 @@
},
"widget": {
"name": "Luồng cảnh báo",
"description": "Your latest alerts, with a quick way to mark them read",
"maxItems": "Max items",
"showRead": "Show read alerts",
"description": "Thông báo mới nhất của bạn, kèm theo cách nhanh để đánh dấu đã đọc.",
"maxItems": "Số lượng vật phẩm tối đa",
"showRead": "Hiển thị thông báo đã đọc",
"allClear": "Tất cả ổn",
"loading": "Đang tải..."
},
"plugin": {
"name": "Alerts"
}
}
Loaded 100 of 996 files, more files were not shown because too many files have changed in this diff. Show more