Localization And Internationalization Testing: Basics Of Concepts, Scope And Features
Globalized software is software that functions equally well regardless of geographic, cultural, and national environments. Globalization testing focuses on identifying potential problems in product design that could damage globalization. For example, the developer must lay the foundation for vertical text in CSS, if in the future it is planned to localize the product to a […]
QA/Testing
Globalized software is software that functions equally well regardless of geographic, cultural, and national environments. Globalization testing focuses on identifying potential problems in product design that could damage globalization.
For example, the developer must lay the foundation for vertical text in CSS, if in the future it is planned to localize the product to a language with vertical text. The ability to process postal codes for different countries (somewhere numbers, somewhere numbers with letters, etc.) must also be prepared. It ensures that the code can handle the desired international support without breaking any functionality. It also guarantees there won’t be any data loss and display issues.
Localization and Internationalization: Basic Concepts
Localization is the process of adapting a software product to the client’s language and culture. This adaptation process includes:
- Translation of the user interface.
- Documentation translation.
- Date and time format control.
- Attention to monetary units.
- Attention to legal features.
- User keyboard layout.
- Control of symbols and colors.
- Interpretation of text, symbols, signs.
- And other similar aspects.
Internationalization is a more generalized concept that involves the design and implementation of a software product or documentation in a way that will simplify application localization as much as possible.
Internationalization includes:
- Creation of a product taking into account the possibility of Unicode encoding (an encoding standard that supports almost all languages of the world).
- Creating in the application the ability to support elements that cannot be localized in the usual way (vertical text of Asian countries, reading from right to left of Arab countries, etc.).
- The possibility of loading localized elements in the future if the user wishes.
So, the main difference between localization and internationalization is as follows:
Localization testing
1. Localization is defined as adapting the content of a product, program, or document to the cultural, linguistic, and other requirements of a specific region.
2. Localization focuses on online help, GUI context, dialog boxes, error messages, readme/tutorials, user guides, release notes, installation guide, etc.
3. Localization itself means a specific local language for any given region.
4. Localization is not at the user interface level.
5. Localization is called l10n.
Internationalization testing
1. Internationalization is the process of designing and developing a product, program, or document content that provides localization.
2. Internationalization focuses on compatibility testing, functionality testing, compatibility testing, usability, installation testing, user interface validation testing.
3. The program code does not depend on the language.
4. Internationalization is at the project level.
5. Internationalization is called i18n.
Field of testing
1) Language
- Unicode text to satisfy character encoding
- Numerical systems
- Writing instructions
- Spelling options
- Capitalization and sorting rules
- Key combinations and layouts
2) Culture and region
- Names and titles
- State numbers (social security number – USA) and passports
- Colors and images
- Phone numbers, zip codes, address formats
- Paper sizes
- Weights and measures
- Currency symbol and currency market position
3) Dates and important events
- Date and time formats
- Types of calendars (Gregorian, lunar, etc.)
- Number formats (decimal separators, number grouping, etc.)
Best practices for internationalization testing
1) Content localization
Localized content includes graphics as well as text. Static and dynamic content displayed in the interface.
Static content such as tabs, buttons, web element labels and nomenclature, welcome message, help text, tooltip, etc.
Dynamic content, such as a message displayed when a form is filled out, an error-checking message, or a required field does not populate other user messages, etc. This type of language testing is either performed by language experts or checked against a properties file. sent by the client which contains English to another language which means display.
2) Based on functions
Depending on the region, some features are available and others are not. Testers must ensure that the feature is hidden for the region it does not apply to, and must be visible and functional for users in the region it does apply to.
3) Locality/cultural awareness
Local/cultural awareness includes understanding the difference between dates and number formatting used in different regions. This includes calendar differences, holidays and festivals, date formatting, time formatting, currency, number formatting, address, phone numbers, zip codes or no zip codes, units of measurement, and more.
Since we are dealing with different local data, there must be a conversion of the data from one encoding format to another. A very good understanding of encoding formats and conversion to and from the format is crucial as this can also lead to data loss.
4) User interface
The user interface should be tested for compatibility with all language content. It should change to accommodate longer text without distorting the alignment.
Text for a certain language takes up more space than others, so the interface must be able to adapt to this change without being distorted. For example, German text takes up more space to convey the same information compared to English. Therefore, the interface must be adaptable.
5) Visualization
It is important to check that all supported scripts are displayed correctly according to the language symbols associated with them. When viewing a page in a specific language, the scripts must execute properly, meaning no script error should be displayed, and all characters should be displayed in the specific language.
Different characteristics of symbol rendering include bidirectionality, context-sensitive shaping, reordering, and combination of symbols. Others include word breaks, line breaks, formatting like alignment or left/right alignment, etc.
6) File transfer
If the application includes a file transfer operation, we need to check whether the file transfer interface is localized according to the selected language. The file is transferred successfully or not, and the transferred file is not corrupted.
It is important to specify the encoding format when reading a file that contains Unicode characters. The default encoding is UTF-8 when nothing is specified. Text files saved in UTF-16 encoding format when read using UTF -8 will display garbled text. Hence, encoding plays a very important role in file transfer.
7) Database
Database testing for internationalized applications will consist of Unicode character support in the database. Special data types are available for this. Data types such as nchar, nvarchar, and ntext are defined by SQL Server to help store Unicode characters.
Then the prefix stands for national Unicode data types. These n prefix data types are used in the same way as the original char, varchar, and text data types. The only difference is that the prefix n data type also supports the following:
- More disk space is required
- More characters are supported
- The maximum size for nchar and nvarchar is 4000, and for char and varchar – 8000
Working with N-prefix data types is the same as with normal ones. Care must be taken when migrating a database. The correct data types must be mapped to the migration or data will be lost.
Is automation possible?
Testing an internationalized program is always a challenge for the organization. Each language supported by the application can multiply the number of tests required for testing. If the organization uses automation extensively, is it possible to create and maintain automation scenarios for a product of this volume and type?
To solve this problem, you actually need to create test scripts that can be easily extended to support multiple languages.
As discussed above, if an application is built using I18N and L10N practices, to create a non-language sensitive base version in which the properties file is used to satisfy language requirements. The program reads from the corresponding properties file at runtime to render it in the selected language. Therefore, the basic version of the application is only one, which has the ability to change the language of the user interface when needed.
This made it possible to automate the internationalized application, since the test scripts are written only for the base version and are easily executed for all languages.
Before we start automating, we need to confirm that the names or IDs assigned to all the elements in the windows do not change with the language change. All objects on a web page, such as text boxes, radio buttons, drop-down menus, checkboxes, hyperlinks, pop-ups, lists, etc., must have a unique identifier (such as name or ID) that must be language-independent.
Writing test cases
When writing test cases, you can be guided by the following tips:
1. Check all localized strings for accuracy, completeness, and consistency.
2. Check the behavior of the software when switching languages or locales.
3. Check the correct functioning of regional functions and settings.
4. Evaluate the layout and alignment of localized UI elements in different languages and character sets.
5. Check the handling of localized data formats such as dates, times, and numbers.
6. Check software compatibility with various language testing tools and frameworks.
Useful tips for testing localization and internationalization
1. Learn about the language, culture and regional preferences of the target country. This will help you better understand the expectations and specific localization requirements.
2. Develop a comprehensive test plan specifically designed for localization/internationalization testing. Outline the test scope, objectives, test cases, and resources required for effective testing.
3. Work with native speakers of the target language to check translations, grammar, and cultural appropriateness. Their experience will help ensure accurate localization.
4. Develop checklists to cover critical aspects of localization testing, such as user interface elements, language translation, date/time formats, number formats, and currency symbols. These checklists will serve as a handy reference during testing.
5. Ensure that the software correctly handles different character sets and scripts. Test with languages that use different character sets, such as Latin, Cyrillic, Arabic, or Chinese.
6. If the software supports bidirectional languages, such as Arabic or Hebrew, ensure that user interface elements, text alignment, and interaction are handled appropriately.
7. Languages differ in text length, which may affect the layout and interface elements. Make sure the software supports expanding and collapsing text without breaking the user interface or overlaying content.
8. If the software includes language-specific features such as spell checking, input methods, or transliteration, carefully test them for functionality and accuracy.
9. Test in real-world scenarios to evaluate how localized software performs under different network conditions, regional settings, or user interactions.
10. Perform regression testing to ensure that localized changes or additions do not cause problems or break existing software features.
Conclusion
For companies deploying global products, internationalization and localization testing are important because they help shape the product for the appropriate markets (ie, global and local). However, there is a subtle difference when it comes to localization and internationalization testing.
Therefore, developers and QA need to understand the nuances behind the difference between localization and internationalization testing in order to prioritize a testing strategy that meets the product requirements.
Swan Software Solutions provides quality assurance services, high-quality custom software, and cybersecurity services. To find out more about how we can help your company with its technology needs, contact us to schedule a free assessment.