İçeriğe geç

Kaynak öncelikli İngilizce eşleştirme

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
0.1.0
Şema
1
Veri
en-alignment-17

10 Eylül 2026 itibarıyla yayımlanmış okuyucu en-alignment-17 ve en-target-render-4 kullanır. Kaynak sırası, tam hedef aralığı aktarımı, incelenen anlam sınırları ve basılı sayfa kırıklarının gösterimi ayrı katmanlarda düzeltilmiştir. Aşağıdaki eski sürüm başlıkları çalışma geçmişidir; güncel kabul sayılarını ifade etmez.

  • Katalogdaki 298 bölümün 189’unda İngilizce hedef metin kullanılabilir; 109’unda bu hedef kullanılamaz. Bu sayı 189 bölümün bütün cümle ilişkileri onaylıdır anlamına gelmez.
  • Son sürümde 48.941 accepted grup, 59.949 bağlı kaynak, 0 pending aday ve 3.302 unresolved kapsam-içi kaynak birimi vardır. Kapsam dışında ayrıca 1.180 kaynak birimi kalır. Eşleşmemiş olmak, incelemesinin açık olduğu anlamına gelmez; seçili çeviride bulunmayan metin ve yapısal işaretler korunur.
  • Başlangıç açıkları, kapsam-dışı kayıtlar ve ek gövde düzeltmeleri dahil 8.354 kaydın tamamı kanıtlı sonuçlandırıldı. Önceki sürüme göre net 3.859 ek kaynak bağlandı. Karar envanteri ve yeniden üretim girdileri tamamlama notunda açıklanır.
  • Değişen 156 bölümün canlı API çıktıları hazırlanmış paketle birebir karşılaştırıldı; aynı bölümlerin yerel/uzak Supabase hizalama çıktıları da birebir doğrulandı. Birinci Söz, Altıncı/Dokuzuncu Şua ve taşınan Emirdağ mektubu yerel okuyucuda metin/hover kontrollerinden geçti. Yerel web ve Expo okuyucu yerel Supabase kullanır. Yerel API’nin yayın referansları değiştiğinde çalışan süreç yeniden başlatılmalıdır. Android/iOS uygulama testi bu turda tekrarlanmadı.

Türkçe canonical metin, cümle kimlikleri ve token sıraları değiştirilmedi. Ham İngilizce kitap da yeniden yazılmadı. Eksik karşılıklar, komşu cümlenin anlamı verilerek veya çeviri üretilerek kapatılmadı.

Alignment 16 komşu aralık ve sahiplik düzeltmeleri, 588 adayın incelenmesini, 535 kabul/düzeltme kararını ve ek komşularla toplam 568 yeni kaynak ilişkisini kaydeder. 53 aday gerekçeleriyle açık bırakıldı. Alignment 15 kalan adayların bağlanması, 421 adayın 419’unun bağlanmasını ve ek komşularla toplam 430 yeni cümle ilişkisini kaydeder. İlk 505 aday havuzunun 502’si bağlıdır; 3’ü açık kalmıştır. Alignment 14 dizgi farklarından kurtarma, 82 adaydan 81’inin bağlanmasını ve komşu düzeltmeleriyle toplam 87 açık kaynak ilişkisinin tamamlanmasını kaydeder. 1 yanlış eşleşme yeniden kabul edilmedi. Alignment 13 aday kapanışı, önceki 12 adayın uygulanmasını ve yerel/uzak yayını kaydeder. 11 aday doğru bağlantıya kavuştu; 1 yanlış bağlantı kaldırıldı, yeni bağlantısı açık bırakıldı. Alignment 12 kapanış kontrolü ise önceki bölüm sayımını, ilk inceleme kararlarını ve iOS simülatörü sonuçlarını kaydeder. Önemli payda ayrımı: İngilizce hedefi bulunan 189 bölümdeki 64.431 canonical cümleden artık 63.251’i alignment scope içindedir. Kalan 1.180 kapsam-dışı kayıt, 3.302 unresolved kapsam-içi kayda dahil değildir. Toplam 4.482 kayıt; 3.232 çevirisiz, 201 baskı/yerleşim farkı ve 1.049 yapısal işaretten oluşur. Sıfır pending, bütün canonical cümlelerin çevrildiği anlamına gelmez.

Teşhis, Türkçe kaynak sırasının korunduğunu, fakat doğru bulunan İngilizce aralığın daha büyük metin bloklarına genişletildiğini gösterdi. Bazı eski eşlenmiş İngilizce satırlar da komşu Türkçe cümlenin anlamını içeriyordu. İki sorun ayrı ele alınır:

  1. Anlam kararı: Türkçe kaynak cümlesinin İngilizce karşılığı seçilir. Bu seçim önceki dosyadan alınabilir; yanlış sınırlar kaynak kitapla karşılaştırılarak düzeltilir. Başlık, Arapça alıntı ve yapısal ayraçlar ayrıca değerlendirilir.
  2. Aktarım: Seçilen tam İngilizce aralık doğrudan saklanır. Komşu atomlara genişletilmez. Türkçe cümle kimlikleri canonical sıradan alınır.
  3. Gösterim: Basılı sayfa kırıkları ayrı, tam metin tanıklı gösterim kurallarıyla giderilir. Ham İngilizce kitap ve bütün koordinatlar değişmeden kalır.

Bir Türkçe cümle birkaç İngilizce cümleye, birkaç Türkçe cümle bir İngilizce cümleye karşılık gelebilir. Cümle sayısını zorla eşitlemek amaç değildir. Ancak ayrı anlamların açıkça seçilebildiği yerlerde bütün paragrafı tek hover grubuna toplamak da doğru değildir.

Girdi Rolü Tek başına kanıtlamadığı
Türkçe tr-sentences Fiziksel satır ve canonical cümle sırası İngilizce anlamın doğruluğu
Eşlenmiş İngilizce dosyalar Mevcut karşılık adayları Her satır sınırının semantik doğruluğu
Yayımlanmış İngilizce kitap Ekrana gelen değişmez metin, tam aralık tanığı Türkçe karşılığın doğruluğu
Kabul edilmiş curation JSON İncelenmiş anlam grupları, istisnalar Kapsam dışındaki chapter’ların yeniden onayı
Önceki alignment paketi Değişmeyen ilişkiler ve kimlikleri Bütün eski eşleşmelerin hatasız olduğu

Girintili destekleyici satırlar yeni canonical cümle değildir. source.line fiziksel dosya satırıdır; cümle indeksi yerine kullanılamaz. Ana satırlar, paragraf/cümle sırası üzerinden cümle kimliklerine bağlanır.

Ana satır Arapça olabilir. İngilizce karşılığı varsa bu canonical cümle de eşleştirilir; alfabe, karşılığın yok sayılması için gerekçe değildir. Bir alıntı hem ana cümlenin içinde hem girintili destek satırında bulunuyorsa, İngilizce alıntı ana cümlenin karşılığına dahildir. Arapça alıntı ve ayrı Türkçe açıklaması İngilizcede yalnız bir kez çevrilmişse iki kaynak cümle ortak gruba bağlanabilir.

Anlamı komşu İngilizce cümlenin içinde bulunan satır source_only değildir. Ayrılabilen yan cümle kendi kaynak kimliğine bağlanır; gerçekten iç içe geçen anlamlar ortak gruba alınır. Örneğin “soruyorlardı” ve “Acaba af olacak mı?”, “would ask me” ve “if this would happen” olarak ayrı karşılıklara sahiptir. Yalnızca yeni bir İngilizce cümle başlamaması, sorunun çevirisiz olduğunu göstermez.

Hedef birimin dilbilgisel olarak tam cümle olması gerekmez. Örneğin ayrı kaynak satırlarındaki “Onlar da:” ve ardından gelen önerme, İngilizcede “They are” ve önerme olarak ayrı bağlanır. “He says:”, “It is established that” gibi girişler de sonraki canonical alıntıdan veya önermeden ayrılabilir. İki parçanın aynı İngilizce cümlede bulunması, kaynak üyelerini birleştirme gerekçesi değildir. Ortak grup ancak anlamların gerçekten iç içe geçtiği, ayrı aralıkların yanlış karşılık vereceği durumda seçilir; gerekçe bu somut durumu açıklamalıdır.

Doğru karşılık konumunun seçilmesi, İngilizce baskının her çeviri tercihinin onaylanması değildir. Kaynak baskıdaki özne veya ifade farkları inceleme notunda ayrıca belirtilir; hizalama düzeltmesi ham İngilizce metni yeniden yazmaz.

scripts/translations/source-first-inventory.mjs bütün kaynakları okumak için yeniden kullanılabilir offline araçtır. DB’ye yazmaz veya eşleşme kabul etmez.

