İçeriğe geç

Dil ve çeviri yayın akışı

Geliştirme · 1.0.0

Yayın

Doküman
1.0.0
Uygulama
1.0.0
Şema
1
Veri
tr-latn-1

Bu sayfa

Uygulama
1.0.0
Şema
f10
Veri
en-alignment-17

Bu belge dil içeriği çalışmalarının giriş noktasıdır. Güncel İngilizce örnek en-alignment-17 ve en-target-render-4 çiftidir. Son çalışmanın sonuçları açık birimlerin tamamlanması belgesindedir; eski çalışma turlarını yeni bir ekleme için baştan tekrarlamak gerekmez.

İlk alignment paketi, sonraki sürümler ve kayıt bazlı API/web/mobil çeviri seçimi hazırdır. Yeni bir dilin gerçek yayını yine yalnız dosya koymakla tamamlanmaz. Ham kaynağın kitap/chapter kapsamına uyarlanması, anlam incelemesi ve yayın kayıtlarının kabulü gerekir. Teknik hazır olma ile gerçek dil yayını ayrılır.

Katman Mevcut durum Yeni dilde gereken
Değişmez Türkçe corpus ve cümle kimlikleri Hazır Aynı canonical kimliklere bağlanmak
Hedef metin, alignment paketleri ve DB dil kanalları Çok dilli sözleşme mevcut Kaynağa uygun manifest ve canonical export üretmek
Chapter/window inceleme ve paket araçları Ortak kaynak profili, canonical-ID taslak, ilk paket ve successor desteği mevcut Exact hedef kitap/chapter kaynağını hazırlayıp kararları derlemek
Public API, ortak reader, web ve mobil Kayıt bazlı çeviri hedefi, seçim, RTL ve hizalama inspect desteği hazır Gerçek hedef binding’i ve chapter availability kanıtını hazırlayıp kabul etmek
Yayın ve doğrulama Mevcut sürümlerde uygulandı Yeni hedef için paket, DB ve API bağlarını birlikte doğrulamak

Arayüz dili, içerik dili, alfabe ve çeviri/baskı kimliği ayrı kavramlardır. Arayüze yeni çeviri eklemek corpus çevirisi üretmez. Osmanlıca da bağımsız bir yabancı dil çevirisi değil, Türkçe corpus’a bağlı ayrı bir gösterim hedefidir.

İstek Yapılacak iş Yapılmayacak iş
Mevcut İngilizce kitapta bulunan cümlenin karşılığı eksik veya yanlış İlgili aralıkları inceleyip alignment successor üretmek Kitabı veya Türkçe corpus’u yeniden import etmek
Başlık/haşiye karşılığı kapsam dışında kalmış Alignment kapsamını düzeltmek; okunan metin aralığı da yanlışsa render successor eklemek Kapsam dışındaki kaydı otomatik çevirisiz saymak
Mevcut ham dosyadaki bir chapter ilk kez açılacak Chapter envanteri, render kapsamı ve alignment’ını eklemek Bütün diğer chapter’ları yeniden incelemek
Yeni çevrilmiş metin, yeni dosya veya düzeltilmiş baskı geldi Yeni hedef kaynak/metin sürümü hazırlayıp etkilenen koordinatları yeniden bağlamak Yayımlanmış ham dosyayı aynı kimlikle değiştirmek
İlk kez başka bir dil eklenecek Exact kaynak hazırlama, canonical-ID inceleme, ilk paket ve kayıt bazlı okuyucu pilotu, ardından yayın Genel paketleyiciyi ham TXT importer’ı sanmak
Aynı dilde ikinci çevirmen/baskı birlikte seçilebilir olacak Önce ayrı çeviri hedefi ve kanal kimliğini tasarlamak Mevcut çeviriyi sıradan successor gibi sessizce değiştirmek

