What are the best practices while implementing globalization and localization?
The best methods while developing international language support software are shown below:-
1) Do not hardcode the strings or user interface resources.
2) make sure that your application depends on Unicode.
3) Whenever you read or write data from different encoding make sure you use the namespace System.text . Most of the programmers assume ASCII data.
4) While testing test it with the actual international data and environments.
5) Whenever we manipulate the data for instance numbers, dates or currency make sure that you are using the culture-aware classes defined in the namespace System.Globalization .
The table below specifies in more detail about the functionality and the classes to be used to achieve the same.
Figure: - Functionality and classes used
1) If the security decision is based on the result of a string comparison or case change operation, perform a culture-insensitive operation by explicitly specifying the CultureInfo.InvariantCulture property. This method ensures that the result is not affected by the value of CultureInfo.CurrentCulture.
2) Move all your localizable resources to separate the DLL's.
3) Avoid using the images and icons that contain text in your application. They are costly to localize.
4) Allow plenty of rooms for the length of the strings to expand in the user interface. In some languages, phrases can need 50-75 percent more space.
5) Using the System.Resources.The ResourceManager class to retrieve resources based on culture.
6) Explicitly set the CurrentUICulture & CurrentCulture properties in your application. Don't rely on the defaults.
7) Be aware that you can specify the following 3 types of encodings in ASP.NET:
- The requestEncoding specifies the encoding received from the client's browser.
- The responseEncoding specifies the encoding to send to the client browser. In most cases, this should be same as the requestEncoding.
- The FileEncoding specifies the default encoding for .aspx, .asmx, and .asax file parsing.