Terminal window
node scripts/translations/source-first-inventory.mjs \
--source-root "$EN_SOURCE_ROOT" \
--core-snapshot .cache/notes/core-snapshot.json \
--target-package .cache/english-quality/en-target-render-3/package-v2 \
--output-dir .cache/english-source-first/inventory

Varsayılan --lookup-mode exact, önceki envanterlerin birebir aramasını korur. --lookup-mode presentation ile boşluk/satır sonu ve tipografik tırnak farkları da aday keşfine katılır. Bu seçenek harfleri, aksanları, büyük-küçük harfi veya kelime sınırlarını silmez; birden fazla konum varsa hepsini korur. Sonuç daima değiştirilmemiş İngilizce kaynağın gerçek scalar aralığıdır. Bu adaylar hâlâ semanticStatus: unreviewed durumundadır; arama toleransı otomatik kabul değildir.

6 Eylül 2026 sayımı:

  • 298 chapter’ın Türkçe ana satırları canonical cümlelerle aynı sırada bağlandı.
  • 193 eşlenmiş İngilizce dosya var. Bunların 186’sı kesintisiz hedef chapter’a, biri çok parçalı hedefe sahip; dördü untranslated, ikisi unavailable.
  • Hedefi olup eşlenmiş dosyası olmayan iki chapter ayrıca listelenir.
  • 47.757 ana satır için tekil, birebir İngilizce hedef aralığı bulundu.
  • 2.964 satırda aynı ifade birden fazla yerde bulundu. İlk sonucu seçmek doğru değildir.
  • 5.268 satır birebir bulunamadı; bu sayı kayıp çeviri sayısı değildir. Dizgi, noktalama ve eski satır düzenlemesi gibi nedenler ayrıca incelenir.
  • 7.127 satır kaynak Türkçesiyle bırakılmış; bunlar kendiliğinden İngilizce kabul edilmez.

Envanterin semanticStatus: unreviewed değeri kasıtlıdır. Sayı, exact metin, hash veya başarılı sıra testi anlam incelemesinin yerine geçmez. Çok parçalı chapter’lar araçta açıkça ayrı tutulur; sessizce düz chapter gibi işlenmez.

scripts/translations/alignment-boundary-audit.mjs bu envanteri yayımlanmış alignment üyelikleriyle birleştirir. Aynı grubun bütün hedef aralıklarının birleşimini karşılaştırır; boşluk farkını veya doğru çok-cümleli grubu hata saymaz. Alignment-4 tabanında 172 desteklenen scope içinde 2.675 tek-kaynak satırda boşluk dışı hedef genişlemesi, 982 tam tanıklı çok-kaynak grupta daha geniş hedef birleşimi bulundu. Buna karşılık 5.322 çok-kaynak grubunun birleşimi zaten eşdeğerdir. 2.829 tekil tanıklı satırın accepted bağı yoktur. Bunlar inceleme adaylarıdır: eklenen bölüm yalnız bir dipnot numarası da olabilir, komşu anlam da olabilir. Bu sayılar otomatik düzeltme veya semantik hata sayısı olarak kullanılmaz.

Chapter’ın tamamını yeniden onaylamadan da eksik cümle ilişkileri düzeltilebilir. scripts/translations/alignment-window-inventory.mjs, mevcut bir accepted grubun İngilizce metninin kaynak satırlarıyla eksiksiz bölünebildiği aralıkları çıkarır. Başka grubun veya unresolved adayın sahip olduğu kaynak cümle alınmaz; hedefte boşluk dışı bir karakter bile açıklanmadan atılmaz. Arada kalan ve birebir İngilizce tanığı olmayan Türkçe satırlar da inceleme bağlamında gösterilir.

Alignment-6 üzerinde 795 aralıkta, mevcut İngilizce parçaya ait olduğu düşünülen ek Türkçe kaynak satırları bulundu. Bunlar 1.923 kaynak satırını kapsar; sayı anlam onayı değil, inceleme kapsamıdır. Ayrıca bulunan 5.229 ortak eşleşme, sırf birden fazla cümle içerdiği için düzeltmeye alınmaz.

scripts/translations/compile-alignment-window-review.mjs inceleme kararlarını ayrı bir public-alignment-window-corrections-v1 curation dosyasına çevirir:

  • split_rows: her kaynak satırının karşılığı ayrı anlam grubuna bağlanabilir.
  • merge_rows: bütün kaynak satırları birlikte karşılanır; İngilizce iç içe anlatıldığı için yapay bir tek-cümle kesinliği üretilmez.
  • defer: bu aralık mevcut kapsamıyla düzeltilemez; gerekçe raporda korunur, mevcut eşleşme değiştirilmez.

Örneğin ayrı bir “Ezcümle” satırının “For instance” karşılığı, sonraki cümleye katılmışsa kendi cümle kimliğine bağlanabilir. Buna karşılık İngilizce başlık, aradaki ayrı Arapça cümlenin çevirisini de içeriyorsa yalnız başlık satırını seçmek yeterli değildir. Aynı başlığın başka bölümdeki kaydını bulmak da doğru bağlamı kanıtlamaz. Bu durumlar kaynak kapsamı genişletilmeden otomatik onaylanmaz.

scripts/translations/compile-alignment-exception-review.mjs, eşlenmiş dosyanın tek satırına sığmayan kararları canonical cümle kimlikleri ve ham İngilizce aralıklarla derler. Eski envanter yeni sürümde kullanılabilir; fakat eski kaynak üyeleri ve hedef unit kimlikleri hâlâ aynı accepted grubu tanımlamalıdır.

  • source_only: cümle kaydı korunur, yanlış İngilizce bağlantı kaldırılır. Sürüme bağlı üyelik unresolved olur; gerekçesi saklanır, aday bağı boş kalır.
  • target_only: ham İngilizce parça korunur, uydurma Türkçe hover karşılığı gösterilmez. Örneğin kaynak satır yalnız ... iken İngilizce baskı burada ayrıntılı açıklama verebilir.
  • companion_keys: düzeltme komşu accepted gruba da dokunuyorsa o grup incelemeye açıkça dahil edilir. Curation içindeki retirements, her eski grubun kendi kaynak üyelerini ve tam hedef aralıklarını ayrı ayrı saklar. Bütün eski kaynakların ve boşluk dışı hedef karakterlerinin hesabı verilmeden iki grubun yerini yeni gruplar alamaz.

Bir parça bilinen komşu kaynak cümleyi çeviriyorsa, ilk inceleme penceresinin dışında kaldığı için target_only yapılamaz. Komşu grubun ilgili üyeleri companion_keys ile birlikte düzeltilir. Henüz çözülemeyen bir sınır, gerçek çeviri yokluğu olarak kaydedilmez; mevcut ilişki korunarak açık inceleme konusu kalır. Aynı ilke sayfa sonunda bölünmüş kelimenin öteki yarısı için de geçerlidir.

İnceleme girdisindeki issues, eski hatanın açıklaması değil, henüz çözülmemiş engellerdir. Düzeltme bu sorunları çözdüyse dizi boştur ve açıklama evidence alanındadır. Dolu issues derlemeyi erteler. compiled sayısı ve sıfır deferred sonucu da tek başına anlam onayı değildir; bunlar kararın mekanik olarak uygulanabilirliğini gösterir.

Bu mekanizma mevcut kaynak satırını yeniden yazmaz, cümle kimliğini değiştirmez ve komşu bir grubun kaydını örtülü biçimde almaz. Değişmeyen gruplar korunur; eski sürüm de bağımsız olarak okunabilir kalır. Doğrulama yalnız yeni çıktıya bakmaz: her emekliye ayrılan grubun eski RPC karşılığını da ayrı kontrol eder.

Derleyici, verilen aralığın ham metne birebir eşit olduğunu doğruladıktan sonra yalnız kenar boşluklarını temizleyip scalar koordinatlarını düzeltir. Kelime, noktalama veya iç boşluk normalizasyonu yapmaz. Okuyucudaki asıl boşluk ve satır sırası değişmez; mekanik kenar temizliği için anlam incelemesi tekrarlanmaz.

Bir İngilizce cümle önceki Türkçe önermeyi daha sonra tekrar ediyorsa gerçek ilişki iç içe geçebilir. Böyle bir aralıkta açıkça belirtilmiş ortak anlam grubu, yanlış bir tek-cümle kesinliğinden daha doğrudur. Bu karar yalnız ilgili kısa aralık için geçerlidir; bütün chapter’ı tek hover grubuna çevirme kuralı değildir.

Bu çalışma, daha önce tamamı incelenen yedi chapter’ın yeniden kurulması veya geri kalan bütün chapter’ların semantik olarak onaylanması anlamına gelmez.

Bir hedef unit’in unresolved olması, mutlaka çevirisinin bulunmadığı anlamına gelmez. candidate_id: null olan, henüz bir adayın sahiplenmediği unit ile incelemesi bekleyen bir adaya bağlı unit birbirinden ayrılır.

