package org.springframework.roo.addon.web.mvc.i18n.components;
import java.io.InputStream;
import java.util.Locale;
/**
* This interface is needs to be implemented by translation providers for the
* Roo MVC JSP scaffolded UI.
*
* @author Stefan Schmidt
* @since 1.1
*/
public interface I18n {
/**
* The input stream for the flag graphic (must be a png image 16 x 11
* pixels, 72 DPI). Preferred flag icon set is the Fam Fam Fam set at
* http://www.famfamfam.com/lab/icons/flags/
*
* @return the flag image stream
*/
InputStream getFlagGraphic();
/**
* The language label to be presented in the Web UI (ie: "English")
*
* @return the language
*/
String getLanguage();
/**
* The locale can be initialized statically or by using the constructor if
* the langauge is not statically supported or if a country specific
* language translation is provided (ie en_AU): static: Locale.ENGLISH
* constructor (no country): new Locale("en"); // Lowercase two-letter
* ISO-639 code. constructor (country specific): new Locale("en", "AU"); //
* Language lowercase two-letter ISO-639 code, country uppercase two-letter
* ISO-3166 code.
*
* @return the locale
*/
Locale getLocale();
/**
* The input stream for the translated message bundle. It will be saved in
* the addon according to the locale provided (ie messages_en.properties, or
* messages_en_AU.properties)
*
* @return the message bundle input stream
*/
InputStream getMessageBundle();
}