December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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:

  1.  QString filename = QString("myproject_%1").arg(QLocale::system().name());
  2.     QTranslator translator;
  3.     translator.load(filename.toLower(),qApp->applicationDirPath());
  4.     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

December 12, 2010

disperso disperso
Ant Farmer
183 posts

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.

December 12, 2010

QtK QtK
Lab Rat
1140 posts

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

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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?

December 12, 2010

QtK QtK
Lab Rat
1140 posts

Saskic wrote:
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?

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.

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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

  1. languages = "&HR"
  2.    my_deployment.pkg_prerules = languages
  3.     DEPLOYMENT += my_deployment

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

December 12, 2010

QtK QtK
Lab Rat
1140 posts

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

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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 :))?

December 12, 2010

QtK QtK
Lab Rat
1140 posts

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

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

Croatian is default one :(

December 12, 2010

QtK QtK
Lab Rat
1140 posts

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.

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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

December 12, 2010

QtK QtK
Lab Rat
1140 posts

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.

December 12, 2010

Saskic Saskic
Lab Rat
9 posts

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

  1. #ifdef LANGUAGE_SC
  2. #define STRING_r_short_caption "Lista"
  3. #define STRING_r_caption "Lista"
  4. #elif defined LANGUAGE_45
  5. #define STRING_r_short_caption "Lista"
  6. #define STRING_r_caption "Lista"
  7. #else
  8. #define STRING_r_short_caption "Lista"
  9. #define STRING_r_caption "Lista"
  10. #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.

February 4, 2011

raimisz raimisz
Lab Rat
1 posts

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”)

 
  ‹‹ Choose QRadioTuner Audio Output: Bluetooth over Wired (Symbian Qt)      QMessageBox::critical on Qt Simulator using maemo view ››

You must log in to post a reply. Not a member yet? Register here!