Son satır bugün otomatik desteklenmiş değildir: aktif kanalların anahtarı (language_tag, script_code) olduğundan aynı dil/alfabede tek aktif yayın vardır. Geçmiş release’ler okunabilir; bu, iki çeviriyi eşzamanlı seçenek olarak sunmakla aynı şey değildir. İkinci çeviri için sahte dil kodu kullanılmaz.

Yeni içerik Türkçe canonical corpus’ta henüz bulunmayan bir eser gerektiriyorsa önce core genişletme işi ayrıca ele alınır. Bu rehber mevcut chapter/cümle kimliklerine çeviri bağlamayı kapsar.

  1. Türkçe kaynak otoritesi sabittir. Chapter, paragraf, cümle, token kimlikleri ve sıraları çeviri düzeltmesi için değişmez. Doğrudan canonical cümle kimlikleri kullanılabilir. Eski kaynak MD kullanılıyorsa satırın canonical cümleyle eşitliği doğrulanır; başlık, iç içe not veya boş satır filtreleyip iki listeyi körlemesine aynı indeksle eşlemek yeterli değildir.
  2. Hedef metin ayrı otoritedir. target render, exact UTF-8 kitapları ve chapter kapsamını taşır. Alignment yalnız bu metnin aralıklarını Türkçe kimliklere bağlar. Alignment olmadan hedef chapter okunabilir; Türkçe metin çeviriymiş gibi gösterilmez.
  3. Koordinatlar açık olmalıdır. Aralıklar başlangıç dahil, bitiş hariçtir. Kitap-relative/chapter-relative, Unicode scalar/UTF-8 byte ayrımları korunur. JavaScript string indeksi scalar indeksi değildir. Normalize metin yalnız aday aramada kullanılabilir; kabul edilen aralık exact kaynakla doğrulanır.
  4. Bire bir ilişki zorlanmaz. Bir cümle birçok hedef parçaya veya birkaç cümle ortak bir çeviriye bağlanabilir. Aradaki başka gruba ait metin geniş tek aralık içine alınmaz. İç içe hedef parçaları ancak açıkça incelenmiş split_interleaved / complex_interleaved gruplarıyla temsil edilir; kaynak üye sırası ve hedef sahiplik kuralları korunur.
  5. Konum, anlamın kanıtının bir parçasıdır. Aynı dua, başlık veya imzanın başka yerde bulunması yeterli değildir. Doğru bölüm ve komşuluk seçilir. Yer değiştirmiş pasaj gerekiyorsa kayıtlı scope transferi ve sıralı render parçaları kullanılır; aradaki ilgisiz metin dahil edilmez.
  6. Yokluk ile inceleme eksikliği ayrılır. Arama sonucu boş veya eski hizalama satırı Türkçe diye çeviri yok sayılmaz. Başlıklar, Arapça ibareler, ayraçlar, haşiyeler ve yalnız hedef baskıda bulunan içerik envanterde görünür kalır.

Haşiyeler özellikle kontrol edilir: kaynakta chapter sonunda toplanan bir not, çeviride daha önceki bir sayfada bulunabilir. Satır sonu/sayfa geçişi görünüm düzeltmeleri de ham metni değiştirmez; sürüme özgü display kuralı olarak kalır. İngilizceye özel bir düzeltme başka dillere otomatik uygulanmaz.

Her iş için kısa bir kayıt yeterlidir:

  • İş türü: yeni dil, aynı kaynakta düzeltme, yeni metin veya yeni baskı.
  • Dil/alfabe/yazı yönü; çeviri hedefinin anahtarı; çevirmen ve baskı bilgisi.
  • Kaynak dosya envanteri, köken ve kullanım izni/lisans kaydı; exact dosya tanıkları.
  • Bağlanacağı core sürümü ve canonical chapter kimlikleri.
  • Mevcut alignment, kaynak metin ve render release kimlikleri.
  • Değişen chapter/aralıklar; beklenen kazanç; bilinen çevrilmemiş kapsam.
  • Karar/curation dosyaları ve yayın sonrasında kontrol edilecek örnekler.

