I develop my project in Delphi 2010 on Windows 7 (Russian localization).
When I started working on Windows 8 (English) and moved my project to Delphi XE3 I saw standard dialogs (like buttons, headers of MessageDlg and system errors) in English (must be in Russian).
Look at Project - Options - Version Info - Language, and saw Locale ID as "English (United States)" in "Debug Configuration - 32-bit Windows platform".
Look other configurations, and saw in three headlines like "All configurations - All platforms" (where all elements disabled)
Locale ID is "Russian (Russia)" and in all subtitles "32-bit Windows platform" Locale ID is "English (United States)".
OK, I changed in all configurations Locale ID to "Russian (Russia)". But It doesn't work - all messages in English. In properties of builded exe-file Language=Russian (Russia).
Tested it on Windows 7, Vista with Russian localization.
The Locale ID in the version info has nothing to do with the language used for standard dialogs. You can even have multiple entries in version info for different locales.
The language used for standard dialogs depends on the language setting for the current Windows user. It is the same for all applications started under this user account and is independent of the language used inside the application itself.
There's a consts.pas/consts.dcu unit in Delphi source, which contains all the translations of the standard dialogs. You can make a copy of this file and add it to your project. You can make your changes and build your project.
Make sure, that the original consts.pas/consts.dcu is not available (rename/move them).
Related
I am trying to create an installer that support Russian language. I spent many times, but still did not fix the problem.
I have Windows 10 English version with installed Russian language pack. Russian language is set to default.
Here are my steps:
Install NSIS 3.01. (The same was with 2.46).
Build Examples\languages.nsi from NSIS. I use Windows XP as build PC.
When I run languages.exe on Window 10 and select Russian language I see the following:
The text is not in Russian.
Well it is probably in Russian, but in wrong font. Otherwise all text consist of question character (?).
With "Unicode true", the text is in Russian. But I would not like to use it and to understand the issue.
Regards,
Valery.
Unless you are still supporting Windows 95/98/ME there is no reason to not build a Unicode installer.
You must change the Language for non-Unicode programs to make non-Unicode version display the correct characters.
I am using the Translation Manager Included in Delphi (xe8, but should be the same in older version)
I go to Projet->langages->add (choose english).
Then I translate the texts(here the button)
I update it all and compile it all:
I got the .exe and .enu file and it is french.
When I go to Projet->languages->set Active and I choose english, I compile it all and my application is now in english (button says hello)
That's great.
However my goal is that my application AUTOMATICALLY swicthes from french->english when computer config changes
ex : I change my PC settings to english:
(I do the same with keyboard setting)
However my applicatin ALWAYS stays withe the default langage I put in Project->Langages->Set Active
How to make my Project.exe automatically choose the right langage depending on my PC configuration ?
Take a look at http://dxgettext.po.dk/ replacement for standart Translation Manager.
This adds the support of well-known gettext toolset to your project.
I am using the Translation Manager Included in Delphi (xe8, but should be the same in older version)
I go to Projet->langages->add (choose english).
Then I translate the texts(here the button)
I update it all and compile it all:
I got the .exe and .enu file and it is french.
When I go to Projet->languages->set Active and I choose english, I compile it all and my application is now in english (button says hello)
That's great.
However my goal is that my application AUTOMATICALLY swicthes from french->english when computer config changes
ex : I change my PC settings to english:
(I do the same with keyboard setting)
However my applicatin ALWAYS stays withe the default langage I put in Project->Langages->Set Active
How to make my Project.exe automatically choose the right langage depending on my PC configuration ?
Take a look at http://dxgettext.po.dk/ replacement for standart Translation Manager.
This adds the support of well-known gettext toolset to your project.
We're programming in Delphi 2006, using Multilizer 5.1 to translate the program. Now we've to added Polish as a new language in Multilizer. But when we open our executable, Multlizer says "Polish is not supported by the codepage".
If we adjust our regional settings to Polish, whenever we open the executable, the regional settings flip back to the original setting, which is Dutch. Maybe we should set the CodePage setting in our Project Options, but the dropdown list does not give us any options.
Any ideas?
So it turns out we only had to set the Language for non-Unicode programs in the Regional and Language Options in Control Panel. The bad news is that the French version is now having the same problem.
If you want your application to support all possible language regardless of the Regional and Language Options on the user's computer, you'll need to migrate your application to Delphi 2009 or later. Starting with Delphi 2009, Delphi produces Unicode applications. It'll likely take some effort to fix any code that assumes that SizeOf(Char) = 1. But that one-time job should be much less effort than constantly having to deal with code page issues in your Delphi 2006 application.
I am localizing my winform application for french and japenese. We have fileOpenDialog used at some places, when I change the CurrentUICulture to ja-JP or fr-FR, application displays the localized screens But the dialog boxes are shown in English, i.e default OS setting.
Is it not localizable ? or there is any alternative to it?
Thanks.
The Common File Dialogs and Common Item Dialogs are part of Windows itself and use the language of the underlying Windows installation. The only way to change their language is by reinstalling a different language variant of Windows.