Delphi can't recognize Russian characters - delphi

I have an English version of the Windows XP operating system installed on my computer. If I try to use the Russian input language, for example, to give a form a caption that's written in Russian, the only thing I see is those unintelligible symbols that you often see when there is a problem with proper character encoding. Is there a way to make Delphi recognize Russian characters?
Any suggestions will be highly appreciated.

You can change default code-page used for programs that do not provide locale info (Control Panel > Regional setting > Advanced) to your locale (Russian).
As for SQL that is a separate question probably solved by SQL DB settings.
P.S. I would suggest you to move to Unicode version of Delphi (XE) and SQL too.

Related

NSIS Installer does not show Russian text

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.

Unicode is not supporting in vb6

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.

Delphi: Unicode->AnsiString, language for non-unicode programs

I have Delphi 2010.
XXX-component uses File_Path:AnsiString. A path can be written in XXX-language. If I set to use XXX-language for non-unicode programs in Windows settings then XXX-component recognize the path but if I set default Windows settings (English Windows-English for non-unicode programs) XXX-component can not recognize the path.
How to fix it?
Thank you!!!
To solve this problem you need to move away from ANSI strings and start using Unicode strings and the corresponding Unicode versions of the Windows API. At the moment you are reliant on the computer locale and that's an enormous world of pain.
Moving from AnsiString to string takes a little effort but the benefits make the effort well worthwhile.
Embrace Unicode and forget all about the bad old days!

How to set the code page of a Delphi 2006 executable

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.

Can Delphi 2009 in English and in French coexist on the same machine?

Does anyone know (like in tried and succeeded) if I can have D2009 both in English and in French?
It's not so much to generate French or English applications but to have the IDE available in either language to take screen shots and make demos in French or in English.
What would be involved: complementary install plus some shortcut param switch?
Install one version in a virtual machine. I hear VMWare works really good.
Nope, won't work. If they were different versions (ie. one 2007, one 2009) then you should be fine, but if they are the same version you'll need to go the VM route as Jim suggested.
Why would you want that? If you need internationalized versions of your program, you should better use at tool for that purpose (e.g. dxGetText) rather than recompile it with a different Delphi version. In that case I definitely suggest using the English IDE, so you can translate the RTL errors from English to the target language.

Resources