Kaynak kimlikleri ve proje-içi yollar yeniden üretime yeterli olmalıdır; başka geliştiricide bulunmayan kişisel mutlak yollar veya geçici sohbetler tek kanıt olarak bırakılmaz. Ham dosyalar yayımlanabilir artifact’ta, kararlar repoda tutulur. Secret ve geçici çalışma dosyaları repoya alınmaz.

Canonical cümle kimlikleri ve exact metinleri envanterin temelidir. Türkçe MD kullanılıyorsa satırlar ayrıca yapısal olarak karşılaştırılır; fiziksel satır/cümle kimliği bağı korunur. Gövde dışındaki kaynak öğeleri de ayrıca sayılır. Hedef kitapta chapter sınırları, başlıklar, notlar, önsözler ve farklı yerdeki pasajlar belirlenir. available, untranslated, unavailable chapter durumları gerekçeleriyle ayrılır; bunlar cümle hizalama başarısı değildir.

Eski alignment ve önceki incelemeler aday/kanıt olarak yeniden kullanılır. Kaynak sürümü değişmemişse aynı envanter her küçük düzeltmede yeniden çıkarılmaz.

3. Yeni formatta küçük pilot, mevcut formatta yalnız değişen kapsam

Bölüm başlığı “3. Yeni formatta küçük pilot, mevcut formatta yalnız değişen kapsam”

İlk dil/kaynak formatında birkaç temsilî chapter yeterlidir: düz metin, birlikte çevrilmiş cümle, başlık/haşiye ve varsa farklı yerleşim. Bu pilot adapter ve gerçek okuyucu yolunu sınar. Aynı İngilizce kaynakta sıradan bir düzeltme için pilot veya bütün corpus incelemesi yeniden başlatılmaz.

Anlam incelemesi canonical cümle, exact hedef metin, mevcut kabul edilmiş komşular ve hedef sahiplikleri birlikte görülerek yapılır. Gerekli insan/AI incelemesi bu işe ayrılır; mekanik komut çalıştırmak için ayrı reviewer turu üretilmez. Bağımsız ikinci inceleme yalnız gerçek belirsizlik ve çatışmaya ayrılır.

Her incelenen kaynak için kimlik, karar ve kanıt tutulur. Son İngilizce işinde kullanılan sonuçlar aşağıdadır; yeni dilin karar dosyası bunları açıkça eşlemelidir. Bu tablo yeni bir DB enum’u veya bütün araçlarda ortak JSON şeması iddiası değildir.

Sonuç Gerekli kanıt
linked Exact hedef aralık ve kabul edilmiş kaynak üyeliği
counterpart_found Önceden kapsam dışındaki öğenin bulunan karşılığı; kapanışta gerçek accepted üyeliği de bulunmalı
source_without_translation İlgili hedef kaynak ve not yerleşimleri incelenmiş; seçili baskıda karşılık yok
edition_difference Somut baskı/içerik/yerleşim farkı ve neden aynı ilişkiye alınamadığı
structural_marker Yapısal ayraç/işaret; çeviri başarısı gibi sayılmaz
İnceleme açık Eksik kanıt veya çözülmemiş anlam/sahiplik/kapsam sorunu

Yalnız hedef dildeki içerik de gerekçesiyle korunur; zorla Türkçe bir cümleye atanmaz. Başlangıç kaydı, sonradan eklenen kayıt, kaldırılan yanlış bağlantı ve sonuç birbirini açıklamalıdır. Örneğin 8.354 İngilizce kaydın incelenmiş olması 8.354 yeni çeviri demek değildir; son işin net bağlı cümle kazancı 3.859’dur.

5. Offline derleyin, sonra tek nihai sürüm hazırlayın

Bölüm başlığı “5. Offline derleyin, sonra tek nihai sürüm hazırlayın”

Kararlar curation’a, curation canonical export/pakete çevrilir. Küçük inceleme grupları için ayrı remote release kurulmaz. Birkaç hazırlama aşaması gerekiyorsa ara paketler offline kalır; yalnız doğrulanmış nihai successor yayımlanır.