public-alignment-window-corrections-v1 içindeki operation: bind_unresolved, yalnız ilk gruptaki mevcut hedef unit’leri işleyebilir. target_before bunların tam kimlik, aralık ve metin tanıklarını içerir. İncelenmiş kaynak cümleler yeni gruplara bağlanır; kalan içerik açık gerekçeyle unresolved tutulur. Bu gerekçe “henüz incelenmemiş” olabilir ve çeviri yokluğu iddiası değildir. Bütün eski boşluk dışı içerik korunur; kabul edilmiş veya başka adayın sahip olduğu kaynak/hedef üyeleri bu yolla devralınamaz.

Karma durumlarda mevcut bir accepted grubun düzeltmesi, sahipsiz bir hedef unit’e kadar uzanabilir. İnceleme girdisinde additional_target_unit_ids belirtilir; derleyici bunu curation içindeki consume_unpaired_target_unit_ids alanına taşır. Bu ek unit’ler accepted grup emeklilik listesine yazılmaz. Kendi unresolved üyelikleri, tam metinleri ve birlikte kullanılan kapsam ayrıca doğrulanır. Böylece sayfa kırığı yüzünden ayrı atomlarda kalan tek bir kaynak cümlesi, çevresindeki kabul edilmiş ilişkiler bozulmadan tamamlanabilir.

Bu işlem yeni Türkçe cümle üretmez, eski yayını değiştirmez ve pending adayları kendiliğinden onaylamaz. Yapısal aktarım desteği ile anlam kararı yine ayrıdır.

İncelenmiş bir karşılık pending adayın üyelerine ihtiyaç duyuyorsa ayrı operation: replace_candidates kullanılır. retirements, her adayın tam candidate_id, mevcut promotion_status, kaynak kimlikleri ve hedef unit tanıklarını içerir. Pending adayda group_id: null, accepted komşuda gerçek grup kimliği bulunur. Başka adayın üyeleri örtülü biçimde devralınamaz; bütün eski üyelerin yeni gruplarda veya gerekçeli unresolved kayıtlarda karşılığı olmalıdır. Gerekirse ayrıca listelenmiş sahipsiz hedef unit’ler tüketilebilir. Bu işlem bind_unresolved kuralını gevşetmez ve eski sürümü değiştirmez.

Ham İngilizce chapter tam olduğu halde eski alignment kapsamı daha dar kalmış olabilir. operation: extend_scope, yalnız incelenmiş başlangıç veya bitiş aralığını ekler. Bütün chapter için yeniden anlam onayı gerektirmez.

  • İstenen kapsam mevcut hedef chapter sınırları içinde kalır; komşu chapter’ın metni sırf aynı kitapta bulunduğu için alınamaz.
  • Önceki accepted, pending ve unresolved üyelik envanteri doğrulanır. Mevcut bir hedef unit’in devamı gerekiyorsa tüketilecek sahipsiz unit açıkça belirtilir.
  • Eklenen kapsamın ve tüketilen unit’in bütün boşluk dışı karakterleri yeni eşleşmelerde veya gerekçeli target_only kayıtlarında karşılanır.
  • Aynı scope içindeki bağımsız düzeltmeler birlikte uygulanabilir. Başka bir accepted kaynak sahibine ihtiyaç varsa o ilişkinin ayrıca incelenmiş düzeltmesi gerekir; kapsam genişletmek sahiplik kontrolünü devre dışı bırakmaz.

Genişletilen aralıktaki kaynak cümle daha önce yanlış bir hedefe bağlanmışsa, aynı extend_scope penceresi açık retirements envanteri taşıyabilir. Eski ilişkinin bütün kaynak ve hedef üyeleri doğrulanır; yanlış hedef metni silinmez. Örneğin Münâcat başlığı doğru A Supplication konumuna taşınırken, yanlışlıkla başlığa bağlanan editoryal giriş target_only olarak korunur. Böylece aynı kaynak için iki eşleşme veya ara bir yayın üretmek gerekmez.

Kitap koordinatları ile okuyucunun chapter içi koordinatları ayrıdır. Yanlış bir eski eşleşme güncel chapter’ın tamamen dışında kalıyorsa RPC’de görünmemesi beklenir. Tam geri alma durumunda ham metin tanığı ve yeni unresolved DB üyeliği doğrulanır; kitap offset’i okuyucu offset’i gibi karşılaştırılmaz. Chapter sınırını kısmen kesen aralıklar bu istisnaya dahil değildir.

Bir accepted grubun yanlış olduğu kesinleşmiş, fakat yerine konacak doğru karşılık bulunmamış olabilir. Bu durumda düzeltme penceresi groups: [] kullanabilir: emekliye ayrılan bütün kaynak cümleler gerekçeli source_only, eski hedefin bütün boşluk dışı içeriği ise metin tanıklı target_only olarak korunmalıdır. Ek sahipsiz hedef unit tüketilmez. Böylece yanlış hover bağı kaldırılırken iki dilin metni ve önceki sürümdeki ilişki geçmişi kaybolmaz.

Bu izin yalnız mevcut accepted ilişkiyi geri alma içindir; bind_unresolved işlemi hâlâ en az bir gerçek karşılık grubu gerektirir. Kapsam dışı metin veya bekleyen aday bu mekanizma üzerinden kendiliğinden onaylanamaz.

data/curated/english/en-alignment-5-source-first.json şu bilgileri taşır:

  • Önceki paket ve dil sürümü kimlikleri.
  • Chapter içindeki bütün kaynak cümlelerin sıralı kimlik/metin tanıkları.
  • İncelenmiş gruplar: kaynak cümle kimlikleri, hedef kitap aralıkları, karar gerekçesi.
  • source_only: hedef kaynakta karşılığı bulunmayan kaynak satırları.
  • target_only: kaynak cümleye bağlanamayan, hedefe özgü parçalar.

Hedef aralıkları kitabın başından itibaren Unicode scalar koordinatlarıdır: [start_scalar, end_scalar_exclusive). UTF-8 byte veya JavaScript UTF-16 indeksi değildir. Builder byte koordinatlarını aynı doğrulanmış kitaptan hesaplar. RPC bunları okuyucunun chapter başlangıcına göre döndürür.

Her kaynak satır tam bir kez hesaba katılır. Hedefte boşluk dışında açıklanmamış içerik, örtüşen gruplar, yanlış metin tanığı veya sıra farkı üretimi durdurur. Gerçek eksik karşılık açıkça işaretlenir; sırf complete elde etmek için komşu anlam aktarılmaz veya yeni çeviri uydurulmaz.

Tekrarlanan başlıkları ilk görülen konuma bağlamamak için offline selectMonotoneAnchors (scripts/translations/source-first-anchors.mjs) mevcut exact adaylardan kaynak sırasını izleyen, örtüşmeyen en geniş satır dizisini çıkarabilir. Atlanan satırlar ayrı döner. Bu yalnız inceleme hazırlığıdır; anlam onayı, source_only kararı veya DB yazımı üretmez.

İncelenmiş çalışma dosyasından curation üretmek için scripts/translations/compile-source-first-review.mjs kullanılır. --review birden fazla verilebilir. Girdi, chapter başına dispositions taşır: fiziksel source_lines, original_tr, english_text, chapter-relative scalar başlangıç/bitiş, aligned veya source_only kararı ve gerekçesi. Hedefe özgü parçalar target_only altında tutulur. Bu çalışma dosyası kaynak metin içerebilir; üretilen public curation metin yerine kimlik, aralık ve hash saklar.

Bir cümlenin İngilizce karşılığı araya giren çevirmen notuyla kesiliyorsa, english_text ve tek başlangıç/bitiş yerine target_ranges dizisi kullanılır. Her parça kendi english_text, target_start_scalar ve target_end_scalar_exclusive tanığını taşır; aradaki not ayrıca target_only kalır. İki parça aynı kaynak cümle ve gruba bağlıdır. Bu hedef aralığı istisnası başka bir kabul edilmiş anlama atlamayı veya kaynak cümle sırasını değiştirmeyi serbest bırakmaz. DB tarafı 20260906153000_alignment_split_target_gaps migration’ını gerektirir.

Terminal window
node scripts/translations/compile-source-first-review.mjs \
--predecessor en-alignment-5 \
--source-root "$EN_SOURCE_ROOT" \
--core-snapshot .cache/notes/core-snapshot.json \
--target-package .cache/english-quality/en-target-render-3/package-v2 \
--review .cache/reviewed-chapter.json \
--output .cache/source-first-draft.json

Varsayılan çıktı drafttır. Anlam incelemesi tamamlandığında --accepted-on ve --basis birlikte verilerek kabul edilmiş curation üretilir. Derleyici anlam onayı vermez; yalnız satır/metin tanıklarını, kapsamı ve örtüşmeleri doğrular. Mevcut çıktı dosyasının üzerine yazmaz. Yayımlanan release değiştirilmez; sonraki kabul yeni numaralı successor olur.

