Kdyby se vyškrtaly všechny řádky, které se netýkají Qt, zůstane - počítal jsem to! - osm řádků, které samy o sobě nedávají smysl. Plyne mi z toho, že celý článek nedává smysl.
Psát multiplatformní vícejazyčné aplikace čistě v Qt je velmi snadné, stačí využívat pro práci s textem prostředky Qt. Odpusťte si platformě závislé věci (WriteConsoleW) nebo věci s UTF nefungující (std) a uvidíte, že kód pro Linux i pro Windows může vypadat úplně stejně.
Napsal jsem stovky tisíc řádků v Qt aplikacích jak pro Linux tak pro Windows a zvěrstva jako je podmíněný překlad jsem nikdy neměl potřebu použít. Kód je stoprocentně shodný pro obě platformy.
Nelze nez souhlasit uz veta:
"Pro zjištění skutečného počtu znaků můžeme použít například funkci mbstowcs()."
Tato funkce ma hlavni funkci na prevod char->wchar_t a vydavato za funkci na zjisteni delky misto funkce primo pro toto urcene wcslen().
V clanek narazi na zajimave tema, nu obsahove je na dve veci. Jak napsal P.Bravenec tak nelze nez souhlasit. Kod co je v ukazkach je slabe receno divne.
K panu Bravencovi: Dal jste si článek do souvislosti s Qt, což bohužel zapřičinila redakce, která změnila můj název článku zřejmě během jazykové korektury aniž by mě o tom informovala a aniž bych měl možnost to ovlivnit. Původně to mělo být o unicode a jeho použití napříč platformami. Již včera jsem informoval redakci, že měnit větu v článku je ok, ale název? A bez vědomí autora?
A teď druhá věc: Jestli jste nepoužíval podmíněný překlad, tak pochybuju, že jste opravdu programátor, nebo možná děláte jen GUI. Qt je užasné a používáme jej ve firmě (jeden kód pro všechny platformy), avšak jsou věci, které v Qt nenapíšete. Například nespustíte child process třídou QProcess s elevací práv procesu na Windows. Qt to neumí, Linux neví co to je a je nutno použít funkce ShellExecuteEx a podmíněného překladu.
Pan Karel2: Děkuji za přípomínku ohledně wcslen a mbstowcs, avšak mbstowcs lze opravdu použít ekvivalentním způsobem jak wcslen. Nicméně máte pravdu, že wcslen se hodí lépe. Jestli se Vám článek nelíbí, jak píšete, napište svůj. Je na světě hodně kecalů, ale málo mužů činu. Já jsem s článkem spokojen, neboť mi v diskuzi poskytl mnoho nových impulzů v některých problematických otázkách a platformách (Windows).
Máte pravdu. Primárně dělám vše v Linuxu. V linuxu aplikace i překládám (mingw) a taky mi zde běží všechny serverové části (často v Qt, pouze konzolové aplikace). Pro Windows mi naštěstí stačí psát jen GUI aplikace, kde jsem opravdu neměl nikdy potřebu sáhnout po podmíněném překladu. Pro zadávání řetězců mi pak stačí používat trUtf8(), případně tr() spolu s nástroji pro překlad. Pokud potřebuji zadat nějaké platformě závislé věci (cesty k souborům a podobně), řešívám to přes konfigurační dialogy.
Jinak mně kdysi tady na rootu název článku nezměnili... a připadám si jako trouba ještě dnes :-)