Portál AbcLinuxu, 30. dubna 2024 11:32


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
29.5.2009 07:00 wix
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin

Na to kolik ti je..vsechna cest..prvni slusnej ceskej serial o qt..

29.5.2009 08:31 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Tyhle hlášky "na to kolik ti je" fakt nechápu.
Quando omni flunkus moritati
David Watzke avatar 29.5.2009 09:23 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Já taky ne, ale snažím se to brát pozitivně :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
29.5.2009 13:38 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Dobře psát neumí člověk od narození, musí se to naučit. Stejně tak musí pochopit problematiku, o které píše, a musí ji být schopen srozumitelně vysvětlit. K tomu všemu je potřeba trénink, práce, čas. Pochybuju, že se David programováním s Qt a psaním článků zabývá už od 6 let, takže se dá celkem předpokládat, že – vzhledem ke svému věku – zvládl vše neobyčejně rychle a má nejspíš k psaní a k vysvětlování talent. Stačí si pro srovnání přečíst pár článků někde na internetu a zjistíte, že spousta lidí se nenaučila psát srozumitelně ani za desítky let.
29.5.2009 15:08 wix
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

vystizne..nekdo pise 20 let a stoji to za h...clovek se snazi napsat kompliment a jeste ho pomalu vyhlasi:)

29.5.2009 16:16 mirrec | blog: mirrec
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

asi tak :-D

29.5.2009 11:15 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Lokalizace Qt samotného
Odpovědět | Sbalit | Link | Blokovat | Admin

Jak je udělána lokalizace samotného Qt? Jde mi o to, jestli se aplikace musí starat o načtení například /usr/share/qt4/translations/qt_cs.qm sama, nebo to za ni udělá knihovna sama. Viděl jsem totiž programy (pravda, bylo to Qt3), které si s sebou táhly qt_*.qm, což mi moc systémové nepřišlo.

29.5.2009 11:41 mirec (Miroslav Bendik)
Rozbalit Rozbalit vše Re: Lokalizace Qt samotného

Funguje to tak isto ak v Qt 3.

29.5.2009 11:16 zajca | skóre: 2 | blog: zajca
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky fakt super seriál.
měl bych dotaz. jak mám docílit pohybu bitmap? umí to Qt nebo musím použít nějakou externí knihovnu? potřebuju hodit vedle sebe 10bitmap a vzájemě je prohazovat.
dycky si říkám, proboha proč lidi píšete tak dlůhé blogy a pak neco začnu psat a nakonci si říkám k*rva to je dlůhé.
29.5.2009 11:41 mirec (Miroslav Bendik)
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Nieco ako puzzle? Odporucam pozriet programik qtdemo. Je tam vela zaujimavych ukazok.

29.5.2009 12:17 zajca | skóre: 2 | blog: zajca
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
puzzle ne, jde o grafickou ukázku řadícího algoritmu, jen aby se na obrazovce přehazovali čísla stejně jak to dělá algoritmus. Máme doporučené nějaké historické knihovny pro widle tak bych to chtěl udělat jinak :)
dycky si říkám, proboha proč lidi píšete tak dlůhé blogy a pak neco začnu psat a nakonci si říkám k*rva to je dlůhé.
29.5.2009 23:50 dragh
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Na niečo také by sa dal použiť Qt Animation Framework, ale na takú pomerne jednoduchú vec mi to pripadá trochu overkill. Potom jak tu už niekto spomínal v qtdemo je dosť všeliakých ukážok...

29.5.2009 11:26 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin

Není mi jasná jedna věc: jestliže tvůj překlad obsahuje jen jeden záznam, jak je možné, že je lokalizovaný i samotný kalendář?
Nechce se mi teď hledat, jak nejrychleji a dočasně přepnout systém do češtiny, takže jen hádám, že komponenta kalendáře je ve skutečnosti přímo součást KDE a tím pádem je lokalizovaná podle systému a ne jak si člověk nastaví v aplikaci...
Nebo sis snad sám pro sebe lokalizoval Qt do češtiny?

Do článku bych ještě přidal zmínku, že Qt jako takové obsahuje taky spoustu textu připraveného k lokalizaci (tlačítka, chybové hlášky, atd.), proto je vhodné v nových aplikacích nahrát qm soubor i pro samotné Qt knihovny. Česká lokalizace zatím není dostupná, ale slovenská ano. Jednoduše tak učiníme přidáním kódu:

