The State of Things – I18N and L10N
This is the third part of a (hopefully) five part series on building WPF or Silverlight controls that are look-less, designable, provide a good design-time experience as well as being testable. So far we have covered the basic control here and the look-less extension here. Now it is time to consider the cultural aspects of developing in WPF/Silverlight for the world market. The general approach that I have taken is based on a previous blog here.
So what does this look like for our small SearchControl?
After following the excellent advice above 🙂 I found the most difficult part was defining the different resource files for each culture. However, this was simplified when I came across a super application called the “Zeta Resource Editor“. This tool is excellent for doing this type of prototyping and initial I18N development. Of course the disadvantage here is that the developer will not be a language expert in all the languages the software will be delivered in. This would not be a problem in a large international company as these companies will always have some documentation/marketing/translation department that deals will all these issues. In this case the developer would only be required to deliver the base resource RESX file with a single language (normally English or the originating land where the application is being developed). The Zeta tool allowed me to quickly get some “translations” as it is also linked in to the major web-base translation services such as Bing or Babelfish. Okay, this might result in nonsensical translations but it does give a certain believability to the development process.
Additions to the projects to support I18N
Along with the fallback resource file “Resources.resx” I have added support for German, French, Hebrew (Israel) and Japanese to both the control project and the application as shown in the next two screenshots.
Zeta Resource Editor
Start the editor and navigate to the Resource directory for the project – this is normally the Properties directory. Once there add all the resource files found there to the Zeta (more on this see here). The screenshot below shows the sample application with the single resource for the test in the Enable button.
I will not go into here the way I used to get the translations I used but it is quite simple after about 30 minutes within the Zeta Resource Editor. Upon saving the Zeta project then everything is available for the correct text display in the supported languages. Now all that is left is to change the locale and culture setting in Windows to one of the supported ones and start the application. The final application in English (the development language)
The application in German.
The final application with a Hebrew culture defined is shown below:
That’s all Folks…