Text.java

package org.microcol.gui;

import java.util.Locale;
import java.util.ResourceBundle;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.inject.Inject;

/**
 * Provide localized text strings. Strings are loaded from localized resource
 * bundles.
 * 
 */
public class Text {

	private final static Logger logger = LoggerFactory.getLogger(Text.class);

	private final static String RESOURCE_BUNDLE_NAME = "localization";

	public static Text INSTANCE;

	public static enum Language {
		en(new Locale("en", "US")), cz(new Locale("cs", "CZ"));

		private final Locale locale;

		private Language(final Locale locale) {
			this.locale = locale;
		}

		public Locale getLocale() {
			return locale;
		}

	}

	private ResourceBundle bundle;

	@Inject
	public Text(final Language language) {
		setLanguage(language);
		INSTANCE = this;
	}

	public void setLanguage(final Language language) {
		bundle = ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME, language.getLocale());
		logger.debug("Language " + language + " was set.");
	}

	public String get(final String key) {
		return bundle.getString(key);
	}

}