Can we get a strongly typed resource class?
You can now get strongly types classes in the VS.NET intellisense as shown in the figure below.
Figure: - Strongly typed resource class
All belongs to the Resources namespace. Let do a small sample and see how the strongly typed classes work in the VS.NET 2005 and the simplicity which they bring while implementing globalization in the projects. The screen shot of the project is shown below. It is basically a simple login screen with user id and password text boxes. The User has options to select the language. Currently only two languages are provided English & Greek. Depending on the selected languages the user id and password label values will be displayed.
Figure: - Strongly typed project
The code snippet below describes the various important parts of the code. The First thing is the resource files. We have generated two resource files one for Greece with el and the second is the general resource file which will be used when the regional code does not match.
Figure: - Walkthrough for using the resources namespace
There are three main steps in the code:-
1) The First step is to set the culture information for the current thread with the new culture info object. The StrCulture has the language code which is presently selected in the drop down.
Thread.CurrentThread.CurrentCulture = new CultureInfo(strCulture);
2) We set the similar culture to the Resource class.
Resources.Resource.Culture = Thread.CurrentThread.CurrentCulture;
3) Now we are all set to use the value.
lblUserId.Text = Resources.Resource.lblUserIdResource1.ToString();
lblPassword.Text = Resources.Resource.lblPasswordResource1.ToString();