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:
- 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.
14 replies
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.
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
&ENI would never came to idea to check it. Do you have any suggestions how I can change this to Croatian?
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 :(
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”)
You must log in to post a reply. Not a member yet? Register here!




