Which is the suggested workflow to make an application i18n aware and how can Globalyzer help us with the following?

1. Analysis

2. Scoping

3. Build, verify

4. QA

We assume you’re referring to a code base that has not been internationalized. Your order is correct, and Globlayzer will help with finding the issues and getting the work done. Globalyzer also helps in ongoing development in ensuring that your application stays internationalized.

What is Unicode and why should it be used?

Unicode is a character set that encompasses (most) all the world’s language characters. There are various encoding formats for Unicode: UTF-8, UTF-16, UTF-32. Using Unicode enables your software to support worldwide character sets with one code base.

How would string comparisons be non-internationalizable?

Because they perform binary collation rather than linguistic collation. Binary collation means that they sort characters based on their encoding values. For example the ASCII a-z would sort before à. Whereas in a linguistic sort, the à would sort after a.

Should we always use Microsoft-specific "C++ Generic" mappings for data types, routines, and other objects?

If your C++ application is running on Windows platform, then it is a good idea to use the generic mappings because, in theory, you can switch from single-byte to wide-character support with just a flip of a compiler switch. This allows your teammates to continue to be able to run the application, while you internationalize it. At some point, you then flip to a Unicode compile. Globalyzer can help you in this process. Just create a C++ Rule Set with the Windows Generic variant so that when Globalyzer scans your C++ code, it will include detection of methods that are not of the generic form.