Jak vymazat část textu v jiném jazyce ze souboru? Vyřešeno

...

Moderátor: Mods_senior

bluenite
Level 2
Level 2
Příspěvky: 212
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod bluenite » 01 lis 2021 23:10

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

Reklama
zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 10910
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod zeus » 02 lis 2021 09:56

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: 65
Registrován: červenec 21
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod Serg01 » 02 lis 2021 15:11

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: 212
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod bluenite » 02 lis 2021 17:43

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 19 x

Serg01
Level 1
Level 1
Příspěvky: 65
Registrován: červenec 21
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod Serg01 » 02 lis 2021 20:59

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 18 x

bluenite
Level 2
Level 2
Příspěvky: 212
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Jak vymazat část textu v jiném jazyce ze souboru?  Vyřešeno

Příspěvekod bluenite » 03 lis 2021 22:20

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.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Otravna reklama zabirajici cast obrazovky Příloha(y)
    od petr22 » 20 zář 2023 14:05 » v PC-HELP - připomínky k fóru
    29
    12286
    od Ltb Zobrazit poslední příspěvek
    07 říj 2023 00:11
  • Outlook - složky v AJ, nelze vymazat Příloha(y)
    od huklorcz » 15 bře 2024 22:20 » v Kancelářské balíky
    5
    948
    od mmmartin Zobrazit poslední příspěvek
    15 bře 2024 23:52
  • Outlook - složky v AJ, nelze vymazat Příloha(y)
    od janakailana » 03 bře 2024 08:21 » v Kancelářské balíky
    6
    886
    od janakailana Zobrazit poslední příspěvek
    03 bře 2024 11:16
  • Převod formatovaného textu na normalní.
    od BigSandy » 26 kvě 2023 07:27 » v Vše ostatní (sw)
    3
    1626
    od BigSandy Zobrazit poslední příspěvek
    26 kvě 2023 09:49
  • Ilustrator 2020 - problém textu v křivce Příloha(y)
    od showpayne » 13 srp 2023 17:50 » v Design a grafické editory
    4
    2069
    od Grander Zobrazit poslední příspěvek
    14 srp 2023 14:44

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

Kdo je online

Uživatelé prohlížející si toto fórum: DotNetDotCom.org [Bot] a 1 host