Değişen kapsamda exact hedef tanığı, kaynak üyeleri, sıra, sahiplik, kapsam dışında kalan içerik ve önceki kabul edilmiş ilişkilerin korunması sınanır. Yalnız rapor etiketi değil, nihai paketin gerçek üyelikleriyle sonuçlar karşılaştırılır. Tarihsel aday kapsamı ile güncel etkin scope sınırı aynı şey sayılmaz.

Yeni ham kitap byte’ları gelmişse bu işlem kaynak sürümü geçişidir. Eski koordinatlar yeni dosyaya kopyalanmaz; yeniden bağlanır. Değişmeyen ilişkiler ancak aynı exact kaynağa ait oldukları kanıtlanırsa yeniden kullanılır.

Önce gerekli migration’lar ve paket bağımlılıkları belirlenir. Yeni dilin ilk kurulumunda hedef kaynak/render temeli alignment’tan önce gerekir. Mevcut aynı-kaynak düzeltmesinde yeni alignment eski kaynak temelini kullanabilir; görünen render successor’ı ayrıca kurulabilir. Sıra gerçek bağımlılığa göre belirlenir, her iş için koşulsuz “önce yeni render” denmez.

R2 nesneleri immutable prefix’te doğrulanır; yerel kurulumdan sonra aynı paketler remote’a uygulanır. Public API’nin hedef kaydı, render/alignment binding’leri ve content context’i de yeni uyumlu çifte bağlanır. Gerekli okuma/not projection paketleri hazırlanır. DB kanalının ilerlemesi tek başına canlı arayüzü güncellemez.

İlgili giriş noktaları packages/content-api/fixtures/authority-input-v1.json, packages/content-api/scripts/generate.mjs ve apps/content-api/scripts/build-publication.mjs dosyalarıdır. Bunlar kaynak çevirisi hazırlayan bir importer değildir. Katalog ve okuyucu hedefleri artık kayıt bazlıdır: doğrulanmış target_render / standalone_text binding’i, dil, alfabe, yazı yönü ve etiketiyle kullanılır. Kayıtlı olmak tek başına okunabilirlik kanıtı değildir; her chapter’ın o binding’e ait availability bilgisi gerekir.

Yerel aday publication için apps/content-api/README.md dosyasındaki --inputs yolu kullanılabilir. Bu giriş context, registry, addressRelease ve isteğe bağlı translationAvailability alır; yeni çeviri İngilizcenin availability veya not aralıklarını devralmaz. Aday bağlam, kabul edilmiş production bağlamından ayrıdır. Yayın/kontrol araçlarının mevcut kabul edilmiş pinleri aday derlendi diye kendiliğinden ilerlemez.

Çeviri seçenekleri web/mobilde kayıt etiketleriyle gösterilir. Tercih yalnız güncel kayıt doğrulandıktan sonra etkinleştirilir; bilinmeyen veya chapter’da bulunmayan hedef okunabilir sayılmaz. Mevcut adres dilleri tr ve en kalır; diğer çeviriler Türkçe chapter adresi üzerinde seçilir. Yeni dil için özel URL, çevrilmiş chapter başlığı veya SEO adres envanteri bu hazırlıkta üretilmemiştir.

Her kanalın aktivasyonu transaction içinde compare-and-swap ile yapılır; farklı kanallar, R2 ve uygulama deploy’u tek ortak transaction değildir. Okuyucuya yalnız hazır, test edilmiş sürüm çiftini pinleyen content context açılır. Sorunda önceki uyumlu okuyucu bağlamı kullanılabilir; değişmez geçmiş veya core resetlenmez.

