- OpenAI-compatible gateway with intelligent routing via cortiq-router (allaigate) - Embedded build-free admin SPA at /admin: 7 languages (en/ru/de/fr/es/zh/tr), light/dark themes, hot config reload (no restart) - Admin API, per-request statistics + Prometheus /metrics, secret store, playground - English documentation (primary) with Russian translations (*.ru.md)
257 lines
11 KiB
JavaScript
Vendored
257 lines
11 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}",
|
||
|
||
// topbar / status
|
||
"status.router": "Yönlendirici",
|
||
"status.gateway": "Gateway",
|
||
"status.online": "çevrimiçi",
|
||
"status.offline": "çevrimdışı",
|
||
"status.checking": "kontrol ediliyor…",
|
||
"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",
|
||
|
||
// 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.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.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ı",
|
||
};
|