When developing ESL applications to be translated, the developer needs to be aware of internationalization issues and of how to externalize strings. The program can be developed or modified normally, without using external strings.
When a significant milestone is reached or when done with development, compile with -xstr. If a previous version of the program has been translated, be sure to use the previous resource file as input so the strings that have not changed have the same identifiers.
If necessary, edit the resource file:
•Indicate which strings should not be translated by changing string definitions to notxs comments.
•Perhaps renumber new strings, if you want to group strings by some category.
•Remove any unneeded strings.
•Be sure to recompile the program with the edited resource file.
Create the external string DLL from the resource file and test the applications. The applications should behave just like they were not using external strings.
Create a translated resource file, or just make a copy of the resource file and modify each string. For example, add an "x" to the beginning of each translatable string. Create the external string DLL from the modified resource file and test the application again. This time, the application should behave the same, but all visible strings should be the translated or modified strings.
When translating the resource file it is important to use a text editor which displays the correct character set or code page. In Windows this means using a Windows Editor, such as Notepad, since it displays text as ANSI characters. For further information, see Character Sets.
When testing with a translated DLL, watch for the following errors. Testing the application with a modified, but untranslated resource file will reveal some of these types of errors.
•A string in the resource file may not have been translated.
•The meaning of a string and how it is used may not be understood by the translator. (It can be useful to add comments to the resource file to explain the context for unclear or confusing strings.)
•Some strings may be constructed from substrings, so it is difficult to translate them correctly. (The Substitutel to Substitute9 ESLSTR functions can be helpful in handling this situation.)
•Some text may not be externalized that needs to be translated. (Review the description of what is and what is not externalized, in the preceding sections.)
•The behavior of the application changes. This may be caused by a string that is used within the program or to communicate with other programs being translated when it should not be. Also watch for cases when the same string is used both as user-visible text and as program control information.