Terminal window
node scripts/releases/build-alignment-source-first-release.mjs \
--predecessor en-alignment-4 \
--package .cache/english-quality/alignment/en-alignment-4-v1 \
--curation data/curated/english/en-alignment-5-source-first.json \
--output .cache/english-quality/alignment/en-alignment-5-v1 \
--core-package .cache/munderecat/releases/tr-latn-1/package/corpus-release-v1 \
--target-package .cache/english-quality/en-target-render-3/package-v2

Çıktı klasörü yeni olmalıdır. Builder önceki artifact’ı değiştirmez. İncelenen chapter’ların scope/grup üyelikleri yeni sürümde düzenlenir; diğer chapter’ların mevcut ilişkileri korunur. Uygun eski source/target unit kimlikleri yeniden kullanılır. Yeni pakette kullanılmayan eski unit’ler pakete taşınmaz; eski yayınlarda ve DB’de kalırlar. Türkçe core, eski release’ler ve İngilizce kitabın byte’ları değiştirilmez.

Varsayılan işlem mevcut, kesintisiz alignment scope’unu yeniler. Daha önce alignment scope’u olmayan bir chapter için inceleme girdisinde ve curation’da operation: "add_scope" açıkça belirtilir. Bu işlem ancak canonical kaynak satırlarının tamamı hesaba katılmış ve available durumundaki kesintisiz hedefin tamamı tanıklanmışsa kabul edilir. Mevcut scope’u ekleme adı altında değiştiremez; işlem belirtilmeden de eksik scope kendiliğinden oluşturulmaz.

Yeni scope’lar release envanterinin sonuna eklenir; önceki scope pozisyonları korunur. Bu pozisyonlar canonical kitap/chapter okuma sırası değildir. Cümle, paragraf veya token sıraları değişmez. Gerçek RPC doğrulaması eklenen chapter’ın eski sürümde hem scope üyeliğinin hem RPC karşılığının olmadığını ayrıca denetler.

Çok parçalı hedefi düzenlemek bu builder’ın kapsamı dışındadır. Bir chapter’ın İngilizcesinin başka bir kitap dosyasında bulunması ise tek başına çok parçalı hedef anlamına gelmez; gerçek scope/composition metadata’sı esas alınır. Yeni bir dil için mevcut dil/target yayın protokolü geçerlidir, İngilizceye özgü bu düzeltme dosyası kullanılmaz.

Terminal window
make db-alignment-test
node --experimental-strip-types --test \
packages/reader-core/tests/translation-layout.test.mjs \
packages/reader-core/tests/translation-presentation.test.mjs

Kabul edilmiş paket mevcut insert-only installer ile kurulur; reset gerekmez. Ardından gerçek RPC çıktısında cümle kimlikleri ve tam hedef aralıkları curation ile karşılaştırılır. Okuyucunun ham metni birebir koruduğu, yalnız kayıtlı dizgi düzeltmelerini uyguladığı ve eski Birinci Söz/Dokuzuncu Şua ilişkilerinin değişmediği kontrol edilir. Web ve mobil aynı reader-core gösterim katmanını kullanır.

Yerel test, remote yayın yapılmış olduğu anlamına gelmez. R2, remote DB ve API publication kimlikleri tutarlı bir yayın bağlamında güncellenmeden production fixture’ı değiştirilmez. Yerel uygulamalar yerel Supabase’e bağlı kalır.

Altıncı Şua için 76 kaynak satır yeniden incelendi: 74 anlam grubunda 75 kaynak satır eşleşti. Açılıştaki iki kaynak satır aynı İngilizce cümlenin parçalarıdır. 58. satırdaki soru hedef İngilizce kitapta bulunmadığından source_only kaldı. Başlık, iki nüktelik açıklama ve besmele ayrı karşılıklardır. not equal to Muhammad tek kaynak cümleye; ardından gelen aile cümlesi kendi karşılığına bağlanır.

Bu bölümün anlam incelemesi bütün külliyatın tamamlandığı iddiası değildir. Kalan chapter’lar envanter bulguları ve kaynak kanıtlarıyla ayrı ilerletilir.

İkinci Söz’de de tek Türkçe cümlenin iki İngilizce cümleye karşılık geldiği yerler vardır. 43. kaynak satırdaki mümin olma ve Hâlık’ı tanıma ifadeleri birlikte bağlanır; sonraki dünya tasviri 44. satırındır. 53 ve 54. satırların iman/küfür karşıtlığı İngilizcedeki iki yan cümleye ayrılır. 56. satır ise kapanıştaki çağrı ve Arapça ibarenin İngilizcesini birlikte içerir. Kaynakta olup hedef scope’unda bulunmayan sondaki ***, eksik bir İngilizce cümle gibi değerlendirilmez.

en-alignment-5 yerel Supabase’e insert-only kuruldu. Beş chapter’ın 260 kaynak satırı 254 grupta incelendi. 257 kaynak satırının karşılığı var; bir soru ve iki yapısal ayraç açıkça source_only kaldı. Bu beş chapter’ın hedef metninde boşluk dışında karşılıksız karakter yoktur.

Chapter Önceki grup Yeni grup Source-only
İkinci Söz 40 48 1 yapısal ayraç
Üçüncü Söz 34 50 0
Dördüncü Söz 26 35 0
Beşinci Söz 35 47 1 yapısal ayraç
Altıncı Şua 50 74 1 soru

Dördüncü Söz’deki iki grup bilinçli 2:1 ilişkilerdir. İngilizce, emri bildiren ifadeyi alıntının içine yerleştirir; başka bir cümlede koşul ve ana sorunun sırasını değiştirir. Bunları sırf sayı eşitlemek için yanlış sınırdan bölmek yerine ilgili iki Türkçe cümle aynı anlam grubunda tutulur.

Terminal window
node --experimental-strip-types scripts/translations/verify-source-first-local.mjs \
--output .cache/english-source-first/local-verification.json

Bu komut yalnız yerel Docker Supabase kullanır; remote URL ortam değişkenlerini kullanmaz. İncelenen chapter’ların canlı kaynak metni, kimlikleri, sırası, RPC aralıkları ve okuyucu çıktısı karşılaştırılır. Birinci Söz ve Dokuzuncu Şua’nın önceki RPC unit/grup/source üyeleri ayrıca birebir korunmuştur; bu iki chapter’ın bütün anlamları yeniden onaylanmış sayılmaz.

Web’de 1360 px genişlikte Altıncı Şua’nın üç kritik hover karşılığı, 390 px genişlikte İkinci Söz’ün iki İngilizce cümleyi içeren doğru Türkçe karşılığı kontrol edildi. Expo-web’de 74 Altıncı Şua unit’i, düzeltilmiş satır devamı ve Türkçe karşılık paneli doğrulandı. Yatay taşma görülmedi. Metro’nun eski curation önbelleği temizlenerek yeniden başlatıldı. Bu, gerçek Android/iOS cihaz testi değildir.

16 R2 nesnesi yüklenip içerikleri doğrulandı. Artifact package root: dc89b2a0c93c67f65f08b766fb9c0b068cc57bdccef700812a183882878797e7. Alignment kimliği: 3a7e5a5d-0d0b-52e2-9518-7c127619ad40. Bu aşamada remote Supabase ve canlı Content API publication güncellenmedi.

en-alignment-6, önceki düzeltmeleri koruyarak bu iki chapter’ı yeniler. Birinci Söz, sonundaki On Dördüncü Lem’a’nın İkinci Makamı dahil incelendi.

Chapter Kaynak satır Önceki grup Yeni grup Source-only
Birinci Söz 221 144 218 1 dış başlık tekrarı
Dokuzuncu Şua 154 94 153 1 yapısal ayraç

Birinci Söz’de dış başlık ve girişten sonraki iç başlık Türkçede ayrı kayıtlardır. İngilizce baskıda başlık girişten sonra bir kez bulunur; yalnız bu iç başlığa bağlanır. İki başlığı aradaki cümlelerin üzerinden atlayarak birleştirmek doğru değildir. DB bu ilk adayı reddetti ve işlem geri alındı. Aynı kontrol artık paket üretiminde de yapılır: merge/split üyeleri kesintisiz olmalıdır; complex grup yalnız açıkça unresolved bırakılmış aralıkların üzerinden geçebilir. Başka accepted grubun üyelerinin üzerinden geçemez. DB kuralları gevşetilmedi.

Dokuzuncu Şua’da çocuklar ve ihtiyarlar hakkındaki paragrafların kaymış yan cümleleri düzeltildi. anladım ki girişi kendi karşılığına, ardından gelen uzun açıklama kendi kaynak cümlesine bağlandı. Açılıştaki Arapça ayetlerin İngilizce karşılıkları da canonical kaynak satırlarına bağlandı; burada hover Türkçe tercüme uydurmaz, külliyatın kaynak Arapça satırını gösterir.

