Information in this article is more related to non-Unicode versions of IDEs like Delphi|C++Builder 2007 or earlier! Actual versions of RAD Studio is already Unicode and support all languages.
In case your OS default language is not a Far East or other Unicode language, you might experience some troubles with providing support for these languages under Delphi or C++Builder. TsiLang handles Unicode languages pretty well, but you will need to do the following in order to properly display and edit such languages.
Configure languages Font and Charset settings
First at all, you will need to adjust Fonts and Charsets before typing the Unicode language. Please do the following:
- Ensure that your OS is able to type the required languages, for example using Notepad application.
- Open the TsiLang Translation Editor (double-click on TsiLang).
- Select Fonts in the Translations Tree and set there appropriate font (the font that supports characters from the language) for the needed language. Usually the Tahoma font is able to display most of the languages.
- Switch to the Charsets in the Tree and set the appropriate charset for the Unicode language.
- Select in the menu Tools->Default Languages and add languages with the font and charset assigned. Something like the following:
- After this you will be able to type and see properly the required language in the Translation Editor.
Some more steps
But not all Delphi controls will be able to display the Unicode languages well, if your default locale is not the same as this language. In order to be able to display it, you will need either:
- To set this language as default locale. (Sometimes it is also required to set this language to the “Language for non-Unicode programs” option under Control Panel.)
- To use Unicode VCL controls instead of standard controls. TsiLang supports the Unicode controls like TMS Unicode Component Pack or LMD ElPack.
- To replace the standard VCL controls that are just wrappers for Windows controls like TButton, TCheckbox and others with the controls that take into account the Font and Charset settings whilst draw themselves. For example, you can replace TButton with TBitBtn. Also you may need to add owner-draw functionality to the controls that can’t be replaced, for example TComboBox. In that case you will need to draw each item manually in OnDrawItem event, and draw the text using the Font and Charsets settings.
The case #3 is the most complex case. The most easy cases are #2 or #1.
You can download this article in PDF format here: adding_support_for_far_east_or_other_unicode_languages.pdf.