Design Notes

User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:

  1. Use user preference for this package (stored in ad_locale_user_prefs)

  2. Use system preference for the package (stored in apm_packages)

  3. Use user's general preference (stored in user_preferences)

  4. Use Browser header (Accept-Language HTTP header)

  5. Use system locale (an APM parameter for acs_lang)

  6. default to en_US

For ADP pages, message key lookup occurs in the templating engine. For Tcl pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is found, then that locale is offered instead.