Terminal window
node --experimental-strip-types scripts/translations/verify-source-first-local.mjs \
--curation data/curated/english/en-alignment-6-source-first.json \
--old-descriptor data/releases/en-alignment-5.json \
--new-descriptor data/releases/en-alignment-6.json \
--output .cache/english-source-first/local-verification-6.json

Gerçek yerel RPC, 24 kritik anlam tanığı ve okuyucu roundtrip kontrolü geçti. İkinci Söz ve Altıncı Şua’nın önceki çıktıları aynı kaldı. Web’de masaüstü Dokuzuncu Şua ve mobil genişlikte Birinci Söz; Expo-web’de Dokuzuncu Şua’nın Türkçe karşılık paneli doğrulandı. Yatay taşma yok. Gerçek cihaz testi yapılmadı.

İki sürüm birlikte 7 chapter, 635 kaynak satır ve 625 anlam grubunu kapsar. 630 kaynak satırının karşılığı vardır; dört yapısal kayıt ve bir soru source-only kalır. Bu yedi chapter’ın İngilizce metninde karşılıksız boşluk dışı karakter yoktur. Bu sayı bütün 193 hizalama dosyasının anlam bakımından onaylandığını göstermez; kapsamlı envanter ile bireysel anlam incelemesi ayrı sonuçlardır.

en-alignment-6 yerel Supabase’e kuruldu ve 16 R2 nesnesi doğrulanarak yayımlandı. Alignment kimliği 043aa0a8-ec83-5579-b9b6-51bde7ba4299, package root 2602ce424c453eb8384759bb7c1a4effeb5b4c744fd01c85f68f99ac63721eed. Remote DB ve canlı uygulama bu aşamada güncellenmedi. Sonraki yayın mevcut bekleyen migration, target-render, alignment ve Content API paketini birlikte ele almalıdır; yalnız fixture değişikliğini deploy etmek yeterli değildir.

en-alignment-7, önceki yedi chapter’ı değiştirmeden, 129 chapter’daki seçilmiş aralıkların ilişkilerini düzeltir. Bütün chapter’ların yeniden anlam onayı değildir.

Sonuç Sayı
Anlam bakımından incelenen aralık 795
Uygulanan düzeltme 779
Ayrı incelemeye bırakılan aralık 16
Düzeltmelerdeki kaynak cümle 1.879
Geri kazanılan eksik kaynak bağlantısı 797
Eski 779 grubun yerine kurulan grup 1.877
Değişen chapter’larda korunan hover parçası 36.779

Kararlar data/curated/english/en-alignment-7-window-corrections.json içindedir. Yanındaki .report.json, 16 istisnayı ve gerekçelerini saklar. İstisnalar arasında başka bölümden alınmış benzer başlık, eksik Arapça kaynak satırına ait alıntı, komşu cümlenin devamı ve İngilizcede karşılığı henüz gösterilemeyen ayrı bir iddia bulunur. Bunları toplu bir gruba ekleyerek yapay coverage üretilmez.

Otuzuncu Söz’de başlık ve açıklama İngilizcede ters sıradadır. Her biri kendi Türkçe cümlesine bağlanır; iki dilin okuma sırası ayrı tutulur. On Yedinci Söz’ün İkinci Makam girişinde ise başlık ve dipnot işareti İngilizce satırlar arasında dağıldığından ilgili pencere ortak anlam grubunda tutulur.

Terminal window
node scripts/releases/build-alignment-window-release.mjs \
--predecessor en-alignment-6 \
--package "$ALIGNMENT_6_PACKAGE" \
--curation data/curated/english/en-alignment-7-window-corrections.json \
--output .cache/english-quality/alignment/en-alignment-7-reproduction \
--core-package "$TR_CORE_PACKAGE" \
--target-package "$EN_TARGET_3_PACKAGE"
node --experimental-strip-types scripts/translations/verify-alignment-windows-local.mjs

Builder yalnız değişen chapter’ın sürüme bağlı scope kayıtlarını yeniden bağlar. Diğer accepted grupların anlam üyeleri ve unresolved adayların ilişkileri korunur. Türkçe canonical cümle kimlikleri, token sırası ve metin değişmez. Eski alignment sürümleri DB’de kalır. Yeni pakette yalnız yeni sürümün kullandığı unit kayıtları bulunur; emekliye ayrılan İngilizce parça önceki sürüm üzerinden izlenebilir.

Public source_key, unit/<sıra>, tam bağlı sentence/<UUID> veya hedefin kendi scalar koordinatlarıyla birebir eşleşen range/<başlangıç>:<bitiş> olabilir. Keyfî dosya yolları kabul edilmez. Yeni aralık formatı denetimde yalnız bağlı target unit’in gerçek koordinatlarıyla eşleşirse geçerlidir.

Gerçek yerel RPC doğrulaması 779 aralığın tamamında geçti. Canlı Türkçe metin kontrolü yalnız ilgili 1.879 cümleye uygulandı; bütün corpus tekrar hash’lenmedi. 129 chapter’ın eski/yeni İngilizce okuyucu çıktısı ham metne birebir geri kuruldu. Önceden incelenmiş yedi chapter’ın RPC çıktısı yalnız üst sürüm kimliği dışında aynı kaldı. Web masaüstü ve Expo-web mobil görünümünde Otuzuncu Söz’ün ayrı başlık/açıklama karşılıkları doğrulandı. Gerçek Android/iOS cihaz testi yapılmadı.

Bu aşamada yerel Supabase, web ve mobil yerel API’leri alignment-7’ye geçirildi. 16 R2 nesnesi yüklendi ve içerikleri yeniden okunarak doğrulandı. Alignment kimliği 872f6f26-24fb-5aee-94dd-566a6db91584, package root 509c0512733b0219451c6da68d28ccea0222dfdcbe5ac47e05ae7e5d598bb045.

O aşamada kalan 16 istisna aşağıdaki successor ile çözüldü. Eski curation ve rapor, o sürümün karar geçmişi olarak değiştirilmeden saklanır.

en-alignment-8, 16 istisnaya ek olarak aynı incelemede bulunan bir başlık penceresini ve iki komşu grubu birlikte ele alır. 19 eski grubun yerini, 10 chapter içindeki 17 düzeltme penceresinde 43 anlam grubu alır.

Sonuç Sayı
İncelenen canonical kaynak cümle 62
Bu pencerelerde kabul edilen kaynak bağlantısı 56
Geri kazanılan eksik accepted bağlantı 27
Yanlış accepted bağı kaldırılan kaynak cümle 3
Açık gerekçeli source-only 6
Açık gerekçeli target-only parça 1
Bu istisna kümesinde ertelenen karar 0
Değişen chapter’larda korunan diğer hover parçası 2.994

Önemli örnekler:

  • Yirmi Sekizinci Mektup’taki erken Fifth Point, Beşinci Nokta: kaydına; daha sonraki FIFTH POINT, Beşinci Nükte kaydına bağlanır. Aynı kelimelerin bulunması tek başına doğru bölümün bulunduğunu kanıtlamaz. İki başlığın komşu cümleleri ve kitap koordinatları ayrı ayrı kullanılır.
  • Yirminci Mektup’ta Altıncı Kelime başlığı ile يُحْيٖى alıntısının İngilizce karşılıkları ayrı canonical cümlelere bağlanır.
  • İşaratü’l-İ’caz’daki meyve örneğinde başlık, yenilen meyvenin yerine yenisinin gelmesi ve sonuç cümlesi iki eski grubun birlikte düzenlenmesiyle ayrılır.
  • İngilizcede önceki Türkçe önermenin sonraki açıklamanın içinde yeniden anlatıldığı kısa aralık ortak anlam grubunda kalır. Bu, dört ayrı birebir eşleşme iddiası değil, açıkça kayıtlı çoktan çoğa bir ilişkidir.
  • Türkçe kaynak yalnız ... içerirken İngilizce baskının ayrıntılı açıklama verdiği parça okunmaya devam eder; olmayan Türkçe çeviri hover’a eklenmez.

Kabul edilmiş kararlar ve sayım data/curated/english/en-alignment-8-window-corrections.json ve yanındaki .report.json içindedir. Önceki pakete uygulama için aynı window builder --predecessor en-alignment-7 ve bu curation ile kullanılır.

Terminal window
node --experimental-strip-types scripts/translations/verify-alignment-windows-local.mjs \
--curation data/curated/english/en-alignment-8-window-corrections.json \
--old-descriptor data/releases/en-alignment-7.json \
--new-descriptor data/releases/en-alignment-8.json \
--report .cache/english-source-first/alignment-windows-8-local.json

