ResourceBundle.getBundle( ) locates a file with the named resource bundle name (Menus in the previous example), plus an underscore and the locale name (if any locale is set), plus another underscore and the locale variation (if any variation is set), plus the extension .properties . If a variation is set but the file can't be found, it falls back to just the country code. If that can't be found, it falls back to the original default. Table 15-1 shows some examples for various locales.
Table 15-1. Property filenames for different locales
Locale | Filename |
---|
Default locale | Menus.Properties |
Swedish | Menus_sv.properties |
Spanish | Menus_es.properties |
French | Menus_fr.properties |
French-Canadian | Menus_fr_CA.properties |
Locale names are two-letter ISO language codes (lowercase); locale variations are two-letter ISO country codes (uppercase).
Setting the locale
On Windows, go into Regional Settings in the Control Panel. Changing this setting may entail a reboot, so exit any editor windows.
On Unix, set your LANG environment variable. For example, a Korn shell user in Mexico might have this line in his or her .profile :
export LANG=es_MX
On either system, for testing a different locale, you need only define the locale in the System Properties at runtime using the command-line option -D, as in:
java -Duser.language=es Browser
to run the program named Browser in the Spanish locale.