QTranslator qtTranslator;
if (qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
    app.installTranslator(&qtTranslator);

K tématu lokalizace bych už dodal jen, že je možné qm souborů loadnout libovolný počet, přičemž se vůbec nerozlišuje, který soubor přísluší k jaké části zdrojáku. Tzn. že uvnitř funkce tr (a jí podobných) se prochází seznam překladů od shora dolů dokud se nenarazí na první záznam, který je stejný jako řetězec předaný do tr. To představuje menší komplikaci v případě, kdy stejný text v jazyce programu (zpravidla anglický) chceme na různých místech přeložit jinak, např. Tlačítko "Set" přeložíme asi jako "Nastavit", kdežto třeba label "Set" před comboboxem třeba jako "Množina". Řešením je nastavit hodnotu i druhému argumentu funkce tr, samozřejmě pro jiný překlad jiný comment...

Jinak všechna čest, jen tak dál! (... na to kolik ti je ;-) )

29.5.2009 11:45 mirec (Miroslav Bendik)
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Toto je serial o Qt, nie KDE. V takom pripade su samozrejme nutne vlastne preklady (vacsinou nestaci prelozit len Yes, No ...). Ale zmienka o preklade samotneho Qt tu mohla byt. Inak suhlasim s tym, ze je to super serial.

29.5.2009 12:17 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Myslel jsem to tak, že Qt samotné asi neimplementuje celý widget kalendáře, ale má jen nějaký wrapper okolo nativní komponenty systému. Kalendář tedy vypadá na každé platformě jinak, ale nevím, hned večer to vyzkouším na widlích...

David Watzke avatar 29.5.2009 16:25 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
No, QCalendarWidget není součástí KDE, ale Qt a je to česky asi podle locale... popravdě nevím, kde tu češtinu vyhrabal :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Viliam Púčik avatar 29.5.2009 17:28 Viliam Púčik | skóre: 22 | blog: minimal
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Napriklad z /usr/share/qt/translations ;-)

Apropo, pre staticky zostaveny Qt program sa hodi zakompilovat nielen preklady aplikacie, ale aj prislusne Qt preklady priamo do programu, napriklad i cez qresource system. Program tak bude na Vas "hovorit" pekne po slovensky (rozumej cesky). Velmi jednoduchy priklad:
QTranslator translator;
translator.load(":/translations/qt_sk");
app.installTranslator(&translator);
30.5.2009 12:47 Murry | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Dá se nějak docílit, že "půlka" aplikace mluví česky, "půlka" anglicky?
Pro vysvětlení, např. server něco vypočítá a chce vrátit výsledek + text v jazyce, který používá klient. Když se připojí dva klienti, každý si navolí jiný jazyk...jak toto řešit?
David Watzke avatar 30.5.2009 12:53 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Prostě nějaký řetězce nedáš do tr() a nebudeš je překládat, ne?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
30.5.2009 13:44 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Tím asi nedosáhneš kýženého výsledku. Spíš bych to viděl tak, že klient kromě vstupních dat pošle i používaný jazyk, server si hned po navázání spojení natáhne lokalizaci (installTranslator) ve správném jazyce a po ukončení spojení lokalizaci zase odstraní (removeTranslator).
Jen si nejsem jistý jak se to bude chovat, když se připojí více klientů současně, protože lokalizace je společná pro celou aplikaci...

30.5.2009 15:26 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
No přinejhorším si napíšeš vlastní lokalizační systém ;-)
2.6.2009 12:57 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Nebo použij něco normálního.

Táto, ty de byl? V práci, já debil.
Viliam Púčik avatar 2.6.2009 17:55 Viliam Púčik | skóre: 22 | blog: minimal
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Co ale v pripade, ked je potrebne mat v aplikacii sucasne natiahnutych viacero jazykov/prekladov? Dokaze gettext pouzivat viacero mo súborov naraz?
3.6.2009 11:05 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Ja bych pro kazdeho klienta fork()oval, a v kazdem procesu pak nastavil jinou textdomain().