Gerçek yerel DB/RPC kontrolü, 62 kaynak metin tanığını ve 17 pencerenin eski/yeni ilişkilerini doğruladı. Değişen 10 chapter’ın ham İngilizce metni birebir geri kuruldu; daha önce tamamı incelenmiş yedi chapter değişmedi. Web masaüstü ve Expo-web mobil görünümünde iki Fifth Point başlığının ayrı karşılıkları doğrulandı; yatay taşma yok. Gerçek Android/iOS cihaz testi yapılmadı.

Bu aşamada yerel Supabase, web ve mobil yerel API’leri alignment-8’e geçti. R2’nin 16 nesnesi public dağıtım adreslerinden okunarak boyut ve içerik özetiyle doğrulandı. Alignment kimliği 148758ec-340f-564c-94b2-f8c8f72bb50e, package root c97cc14959508355d0024bfcfb3b2aa3e34584a8d2ad606286ba9e9371a86845.

Bu istisna listesinin tamamlanması bütün 193 dosyanın semantik olarak tamamlandığı anlamına gelmez. Kalan envanter sınıfları, özellikle yanlış konuma bağlı karşılıklar ve hedefi olup alignment scope’u bulunmayan chapter’lar ayrıca değerlendirilir. İngilizce kaynağı olmayan kısımlarda çeviri üretilmez.

Remote Supabase ve canlı Content API publication henüz güncellenmedi. Production’a geçişte migration, target-render, alignment sürüm zinciri ve Content API publication birlikte ele alınacaktır; eski publication ile yeni fixture karıştırılmaz.

en-alignment-9, daha önce İngilizce metni okunabilen ancak cümle bağlantısı olmayan dokuz canonical chapter’a scope ekler:

  • On Dördüncü, Yirmi Beşinci ve Yirmi Yedinci Mektup’un kısa açıklamaları.
  • On Beşinci, On Sekizinci, Yirmi Yedinci, Otuz İkinci ve Otuz Üçüncü Lem’a’nın kısa açıklamaları.
  • Mektubat’ın sonundaki dua.

Kısa açıklama bu canonical chapter’ın tamamıdır. Başka yerde yayımlandığını söylediği eserin burada tam çevirisi bulunduğu iddia edilmez. was not written ifadesi de gerçek bir karşılıktır: Telif edilmemiştir. cümlesine bağlanır. Eski paired dosyadaki It was not written. ile birebir eşleşmemesi, İngilizce karşılığın olmadığı anlamına gelmez.

Sonuç Sayı
Yeni scope 9
İncelenen canonical kaynak satırı 40
Yeni cümle bağlantısı / anlam grubu 32
Source-only yapısal *** ayıracı 8
Target-only parça 0
Yeni chapter’larda karşılıksız İngilizce boşluk dışı karakter 0

Duada İngilizce baskının iki ifade farkı curation gerekçelerinde saklanır: yayımlayanlar için duada Türkçenin ayrıca saydığı öğrenciler burada açıkça tekrarlanmaz; sonraki genel öğrenci duası kendi cümlesine bağlı kalır. Ayrıca Türkçedeki her bir harfine karşılığında İngilizce each word der. Bu baskı farkları kaynak metni değiştirme veya komşu cümlenin anlamını aktarma yoluyla gizlenmez. Eşleşmenin doğru cümleye bağlanması çevirinin sözcüğü sözcüğüne aynı olduğu iddiası değildir.

Terminal window
node --experimental-strip-types scripts/translations/verify-source-first-local.mjs \
--curation data/curated/english/en-alignment-9-source-first.json \
--old-descriptor data/releases/en-alignment-8.json \
--new-descriptor data/releases/en-alignment-9.json \
--output .cache/english-source-first/local-verification-9.json

Yerel kurulum ve gerçek RPC doğrulaması geçti. Dokuz chapter’ın eski sürümde scope/RPC karşılığının olmadığı, yeni sürümde 32 doğru bağlantıya sahip olduğu ve ham İngilizce metnin birebir korunduğu doğrulandı. Birinci Söz ile Dokuzuncu Şua’nın önceki RPC/gösterim sonuçları değişmedi.

Web’de dua ve was not written hover’ları; Expo-web mobil görünümünde duanın Türkçe karşılık paneli doğrulandı. Yatay taşma yok. Gerçek Android/iOS cihaz testi yapılmadı. Çalışan örnek: /en/letters/prayer.

Yerel Supabase, web, mobil yerel API’leri ve standart kurulum varsayılanı alignment-9 kullanır. R2’de 16 nesne yüklendi ve içerikleri doğrulandı. Alignment kimliği 153bcfbc-57d2-55ff-89c4-aacb9f50b0b2, package root f83cd72bcc4c235bc8923da27ace7893ef082d8ba524eebdfa73b8b231a53537. Remote DB ve canlı Content API bu çalışma sırasında değiştirilmedi.

Tamamı yeniden incelenmiş kapsam artık 16 canonical chapter, 675 kaynak satırı ve 657 anlam grubudur. 662 kaynak satırı bağlıdır; 12 yapısal ayraç/başlık ve bir gerçek karşılıksız soru source-only kalır. Bunlara ek olarak alignment-7/8’in diğer chapter’lardaki sınırlı pencere düzeltmeleri vardır.

Mevcut hedefi olup henüz alignment scope’u olmayan yedi chapter kaldı: Onuncu Söz, On Dokuzuncu Mektup, Emirdağ I/15, Emirdağ II/03, II/06, II/08 ve Hakikat Çekirdekleri. İlk altısının önceki paired dosyaları ve düzeltme raporları vardır; Hakikat Çekirdekleri kaynak cümlelerinin mevcut İngilizce metne bağlanması gerekir. İngilizcesi Hutbe kaynak kitabında kesintisiz bir aralıktadır; bu başka kitapta bulunma durumu çok parçalı chapter anlamına gelmez.

Diğer scope’lardaki kalan sınır adayları ayrıca değerlendirilir. Örneğin eski envanterin farklı konum gösterdiği 23 kaydın incelemesinde 22 mevcut DB bağı doğru bulundu; yanlış olan eski paired satırdı. Bir Emirdağ aralığında ise başlık ile sonraki cümlenin ortak İngilizce karşılığına ikinci cümlenin de bağlanması gerektiği saptandı; sonraki pencere paketine alınacaktır. Bu ayrım, envanterdeki fark sayısını otomatik hata veya otomatik düzeltme sayısı olarak kullanmamak için somut bir nedendir.

en-alignment-10, kalan yedi kesintisiz chapter’a kaynak öncelikli scope ekler. İnceleme mevcut paired dosyalar, önceki düzeltme raporları ve ham İngilizce kitap bağlamıyla yapılmıştır. Türkçe ana satırlar canonical cümle kimliklerine aynı sırada bağlanır; yeni çeviri üretilmez.

Chapter Kaynak satır Anlam grubu Source-only Target-only
Onuncu Söz 1.402 1.184 211 0
On Dokuzuncu Mektup 3.313 3.085 125 3
Hakikat Çekirdekleri 304 296 4 4
Emirdağ I / 15 265 244 19 0
Emirdağ II / 03 484 429 54 6
Emirdağ II / 06 323 253 64 3
Emirdağ II / 08 275 268 5 0
Toplam 6.366 5.759 482 16

5.884 kaynak satırı bağlıdır. source_only, 482 kayıp İngilizce cümle demek değildir: yapısal ayraçlar, mevcut hedef kapsamının dışında kalan son notlar, aynı anlamın başka kaynak satırında zaten bağlandığı tekrarlar ve bağımsız karşılığı gerçekten bulunmayan ifadeler bu üyelik durumundadır. Her birinin gerekçesi curation’da saklanır. Özellikle Onuncu Söz’ün son notları ve On Dokuzuncu Mektup’un ek/dipnot satırları için bu scope’ta yok sonucu, başka İngilizce kaynakta da bulunmadığı iddiası değildir.

  • Onuncu Söz’deki ardışık Arapça ayetlerin İngilizce karşılıkları bir satır kaymıştı. Her ayet kendi canonical ana satırına bağlandı. Yalnız ayet numarası aynı diye sorunun yanında cevabın da mevcut olduğu varsayılmaz.
  • This being the case, as the result of the mentioned evidences geçişi, önceki tasvire değil Madem böyledir, bütün delailin neticesi olarak satırına aittir. Aynı İngilizce paragrafta olmaları bu ayrımı ortadan kaldırmaz.
  • On Dokuzuncu Mektup’ta And don't write a long Sura, just a short one uzun/kısa sure karşıtlığını kuran satıra; But if you can't do this ise sonraki Yoksa cümlesine bağlıdır. Eksik ara önerme komşu anlamla doldurulmaz.
  • Bak! ve devamındaki tasvir, isim ve görev unvanı, iki ayrı dua veya soru ile cevap, karşılıkları ayrılabiliyorsa ayrı tutulur. Tek İngilizce cümle veya ters ifade sırası gereksiz ortak grup üretmez.
  • Hakikat Çekirdekleri’nde 256. kaynak satırının İngilizcesine çevirmen notu girer. İki hedef parçası aynı cümle ve gruba bağlıdır; aradaki notun uydurma karşılığı yoktur. RPC’de 296 grup için 297 hedef parçası dönmesi doğrudur.

