[PYTHON? EXCEL?] Text - najít a nahradit [VYŘEŠENO]

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod vladimir 4. 8. 2019 10:17

Ahoj všichni,
obracím se s prosbou o radu.
Jelikož anglicky moc nerozumím mluvenému slovu, nechal jsem si pomocí Google překladače přeložit titulky k mému oblíbenému seriálu (Australský Survivor) s tím, že mi i ten krkolomný překlad pomůže.
Problém je ten, že mi překladač poškodil časování v .srt titulcích.
Původně například
Kód: Vybrat vše
00:00:13,571 -> 00:00:15,670
, po překladu například
Kód: Vybrat vše
00:00:13,571 -> 00:00:15 670
Rozdíl je v té čárce, kterou na první pohled náhodně na stovkách míst nahradil mezerou. Tedy bych potřeboval nějakým způsobem vyhledat řetězce "číslo mezera číslo" a nahradit je řetězcem "stejné_číslo čárka stejné_číslo".
Má někdo nápad, jak na to? Třeba v Pythonu, ale nebráním se ničemu, ani třeba makru Excelu.

(Microsoft word a OpenOffice umí najít "libovolné_číslo mezera libovolné_číslo", ale nahradit "původními" čísly to neumí (alespoň si to myslím). Vyhledávat "0 0" "0 1" atd je otročina, je to 100 kombinací. Uvažoval jsem vyhledat "číslo mezera" a nahradit to "číslo čárka" a pak "čárka pomlčka" nahradit "mezera pomlčka", (dohromady 20 nahrazení) ale to taky není moc pohodlné, zvlášť, kdyby se to muselo dělat pro každý díl zvlášť.)
Naposledy upravil vladimir dne 4. 8. 2019 12:59, celkově upraveno 1
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod Nargon 4. 8. 2019 11:40

Já bych to udělal v PSPadu pomocí regulárních výrazů.
Najít: ([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{3}) -> ([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{3})
Nahradit: $1:$2:$3,$4 -> $5:$6:$7,$8
https://ctrlv.cz/TxAJ

Případně by to asi šlo i linuxáckým SEDem, ale s tím dělat neumím :)
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod Emil Pastelka 4. 8. 2019 12:44

Nejlepší řešení problému je ho rovnou ani nevytvářet. Pokud máte dokument určitého typu, překládejte jej jako dokument a ne jako volný text.
Takový typ překladu umí Google Translator Toolkit - https://translate.google.com/toolkit
Potřebujete účet Google a přihlášení.

1 - zvolte NAHRÁT
2 - vyberte soubor SRT a nastavte jeho původní jazyk
3 - zvolte cílový jazyk překladu (není-li v nabídce, vyhledejte v dialogu)
4 - Další
5 - nabídku placeného překladu ignorujte "Ne, děkuji"
6 - objevíte se ve správě vašich překladů, klikněte na váš soubor
7 - projděte automatický překlad, a opravte případné chyby
8 - klikněte na modré tl. "Dokončit"
9 - z menu Soubor > Stáhnout uložte titulky
Emil Pastelka
Junior
Uživatelský avatar

Odeslat příspěvekod vladimir 4. 8. 2019 12:58

Nargon: Díky moc, funguje perfektně.
Emil Pastelka: vyzkouším, zatím mám přeložených jenom 10 dílů, ty jsem opravil podle Nargona, takže dalších 15 dílů můžu zkoušet.
EDIT: tak ano, potvrzuji, přes ten Toolkit mi to časování nepoškodí. Díky za tip.

Napadá mne, když opravím nějaké titulky v tom toolkitu, jestli to poznatelně vylepší překlad dalších. Schválně zkouším opravit v 5 souborů.
Naposledy upravil vladimir dne 5. 8. 2019 08:15, celkově upraveno 1
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod JirkaVejrazka 5. 8. 2019 07:57

Nargon - sed pouzijes stejne jako PSPad, jen je syntaxe /puvodnivyraz/novyvyraz/ a misto $1 pro skupinu pouzijes \1

-- 5. 8. 2019 08:59 --

V tom Pythonu bys to klidne mohl udelat tak, ze pokud se v radku vyskytne "->", tak 24. znak (nebo kolikaty to je :) ) nahradis carkou. A nemusis se patlat s regularnimy vyrazy a podobnym "kanonem na vrabce".
JirkaVejrazka
Mírně pokročilý

Odeslat příspěvekod Emil Pastelka 5. 8. 2019 12:45

vladimir píše:Napadá mne, když opravím nějaké titulky v tom toolkitu, jestli to poznatelně vylepší překlad dalších. Schválně zkouším opravit v 5 souborů.


Musel byste zvolit společný vlastní slovník pro všechny překlady.
Emil Pastelka
Junior
Uživatelský avatar

Odeslat příspěvekod vladimir 5. 8. 2019 13:56

Defaultně má být aktivovaná moje vlastní překladatelská paměť a zapisují se do ní moje korekce textu.
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod vladimir 13. 8. 2019 07:29

Tak jenom doplním zkušenosti s toolkitem... Žádný zázrak. Překladatelská paměť trochu funguje, když narazí na totožnou větu, tak je přeložena, jako minule.
Uživatelský slovník (glossary) nefunguje podle mých představ. Myslel jsem si, že když si tam zadám nějaký překlad (např. idol=symbol), bude se tento překlad používat přednostně, resp. výhradně, ale to ne, idol je překládaný jako idol, modla, model a jenom občas jako symbol, i když to je ve slovníku a snad 30x jsem to ručně v textu opravoval.
Holt se ta jejich UI má ještě hodně co učit.
vladimir
Expert
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků