Potřebuji upravit jeden titulkový soubor (původně *.ass), který je dvojjazyčný – EN+Korejština, viz screen.
Ten druhý bych potřeboval dát pryč. Existuje na to nějaký automatizovaný postup, místo ručního mazání? Program, nebo něco jiného třeba?
Díky za radu
Petr
Jak vymazat část textu v jiném jazyce ze souboru?
Moderátor: Mods_senior
Re: Jak vymazat část textu v jiném jazyce ze souboru?
Pochybuji, kdyz je ten caj takhle nepravidelne rozsypany.
Jo, kdyby stacilo mazat kazdy paty radek...
Jo, kdyby stacilo mazat kazdy paty radek...
Prazaci jo ty se maj, az kdyz si me zavolaj..
Re: Jak vymazat část textu v jiném jazyce ze souboru?
Jestli je korejská verze (i když tohle spíš vypadá jako kanji, korejština má jiné písmo, ne?) vždy pod časem ve videu, tak by stačil Notepad++, funkce vyhledat a nahradit (Ctrl + H), a regulérní výraz, např.:
Find what:
Replace with:
je potřeba vybrat "Search mode" jako "Regular expression", a nezaškrtávat ". matches newline" hned vedle toho, jen nevím jak to bude přeložené v české verzi Notepadu++
Odstraní každý řádek, který následuje po:
kde # představuje jakoukoliv číslici
Snad tam nejsou na konci řádků žádné mezery, jinak by to tenhle regulerní výraz nenašel
A místo \r\n možná bude stačit jen \n (záleží jestli ten soubor byl vytvořený ve windowsu nebo v linuxu)
Btw, kdyby jsi to opravdu chtěl zkusit, tak doporučuji nejdřív vytvořit kopii, a hrát si s tou kopií
Find what:
Kód: Vybrat vše
(\d+\r\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}\r\n)(.+)\r\nKód: Vybrat vše
$1Odstraní každý řádek, který následuje po:
Kód: Vybrat vše
# (jakýkoliv počet cifer až do konce řádku)
##:##:##,### --> ##:##:##,###
(tento řádek bude odstraněn)
následující řádek zůstane
Snad tam nejsou na konci řádků žádné mezery, jinak by to tenhle regulerní výraz nenašel
A místo \r\n možná bude stačit jen \n (záleží jestli ten soubor byl vytvořený ve windowsu nebo v linuxu)
Btw, kdyby jsi to opravdu chtěl zkusit, tak doporučuji nejdřív vytvořit kopii, a hrát si s tou kopií
Re: Jak vymazat část textu v jiném jazyce ze souboru?
jojo mýlka, není to korea ale čína...
Každopádně by to snad fungovalo, ale právě tady není pravidelnost vymazání každěho x řádku. Někde je řádek pouze en...
viz dva soubory v příloze - originál ass před konverzí a pak ten konvertovaný srt, který se blíží více mému použití.
Zbývá ruční mazání, což mě přivedlo k původnímu dotazu.
Každopádně by to snad fungovalo, ale právě tady není pravidelnost vymazání každěho x řádku. Někde je řádek pouze en...
viz dva soubory v příloze - originál ass před konverzí a pak ten konvertovaný srt, který se blíží více mému použití.
Zbývá ruční mazání, což mě přivedlo k původnímu dotazu.
- Přílohy
-
- [SubtitleTools.com] North.America.E06.Revealed.1080p.BluRay.x264-WiKi.zip
- (77.84 KiB) Staženo 46 x
Re: Jak vymazat část textu v jiném jazyce ze souboru?
Here.
Šlo to celkem jednoduše tímto regexpem (zdroj zde):
Ten našel a odstranil každý řádek, který obsahoval "non-ASCII" znak.
Ale musely tam být minimálně 3 znaky, jelikož některé řádky měly jen jedno nebo dva čínské znaky, tak to bylo potřeba projet celý ještě jednou těmito regexpy:
Ale teď mě napadá, že možná stačilo místo kvantifikátoru plusu (minimálně jeden odpovídající znak) použít u tečky (jakýkoliv znak) jako kvantifikátor hvězdičku (0 až neomezeně odpovídajících znaků)
A nemusel bych to nechat prohledávat 3x 
Ty tečky tam jsou proto, že občas byly na řádku nejen všechno čínské znaky, ale například čísla, která už jsou ASCII znaky.
Každopádně teď tam vznikly občas časy, pro které není žádný text, nevím co to udělá v přehrávači.
Například:
A tím se už fakt dostáváme k původnímu dotazu - nějký program který by opravil i číslování
Šlo to celkem jednoduše tímto regexpem (zdroj zde):
Kód: Vybrat vše
\n.+[^\x00-\x7F].+\n -> non-ASCII znak kdekoliv na řádku, ale minimálně 3 znakyAle musely tam být minimálně 3 znaky, jelikož některé řádky měly jen jedno nebo dva čínské znaky, tak to bylo potřeba projet celý ještě jednou těmito regexpy:
Kód: Vybrat vše
\n[^\x00-\x7F].+\n -> non-ASCII znak na začátku řádkuKód: Vybrat vše
\n.+[^\x00-\x7F]\n -> non-ASCII znak na konci řádkuKód: Vybrat vše
\n.*[^\x00-\x7F].*\nTy tečky tam jsou proto, že občas byly na řádku nejen všechno čínské znaky, ale například čísla, která už jsou ASCII znaky.
Každopádně teď tam vznikly občas časy, pro které není žádný text, nevím co to udělá v přehrávači.
Například:
Šlo by to takové výskyty najít a odstranit dalším regexpem, ale pak se rozbije číslování (po 9 bude najednou 12).9
00:00:31,920 --> 00:00:34,520
and its most spectacular.
10
00:00:58,030 --> 00:01:04,330
11
00:01:07,330 --> 00:01:10,330
12
00:01:35,230 --> 00:01:39,260
Day 1, filming in Idaho's Pioneer Mountains,
A tím se už fakt dostáváme k původnímu dotazu - nějký program který by opravil i číslování
- Přílohy
-
- [SubtitleTools.com] North.America.E06.Revealed.1080p.BluRay.x264-WiKi-EN-only.zip
- (21.31 KiB) Staženo 38 x
Re: Jak vymazat část textu v jiném jazyce ze souboru?
dobrá duše mi poslala verzi en titulkú bez tohoto mixu, takže problémek vyřešen.
díky moc za všechny reakce
serg01 zvlášť, za ty 'non-ASCII znak' to je to co lze použít nejspíš i pro jiné případy. šikovná hlava.
díky moc za všechny reakce
serg01 zvlášť, za ty 'non-ASCII znak' to je to co lze použít nejspíš i pro jiné případy. šikovná hlava.
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 10 Odpovědi
- 9875 Zobrazení
-
Poslední příspěvek od Atjov1
-
- 10 Odpovědi
- 10808 Zobrazení
-
Poslední příspěvek od Riviera kid
-
- 5 Odpovědi
- 8923 Zobrazení
-
Poslední příspěvek od L.L