Yerel kurulum, yedi chapter’ın bütün kaynak kimlikleri/metinleri, tam RPC aralıkları ve ham okuyucu roundtrip’i üzerinden doğrulandı. Açıklanmamış İngilizce boşluk dışı karakter 0; target-only parçalar ayrıca korunur. Birinci Söz ve Dokuzuncu Şua’nın önceki çıktıları değişmedi.

Terminal window
node --experimental-strip-types scripts/translations/verify-source-first-local.mjs \
--curation data/curated/english/en-alignment-10-source-first.json \
--old-descriptor data/releases/en-alignment-9.json \
--new-descriptor data/releases/en-alignment-10.json \
--output .cache/english-source-first/local-verification-10.json

Web masaüstü/dar ekran hover’ı ve Expo-web karşılık panelinde On Dokuzuncu Mektup’un ayrılan anlamları kontrol edildi. Onuncu Söz’ün geçiş cümlesi de doğru satırı gösterir. Gerçek Android/iOS cihaz testi yapılmadı.

Yerel Supabase ve okuyucuların seçimi artık alignment-10. R2’de 16 nesne yüklendi ve geri okunarak doğrulandı; paket yaklaşık 33,3 MB’dır. Kimlik fb1530fb-56ff-5002-84ce-c1c4e09a2b72, package root 57461616506d911582ee58ce1658d8cf4311b17e469c8e2af814606da3ec02ec. Remote Supabase ve production publication bu kabul sırasında değiştirilmedi.

Toplam 189 alignment scope’u vardır: hedef metni mevcut fakat scope’u olmayan chapter kalmamıştır. Bu, her eski cümle eşleşmesinin yeniden onaylandığı anlamına gelmez. Tam kaynak incelemesi 23 chapter, 7.041 satır ve 6.416 anlam grubu kapsar; diğer bölümlerde ayrıca alignment-7/8 pencere düzeltmeleri bulunur.

Güncellenen offline sınır audit’i 2.004 tekil tanıklı satırda accepted bağlantı olmadığını, 2.231 satırda eski paired tanığından geniş ve 172 satırda farklı aralık bulunduğunu raporlar. Bunlar hata sayısı değildir. Artık incelemeye yedi yeni scope da dahil olduğu için ham sayılar önceki audit ile doğrudan ilerleme yüzdesi olarak karşılaştırılamaz. Düzeltilmiş ayet dizileri ve tamamlanan ana alıntılar, hatalı eski paired dosyaya göre doğal olarak farklı görünür.

Sonraki veri işi, gerçekten eksik veya yanlış sınırları eski incelemeleri tekrarlamadan ayırmak; kapsam dışı son notların mevcut kaynaklardaki yerini belirlemek ve bekleyen Emirdağ ortak-cümle düzeltmesini sonraki pencere paketine almaktır. Remote/API yayını ayrı, tutarlı bir yayın geçişi gerektirir.

Yedi yeni bölümde 405 boş satır kırığı incelendi; 173 yeni, tam tanıklı gösterim düzeltmesi eklendi. Önceki 36 ile birlikte 209 düzeltmenin ham kaynakta tekil, örtüşmesiz ve geçerli olduğu doğrulandı. Bu sayı paragraf sayısı veya çeviri değişikliği sayısı değildir.

Okuyucu düzeltmeleri üç ayrı durumu ayırır:

  • Cümle içindeki basılı sayfa boşluğu, incelenmiş tam metin tanığıyla tek boşluğa dönüşür: have accepted the ve gift of his guidance birleşir.
  • soft_hyphen, yalnız kelimenin baskıda bölünmesinden gelen tireyi kaldırır: con- ve scious, conscious olarak görünür.
  • hyphen_continuation, ismin/terimin parçası olan tireyi korur; yalnız ardından gelen sayfa boşluğunu kaldırır: al-Muttalib, All-Wise.

Son seçenek açıkça işaretlenmiş, tekil bir tanık ve tirenin iki yanında harf gerektirir. Bütün tire veya satır sonlarına uygulanan bir normalizasyon yoktur. Gerçek paragraf, başlık, alıntı ve çevirmen notu sınırları korunur. Örneğin Hakikat Çekirdekleri’ndeki [Tr.] not sonu, sonraki ana cümle parçasına katılmaz. Bu değişiklikler en-reader-presentation-1.json ve ortak reader-core üzerinden web/mobil gösterimine uygulanır; yeni DB/alignment yayını gerektirmez.

On Dokuzuncu Mektup’taki have accepted the gift devamı masaüstü/dar ekran web’de ve Expo-web’de aynı kaynak karşılığıyla doğrulandı. Metro eski haricî JSON önbelleğini kullandığı için --clear ile yeniden başlatıldı. Ortak reader-core tip kontrolü ve 11 odaklı gösterim testi geçti; bu yalnız gösterim değişikliği için corpus/DB yeniden kurulmadı veya tüm-korpus hash taraması tekrarlanmadı.

en-alignment-11, önceki incelemeleri tekrar etmeden 1.948 sınır adayının kararlarını birleştirir. 1.898 düzeltme penceresi 144 chapter’da 3.889 kaynak cümleyi kapsar ve 3.872 anlam grubu üretir. Üç kaynak kaydı ve 20 hedef parça, karşılıkları olmadığı için gerekçeleriyle unresolved tutulur. Bir pencere, bekleyen adayın ayrıca düzenlenmesini gerektirdiği için sonraki işe bırakılır. Bu sayılar bütün chapter’ların yeniden semantik onayı değildir.

İki önemli kaynak hatası da bu pakette çözülür:

  • İşaratü’l-İ’caz’da Türkçe altı nokta açıklaması, eski eşleme dosyasındaki üç mesele başlığına değil, gerçek altı nokta girişine bağlanır.
  • Muhakemat’ta eski İngilizce dosyanın satır kayması, komşu altı accepted grubun birlikte düzenlenmesiyle giderilir. Zira onların mesleğince mümkündür girişi ile Van Gölü/Sübhan Dağı örneği ayrı kaynak sahiplerine döner. Komşu cümlenin parçası yanlışlıkla karşılıksız bırakılmaz.

Türkçe kaynak ile canonical cümle sırası aynı olsa da, eski İngilizce eşleme dosyasının aynı satırındaki anlam yanlış olabilir. Bu nedenle satır numarası, exact hedef veya başarılı derleme tek başına anlam doğruluğu sayılmaz.

Yerel kurulumdan sonra 1.898 pencerenin kaynak kimlikleri, metin tanıkları, eski/yeni RPC karşılıkları ve ham İngilizce roundtrip’i doğrulandı. Değişen chapter’lardaki 38.354 diğer hover parçası ve önceki yedi kontrol chapter’ı korundu. Türkçe core değiştirilmedi; tüm-korpus hash kontrolü tekrarlanmadı.

Terminal window
node --experimental-strip-types scripts/translations/verify-alignment-windows-local.mjs \
--curation data/curated/english/en-alignment-11-window-corrections.json \
--old-descriptor data/releases/en-alignment-10.json \
--new-descriptor data/releases/en-alignment-11.json \
--report .cache/english-source-first/alignment-windows-11-local.json

Yerel paket kimliği 9199b21e-2df1-5d45-8e4b-027639ff4a94, package root 2915d4ff549d5d7735ad6edff5f920ece15ea9983f1f296cfdda84c0f4a9adf5. Toplam 43.242 accepted grup vardır; unresolved kaynak sayısı 9.388’den 8.458’e düşmüştür. Remote DB/production henüz bu sürüme geçirilmemiştir.

Paketin 16 nesnesi R2’ye yüklendi ve indirilerek doğrulandı. Yerel web ve Expo-web okuyucusu bu sürümü kullanır; Muhakemat’taki Van Denizi örneği her ikisinde de yalnız kendi Türkçe cümlesini gösterir. Masaüstü ve dar ekran kontrolünde yatay taşma yoktur. Bu kontrol yeni Android/iOS cihaz testi değildir.

Muhakemat Birinci Makale’de 36 ek cümle-içi sayfa boşluğu, yalnız gösterim curation’ına eklendi. Toplam 245 gösterim düzeltmesi vardır. Yeni 36 tanığın ham kitapta tekil olduğu ve harf/noktalama dizisini değiştirmediği doğrulandı; 12 odaklı reader testi geçti. Lake Van and / Mount Subhan kesintisi web ve Expo-web’de kaldırıldı, hover karşılığı korundu. Ham hedef metni, koordinatları ve DB değişmedi. Birim testleri yerel cache dosyalarına bağımlı değildir.

