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.
Bugün ne kadar hazır?
Bölüm başlığı “Bugün ne kadar hazır?”İ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.
Önce doğru yolu seçin
Bölüm başlığı “Önce doğru yolu seçin”| İ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.
Değişmeyecek kurallar
Bölüm başlığı “Değişmeyecek kurallar”- 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.
- 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. - 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.
- 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_interleavedgruplarıyla temsil edilir; kaynak üye sırası ve hedef sahiplik kuralları korunur. - 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.
- 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.
Ortak iş sırası
Bölüm başlığı “Ortak iş sırası”1. Kaynağı ve değişiklik kapsamını kaydedin
Bölüm başlığı “1. Kaynağı ve değişiklik kapsamını kaydedin”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.
2. Bir kez kaynak envanteri çıkarın
Bölüm başlığı “2. Bir kez kaynak envanteri çıkarın”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.
4. Kararları açık sonuçlara dönüştürün
Bölüm başlığı “4. Kararları açık sonuçlara dönüştürün”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.
6. Paket, DB ve okuyucuyu birlikte yayımlayın
Bölüm başlığı “6. Paket, DB ve okuyucuyu birlikte yayımlayın”Ö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.
7. Kısa kapanış raporuyla bitirin
Bölüm başlığı “7. Kısa kapanış raporuyla bitirin”- 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.
Hazır komutlar ve sınırları
Bölüm başlığı “Hazır komutlar ve sınırları”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.
Kaynak profili ve katkıcı taslağı
Bölüm başlığı “Kaynak profili ve katkıcı taslağı”Ç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.
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.
Yeni dilin paketlenmesi
Bölüm başlığı “Yeni dilin paketlenmesi”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.
node scripts/releases/build-target-render-release.mjs \ --source /absolute/path/to/prepared-target-source-package \ --release-id fr-target-render-1 \ --sequence 1Builder’ı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:
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.
Mevcut İngilizceye dar düzeltme
Bölüm başlığı “Mevcut İngilizceye dar düzeltme”İ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):
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-candidateSü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.
Yayın ve kurulum
Bölüm başlığı “Yayın ve kurulum”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.
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.mjsBunlar 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.
Kimlik, kanal ve API sözleşmesi
Bölüm başlığı “Kimlik, kanal ve API sözleşmesi”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.
Kontrolü işin riskine göre sınırlayın
Bölüm başlığı “Kontrolü işin riskine göre sınırlayın”| 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.
Sıradaki sınırlı hazırlık işi
Bölüm başlığı “Sıradaki sınırlı hazırlık işi”- 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.