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


About Author

Chris Hemedinger

Director, SAS User Engagement

+Chris Hemedinger is the Director of SAS User Engagement, which includes our SAS Communities and SAS User Groups. Since 1993, Chris has worked for SAS as an author, a software developer, an R&D manager and a consultant. Inexplicably, Chris is still coasting on the limited fame he earned as an author of SAS For Dummies


  1. Kévin Mazille on

    Just a little mistake I think :
    " (the European MM/DD/YYYY versus the American DD/MM/YYYY)"
    You mean, right ? :
    (the European DD/MM/YYYY versus the American MM/DD/YYYY)
    It reminded me an european joke about american metric system:

    Thanks for all the original topics you bring on this blog :-)

    • Chris Hemedinger
      Chris Hemedinger on

      Thanks for the comment and correction, Kevin! I've corrected the text in the post to have it the right-way-around.

  2. Pingback: Adding some culture to your SAS Enterprise Guide prompts - The SAS Dummy

Back to Top