How do I use ResourceBundle for i18n?
Category: java.util, viewed: 3254 time(s).
Creating an application for users in different regions can be hard in term of the message format for the local region. Java provide a ResourceBundle class that help internationalize our application.
To create resources for i18n (there are 18 letters between the first i and the final n) we need to create a file for each locale our application supported. The file name must be ended in language_COUNTRY.properties. For instance a resource bundle for Locale.UK will be MessagesBundle_en_GB.properties.
When the bundle has been loaded we can use bundle.getString(key) to read specific message from our resource bundle file.
package org.kodejava.example.util; import java.util.Locale; import java.util.ResourceBundle; public class InternationalizationDemo { public static void main(String[] args) { // // Load resource bundle for Locale.UK locale. The resource bundle will // load the MessagesBundle_en_GB.properties file. // ResourceBundle bundle = ResourceBundle.getBundle("MessagesBundle", Locale.UK); System.out.println("Message in " + Locale.UK + ": " + bundle.getString("greeting")); // // Change the default locale to Indonesian and get the default resource // bundle for the current locale. // Locale.setDefault(new Locale("in", "ID")); bundle = ResourceBundle.getBundle("MessagesBundle"); System.out.println("Message in " + Locale.getDefault() + ": " + bundle.getString("greeting")); } } |
Below are some example of our resource bundle files, these files should be located in our application classpath to enable the ResourceBundle class to read it.
MessagesBundle_en_GB.properties
greeting=Hello, how are you?
MessagesBundle_in_ID.properties
greeting=Halo, apa kabar?
Related Examples
- How do I sort items of an ArrayList?
- How do I sort array values in case insensitive order?
- How do I sort array values in descending order?
- How do I convert milliseconds value to date?
- How do I split a string using Scanner class?
- How do I read file using Scanner class?
- How do I read / write data in Windows registry?
- How do I read user input from console using Scanner class?
- How do I convert time between timezone?
- How do I set a default Locale?