/* * Weblounge: Web Content Management System * Copyright (c) 2003 - 2011 The Weblounge Team * http://entwinemedia.com/weblounge * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package ch.entwine.weblounge.common.language; import java.io.Serializable; import java.util.Locale; /** * A <code>Language</code> consists of a language identifier, e.g. * <code>de</code> to identify the German language, and of the language * description in the various supported languages. There is also a connection * to the associate <code>Locale</code>. * * @see Locale */ public interface Language extends Serializable, Comparable<Language> { /** * Returns the locale that is associated with the language. * * @return the locale */ Locale getLocale(); /** * Returns the name of this language in its own language, e.g * <ul> * <li><code>English</code> for English</li> * <li><code>Deutsch</code> for German</li> * <li><code>Français</code> for French</li> * </ul> * * @return the language name in its own language */ String getDescription(); /** * Returns the name of this language in the specified language, e.g given that * <code>language</code> was <code>German</code>, this method would return: * <ul> * <li><code>Englisch</code> for English</li> * <li><code>Deutsch</code> for German</li> * <li><code>Französisch</code> for French</li> * </ul> * * @param language * the language version of this language * @return the language name in the specified language */ String getDescription(Language language); /** * Returns the language's identifier, which corresponds to the locales * name for this language. * * @return the language identifier */ String getIdentifier(); }