Every template and handler message in internal/web goes through a JSON
catalogue under internal/web/locales/<code>/, with English as the fallback.
The language is the person's choice (a cookie set by /_lang/{code}), else
Accept-Language, else landing.language. Tests refuse a key some language
lacks, a translation with other arguments than English, and template text
left in English.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
130 lines
13 KiB
JSON
130 lines
13 KiB
JSON
{
|
||
"about.meta.description": "llmgw, modelleri kendi GPU'larınızda çalıştırır ve OpenAI uyumlu tek bir API'nin arkasından sunar.",
|
||
"about.home_label": "llmgw ana sayfa",
|
||
"about.nav.label": "Bölümler",
|
||
"about.nav.what": "Ne yapar",
|
||
"about.nav.fabrics": "Fabric'ler",
|
||
"about.nav.install": "Kurulum",
|
||
"about.nav.proxy": "Ters proxy",
|
||
"about.nav.download": "İndir",
|
||
"about.nav.source": "Kaynak kod",
|
||
"about.nav.gateway": "Bu ağ geçidi",
|
||
|
||
"about.hero.eyebrow": "Kendi sunucunuzda çalışan LLM ağ geçidi · %s",
|
||
"about.hero.title": "<em>Kendi GPU'larınızın</em> önünde tek bir uç nokta.",
|
||
"about.hero.lede": "llmgw; vLLM, SGLang ve llama.cpp'yi sunucularınızda çalıştırır ve hepsini OpenAI uyumlu tek bir API'nin arkasından sunar. Hangi GPU'ların aynı NVLink alanını ya da aynı InfiniBand fabric'ini paylaştığını bilir; makinelere bölünmüş bir model hiçbir zaman iki fabric'e birden yayılmaz.",
|
||
"about.hero.download": "İndir",
|
||
"about.hero.guide": "Kurulum kılavuzu",
|
||
"about.hero.oneline_label": "Bir kontrol düzlemi kurun",
|
||
"about.copy": "Kopyala",
|
||
"about.copied": "Kopyalandı",
|
||
"about.selected": "Seçildi",
|
||
"about.schem.title": "İstemciler tek bir llmgw adresine ulaşır. llmgw bir modelin parçalarını her seferinde tek bir fabric içindeki GPU'lara yerleştirir.",
|
||
"about.schem.editor": "editör ajanı",
|
||
"about.schem.caption": "Birden çok düğüme yayılan bir replika, yeri varsa tek bir NVLink alanına, yoksa tek bir InfiniBand fabric'ine yerleşir. Birbirini göremeyen iki fabric arasında asla köprü kurulmaz: all-reduce takılıp kalırdı.",
|
||
|
||
"about.what.title": "Ne yapar",
|
||
"about.what.intro": "Tek bir statik ikili dosya. Kontrol düzlemi olarak, her GPU düğümünde ajan olarak ve ağırlık aynası olarak çalışır.",
|
||
"about.what.api.title": "OpenAI API'si, sizin donanımınız",
|
||
"about.what.api.text": "Herhangi bir OpenAI istemcisini ona yönlendirin; değişen yalnızca temel URL'dir. Akış, araç çağrıları, <code>/v1/models</code> ve <code>/v1/responses</code> istemcinizin beklediği gibi çalışır.",
|
||
"about.what.placement.title": "Fabric'i tanıyan yerleştirme",
|
||
"about.what.placement.text": "Ajanlar GPU sınıfını, belleği, NVLink eşlerini ve InfiniBand portlarını bildirir. Replikalar — tek bir makineye sığmayanlar da dahil — sığdıkları yere, en çok NVLink çiftine sahip GPU'lara yerleşir.",
|
||
"about.what.ondemand.title": "Modeller istendiğinde yüklenir",
|
||
"about.what.ondemand.text": "Katalogda GPU'larınızın alabileceğinden fazla model tutun. İlk istek modeli başlatır, sohbet sayfası yüklenişini gösterir ve boşta kalma süresi dolunca model yeniden durur.",
|
||
"about.what.keys.title": "Anahtarlar, bütçeler, hız sınırları",
|
||
"about.what.keys.text": "Kuruluşlar, ekipler ve projeler; her birinin kendi sınırları var. Küme dolduğunda kimin bekleyeceğine öncelik bantları karar verir. Yöneticiler kuruluşlarının harcamasını, kişiler kendi harcamalarını görür.",
|
||
"about.what.editors.title": "Editörler hesap sayfasından bağlanır",
|
||
"about.what.editors.text": "Continue, Codex ya da Cline'ı ve bir model seçin. Sayfa bir anahtar oluşturur ve yapılandırmayı doldurulmuş olarak ya da onu yazan tek satırlık bir komut olarak verir.",
|
||
"about.what.chat.title": "Hızlı sorular için bir sohbet sayfası",
|
||
"about.what.chat.text": "Markdown ve matematik biçimlenmiş gösterilir, yanıt yarıda durdurulabilir; saniyede token ve ilk token süresi görünür, bir sistem istemi ve sıcaklık ayarlanabilir. Ağ geçidi hiçbir sohbeti saklamaz.",
|
||
"about.what.mirror.title": "Göz atabileceğiniz bir ayna",
|
||
"about.what.mirror.text": "Hugging Face'te öne çıkanları keşfedin, bir modelin kartını kendi satırının altında okuyun ve tüm küme için bir kez indirin. Varsayılan olarak yalnızca düğümlerinizin çalıştırabildikleri gösterilir.",
|
||
"about.what.engines.title": "Düğümler kendi motorlarını kurar",
|
||
"about.what.engines.text": "Her düğüme llama.cpp; çalıştırabilen her GPU düğümüne de PyPI'dan, her dosyasının özeti doğrulanarak vLLM kurulur. Çalıştıramayan düğüm nedenini söyler.",
|
||
"about.what.upgrades.title": "Modelleri çalışır halde tutan yükseltmeler",
|
||
"about.what.upgrades.text": "Önce kontrol düzlemini, sonra ajanları yükseltin. Yeniden başlatılan bir ajan, çalıştırdığı motorları yeniden yüklemek yerine devralır; böylece replikalar baştan sona ayakta kalır.",
|
||
"about.what.dashboard.title": "Hiçbir kurulum gerektirmeyen bir pano",
|
||
"about.what.dashboard.text": "<code>/admin</code>; GPU sınıfı başına kapasiteyi, düğüm başına CPU ve belleği, kimin neyi kullandığını, her düğümün sayfasını ve günlüklerini gösterir. Telefona sığar. Prometheus isteğe bağlıdır.",
|
||
|
||
"about.fabrics.title": "InfiniBand ve NVLink, her birinden birkaç tane",
|
||
"about.fabrics.intro": "Bir sahada bağımsız InfiniBand fabric'leri, sekiz GPU'lu HGX kartları ve NVL72 kabinleri yan yana bulunabilir. llmgw bunları bir yapılandırma dosyasındaki adlarına göre değil, adaptörlerin bildirdiklerine göre ayırt eder.",
|
||
"about.fabrics.guide": "Fabric ve NVLink kılavuzu",
|
||
"about.fabrics.order_label": "Düğümlere yayılan bir replikanın yerleştirileceği yerler, sırasıyla",
|
||
"about.fabrics.nvlink.title": "Tek bir NVLink alanı",
|
||
"about.fabrics.nvlink.text": "NVL72 ya da NVLink Switch. Bütün kartlar katılmış, IMEX ayakta. Parçalar <code>NCCL_MNNVL_ENABLE=1</code> ile çalışır.",
|
||
"about.fabrics.ib.title": "Tek bir InfiniBand ya da RoCE fabric'i",
|
||
"about.fabrics.ib.text": "Önce aynı leaf anahtarına bağlı düğümler, en son kablosu bozuk düğümler.",
|
||
"about.fabrics.never.title": "Asla ikisine birden",
|
||
"about.fabrics.never.text": "Aynı ad verilmiş iki fabric iki ayrı fabric olarak ele alınır ve küme sayfası bunu belirtir.",
|
||
"about.fabrics.doctor": "Bir düğümü tek komutla denetleyin",
|
||
"about.fabrics.doctor_label": "llmgw doctor çıktısından bir örnek",
|
||
"about.fabrics.sm.title": "Subnet yöneticileri izlenir",
|
||
"about.fabrics.sm.text": "Her fabric için ana yönetici, öncelik, yedekler ve devralmalar. Yedeği olmayan fabric işaretlenir. llmgw kendisi subnet yöneticisi çalıştırmaz.",
|
||
"about.fabrics.map.title": "Her fabric'in haritası",
|
||
"about.fabrics.map.text": "<code>/admin/fabrics</code> anahtarları katmanlar halinde çizer; kabloları hızlarına göre renklendirir, bozuk olanları kırmızıyla gösterir ve adaptörlerinizdeki canlı trafiği yansıtır.",
|
||
"about.fabrics.racks.title": "Kabin olarak NVLink alanları",
|
||
"about.fabrics.racks.text": "<code>/admin/nvlink</code> hangi tepsilerin katıldığını, hangisinin IMEX'inin çöktüğünü, hangi bağlantının düşük hızda çalıştığını gösterir.",
|
||
"about.fabrics.ports.title": "Portlar her yaşam sinyalinde yeniden okunur",
|
||
"about.fabrics.ports.text": "Kapanan bir port, saniyeler içinde fabric'ini düğümden düşürür. Sayaçlar ve hızlar Prometheus'a aktarılır.",
|
||
|
||
"about.install.title": "Sıfırdan ilk isteğe",
|
||
"about.install.intro": "Debian, Ubuntu ya da RHEL 10. NVIDIA sürücülerini ve InfiniBand yığınını siz kurarsınız; gerisini llmgw yapar.",
|
||
"about.install.guide": "<a href=\"https://gitea.mynodes.xyz/ilker/llmgw/src/branch/main/docs/install.md\">Ayrıntılı kılavuz</a> aynayı, GPU'ları ve bir şey çalışmadığında ne yapılacağını anlatır.",
|
||
"about.install.binary.title": "İkili dosyayı her makineye koyun",
|
||
"about.install.binary.text": "Statik, bağımlılıksız; her yerde aynı dosya.",
|
||
"about.install.server.title": "Kontrol düzlemini kurun",
|
||
"about.install.server.text": "Kullanıcıyı, sertifika yetkilisini, sertifikayı, <code>server.yaml</code> dosyasını ve yönetici hesabınızı oluşturur, ardından hizmeti başlatır. Yeniden çalıştırmak güvenlidir. Düğümlerin kullandığı ama makinenin kendi adı olarak göremediği her ad için <code>--host</code> ekleyin.",
|
||
"about.install.node.title": "Bir düğüm ekleyin",
|
||
"about.install.node.text": "Sertifika yetkilisini barındıran kontrol düzleminden. Düğüm sertifikasını, ikili dosyayı ve ajanı alır, motorunu da kendisi kurar.",
|
||
"about.install.node.output_label": "llmgw ctl nodes çıktısından bir örnek",
|
||
"about.install.model.title": "Bir model ekleyin ve istek gönderin",
|
||
"about.install.model.text": "Yeniden başlatma gerekmez. Model yerleşmezse <code>llmgw ctl explain-placement</code> her düğümü ve neden geri çevrildiğini tek tek söyler.",
|
||
|
||
"about.proxy.title": "Ters proxy arkasında",
|
||
"about.proxy.intro": "8080 portu düz HTTP'dir. Onu genel geçer bir sertifikayla Caddy ya da nginx arkasına koyun. Proxy'den yalnızca 8080 geçer: ajanlar 7443'e doğrudan ulaşır, çünkü orası kümenin kendi sertifika yetkilisiyle karşılıklı TLS'dir.",
|
||
"about.proxy.loopback": "Proxy aynı makinedeyse llmgw'yi loopback adresine bağlayın: <code>listen: \"127.0.0.1:8080\"</code>.",
|
||
"about.proxy.caddy": "Sertifikasını kendisi alır ve yeniler. <code>llm.example.com</code> yerine kendi adınızı yazın.",
|
||
"about.proxy.nginx": "Sertifika <code>certbot --nginx</code> ile alınır. nginx 1.18 ve sonrasında çalışır.",
|
||
"about.proxy.stream.title": "Akışlar arabelleğe alınmaz",
|
||
"about.proxy.stream.text": "Token'lar sonda tek seferde değil, üretildikçe istemciye ulaşır.",
|
||
"about.proxy.timeout.title": "Okuma zaman aşımı modelden uzundur",
|
||
"about.proxy.timeout.text": "nginx'in 60 saniyelik varsayılanı, geç gelen bir ilk token'ı 504 hatasına çevirir.",
|
||
"about.proxy.headers.title": "Yönlendirme başlıkları aktarılmaz, yeniden yazılır",
|
||
"about.proxy.headers.text": "llmgw oturum çerezlerini <code>X-Forwarded-Proto</code> başlığına göre Secure olarak işaretler ve <code>X-Forwarded-Host</code> değerini temel URL olarak gösterir.",
|
||
"about.proxy.body.title": "Gövde sınırı yönlendiricininkiyle aynıdır",
|
||
"about.proxy.body.text": "32 MiB; böylece fazla büyük bir istek daha yüklenmeden reddedilir.",
|
||
|
||
"about.download.title": "İndir",
|
||
"about.download.intro": "CI tarafından etiketten derlenir ve <code>checksums.txt</code> ile doğrulanır. Her sürüm, değişiklik günlüğüyle birlikte <a href=\"https://gitea.mynodes.xyz/ilker/llmgw/releases\">sürümler sayfasında</a> yer alır.",
|
||
"about.download.released": "Yayın tarihi: %s",
|
||
"about.download.col.for": "Platform",
|
||
"about.download.col.file": "Dosya",
|
||
"about.download.col.notes": "Notlar",
|
||
"about.download.static_any": "Statik. Her libc ile çalışır.",
|
||
"about.download.static": "Statik.",
|
||
"about.download.nvml": "NVLink topolojisini NVML üzerinden görür. NVLink köprülü PCIe makineler içindir. Sürücü gerektirir.",
|
||
"about.download.mac_arm": "macOS, Apple Silicon",
|
||
"about.download.mac_note": "<code>llmgw ctl</code> için ve bir dizüstü bilgisayarda denemek için.",
|
||
"about.download.proxy_note": "8080 portu için ters proxy.",
|
||
"about.download.checksums": "Sağlama toplamları",
|
||
"about.download.checksums_note": "Yukarıdaki her dosyanın SHA-256 özeti.",
|
||
"about.download.dev": "Bu bir geliştirme derlemesidir (%s). Her dosyanın sağlama toplamıyla listelendiği <a href=\"https://gitea.mynodes.xyz/ilker/llmgw/releases\">sürümler sayfasından</a> bir sürüm edinin.",
|
||
|
||
"about.status.title": "Proje ne durumda",
|
||
"about.status.intro": "1.0 öncesi: yapılandırma biçimleri ara sürümler arasında değişebilir. Aşağıda gerçek donanımda çalışmış olanlar ve henüz çalışmamış olanlar var.",
|
||
"about.status.proven": "Gerçek kümelerde çalıştı",
|
||
"about.status.proven.single": "Gerçek GPU'larda ve CPU'da tek düğümlü replikalar",
|
||
"about.status.proven.ondemand": "İstek üzerine yükleme ve boşta kapanma",
|
||
"about.status.proven.keys": "Anahtarlar, bütçeler, hız sınırları ve öncelik bantları",
|
||
"about.status.proven.upgrades": "Hiçbir replikayı düşürmeden kademeli yükseltme",
|
||
"about.status.proven.stores": "SQLite ve PostgreSQL depoları",
|
||
"about.status.proven.chat": "Altı düğümlü bir test kümesinde sohbet, editör kurulumu ve Responses API",
|
||
"about.status.open": "Henüz kanıtlanmadı",
|
||
"about.status.open.fabrics": "Gerçek bir sahada InfiniBand ve NVLink: <code>sminfo</code>, <code>ibnetdiscover</code> ve <code>nvidia-smi</code> komutlarının gerçek çıktısına göre yazıldı ve sınandı, ama henüz o donanımda çalıştırılmadı. Önce birkaç düğümde <code>llmgw doctor --json</code> çalıştırın.",
|
||
"about.status.open.planes": "Uzun süre boyunca iki kontrol düzlemi",
|
||
"about.status.open.weights": "Düğümler indirilen ağırlıkları paylaşmaz; ayna her indirmeyi yerel tutar",
|
||
|
||
"about.footer.changelog": "Değişiklik günlüğü",
|
||
"about.footer.reference": "Yapılandırma başvurusu"
|
||
}
|