Yerel frontend yerel Supabase’e bağlı kalır. Geliştirme API’si import ettiği context’i bellekte tutuyorsa pin değişikliğinden sonra yeniden başlatılır.

  • Okunabilir chapter sayısı, hizalanmış canonical cümle sayısı ve incelenmiş kayıt sayısı ayrı verilir; açık inceleme ile gerçek çeviri yokluğu karışmaz.
  • Değişen chapter’ların gerçek DB RPC/API sonuçları hazırlanan paketle karşılaştırılır.
  • Temsilî web ve mobil okumada metin, paragraf, hover ve çevirisiz durum kontrol edilir. Yapılmayan cihaz testi yapılmış gibi raporlanmaz.
  • Sürüm/paket kimlikleri, kurulum sonucu, karar dosyaları ve kalan kapsam kaydedilir.
  • Paket hazırlama raporu ile R2/DB/canlı dağıtım sonucu ayrı tutulur.

Aşağıdaki komutlar repo kökünden çalıştırılır. Yer tutucu yollar gerçek, doğrulanmış girdilerle doldurulmalıdır. Genel build komutları hazırlanmış veriyi paketler; keyfî çeviri TXT/MD dosyasını tek başına hizalamaz.

Çalışan profil data/translation-profiles/en-rnk-en.json, katkıcı örneği examples/translations/source-profile.example.json dosyasıdır. Profil dil, alfabe, yazı yönü, alignment sürüm adı öneki, değişmez hedef kaynak release’i ve okuma/doğrulama release’ini ayırır. Kişisel dosya yolu veya secret taşımaz.

Terminal window
node scripts/translations/prepare-translation-review.mjs \
--profile data/translation-profiles/en-rnk-en.json \
--core-snapshot /absolute/path/to/core-snapshot.json \
--target-package /absolute/path/to/target-render-4-package \
--chapter-id CANONICAL_CHAPTER_UUID \
--output .cache/translations/en-rnk-en/review-pilot

--chapter-id en fazla 10 chapter’lık başlangıç paketi için tekrarlanabilir. Komut inceleme için review.json ve exact bağlam için context.json üretir; bütün kararlar başlangıçta inceleme açıktır. Eski tr-sentences dizini zorunlu değildir: varsayılan başvuru source_sentence_ids olur. İsteğe bağlı --source-root fiziksel satır modunu açar ve destek/iç içe satırları da bağlamda korur. İki referans biçimi karıştırılmaz.

Yeni incelemelerde hedef tanığı target_text alanıdır. Eski english_text ve window girdisindeki en alanları geriye uyum için desteklenir; aynı kayıtta iki tanık birlikte verilirse işlem reddedilir. Compilation tek başına anlam onayı değildir; açık kararlar ve çözülmemiş sorunlar yayına çevrilmez.

Tam giriş biçimleri ve taslak → derleme → ilk paket/successor komutları examples/translations/README.md dosyasındadır. İlk sürüm taslak aracı yalnız tek aralıklı, okunabilir chapter’ları alır; composed chapter’ı tek geniş aralığa dönüştürmez. O durum mevcut window/scope-transfer yoluyla ayrıca ele alınır. İlk alignment paketi aşağıdaki ayrı builder ile üretilir; taslak aracı kendi başına yayın veya web/mobil hedef kaydı oluşturmaz.

10 Eylül 2026 yerel denemesinde Birinci Söz (221 cümle), Altıncı Şua (76) ve Dokuzuncu Şua (154) için toplam 451 canonical kaynak cümlesinin taslağı üretildi. Mevcut yerel paketlerle yaklaşık 0,3 saniye süren bu işlem DB’ye yazmadı ve hiçbir cümleyi yeniden eşleştirmedi/onaylamadı. Fransızca/Arapça sentetik örnekler, scalar koordinatlar ve eski İngilizce girdilerle eşdeğerlik de test edildi. Bu teknik pilot, gerçek yeni bir dilin web/mobil yayını değildir.

Target source paketi manifest.json, chapter envanteri ve exact kitaplarıyla munderecat.target-render-package.v1 veya sıralı chapter parçaları için v2 sözleşmesini karşılamalıdır. Uygulama: scripts/releases/target-render/build.mjs.

