This article is compatible with the latest version of Silverlight.
Download the source code
This is the first in a series of blog posts around the topic of internationalization in Silverlight. Many of today’s LOB (line-of-business) applications require support for multiple user languages, and even those that do not yet would benefit from the techniques outlined in this series.
In my position as a Developer Evangelist for Telerik’s XAML product line (Silverlight and WPF) I am frequently asked questions about how to internationalize a Silverlight app. I poked around on Google and found that there wasn’t very much information on this subject, and most of it was out of date, so I figured it would be appropriate to put together this series.
Please note that when I use the term internationalization, I am referring to the ability to present an application in multiple languages. For more information on terminology, please read my next post.
MSDN documentation for the topics around internationalization/globalization/localization can be found here:
http://msdn.microsoft.com/en-us/library/cc189057(VS.96).aspx
The MSDN documentation covers a certain level of detail that I do not cover, but in this series I will try to use more of a layman’s terms approach, and I will cover quite a bit of material not covered in the MSDN docs that you may find useful.
NOTE 1: The source code that is available for download at the top of the page is written in Silverlight 4 (using VisualStudio 2010 Beta 2). Sorry! but the same code that I include in the posts could be copied into a Silverlight 3 project.
NOTE 2: The attached solution (source code) also gives you an opportunity to experiment with the Telerik LocalizationManager approach outlined in the Implementation Options post (Part 4). I will provide links to a couple of posts on my Telerik blog site that talk a bit more about that approach.
Here is a listing of the posts in this series. The first few posts lay some groundwork, then we get into a step-by-step code sample, and then I talk about some other important considerations:
Part 1 - Terminology
Part 2 - Should I internationalize?
Part 3 - What is a .resx file, and how do I use it?
Part 4 - Implementation options
Part 5 - Step-by-step – MVVM approach
Part 6 - Naming
Part 7 - Dates and images
Part 8 - UI design / layout implications
Please note that some of the material I cover in this series is not exclusive to Silverlight. Internationalization in Silverlight is in many ways similar to other .NET technologies, like ASP.NET and WPF.