Kalan çalışma: incelenmiş eksik bağlantıları, bekleyen adayları ve gerçekten mevcut chapter sınırı dışındaki karşılıkları aktarmak. Aynı başlığın veya imzanın başka yerde geçmesi kendi başına ortak çeviri bağı oluşturmaz. Gerçek iç içe anlatım, küçük ve açıkça gerekçelendirilmiş ortak anlam grubuyla temsil edilir.

en-alignment-12, 151 chapter’da 1.056 pencereyi düzenler. 2.381 kaynak cümle tanığı kullanılarak 2.324 anlam grubu üretilmiştir. Önceki grupların bir kısmı değiştirildiği için bu sayı net grup artışı değildir; toplam accepted grup sayısı 43.242’den 45.317’ye çıkar. Bekleyen aday sayısı 181’den 12’ye, unresolved kaynak birimi sayısı 8.458’den 7.129’a iner.

İşlem Pencere Amacı
bind_unresolved 641 Henüz bir adayın sahiplenmediği mevcut karşılığı bağlamak
replace_candidates 164 Bekleyen adayları, gerektiğinde accepted komşularıyla birlikte çözmek
Accepted grup düzeltmesi 235 Yanlış sınır veya kaynak sahibini düzeltmek
extend_scope 16 Ham chapter’da mevcut, eski alignment kapsamı dışındaki karşılığı almak

1.624 eksik-bağ adayının, 253 sahiplik çakışması adayının ve bunlardan ayrı kalan 36 özel durumun kararları birleştirilmiştir. Aynı envanteri kullanan kararlar tek pencerede toplanır; aynı kaynak için ikinci bağlantı üretilmez. İnceleme sonucunda zaten doğru olan kayıtlar değiştirilmez.

Tekrarlanan Reminder, Firstly, Secondly gibi ifadeler chapter’daki ilk eşleşmeye bağlanmaz. Türkçe cümlenin komşuları, doğru İngilizce pasajı belirler. Örneğin Birisi, bağımsız bir başlık olmasa da One shows... içindeki One parçasına bağlanabilir. Buna karşılık başka sayfadaki aynı imza veya başlık, bu kaynak cümlenin karşılığı sayılmaz.

35 kaynak ve 636 hedef parça açık gerekçeli unresolved olarak korunur. 636, çeviri eksikliği sayısı değildir: geniş bir hedef unit bölündüğünde henüz incelenmemiş kalan içerik de bu envanterdedir. Gerçek kaynak yokluğu, henüz incelenmemiş içerik ve zaten doğru ilişki ayrı kararlar olarak raporlanır. Bu paket eski accepted kayıtların tümünün semantik onayı anlamına gelmez.

Yerel kaynak→RPC doğrulaması 1.056 pencerenin tamamında geçti; 41.996 diğer hover parçası ve yedi önceki kontrol chapter’ı korundu. Ham İngilizce metnin okuyucu üzerinden yeniden kurulması da doğrulandı. Türkçe core, cümle/token sıraları, eski release’ler ve ham İngilizce kitaplar değiştirilmedi; reset veya tüm-korpus hash kontrolü yapılmadı.

Terminal window
node --experimental-strip-types scripts/translations/verify-alignment-windows-local.mjs \
--curation data/curated/english/en-alignment-12-window-corrections.json \
--old-descriptor data/releases/en-alignment-11.json \
--new-descriptor data/releases/en-alignment-12.json \
--report .cache/english-source-first/alignment-windows-12-local.json

Kabul edilmiş kararlar ve sayım, data/curated/english/ altındaki en-alignment-12-window-corrections.json ve eşlik eden .report.json dosyasındadır. Bu curation, önceki paket, aynı core ve target3 paketiyle build-alignment-window-release.mjs üzerinden yeniden üretilebilir. Yerel kurulum ve kaynak→RPC doğrulaması tamamlanmıştır. Web ve Expo-web, Altıncı Şua’daki kritik karşılığı doğru Türkçe cümleyle gösterir; masaüstü ve 393 px görünümde yatay taşma yoktur. Bu yeni bir fiziksel cihaz testi değildir. Paketin 16 nesnesi R2’ye yüklenip indirilerek doğrulanmıştır. Canlı API yayını ayrı bir geçiştir; yerel uygulamalar yerel Supabase’e bağlı kalır.

Yayın üretimi sırasında uzun bir bölümün HTTP hizalama isteği 2,5 saniyelik sınıra takıldı. 20260906213000_translation_alignment_query_plan migration’ı, hedef üyeliklerini zaten doğrulanmış source_spans grubundan alır; aynı accepted grup kümesini tekrar birleştirmez. Yeni indeks, veri kopyası veya timeout artışı yoktur.

Yerel ölçümde uzun istek HTTP 500 / 2,52 saniyeden HTTP 200 / 0,55 saniyeye; çok parçalı örnek 0,30 saniyeden 0,066 saniyeye indi. Uzun, kısa, null, çok parçalı ve değişmeyen beş örneğin önceki/yeni JSON’ları birebir aynıdır. Sahiplik, yetkiler, sıralama ve 2500ms sınırı korunmuştur. Bu ölçümler yerel makineye aittir; production gecikmesi garantisi değildir.

7 Eylül 2026 yayını, en-target-render-3 ile en-alignment-12yi birlikte kullanır. Okuma paketi 1.495 nesne / 121.611.919 byte, aynı bağlama bağlı haşiye paketi 299 nesne / 1.509.771 byte içerir. Okuma paketinin tamamı yerel kaynaktan --concurrency 2 ile yaklaşık 65 saniyede üretildi.

Bağlantı Kimlik
Content context 973655af-6695-5de4-ba44-776100dded0c
Content publication 5afdedb82d4ce32be51bc00f1ddeb6b8cc09e73c4ed89fd881d993de2823c943
Notes publication 0f36450f0888cb50b5e04d71b4d54abc03c637de63f98f72f865d72111c7e8d9

Paketler R2’de doğrulandıktan sonra test API’si, canlı API ve web yayımlandı. Canlı API smoke testi katalog, adresler, başlıklar, Latin/Osmanlıca metin, İngilizce mevcut/yok durumları ve HTTP cache davranışını doğruladı. Altıncı Şua, Birinci Söz ve Dokuzuncu Şua’nın ham İngilizcesi ve bütün hover bağlantıları yerel yayın paketiyle birebir karşılaştırıldı; boş ve dolu haşiye yanıtları da kontrol edildi. Canlı web’de Altıncı Şua’nın not equal to Muhammad parçası yalnız kendi Türkçe cümlesini gösterir, sonraki aile cümlesini içermez. Birinci Söz’de hard rock and earth, Dokuzuncu Şua’da from the earth, behold sayfa kırığı olmadan görünür; her ikisinde kaynak popup’ı açılır. İkinci örneğin canonical kaynak cümlesi Arapça alıntıdır; popup bunu Türkçe çeviri uydurmadan aslıyla gösterir.

Bu yayın testi anlam incelemesinin yerine geçmez; incelenmiş paketin gerçekten aynı haliyle sunulduğunu kanıtlar. Canlı API okuma sırasında uzak DB sorgusu çalıştırmaz; sabit R2 yayınını okur. Test API’si ve web’in mevcut erişim koruması değiştirilmedi. Yükleme için açılan geçici R2 anahtarı iş bittikten sonra iptal edildi; anahtar dosyası repoya eklenmedi.

Uzak Supabase’de target-render-3, notes-2, ilgili RPC migration’ları ve alignment-12 kurulumu tamamlandı. Önceki alignment sürümleri insert-only kurulum zinciriyle korunmuştur. Installer’ın sürüm, bağımlılık, üyelik ve aktif yayın doğrulaması geçti. Altıncı Şua, Birinci Söz, Dokuzuncu Şua, 3.085 unit içeren uzun bölüm ve 291 unit içeren çok parçalı bölüm hem SQL hem uzak PostgREST üzerinden yerel RPC ile birebir eşleşti; beş HTTP isteği de 200 döndü.

Kurulum sonrası pg_database_size 7.556.418.707 byte, alignment tablolarının indeksler dahil toplamı 1.634.066.432 byte, saklanan alignment sürümü sayısı 12’dir. Çalışma öncesi gerçek DB boyutu 6.228.470.931 byte idi; artış yaklaşık 1,33 GB’dir. Bunlar veritabanı boyutlarıdır, Supabase’in tahsis ettiği disk kapasitesi veya WAL/loglar dahil disk kullanım yüzdesi değildir. Reset, disk büyütme, eski sürüm silme veya Türkçe core üzerinde veri değişikliği yapılmadı.