Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Umlaute in KAboutData

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719

    Umlaute in KAboutData

    Ich hab das Problem, das ich Jäger mit Nachnamen heiße, und dass das Wort leider einen Umlaut enthält. Ich wollte in einem KDE-Programm meinen Namen in die Aboutbox eintragen und habe festgestellt, das es da zu Problemen kommt, nämlich dass das 'ä' nicht korrekt angezeigt wird. Mir ist aufgefallen, das KAboutData intern char* und nicht QString verwendet. Ob es damit zusammenhängt und ich pech gehabt habe? Oder hat Mandrake mal wieder Mist gebaut?

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    noch einer

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    und noch den Code(anhängen geht leider nicht):

    Code:
    #include <kapplication.h>
    #include <kmainwindow.h>
    #include <kcmdlineargs.h>
    #include <kaboutdata.h>
    
    const char *description =
    	I18N_NOOP("test Aboutdata");
    
    int main(int argc, char** argv)
    {
     KAboutData aboutData( "abouttest", I18N_NOOP("Abouttest"),
        "0.11", description, KAboutData::License_GPL,
        "(c) 2003, Axel Jäger", 0, 0, "axeljaeger@web.de");
     KCmdLineArgs::init(argc, argv, &aboutData);
     aboutData.addAuthor("Axel Jäger",0, "axeljaeger@web.de");
    
     KApplication app;
     KMainWindow win;
     app.setMainWidget(&win);
     win.createGUI();
     win.show();
    
     return app.exec();
    }

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wahrscheinlich wird ein bestimmtes Encoding erwartet, UTF8 vielleicht.

    Probiers am einfachsten mal mit I18N_NOOP Macro.

    Wenns dann geht, kann man da sicher auch im Code mit QString machen.
    zB für UTF8
    Code:
    static_cast<const char*>( QString("Jäger").utf8() );
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Nein, beide von dir genannten Lösungen funktionieren nicht. Beim ersten nach wie vor ein Kasten anstatt dem 'ä' beim zweiten steht gar nichts mehr beim Namen. Ich hab auch noch mal latin1() benutzt, da kommen dann nur noch Kästen. Es kann ja auch gar nicht gehen, KAboutData verwendet intern const char * und nicht QString.

    Edit: da isses: http://bugs.kde.org/show_bug.cgi?id=31774 anscheinend ist der Quelltext als utf8 abzuspeichern.

    Edit2: Ja, mit UTF funktioniert es einwandfrei
    Geändert von axeljaeger (12-09-2003 um 14:10 Uhr)

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von axeljaeger
    Es kann ja auch gar nicht gehen, KAboutData verwendet intern const char * und nicht QString.
    Das ist ja ansich egal. Es hängt ja nur davon ab, wie die Zeichen im char Array kodiert sind.
    bei addAuthor() steht eben was von UTF8


    Edit2: Ja, mit UTF funktioniert es einwandfrei
    Hmm, dann hätte es mit der zweiten Methode ansich klappen müssen.
    eventuell mit einem weiteren Zwischenschritt mit QString::fromLatin1

    Wie hast du es jetzt gemacht?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Ich hab den Quelltext in Kate als UTF gespeichert und ohne QString direkt eingegeben.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •