Ana içeriğe geç
SubtitleMatrix

Satır sonlarını değiştir

Metin ve stilKodlamayı ve BOM’u düzelt
Ya da altyazı metnini yapıştırın

Seçenekler

Dosyadaki her satır ya bir görünmez karakterle (LF) ya da iki taneyle (CRLF) biter. Oynatıcılar, düzenleyiciler ve altyazı araçları ikisini de okur, bu yüzden bir altyazı dosyasının ters davranmasının nedeni neredeyse hiç bu değildir — nedeni olduğu iki durum, diğerini reddeden bir derleme hattı ya da katı bir ayrıştırıcı ile, satır sonları farklı olduğu için her satırı değişmiş gösteren bir diff aracıdır. Burada varsayılan LF’tir, çünkü Unix, macOS ve web onu kullanır ve çünkü zaten LF’li bir dosyaya dokunulmaz. CRLF’yi seçmek mevcut iki tür satır sonunu da dönüştürür, böylece karışık bir dosya tutarlı çıkar.

Zamanlamaların hangi kare hızında sayıldığı. Format sayfalarında MicroDVD’nin ihtiyaç duyduğu şey budur, çünkü zamanlamayı kare numarası olarak saklar. Kare hızı sayfalarında ise dosyanın hangi hıza göre zamanlandığı — altyazının hazırlandığı sürüm — ve sayfanın ikinci kutusu altyazıyı birlikte kullanacağınız videonun hızını alır. 23,976, 24, 25, 29,97, 30, 50, 59,94 ve 60 yaygın olanlardır. Yanlış vermek tüm zaman çizelgesini kaydırır; kare hızı sayfalarında ise sabit bir miktar yerine bir oran kadar kaydırır.

Satır sonu, bir satırı bitiren karakter ya da karakter çiftidir ve olağan kullanımda iki tanesi vardır. Unix sistemleri satırı tek karakterle, LF ile bitirir; Windows iki karakterle, önce CR sonra LF. İkisi ekranda aynı görünür ve altyazı oynatıcıları ikisini de aynı biçimde okur; bu yüzden bu, aşağı akışta biri önemseyene kadar görünmez kalan farklardan biridir.

Önemseyenler şunlardır: sürüm denetimi, çünkü satır sonları değiştiği için bir dosyanın her satırı değişmiş görünebilir; bir satırın son karakterini kırpan ve yeni satır beklerken elinde başıboş bir satır başı kalan derleme betikleri ve hatları; dosyayı LF ile bölüp son alanın sonuna yapışmış bir satır başıyla kalan araçlar; ve iki biçimden birini adlandıran her teslim şartnamesi. Başka bir dosyayla karşılaştırılacak ya da başka biriyle birleştirilecek bir altyazı dosyası, satır sonları arayüzünün parçası olan bir dosyadır.

Sayfa, ürettiği şey konusunda bilinçli olarak tek biçimlidir. Karışık satır sonlu bir dosya — bazı satırlar Windows’ta düzenlendiği için CRLF, bazıları başka her yerde düzenlendiği için LF — seçtiğiniz biçimde tamamen çıkar, çünkü sayfa önce satır sonlarını LF’ye normalleştirir ve sonra sizin seçiminizi uygular. Bu, zaten doğru olan satır sonlarını dönüştürüp gerisini bırakmakla aynı şey değildir: bu dosya hangi biçimde sorusunun cevabının hangi satıra baktığınıza bağlı olmaktan çıkması demektir ve bir betik için işe yarayan tek cevap budur.

Çıplak satır başı, yani OS X öncesi Mac’in satır sonu, da geri kalanla birlikte ele alınır. Artık kimse onu seçmiyor ama dosyalar hâlâ onu taşıyarak geliyor ve satırları böyle biten bir dosya, yalnızca LF arayan her araç için tek satırdır. Önce normalleştirmek, o dosyaların tek bir dev replik olarak değil doğru biçimde çıkması demektir.

Bu sayfadaki iki bölme, bu ailede farkın doğrudan göründüğü tek yerdir: satır sonu gerçek bir karakterdir ve satırları çift aralıklı gibi gösteren bir görüntüleyicide öyle görünen dosya, CRLF taşıyan bir dosyadır. On iki formatın hepsi kabul edilir, çünkü satır sonu altyazı formatının değil metnin özelliğidir — düz bir transkriptin de satırları vardır. Hiçbir şey yüklenmez ve dosya tarayıcınızda okunur, değiştirilir ve yazılır.

Örnekler

Unix dosyasını Windows satır sonlarına dönüştürme

Girdi

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Çıktı

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Her satır sonu iki karakter oluyor, replikler arasındaki boş satır dahil: o boş satır da bir satır sonudur ve onu atlayan bir dönüştürme, replik ayırıcısı hâlâ çıplak LF olan bir dosya bırakırdı. Beklenen metin satır sonlarını CR LF çiftleri olarak açıkça yazıyor, böylece sayı doğrudan okunabiliyor; dosyada başka hiçbir şey yer değiştirmedi.

