Planning for Localization

Localization can be an elusive requirement for a website. During the platform selection process, internationalization is often listed as a “strong” requirement. Why wouldn’t you want the ability to reach new markets? Then, during the implementation process, localizing gets downgraded as a “nice to have” or “future” requirement as time and resources dwindle and compromises need to be made to launch the primary language site. Eventually, localization becomes an “oh crap” requirement when someone expects to have a “Spanish version of the site up ASAP”. After all, localization was part of the business case and a key selling point of the platform. Yes, localizing the site would have been as easy as hiring translators if only some accommodations had been made during initial implementation. But they were not. Hence the “oh crap.”


  1. Learn how internationalization works on your platform.


  2. Use the translation framework provided from the templating system.

    Any given web page will have a lot of static text that lives in templates (as opposed to in the content). For example, there might be a label on the upper right that says “search” or a copyright statement on the bottom of the page. It is not practical to manage these little “content crumbs” through your usual editorial workflow — they are small, numerous, easy to lose track of, and rarely change. But if you are planning on localizing your site, you don’t want those strings in your templates either. It is much better manage these strings separately in “resource” or “message” files that can be shipped off to translators. Most templating languages come with a system for invoking externally managed strings. For example, in JSP Standard Tag Library, translated strings are invoked like this:

    <fmt:message key="some.text"/>

    In eZ Publish they look like this:


    Setting this up is easy enough to do when you are building out your templates for the first time. However, it is very tedious to retrofit old mono-lingual templates with this system. You wind up doing it for templates that are no longer used “just in case.” Worse of all, you have to visually re-inspect every pixel of the site because you are touching nearly every line of view code.

  3. Keep text out of images.


  4. Make room for other languages.


  5. Buy your top level domains NOW.


  6. Set the appropriate character encoding


If you think localization may be in your future, plan for it now. Take the additional steps to reduce rework and risk when you are under the gun to get that new language published. If you didn’t follow this advice, I would look into translation proxies.