Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

How to change language in QMenu in QMainWindow class



  • Hello all,

    I'm working on Qt application for my Nokia 5230 with Qt creator. It seems that developer guys did a nice work with Qt designer - it made my work much easier, creating *.ui classes and connecting them with my code. Well done.

    However, I got a problem with ui class for QMainWindow when developing application for Croatian language. When my program runs, I see English instead of Croatian on QMenu buttons (two default buttons on touchscreen devices). It's written "Options" and "Exit" until I press some action in QMenu, and then it translates to Croatian.
    In the main source class of my application I've installed translator:

    @ QString filename = QString("myproject_%1").arg(QLocale::system().name());
    QTranslator translator;
    translator.load(filename.toLower(),qApp->applicationDirPath());
    a.installTranslator(&translator);@

    And add it to *.pro file.
    (I've also edit translation file in Qt linguist but text "Options", and "Exit", which are default names for QMenu buttons appear nowhere).
    I've also set "locale" property of QMainWindow class to Croatian, but it does not make any effect. Can I change those values in constructor of QMainWindow? And how'
    The same thing also happens when making selection with QComboBox - it's written "Select", instead "Odaberi" :(

    Thank you very much in advance.



  • Do you mean that when you press the menu, "Options" and "Exit" are translated to Croatian? Or do you mean that the contents of the menu are in Croatian, but "Options" and "Exit" are still in English?

    PS: Please, if possible, put your code between two "@" signs (edit the post), so it will be formatted as code.



  • Interesting never tried this out before. But usually in Symbian the .pkg file defines the lang supported by the app. Can you check what is the supported lang in the qt generated .pkg file



  • I love this forum, you are really fast.
    When I press "Options" on my menu, "Options" and "Exit" are translated to Croatian.
    Hm, my project_installer.pkg file says :

    ; Language
    &EN

    I would never came to idea to check it. Do you have any suggestions how I can change this to Croatian?



  • [quote author="Saskic" date="1292161586"]I love this forum, you are really fast.
    When I press "Options" on my menu, "Options" and "Exit" are translated to Croatian.
    Hm, my project_installer.pkg file says :

    ; Language
    &EN

    I would never came to idea to check it. Do you have any suggestions how I can change this to Croatian? [/quote]

    If you change the lang to croatian it would fix your problem for sure. But that its not the right way to edit the pkg directly in Qt. In Symbian you could have done that. I don't know what the right approach would be.

    Also changing the lang will also require you to generate .rsc file according to the lang pack defined. So if we change it manually, we will have to generate the rsc files also manually.

    I would suggest this as the last workaround.



  • Thanks a lot, so after surfing a bit around, I've found the following article:
    http://developer.symbian.org/wiki/Apps:Deploying_a_Qt_Application#Change_the_language_of_the_installation

    So, I added to my .pro file, (symbian configuration) the following code

    @languages = "&HR"
    my_deployment.pkg_prerules = languages
    DEPLOYMENT += my_deployment@

    Now my .pkg file say it's croatian, by anyway, I got English in my QMenu...again :(



  • You need to test it in a device with croatian lang pack installed.



  • is Nokia 5230 with a system running in Croatian enough? or I need to install some language pack for Qt :S on my phone (confused :))?



  • Check what languages are supported in your device by going to its settings.



  • Croatian is default one :(



  • In that case it should have worked. May be we are missing something else. Check if we have .lHR file generated. This would be your croatian specific language resource.



  • No, unfortunately, there is no such file. Any solutions?



  • Usually in symbian, .loc file contains localized strings. So if its english it would be .l01, the 01 is the lang code for english. Similarly there would be one for croatian also.

    Does other native apps show the option menu properly in croatian and only your app displays it in english.



  • I've checked my .loc file and here is the content:

    @
    #ifdef LANGUAGE_SC
    #define STRING_r_short_caption "Lista"
    #define STRING_r_caption "Lista"
    #elif defined LANGUAGE_45
    #define STRING_r_short_caption "Lista"
    #define STRING_r_caption "Lista"
    #else
    #define STRING_r_short_caption "Lista"
    #define STRING_r_caption "Lista"
    #endif
    @

    Code for Croatian is 45 so, I assume this is correct. Unfortunately, these problems I have only with my application, the other ones running on my phone (i.e. Contacts) display Menu properly, in Croatian.



  • Hi, i have similar problem

    all the qt application that i create with qt have "Options" and i can't translate it to other language. is there any solution for this? i have to translate my application to "Latvian". my phone (nokia 5230) supports "Latvian" and in other Nokia applications "Options" is "Iespējas" (Latvian "Options")


Log in to reply