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.
Related
I'm looking to utilize the Windows dialogs, such as the Windows.Storage.Pickers.FileSavePicker() or the print dialog with the language my application has selected, not the language that the OS is currently using.
My application can change the language at run time, and it is working nicely for the most part, by doing the following with all my resources set up and the other language installed:
System.Globalization.CultureInfo.CurrentUICulture = new System.Globalization.CultureInfo(selectedLanguageCode);
System.Globalization.CultureInfo.CurrentCulture = new System.Globalization.CultureInfo(selectedLanguageCode);
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = selectedLanguageCode;
However, the only thing that doesn't change is my Windows dialogs, they appear to stay in the language of the OS and not what I've selected in my application.
The methods in question for FileSavePicker do not have any properties or settings that allow me to change the language.
Does anyone have any ideas on how I can change this so if I'm using French on and English computer it will show the Windows dialog box in French?
I'm sorry but Windows dialogs cannot be localized with UWP apps (not sure about WPF projects).
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).
we have a application written in vb6, we also have the multilingual support for this application, we provide all the user message along with the ID's in .LNG file but application is not supporting the Unicode language like Japanese, Chinese etc.,can anyone suggest how to proceed the minimum change in the code and make this work !!!
Thanks
Standard VB6 controls doesn't support UNICODE. It is possible to use MS Forms controls (FM20.DLL). INFO: Usage and Redistribution of FM20.DLL.
The problem is that old version i buggy and is updated by MS-Office. New version of office id 64-bit and doesn't contain 32-bit FM20.DLL. I think it it only 'simple' way of implementing UNICODE but still it is massive change to the application.
Howerer VB6 supports different languages at least European, but the texts have to be properly encoded (Code Page Identifiers). I suppose that usual Windows font such as MS-San Serif, Arial supports most of languages.
If the windows default language is set properly other language characters should work. See e.g. HOW TO:Change language settings in Windows XP or try Japanese windows direclty.
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 have a Borland C++ Builder VCL app (so I am not working with Unicode yet),
I want to provide a simple translation of controls' caption text to Russian at runtime.
I can easily use EnumChildWindows to get the English caption, then lookup the translation and replace the caption text using SetWindowText. This does work well for my western European translations where I don't have to worry about the font.
But I am not sure how the Russian version of Windows and then VCL handles 8 bit cyrillic character sets.
Currently all the VCL controls have the font settings:
Charset=DEFAULT_CHARSET
name=MS Sans Serif
Am I correct in assuming that when my program is run under a Russian version of Windows the
character set will be cyrillic with the DEFAULT_CHARSET setting so I won't need to
change the font settings in all my controls?
If I do have to change the font (at run time), should the Windows API function SendMessage(hwnd,WM_SETFONT,(WPARAM)hFont,TRUE) work with VCL controls ?
I have tried using the CreateFont() and SendMessage(..WM_SETFONT..) with RUSSIAN_CHARSET and a cyrillic font face. This doesn't appear to have any effect,
it keeps the font that was set for the control in the form at design time
(even ANSI_CHARSET and a standard Windows-installed font face doesn't affect the controls' font) so I looking for confirmation that I won't have to change the font of the controls, or else tell me some VCL method for setting all the controls' font settings at runtime .
There is no need to reinvent the bicycle. Why don't you use Integration Translation Environment Tools which are provided with Borland C++Builder? There is a wizard that will help you with translations and will make a special resource file which will contain translation of all text strings in your application. Then program, will check system language and availible language resource files at startup, and will automatically use appropriate language. Check C++Builder help system with index - "Integrated Translation Environment (ITE)" for more detailed process description.