Translate the log line-count options

"100 lines" was hard-coded English in every locale. Also carries the
translations for the taken-domain error.
This commit is contained in:
Juan Denis committed 2026-10-05 00:45:12 -04:00
1 parent 7e40248bf8
commit e3cbb39bee
18 files changed
+55 -1

No files matched your search

@@ -1,5 +1,6 @@
import { Search, RefreshCw, Download, Trash2, Maximize2, Minimize2, X, ArrowDownToLine, Hash, WrapText } from 'lucide-react';
import { useTranslation } from 'react-i18next';
import { formatNumber } from '../../utils/intl';
import { Button as SharedButton } from '@/components/ui/button';
import { Select, SelectTrigger, SelectContent, SelectItem, SelectValue } from '@/components/ui/select';
@@ -42,7 +43,9 @@ export default function LogToolbar({
</SelectTrigger>
<SelectContent>
{lineCountOptions.map((n) => (
<SelectItem key={n} value={String(n)}>{n.toLocaleString()} lines</SelectItem>
<SelectItem key={n} value={String(n)}>
{t('app.logToolbar.lineCount', { count: n, value: formatNumber(n), defaultValue_one: '{{value}} line', defaultValue_other: '{{value}} lines' })}
</SelectItem>
))}
</SelectContent>
</Select>
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "تم إعادة إنشاء الرمز المميز"
},
"domainField": {
"alreadyAttached": "{{name}} مرتبط بالفعل بخدمة.",
"alreadyInServerkit": "موجود بالفعل في ServerKit.",
"baseDomain": "المجال الأساسي",
"domainKind": "نوع المجال",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "الخروج من وضع ملء الشاشة",
"fullscreen": "ملء الشاشة",
"jumpToEnd": "القفز إلى النهاية",
"lineCount_one": "{{value}} سطر",
"lineCount_other": "{{value}} سطر",
"linesToFetch": "خطوط لجلب",
"live": "مباشر",
"searchInLog": "البحث في السجل…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "টোকেন পুনরায় তৈরি করা হয়েছে"
},
"domainField": {
"alreadyAttached": "{{name}} ইতিমধ্যে একটি পরিষেবার সাথে যুক্ত।",
"alreadyInServerkit": "ইতিমধ্যে ServerKit-এ আছে।",
"baseDomain": "বেস ডোমেন",
"domainKind": "ডোমেনের ধরন",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "ফুলস্ক্রিন থেকে প্রস্থান করুন",
"fullscreen": "ফুলস্ক্রিন",
"jumpToEnd": "শেষ পর্যন্ত ঝাঁপ দাও",
"lineCount_one": "{{value}} লাইন",
"lineCount_other": "{{value}} লাইন",
"linesToFetch": "আনার জন্য লাইন",
"live": "লাইভ",
"searchInLog": "লগ ইন অনুসন্ধান করুন...",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token regeneriert"
},
"domainField": {
"alreadyAttached": "{{name}} ist bereits einem Dienst zugeordnet.",
"alreadyInServerkit": "Bereits in ServerKit.",
"baseDomain": "Basis-Domain",
"domainKind": "Domain-Art",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Beenden Sie den Vollbildmodus",
"fullscreen": "Vollbild",
"jumpToEnd": "Zum Ende springen",
"lineCount_one": "{{value}} Zeile",
"lineCount_other": "{{value}} Zeilen",
"linesToFetch": "Zeilen zum Abrufen",
"live": "Live",
"searchInLog": "Im Protokoll suchen…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token regenerated"
},
"domainField": {
"alreadyAttached": "{{name}} is already attached to a service.",
"alreadyInServerkit": "Already in ServerKit.",
"baseDomain": "Base domain",
"domainKind": "Domain kind",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Exit fullscreen",
"fullscreen": "Fullscreen",
"jumpToEnd": "Jump to end",
"lineCount_one": "{{value}} line",
"lineCount_other": "{{value}} lines",
"linesToFetch": "Lines to fetch",
"live": "Live",
"searchInLog": "Search in log…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token regenerado"
},
"domainField": {
"alreadyAttached": "{{name}} ya está vinculado a un servicio.",
"alreadyInServerkit": "Ya está en ServerKit.",
"baseDomain": "Dominio base",
"domainKind": "Tipo de dominio",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Salir de pantalla completa",
"fullscreen": "Pantalla completa",
"jumpToEnd": "Ir al final",
"lineCount_one": "{{value}} línea",
"lineCount_other": "{{value}} líneas",
"linesToFetch": "Líneas a obtener",
"live": "En vivo",
"searchInLog": "Buscar en el registro…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Jeton régénéré"
},
"domainField": {
"alreadyAttached": "{{name}} est déjà rattaché à un service.",
"alreadyInServerkit": "Déjà dans ServerKit.",
"baseDomain": "Domaine de base",
"domainKind": "Type de domaine",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Quitter le plein écran",
"fullscreen": "Plein écran",
"jumpToEnd": "Aller à la fin",
"lineCount_one": "{{value}} ligne",
"lineCount_other": "{{value}} lignes",
"linesToFetch": "Lignes à récupérer",
"live": "En direct",
"searchInLog": "Rechercher dans le journal…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token dibuat ulang"
},
"domainField": {
"alreadyAttached": "{{name}} sudah terhubung ke sebuah layanan.",
"alreadyInServerkit": "Sudah ada di ServerKit.",
"baseDomain": "Domain dasar",
"domainKind": "Jenis domain",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Keluar dari layar penuh",
"fullscreen": "Layar penuh",
"jumpToEnd": "Lompat ke akhir",
"lineCount_one": "{{value}} baris",
"lineCount_other": "{{value}} baris",
"linesToFetch": "Garis untuk diambil",
"live": "Langsung",
"searchInLog": "Cari di log…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token rigenerato"
},
"domainField": {
"alreadyAttached": "{{name}} è già collegato a un servizio.",
"alreadyInServerkit": "Già presente in ServerKit.",
"baseDomain": "Dominio base",
"domainKind": "Tipo di dominio",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Esci dallo schermo intero",
"fullscreen": "A schermo intero",
"jumpToEnd": "Vai alla fine",
"lineCount_one": "{{value}} riga",
"lineCount_other": "{{value}} righe",
"linesToFetch": "Linee da recuperare",
"live": "Live",
"searchInLog": "Cerca nel registro…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "토큰이 재생성되었습니다."
},
"domainField": {
"alreadyAttached": "{{name}}은(는) 이미 서비스에 연결되어 있습니다.",
"alreadyInServerkit": "이미 ServerKit에 있습니다.",
"baseDomain": "기본 도메인",
"domainKind": "도메인 종류",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "전체 화면 종료",
"fullscreen": "전체 화면",
"jumpToEnd": "끝까지 이동",
"lineCount_one": "{{value}}줄",
"lineCount_other": "{{value}}줄",
"linesToFetch": "가져올 줄",
"live": "라이브",
"searchInLog": "로그에서 검색…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token został zregenerowany"
},
"domainField": {
"alreadyAttached": "{{name}} jest już przypisana do usługi.",
"alreadyInServerkit": "Już jest w ServerKit.",
"baseDomain": "Domena bazowa",
"domainKind": "Rodzaj domeny",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Wyjdź z pełnego ekranu",
"fullscreen": "Pełny ekran",
"jumpToEnd": "Skocz do końca",
"lineCount_one": "{{value}} wiersz",
"lineCount_other": "Wiersze: {{value}}",
"linesToFetch": "Linie do pobrania",
"live": "Na żywo",
"searchInLog": "Wyszukaj w dzienniku…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Token regenerado"
},
"domainField": {
"alreadyAttached": "{{name}} já está vinculado a um serviço.",
"alreadyInServerkit": "Já está no ServerKit.",
"baseDomain": "Domínio base",
"domainKind": "Tipo de domínio",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Sair da tela cheia",
"fullscreen": "Tela cheia",
"jumpToEnd": "Ir para o fim",
"lineCount_one": "{{value}} linha",
"lineCount_other": "{{value}} linhas",
"linesToFetch": "Linhas para buscar",
"live": "Ao vivo",
"searchInLog": "Pesquisar no registro…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Токен перегенерирован"
},
"domainField": {
"alreadyAttached": "{{name}} уже привязан к сервису.",
"alreadyInServerkit": "Уже есть в ServerKit.",
"baseDomain": "Базовый домен",
"domainKind": "Тип домена",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Выйти из полноэкранного режима",
"fullscreen": "Полноэкранный",
"jumpToEnd": "Перейти в конец",
"lineCount_one": "{{value}} строка",
"lineCount_other": "Строк: {{value}}",
"linesToFetch": "Строки для извлечения",
"live": "В реальном времени",
"searchInLog": "Искать в журнале…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "โทเค็นถูกสร้างขึ้นใหม่"
},
"domainField": {
"alreadyAttached": "{{name}} เชื่อมกับบริการอยู่แล้ว",
"alreadyInServerkit": "มีอยู่ใน ServerKit แล้ว",
"baseDomain": "โดเมนหลัก",
"domainKind": "ประเภทโดเมน",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "ออกจากโหมดเต็มหน้าจอ",
"fullscreen": "เต็มจอ",
"jumpToEnd": "ข้ามไปสิ้นสุด",
"lineCount_one": "{{value}} บรรทัด",
"lineCount_other": "{{value}} บรรทัด",
"linesToFetch": "เส้นที่จะดึงข้อมูล",
"live": "สด",
"searchInLog": "ค้นหาในบันทึก...",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Jeton yeniden oluşturuldu"
},
"domainField": {
"alreadyAttached": "{{name}} zaten bir hizmete bağlı.",
"alreadyInServerkit": "Zaten ServerKit'te.",
"baseDomain": "Temel alan adı",
"domainKind": "Alan adı türü",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Tam ekrandan çık",
"fullscreen": "Tam ekran",
"jumpToEnd": "Sona atla",
"lineCount_one": "{{value}} satır",
"lineCount_other": "{{value}} satır",
"linesToFetch": "Alınacak satırlar",
"live": "Canlı",
"searchInLog": "Günlükte ara…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "Mã thông báo đã được tạo lại"
},
"domainField": {
"alreadyAttached": "{{name}} đã được gắn với một dịch vụ.",
"alreadyInServerkit": "Đã có trong ServerKit.",
"baseDomain": "Tên miền gốc",
"domainKind": "Loại tên miền",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "Thoát toàn màn hình",
"fullscreen": "Toàn màn hình",
"jumpToEnd": "Chuyển đến cuối",
"lineCount_one": "{{value}} dòng",
"lineCount_other": "{{value}} dòng",
"linesToFetch": "Dòng để tìm nạp",
"live": "Trực tiếp",
"searchInLog": "Tìm kiếm trong nhật ký…",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "令牌重新生成"
},
"domainField": {
"alreadyAttached": "{{name}} 已关联到某个服务。",
"alreadyInServerkit": "已在 ServerKit 中。",
"baseDomain": "基础域名",
"domainKind": "域名类型",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "退出全屏",
"fullscreen": "全屏",
"jumpToEnd": "跳转到结尾",
"lineCount_one": "{{value}} 行",
"lineCount_other": "{{value}} 行",
"linesToFetch": "要获取的行",
"live": "实时",
"searchInLog": "在日志中搜索...",
+3
View File
@@ -2232,6 +2232,7 @@
"tokenRegenerated": "權杖重新產生"
},
"domainField": {
"alreadyAttached": "{{name}} 已連結到某個服務。",
"alreadyInServerkit": "已存在於 ServerKit 中。",
"baseDomain": "基礎網域",
"domainKind": "網域類型",
@@ -3550,6 +3551,8 @@
"exitFullscreen": "退出全螢幕",
"fullscreen": "全螢幕",
"jumpToEnd": "跳到結尾",
"lineCount_one": "{{value}} 行",
"lineCount_other": "{{value}} 行",
"linesToFetch": "要取得的行",
"live": "即時",
"searchInLog": "在記錄中搜尋…",