Settings gains a second service button next to restart: stop every managed local model server and exit the gateway process (nothing is respawned; in Docker the restart policy decides). The SPA replaces itself with a static "gateway is off" screen since the API is gone. The restart button is relabeled "Restart everything" to say what it always did — the gateway re-execs itself and managed servers come back with it. Translated in all seven languages.
654 lines
37 KiB
JavaScript
Vendored
654 lines
37 KiB
JavaScript
Vendored
// Turkish — tam çeviri; eksik anahtarlar İngilizce'ye geri döner.
|
||
export default {
|
||
// brand / common
|
||
"brand.sub": "Gateway",
|
||
"common.loading": "Yükleniyor…",
|
||
"common.save": "Kaydet",
|
||
"common.saving": "Kaydediliyor…",
|
||
"common.cancel": "İptal",
|
||
"common.add": "Ekle",
|
||
"common.edit": "Düzenle",
|
||
"common.delete": "Sil",
|
||
"common.close": "Kapat",
|
||
"common.test": "Test",
|
||
"common.copy": "Kopyala",
|
||
"common.copied": "Kopyalandı",
|
||
"common.confirm": "Onayla",
|
||
"common.none": "yok",
|
||
"common.saved": "Kaydedildi",
|
||
"common.error": "Hata",
|
||
"common.ok": "Tamam",
|
||
"common.refresh": "Yenile",
|
||
"common.actions": "İşlemler",
|
||
"common.optional": "isteğe bağlı",
|
||
"common.search": "Ara",
|
||
"common.all": "tümü",
|
||
|
||
// nav
|
||
"nav.dashboard": "Pano",
|
||
"nav.models": "Modeller",
|
||
"nav.routing": "Yönlendirme",
|
||
"nav.protocols": "Protokoller",
|
||
"nav.keys": "API anahtarları",
|
||
"nav.playground": "Oyun alanı",
|
||
"nav.settings": "Ayarlar",
|
||
"nav.foot": "Gateway · v{v}",
|
||
"nav.billing": "Router anahtarı ve ödeme",
|
||
|
||
// topbar / status
|
||
"status.router": "Yönlendirici",
|
||
"status.gateway": "Gateway",
|
||
"status.online": "çevrimiçi",
|
||
"status.offline": "çevrimdışı",
|
||
"status.checking": "kontrol ediliyor…",
|
||
"status.noKey": "anahtar yok",
|
||
"theme.toggle": "Tema",
|
||
"logout": "Çıkış yap",
|
||
|
||
// login
|
||
"login.title": "allaigate Gateway",
|
||
"login.subtitle": "Bu gateway'i yönetmek için yönetici token'ını girin.",
|
||
"login.token": "Yönetici token'ı",
|
||
"login.tokenPlaceholder": "yönetici token'ını yapıştırın",
|
||
"login.submit": "Konsolu aç",
|
||
"login.hint": "Token, başlangıçta gateway günlüğüne yazdırılır veya [admin].token_env ile ayarlanır.",
|
||
"login.failed": "Geçersiz yönetici token'ı.",
|
||
|
||
// dashboard
|
||
"dash.title": "Pano",
|
||
"dash.subtitle": "Model havuzunuz için canlı trafik, maliyet ve yönlendirme analitiği.",
|
||
"dash.range": "Aralık",
|
||
"dash.range.1h": "1s",
|
||
"dash.range.24h": "24s",
|
||
"dash.range.7d": "7g",
|
||
"dash.kpi.requests": "İstekler",
|
||
"dash.kpi.tokens": "Token'lar",
|
||
"dash.kpi.cost": "Maliyet",
|
||
"dash.kpi.latency": "Ort. gecikme",
|
||
"dash.kpi.success": "Başarı oranı",
|
||
"dash.kpi.failovers": "Yedeklemeler",
|
||
"dash.series.title": "Zamana göre istekler",
|
||
"dash.series.cost": "Zamana göre maliyet",
|
||
"dash.series.empty": "Bu aralıkta henüz trafik yok.",
|
||
"dash.breakdown.title": "Dağılım",
|
||
"dash.groupby.model": "modele göre",
|
||
"dash.groupby.tier": "kademeye göre",
|
||
"dash.groupby.label": "göreve göre",
|
||
"dash.groupby.account": "hesaba göre",
|
||
"dash.recent.title": "Son istekler",
|
||
"dash.recent.empty": "Henüz kayıtlı istek yok. Oyun alanını deneyin.",
|
||
"dash.col.time": "Zaman",
|
||
"dash.col.model": "Model",
|
||
"dash.col.tier": "Kademe",
|
||
"dash.col.task": "Görev",
|
||
"dash.col.tokens": "Token'lar",
|
||
"dash.col.cost": "Maliyet",
|
||
"dash.col.latency": "Gecikme",
|
||
"dash.col.outcome": "Sonuç",
|
||
"dash.col.requests": "İstekler",
|
||
"dash.col.errors": "Hatalar",
|
||
"dash.health.title": "Sağlık",
|
||
"dash.health.reachable": "erişilebilir",
|
||
"dash.health.unreachable": "erişilemiyor",
|
||
"dash.health.getKey": "Router anahtarı al",
|
||
|
||
// models
|
||
"models.title": "Modeller",
|
||
"models.subtitle": "Model havuzunuz — ucuz yerel modelleri bulut API'leriyle karıştırın.",
|
||
"models.add": "Model ekle",
|
||
"models.empty": "Henüz model yok. Başlamak için ilk modelinizi ekleyin.",
|
||
"models.col.id": "ID",
|
||
"models.col.provider": "Sağlayıcı",
|
||
"models.col.model": "Model",
|
||
"models.col.tier": "Maliyet kademesi",
|
||
"models.col.key": "Anahtar",
|
||
"models.col.caps": "Yetenekler",
|
||
"models.col.price": "Fiyat (giriş/çıkış)",
|
||
"models.probe": "Sına",
|
||
"models.probe.ok": "Erişilebilir ({ms} ms)",
|
||
"models.probe.fail": "Başarısız: {err}",
|
||
"models.form.addTitle": "Model ekle",
|
||
"models.form.editTitle": "Modeli düzenle",
|
||
"models.form.id": "ID",
|
||
"models.form.idHint": "Yönlendirmede kullanılan benzersiz id, örn. local-qwen",
|
||
"models.form.provider": "Sağlayıcı",
|
||
"models.form.baseUrl": "Temel URL",
|
||
"models.form.model": "Model adı",
|
||
"models.form.kind": "Tür",
|
||
"models.form.costTier": "Maliyet kademesi",
|
||
"models.form.priceIn": "Giriş fiyatı ($/1M)",
|
||
"models.form.priceOut": "Çıkış fiyatı ($/1M)",
|
||
"models.form.apiKeyEnv": "API anahtarı ortam değişkeni adı",
|
||
"models.form.apiKeyEnvHint": "Bu sağlayıcının anahtarını tutan ortam değişkeni / saklı gizli adı.",
|
||
"models.form.caps": "Yetenekler",
|
||
"models.form.secret": "Gizli değer",
|
||
"models.form.secretStored": "saklandı",
|
||
"models.form.secretEnv": "ortamdan",
|
||
"models.form.secretMissing": "ayarlanmadı",
|
||
"models.form.secretPlaceholder": "anahtarı ayarla veya değiştir (yalnızca yazma)",
|
||
"models.deleteConfirm": "\"{id}\" modelini sil?",
|
||
|
||
// routing
|
||
"routing.title": "Yönlendirme",
|
||
"routing.subtitle": "Karmaşıklık kademelerini sıralı model listesiyle eşleştirin (öncelik = yedek).",
|
||
"routing.default": "Varsayılan model",
|
||
"routing.defaultHint": "Yönlendirici erişilemez olduğunda kullanılır.",
|
||
"routing.tiers": "Kademeler",
|
||
"routing.tierHint": "Sıralamak için çipleri sürükleyin; birincisi tercih edilir, diğerleri yedektir.",
|
||
"routing.addModel": "+ ekle",
|
||
"routing.addTier": "Kademe ekle",
|
||
"routing.tierName": "Kademe adı",
|
||
"routing.policy": "İlke",
|
||
"routing.policy.mode": "Mod",
|
||
"routing.policy.fixed": "Sabit tablo",
|
||
"routing.policy.costAware": "Maliyet bilinçli",
|
||
"routing.policy.maxCost": "İstek başına maks. maliyet ($)",
|
||
"routing.policy.minClass": "Kademe başına minimum sınıf",
|
||
"routing.empty": "Kullanılabilir model yok — önce model ekleyin.",
|
||
|
||
// protocols
|
||
"protocols.title": "Protokoller",
|
||
"protocols.subtitle": "Yalnızca ihtiyaç duyduğunuz gelen API yüzeylerini etkinleştirin. Geçişler anında uygulanır.",
|
||
"protocols.implemented": "uygulandı",
|
||
"protocols.planned": "planlandı",
|
||
"protocols.openai_chat": "OpenAI Chat Completions",
|
||
"protocols.openai_chat.d": "POST /v1/chat/completions — OpenAI SDK, LangChain, crewAI ile çalışır.",
|
||
"protocols.openai_completions": "OpenAI Completions (eski)",
|
||
"protocols.openai_completions.d": "POST /v1/completions — eski entegrasyonlar.",
|
||
"protocols.openai_embeddings": "OpenAI Embeddings",
|
||
"protocols.openai_embeddings.d": "POST /v1/embeddings — RAG ardışık düzenleri.",
|
||
"protocols.openai_models": "OpenAI Models",
|
||
"protocols.openai_models.d": "GET /v1/models — istemci otomatik keşfi.",
|
||
"protocols.anthropic_messages": "Anthropic Messages",
|
||
"protocols.anthropic_messages.d": "POST /v1/messages — Claude yerel ajanları.",
|
||
"protocols.mcp": "MCP (Model Context Protocol)",
|
||
"protocols.mcp.d": "JSON-RPC / SSE — MCP yerel orkestratörler.",
|
||
"protocols.native_passthrough": "Yerel geçiş",
|
||
"protocols.native_passthrough.d": "POST /route — yönlendirme kararına doğrudan erişim.",
|
||
|
||
// keys
|
||
"keys.title": "API anahtarları",
|
||
"keys.subtitle": "Ajanlarınız için sanal gateway anahtarları. Sağlayıcı anahtarları gateway'den hiç çıkmaz.",
|
||
"keys.add": "Yeni anahtar",
|
||
"keys.empty": "Anahtar yapılandırılmadı — gateway açık modda (kimlik doğrulama yok).",
|
||
"keys.openMode": "Açık mod: tüm istekler kabul edilir (anahtar gerekmez).",
|
||
"keys.col.key": "Anahtar",
|
||
"keys.col.account": "Hesap",
|
||
"keys.col.rate": "Oran / dak",
|
||
"keys.col.models": "İzin verilen modeller",
|
||
"keys.form.title": "Yeni API anahtarı",
|
||
"keys.form.account": "Hesap",
|
||
"keys.form.rate": "Oran sınırı / dak",
|
||
"keys.form.allow": "İzin verilen modeller",
|
||
"keys.form.allowHint": "Tüm modellere izin vermek için boş bırakın.",
|
||
"keys.form.custom": "Özel anahtar (isteğe bağlı)",
|
||
"keys.form.customHint": "sk-gw-… otomatik oluşturmak için boş bırakın.",
|
||
"keys.created": "Anahtar oluşturuldu — şimdi kopyalayın, bir daha gösterilmeyecek:",
|
||
"keys.revoke": "İptal et",
|
||
"keys.revokeConfirm": "Bu anahtarı iptal et?",
|
||
"keys.allowAll": "tümü",
|
||
|
||
// playground
|
||
"pg.title": "Oyun alanı",
|
||
"pg.subtitle": "Canlı ardışık düzen üzerinden istem gönderin ve yönlendirme kararını inceleyin.",
|
||
"pg.system": "Sistem istemi",
|
||
"pg.systemPlaceholder": "isteğe bağlı sistem mesajı",
|
||
"pg.prompt": "İstem",
|
||
"pg.promptPlaceholder": "Bir şey sorun…",
|
||
"pg.mode": "Mod",
|
||
"pg.mode.auto": "Otomatik (yönlendir)",
|
||
"pg.mode.pinned": "Sabitlenmiş model",
|
||
"pg.profile": "Profil",
|
||
"pg.model": "Model",
|
||
"pg.temp": "Sıcaklık",
|
||
"pg.maxTokens": "Maks. token",
|
||
"pg.send": "Gönder",
|
||
"pg.stream": "Akış",
|
||
"pg.sending": "Gönderiliyor…",
|
||
"pg.answer": "Yanıt",
|
||
"pg.empty": "Yanıt ve yönlendirme kararı burada görünecek.",
|
||
"pg.decision": "Yönlendirme kararı",
|
||
"pg.task": "Görev",
|
||
"pg.tier": "Kademe",
|
||
"pg.score": "Karmaşıklık",
|
||
"pg.selected": "Seçilen model",
|
||
"pg.source": "Rota kaynağı",
|
||
"pg.cost": "Maliyet",
|
||
"pg.latency": "Gecikme",
|
||
"pg.tokens": "Token'lar (giriş/çıkış)",
|
||
"pg.failover": "Yedekleme",
|
||
"pg.error": "İstek başarısız",
|
||
|
||
// settings
|
||
"settings.title": "Ayarlar",
|
||
"settings.subtitle": "Gateway bağlantısı, yönlendirme girişi, güvenilirlik ve gözlemlenebilirlik.",
|
||
"settings.router": "Yönlendirici bağlantısı",
|
||
"settings.router.url": "Yönlendirici URL'si",
|
||
"settings.router.keyEnv": "Yönlendirici anahtarı ortam değişkeni adı",
|
||
"settings.router.timeout": "Zaman aşımı (ms)",
|
||
"settings.router.verifyTls": "TLS sertifikasını doğrula",
|
||
"settings.router.taxonomy": "Taksonomi id",
|
||
"settings.router.getKey": "Router anahtarı almak veya bakiye yüklemek için:",
|
||
"settings.router.secret": "Router anahtarı (değer)",
|
||
"settings.router.test": "Router'ı test et",
|
||
"router.probe.ok": "Router çalışıyor ({ms} ms)",
|
||
"router.probe.noKey": "Router anahtarı ayarlanmadı",
|
||
"router.probe.auth": "Anahtar reddedildi — geçersiz veya iptal edilmiş",
|
||
"router.probe.payment": "Ödeme gerekli — plan süresi doldu veya kota tükendi",
|
||
"router.probe.quota": "Hız sınırı aşıldı",
|
||
"router.probe.timeout": "Router zaman aşımına uğradı",
|
||
"router.probe.unreachable": "Router erişilemiyor",
|
||
"router.probe.error": "Router hatası",
|
||
"router.usage": "Kullanım",
|
||
"settings.route": "Yönlendirme girişi",
|
||
"settings.route.strategy": "Metin stratejisi",
|
||
"settings.route.maxChars": "Maks. karakter",
|
||
"settings.route.cacheTtl": "Önbellek TTL",
|
||
"settings.route.profile": "Varsayılan profil",
|
||
"settings.breaker": "Devre kesici",
|
||
"settings.breaker.threshold": "Hata eşiği",
|
||
"settings.breaker.cooldown": "Bekleme süresi",
|
||
"settings.log": "Günlükleme",
|
||
"settings.log.level": "Günlük seviyesi",
|
||
"settings.log.bodies": "Mesaj gövdelerini günlükle (gizlilik kapalı)",
|
||
"settings.telemetry": "Telemetri",
|
||
"settings.telemetry.metrics": "Prometheus /metrics'i aç",
|
||
"settings.cortiq": "Yanıt meta verisi",
|
||
"settings.cortiq.echo": "Yanıtlarda cortiq yönlendirme bloğunu yansıt",
|
||
"settings.stats": "İstatistikler",
|
||
"settings.stats.enabled": "İstek istatistiklerini kaydet",
|
||
"settings.stats.file": "İstatistik dosyası (JSONL)",
|
||
"settings.stats.retention": "Saklama süresi",
|
||
"settings.listen": "Dinleme adresi",
|
||
"settings.export": "Yapılandırmayı dışa aktar",
|
||
"settings.import": "Yapılandırmayı içe aktar",
|
||
"settings.needsRestart": "Kaydedildi. Bazı değişiklikler (dinleme adresi) yeniden başlatma gerektirir.",
|
||
|
||
// toasts / misc
|
||
"toast.saved": "Değişiklikler kaydedildi",
|
||
"toast.deleted": "Silindi",
|
||
"toast.probing": "Sınanıyor…",
|
||
"toast.imported": "Yapılandırma içe aktarıldı",
|
||
"dash.cache": "Anlamsal önbellek",
|
||
"dash.cache.hitRate": "İsabet oranı",
|
||
"dash.cache.hits": "İsabet",
|
||
"dash.cache.saved": "Tasarruf",
|
||
"dash.cache.disabled": "Anlamsal önbellek kapalı — Ayarlar'dan etkinleştirin.",
|
||
"settings.cache": "Anlamsal önbellek",
|
||
"settings.cache.enabled": "Anlamsal önbelleği etkinleştir",
|
||
"settings.cache.threshold": "Benzerlik eşiği",
|
||
"settings.cache.ttl": "Giriş TTL",
|
||
"settings.cache.embed": "Gömme modeli",
|
||
"settings.cache.note": "Anlamsal önbellek ayarları yeniden başlatmadan sonra geçerli olur.",
|
||
|
||
// ── translated from en.js (previously falling back to English) ──
|
||
// nav
|
||
"nav.import": "Model içe aktar",
|
||
|
||
// dash
|
||
"dash.clear": "Günlükleri temizle",
|
||
"dash.clearConfirm": "Kaydedilmiş tüm istatistikler ve günlükler silinsin mi? Bu işlem geri alınamaz.",
|
||
"dash.cleared": "Günlükler temizlendi",
|
||
|
||
// models
|
||
"models.form.idOrModel": "Bir id ya da model adı girin",
|
||
"models.form.apiKey": "API anahtarı",
|
||
"models.form.apiKeyPlaceholder": "API anahtarınızı yapıştırın",
|
||
"models.form.apiKeyNotNeeded": "gerekmiyor (yerel sunucu)",
|
||
"models.form.apiKeyHint": "Ağ geçidinde güvenle saklanır; bir daha gösterilmez.",
|
||
"models.form.keyStored": "Kayıtlı bir anahtar var — korumak için boş bırakın ya da yenisini yapıştırın.",
|
||
"models.form.keyFromEnv": "Ortam değişkenindeki anahtar kullanılıyor.",
|
||
"models.form.paramsTitle": "Üretim ve düşünme parametreleri (O(1), MTP, sıcaklık)",
|
||
"models.form.temperature": "Sıcaklık",
|
||
"models.form.temperatureHint": "Üretim sıcaklığı (0.0 = belirlenimci, 1.0+ = yaratıcı).",
|
||
"models.form.topP": "Top-P (nucleus örnekleme)",
|
||
"models.form.topPHint": "Örnekleme eşiği (0.0 .. 1.0).",
|
||
"models.form.maxTokens": "Maks. token",
|
||
"models.form.maxTokensHint": "Üretilecek en fazla token sayısı.",
|
||
"models.form.thinkBudget": "Düşünme modu / düşünme bütçesi",
|
||
"models.form.thinkBudgetHint": "Akıl yürütme token bütçesi (0 = kapalı, N > 0 = en fazla akıl yürütme tokeni).",
|
||
"models.form.systemPrompt": "Varsayılan sistem istemi",
|
||
"models.form.systemPromptHint": "İstekte sistem istemi yoksa otomatik olarak başa eklenir.",
|
||
"models.form.systemPromptPlaceholder": "Yardımsever bir asistansın…",
|
||
"models.form.testKey": "Test et ve modelleri yükle",
|
||
"models.form.testing": "kontrol ediliyor…",
|
||
"models.form.foundModels": "{n} model yüklendi",
|
||
"models.form.modelPlaceholder": "aramak için yazın…",
|
||
"models.form.modelHint": "Anahtarınızla listeyi çekmek için “Test et ve modelleri yükle”ye tıklayın, sonra birini seçin.",
|
||
"models.managed": "yönetilen",
|
||
"models.managedHint": "Yönetilen CMF sunucusu tarafından sağlanır (Ayarlar → Yerel modeller). Yapılandırmayı orada yapın.",
|
||
|
||
// settings
|
||
"settings.router.enabled": "Yönlendiriciyi kullan (kapalı = yalnızca yerel modeller)",
|
||
"settings.cmf": "Yerel modeller (CMF)",
|
||
"settings.cmf.localOnly": "Yalnızca yerel modelleri kullan",
|
||
"settings.cmf.manage": "Yerel model sunucusu çalıştır",
|
||
"settings.cmf.autoInstall": "cortiq'i otomatik kur (crates.io)",
|
||
"settings.cmf.autoUpdate": "cortiq'i otomatik güncelle",
|
||
"settings.cmf.model": "Yerel .cmf model yolu",
|
||
"settings.cmf.port": "Yerel sunucu portu",
|
||
"settings.cmf.modelId": "Havuzdaki model id'si",
|
||
"settings.cmf.note": "Yerel bir .cmf dosyasını cortiq ile sunar (github.com/infosave2007/cmf). Yönlendirici erişilemez olsa bile çalışır.",
|
||
"settings.cmf.threads": "İş parçacıkları",
|
||
"settings.cmf.gpu": "GPU kullan (Metal / wgpu)",
|
||
"settings.cmf.speedNote": "İş parçacıkları çözme aşamasındaki matris-vektör çarpımlarını paralelleştirir (~3× hızlı; 0 = çalışma zamanı varsayılanı). GPU'ya aktarım daha çok uzun istemlerin prefill aşamasına yarar — çözme bellek bant genişliğine bağlı olduğundan Apple Silicon'da etkisi yaklaşık nötrdür.",
|
||
"settings.cmf.pick": "bir model seçin",
|
||
"settings.cmf.models": "Yerel modeller",
|
||
"settings.cmf.modelsHelp": "Her satır, ağ geçidinin çalıştırdığı (kendi portunda kendi cortiq serve süreci olan) ve havuza kaydettiği bir modeldir. Kaç .cmf dosyanız ve boş portunuz varsa o kadar ekleyebilirsiniz.",
|
||
"settings.cmf.rowHint": "id · .cmf dosyası · port · iş parçacığı · GPU. Değişiklikler yeniden başlatınca geçerli olur; satırı silmek o sunucuyu durdurur.",
|
||
"settings.cmf.addServer": "+ Yerel model ekle",
|
||
"settings.cmf.checkPort": "Portu kontrol et",
|
||
"settings.cmf.portFree": "port boş",
|
||
"settings.cmf.portBusy": "port kullanımda",
|
||
"settings.cmf.useSuggested": "{port} kullan",
|
||
"settings.cmf.serving": "{model} :{port} üzerinde sunuluyor",
|
||
"settings.cmf.intro": "Modelleri cortiq motoruyla yerelde çalıştırın — çevrimdışıyken ya da yönlendirici çöktüğünde bile çalışır.",
|
||
"settings.cmf.runtime": "cortiq çalışma zamanı",
|
||
"settings.cmf.runtimeHelp": ".cmf modellerini yükleyip çalıştıran `cortiq` komut satırı aracı. Yerel sunucuyu başlatmadan önce bir kez kurun.",
|
||
"settings.cmf.install": "cortiq'i kur",
|
||
"settings.cmf.reinstall": "Yeniden kur / güncelle",
|
||
"settings.cmf.installing": "kuruluyor… (derleniyor, birkaç dakika)",
|
||
"settings.cmf.installedOk": "cortiq kuruldu",
|
||
"settings.cmf.notInstalled": "kurulu değil",
|
||
"settings.cmf.addModel": "Model ekle",
|
||
"settings.cmf.addModelHelp": "Modeller “Model içe aktar” sekmesinde indirilip dönüştürülür (HuggingFace → .cmf). Sonra aşağıdaki yerel sunucuyu o .cmf dosyasına yönlendirin.",
|
||
"settings.cmf.importNote": "Henüz model yok mu? Bir tane içe aktarın:",
|
||
"settings.cmf.importLink": "İçe aktarmayı aç",
|
||
"settings.cmf.modelHelp": "Sunulacak .cmf dosyasının yolu (ör. models/qwen.cmf), içe aktarma sekmesinde üretilir. Farklı görevler için birden çok model mi? Hepsini içe aktarıp bu yolu değiştirin.",
|
||
"settings.cmf.portHelp": "Yerel model sunucusunun dinlediği TCP portu (varsayılan 8081). Yalnızca başka bir servisle çakışırsa değiştirin.",
|
||
"settings.cmf.threadsHelp": "Üretim için kaç CPU çekirdeği kullanılacağı. Daha fazlası = daha hızlı (tek çekirdeğe göre ~3×); 0 seçimi çalışma zamanına bırakır.",
|
||
"settings.cmf.gpuHelp": "Matris hesaplarını GPU'ya aktarır (Metal/wgpu). Apple Silicon'da çoğunlukla uzun istemleri hızlandırır — çözme bellek bant genişliğine bağlıdır.",
|
||
"settings.cmf.localOnlyHelp": "Her isteği yerel modele yönlendirir; yönlendiriciyi ve tüm bulut sağlayıcılarını yok sayar.",
|
||
"settings.cmf.manageHelp": "Ağ geçidi açılışta aşağıdaki .cmf için `cortiq serve` başlatır ve istekleri oraya yönlendirir. cortiq'in kurulu olması gerekir (adım 1). Yeniden başlatınca geçerli olur.",
|
||
"settings.cmf.autoInstallHelp": "Açılışta cortiq yoksa crates.io üzerinden otomatik kurar.",
|
||
"settings.cmf.autoUpdateHelp": "Açılışta daha yeni bir sürüm varsa cortiq'i en son sürüme yükseltir.",
|
||
"settings.router.enabledHelp": "Her isteği cortiq yönlendiricisi sınıflandırsın (görev türü + karmaşıklık) ve model seçsin. Kapalı = yalnızca yerel yönlendirme tablosunu kullan.",
|
||
"settings.router.verifyTlsHelp": "Yönlendiricinin TLS sertifikasını doğrula. Yalnızca kendinden imzalı ya da IP'ye bağlı sertifikada kapatın.",
|
||
"settings.telemetry.metricsHelp": "Prometheus metriklerini GET /metrics adresinde yayınla.",
|
||
"settings.cortiq.echoHelp": "Her yanıt gövdesine `cortiq` alanı ekle (görev, model, maliyet). Yanıt başlıkları her zaman gönderilir.",
|
||
"settings.stats.enabledHelp": "Panoyu ve grafikleri beslemek için son istekleri kaydet.",
|
||
"settings.cache.enabledHelp": "Anlamsal önbellek: yeni bir istem geçmiştekine çok benziyorsa kaydedilmiş yanıtı döndürür ve model çağrısını atlar. Havuzda bir gömme (embedding) modeli gerekir.",
|
||
"settings.log.bodiesHelp": "İstek/yanıt mesaj gövdelerinin tamamını günlüğe yaz. Gizlilik için varsayılan olarak kapalı.",
|
||
"settings.router.saveKey": "Anahtarı kaydet",
|
||
"settings.router.keySaved": "Yönlendirici anahtarı kaydedildi",
|
||
"settings.router.keyEmpty": "Önce anahtarı yapıştırın",
|
||
"settings.router.secretHelp": "api.allaigate.com e-postanızdaki anahtarı yapıştırıp Anahtarı kaydet'e basın. Bu bir “API anahtarları” değeri DEĞİLDİR — onlar ağ geçidinizi çağıran istemciler içindir.",
|
||
"settings.router.keyStoredMask": "•••••••••••• — anahtar kayıtlı (değiştirmek için yenisini yapıştırın)",
|
||
"settings.route.strategyHelp": "Sınıflandırma için yönlendiriciye gönderilen metin: last_user = yalnızca son kullanıcı mesajı; last_user_plus_system = son kullanıcı mesajı + sistem istemi; concat_all = tüm konuşma.",
|
||
"settings.route.maxCharsHelp": "Bu metnin yönlendiriciye gönderilen en fazla karakter sayısı (fazlası kırpılır). Daha fazlası = daha isabetli sınıflandırma, ama daha yavaş ve pahalı yönlendirici çağrıları.",
|
||
"settings.route.cacheTtlHelp": "Aynı istek için yönlendirme kararının, yönlendiriciye yeniden sorulmadan önce ne kadar önbellekte tutulacağı (ör. 60s, 5m).",
|
||
"settings.route.profileHelp": "İstek belirtmediğinde kullanılacak varsayılan yönlendirme profili: cost-saver (en ucuz), balanced ya da quality-first (en iyi model). Yönlendiricinin hangi modeli seçeceğini etkiler.",
|
||
|
||
// import
|
||
"import.subtitle": "HuggingFace'te arayın, yerel bir .cmf dosyasına dönüştürün ve sunun.",
|
||
"import.searchPlaceholder": "HuggingFace modellerinde ara (ör. qwen3, llama)…",
|
||
"import.searching": "Aranıyor…",
|
||
"import.noResults": "Model bulunamadı.",
|
||
"import.configure": "Dönüştürmeyi yapılandır",
|
||
"import.outName": "Çıktı adı",
|
||
"import.outNameHint": ".cmf dosya adı (harf, rakam, - ve _).",
|
||
"import.quant": "Niceleme",
|
||
"import.convert": "Dönüştür ve yükle",
|
||
"import.converting": "Dönüştürülüyor",
|
||
"import.started": "Dönüştürme başladı",
|
||
"import.failed": "Dönüştürme başarısız — günlüğe bakın.",
|
||
"import.register": "Yerel model olarak kaydet",
|
||
"import.registered": "“{id}” olarak kaydedildi. Sunmak için cortiq-server'ı çalıştırın.",
|
||
"import.jobs": "İndirmeler ve dönüştürmeler",
|
||
"import.cancel": "İptal",
|
||
"import.cancelling": "İptal ediliyor — yarım kalan dosya temizleniyor…",
|
||
"import.delete": "Sil",
|
||
"import.deleteConfirm": "Bu model ve dönüştürülmüş .cmf dosyası diskten silinsin mi?",
|
||
"import.deleted": "Dosyalarıyla birlikte silindi",
|
||
"import.state.running": "çalışıyor",
|
||
"import.state.done": "tamam",
|
||
"import.state.error": "hata",
|
||
"import.state.cancelled": "iptal edildi",
|
||
"import.featuredTitle": "Öne çıkan hazır .cmf modelleri",
|
||
"import.featuredSub": "HuggingFace'teki infosave hesabından hazır .cmf modelleri — liste canlı okunur, yeni modeller kendiliğinden görünür.",
|
||
"import.readyCmfBadge": "Hazır .cmf",
|
||
"import.directDownload": "İndir",
|
||
"import.q.q8_2f": "8 bit çift alan (𝒲×θ) — önerilen: en iyi kalite/boyut dengesi.",
|
||
"import.q.q8_row": "Satır başına 8 bit — basit ve sağlam.",
|
||
"import.q.q4": "4 bit blok — en küçük, kalite daha düşük.",
|
||
"import.q.q4_tiled": "4 bit döşeli (Q4_TILED) — Metal GPU'da 1,66× daha hızlı.",
|
||
"import.q.vbit": "Değişken 3–8 bit — uzman başına bit bütçesi.",
|
||
"import.q.q1t": "1,58 bit üçlü (Q1T) — seyrek aykırı değerlerle BitNet b1.58.",
|
||
"import.q.q1s": "1 bit seyrek (Q1S) — holografik aykırı değerlerle 1 bit taban.",
|
||
"import.q.q1p": "1 bit PTQ (Q1P) — hata yayılımlı 1 bit.",
|
||
"import.q.q1": "1 bit (Q1) — saf ikili biçim.",
|
||
"import.q.f16": "16 bit — niceleme yok.",
|
||
"import.q.f32": "32 bit — tam hassasiyet (büyük dosya).",
|
||
"import.adv.title": "Gelişmiş ayarlar",
|
||
"import.adv.auto": "otomatik",
|
||
"import.adv.linearCore": "Doğrusal çekirdek",
|
||
"import.adv.linearHint": "Doğrusal dikkat katmanlarının nasıl taşındığı/katlandığı.",
|
||
"import.adv.nphase": "vmf_phase faz/başlık",
|
||
"import.adv.vbitShape": "VBIT bütçe biçimi",
|
||
"import.adv.meanBits": "VBIT ortalama bit",
|
||
"import.adv.shard": "Parça üst sınırı (GB)",
|
||
"import.adv.noShard": "parçalama yok",
|
||
"import.adv.skipMtp": "MTP başlığını atla",
|
||
"import.adv.o1": "O(1) dikkat",
|
||
"import.adv.o1Hint": "Sabit bellekli akış dikkati: KV önbelleği prefill sonrası serbest bırakılır, böylece uzun bağlamlar belleği büyütmez. Ağırlıklar bayt bayt aynı kalır — yalnızca yükleme anına dair bir ipucu kaydedilir; istediğiniz zaman geri dönebilirsiniz (--o1 off ile sunun). Qwen3-0.6B üzerinde doğrulandı: tüm katmanlar ≈ ×1,18 şaşkınlık (perplexity).",
|
||
"import.adv.o1Off": "kapalı — tam dikkat (varsayılan)",
|
||
"import.adv.o1All": "all — her softmax katmanını dönüştür",
|
||
"import.adv.o1Deep": "deep N — yalnızca en derin N katman",
|
||
"import.adv.o1Custom": "özel — açık katman listesi",
|
||
"import.adv.o1DeepN": "N derin katman",
|
||
"import.adv.o1Layers": "Katmanlar (virgülle ayrılmış)",
|
||
"import.adv.o1mHint": "landmark bütçesi (varsayılan 32)",
|
||
"import.adv.o1windowHint": "tam pencere genişliği (varsayılan 128)",
|
||
"import.adv.o1sinkHint": "kalıcı tam sink anahtarları (varsayılan 4)",
|
||
|
||
// onboarding
|
||
"onboarding.title": "İlk kurulum",
|
||
"onboarding.welcome": "Cortiq Gateway'e hoş geldiniz",
|
||
"onboarding.welcomeSub": "Dilinizi seçin — üst çubuktan istediğiniz zaman değiştirebilirsiniz.",
|
||
"onboarding.next": "İleri",
|
||
"onboarding.back": "Geri",
|
||
"onboarding.skip": "Şimdilik atla",
|
||
"onboarding.skipSetup": "Atla",
|
||
"onboarding.finish": "Kurulumu tamamla",
|
||
"onboarding.featuredTitle": "Hazır modeller (tek tık)",
|
||
"onboarding.featuredSub": "Bunlar HuggingFace'te infosave tarafından yayınlanan, önceden dönüştürülmüş .cmf modelleridir — sadece indirin, dönüştürme gerekmez. Hemen başlamak için bir ya da birkaçını seçin.",
|
||
"onboarding.download": "İndir",
|
||
"onboarding.hfTitle": "Herhangi bir HuggingFace modeli — otomatik dönüştürme",
|
||
"onboarding.hfSub": "İstediğiniz modeli arayın, bir niceleme seçin; biz onu otomatik olarak .cmf biçimine dönüştürelim. Elle yapılandırma düzenlemesi yok.",
|
||
"onboarding.noJobs": "Henüz indirme yok.",
|
||
"onboarding.doneTitle": "Her şey hazır",
|
||
"onboarding.doneSub": "İndirdiğiniz modeller otomatik olarak kaydedilir. Daha fazlasını İçe aktar ya da Modeller sekmesinden ekleyebilirsiniz.",
|
||
"onboarding.doneHint": "“Kurulumu tamamla”, biten her indirmeyi yerel model olarak bağlar, .cmf sunucusunu başlatır ve yönlendirmeyi ona çevirir. Tümünü sonradan Modeller sekmesinden değiştirebilirsiniz.",
|
||
"onboarding.willRegister": "Yerel model olarak bağlanacak",
|
||
"onboarding.nothingToRegister": "Henüz tamamlanmış indirme yok — bağlanacak bir şey bulunmuyor. Bir adım geri dönüp model seçin.",
|
||
"onboarding.registeredN": "{n} model bağlandı: {ids}",
|
||
"onboarding.runtimeMissing": "cortiq çalışma zamanı kurulu değil — bunları sunabilmek için Ayarlar → Yerel modeller bölümünden kurun.",
|
||
"onboarding.downloaded": "indirildi",
|
||
"onboarding.update": "Güncelle",
|
||
"onboarding.deleteFile": ".cmf dosyasını diskten sil",
|
||
"onboarding.confirmDelete": "“{id}” silinsin mi? .cmf dosyası diskten kaldırılacak.",
|
||
"onboarding.unregistered": "Ayrıca kaydı kaldırıldı: {ids}",
|
||
|
||
// playground: media generation + streaming metrics
|
||
"pg.tab.chat": "Sohbet",
|
||
"pg.tab.image": "Görsel",
|
||
"pg.tab.video": "Video",
|
||
"pg.generate": "Oluştur",
|
||
"pg.generating": "Oluşturuluyor…",
|
||
"pg.genFailed": "Oluşturma başarısız — günlüğe bakın.",
|
||
"pg.result": "Sonuç",
|
||
"pg.genMetrics": "Oluşturma metrikleri",
|
||
"pg.imagePromptPlaceholder": "gün batımında karda oturan kızıl tilki, fotogerçekçi, ayrıntılı tüyler",
|
||
"pg.videoPromptPlaceholder": "aşçı şapkalı bir corgi krep çeviriyor, cızırtı sesleri ve neşeli bir havlama",
|
||
"pg.imageEmpty": "Oluşturulan görsel burada görünecek.",
|
||
"pg.videoEmpty": "Oluşturulan klip (sesiyle) burada görünecek.",
|
||
"pg.width": "Genişlik",
|
||
"pg.height": "Yükseklik",
|
||
"pg.steps": "Adım",
|
||
"pg.seed": "Seed",
|
||
"pg.randomSeed": "Rastgele seed",
|
||
"pg.cfgHint": "Guidance gücü; ≤ 1 CFG'yi kapatır ve işi yarıya indirir.",
|
||
"pg.frames": "Kare",
|
||
"pg.framesHint": "24 fps'te; modelin ızgarasına yuvarlanır.",
|
||
"pg.quality": "JPEG kalitesi",
|
||
"pg.videoSizeHint": "32'nin katları; eğitilen kısa kenar 768.",
|
||
"pg.videoStepsHint": "Turbo LoRA 4 adım için eğitildi.",
|
||
"pg.firstFrame": "İlk kare (isteğe bağlı)",
|
||
"pg.lastFrame": "Son kare (isteğe bağlı)",
|
||
"pg.keyframeHint": "Çalışmayı keyframe-to-video'ya çevirir.",
|
||
"pg.resolution": "Çözünürlük",
|
||
"pg.genTime": "Oluşturma süresi",
|
||
"pg.timePerStep": "Adım başına",
|
||
"pg.timePerFrame": "Kare başına",
|
||
"pg.fileSize": "Dosya boyutu",
|
||
"pg.duration": "Süre",
|
||
"pg.play": "Oynat",
|
||
"pg.noMediaModels": "Henüz yerel bir {kind} modeli yok. İçe aktarma sekmesinden bir tane indirin (ör. infosave koleksiyonundan):",
|
||
"pg.tokSpeed": "Hız",
|
||
"pg.ttft": "İlk token",
|
||
|
||
// ops: logs, system, notices, gallery, chat, snippets, bench
|
||
"nav.logs": "Günlükler",
|
||
"logs.subtitle": "Ağ geçidinin son günlüğü — terminalde görecekleriniz.",
|
||
"logs.filterPlaceholder": "filtrele…",
|
||
"logs.pause": "Duraklat",
|
||
"logs.resume": "Devam et",
|
||
"logs.empty": "Eşleşen yok.",
|
||
"notice.openAdmin": "Yönetim konsolu belirteçsiz açık ve diğer makinelerden erişilebilir. Bu makine özel değilse bir belirteç ayarlayın.",
|
||
"notice.update": "Güncelleme mevcut: v{v}.",
|
||
"dash.sys.title": "Sistem",
|
||
"dash.sys.cores": "çekirdek",
|
||
"dash.sys.disk": "Disk (modeller)",
|
||
"dash.sys.free": "boş",
|
||
"dash.sys.gateway": "ağ geçidi",
|
||
"fit.disk": "disk alanı yetmez",
|
||
"fit.diskTitle": "İndirme, model diskindeki boş alandan büyük.",
|
||
"fit.ram": "RAM'e sığmayabilir",
|
||
"fit.ramTitle": "Model bu makinenin RAM'ine yakın ya da ondan büyük — çalışmayabilir.",
|
||
"pg.eta": "kaldı",
|
||
"pg.min": "dk",
|
||
"pg.queued": "Kuyrukta — {n}. sırada. Mevcut üretim biter bitmez başlar.",
|
||
"pg.gallery": "Son üretimler",
|
||
"pg.galDeleteConfirm": "Bu üretim ve dosyaları silinsin mi?",
|
||
"pg.clearChat": "Temizle",
|
||
"keys.snip.title": "Uygulamanı bağla",
|
||
"keys.snip.hint": "Örneklerden birini projene yapıştır — yalnızca anahtar yer tutucusunu değiştirmen gerekir.",
|
||
"keys.snip.withKey": "Aşağıdaki örnekler az önce oluşturduğun anahtarı içeriyor.",
|
||
"keys.snip.openMode": "API anahtarı yapılandırılmadı — ağ geçidi her değeri kabul eder.",
|
||
"keys.snip.keyPh": "API anahtarın",
|
||
"settings.restart": "Tümünü yeniden başlat",
|
||
"settings.restartConfirm": "Ağ geçidi ve tüm yerel model sunucuları yeniden başlatılsın mı? Devam eden istekler kesilecek.",
|
||
"settings.restarting": "Yeniden başlatılıyor — ağ geçidi dönünce sayfa yenilenecek…",
|
||
"settings.shutdown": "Tümünü durdur ve kapat",
|
||
"settings.shutdownConfirm": "Tüm yerel model sunucuları durdurulup ağ geçidi kapatılsın mı? Ağ geçidini yeniden başlatana kadar API ve bu panel yanıt vermez.",
|
||
"settings.shutdownDone": "Ağ geçidi kapalı.",
|
||
"settings.shutdownHint": "Tüm yerel model sunucuları durduruldu ve süreç sonlandı. Paneli geri getirmek için ağ geçidini sunucuda yeniden başlatın.",
|
||
"bench.title": "Yerel model hızı",
|
||
"bench.hint": "Bu makinede `cortiq bench` çalıştırır — gerçek tok/s, aynı anda tek model.",
|
||
"bench.run": "Ölç",
|
||
"bench.running": "ölçülüyor…",
|
||
"bench.failed": "başarısız",
|
||
"bench.none": "Henüz yerel .cmf sohbet modeli yok.",
|
||
|
||
// task-based routing
|
||
"task.chitchat": "Sohbet",
|
||
"task.code": "Kod",
|
||
"task.creative-writing": "Yaratıcı yazarlık",
|
||
"task.extraction": "Veri çıkarma",
|
||
"task.math": "Matematik",
|
||
"task.qa": "Soru-cevap",
|
||
"task.summarization": "Özetleme",
|
||
"task.translation": "Çeviri",
|
||
"routing.tasks.title": "Göreve göre yönlendirme",
|
||
"routing.tasks.hint": "Kuralın modelleri kendi görevi için önce gelir; karmaşıklık zinciri yedek olarak kalır. Boş = yalnızca karmaşıklığa göre.",
|
||
"routing.tasks.inherit": "karmaşıklığa göre (kural yok)",
|
||
"routing.tasks.share": "isteklerin %{p}'i (7 g)",
|
||
"routing.tasks.fromRouter": "etiketler yönlendiriciden canlı",
|
||
"routing.tasks.builtin": "yönlendiriciye ulaşılamıyor — yerleşik etiket seti",
|
||
"routing.tasks.addCustom": "Görev ekle",
|
||
"routing.tasks.addPlaceholder": "özel etiket…",
|
||
|
||
// benchmark view
|
||
"nav.benchmark": "Kıyaslama",
|
||
"bm.title": "Kıyaslama",
|
||
"bm.subtitle": "Canlı hat üzerinden kalite ve hız probları: yanıtlar anahtar kelimeyle doğrulanır, döngü tespit edilir, model başına tok/s ve ilk token süresi ölçülür.",
|
||
"bm.models": "Test edilecek modeller",
|
||
"bm.quickMode": "Hızlı test",
|
||
"bm.quickHint": "Kısa yanıtlı hızlı alt küme — yerel model başına yaklaşık bir dakika.",
|
||
"bm.suiteInfo": "Yerleşik küme: {q} hızlı / {f} tam test, artı kendi testleriniz.",
|
||
"bm.run": "Çalıştır",
|
||
"bm.pickModel": "En az bir model seçin.",
|
||
"bm.testOf": "{n} testten {i}.",
|
||
"bm.results": "Sonuçlar",
|
||
"bm.quick": "hızlı",
|
||
"bm.test": "Test",
|
||
"bm.cellHint": "Modelin tam yanıtı için hücreye tıklayın.",
|
||
"bm.history": "Önceki çalıştırmalar (bu tarayıcıda saklanır)",
|
||
"bm.custom": "Özel testler",
|
||
"bm.customHint": "İstem + yanıtın içermesi gereken virgülle ayrılmış anahtar kelimeler (| eşanlamlılar için). Bu tarayıcıda saklanır.",
|
||
"bm.promptPh": "istem…",
|
||
"bm.checkPh": "anahtar kelimeler, virgülle",
|
||
"bm.addTest": "Test ekle",
|
||
"bm.emptyAnswer": "boş yanıt",
|
||
"bm.loopDetected": "döngü tespit edildi",
|
||
|
||
// benchmark: routing mode, cost, live
|
||
"bm.mode.routing": "Akıllı yönlendirme",
|
||
"bm.mode.models": "Tek tek modeller",
|
||
"bm.mode.routingDesc": "Ürünün temel özelliği testte: her prob cortiq-auto üzerinden gider — yönlendiricinin hangi görevi algıladığını, hangi modeli seçtiğini, bunun beklentiyle örtüşüp örtüşmediğini ve maliyetini görürsünüz.",
|
||
"bm.mode.modelsDesc": "Aynı küme seçilen modellere sabitlenir — yönlendiriciyi atlayarak kalite, hız ve maliyeti doğrudan karşılaştırın.",
|
||
"bm.answersOk": "yanıtlar doğru",
|
||
"bm.classAcc": "görev sınıflandırması",
|
||
"bm.modelDist": "İstekler şuraya gitti",
|
||
"bm.expectedLbl": "beklenen:",
|
||
"bm.answer": "Yanıt",
|
||
"bm.liveRunning": "sürüyor…",
|
||
"bm.spent": "harcanan",
|
||
"bm.verdict": "🏁 Bitti: yanıtlar {p}, harcanan {s}",
|
||
"bm.clearHistory": "Tümünü temizle",
|
||
|
||
// harness auto-setup (API keys view)
|
||
"keys.h.claude": "Claude Code — terminale yapıştırın (ağ geçidi Anthropic protokolünü doğal olarak konuşur):",
|
||
"keys.h.codex": "Codex — sağlayıcıyı ~/.codex/config.toml dosyasına ekler ve başlatır:",
|
||
"keys.h.opencode": "OpenCode — ~/.config/opencode/opencode.json dosyasını yazar (üzerine yazar!) ve başlatır:",
|
||
"keys.h.continue": "Continue (VS Code / JetBrains) — modeli ~/.continue/config.yaml dosyasına ekler:",
|
||
"keys.h.cline1": "Cline (VS Code) — eklenti ayarlarında şunları seçin:",
|
||
"keys.h.cline2": "Ayarlar → API Provider → OpenAI Compatible, ardından yukarıdaki değerleri yapıştırın.",
|
||
"keys.h.note": "cortiq-auto = akıllı yönlendirme: yönlendirici her istek için modeli kendisi seçer. Belirli bir model için tam adını yazın. Windows'ta betikleri Git Bash / WSL içinde çalıştırın veya aynı değişkenleri sistem ortamından ayarlayın.",
|
||
"keys.h.protoOff": "Anthropic protokolü (/v1/messages) kapalı — Claude Code bağlanamaz.",
|
||
"keys.h.enableProto": "Etkinleştir",
|
||
"keys.h.st.installed": "Ağ geçidi makinesinde kurulu",
|
||
"keys.h.st.configured": "Bu ağ geçidi için zaten yapılandırılmış",
|
||
"keys.h.st.notFound": "Ağ geçidi makinesinde bulunamadı",
|
||
"bm.degraded": "yönlendirici yedeğe düştü",
|
||
"bm.routerDegraded": "Yönlendirici zamanında yanıt vermedi — istek yedek zincire gitti; sınıflandırma sayılmaz.",
|
||
"bm.cutByCap": "bütçe düşünmeye gitti — yanıt gelemedi",
|
||
"shell.uiStale": "Ağ geçidi güncellendi — bu sayfa eski arayüzü çalıştırıyor.",
|
||
"shell.reload": "Yeniden yükle",
|
||
"keys.col.requests": "İstekler",
|
||
"keys.col.tokens": "Token giriş/çıkış",
|
||
"keys.col.costAll": "$ toplam",
|
||
"routing.tasks.tier": "Karmaşıklık",
|
||
"routing.tasks.tierAuto": "Otomatik (yönlendirici)",
|
||
"routing.tasks.tierHint": "Bu görevi hangi karmaşıklıkta hangi model karşılar; \"her\" tüm katmanlarda önde gider. Sıra = yedekleme sırası. High kararı \"her\" girdilerinin üzerine yine tırmanır.",
|
||
"routing.tasks.tierAny": "her karmaşıklık",
|
||
"routing.tasks.addModel": "model",
|
||
"routing.bands.enable": "Kendi karmaşıklık sınırlarım",
|
||
"routing.bands.hint": "Tutamaçları sürükleyin: low nerede biter, high nerede başlar — tutamaçlar birbirini iter, sayılar anlık güncellenir. Yönlendiricinin sürekli puanı SİZİN sınırlarınızla yeniden bölümlenir; işaret kaldırılırsa yönlendiricinin kendi bantları geçerli.",
|
||
"tier.low": "kolay",
|
||
"tier.medium": "orta",
|
||
"tier.high": "zor",
|
||
"bm.scoreHint": "Yönlendiricinin sürekli karmaşıklık puanı (0..1) — Yönlendirme sayfasındaki sınır kaydırıcıları onu katmanlara böler.",
|
||
"settings.cache.noEmbed": "Önbellek açık ama çalışacağı bir embedding modeli YOK — hiçbir şey yapmıyor. Havuza kind = \"embedding\" olan bir model ekleyin (örn. OpenAI text-embedding) veya aşağıdan seçin.",
|
||
"settings.cache.entries": "kayıt",
|
||
"settings.cache.hits": "isabet",
|
||
"settings.cache.saved": "tasarruf",
|
||
"keys.form.budget": "Aylık bütçe, $ (0 = sınırsız)",
|
||
"keys.form.budgetHint": "Hesabın aylık harcaması tavanı aşınca istekler 429 insufficient_quota ile reddedilir.",
|
||
"keys.budgetOf": "bütçe {b}/ay",
|
||
"dash.kpi.orBalance": "OpenRouter bakiyesi",
|
||
"keys.h.install": "Kurulum:",
|
||
"keys.snip.keyInputPh": "API anahtarınızı yapıştırın",
|
||
"keys.snip.apply": "Anahtarı ekle",
|
||
};
|