All localization experts recommend planning localization right from the beginning of your software development project. Most software developers do not follow this advise. Often, the requirement to localize a project is not even raised before the development has been completed.
The Multi-Language Add-In is designed to help you add localization support to your project at any stage during its development, or after completion of the development.
In the .NET type system, properties of controls which require translation are assigned the Localizable attribute. The Add-In identifies all properties with the Localizable attribute and shows them in the grid editor.
The Add-In scans the source code of each component and shows all text strings in the grid editor. You can select the texts which actually require translation with a simple check box next to each text.
Lines in the source code, which contain strings which do not require translation, can be hidden by adding the comment 'MLHIDE or //MLHIDE to the end of the line. This can be added simply by clicking on an icon at the start of each line in the grid.
Initially, the Add-In shows all string properties which have the Localizable attribute. In practice, this may mean that a lot of properties are shown, which you are not using in your project. In this case, you can hide these properties.
Often you will have to send your texts to a translator. Using the Add-In you can export the texts which require translation to an Excel file in a format suitable for translation. After translation you can import the translated texts back into the Visual Studio project.
The Add-In stores all translations in a project database file in Access 2000 format.
The Add-In can add a Language-Selection form to your project and show this form when the application starts. This gives the user (or tester) the chance to select the language used in the application.
The form is copied from a template file, which you can edit to suit your requirements.
The Add-In can add a Language-Selection control to your project. If you place this control on an ASP.NET page, then it will provide a drop down list to select the language used for the ASP session.
The Add-In can add support for changing the language of the User Interface at any time when your application is running.
If you are able to translate the project yourself, then it couldn't be easier. After scanning your project, the texts in your project are presented in two simple grid editors - for the properties of controls and for strings in the source code - with columns for each language.
You can edit all texts directly in the grid.
The .NET runtime environment provides full support for far eastern languages.
The grid editor in the Add-In supports the use of an Input Method Editor (IME) for far eastern languages.
The Add-In allows you to switch quickly between languages in designer windows (for Forms or UserControls) using a drop down list of languages which are used in your project.
This allows you to see exactly what a Form or UserControl will look like in each language. If necessary, you can adjust the size of controls or of a form for a specific language.
As soon as you start editing the text of string from the source code, the Add-In opens the component in a text editor window and shows the associated line in the file.
The Add-In also has a button to locate the line in grid editor for a string selected in a text editor window.
Some strings, such as OK and Cancel, are used repeatedly in a project.
The Multi-Language Add-In starts by assuming that identical strings will be translated in the same way at all places in your project. This means that you only need to translate these terms once.
When you edit the translation of a string which is used at multiple locations, the Add-In gives you the option to apply the translation to all occurrences of the string, or only to selected instance.
The Add-In contains a flexible search dialog, to search for text strings used in your project.
The Global Database is a project-independent database of commonly used translations. After scanning a project for strings, the Add-In automatically searches for translations in the Global Database (this can be disabled in the setup dialog).
The Add-In is installed with a Global Database containing many commonly used terms, such as OK and Cancel, in a number of languages.
A difficult task, which must be performed by the programmer and not the translator, is to identify which strings in the source code require translation and, just as important, which strings should not be translated.
In many cases, this can be achieved by searching with regular expressions. Using this feature, you can automatically hide, show, select or deselect strings in the source code which match a regular expression.
To make this feature more flexible, the user can choose whether to match the quoted string, or the complete source code line. By searching the complete line of code, you can - for example - easily find strings supplied as parameters to a specific function.