Terminal window
node scripts/releases/build-target-render-release.mjs \
--source /absolute/path/to/prepared-target-source-package \
--release-id fr-target-render-1 \
--sequence 1

Builder’ın ürettiği .release.json, doğrulandıktan sonra yerel data/releases/fr-target-render-1.json kaydı olarak hazırlanır. Alignment builder bu kaydı okur; ilk komut bunu kendiliğinden buraya kaydetmez. Dosyanın yerelde bulunması yayın tamamlandı demek değildir; yayın kaydı ancak R2 doğrulamasından sonra commit edilir. Ardından aynı canonical-ID inceleme biçimi ilk alignment paketine çevrilebilir. Önceki alignment paketi gerekmez:

Terminal window
node scripts/translations/compile-source-first-review.mjs \
--initial --profile /absolute/path/to/fr-source-profile.json \
--core-snapshot /absolute/path/to/core-snapshot.json \
--target-package /absolute/path/to/fr-target-render-1-package \
--review /absolute/path/to/review.json \
--accepted-on YYYY-MM-DD --basis "Tamamlanan kapsamın anlam incelemesi" \
--output .cache/translations/fr-example/accepted.initial.json
node scripts/releases/build-initial-alignment-release.mjs \
--profile /absolute/path/to/fr-source-profile.json \
--curation .cache/translations/fr-example/accepted.initial.json \
--core-package /absolute/path/to/core-package \
--target-package /absolute/path/to/fr-target-render-1-package \
--output .cache/translations/fr-example/alignment/first-reviewed

Örnek profil anahtarı fr-example olup gerçek bir Fransızca yayınını göstermez. Kabul tarihi gerçek tarih ile doldurulur. Builder kaynak/çekirdek otoritesini, cümle sırasını ve exact hedef tanıklarını doğrular. Bütün ilk kapsamlar add_scope olur; <prefix>-1, sequence 1 ve boş selef üretilir. Kayıtlı ilk sürüm veya mevcut çıktı yeniden yazılmaz. Sonraki sürümde aynı profil ve bu ilk paket selef olarak kullanılır; ayrı İngilizce kopyası veya uydurma sıfırıncı sürüm gerekmez.

Builder’ın ürettiği canonical export, export.json ve scripts/db/alignment-release/streams.json sözleşmesindeki 15 TSV akışıdır. Kimlik, kaynak bağı, coverage, üyelik, sıra ve dosya tanıklarını taşır. Builder 15 Zstandard stream, manifest ve .release.json de üretir; bu TSV’leri elle yazmak gerekmez. Hazır export varsa alt düzey build-alignment-release.mjs yolu korunur. Keyfî PDF/TXT kaynağını exact kitap ve chapter kapsamına dönüştürme işi ise hâlâ kaynağa özeldir; otomatik çeviri/anlam onayı veya composed ilk kapsam importer’ı sunulmaz. Fransızca ve RTL Arapça sentetik ilk paket → successor testleri geçmiştir; bu test gerçek yeni dilin semantic incelemesi veya yayını değildir.

İnceleme derleyicileri scripts/translations/compile-source-first-review.mjs ve scripts/translations/compile-alignment-window-review.mjs dosyalarıdır. Tam chapter incelemesi ve mevcut kabul edilmiş komşular arasında dar pencere aynı iş değildir; girdileri birbirinin yerine verilmez.

Hazır window curation için örnek (sonraki sürüm adı curation içinde tanımlanır):

Terminal window
node scripts/releases/build-alignment-window-release.mjs \
--profile data/translation-profiles/en-rnk-en.json \
--predecessor en-alignment-17 \
--package /absolute/path/to/alignment-17-package \
--curation /absolute/path/to/reviewed-window.curation.json \
--core-package /absolute/path/to/core-package \
--target-package /absolute/path/to/target-render-4-package \
--output .cache/translations/en-rnk-en/alignment/next-reviewed-candidate

