Hledám CSV konvertor
Hledám nějaký CSV konvertor, který by dokázal převést *csv soubor na běžný textový podle stanovených pravidel.
Původní zdroj:
"TAG","COMMENT","ENGLISH_UK","ENGLISH_US","CZECH"
"GameTitle","","ColourBind","ColorBind","Colour Bind"
"PlayMenu","The next entries (until 'exit') are menu options","Play","Play","Hrat"
V csv editoru to vypadá takto:
Cílem je textový soubor, který bude splňovat:
- každá položka na samostatném řádku
- před každou položkou (také na samostatném řádku) bude název sloupečku ze záhlaví
- po vypsání všech položek v řádku bude ve výsledném souboru následovat samostatný řádek s (všude se opakujícím) předdefinovaným textem, zde "END_LOC"
TAG
GameTitle
ENGLISH_UK
ColourBind
ENGLISH_US
ColorBind
CZECH
Colour Bind
END_LOC
TAG
PlayMenu
COMMENT
The next entries (until 'exit') are menu options
ENGLISH_UK
Play
ENGLISH_US
Play
CZECH
Hrat
END_LOC
Pravděpodobně bude potřeba v rámci konvertoru vytvořit nějaký script, s tím bych se už nějak podle konkrétný syntaxe nějak popasoval.
Díky za případný tip.
Je to jednorázová záležitost nebo toho budeš potřebovat převádět více? Kdyžtak bych vypotil nějaký PHP skript.
Nový avatar!
Budu toho převádět více.
Hledám spíše hotové obecné řešení, které se dá parametricky customizovat (kua, to je teda termín ) podle konkrétních požadavků.
S tím php scriptem tedy raději ještě počkej. To by se mělo jednat o script do něčeho konkrétního? Do čeho?
Pozdě... už to mám hotový.
Je to PHP skript, tedy buď ho spustit někde na webu (Webzdarma a podobně) nebo u sebe v počítači na localhostu (třeba WAMP).
Tož sem s tým, vyzkúšáme
To bych si mohl na svém (vzdáleném) ftp udělat nějakou index.html stránku a ten script strčit tam? Žádný web zatím nemám, protože to nepotřebuji.
Tak pošli nějaký CSV soubor, převedu a dám sem výsledek. Možná to bude potřeba doladit...
Pokud tvůj hosting podporuje PHP (takových je většina), tak si stačí udělat stránku index.php, vložit ten kód a do stejného adresáře nahrát i zdrojový CSV soubor.
SZ.
Když je nevyplněná hodnota (buňka), tak by to mělo vynechat i s nadpisem? Teď to nadpis napíše a místo nevyplněné hodnoty je prázdný řádek.
Přesně takto to má vypadat, je-li hodnota buňky prázdná, má být prázdný řádek. Jdu to vyzkoušet ve hře.
Něco je špatně. Problém je v tom, že v některých řetězcích je čárka (",") a script část za čárkou posune do další buňky (viz hned druhý řádek). Proto je zdrojový csv vytvořen tak, že veškeré stringy jsou v úvozovkách, což umožňuje i čárky ve větách uvnitř.
Aha. Jde o to, že v CSV by měly buňky být oddělené středníkem, to je výchozí nastavení Excelu. Můžeš to tak uložit?
Máš v SZ dvě verze, s ";" a jako html
No, to je jiný kafe!
Tohle vypadá v pořádku. Nicméně ve hře to vyzkoušet zatím nemohu, až budou hotovy všechny soubory (chybějící stringy vyhazují chyby)
Místo chybějícího stringu můžu automaticky vyplnit třeba "xxx", to je to nejmenší.
Jde jen o to, jestli se v některém stringu neobjeví středník? To by zase špatně překonvertovalo.
Ne, to nepomůže. Těch souborů je více, a pokud ve všech není sekce "CZECH", dává to nesmyslné texty. Navíc existuje jakýsi hlavní language.txt soubor, který určuje pořadí jazyků v těch lokalizačních souborech. Některé *csv mají jen 2x angličtinu (US/UK) + češtinu, jiné i další jazyky (DE, ESP, FR..). Takto jsem je dostal od vývojářů a musím se s tím nějak vypořádat (přidám chybějící jazyky bez stringů, přeskládám "vnitřek" csv). Do toho se ale pustím, až budu mít přeloženo vše (mám odhadem 75-80%).
Jeden csv je taky pěkný dáreček. První sloupec je jméno souboru, do kterého se mají stringy (za podobných pravidel jako ty ostatní) zkonvertovat. Takže místo jednoho vznikne asi 30 souborů. Tohle moc chytře devs nevymysleli; jakoby nešlo úplně všechny řetězce narvat jen do jednoho souboru
---
Štve mě i nemožnost použití diakritiky (použité fonty to neumožní a jejich výměna za jiný nepomůže, část ASCII tabulky je ve hře zablokována). Druhotným důsledkem toho je, že když teď musím překládat bez diakritiky, pletu se i jinde
tak dáreček, programátor v názvu souboru v první řádce vidí jednoduchou a rychlou implementaci pipe v shellu, ze - pro nej to takhle treba dva smysl.
Lokalizace té gamesy není zrovna user-friendly.
Doufám, že překlad ještě projde nějakou gramatickou korekturou...
Nestačilo by
Zdá se mi to významově stejné, mluvnicky o 100% lepší....
Asi nějak ztrácím cit pro mateřštinu Zda za to může začínající hosipa, alzhajmr či pivo, nevím…
Ale opravdu mi (v kontextu hry) ta první formulace nepřijde nekorektní, protože podle mě lépe zdůrazňuje tu vylučovací možnost postupu v kooperativním levelu - jeden hráč se musí opravdu obětovat, aby bylo dosaženo (společného) cíle. Není problém to opravit/změnit.
Překlad byl pro mě o to horší/složitější, že v samotné hře jsem postoupil jen velmi mírně; hraní není to žádná legrace, některé postupy jsou opravdu only for hardcore players Obecné principy sice znám, ale konkrétnosti mnoha úrovní mi jsou doposud utajeny.
Ingame komentáře autora v posledním levelu singlplayeru:
Za sebe mohu říci, že už desátá úroveň je dostatečně šílená. Padesátou si nedovedu představit… Každopádně hra je to báječná a fanouškům nápaditých indie her ji mohu jen doporučit.
Občas je nutno v překladu dost improvizovat, aby to dávalo v češtině smysl. Například o "zen calm" jsem dlouho přemýšlel, až jsem použil (snad přijatelné) "vyšší mocnosti".
Nechci zase prosazovat svého chlebodárce, ale co Oracle? ;) CSV lze přimoutovat jako tabulku a selectem si pak udělat co budeš potřebovata a vylejt to do souboru. (nemusi to byt nezbytně nutně oracle, jen nevim jestli to mysql a jine umi) Problem vidim v tom, ze chces doslova script/customizaci, ooz znamena ze nekdo se tvourbou kovnertoru musel mit presne stejny napad, jako chceš Ty a nebo udělat něco obecného - a to už je na vlastní scriptovací jazyk a pocyhbuju, ze se s tim nekdo patlal
Jinak CSV je execel ne? Roztahnu si budnku jako vzorec, a mactro/ctrl+c/v a pak to ulozim jako soubor, ne? Alternativne msaccess, jestli umi primountovat CSV.
Excel (97) jsem zkoušel, ale neporadí si plně s importem. Uvnitř csv souborů jsou totiž i ";" a ",", které ne vždy znamenají oddělovač, ale jsou součástí textu (stringů).
Jiné csv zase vyžadují jiné pořadí ve výsledném souboru a proto ten požadavek na customizaci scriptů. S tím bych si už (snad!) podle nějakého vzoru poradil.
To je černá můra algoritmizace.
Taky jsem se setkával při převodu dokumentů oddělených středníkem, kdy v řetězci byl středník.
Člověku je po nahlédnutí do takto chybného řetězce rychle jasné, kam co patří.
Ovšem při algoritmizaci bychom museli pracovat nejspíše s lexikální analýzou.
Já jsem to "řešil" tak, že jsem dokument otevřel a popravoval to ručně.
To co požaduješ vypadá totiž dost těžko možně.
Možné to je, jen pracnější.
Vidím v podstatě dvě řešení:
1) vybrat takový oddělovač, který se v textu neobjeví. Středníky a čárky jsou profláklé, mým oblíbeným je svislítko "|".
2) přeprogramovat cyklus, aby bral v potaz nejenom oddělovač, ale také obsah mezi uvozovkami jako celek. Snad nebudou uvozovky i v některém řetězci...
Ne, uvozovky nejsou nikde, Respektive jsou, ale symbolizovány znakem '.
to nemusi byt cyklust, to staci, byt regulerni vyrat, tusim ze I php ma neco jako split_by_reguar_exprsion.. a dokonce jsem uz i takove funkce/vyrazy pro CSV viděl na netu hotove.
Já jsem konzerva(-tivní), proto raději používám cykly - zdají se mi přehlednější a jednodušší na customizování, jak by řekl pan Sisinka.