Táto, ty de byl? V práci, já debil.
3.6.2009 17:33 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Víc katalogů mít můžete, ale jazyk se vybírá podle locale. Takže byste musel každou hlášku obalit zámkem.
30.5.2009 15:46 Murry | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Takto to mám, klient = instance třídy si uloží jazyk, podle toho pak předkládá, nicméně, když chci poslat klientu přes klienta (druhého) nejede to. Potřeboval bych něco jako qApp.odTedFunkceTrJsouVJazyku(QString lang). Aby stejná třída, metoda mohla "mluvit" více jazyky. Nevíte jak na to?
Viliam Púčik avatar 30.5.2009 22:14 Viliam Púčik | skóre: 22 | blog: minimal
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Nemam to sice odskusane, ale co takto pouzivat na strane servera viacero translatorov sucasne a klientovi prelozit textovu spravu do prislusneho jazyka cez QTranslator::translate, napriklad:

Server:
class Translator: public QObject {
public:
        Translator(QObject *parent = NULL): QObject(parent) {
                QTranslator *skTranslator = new QTranslator(this);
                QTranslator *csTranslator = new QTranslator(this);

                skTranslator->load(":/translations/qt_sk");
                csTranslator->load(":/translations/qt_cs");

                m_tableOfTranslators["sk"] = skTranslator;
                m_tableOfTranslators["cs"] = csTranslator;
        }
        // vrati lokalizovanu spravu na zaklade jazyka lang
        QString translateForClient(const QString &message, const QString &lang) {
                if (m_tableOfTranslators.contains(lang) == false) {
                        return message;
                }

                return m_tableOfTranslators[lang]->translate(message);
        }
private:
        QHash<QString, QTranslator *> tableOfTranslators;
};


//...niekde v kode
        QString message = translator->translateForClient("%n file found", client->lang());
31.5.2009 03:11 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)

Nějak tak by to mohlo fungovat. Nedošlo mi, že QCoreApplication::translate volá QTranslator::translate pro každý nainstalovaný slovník...

31.5.2009 13:38 Murry | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
To je výborné, děkuji! Zkusím na nějakém podobném principu to předělat u mého projektu.
30.5.2009 16:38 Unable
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Je to sice dotaz mimo článek, ale potřeboval bych program z Qt Creatoru nějak sestavit aby byl samostatně spustilný i jinde bez Qt Creatoru. Udělat prostě nejaký instalátor nebo spouštěcí soubor. Děkuji za odpověď.
30.5.2009 17:35 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Qt apliakce nejsou závislé na Qt Creatoru, ale na qt knihovnách.
Doporučuji přečíst Deploying Qt Applications.
30.5.2009 18:20 Unable
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Díky moc. To bude pravděpodobně to, co jsem hledal asi týden. Ještě jednou díky moc :)
31.5.2009 14:33 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
15.6.2009 15:33 Jan K. (Hoky) | skóre: 8
Rozbalit Rozbalit vše Více klávesových zkratek na jednom tlačítku
Odpovědět | Sbalit | Link | Blokovat | Admin

Je to trochu mimo téma článku, ale zajímalo by mě jestli je v Qt možné přiřadit jednomu tlačítku více klávesových zkratek. Pokud jsem to pochopil správně, tak je možné přiřadit pouze sekvenci kláves :-(.

Viliam Púčik avatar 17.6.2009 21:01 Viliam Púčik | skóre: 22 | blog: minimal
Rozbalit Rozbalit vše Re: Více klávesových zkratek na jednom tlačítku
Drobny trik v podobe prepisania virtual void keyPressEvent(QKeyEvent * event) metody dialogu/okna by mohol pomoct, napriklad:
void MainWindow::keyPressEvent(QKeyEvent * event) {
        switch (event->key()) {
                case Qt::Key_C:
                case Qt::Key_D:
                case Qt::Key_E:
                        nejakaMetoda();
                        break;
                default:
                        break;
        }
}
18.6.2009 14:54 Jan K. (Hoky) | skóre: 8
Rozbalit Rozbalit vše Re: Více klávesových zkratek na jednom tlačítku

Dekuji. Neni to sice uplne ono, ale je to moznost. V idealnim pripade bych potreboval, aby se pri stisku jakekoli z pridelenych klaves zamacklo tlacitko jako u klavesy, ktera je k tlacitku asociovana.

18.6.2009 15:19 Jan K. (Hoky) | skóre: 8
Rozbalit Rozbalit vše Re: Grafické programy v Qt 4 – 7 (lokalizace a data programu)
Odpovědět | Sbalit | Link | Blokovat | Admin

Vyzkousel jsem si prepinani jazyka zmenou systemove promenne LANG, diky ktere muzu menit nacteny jazyk a obrazky z resources (pokud u prefixu nastavim jazyk). Existuje nejaka moznost jak prepinat jazyky za behu programu?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.