Sürüm numaraları bu belgenin tarihindeki başlangıcı gösterir; yeni işe başlarken aktif selef yeniden okunur. Output dizini yeni olmalıdır. Profil güncel doğrulama sürümünü seçer. Profilsiz eski İngilizce komutlarda tarihsel en-target-render-3 varsayımı korunmuştur; bu modda güncel sürüm için --target-verification-release açıkça verilmelidir. İngilizcenin değişmeyen kaynak bağımlılığı en-target-render-1 ile okuma/doğrulama sürümü en-target-render-4 aynı rolü taşımaz; bütün eski sürüm adları körlemesine “en yeni” ile değiştirilmez.

Okunan chapter aralığı/parçaları değişecekse scripts/releases/correct-target-render-release.mjs kullanılır. Bu araç aynı ham kaynakta kapsam düzeltir; yeni baskının metnini eski kaynak kimliğine yazmaz. Scope transferi ve çok aşamalı offline kapanış için son çalışmanın girdileri data/curated/english/en-alignment-17-completion/ altında bulunur. Bunlar tekrar üretim örneğidir; her eklemede bütün 17 sürümün incelemesini tekrar etmek gerekmez.

Publisher ve installer komutları da seçilen release’in doğrulanmış descriptor’ını data/releases/<release-id>.json altında bekler. Yeni render paketi varsa onun R2 giriş noktası scripts/releases/publish-target-render-release.mjs olup aynı --release-id ve --package seçeneklerini kullanır.

Terminal window
node scripts/releases/publish-alignment-release.mjs \
--release-id ALIGNMENT_RELEASE_ID \
--package /absolute/path/to/verified-alignment-package
MUNDERECAT_TARGET_RENDER_RELEASE_ID=TARGET_RENDER_RELEASE_ID \
node scripts/db/install-target-render-release.mjs
MUNDERECAT_ALIGNMENT_RELEASE_ID=ALIGNMENT_RELEASE_ID \
node scripts/db/install-alignment-release.mjs

Bunlar bağımsız giriş noktalarıdır; gerekli olanlar yukarıdaki bağımlılık sırasıyla kullanılır. Remote için MUNDERECAT_DATABASE_URL_FILE verilir. Publisher mevcut farklı nesnenin üzerine yazmaz. Descriptor, uzak manifest ve dosyalar doğrulanmadan yayımlanmış sonuç sayılmaz. Aynı kurulu release’in tekrarında installer veri stream etmez; kurulu kapanış ve kanalı doğrular.

data/releases/<release-id>.json içindeki channel, dil/alfabe, sequence ve supersedes_* UUID’sini taşır. İlk yayın sıra 1 ve boş selef, successor ise aktif selef ve sonraki sıra kullanır. Yanlış selef, sıra veya dil/alfabe aktivasyonda reddedilir. Eski release silinmez; aktif pointer ilerler.

Canonical Türkçe sentence_id kalıcıdır. Aynı stable ID ile gelen annotation kaydının bütün kolonları eskisiyle aynı olmalıdır; installer farkı reddeder. Değişmeyen kayıt yeniden kullanılır, değişen kayıt yeni kimlikle eklenir. Ancak scope değişince ona bağlı group kimliği de değişebilir: aynı anlam çiftinin her yeni scope’ta aynı group ID’sini taşıyacağı vaat edilmez. Eski kimlikler geçmiş sürümde kalır; gelecekteki atıf geçişi ayrıca sürüm/kimlik ilişkisini gözetmelidir.

DB tarafındaki dil-aware okuma girişleri:

api_v1.list_language_channels_v1()
api_v1.get_chapter_target_render_v3(
chapter_id, target_locale, target_script_code, deployment_id
)
api_v1.list_chapter_alignment_units_v2(
chapter_id, target_locale, target_script_code, order_side,
cursor, page_size, alignment_deployment_id
)
api_v1.get_chapter_translation_alignment_v1(
p_chapter_id, p_render_release_id, p_alignment_release_id
)

