Eén taal uit tweetalige ondertitels
Of plak ondertiteltekst
Opties
Een tweetalig bestand bevat normaal twee schriftsystemen — Latijns boven Chinees, Japans boven Koreaans — en dat is wat de standaard leest: de letters van elke regel bepalen bij welk bestand ze horen, en de taal die het eerst in het bestand voorkomt wordt het eerste bestand. Het is geen gok naar betekenis, alleen naar schrift, dus het verwisselt nooit welke kant welke is zodra het de eerste regel heeft gezien. Wat het niet kan, is twee talen onderscheiden die hetzelfde alfabet delen. Een Engels bestand tegen een Spaans, of een Russisch tegen een Oekraïens, leest als één schriftsysteem — en zo ook een gewoon eentalig bestand waarvan de lange regels naar een tweede rij zijn omgebroken, wat het gangbare geval is en de reden dat deze lezing bewust voorzichtig is. Wanneer elke regel van elk blok als hetzelfde schriftsysteem leest, komt er niets uit: het bestand gaat ongewijzigd door en de run wordt gemeld als zonder wijziging. Dat is het signaal om in plaats daarvan de regelpositie te kiezen. Regelpositie kiezen maakt dat de regel voor elk blok: de eerste regel van elk blok gaat naar het eerste bestand en de rest naar het tweede. Dat past bij een bestand waarvan de twee talen altijd op dezelfde regels staan, en het is de enige manier om een paar te splitsen dat hetzelfde alfabet deelt — maar bij een bestand waar de volgorde wisselt, verdeelt het de verkeerde regels, en anders dan de standaard zegt het niet dat het dat heeft gedaan.
Deze pagina behoudt één taal en laat de andere weg, en dit is welke. De eerste taal betekent de taal die het eerst in het bestand voorkomt — de eerste regel van het eerste blok met letters erin, dus bij een bestand met het origineel boven de vertaling is het het origineel. De andere taal betekent al het overige. Wat je ook kiest, de andere taal is uit het resultaat verdwenen: haar regels staan helemaal niet in het bestand, en een blok dat alleen die taal bevatte staat er ook niet in. Wat de run je daarna vertelt, is wat er over is — hoeveel blokken eruit kwamen, en de lijst van blokken waarvan de tekst is veranderd. Aan je eigen bestand op schijf wordt niets geschreven, dus het origineel staat er nog als je de verkeerde kant hebt gekozen. Wil je beide talen, elk in een eigen bestand dat je apart kunt aanleveren, dan is de pagina die het bestand in tweeën splitst de juiste — die behoudt alles en geeft je een zip met beide.
In welke beeldsnelheid de tijden worden geteld. Op de formaatpagina’s is dit wat MicroDVD nodig heeft, want het slaat tijden op als framenummers. Op de beeldsnelheidspagina’s is het de snelheid waartegen het bestand getimed is — de versie waarvoor de ondertitels gemaakt zijn — en het tweede vak op de pagina neemt de snelheid van de video die je gaat gebruiken. 23,976, 24, 25, 29,97, 30, 50, 59,94 en 60 zijn de gebruikelijke. Een verkeerde waarde verschuift de hele tijdlijn, en op de beeldsnelheidspagina’s verschuift ze die met een verhouding in plaats van met een vast bedrag.
Deze pagina houdt één taal over uit een tweetalig ondertitelbestand. Je kiest of je de eerste taal wilt bewaren of de andere, en de uitvoer is een gewoon ondertitelbestand met alleen die taal. De tijden en de bloknummers van het bronbestand blijven staan, dus de uitvoer past precies op dezelfde video als het origineel.
Welke taal de eerste is, bepaalt de pagina aan het schrift van de regels: de eerste taal die in het bestand voorkomt, geldt als de eerste, en de andere als de tweede. Bij de gebruikelijke combinatie van een West-Europese en een Oost-Aziatische taal is dat eenduidig. Bij twee talen in hetzelfde schrift is het dat niet, en dan kies je de optie die op regelpositie werkt: de eerste regel van elk blok is de eerste taal en de tweede regel de tweede, wat een afspraak is in plaats van een analyse.
Een regel zonder eigen taal — een lege regel, of een regel die alleen een getal of een symbool bevat — volgt de eerste taal. Dat is de veilige keuze: zulke regels horen meestal bij de regel erboven en zouden anders in het verkeerde bestand belanden of helemaal verdwijnen. Regels die je weglaat, worden niet als verlies geteld, want je hebt zelf om het weglaten gevraagd; het is geen gegeven dat kwijtraakt maar een keuze die je maakt.
Vraag je een taal op die niet in het bestand voorkomt, dan krijg je een uitvoer met nul blokken en een melding dat er geen blokken zijn, in plaats van een foutmelding. Dat is het eerlijke antwoord: het bestand is geldig, er is alleen niets van die taal in te vinden. De tien formaten die met blokken en tijden werken kunnen meedoen — SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON en CSV — plus MicroDVD, omdat er maar één framerate in het spel is. LRC en platte tekst hebben geen blokken om uit te kiezen en vallen af. Er wordt niets geüpload.
Voorbeelden
De eerste taal bewaren
Invoer
1
00:00:01,000 --> 00:00:03,000
Good morning.
早上好。
2
00:00:05,000 --> 00:00:07,000
How are you?
你好吗?
Uitvoer
1
00:00:01,000 --> 00:00:03,000
早上好。
2
00:00:05,000 --> 00:00:07,000
你好吗?
Elk blok had een Engelse en een Chinese regel, en de uitvoer houdt de Engelse over. De tijden, de bloknummers en de structuur zijn die van het bronbestand; alleen de tweede regel van elk blok is weg. Dit is de vorm die je wilt wanneer je een tweetalig bestand hebt ontvangen en maar één taal nodig hebt voor je eigen speler of je eigen controle.
De andere taal bewaren
Invoer
1
00:00:01,000 --> 00:00:03,000
Good morning.
Buenos días.
2
00:00:05,000 --> 00:00:07,000
How are you?
¿Cómo estás?
Uitvoer
1
00:00:01,000 --> 00:00:03,000
Buenos días.
2
00:00:05,000 --> 00:00:07,000
¿Cómo estás?
Dezelfde invoer, maar nu blijft de Chinese regel over en verdwijnt de Engelse. De blokken en tijden zijn identiek aan het eerste voorbeeld; alleen de taal is anders. Dat de twee uitvoerbestanden dezelfde structuur hebben, is het punt: je kunt dezelfde video met de ene of de andere taal bekijken zonder dat de timing verschuift, en je kunt ze later weer samenvoegen als je dat wilt.
Een taal die niet in het bestand staat
Invoer
1
00:00:01,000 --> 00:00:03,000
Good morning, everyone.
Welcome back to the show.
2
00:00:05,000 --> 00:00:07,000
Today we are talking about
subtitle formats.
Uitvoer
(no cues)
Er is om een taal gevraagd die in dit bestand niet voorkomt, dus de uitvoer heeft nul blokken en de melding zegt dat er geen blokken zijn. Dat is geen fout: het bestand is geldig en de bewerking is uitgevoerd, er was alleen niets van die taal te vinden. De melding is er zodat je niet met een leeg bestand blijft zitten zonder te weten of de pagina iets heeft gedaan of is gestopt.
Veelgestelde vragen
Hoe bepaalt de pagina welke van de twee talen de eerste is?
Aan het schrift van de regels: de eerste taal die in het bestand voorkomt, geldt als de eerste en de andere als de tweede. Bij een combinatie van Latijns schrift en een Oost-Aziatisch schrift is dat eenduidig. Bij twee talen in hetzelfde schrift kan de pagina het niet aan de tekst zien, en dan kies je de optie die op regelpositie werkt, waarbij de eerste regel van elk blok als de eerste taal geldt. Dat is een afspraak die klopt zolang je bronbestand die volgorde aanhoudt.
Wat gebeurt er met regels die geen duidelijke taal hebben?
Ze volgen de eerste taal. Dat geldt voor lege regels, voor regels met alleen een getal of een symbool, en voor regels die te kort zijn om een schrift aan te herkennen. De aanname is dat zo’n regel bij de regel erboven hoort en dus dezelfde taal heeft; hem in het andere bestand zetten of weglaten zou een stukje tekst op de verkeerde plek achterlaten. Is dat voor jouw bestand niet juist, dan is de optie op regelpositie de betrouwbaardere keuze.
Wat gebeurt er wanneer ik een taal vraag die niet in het bestand voorkomt?
Je krijgt een geldig ondertitelbestand met nul blokken, en een melding dat er geen blokken zijn. Dat is geen foutmelding, omdat de bewerking is uitgevoerd en het bestand geldig is; er was alleen niets van die taal te vinden. De melding maakt het verschil tussen een leeg resultaat door een verkeerde keuze en een pagina die ergens halverwege is gestopt, en dat verschil is de moeite van het melden waard.
Wordt de taal die ik weglaat als verlies geteld?
Nee. Je hebt zelf om het weglaten gevraagd, dus het is een keuze in plaats van iets wat kwijtraakt. Het verliesoverzicht gaat over gegevens die de bewerking niet kon bewaren, zoals opmaak die het dooformaat niet kent of tekens die een codering niet kan voorstellen. Een taal weglaten is een opdracht die is uitgevoerd, en de melding gaat over hoeveel blokken er zijn overgebleven in plaats van over wat er weg is.
Blijven de tijden en bloknummers gelijk aan het bronbestand?
Ja. Elk overgebleven blok houdt zijn begintijd, eindtijd en nummer uit het bronbestand, ook wanneer er blokken zijn weggevallen omdat ze alleen in de andere taal bestonden. Daardoor past de uitvoer precies op dezelfde video als het origineel, en kun je hem later weer met de andere taal samenvoegen op tijd zonder dat er iets verschuift. Er wordt niets hernummerd en er wordt geen tijd herberekend.
Welke formaten ondersteunt het overhouden van één taal?
SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON en CSV kunnen allemaal, en MicroDVD ook, omdat de bewerking binnen één bestand gebeurt en er dus maar één framerate in het spel is. LRC en platte tekst vallen af: LRC heeft geen blokken met begin- en eindtijden in de gebruikelijke zin, en platte tekst heeft helemaal geen tijden, dus er is geen blok om een taal uit te selecteren. De uitvoer staat in hetzelfde formaat als de invoer.