Paying Attention to Small Details with a Big Impact

Glossary

Languages and cultures are unique in more ways than are revealed by their rules for formatting numbers and dates, sorting words, and mapping letters from uppercase to lowercase. They also handle spelling, grammar, and formatting standards for business letters or other documents differently. You'll need to do your own homework to determine the correct behavior for locale-sensitive features that Windows doesn't handle automatically. The appendixes in this book lend some guidance, but you'll need to consult other sources for more detailed information, such as government standards manuals, books on languages or linguistics, and data from research organizations.

In particular, pay attention to linguistic nuances that might seem trivial but could have a large impact on application design and functionality. For example, Windows allows you to convert characters into uppercase or lowercase equivalents using LCMapString or the function calls CharLower, CharLowerBuff, CharUpper, and CharUpperBuff, and some applications use this feature to automatically convert the first letter of every sentence into uppercase or assume that certain types of words should always be capitalized. In Russian, however, names of the days of the week are never capitalized—capitalizing the word for Wednesday changes the meaning to environment, and capitalizing the word for Sunday changes the meaning to resurrection.

Remember that some linguistic conventions are universal and some are not. Many languages use the character 4 to represent the numeric concept, but they use various words to represent it: cuatro, fier, four, quatre, and so on. In creating sort keys for a French phone book, for example, it would make sense to substitute all instances of the character 4 with quatre. Then all business names that begin with the number 4 would appear in the Q section of the phone book, where a reader would expect to find them. As you develop localized products, you will come across language sensitive issues that Windows does not address. It's up to you to design intelligent algorithms to handle them.