Windows dosyasını Unix satır sonlarına geri dönüştürme

Girdi

1
00:00:01,000 --> 00:00:02,000
The room is dark.

Çıktı

1
00:00:01,000 --> 00:00:02,000
The room is dark.

Görünür sonucu olan yön. Başıboş bir satır başı taşıyan dosya, bazı düzenleyicilerde her satırdan sonra boş bir satır varmış gibi görünür, bir kabuk hattında ise son alanın sonuna yapışmış bir satır başı olarak. Video, zamanlamalar ve metin iki dosyada da aynıdır; fark her satırın sonundaki bir karakterdir ve bu, onu kaldıran yöndür.

İki makinede düzenlenmiş, tek biçime getirilmiş dosya

Girdi

1
00:00:01,000 --> 00:00:02,000
Mixed endings.

2
00:00:03,000 --> 00:00:04,000
Second.

Çıktı

1
00:00:01,000 --> 00:00:02,000
Mixed endings.

2
00:00:03,000 --> 00:00:04,000
Second.

Aynı dosyaya iki makinede dokunulmuş: bazı satırlar CRLF, bazıları LF ile bitiyor ve bir replik ayırıcısı her iki biçimde yazılmış. Çıktı tek biçimlidir ve mesele de budur — dosya artık hangi satırı okuduğunuza göre farklı bir anlam taşımaz. Saf bir bul ve değiştir bu durumu iki yönde de yanlış yapar: bir yönde LF satırlarını olduğu gibi bırakır, diğer yönde çift satır başı üretir.

Sık sorulan sorular

Bir altyazı dosyasının hangi satır sonlarını kullandığını nasıl görebilirim?

Çoğu düzenleyicide satır sonu biçimi durum çubuğunda LF, CRLF ya da karışık olarak gösterilir. Bir kabuktan, CRLF ile biten satırlar, denetim karakterlerini görünür kılan bir araçla bakıldığında her satırın sonunda bir satır başı gösterir. Doğrudan sınama, satırın sonundaki baytlara bakmaktır: tek bir 0A LF’dir, 0D 0A çifti ise CRLF’dir.

Bu sayfa karışık satır sonlu bir altyazı dosyasına ne yapar?

Hepsini aynı hâle getirir. Dosya önce LF’ye normalleştirilir ve sonra seçtiğiniz biçime dönüştürülür, bu yüzden bazı satırları bir biçimde bazıları diğerinde biten bir dosya kısmen dönüştürülmüş değil tamamen tek biçimli çıkar. Dosyalar bu duruma birden fazla makinede düzenlenerek girer ve karışım, dosyanın başka bir kopyasıyla karşılaştırılmasını okunamaz kılan şeyin ta kendisidir.

Satır sonları altyazı zamanlarını ya da replik metnini değiştirir mi?

Hayır. Replikler, numaraları, başlangıç ve bitiş zamanları ve içlerindeki sözcükler öncesinde ve sonrasında aynıdır; değişen, her satırın sonundaki bir ya da iki karakterdir. Bir oynatıcı iki dosyayı da aynı biçimde okur; bir teslim gereksinimi için altyazıların kendisi hakkında endişelenmeden bu dönüştürmeyi yapabilmenizin nedeni de budur.

Altyazı satır sonlarını LF’ye mi CRLF’ye mi dönüştürmeliyim?

Önünüzdeki bir şey CRLF adlandırmıyorsa LF’ye. Unix araçlarının, çoğu derleme hattının ve WebVTT şartnamesinin beklediği budur ve dosyayı satır başına bir bayt kısaltır. Bir teslim şartnamesi ya da yalnızca Windows’ta çalışan bir araç istiyorsa CRLF seçin ve seçimin genel değil dosya başına olduğunu unutmayın: tek başına teslim edilen bir altyazı dosyası projenin geri kalanından farklı olabilir.

CRLF’ye dönüştürmek altyazılar arasındaki boş satırı da neden değiştirir?

Çünkü o boş satır bir satırdır ve sonu da herhangi bir satır sonudur. SRT replikleri boş bir satırla ayırır, bu yüzden CRLF’ye dönüştürülmüş ve replik ayırıcısı çıplak LF kalmış bir dosyada tek biçimli bir dosyanın ortasında farklı türde tek bir satır sonu olurdu — bu sayfanın ortadan kaldırmak için var olduğu karışımın ta kendisi. Aynısı dosyanın son satırı için de geçerlidir.

Eski Mac’in tek satır başı karakteri de dönüştürülür mü?

Evet. Satırları çıplak bir satır başıyla biten, yani OS X öncesi Mac OS’un kullandığı biçimdeki bir dosya da geri kalan her şeyle birlikte normalleştirilir, bu yüzden tek uzun bir replik olarak kalmak yerine seçtiğiniz biçimde çıkar. Panelde CR seçeneği yoktur, çünkü artık kimse dosyaları böyle yazmıyor, ama zaten o biçimde olan dosyalar doğru okunur ve yeniden yazılır.

İlgili araçlar