/******************************************************************************* * Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se). * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0-standalone.html ******************************************************************************/ package se.unlogic.standardutils.i18n; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public enum Language { Abkhaz("ab"), Afar("aa"), Afrikaans("af"), Akan("ak"), Albanian("sq"), Amharic("am"), Arabic("ar"), Aragonese("an"), Armenian("hy"), Assamese("as"), Avaric("av"), Avestan("ae"), Aymara("ay"), Azerbaijani("az"), Bambara("bm"), Bashkir("ba"), Basque("eu"), Belarusian("be"), Bengali("bn"), Bihari("bh"), Bislama("bi"), Bosnian("bs"), Breton("br"), Bulgarian("bg"), Burmese("my"), Catalan_Valencian("ca"), Chamorro("ch"), Chechen("ce"), Chichewa_Chewa_Nyanja("ny"), Chinese("zh"), Chuvash("cv"), Cornish("kw"), Corsican("co"), Cree("cr"), Croatian("hr"), Czech("cs"), Danish("da"), Divehi_Dhivehi_Maldivian("dv"), Dutch("nl"), Dzongkha("dz"), English("en"), Esperanto("eo"), Estonian("et"), Ewe("ee"), Faroese("fo"), Fijian("fj"), Finnish("fi", "Suomi"), French("fr"), Fula_Fulah_Pulaar_Pular("ff"), Galician("gl"), Georgian("ka"), German("de"), Greek_Modern("el"), Guarani("gn"), Gujarati("gu"), Haitian_Haitian_Creole("ht"), Hausa("ha"), Hebrew_modern("he"), Herero("hz"), Hindi("hi"), Hiri_Motu("ho"), Hungarian("hu"), Interlingua("ia"), Indonesian("id"), Interlingue("ie"), Irish("ga"), Igbo("ig"), Inupiaq("ik"), Ido("io"), Icelandic("is"), Italian("it"), Inuktitut("iu"), Japanese("ja"), Javanese("jv"), Kalaallisut_Greenlandic("kl"), Kannada("kn"), Kanuri("kr"), Kashmiri("ks"), Kazakh("kk"), Khmer("km"), Kikuyu_Gikuyu("ki"), Kinyarwanda("rw"), Kirghiz_Kyrgyz("ky"), Komi("kv"), Kongo("kg"), Korean("ko"), Kurdish("ku"), Kwanyama_Kuanyama("kj"), Latin("la"), Luxembourgish_Letzeburgesch("lb"), Luganda("lg"), Limburgish_Limburgan_Limburger("li"), Lingala("ln"), Lao("lo"), Lithuanian("lt"), Luba_Katanga("lu"), Latvian("lv"), Manx("gv"), Macedonian("mk"), Malagasy("mg"), Malay("ms"), Malayalam("ml"), Maltese("mt"), Maori("mi"), Marathi("mr"), Marshallese("mh"), Mongolian("mn"), Nauru("na"), Navajo_Navaho("nv"), Norwegian_Bokm�l("nb"), North_Ndebele("nd"), Nepali("ne"), Ndonga("ng"), Norwegian_Nynorsk("nn"), Norwegian("no"), Nuosu("ii"), South_Ndebele("nr"), Occitan_after_1500("oc"), Ojibwa("oj"), Old_Church_Slavonic_Church_Slavic_Church_Slavonic_Old_Bulgarian_Old_Slavonic("cu"), Oromo("om"), Oriya("or"), Ossetian_Ossetic("os"), Panjabi_Punjabi("pa"), Pali("pi"), Persian("fa"), Polish("pl"), Pashto_Pushto("ps"), Portuguese("pt"), Quechua("qu"), Romansh("rm"), Kirundi("rn"), Romanian_Moldavian_Moldovan("ro"), Russian("ru"), Sanskrit("sa"), Sardinian("sc"), Sindhi("sd"), Northern_Sami("se"), Samoan("sm"), Sango("sg"), Serbian("sr"), Scottish_Gaelic_Gaelic("gd"), Shona("sn"), Sinhala_Sinhalese("si"), Slovak("sk"), Slovene("sl"), Somali("so"), Southern_Sotho("st"), Spanish_Castilian("es"), Sundanese("su"), Swahili("sw"), Swati("ss"), Swedish("sv", "Svenska"), Tamil("ta"), Telugu("te"), Tajik("tg"), Thai("th"), Tigrinya("ti"), Tibetan_Standard_Tibetan_Central("bo"), Turkmen("tk"), Tagalog("tl"), Tswana("tn"), Tonga_Tonga_Islands("to"), Turkish("tr"), Tsonga("ts"), Tatar("tt"), Twi("tw"), Tahitian("ty"), Uighur_Uyghur("ug"), Ukrainian("uk"), Urdu("ur"), Uzbek("uz"), Venda("ve"), Vietnamese("vi"), Volapk("vo"), Walloon("wa"), Welsh("cy"), Wolof("wo"), Western_Frisian("fy"), Xhosa("xh"), Yiddish("yi"), Yoruba("yo"), Zhuang_Chuang("za"), Zulu("zu"); private final String code; private final String localName; Language(String code) { this(code, null); } Language(String code, String localName) { this.code = code; this.localName = localName; } public String getLanguageCode() { return this.code; } /** * Returns the Language from its corresponding language code * * @param code * @return Language */ public static Language getLanguage(String code) { for (Language language : Language.values()) { if (language.code.equals(code)) { return language; } } return null; } public Node toXML(Document doc) { Element languageElement = doc.createElement("language"); Element nameElement = doc.createElement("name"); nameElement.setTextContent(this.name()); Element codeElement = doc.createElement("code"); codeElement.setTextContent(this.code); Element localNameElement = doc.createElement("localName"); localNameElement.setTextContent(this.localName == null ? this.name() : this.localName); languageElement.appendChild(nameElement); languageElement.appendChild(codeElement); languageElement.appendChild(localNameElement); return languageElement; } }