KuzuhaScriptPHP+ (ksphp-plus) Kurulum Kılavuzu
Kapsam: gönderi bağlantısı resim küçük görsel özelliği
        (js/imgthumb.js) / JavaScript uluslararasılaştırma
        (window.KSPHP_LANG)
Zaman damgası biçimi: ISO 8601 (dakika hassasiyeti), saat dilimi UTC
Oluşturulma: 2026-07-17T05:05 UTC

============================================================
[Bu zip'in içeriği]
------------------------------------------------------------
Bu, tam forum betiği paketinden ayrı olarak, yalnızca bu adımda
eklenen veya değiştirilen dosyaları içeren bir fark (diff) paketidir.
Klasör yapısı olduğu gibi korunmuştur (sub/, js/, language/, doc/).

  bbs.php                      ... JS için dil verisi çıktısı eklendi
  sub/template.html            ... <script> yükleme/gömme etiketleri
                                    eklendi
  js/imgthumb.js               ... yeni: gönderilerdeki resim
                                    bağlantıları için küçük görsel
                                    gösterir
  js/ayashiibreaker.js         ... uluslararasılaştırıldı (değiştirildi)
  js/upthumb.js                ... uluslararasılaştırıldı (değiştirildi)
  js/vanish.js                 ... uluslararasılaştırıldı
                                    (değiştirildi, algılama
                                    mantığındaki bir hata düzeltmesi
                                    dahil)
  js/admin.js                  ... uluslararasılaştırıldı (değiştirildi)
  language/english.txt         ... yeni anahtarlar eklendi
  language/japanese.txt        ... yeni anahtarlar eklendi
  doc/changelog-2026-07-16-01.txt ... birleştirilmiş değişiklik
                                       günlüğü (bu adımı da içerir)
  doc/CSScheck.txt             ... önceki CSS inceleme raporu
                                    (referans olarak eklendi)
  Kurulum Kılavuzu.txt          ... bu dosya

  * language/*.txt, hem forum betiği tarafı hem de JS tarafı
    tarafından paylaşılan ve referans verilen tek bir dosyadır --
    dosyalar tarafa göre ayrılmamıştır.

============================================================
[1. Gönderi bağlantısı resim küçük görsel özelliği (js/imgthumb.js)]
------------------------------------------------------------
Bir gönderi metnindeki bir URL, gerçekte var olan bir resim dosyasını
(varsayılan olarak desteklenen uzantılar: jpg/jpeg/png/gif/webp/bmp/
avif/svg) işaret ettiğinde, bu URL'nin sağında otomatik olarak bir
küçük görsel gösterilir.

  - Bu, belirli bir yükleyicinin bilinen dizin yapısını hedefleyen
    mevcut js/upthumb.js'den bağımsız, ayrı bir dosyadır. İkisi aynı
    anda etkinleştirilebilir.
  - Göstermeden önce, bir HEAD isteği ile URL'nin gerçekten var
    olduğunu ve Content-Type'ının image/* olduğunu doğrular (yalnızca
    dosya uzantısına bakarak karar vermez).
  - Gönderi formunun yanına (mevcut "Uploader thumbnails" ile aynı
    satıra) bir "Link thumbnails" onay kutusu eklenir. Açık/kapalı
    durumu tarayıcının localStorage'ında saklanır ve sunucuya asla
    gönderilmez.
  - Hangi uzantıların hedefleneceği, kişisel ayarlar ekranına
    (?setup=1) otomatik olarak eklenen bir onay kutusu grubundan
    daraltılabilir. Varsayılan olarak hepsi seçilidir. Bu da yalnızca
    localStorage'da tutulur ve ayarlar formunun gönderimine dahil
    edilmez.

  [Kurulum adımları]
  1. js/imgthumb.js dosyasını js/ dizinine yerleştirin.
  2. sub/template.html dosyasını değiştirin (<head> içindeki script
     yükleme bölümüne
     <script src="js/imgthumb.js" defer></script> satırı eklenmiştir).
  3. bbs.php dosyasını değiştirin (aşağıda açıklanan
     window.KSPHP_LANG gömme işlemini içerir).
  4. language/english.txt ve language/japanese.txt dosyalarını
     değiştirin (12 yeni anahtar eklendi; mevcut anahtarlar
     değiştirilmedi).
  Özel bir yapılandırma gerekmez -- dosyaları yerleştirmek özelliği
  etkinleştirmek için yeterlidir.

============================================================
[2. JavaScript uluslararasılaştırma (window.KSPHP_LANG)]
------------------------------------------------------------
Şimdiye kadar, forumun kendisi (PHP şablonları) dil dosyaları
(language/*.txt) aracılığıyla uluslararasılaştırılmıştı, ancak js/
altındaki betiklerin içindeki metin (düğme etiketleri vb.) bu
kapsamın dışındaydı ve her zaman sabit metin olarak görüntüleniyordu.

Bu adım, bbs.php'nin dil dosyasının içeriğini JSON'a dönüştürüp,
<head> içine, diğer tüm betiklerden önce şu şekilde gömdüğü bir
mekanizma ekler:

    <script>window.KSPHP_LANG = { ... };</script>

Bu, js/ altındaki betiklerin language/*.txt içinde tanımlanan metni
doğrudan şu şekilde referans almasını sağlar:

    window.KSPHP_LANG.ANAHTAR_ADI

(örnek: window.KSPHP_LANG.MAKE_LINE_BREAKS_BTN)

  [Bu adımda bu mekanizmayı kullanacak şekilde güncellenen dosyalar]
  js/ayashiibreaker.js, js/upthumb.js, js/imgthumb.js, js/vanish.js
  ve js/admin.js olmak üzere 5 dosya.

  [Gelecekte yeni bir JS dosyasını uluslararasılaştırmak için]
  1. Anahtarı ve Japonca/İngilizce metnini hem language/english.txt
     hem de language/japanese.txt dosyasına ekleyin (girdi başına bir
     satır, mevcut KEY=değer biçiminde, mevcut anahtar/değer
     stiline uygun şekilde).
  2. JS dosyasından `window.KSPHP_LANG.ANAHTAR_ADI`'nı referans alın.
     Henüz yüklenmemiş olma ihtimaline karşı
     `(window.KSPHP_LANG && window.KSPHP_LANG.ANAHTAR_ADI) || "varsayılan değer"`
     şeklinde bir yedek (fallback) sağlanması önerilir.
  3. Sunucu tarafında (PHP) herhangi bir değişiklik gerekmez
     (window.KSPHP_LANG her sayfada otomatik olarak üretilir).

============================================================
[Doğrulanan çalışma durumu]
------------------------------------------------------------
- Tüm PHP dosyaları: php -l ile sözdizimi hatası yok
- Tüm JS dosyaları (değiştirilen ve yeni): node --check ile sözdizimi
  hatası yok
- language/english.txt ve language/japanese.txt: anahtar sayıları
  eşleşiyor (216 girdi), tekrar eden anahtar yok
- Tüm rotalarda (ana forum, eski günlük arama, ağaç görünümü,
  yönetici girişi (GET/POST), kişisel ayarlar ekranı, yönetici menüsü)
  hem Japonca hem de İngilizce LANGUAGE_FILE ayarlarında HTTP 200
  döndüğü, geride kalan {PLACEHOLDER} işaretlemesi olmadığı ve
  window.KSPHP_LANG'ın geçerli bir JSON olarak üretildiği doğrulandı.
