I18N and L10N: Lazy terms for important work

If you're a software developer, you're probably already familiar with these terms: I18N and L10N.

Internationalization (I + 18 letters + N = I18N)
The discipline of preparing your software to run correctly in different languages with different culture settings. For example, the software must be able to accommodate multibyte characters (such as Japanese or any of the Chinese languages), as well as display/recognize cultural differences such as date formats (the American MM/DD/YYYY versus the European DD/MM/YYYY) and currency formats. If your software has a user interface or displays messages, the text of the UI and messages must be easily swapped out for a translated version when running in a different language. With a user interface, the controls that you display must be resized or adjust their layout to accommodate longer versions of text. (For example, German words can be much longer than the English equivalent. Romance languages can use more words to express a phrase.)

Localization (L + 10 letters + N = L10N)
The discipline of translating the UI and text in your software for a specific target language.

SAS software (including SAS Foundation and apps such as SAS Enterprise Guide) is fully internationalized, and it's localized into many languages/cultures.

Just as important, SAS provides you with the tools to ensure that your SAS programs and projects can also adhere to I18N and L10N best practices. The SAS language provides a huge collection of formats and character functions that allow you to work with any culture and any character set. The programming language also features many NL* formats, which automatically adjust their behavior based on the current language settings of the application. (See the comprehensive paper: Internationalization 101: Give Some International Flavor to Your SAS Applications.)

If you need to internationalize your SAS programs. there is a new tool in SAS Enterprise Guide 6.1 to help. From the Program menu, select Analyze->Analyze for Internationalization. The tool performs a static analysis of your code to verify that it complies with I18N best practices for SAS programs.

Among other transgressions, the tool will detect:

hardcoded strings that are embedded in your code

Use of SAS character functions that might not work well with multibyte character strings

Use of SAS formats that are locale-specific

Logic that concatenates strings in a way that might produce poor translations.

If your SAS programs have to function in a global setting, or have to handle data in multiple languages, then proper I18N practices are essential to provide the best user experience and correct results.

Related topics

Babelfishing in your SAS programs
SAS Enterprise Guide tutorial in your language
Changing language in a SAS session (Tech Support paper)
SAS guide to National Language Support (NLS)
The Global English Style Guide: Writing Clear, Translatable Documentation for a Global Market by John Kohl of SAS