Looking to hire Laravel developers? Try LaraJobs

laravel-telescope-tr maintained by lvntrdev

Description
Laravel Telescope arayüzü için Türkçe çeviri katmanı.
Author
Last update
2026/09/12 01:13 (dev-main)
License
Downloads
0

Comments
comments powered by Disqus

lvntrdev/laravel-telescope-tr

Laravel Telescope arayüzü için Türkçe çeviri katmanı. Vendor dizinine dokunmaz, composer update laravel/telescope çeviriyi bozmaz.

Neden bu şekilde

Telescope'un ekranları vendor içinde derlenmiş bir Vue bundle'ıdır (vendor/laravel/telescope/public/app.js) ve i18n desteği yoktur; metinler kaynağa gömülüdür. Bu yüzden çeviri iki parçadan oluşur:

  1. layout.blade.php override'ı — sidebar menüsü, üst bar buton başlıkları ve lang="tr". Blade tarafında olduğu için doğrudan Türkçe render edilir.
  2. Render sonrası DOM çeviri katmanı (partials/i18n-tr.blade.php) — Vue bundle'ının ürettiği metinler: ekran başlıkları, tablo başlıkları, detay tablosu etiketleri, sekmeler, butonlar ve boş durum metinleri. Sözlük tabanlı, MutationObserver ile çalışır.

Horizon'dan farkı — kapsam kısıtı

laravel-horizon-tr düz bir tam-eşleşme sözlüğü kullanır. Telescope'ta bu yaklaşım yanlış çeviri üretir: ekranların çoğu kullanıcı verisidir — SQL, log mesajı, exception stack trace, mail HTML'i, model sınıf adı, dump çıktısı, etiket. Status adlı bir cache anahtarı veya içinde Failed geçen bir log satırı da çevrilirdi.

Bu yüzden çeviri yalnızca arayüz iskeletinde (chrome) çalışır. Bir metin düğümü, ancak aşağıdaki elemanlardan birine ait olduğunda çevrilir:

Kapsam Ne çevirir
.nav-link Sidebar menüsü, detay sekmeleri, ilgili kayıt sekmeleri
.card-header, .modal-header Ekran ve modal başlıkları
th Tablo başlıkları
td.table-fit.text-muted:not([data-timeago]) Detay tablosunun etiket sütunu
.btn, .control-action Butonlar ve satır/detay aksiyon linkleri
div.card-bg-secondary, .disabled-watcher Boş durum, yükleniyor, "watcher kapalı" metinleri
.badge-sm, .badge-secondary.ml-2 Yalnız toplu iş durum rozetleri ve Queued
label, option, title attribute'ları Form etiketleri, tooltip'ler

Şunlar her koşulda kapsam dışıdır: pre, code, textarea, .code-bg, [class*="hljs"], .CodeMirror. Tablo hücresi içeriği ve detay panelleri de kapsam dışıdır — çeviri oralara hiç bakmaz.

Gereksinimler

Bileşen Sürüm
PHP ^8.2
Laravel (illuminate/support) ^11.0 | ^12.0 | ^13.0
laravel/telescope ^5.0 (v5.24.0 ile doğrulandı)

Kurulum

composer require lvntrdev/laravel-telescope-tr

Paket auto-discovery ile devreye girer — publish, config veya .env ayarı gerekmez. Telescope kurulu değilse provider sessizce hiçbir şey yapmaz.

composer.json'a repository ekleyin:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/lvntrdev/laravel-telescope-tr"
        }
    ]
}

Sonra:

composer require lvntrdev/laravel-telescope-tr:dev-main

Doğrulama

/telescope adresini açın. Sidebar İstekler · Komutlar · Zamanlanmış Görevler · İşler … şeklinde görünüyorsa katman devrededir.

Provider'ın keşfedildiğini görmek için:

php artisan package:discover
# Discovered Package: lvntrdev/laravel-telescope-tr

Provider sınıfı: LvntrDev\TelescopeTr\TelescopeTrServiceProvider.

Özelleştirme

Sözlüğü veya layout'u projeye özel değiştirmek için view'ları publish edin:

php artisan vendor:publish --tag=telescope-tr

Dosyalar resources/views/vendor/telescope/ altına kopyalanır:

resources/views/vendor/telescope/
├── layout.blade.php
└── partials/
    └── i18n-tr.blade.php

View çözümleme sırası: uygulama override'ı → bu paket → Telescope vendor. Yani publish edilen dosyalar paketten gelenlerin önüne geçer.

Sözlüğe kelime ekleme

partials/i18n-tr.blade.php içindeki EXACT sözlüğüne satır ekleyin:

var EXACT = {
    'Requests': 'İstekler',
    'Exit Code': 'Çıkış Kodu',
    // ...
};

Anahtar, Telescope'un ürettiği İngilizce metnin birebir aynısı olmalıdır. Metin kapsam dışı bir elemanda duruyorsa sözlüğe eklemek yetmez; ALLOW listesine o elemanı da tanıtmanız gerekir — bunu yaparken seçicinin kullanıcı verisi taşıyan hücrelere uzanmadığından emin olun.

Kapsam testi

Kapsam güvencesi (chrome çevrilir, kullanıcı verisi çevrilmez) test altındadır. Telescope sürüm yükselttikten sonra çalıştırın:

npm install && npm test

tests/ ve package.json yalnız geliştirme içindir; Composer paketine dahil edilmez (.gitattributesexport-ignore).

Sınırlar

  • Happened sütunundaki göreli zaman (5m ago) veri hücresindedir, kapsam dışıdır; İngilizce kalır.
  • "Kayıtları Temizle" butonunun onayı native confirm() diyaloğudur; DOM'da metin düğümü olmadığı için çevrilemez.
  • Teknik terimler bilinçli olarak İngilizce bırakıldı: Mailable, Middleware, Payload, Stacktrace, URI, Model, View, Composer, Redis, CC, BCC, ID.
  • Çeviri istemci tarafında render sonrası uygulanır; çok kısa bir an için İngilizce metin görülebilir.
  • Telescope major sürüm yükseltmesi yeni metinler getirebilir; sözlüğe eklenmeleri gerekir. layout.blade.php override'ı da Telescope'un kendi layout'uyla karşılaştırılmalıdır.

Değişiklikler

Sürüm geçmişi: CHANGELOG.md

Lisans

MIT.