Explicit deployment/release kimlikleri geçmiş yayını seçebilir. Alignment cursor’ı deployment ve sorgu bağlamına bağlıdır; yeni yayınla eski cursor karıştırılmaz. v3 render sıralı chapter parçalarını korur. Bu DB yetenekleri, public API/istemcide yeni dilin otomatik görünür olduğu anlamına gelmez.

Değişiklik Gerekli kontrol Normalde gerekmeyen
Yalnız cümle alignment’ı Etkilenen üyelik/sıra/sahiplik, exact hedef tanığı, paket kapanışı ve değişen RPC/hover Tam Türkçe corpus reconstruct, reset, her pencere için remote yayın
Render kapsamı veya pasaj aktarımı Yukarıdakiler ve değişen chapter parçalarının/kapsamının tam karşılaştırması Değişmemiş ham kitapları tekrar dönüştürmek
Yeni ham kaynak, parser veya core değişikliği İlgili bütün kaynakta byte/satır/kimlik/koordinat envanteri ve regresyonlar İlgisiz dillerin anlam incelemesini baştan yapmak
Yalnız protokol/dokümantasyon Doküman sözleşmesi, bağlantılar ve diff DB veya yayın işlemi

Mevcut zorunlu DB/paket doğrulamaları devre dışı bırakılmaz. Verim kazancı, onların öncesinde aynı pahalı işi gereksiz tekrar etmeyerek ve yalnız nihai paketi kurarak sağlanır. Normal dil ekleme/düzeltme yolu corpus reset içermez.

  • Kaynak-first yöntemini ve gerçek yokluk/kapsam farklarını belgelemek.
  • Mevcut komutları, senaryoları ve yayın/kimlik sınırlarını tek rehberde toplamak.
  • Chapter/window derleyici ve successor araçlarında sürüm adı, kaynak bağımlılığı ve cache seçimini ortak kaynak profiline taşımak; eski İngilizce girdileri korumak.
  • Canonical-ID tabanlı katkıcı taslağı ve komut şablonu oluşturmak; eski MD dosyalarını zorunlu tutmamak. Fransızca/Arapça teknik testleri gerçek çeviri yayını saymamak.
  • İncelenmiş tek-aralıklı chapter’ların ilk alignment paketini canonical-ID girdisinden üretmek; ilk sürümden successor’a geçişi ve birim kimliklerini test etmek.
  • Ortak reader, public API ve web/mobil seçim/hover akışını kayıtlı çeviri hedeflerinden beslemek; dile/baskıya özel görünüm kurallarını ayrı tutmak.
  • Gerçek bir yeni dilin birkaç chapter’ıyla kaynak girdisinden web ve mobil okumaya kadar uçtan uca pilot yapmak ve örnek girişleri saklamak.
  • Gerçek yeni dilin ham kaynak formatını target-source sözleşmesine uyarlamak ve varsa composed/scope-transfer ihtiyacını pilot üzerinden tamamlamak.

Açık maddeler henüz uygulanmış gibi sunulmaz. Önce küçük pilot ve ortak giriş sınırı netleşir; bütün yeni dil corpus’u yüklemek veya eşzamanlı çok çevirmen altyapısını şimdiden büyütmek bu hazırlık işinin şartı değildir.

Bu turda Fransızca ve Arapça sentetik ilk paket/successor, API publication/client, web/mobil tercih ve karşılık gösterim testleri geçti. Tarayıcıda 10 translation testi ve mevcut yerel okuyucuda kısa chapter için Latin/Osmanlıca/İngilizce geçişi doğrulandı; canonical metin byte/hash ve cümle/paragraf sayıları aynı kaldı. Mobil kod/typecheck testleri yapıldı; bu turda native cihaz/simülatör kontrolü yapılmadı. Gerçek yeni dil, DB migration, R2 yüklemesi veya production pin değişikliği yoktur.