Jak vymazat část textu v jiném jazyce ze souboru?

...

Moderátor: Mods_senior

Zamčeno
bluenite
Level 2
Level 2
Příspěvky: 216
Registrován: 18 kvě 2006 21:43
Bydliště: Praha8

Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od bluenite »

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
Přílohy
ss111.jpg
zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 11148
Registrován: 16 úno 2012 10:56
Bydliště: Pankrac

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od zeus »

Pochybuji, kdyz je ten caj takhle nepravidelne rozsypany.
Jo, kdyby stacilo mazat kazdy paty radek...
Prazaci jo ty se maj, az kdyz si me zavolaj..
Serg01
Level 1
Level 1
Příspěvky: 66
Registrován: 13 črc 2021 23:02

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od Serg01 »

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:

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\n
Replace with:

Kód: Vybrat vše

$1
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:

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
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í :D
bluenite
Level 2
Level 2
Příspěvky: 216
Registrován: 18 kvě 2006 21:43
Bydliště: Praha8

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od bluenite »

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.
Přílohy
[SubtitleTools.com] North.America.E06.Revealed.1080p.BluRay.x264-WiKi.zip
(77.84 KiB) Staženo 46 x
Serg01
Level 1
Level 1
Příspěvky: 66
Registrován: 13 črc 2021 23:02

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od Serg01 »

Here.

Š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 znaky
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:

Kód: Vybrat vše

\n[^\x00-\x7F].+\n -> non-ASCII znak na začátku řádku

Kód: Vybrat vše

\n.+[^\x00-\x7F]\n -> non-ASCII znak na konci řádku
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ů)

Kód: Vybrat vše

\n.*[^\x00-\x7F].*\n
A nemusel bych to nechat prohledávat 3x :D
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:
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,
Šlo by to takové výskyty najít a odstranit dalším regexpem, ale pak se rozbije číslování (po 9 bude najednou 12).
A tím se už fakt dostáváme k původnímu dotazu - nějký program který by opravil i číslování :D
Přílohy
[SubtitleTools.com] North.America.E06.Revealed.1080p.BluRay.x264-WiKi-EN-only.zip
(21.31 KiB) Staženo 39 x
bluenite
Level 2
Level 2
Příspěvky: 216
Registrován: 18 kvě 2006 21:43
Bydliště: Praha8

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvek od bluenite »

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.
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • USB-C hub nefunguje na jednom ASUS notebooku s Thunderbolt 4, na jiném ano
    od Atjov1 » » v Problémy s hardwarem
    10 Odpovědi
    9906 Zobrazení
    Poslední příspěvek od Atjov1
  • Blokování stahovaných souborů
    od Riviera kid » » v Windows 11, 10, 8...
    10 Odpovědi
    10935 Zobrazení
    Poslední příspěvek od Riviera kid
  • Velikost souboru a složek na disku
    od L.L » » v Vše ostatní (sw)
    5 Odpovědi
    8995 Zobrazení
    Poslední příspěvek od L.L

Zpět na „Vše ostatní (sw)“