SDLC Checklist for Globalized ASP.NET Web Applications






4.75/5 (5 votes)
The purpose of this document is to list out all these points in the form of checklists.
1. Introduction
Globalization and Localization are the two main aspects of developing an internationalized application. Globalization is the process of developing a program core for the input, display, and output of a defined set of Unicode-supported language scripts and data related to specific locales hose features and code design are not solely based on a single language or locale. Localization is the process of translating and customizing an application for a specific region/culture.
Microsoft .NET has introduced a number of features which can simplify the task of preparing ‘world ready’ applications. However, for the successful completion of this task, a number of factors are to be considered in each stage of SDLC. The purpose of this document is to list out all these points in the form of checklists.
2. SDLC Checklists
There are three checklists in this document – Checklist for System Study Phase, Checklist for Design Phase and Checklist for Development Phase. As indicated by the name, each of these checklists stands for a distinct phase of SDLC. Since all these checklists can be used for testing purposes, there is no separate checklist for the same.
2.1 System Study Phase
S. No |
Check List Item |
Evaluation |
Compl- exity Factor (L/M/H) |
Remarks |
||
Yes |
No |
NA |
||||
1 |
Is there any need for displaying predefined data and objects for different languages? (eg: labels, button text, images, title etc..) |
|||||
2 |
Are the resource files being provided by the customer? |
|||||
3 |
Does the calendar controls display the Gregorian calendar always, irrespective of the language in which it is shown? (e.g.: Some customers would want an Arabic calendar for Arabic culture) .NET Framework To handle native calendar types, the .NET Framework provides the |
|||||
4 |
Has the time format been identified? It can be either a 12 hour or 24 hour clock. The characters used to separate hours, minutes and seconds a\may be different for different cultures. |
|||||
5 |
Are date/time values captured as local time zone values? It may be a requirement to store the UTC equivalent of date-time values from entered from different cultures. Use the |
|||||
6 |
Is there any requirements for alternate sort orders? Some cultures support more than one sort order. For example, the culture "zh-CN" (Chinese in China) supports a sort by pronunciation (default) and a sort by stroke count. To specify the alternate sort order, create a |
|||||
7 |
Has the paper size been identified for each culture? The paper sizes in the United States and Canada (such as letter, legal, and so on) do not satisfy the needs of all users in the world market. For example, most countries in Europe and Asia use a slightly larger standard known as "A4" (297 x 210 mm) that is slightly longer and narrower than the U.S. letter size (279 x 216 mm). Thus if your application needs to print, you should allow the default paper size to be configurable. |
|||||
8 |
Has the Unit of measurement been identified for each culture? There are different units of measurement for things like |
|||||
9 |
How is the data entered and stored into the system? Is it in local language? For storing multi-lingual data, use uni-code data types. |
|||||
10 |
Are the numbers and figures entered into the system always in English digits? E.g.: Languages like Hindi have its own number system. |
|||||
11 |
Do the users need localized thousand separators and decimal separators for the numbers and figures displayed on the system? E.g.: In Polish, the thousand separator is a space and the decimal separator is a comma. The number “2,500.70” is written in Poland as “2 500,70” |
|||||
12 |
For editable numeric fields, are the users allowed to enter thousand separators for the numbers and figures entered on the system? E.g.: In Polish, the thousand separator is a space and the decimal separator is a comma. The number “2,500.70” is written in Poland as “2 500,70”. If the user is allowed to enter the thousand separators, appropriate validations needs to be considered. |
|||||
13 |
Are the dates displayed and entered in the system in local format? |
|||||
14 |
Are the reports to be printed in local language? |
|||||
15 |
Are all the regional cultures/languages identified which are to be supported by the application? |
|||||
16 |
Is there any special culture where the layout/orientation of the resource is different from other cultures? (E.g.: Arabic language). |
|||||
17 |
Is the system testing of all cultures/languages (except the base language) being done by the customer ? (Have to consider the availability of human resources for all the required languages and the effort.) |
|||||
18 |
Is there any need for custom cultures? (e.g.: English for India) |
|||||
19 |
Is there integration with other applications where multilingual could be a challenge? |
2.2 Design Phase
S. No |
Check List Item |
Evaluation |
Compl- exity Factor (L/M/H) |
Remarks |
||
Yes |
No |
NA |
||||
1 |
Do all the database columns for storing multilingual data support Unicode? (e.g.: |
|||||
2 |
Does the application design ensure that proper culture name is supplied to the application thread? (e.g.: For India, only Hindi language is supported by the .NET, say, “hi-IN”. You cannot set the language English for India like en-IN.) |
|||||
3 |
Are all the multilingual resources identified and its resource files designed? |
|||||
4 |
Should the Multilingual resource files be one for each culture? (It can be one for each culture or a single one for all cultures. |
|||||
5 |
Does the design ensure that the culture-specific resource data is properly fitting into the available display area for all languages? Size the UI to accommodate the largest localized version of the content. |
|||||
6 |
Does the UI design take care of text alignment (eg:- RTL) as well as the alignment of controls on the page, where the screen layout/orientation is different from other cultures (eg: Arabic) ? When the screen layout/orientation is different from other cultures, it could be useful to go for separate UI. When separate UI is used for a particular culture, additional code is required to switch the UI based on culture. |
|||||
7 |
If there is any data transfer between layers using XML, is it ensured that the XML files support the Unicode to embed the multilingual data? |
|||||
8 |
Do all the messages come from an external file (e.g.:- config file) ? |
|||||
9 |
Has it been ensured that, in UI design, Do not mingle |
|||||
10 |
Has it been ensured that, in UI design, one control is not hidden behind another control? Due to language expansion issues, hiding a control behind another may not work when you localize the application. For example, a button hidden behind another button in an English language application may extend beyond the covering button when you localize the application in German. |
|||||
11 |
Has the UI design ensured that, the UI controls are not positioned/resized at run time? |
|||||
12 |
Has flow layout been used wherever RTL is applied? For greatest precision when laying out pages that will be displayed in right-to-left reading order, it is recommended that you use flow layout. |
2.3 Development Phase
S. No |
Check List Item |
Evaluation |
Complexity Factor (L/M/H) |
Remarks |
||
Yes |
No |
NA |
||||
1 |
Have the multi lingual resource files got translated into various local languages? |
|||||
2 |
The helper class for reading the resource files, formatting the data, etc. are developed? |
|||||
3 |
Is all the resource text used, being read from the correct resource ID? |
|||||
4 |
Are any labels overlapping with other controls while loading a different language with a longer translation? |
|||||
5 |
Are the validations done appropriately for numeric inputs? (e.g.: the decimal separators and thousand separators may be different for different cultures) |
|||||
6 |
Are the validations done appropriately for |
|||||
7 |
Are the validations on dates done correctly? (Note: This will largely depend on how the user input the dates. If it is a manual entry, it would be very challenging to do the validations. Usage of calendar controls are recommended.) |
|||||
8 |
If the data is being passed into the SP as XML, is the parameter in the SP for getting the XML declared as |
|||||
9 |
Is proper format provider is used with
|
|||||
10 |
Is proper number format ensured in XML data passed to stored procedures? When the thread culture is set and the output of |
|||||
11 |
Are proper Culture values set for the ' The Culture value determines or influences results of culture-dependent functions, such as displaying the date. The |
|||||
12 |
Are there any text messages created dynamically at run time ? Do not create a text message dynamically at run time, either by concatenating multiple |
|||||
13 |
Has it been ensured that parametered The use of parametered |
|||||
14 |
Is there any text used in bit maps? Avoid text in bitmaps and icons, as these are difficult to localize. |
|||||
15 |
Are all the localizable resources separated from the source code? Do not hard code |
|||||
16 |
Has it been ensured that the client side is configured with proper UI language and cultural preferences? Use |
3. Reference
- Globalizing Web Forms Pages
- Globalization issues in ASP.NET 1.x
- Localization Preparation
- Isolating Localizable Resources
- Preparing the User Interface for Localization
4. Abbreviations
Abbreviation |
Expansion |
UOM |
Unit of Measurement |
SDLC |
Software Development Life Cycle |
RTL |
Right to Left |
SP |
Stored Procedure |
XML |
Extensible Markup Language |
UI |
User Interface |
LCID |
Locale Identifier |