All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.neovisionaries.i18n.LanguageAlpha3Code Maven / Gradle / Ivy

/*
 * Copyright (C) 2012-2015 Neo Visionaries Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.neovisionaries.i18n;


import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;


/**
 * ISO 639-2
 * language code (3-letter lowercase code).
 *
 * 

* Most languages have just one ISO 639-2 code, but there are some languages * that have 2 codes, ISO 639-2/T code ("terminological" code) and ISO 639-2/B * code ("bibliographic" code). The table below lists up langueses having two * ISO 639-2 codes. *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ISO 639-1ISO 639-2/TISO 639-2/BLanguage
{@link LanguageCode#bo bo}{@link LanguageAlpha3Code#bod bod}{@link LanguageAlpha3Code#tib tib}Tibetan
{@link LanguageCode#eu eu}{@link LanguageAlpha3Code#eus eus}{@link LanguageAlpha3Code#baq baq}Basque
{@link LanguageCode#cs cs}{@link LanguageAlpha3Code#ces ces}{@link LanguageAlpha3Code#cze cze}Czech
{@link LanguageCode#cy cy}{@link LanguageAlpha3Code#cym cym}{@link LanguageAlpha3Code#wel wel}Welsh
{@link LanguageCode#de de}{@link LanguageAlpha3Code#deu deu}{@link LanguageAlpha3Code#ger ger}German
{@link LanguageCode#el el}{@link LanguageAlpha3Code#ell ell}{@link LanguageAlpha3Code#gre gre}Greek
{@link LanguageCode#fa fa}{@link LanguageAlpha3Code#fas fas}{@link LanguageAlpha3Code#per per}Persian
{@link LanguageCode#fr fr}{@link LanguageAlpha3Code#fra fra}{@link LanguageAlpha3Code#fre fre}French
{@link LanguageCode#hy hy}{@link LanguageAlpha3Code#hye hye}{@link LanguageAlpha3Code#arm arm}Armenian
{@link LanguageCode#is is}{@link LanguageAlpha3Code#isl isl}{@link LanguageAlpha3Code#ice ice}Icelandic
{@link LanguageCode#ka ka}{@link LanguageAlpha3Code#kat kat}{@link LanguageAlpha3Code#geo geo}Georgian
{@link LanguageCode#mi mi}{@link LanguageAlpha3Code#mri mri}{@link LanguageAlpha3Code#mao mao}Māori *
{@link LanguageCode#mk mk}{@link LanguageAlpha3Code#mkd mkd}{@link LanguageAlpha3Code#mac mac}Macedonian *
{@link LanguageCode#ms ms}{@link LanguageAlpha3Code#msa msa}{@link LanguageAlpha3Code#may may}Malay
{@link LanguageCode#my my}{@link LanguageAlpha3Code#mya mya}{@link LanguageAlpha3Code#bur bur}Burmese
{@link LanguageCode#nl nl}{@link LanguageAlpha3Code#nld nld}{@link LanguageAlpha3Code#dut dut}Dutch
{@link LanguageCode#ro ro}{@link LanguageAlpha3Code#ron ron}{@link LanguageAlpha3Code#rum rum}Romanian
{@link LanguageCode#sk sk}{@link LanguageAlpha3Code#slk slk}{@link LanguageAlpha3Code#slo slo}Slovak
{@link LanguageCode#sq sq}{@link LanguageAlpha3Code#sqi sqi}{@link LanguageAlpha3Code#alb alb}Albanian
* *

* ISO 639-2 code for Newari is {@code new}, but in this enum, the corresponding entry * is not {@code new} but {@link #New} (the first letter is capital), * because {@code new} is a special word for Java programming language. *

* * @since 1.1 * @author Takahiko Kawasaki */ public enum LanguageAlpha3Code { /** * Undefined. * *

* This is not an official ISO 639-2 code. *

* * @since 1.14 * @see #und und: Undetermined * @see #zxx zxx: No linguistic content */ undefined("Undefined") { @Override public LanguageCode getAlpha2() { return LanguageCode.undefined; } }, /** * Afar * ({@link LanguageCode#aa aa}). */ aar("Afar") { @Override public LanguageCode getAlpha2() { return LanguageCode.aa; } }, /** * Austro-Asiatic languages * * @since 1.10 */ aav("Austro-Asiatic languages"), /** * Abkhaz * ({@link LanguageCode#ab ab}). */ abk("Abkhaz") { @Override public LanguageCode getAlpha2() { return LanguageCode.ab; } }, /** * Achinese * * @since 1.10 */ ace("Achinese"), /** * Acoli * * @since 1.10 */ ach("Acoli"), /** * Adangme * * @since 1.10 */ ada("Adangme"), /** * Adyghe * * @since 1.10 */ ady("Adyghe"), /** * Afro-Asiatic languages * * @since 1.10 */ afa("Afro-Asiatic languages"), /** * Afrihili * * @since 1.10 */ afh("Afrihili"), /** * Afrikaans * ({@link LanguageCode#af af}). */ afr("Afrikaans") { @Override public LanguageCode getAlpha2() { return LanguageCode.af; } }, /** * Ainu (Japan) * * @since 1.10 */ ain("Ainu (Japan)"), /** * Akan * ({@link LanguageCode#ak ak}). */ aka("Akan") { @Override public LanguageCode getAlpha2() { return LanguageCode.ak; } }, /** * Akkadian * * @since 1.10 */ akk("Akkadian"), /** * Albanian * ({@link LanguageCode#sq sq}) for bibliographic applications. * * @see #sqi */ alb("Albanian") { @Override public LanguageCode getAlpha2() { return LanguageCode.sq; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return sqi; } }, /** * Aleut * * @since 1.10 */ ale("Aleut"), /** * Algonquian languages * * @since 1.10 */ alg("Algonquian languages"), /** * Southern Altai * * @since 1.10 */ alt("Southern Altai"), /** * Atlantic-Congo languages * * @since 1.10 */ alv("Atlantic-Congo languages"), /** * Amharic * ({@link LanguageCode#am am}). */ amh("Amharic") { @Override public LanguageCode getAlpha2() { return LanguageCode.am; } }, /** * Old English (ca. 450-1100) * * @since 1.10 */ ang("Old English"), /** * Angika * * @since 1.10 */ anp("Angika"), /** * Apache languages * * @since 1.10 */ apa("Apache languages"), /** * Alacalufan languages * * @since 1.10 */ aqa("Alacalufan languages"), /** * Algic languages * * @since 1.10 */ aql("Algic languages"), /** * Arabic * ({@link LanguageCode#ar ar}). */ ara("Arabic") { @Override public LanguageCode getAlpha2() { return LanguageCode.ar; } }, /** * Official Aramaic (700-300 BCE) * * @since 1.10 */ arc("Official Aramaic"), /** * Aragonese * ({@link LanguageCode#an an}). */ arg("Aragonese") { @Override public LanguageCode getAlpha2() { return LanguageCode.an; } }, /** * Armenian * ({@link LanguageCode#hy hy}) for bibliographic applications. * * @see #hye */ arm("Armenian") { @Override public LanguageCode getAlpha2() { return LanguageCode.hy; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return hye; } }, /** * Mapudungun * * @since 1.10 */ arn("Mapudungun"), /** * Arapaho * * @since 1.10 */ arp("Arapaho"), /** * Artificial languages * * @since 1.10 */ art("Artificial languages"), /** * Arawak * * @since 1.10 */ arw("Arawak"), /** * Assamese * ({@link LanguageCode#as as}). */ asm("Assamese") { @Override public LanguageCode getAlpha2() { return LanguageCode.as; } }, /** * Asturian * * @since 1.10 */ ast("Asturian"), /** * Athapascan languages * * @since 1.10 */ ath("Athapascan languages"), /** * Arauan languages * * @since 1.10 */ auf("Arauan languages"), /** * Australian languages * * @since 1.10 */ aus("Australian languages"), /** * Avaric * ({@link LanguageCode#av av}). */ ava("Avaric") { @Override public LanguageCode getAlpha2() { return LanguageCode.av; } }, /** * Avestan * ({@link LanguageCode#ae ae}). */ ave("Avestan") { @Override public LanguageCode getAlpha2() { return LanguageCode.ae; } }, /** * Awadhi * * @since 1.10 */ awa("Awadhi"), /** * Arawakan languages * * @since 1.10 */ awd("Arawakan languages"), /** * Aymara * ({@link LanguageCode#ay ay}). */ aym("Aymara") { @Override public LanguageCode getAlpha2() { return LanguageCode.ay; } }, /** * Uto-Aztecan languages * * @since 1.10 */ azc("Uto-Aztecan languages"), /** * Azerbaijani * ({@link LanguageCode#az az}). */ aze("Azerbaijani") { @Override public LanguageCode getAlpha2() { return LanguageCode.az; } }, /** * Banda languages * * @since 1.10 */ bad("Banda languages"), /** * Bamileke languages * * @since 1.10 */ bai("Bamileke languages"), /** * Bashkir * ({@link LanguageCode#ba ba}). */ bak("Bashkir") { @Override public LanguageCode getAlpha2() { return LanguageCode.ba; } }, /** * Baluchi */ bal("Baluchi"), /** * Bambara * ({@link LanguageCode#bm bm}). */ bam("Bambara") { @Override public LanguageCode getAlpha2() { return LanguageCode.bm; } }, /** * Balinese * * @since 1.10 */ ban("Balinese"), /** * Basque * ({@link LanguageCode#eu eu}) for bibliographic applications. * * @see #eus */ baq("Basque") { @Override public LanguageCode getAlpha2() { return LanguageCode.eu; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return eus; } }, /** * Basa (Cameroon) * * @since 1.10 */ bas("Basa (Cameroon)"), /** * Baltic languages * * @since 1.10 */ bat("Baltic languages"), /** * Beja * * @since 1.10 */ bej("Beja"), /** * Belarusian * ({@link LanguageCode#be be}). */ bel("Belarusian") { @Override public LanguageCode getAlpha2() { return LanguageCode.be; } }, /** * Bemba (Zambia) * * @since 1.10 */ bem("Bemba (Zambia)"), /** * Bengali * ({@link LanguageCode#bn bn}). */ ben("Bengali") { @Override public LanguageCode getAlpha2() { return LanguageCode.bn; } }, /** * Berber languages * * @since 1.10 */ ber("Berber languages"), /** * Bhojpuri * * @since 1.10 */ bho("Bhojpuri"), /** * Bihari * ({@link LanguageCode#bh bh}). */ bih("Bihari languages") { @Override public LanguageCode getAlpha2() { return LanguageCode.bh; } }, /** * Bikol * * @since 1.10 */ bik("Bikol"), /** * Bini * * @since 1.10 */ bin("Bini"), /** * Bislama * ({@link LanguageCode#bi bi}). */ bis("Bislama") { @Override public LanguageCode getAlpha2() { return LanguageCode.bi; } }, /** * Siksika * * @since 1.10 */ bla("Siksika"), /** * Bantu languages * * @since 1.10 */ bnt("Bantu languages"), /** * Tibetan * ({@link LanguageCode#bo bo}) for terminology applications. * * @see #tib */ bod("Tibetan") { @Override public LanguageCode getAlpha2() { return LanguageCode.bo; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return tib; } }, /** * Bosnian * ({@link LanguageCode#bs bs}). */ bos("Bosnian") { @Override public LanguageCode getAlpha2() { return LanguageCode.bs; } }, /** * Braj * * @since 1.10 */ bra("Braj"), /** * Breton * ({@link LanguageCode#br br}). */ bre("Breton") { @Override public LanguageCode getAlpha2() { return LanguageCode.br; } }, /** * Batak languages * * @since 1.10 */ btk("Batak languages"), /** * Buriat * * @since 1.10 */ bua("Buriat"), /** * Buginese * * @since 1.10 */ bug("Buginese"), /** * Bulgarian * ({@link LanguageCode#bg bg}). */ bul("Bulgarian") { @Override public LanguageCode getAlpha2() { return LanguageCode.bg; } }, /** * Burmese * ({@link LanguageCode#my my}) for bibliographic applications. * * @see #mya */ bur("Burmese") { @Override public LanguageCode getAlpha2() { return LanguageCode.my; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return mya; } }, /** * Bilin * * @since 1.10 */ byn("Bilin"), /** * Caddo * * @since 1.10 */ cad("Caddo"), /** * Central American Indian languages * * @since 1.10 */ cai("Central American Indian languages"), /** * Galibi Carib * * @since 1.10 */ car("Galibi Carib"), /** * Catalan * ({@link LanguageCode#ca ca}). */ cat("Catalan") { @Override public LanguageCode getAlpha2() { return LanguageCode.ca; } }, /** * Caucasian languages * * @since 1.10 */ cau("Caucasian languages"), /** * Chibchan languages * * @since 1.10 */ cba("Chibchan languages"), /** * North Caucasian languages * * @since 1.10 */ ccn("North Caucasian languages"), /** * South Caucasian languages * * @since 1.10 */ ccs("South Caucasian languages"), /** * Chadic languages * * @since 1.10 */ cdc("Chadic languages"), /** * Caddoan languages * * @since 1.10 */ cdd("Caddoan languages"), /** * Cebuano * * @since 1.10 */ ceb("Cebuano"), /** * Celtic languages * * @since 1.10 */ cel("Celtic languages"), /** * Czech * ({@link LanguageCode#cs cs}) for terminology applications. * * @see #cze */ ces("Czech") { @Override public LanguageCode getAlpha2() { return LanguageCode.cs; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return cze; } }, /** * Chamorro * ({@link LanguageCode#ch ch}). */ cha("Chamorro") { @Override public LanguageCode getAlpha2() { return LanguageCode.ch; } }, /** * Chibcha * * @since 1.10 */ chb("Chibcha"), /** * Chechen * ({@link LanguageCode#ce ce}). */ che("Chechen") { @Override public LanguageCode getAlpha2() { return LanguageCode.ce; } }, /** * Chagatai * * @since 1.10 */ chg("Chagatai"), /** * Chinese * ({@link LanguageCode#zh zh}) for bibliographic applications. * * @see #zho */ chi("Chinese") { @Override public LanguageCode getAlpha2() { return LanguageCode.zh; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return zho; } }, /** * Chuukese * * @since 1.10 */ chk("Chuukese"), /** * Mari (Russia) * * @since 1.10 */ chm("Mari (Russia)"), /** * Chinook jargon * * @since 1.10 */ chn("Chinook jargon"), /** * Choctaw * * @since 1.10 */ cho("Choctaw"), /** * Chipewyan * * @since 1.10 */ chp("Chipewyan"), /** * Cherokee * * @since 1.10 */ chr("Cherokee"), /** * Church * Slavonic * ({@link LanguageCode#cu cu}). */ chu("Church Slavic") { @Override public LanguageCode getAlpha2() { return LanguageCode.cu; } }, /** * Chuvash * ({@link LanguageCode#cv cv}). */ chv("Chuvash") { @Override public LanguageCode getAlpha2() { return LanguageCode.cv; } }, /** * Cheyenne * * @since 1.10 */ chy("Cheyenne"), /** * Chamic languages * * @since 1.10 */ cmc("Chamic languages"), /** * Coptic * * @since 1.1.0 */ cop("Coptic"), /** * Cornish * ({@link LanguageCode#kw kw}). */ cor("Comish") { @Override public LanguageCode getAlpha2() { return LanguageCode.kw; } }, /** * Corsican * ({@link LanguageCode#co co}). */ cos("Corsican") { @Override public LanguageCode getAlpha2() { return LanguageCode.co; } }, /** * English based Creoles and * pidgins * * @since 1.10 */ cpe("English based Creoles and pidgins"), /** * French-Based Creoles and * pidgins * * @since 1.10 */ cpf("French-Based Creoles and pidgins"), /** * Portuguese-Based Creoles and * pidgins * * @since 1.10 */ cpp("Portuguese-Based Creoles and pidgins"), /** * Cree * ({@link LanguageCode#cr cr}). */ cre("Cree") { @Override public LanguageCode getAlpha2() { return LanguageCode.cr; } }, /** * Crimean Tatar * * @since 1.10 */ crh("Crimean Tatar"), /** * Creoles and * pidgins * * @since 1.10 */ crp("Creoles and pidgins"), /** * Kashubian * * @since 1.10 */ csb("Kashubian"), /** * Central Sudanic languages * * @since 1.10 */ csu("Central Sudanic languages"), /** * Cushitic languages * * @since 1.10 */ cus("Cushitic languages"), /** * Welsh * ({@link LanguageCode#cy cy}) for terminology applications. * * @see #wel */ cym("Welsh") { @Override public LanguageCode getAlpha2() { return LanguageCode.cy; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return wel; } }, /** * Czech * ({@link LanguageCode#cs cs}) for bibliographic applications. * * @see #ces */ cze("Czech") { @Override public LanguageCode getAlpha2() { return LanguageCode.cs; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return ces; } }, /** * Dakota * * @since 1.10 */ dak("Dakota"), /** * Danish * {@link LanguageCode#da da}). */ dan("Danish") { @Override public LanguageCode getAlpha2() { return LanguageCode.da; } }, /** * Dargwa * * @since 1.10 */ dar("Dargwa"), /** * Land Dayak languages * * @since 1.10 */ day("Land Dayak languages"), /** * Delaware * * @since 1.10 */ del("Delaware"), /** * Slave (Athapascan) * * @since 1.10 */ den("Slave (Athapascan)"), /** * German * ({@link LanguageCode#de de}) for terminology applications. * * @see #ger */ deu("German") { @Override public LanguageCode getAlpha2() { return LanguageCode.de; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return ger; } }, /** * Dogrib * * @since 1.10 */ dgr("Dogrib"), /** * Dinka * * @since 1.10 */ din("Dinka"), /** * Dhivehi * ({@link LanguageCode#dv dv}). */ div("Dhivehi") { @Override public LanguageCode getAlpha2() { return LanguageCode.dv; } }, /** * Mande languages * * @since 1.10 */ dmn("Mande languages"), /** * Dogri (macrolanguage) * * @since 1.10 */ doi("Dogri"), /** * Dravidian languages * * @since 1.10 */ dra("Dravidian languages"), /** * Lower Sorbian * * @since 1.10 */ dsb("Lower Sorbian"), /** * Duala * * @since 1.10 */ dua("Duala"), /** * Middle Dutch (ca. 1050-1350) * * @since 1.10 */ dum("Middle Dutch"), /** * Dutch * ({@link LanguageCode#nl nl}) for bibliography applications. * * @see #nld */ dut("Dutch") { @Override public LanguageCode getAlpha2() { return LanguageCode.nl; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return nld; } }, /** * Dyula * * @since 1.10 */ dyu("Dyula"), /** * Dzongkha * ({@link LanguageCode#dz dz}). */ dzo("Dzongkha") { @Override public LanguageCode getAlpha2() { return LanguageCode.dz; } }, /** * Efik * * @since 1.10 */ efi("Efik"), /** * Egyptian languages * * @since 1.10 */ egx("Egyptian languages"), /** * Egyptian (Ancient) * * @since 1.10 */ egy("Egyptian (Ancient)"), /** * Ekajuk * * @since 1.10 */ eka("Ekajuk"), /** * Modern Greek (1453-) * ({@link LanguageCode#el el}) for terminology applications. * * @see #gre Modern Greek (gre) * @see #grc Acient Greek (grc) */ ell("Modern Greek") { @Override public LanguageCode getAlpha2() { return LanguageCode.el; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return gre; } }, /** * Elamite * * @since 1.10 */ elx("Elamite"), /** * English * ({@link LanguageCode#en en}). */ eng("English") { @Override public LanguageCode getAlpha2() { return LanguageCode.en; } }, /** * Middle English (1100-1500) */ enm("Middle English"), /** * Esperanto * ({@link LanguageCode#eo eo}). */ epo("Esperanto") { @Override public LanguageCode getAlpha2() { return LanguageCode.eo; } }, /** * Estonian * ({@link LanguageCode#et et}). */ est("Estonian") { @Override public LanguageCode getAlpha2() { return LanguageCode.et; } }, /** * Eskimo-Aleut languages * * @since 1.10 */ esx("Eskimo-Aleut languages"), /** * Basque (family) * * @since 1.10 */ euq("Basque"), /** * Basque (family) * ({@link LanguageCode#eu eu}) for terminology applications. * * @see #baq */ eus("Basque (family)") { @Override public LanguageCode getAlpha2() { return LanguageCode.eu; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return baq; } }, /** * Ewe * ({@link LanguageCode#ee ee}). */ ewe("Ewe") { @Override public LanguageCode getAlpha2() { return LanguageCode.ee; } }, /** * Ewondo * * @since 1.10 */ ewo("Ewondo"), /** * Fang (Equatorial Guinea) * * @since 1.10 */ fan("Fang (Equatorial Guinea)"), /** * Faroese * ({@link LanguageCode#fo fo}). */ fao("Faroese") { @Override public LanguageCode getAlpha2() { return LanguageCode.fo; } }, /** * Persian * ({@link LanguageCode#fa fa}) for terminology applications. * * @see #per */ fas("Persian") { @Override public LanguageCode getAlpha2() { return LanguageCode.fa; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return per; } }, /** * Fanti * * @since 1.10 */ fat("Fanti"), /** * Fijian * ({@link LanguageCode#fj fj}). */ fij("Fijian") { @Override public LanguageCode getAlpha2() { return LanguageCode.fj; } }, /** * Filipino * * @since 1.10 */ fil("Filipino"), /** * Finnish * ({@link LanguageCode#fi fi}). */ fin("Finnish") { @Override public LanguageCode getAlpha2() { return LanguageCode.fi; } }, /** * Finno-Ugrian languages * * @since 1.10 */ fiu("Finno-Ugrian languages"), /** * Fon * * @since 1.10 */ fon("Fon"), /** * Formosan languages * * @since 1.10 */ fox("Formosan languages"), /** * French * ({@link LanguageCode#fr fr}) for terminology applications. * * @see #fre */ fra("French") { @Override public LanguageCode getAlpha2() { return LanguageCode.fr; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return fre; } }, /** * French * ({@link LanguageCode#fr fr}) for bibliographic applications. * * @see #fra */ fre("French") { @Override public LanguageCode getAlpha2() { return LanguageCode.fr; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return fra; } }, /** * Middle French (ca. 1400-1600) * * @since 1.10 */ frm("Middle French"), /** * Old French (842-ca. 1400) * * @since 1.10 */ fro("Old French"), /** * Northern Frisian * * @since 1.10 */ frr("Northern Frisian"), /** * Eastern Frisian * * @since 1.10 */ frs("Eastern Frisian"), /** * West * Frisian * ({@link LanguageCode#fy fy}). */ fry("West Frisian") { @Override public LanguageCode getAlpha2() { return LanguageCode.fy; } }, /** * Fula * ({@link LanguageCode#ff ff}). */ ful("Fula") { @Override public LanguageCode getAlpha2() { return LanguageCode.ff; } }, /** * Friulian * * @since 1.10 */ fur("Friulian"), /** * Ga * * @since 1.10 */ gaa("Ga"), /** * Gayo * * @since 1.10 */ gay("Gayo"), /** * Gbaya (Central African Republic) * * @since 1.10 */ gba("Gbaya (Central African Republic)"), /** * Germanic languages * * @since 1.10 */ gem("Germanic languages"), /** * Georgian * ({@link LanguageCode#ka ka}) for bibliographic applications. * * @see #kat */ geo("Georgian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ka; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return kat; } }, /** * German * ({@link LanguageCode#de de}) for bibliographic applications. * * @see #deu */ ger("German") { @Override public LanguageCode getAlpha2() { return LanguageCode.de; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return deu; } }, /** * Geez * * @since 1.10 */ gez("Geez"), /** * Gilbertese * * @since 1.10 */ gil("Gilbertese"), /** * Scottish * Gaelic * ({@link LanguageCode#gd gd}). */ gla("Scottish Gaelic") { @Override public LanguageCode getAlpha2() { return LanguageCode.gd; } }, /** * Irish * ({@link LanguageCode#ga ga}). */ gle("Irish") { @Override public LanguageCode getAlpha2() { return LanguageCode.ga; } }, /** * Galician * ({@link LanguageCode#gl gl}). */ glg("Galician") { @Override public LanguageCode getAlpha2() { return LanguageCode.gl; } }, /** * Manx * ({@link LanguageCode#gv gv}). */ glv("Manx") { @Override public LanguageCode getAlpha2() { return LanguageCode.gv; } }, /** * East Germanic languages * * @since 1.10 */ gme("East Germanic languages"), /** * Middle High German (ca. 1050-1500) * * @since 1.10 */ gmh("Middle High German"), /** * North Germanic languages * * @since 1.10 */ gmq("North Germanic languages"), /** * West Germanic languages * * @since 1.10 */ gmw("West Germanic languages"), /** * Old High German (ca. 750-1050) * * @since 1.10 */ goh("Old High German"), /** * Gondi * * @since 1.10 */ gon("Gondi"), /** * Gorontalo * * @since 1.10 */ gor("Gorontalo"), /** * Gothic * * @since 1.10 */ got("Gothic"), /** * Grebo * * @since 1.10 */ grb("Grebo"), /** * Ancient Greek (to 1453) * * @see #ell Modern Greek (ell) * @since 1.10 */ grc("Ancient Greek"), /** * Modern Greek (1453-) * ({@link LanguageCode#el el}) for bibliographic applications. * * @see #ell Modern Greek (ell) * @see #grc Acient Greek (grc) */ gre("Modern Greek") { @Override public LanguageCode getAlpha2() { return LanguageCode.el; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return ell; } }, /** * Greek languages * * @since 1.10 */ grk("Greek languages"), /** * Guaraní * ; * ({@link LanguageCode#gn gn}). */ grn("Guaran\u00ED") { @Override public LanguageCode getAlpha2() { return LanguageCode.gn; } }, /** * Swiss German * * @since 1.10 */ gsw("Swiss German"), /** * Gujarati * ({@link LanguageCode#gu gu}). */ guj("Gujarati") { @Override public LanguageCode getAlpha2() { return LanguageCode.gu; } }, /** * Gwichʼin * * @since 1.10 */ gwi("Gwich\u02BCin"), /** * Haida * * @since 1.10 */ hai("Haida"), /** * Haitian * ({@link LanguageCode#ht ht}). */ hat("Haitian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ht; } }, /** * Hausa * ({@link LanguageCode#ha ha}). */ hau("Hausa") { @Override public LanguageCode getAlpha2() { return LanguageCode.ha; } }, /** * Hawaiian * * @since 1.10 */ haw("Hawaiian"), /** * Hebrew * ({@link LanguageCode#he he}). */ heb("Hebrew") { @Override public LanguageCode getAlpha2() { return LanguageCode.he; } }, /** * Herero * ({@link LanguageCode#hz hz}). */ her("Herero") { @Override public LanguageCode getAlpha2() { return LanguageCode.hz; } }, /** * Hiligaynon * * @since 1.10 */ hil("Hiligaynon"), /** * Himachali languages * * @since 1.10 */ him("Himachali languages"), /** * Hindi * ({@link LanguageCode#hi hi}). */ hin("Hindi") { @Override public LanguageCode getAlpha2() { return LanguageCode.hi; } }, /** * Hittite * * @since 1.10 */ hit("Hittite"), /** * Hmong * * @since 1.10 */ hmn("Hmong"), /** * Hiri Motu * ({@link LanguageCode#ho ho}). */ hmo("Hiri Motu") { @Override public LanguageCode getAlpha2() { return LanguageCode.ho; } }, /** * Hmong-Mien languages * * @since 1.10 */ hmx("Hmong-Mien languages"), /** * Hokan languages * * @since 1.10 */ hok("Hokan languages"), /** * Croatian * ({@link LanguageCode#hr hr}). */ hrv("Croatian") { @Override public LanguageCode getAlpha2() { return LanguageCode.hr; } }, /** * Upper Sorbian * * @since 1.10 */ hsb("Upper Sorbian"), /** * Hungarian * ({@link LanguageCode#hu hu}). */ hun("Hungarian") { @Override public LanguageCode getAlpha2() { return LanguageCode.hu; } }, /** * Hupa * * @since 1.10 */ hup("Hupa"), /** * Armenian * ({@link LanguageCode#hy hy}) for terminology applications. * * @see #arm */ hye("Armenian") { @Override public LanguageCode getAlpha2() { return LanguageCode.hy; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return arm; } }, /** * Armenian (family) * * @since 1.10 */ hyx("Armenian (family)"), /** * Iban * * @since 1.10 */ iba("Iban"), /** * Igbo * ({@link LanguageCode#ig ig}). */ ibo("Igbo") { @Override public LanguageCode getAlpha2() { return LanguageCode.ig; } }, /** * Icelandic * ({@link LanguageCode#is is}) for biblioraphic applications. * * @see #isl */ ice("Icelandic") { @Override public LanguageCode getAlpha2() { return LanguageCode.is; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return isl; } }, /** * Ido * ({@link LanguageCode#io io}). */ ido("Ido") { @Override public LanguageCode getAlpha2() { return LanguageCode.io; } }, /** * Nuosu * ({@link LanguageCode#ii ii}). */ iii("Nuosu") { @Override public LanguageCode getAlpha2() { return LanguageCode.ii; } }, /** * Indo-Iranian languages * * @since 1.10 */ iir("Indo-Iranian languages"), /** * Ijo languages * * @since 1.10 */ ijo("Ijo languages"), /** * Inuktitut * ({@link LanguageCode#iu iu}). */ iku("Inuktitut") { @Override public LanguageCode getAlpha2() { return LanguageCode.iu; } }, /** * Interlingue * ({@link LanguageCode#ie ie}). */ ile("Interlingue") { @Override public LanguageCode getAlpha2() { return LanguageCode.ie; } }, /** * Iloko * * @since 1.10 */ ilo("Iloko"), /** * Interlingua * {@link LanguageCode#ia ia}). */ ina("Interlingua") { @Override public LanguageCode getAlpha2() { return LanguageCode.ia; } }, /** * Interlingua (International Auxiliary Language Association) * * @since 1.10 */ inc("Interlingua (International Auxiliary Language Association)"), /** * Indonesian * ({@link LanguageCode#id id}). */ ind("Indonesian") { @Override public LanguageCode getAlpha2() { return LanguageCode.id; } }, /** * Indo-European languages * * @since 1.10 */ ine("Indo-European languages"), /** * Ingush * * @since 1.10 */ inh("Ingush"), /** * Inupiaq * ({@link LanguageCode#ik ik}). */ ipk("Inupiaq") { @Override public LanguageCode getAlpha2() { return LanguageCode.ik; } }, /** * Iranian languages * * @since 1.10 */ ira("Iranian languages"), /** * Iroquoian languages * * @since 1.10 */ iro("Iroquoian languages"), /** * Icelandic * ({@link LanguageCode#is is}) for terminology applications. * * @see #ice */ isl("Icelandic") { @Override public LanguageCode getAlpha2() { return LanguageCode.is; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return ice; } }, /** * Italian * ({@link LanguageCode#it it}). */ ita("Italian") { @Override public LanguageCode getAlpha2() { return LanguageCode.it; } }, /** * Italic languages * * @since 1.10 */ itc("Italic languages"), /** * Javanese * ({@link LanguageCode#jv jv}). */ jav("Javanese") { @Override public LanguageCode getAlpha2() { return LanguageCode.jv; } }, /** * Lojban * * @since 1.10 */ jbo("Lojban"), /** * Japanese * ({@link LanguageCode#ja ja}). */ jpn("Japanese") { @Override public LanguageCode getAlpha2() { return LanguageCode.ja; } }, /** * Judeo-Persian * * @since 1.10 */ jpr("Judeo-Persian"), /** * Japanese (family) * * @since 1.10 */ jpx("Japanese (family)"), /** * Judeo-Arabic * * @since 1.10 */ jrb("Judeo-Arabic"), /** * Kara-Kalpak * * @since 1.10 */ kaa("Kara-Kalpak"), /** * Kabyle * * @since 1.10 */ kab("Kabyle"), /** * Kachin * * @since 1.10 */ kac("Kachin"), /** * Kalaallisut * ({@link LanguageCode#kl kl}). */ kal("Kalaallisut") { @Override public LanguageCode getAlpha2() { return LanguageCode.kl; } }, /** * Kamba (Kenya) * * @since 1.10 */ kam("Kamba (Kenya)"), /** * Kannada * ({@link LanguageCode#kn kn}). */ kan("Kannada") { @Override public LanguageCode getAlpha2() { return LanguageCode.kn; } }, /** * Karen languages * * @since 1.10 */ kar("Karen languages"), /** * Kashmiri * ({@link LanguageCode#ks ks}). */ kas("Kashmiri") { @Override public LanguageCode getAlpha2() { return LanguageCode.ks; } }, /** * Georgian * ({@link LanguageCode#ka ka}) for terminology applications. * * @see #geo */ kat("Georgian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ka; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return geo; } }, /** * Kanuri * ({@link LanguageCode#kr kr}). */ kau("Kanuri") { @Override public LanguageCode getAlpha2() { return LanguageCode.kr; } }, /** * Kawi * * @since 1.10 */ kaw("Kawi"), /** * Kazakh * ({@link LanguageCode#kk kk}). */ kaz("Kazakh") { @Override public LanguageCode getAlpha2() { return LanguageCode.kk; } }, /** * Kabardian * * @since 1.10 */ kbd("Kabardian"), /** * Kordofanian languages * * @since 1.10 */ kdo("Kordofanian languages"), /** * Khasi * * @since 1.10 */ kha("Khasi"), /** * Khoisan languages * * @since 1.10 */ khi("Khoisan languages"), /** * Khmer * ({@link LanguageCode#km km}). */ khm("Central Khmer") { @Override public LanguageCode getAlpha2() { return LanguageCode.km; } }, /** * Khotanese * * @since 1.10 */ kho("Khotanese"), /** * Kikuyu * ({@link LanguageCode#ki ki}). */ kik("Kikuyu") { @Override public LanguageCode getAlpha2() { return LanguageCode.ki; } }, /** * Kinyarwanda * ({@link LanguageCode#rw rw}). */ kin("Kinyarwanda") { @Override public LanguageCode getAlpha2() { return LanguageCode.rw; } }, /** * Kyrgyz * ({@link LanguageCode#ky ky}). */ kir("Kirghiz") { @Override public LanguageCode getAlpha2() { return LanguageCode.ky; } }, /** * Kimbundu * * @since 1.10 */ kmb("Kimbundu"), /** * Konkani (macrolanguage) * * @since 1.10 */ kok("Konkani"), /** * Komi * ({@link LanguageCode#kv kv}). */ kom("Komi") { @Override public LanguageCode getAlpha2() { return LanguageCode.kv; } }, /** * Kongo * ({@link LanguageCode#kg kg}). */ kon("Kongo") { @Override public LanguageCode getAlpha2() { return LanguageCode.kg; } }, /** * Korean * ({@link LanguageCode#ko ko}). */ kor("Korean") { @Override public LanguageCode getAlpha2() { return LanguageCode.ko; } }, /** * Kosraean * * @since 1.10 */ kos("Kosraean"), /** * Kpelle * * @since 1.10 */ kpe("Kpelle"), /** * Karachay-Balkar * * @since 1.10 */ krc("Karachay-Balkar"), /** * Karelian * * @since 1.10 */ krl("Karelian"), /** * Kru languages * * @since 1.10 */ kro("Kru languages"), /** * Kurukh * * @since 1.10 */ kru("Kurukh"), /** * Kwanyama * ({@link LanguageCode#kj kj}). */ kua("Kuanyama") { @Override public LanguageCode getAlpha2() { return LanguageCode.kj; } }, /** * Kumyk * * @since 1.10 */ kum("Kumyk"), /** * Kurdish * ({@link LanguageCode#ku ku}). */ kur("Kurdish") { @Override public LanguageCode getAlpha2() { return LanguageCode.ku; } }, /** * Kutenai * * @since 1.10 */ kut("Kutenai"), /** * Ladino * * @since 1.10 */ lad("Ladino"), /** * Lahnda * * @since 1.10 */ lah("Lahnda"), /** * Lamba * * @since 1.10 */ lam("Lamba"), /** * Lao * ({@link LanguageCode#lo lo}). */ lao("Lao") { @Override public LanguageCode getAlpha2() { return LanguageCode.lo; } }, /** * Latin * ({@link LanguageCode#la la}). */ lat("Latin") { @Override public LanguageCode getAlpha2() { return LanguageCode.la; } }, /** * Latvian * ({@link LanguageCode#lv lv}). */ lav("Latvian") { @Override public LanguageCode getAlpha2() { return LanguageCode.lv; } }, /** * Lezghian * * @since 1.10 */ lez("Lezghian"), /** * Limburgish * ({@link LanguageCode#li li}). */ lim("Limburgan") { @Override public LanguageCode getAlpha2() { return LanguageCode.li; } }, /** * Lingala * ({@link LanguageCode#ln ln}). */ lin("Lingala") { @Override public LanguageCode getAlpha2() { return LanguageCode.ln; } }, /** * Lithuanian * ({@link LanguageCode#lt lt}). */ lit("Lithuanian") { @Override public LanguageCode getAlpha2() { return LanguageCode.lt; } }, /** * Mongo * * @since 1.10 */ lol("Mongo"), /** * Lozi * * @since 1.10 */ loz("Lozi"), /** * * Luxembourgish * ({@link LanguageCode#lb lb}). */ ltz("Luxembourgish") { @Override public LanguageCode getAlpha2() { return LanguageCode.lb; } }, /** * Luba-Lulua * * @since 1.10 */ lua("Luba-Lulua"), /** * Luba-Katanga * ({@link LanguageCode#lu lu}). */ lub("Luba-Katanga") { @Override public LanguageCode getAlpha2() { return LanguageCode.lu; } }, /** * Ganda * ({@link LanguageCode#lg lg}). */ lug("Ganda") { @Override public LanguageCode getAlpha2() { return LanguageCode.lg; } }, /** * Luiseno * * @since 1.10 */ lui("Luiseno"), /** * Lunda * * @since 1.10 */ lun("Lunda"), /** * Luo (Kenya and Tanzania) * * @since 1.10 */ luo("Luo (Kenya and Tanzania)"), /** * Lushai * * @since 1.10 */ lus("Lushai"), /** * Macedonian * ({@link LanguageCode#mk mk}) for bibliographic applications. * * @see #mkd */ mac("Macedonian") { @Override public LanguageCode getAlpha2() { return LanguageCode.mk; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return mkd; } }, /** * Madurese * * @since 1.10 */ mad("Madurese"), /** * Magahi * * @since 1.10 */ mag("Magahi"), /** * Marshallese * ({@link LanguageCode#mh mh}). */ mah("Marshallese") { @Override public LanguageCode getAlpha2() { return LanguageCode.mh; } }, /** * Maithili * * @since 1.10 */ mai("Maithili"), /** * Makasar * * @since 1.10 */ mak("Makasar"), /** * Malayalam * ({@link LanguageCode#ml ml}). */ mal("Malayalam") { @Override public LanguageCode getAlpha2() { return LanguageCode.ml; } }, /** * Mandingo * * @since 1.10 */ man("Mandingo"), /** * Māori * ({@link LanguageCode#mi mi}) for bibliographic applications. * * @see #mri */ mao("M\u0101ori") { @Override public LanguageCode getAlpha2() { return LanguageCode.mi; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return mri; } }, /** * Austronesian languages * * @since 1.10 */ map("Austronesian languages"), /** * Marathi * ({@link LanguageCode#mr mr}). */ mar("Marathi") { @Override public LanguageCode getAlpha2() { return LanguageCode.mr; } }, /** * Masai * * @since 1.10 */ mas("Masai"), /** * Malay (macrolanguage) * ({@link LanguageCode#ms ms}) for bibliographic applications. * * @see #msa */ may("Malay") { @Override public LanguageCode getAlpha2() { return LanguageCode.ms; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return msa; } }, /** * Moksha * * @since 1.10 */ mdf("Moksha"), /** * Mandar * * @since 1.10 */ mdr("Mandar"), /** * Mende (Sierra Leone) * * @since 1.10 */ men("Mende (Sierra Leone)"), /** * Middle Irish (900-1200) * * @since 1.10 */ mga("Middle Irish"), /** * Mi'kmaq * * @since 1.10 */ mic("Mi'kmaq"), /** * Minangkabau * * @since 1.10 */ min("Minangkabau"), /** * Uncoded languages. * * @since 1.10 */ mis("Uncoded languages"), /** * Macedonian * ({@link LanguageCode#mk mk}) for terminology applications. * * @see #mac */ mkd("Macedonian") { @Override public LanguageCode getAlpha2() { return LanguageCode.mk; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return mac; } }, /** * Mon-Khmer languages * * @since 1.10 */ mkh("Mon-Khmer languages"), /** * Malagasy * ({@link LanguageCode#mg mg}). */ mlg("Malagasy") { @Override public LanguageCode getAlpha2() { return LanguageCode.mg; } }, /** * Maltese * ({@link LanguageCode#mt mt}). */ mlt("Maltese") { @Override public LanguageCode getAlpha2() { return LanguageCode.mt; } }, /** * Manchu * * @since 1.10 */ mnc("Manchu"), /** * Manipuri * * @since 1.10 */ mni("Manipuri"), /** * Manobo languages * * @since 1.10 */ mno("Manobo languages"), /** * Mohawk * * @since 1.10 */ moh("Mohawk"), /** * Mongolian * ({@link LanguageCode#mn mn}). */ mon("Mongolian") { @Override public LanguageCode getAlpha2() { return LanguageCode.mn; } }, /** * Mossi * * @since 1.10 */ mos("Mossi"), /** * Māori * ({@link LanguageCode#mi mi}) for terminology applications. * * @see #mao */ mri("M\u0101ori") { @Override public LanguageCode getAlpha2() { return LanguageCode.mi; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return mao; } }, /** * Malay * ({@link LanguageCode#ms ms}) for terminology applications. * * @see #may */ msa("Malay") { @Override public LanguageCode getAlpha2() { return LanguageCode.ms; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return may; } }, /** * Multiple languages. * * @since 1.10 */ mul("Multiple languages"), /** * Munda languages * * @since 1.10 */ mun("Munda languages"), /** * Creek * * @since 1.10 */ mus("Creek"), /** * Mirandese * * @since 1.10 */ mwl("Mirandese"), /** * Marwari * * @since 1.10 */ mwr("Marwari"), /** * Burmese * ({@link LanguageCode#my my}) for terminology applications. * * @see #bur */ mya("Burmese") { @Override public LanguageCode getAlpha2() { return LanguageCode.my; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return bur; } }, /** * Mayan languages * * @since 1.10 */ myn("Mayan languages"), /** * Erzya * * @since 1.10 */ myv("Erzya"), /** * Nahuatl languages * * @since 1.10 */ nah("Nahuatl languages"), /** * North American Indian * * @since 1.10 */ nai("North American Indian"), /** * Neapolitan * * @since 1.10 */ nap("Neapolitan"), /** * Nauru * ({@link LanguageCode#na na}). */ nau("Nauru") { @Override public LanguageCode getAlpha2() { return LanguageCode.na; } }, /** * Navajo * ({@link LanguageCode#nv nv}). */ nav("Navajo") { @Override public LanguageCode getAlpha2() { return LanguageCode.nv; } }, /** * Southern * Ndebele * ({@link LanguageCode#nr nr}). */ nbl("South Ndebele") { @Override public LanguageCode getAlpha2() { return LanguageCode.nr; } }, /** * Northern * Ndebele * ({@link LanguageCode#nd nd}). */ nde("North Ndebele") { @Override public LanguageCode getAlpha2() { return LanguageCode.nd; } }, /** * Ndonga * ({@link LanguageCode#ng ng}). */ ndo("Ndonga") { @Override public LanguageCode getAlpha2() { return LanguageCode.ng; } }, /** * Low German * * @since 1.10 */ nds("Low German"), /** * Nepali (macrolanguage) * ({@link LanguageCode#ne ne}). */ nep("Nepali") { @Override public LanguageCode getAlpha2() { return LanguageCode.ne; } }, /** * Newari * *

* Because {@code new} is a special word for Java programming * language, {@code new} cannot be used as an enum entry. * So, the first letter of this entry is a capital letter. *

* *

* {@code toString()} method of this instance ({@code New}) * returns {@code "new"}. *

* * @since 1.10 */ New("Newari") { @Override public String toString() { return "new"; } }, /** * Trans-New Guinea languages * * @since 1.10 */ ngf("Trans-New Guinea languages"), /** * Nias * * @since 1.10 */ nia("Nias"), /** * Niger-Kordofanian languages * * @since 1.10 */ nic("Niger-Kordofanian languages"), /** * Niuean * * @since 1.10 */ niu("Niuean"), /** * Dutch * ({@link LanguageCode#nl nl}) for terminology applications. * * @see #dut */ nld("Dutch") { @Override public LanguageCode getAlpha2() { return LanguageCode.nl; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return dut; } }, /** * Norwegian Nynorsk * ({@link LanguageCode#nn nn}). */ nno("Norwegian Nynorsk") { @Override public LanguageCode getAlpha2() { return LanguageCode.nn; } }, /** * Norwegian * Bokmål * ({@link LanguageCode#nb nb}). */ nob("Norwegian Bokm\u00E5l") { @Override public LanguageCode getAlpha2() { return LanguageCode.nb; } }, /** * Nogai * * @since 1.10 */ nog("Nogai"), /** * Old Norse * * @since 1.10 */ non("Old Norse"), /** * Norwegian * ({@link LanguageCode#no no}). */ nor("Norwegian") { @Override public LanguageCode getAlpha2() { return LanguageCode.no; } }, /** * N'Ko * * @since 1.10 */ nqo("N'Ko"), /** * Pedi * * @since 1.10 */ nso("Pedi"), /** * Nubian languages * * @since 1.10 */ nub("Nubian languages"), /** * Classical Newari * * @since 1.10 */ nwc("Classical Newari"), /** * Chichewa * ({@link LanguageCode#ny ny}). */ nya("Nyanja") { @Override public LanguageCode getAlpha2() { return LanguageCode.ny; } }, /** * Nyamwezi * * @since 1.10 */ nym("Nyamwezi"), /** * Nyankole * * @since 1.10 */ nyn("Nyankole"), /** * Nyoro * * @since 1.10 */ nyo("Nyoro"), /** * Nzima * * @since 1.10 */ nzi("Nzima"), /** * Occitan (post 1500) * ({@link LanguageCode#oc oc}). */ oci("Occitan") { @Override public LanguageCode getAlpha2() { return LanguageCode.oc; } }, /** * Ojibwe * ({@link LanguageCode#oj oj}). */ oji("Ojibwa") { @Override public LanguageCode getAlpha2() { return LanguageCode.oj; } }, /** * Oto-Manguean languages * * @since 1.10 */ omq("Oto-Manguean languages"), /** * Omotic languages * * @since 1.10 */ omv("Omotic languages"), /** * Oriya (macrolanguage) * ({@link LanguageCode#or or}). */ ori("Oriya") { @Override public LanguageCode getAlpha2() { return LanguageCode.or; } }, /** * Oromo * ({@link LanguageCode#om om}). */ orm("Oromo") { @Override public LanguageCode getAlpha2() { return LanguageCode.om; } }, /** * Osage * * @since 1.10 */ osa("Osage"), /** * Ossetian * ({@link LanguageCode#os os}). */ oss("Ossetian") { @Override public LanguageCode getAlpha2() { return LanguageCode.os; } }, /** * Ottoman Turkish (1500-1928) * * @since 1.10 */ ota("Ottoman Turkish"), /** * Otomian languages * * @since 1.10 */ oto("Otomian languages"), /** * Papuan languages * * @since 1.10 */ paa("Papuan languages"), /** * Pangasinan * * @since 1.10 */ pag("Pangasinan"), /** * Pahlavi * * @since 1.10 */ pal("Pahlavi"), /** * Pampanga * * @since 1.10 */ pam("Pampanga"), /** * Punjabi * ({@link LanguageCode#pa pa}). */ pan("Panjabi") { @Override public LanguageCode getAlpha2() { return LanguageCode.pa; } }, /** * Papiamento * * @since 1.10 */ pap("Papiamento"), /** * Palauan * * @since 1.10 */ pau("Palauan"), /** * Old Persian (ca. 600-400 B.C.) */ peo("Old Persian"), /** * Persian * ({@link LanguageCode#fa fa}) for bibliographic applications. * * @see #fas */ per("Persian") { @Override public LanguageCode getAlpha2() { return LanguageCode.fa; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return fas; } }, /** * Philippine languages * * @since 1.10 */ phi("Philippine languages"), /** * Phoenician * * @since 1.10 */ phn("Phoenician"), /** * Central Malayo-Polynesian languages * * @since 1.10 */ plf("Central Malayo-Polynesian languages"), /** * Pāli * ({@link LanguageCode#pi pi}). */ pli("P\u0101li") { @Override public LanguageCode getAlpha2() { return LanguageCode.pi; } }, /** * Polish * ({@link LanguageCode#pl pl}). */ pol("Polish") { @Override public LanguageCode getAlpha2() { return LanguageCode.pl; } }, /** * Pohnpeian * * @since 1.10 */ pon("Pohnpeian"), /** * Portuguese * ({@link LanguageCode#pt pt}). */ por("Portuguese") { @Override public LanguageCode getAlpha2() { return LanguageCode.pt; } }, /** * Malayo-Polynesian languages * * @since 1.10 */ poz("Malayo-Polynesian languages"), /** * Eastern Malayo-Polynesian languages * * @since 1.10 */ pqe("Eastern Malayo-Polynesian languages"), /** * Western Malayo-Polynesian languages * * @since 1.10 */ pqw("Western Malayo-Polynesian languages"), /** * Prakrit languages * * @since 1.10 */ pra("Prakrit languages"), /** * Old Provençal (to 1500) * * @since 1.10 */ pro("Old Proven\u00E7al"), /** * Pashto * ({@link LanguageCode#ps ps}). */ pus("Pushto") { @Override public LanguageCode getAlpha2() { return LanguageCode.ps; } }, /** * Quechua * ({@link LanguageCode#qu qu}). */ que("Quechua") { @Override public LanguageCode getAlpha2() { return LanguageCode.qu; } }, /** * Quechuan (family) * * @since 1.10 */ qwe("Quechuan (family)"), /** * Rajasthani * * @since 1.10 */ raj("Rajasthani"), /** * Rapanui * * @since 1.10 */ rap("Rapanui"), /** * Rarotongan * * @since 1.10 */ rar("Rarotongan"), /** * Romance languages * * @since 1.10 */ roa("Romance languages"), /** * Romansh * ({@link LanguageCode#rm rm}) */ roh("Romansh") { @Override public LanguageCode getAlpha2() { return LanguageCode.rm; } }, /** * Romany * * @since 1.10 */ rom("Romany"), /** * Romanian * ({@link LanguageCode#ro ro}) for terminology applications. * * @see #rum */ ron("Romanian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ro; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return rum; } }, /** * Romanian * ({@link LanguageCode#ro ro}) for bibliographic applications. * * @see #ron */ rum("Romansh") { @Override public LanguageCode getAlpha2() { return LanguageCode.ro; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return ron; } }, /** * Kirundi * ({@link LanguageCode#rn rn}). */ run("Kirundi") { @Override public LanguageCode getAlpha2() { return LanguageCode.rn; } }, /** * Macedo-Romanian * * @since 1.10 */ rup("Macedo-Romanian"), /** * Russian * ({@link LanguageCode#ru ru}). */ rus("Russian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ru; } }, /** * Sango * * @since 1.10 */ sad("Sango"), /** * Sango * ({@link LanguageCode#sg sg}). */ sag("Sango") { @Override public LanguageCode getAlpha2() { return LanguageCode.sg; } }, /** * Yakut * * @since 1.10 */ sah("Yakut"), /** * South American Indian languages * * @since 1.10 */ sai("South American Indian languages"), /** * Salishan languages * * @since 1.10 */ sal("Salishan languages"), /** * Samaritan Aramaic * * @since 1.10 */ sam("Samaritan Aramaic"), /** * Sanskrit * ({@link LanguageCode#sa sa}). */ san("Sanskrit") { @Override public LanguageCode getAlpha2() { return LanguageCode.sa; } }, /** * Sasak * * @since 1.10 */ sas("Sasak"), /** * Santali * * @since 1.10 */ sat("Santali"), /** * Sicilian * * @since 1.10 */ scn("Sicilian"), /** * Scots * * @since 1.10 */ sco("Scots"), /** * Eastern Sudanic languages * * @since 1.10 */ sdv("Eastern Sudanic languages"), /** * Selkup * * @since 1.10 */ sel("Selkup"), /** * Semitic languages * * @since 1.10 */ sem("Semitic languages"), /** * Old Irish (to 900) * * @since 1.10 */ sga("Old Irish"), /** * Sign languages * * @since 1.10 */ sgn("Sign languages"), /** * Shan * * @since 1.10 */ shn("Shan"), /** * Sidamo * * @since 1.10 */ sid("Sidamo"), /** * Sinhala * ({@link LanguageCode#si si}). */ sin("Sinhala") { @Override public LanguageCode getAlpha2() { return LanguageCode.si; } }, /** * Siouan languages * * @since 1.10 */ sio("Siouan languages"), /** * Sino-Tibetan languages * * @since 1.10 */ sit("Sino-Tibetan languages"), /** * Slavic languages * * @since 1.10 */ sla("Slavic languages"), /** * Slovak * ({@link LanguageCode#sk sk}) for terminology aplications. * * @see #slo */ slk("Slovak") { @Override public LanguageCode getAlpha2() { return LanguageCode.sk; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return slo; } }, /** * Slovak * ({@link LanguageCode#sk sk}) for bibliographic aplications. * * @see #slk */ slo("Slovak") { @Override public LanguageCode getAlpha2() { return LanguageCode.sk; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return slk; } }, /** * Slovene * ({@link LanguageCode#sl sl}). */ slv("Slovene") { @Override public LanguageCode getAlpha2() { return LanguageCode.sl; } }, /** * Southern Sami * * @since 1.10 */ sma("Southern Sami"), /** * Northern Sami * ({@link LanguageCode#se se}). */ sme("Northern Sami") { @Override public LanguageCode getAlpha2() { return LanguageCode.se; } }, /** * Sami languages * * @since 1.10 */ smi("Sami languages"), /** * Lule Sami * * @since 1.10 */ smj("Lule Sami"), /** * Inari Sami * * @since 1.10 */ smn("Inari Sami"), /** * Samoan * ({@link LanguageCode#sm sm}). */ smo("Samoan") { @Override public LanguageCode getAlpha2() { return LanguageCode.sm; } }, /** * Skolt Sami * * @since 1.10 */ sms("Skolt Sami"), /** * Shona * ({@link LanguageCode#sn sn}). */ sna("Shona") { @Override public LanguageCode getAlpha2() { return LanguageCode.sn; } }, /** * Sindhi * ({@link LanguageCode#sd sd}). */ snd("Sindhi") { @Override public LanguageCode getAlpha2() { return LanguageCode.sd; } }, /** * Soninke * * @since 1.10 */ snk("Soninke"), /** * Sogdian * * @since 1.10 */ sog("Sogdian"), /** * Somali * ({@link LanguageCode#so so}). */ som("Somali") { @Override public LanguageCode getAlpha2() { return LanguageCode.so; } }, /** * Songhai languages * * @since 1.10 */ son("Songhai languages"), /** * Southern Sotho * ({@link LanguageCode#st st}). */ sot("Southern Sotho") { @Override public LanguageCode getAlpha2() { return LanguageCode.st; } }, /** * Spanish * ({@link LanguageCode#es es}). */ spa("Spanish") { @Override public LanguageCode getAlpha2() { return LanguageCode.es; } }, /** * Albanian * ({@link LanguageCode#sq sq}) for terminology applications. * * @see #alb */ sqi("Albanian") { @Override public LanguageCode getAlpha2() { return LanguageCode.sq; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return alb; } }, /** * Albanian languages * * @since 1.10 */ sqj("Albanian languages"), /** * Sardinian * ({@link LanguageCode#sc sc}). */ srd("Sardinian") { @Override public LanguageCode getAlpha2() { return LanguageCode.sc; } }, /** * Sranan Tongo * * @since 1.10 */ srn("Sranan Tongo"), /** * Serbian * ({@link LanguageCode#sr sr}). */ srp("Serbian") { @Override public LanguageCode getAlpha2() { return LanguageCode.sr; } }, /** * Serer * * @since 1.10 */ srr("Serer"), /** * Nilo-Saharan languages * * @since 1.10 */ ssa("Nilo-Saharan languages"), /** * Swati * ({@link LanguageCode#ss ss}). */ ssw("Swati") { @Override public LanguageCode getAlpha2() { return LanguageCode.ss; } }, /** * Sukuma * * @since 1.10 */ suk("Sukuma"), /** * Sundanese * ({@link LanguageCode#su su}). */ sun("Sundanese") { @Override public LanguageCode getAlpha2() { return LanguageCode.su; } }, /** * Susu * * @since 1.10 */ sus("Susu"), /** * Sumerian * * @since 1.10 */ sux("Sumerian"), /** * Swahili (macrolanguage) * ({@link LanguageCode#sw sw}). */ swa("Swahili") { @Override public LanguageCode getAlpha2() { return LanguageCode.sw; } }, /** * Swedish * ({@link LanguageCode#sv sv}). */ swe("Swedish") { @Override public LanguageCode getAlpha2() { return LanguageCode.sv; } }, /** * Classical Syriac * * @since 1.10 */ syc("Classical Syriac"), /** * Samoyedic languages * * @since 1.10 */ syd("Samoyedic languages"), /** * Syriac * * @since 1.10 */ syr("Syriac"), /** * Tahitian * ({@link LanguageCode#ty ty}). */ tah("Tahitian") { @Override public LanguageCode getAlpha2() { return LanguageCode.ty; } }, /** * Tai languages * * @since 1.10 */ tai("Tai languages"), /** * Tamil * ({@link LanguageCode#ta ta}). */ tam("Tamil") { @Override public LanguageCode getAlpha2() { return LanguageCode.ta; } }, /** * Tatar * ({@link LanguageCode#tt tt}). */ tat("Tatar") { @Override public LanguageCode getAlpha2() { return LanguageCode.tt; } }, /** * Tibeto-Burman languages * * @since 1.10 */ tbq("Tibeto-Burman languages"), /** * Telugu * ({@link LanguageCode#te te}). */ tel("Telugu") { @Override public LanguageCode getAlpha2() { return LanguageCode.te; } }, /** * Timne * * @since 1.10 */ tem("Timne"), /** * Tereno * * @since 1.10 */ ter("Tereno"), /** * Tetum * * @since 1.10 */ tet("Tetum"), /** * Tajik * ({@link LanguageCode#tg tg}). */ tgk("Tajik") { @Override public LanguageCode getAlpha2() { return LanguageCode.tg; } }, /** * Tagalog * ({@link LanguageCode#tl tl}). */ tgl("Tagalog") { @Override public LanguageCode getAlpha2() { return LanguageCode.tl; } }, /** * Thai * ({@link LanguageCode#th th}). */ tha("Thai") { @Override public LanguageCode getAlpha2() { return LanguageCode.th; } }, /** * Tibetan * ({@link LanguageCode#bo bo}) for terminology applications. * * @see #bod */ tib("Tibetan") { @Override public LanguageCode getAlpha2() { return LanguageCode.bo; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return bod; } }, /** * Tigre * * @since 1.10 */ tig("Tigre"), /** * Tigrinya * ({@link LanguageCode#ti ti}). */ tir("Tigrinya") { @Override public LanguageCode getAlpha2() { return LanguageCode.ti; } }, /** * Tiv * * @since 1.10 */ tiv("Tiv"), /** * Tokelau * * @since 1.10 */ tkl("Tokelau"), /** * Klingon * * @since 1.10 */ tlh("Klingon"), /** * Tlingit * * @since 1.10 */ tli("Tlingit"), /** * Tamashek * * @since 1.10 */ tmh("Tamashek"), /** * Tonga (Nyasa) * * @since 1.10 */ tog("Tonga (Nyasa)"), /** * Tonga (Tonga Islands) * ({@link LanguageCode#to to}). */ ton("Tonga (Tonga Islands)") { @Override public LanguageCode getAlpha2() { return LanguageCode.to; } }, /** * Tok Pisin * * @since 1.10 */ tpi("Tok Pisin"), /** * Turkic languages * * @since 1.10 */ trk("Turkic languages"), /** * Tsimshian * * @since 1.10 */ tsi("Tsimshian"), /** * Tswana * ({@link LanguageCode#tn tn}). */ tsn("Tswana") { @Override public LanguageCode getAlpha2() { return LanguageCode.tn; } }, /** * Tsonga * ({@link LanguageCode#ts ts}). */ tso("Tsonga") { @Override public LanguageCode getAlpha2() { return LanguageCode.ts; } }, /** * Turkmen * ({@link LanguageCode#tk tk}). */ tuk("Turkmen") { @Override public LanguageCode getAlpha2() { return LanguageCode.tk; } }, /** * Tumbuka * * @since 1.10 */ tum("Tumbuka"), /** * Tupi languages * * @since 1.10 */ tup("Tupi languages"), /** * Turkish * ({@link LanguageCode#tr tr}). */ tur("Turkish") { @Override public LanguageCode getAlpha2() { return LanguageCode.tr; } }, /** * Altaic languages * * @since 1.10 */ tut("Altaic languages"), /** * Tungus languages * * @since 1.10 */ tuw("Tungus languages"), /** * Tuvalu * * @since 1.10 */ tvl("Tuvalu"), /** * Twi * ({@link LanguageCode#tw tw}). */ twi("Twi") { @Override public LanguageCode getAlpha2() { return LanguageCode.tw; } }, /** * Tuvinian * * @since 1.10 */ tyv("Tuvinian"), /** * Udmurt * * @since 1.10 */ udm("Udmurt"), /** * Ugaritic * * @since 1.10 */ uga("Ugaritic"), /** * Uighur * ({@link LanguageCode#ug ug}). */ uig("Uighur") { @Override public LanguageCode getAlpha2() { return LanguageCode.ug; } }, /** * Ukrainian * ({@link LanguageCode#uk uk}). */ ukr("Ukrainian") { @Override public LanguageCode getAlpha2() { return LanguageCode.uk; } }, /** * Umbundu * * @since 1.10 */ umb("Umbundu"), /** * Undetermined. * * @since 1.10 */ und("Undetermined"), /** * Urdu * ({@link LanguageCode#ur ur}). */ urd("Urdu") { @Override public LanguageCode getAlpha2() { return LanguageCode.ur; } }, /** * Uralic languages * * @since 1.10 */ urj("Uralic languages"), /** * Uzbek * ({@link LanguageCode#uz uz}). */ uzb("Uzbek") { @Override public LanguageCode getAlpha2() { return LanguageCode.uz; } }, /** * Vai * * @since 1.10 */ vai("Vai"), /** * Venda * ({@link LanguageCode#ve ve}). */ ven("Venda") { @Override public LanguageCode getAlpha2() { return LanguageCode.ve; } }, /** * Vietnamese * ({@link LanguageCode#vi vi}). */ vie("Vietnamese") { @Override public LanguageCode getAlpha2() { return LanguageCode.vi; } }, /** * Volapük * ({@link LanguageCode#vo vo}). */ vol("Volap\u00FCk") { @Override public LanguageCode getAlpha2() { return LanguageCode.vo; } }, /** * Votic * * @since 1.10 */ vot("Votic"), /** * Wakashan languages * * @since 1.10 */ wak("Wakashan languages"), /** * Wolaytta * * @since 1.10 */ wal("Wolaytta"), /** * Waray (Philippines) * * @since 1.10 */ war("Waray (Philippines)"), /** * Washo * * @since 1.10 */ was("Washo"), /** * Welsh * ({@link LanguageCode#cy cy}) for bibliographic applications. * * @see #cym */ wel("Welsh") { @Override public LanguageCode getAlpha2() { return LanguageCode.cy; } @Override public Usage getUsage() { return Usage.BIBLIOGRAPHY; } @Override public LanguageAlpha3Code getSynonym() { return cym; } }, /** * Sorbian languages * * @since 1.10 */ wen("Sorbian languages"), /** * Walloon * ({@link LanguageCode#wa wa}). */ wln("Walloon") { @Override public LanguageCode getAlpha2() { return LanguageCode.wa; } }, /** * Wolof * ({@link LanguageCode#wo wo}). */ wol("Wolof") { @Override public LanguageCode getAlpha2() { return LanguageCode.wo; } }, /** * Kalmyk * * @since 1.10 */ xal("Kalmyk"), /** * Mongolian languages * * @since 1.10 */ xgn("Mongolian languages"), /** * Xhosa * ({@link LanguageCode#xh xh}). */ xho("Xhosa") { @Override public LanguageCode getAlpha2() { return LanguageCode.xh; } }, /** * Na-Dene languages * * @since 1.10 */ xnd("Na-Dene languages"), /** * Yao * * @since 1.10 */ yao("Yao"), /** * Yapese * * @since 1.10 */ yap("Yapese"), /** * Yiddish * ({@link LanguageCode#yi yi}). */ yid("Yiddish") { @Override public LanguageCode getAlpha2() { return LanguageCode.yi; } }, /** * Yoruba * ({@link LanguageCode#yo yo}). */ yor("Yoruba") { @Override public LanguageCode getAlpha2() { return LanguageCode.yo; } }, /** * Yupik languages * * @since 1.10 */ ypk("Yupik languages"), /** * Zapotec * * @since 1.10 */ zap("Zapotec"), /** * Blissymbols * * @since 1.10 */ zbl("Blissymbols"), /** * Zenaga * * @since 1.10 */ zen("Zenaga"), /** * Zhuang * ({@link LanguageCode#za za}). */ zha("Zhuang") { @Override public LanguageCode getAlpha2() { return LanguageCode.za; } }, /** * Chinese * ({@link LanguageCode#zh zh}) for terminology applications. * * @see #chi */ zho("Chinese") { @Override public LanguageCode getAlpha2() { return LanguageCode.zh; } @Override public Usage getUsage() { return Usage.TERMINOLOGY; } @Override public LanguageAlpha3Code getSynonym() { return chi; } }, /** * Chinese (family) * * @since 1.10 */ zhx("Chinese (family)"), /** * East Slavic languages * * @since 1.10 */ zle("East Slavic languages"), /** * South Slavic languages * * @since 1.10 */ zls("South Slavic languages"), /** * West Slavic languages * * @since 1.10 */ zlw("West Slavic languages"), /** * Zande languages * * @since 1.10 */ znd("Zande languages"), /** * Zulu * ({@link LanguageCode#zu zu}). */ zul("Zulu") { @Override public LanguageCode getAlpha2() { return LanguageCode.zu; } }, /** * Zuni * * @since 1.10 */ zun("Zuni"), /** * No linguistic content. * * @since 1.10 */ zxx("No linguistic content"), /** * Zaza * * @since 1.10 */ zza("Zaza") ; /** * The usage of this language code. * * @since 1.1 */ public enum Usage { /** * Code for terminology applications (ISO 639-2/T). */ TERMINOLOGY, /** * Code for bibliographic applications (ISO 639-2/B). */ BIBLIOGRAPHY, /** * For all applications including both terminology and * bibliographic applications. */ COMMON }; /** * Language name. */ private final String name; private LanguageAlpha3Code(String name) { this.name = name; } /** * Get the language name. * * @return * The language name. */ public String getName() { return name; } /** * Get ISO 639-1 * language code. * * @return * ISO 639-1 * language code. This method may return {@code null}. */ public LanguageCode getAlpha2() { return null; } /** * Get the usage of this language code. * *

* Most language codes return {@link Usage#COMMON Usage.COMMON}. *

* * @return * The usage of this language code. */ public Usage getUsage() { return Usage.COMMON; } /** * Get the synonym of this code. * *

* In most cases, this method simply returns this object. On * the other hand, language codes that have two alpha-3 codes, namely, ISO * 639-2/T code ("terminological" code) and ISO 639-2/B code * ("bibliographic" code), return their counterparts. For example, * {@link #deu LanguageAlpha3Code.deu}{@code .getSynonym()} returns * {@link #ger LanguageAlpha3Code.ger}. *

* * @return * ISO 639-2 * language code. */ public LanguageAlpha3Code getSynonym() { return this; } /** * Get the bibliographic code of this language. * *

* Most languages have just one ISO 639-2 code and they * simply return this object. Only ISO 639-2/T codes * ("terminological" codes) return counterpart objects. For example, * {@link LanguageAlpha3Code#fra LanguageAlpha3Code.fra}{@code .getAlpha3B()} * returns {@link LanguageAlpha3Code#fre LanguageAlpha3Code.fre}. *

* * @return * The bibliographic code of this language. */ public LanguageAlpha3Code getAlpha3B() { if (getUsage() == Usage.BIBLIOGRAPHY) { return this; } else { return getSynonym(); } } /** * Get the terminological code of this language. * *

* Most languages have just one ISO 639-2 code and they * simply return this object. Only ISO 639-2/B codes * ("bibliographic" codes) return counterpart objects. For example, * {@link LanguageAlpha3Code#fre LanguageAlpha3Code.fre}{@code .getAlpha3T()} * returns {@link LanguageAlpha3Code#fra LanguageAlpha3Code.fra}. * *

* * @return * The terminological code of this language. */ public LanguageAlpha3Code getAlpha3T() { if (getUsage() == Usage.TERMINOLOGY) { return this; } else { return getSynonym(); } } /** * Get a {@code LanguageAlpha3Code} that corresponds to a given * ISO 639-1 code * (2-letter lowercase code) or * ISO 639-2 code * (3-letter lowercase code). * *

* This method calls {@link #getByCode(String, boolean) getByCode}{@code (code, true)}. * Note that the behavior has changed since the version 1.13. In the older versions, * this method was an alias of {@code getByCode(code, false)}. *

* * @param code * An ISO 639-1 * code (2-letter lowercase code) or an * ISO 639-2 * code (3-letter lowercase code). Or "undefined". * Note that if the given code is one of legacy language codes * ("iw", "ji" and "in"), it is treated as its official counterpart * ("he", "yi" and "id"), respectively. For example, if "in" is * given, this method returns {@link #ind LanguageAlpha3Code.ind}. * * @return * A {@code LanguageAlpha3Code} instance, or {@code null} if not found. * If ISO 639-1 * code (2-letter code) is given and the language has two * ISO 639-2 * codes, ISO 639/T code ("terminological" code) is returned. */ public static LanguageAlpha3Code getByCode(String code) { return getByCode(code, true); } /** * Get a {@code LanguageAlpha3Code} that corresponds to a given * ISO 639-1 code * (2-letter lowercase code) or * ISO 639-2 code * (3-letter lowercase code). * *

* This method calls {@link #getByCode(String, boolean) getByCode}{@code (code, false)}. *

* * @param code * An ISO 639-1 * code (2-letter lowercase code) or an * ISO 639-2 * code (3-letter lowercase code). Or "undefined" (case insensitive). * Note that if the given code is one of legacy language codes * ("iw", "ji" and "in"), it is treated as its official counterpart * ("he", "yi" and "id"), respectively. For example, if "in" is * given, this method returns {@link #ind LanguageAlpha3Code.ind}. * * @return * A {@code LanguageAlpha3Code} instance, or {@code null} if not found. * If ISO 639-1 * code (2-letter code) is given and the language has two * ISO 639-2 * codes, ISO 639/T code ("terminological" code) is returned. * * @since 1.13 */ public static LanguageAlpha3Code getByCodeIgnoreCase(String code) { return getByCode(code, false); } /** * Get a {@code LanguageAlpha3Code} that corresponds to a given * ISO 639-1 code * (2-letter lowercase code) or * ISO 639-2 code * (3-letter lowercase code). * * @param code * An ISO 639-1 * code (2-letter lowercase code) or an * ISO 639-2 * code (3-letter lowercase code). Or "undefined" (its case * sensitivity depends on the value of {@code caseSensitive}). * Note that if the given code is one of legacy language codes * ("iw", "ji" and "in"), it is treated as its official counterpart * ("he", "yi" and "id"), respectively. For example, if "in" is * given, this method returns {@link #ind LanguageAlpha3Code.ind}. * * @param caseSensitive * If {@code true}, the given code should consist of lowercase letters only. * If {@code false}, this method internally canonicalizes the given code by * {@link String#toLowerCase()} and then performs search. For * example, {@code getByCode("JPN", true)} returns {@code null}, but on the * other hand, {@code getByCode("JPN", false)} returns {@link #jpn * LanguageAlpha3Code.jpn}. * * As an exceptional case, both {@code getByCode("New", true)} and * {@code getByCode("new", true)} return {@link #New} (Newari). * * @return * A {@code LanguageAlpha3Code} instance, or {@code null} if not found. * If ISO 639-1 * code (2-letter code) is given and the language has two * ISO 639-2 * codes, ISO 639/T code ("terminological" code) is returned. */ public static LanguageAlpha3Code getByCode(String code, boolean caseSensitive) { code = canonicalize(code, caseSensitive); if (code == null) { return null; } switch (code.length()) { case 2: break; case 3: case 9: return getByEnumName(code); default: return null; } code = LanguageCode.canonicalize(code, caseSensitive); LanguageCode alpha2 = LanguageCode.getByEnumName(code); if (alpha2 == null) { return null; } return alpha2.getAlpha3(); } static LanguageAlpha3Code getByEnumName(String name) { try { return Enum.valueOf(LanguageAlpha3Code.class, name); } catch (IllegalArgumentException e) { return null; } } private static String canonicalize(String code, boolean caseSensitive) { if (code == null || code.length() == 0) { return null; } if (caseSensitive == false) { code = code.toLowerCase(); } // A special case for Newari. if (code.equals("new")) { code = "New"; } return code; } /** * Get a list of {@code LanguageAlpha3Code} by a name regular expression. * *

* This method is almost equivalent to {@link #findByName(Pattern) * findByName}{@code (Pattern.compile(regex))}. *

* * @param regex * Regular expression for names. * * @return * List of {@code LanguageAlpha3Code}. If nothing has matched, * an empty list is returned. * * @throws IllegalArgumentException * {@code regex} is {@code null}. * * @throws java.util.regex.PatternSyntaxException * {@code regex} failed to be compiled. * * @since 1.11 */ public static List findByName(String regex) { if (regex == null) { throw new IllegalArgumentException("regex is null."); } // Compile the regular expression. This may throw // java.util.regex.PatternSyntaxException. Pattern pattern = Pattern.compile(regex); return findByName(pattern); } /** * Get a list of {@code LanguageAlpha3Code} by a name pattern. * *

* For example, the list obtained by the code snippet below: *

* *
     * Pattern pattern = Pattern.compile("Old.*");
     * List<LanguageAlpha3Code> list = LanguageAlpha3Code.findByName(pattern);
* *

* contains 7 {@code LanguageAlpha3Code}s as listed below. *

* *
    *
  1. {@link #ang} : Old English *
  2. {@link #fro} : Old French *
  3. {@link #goh} : Old High German *
  4. {@link #non} : Old Norse *
  5. {@link #peo} : Old Persian *
  6. {@link #pro} : Old Provençal *
  7. {@link #sga} : Old Irish *
* * @param pattern * Pattern to match names. * * @return * List of {@code LanguageAlpha3Code}. If nothing has matched, * an empty list is returned. * * @throws IllegalArgumentException * {@code pattern} is {@code null}. * * @since 1.11 */ public static List findByName(Pattern pattern) { if (pattern == null) { throw new IllegalArgumentException("pattern is null."); } List list = new ArrayList(); for (LanguageAlpha3Code entry : values()) { // If the name matches the given pattern. if (pattern.matcher(entry.getName()).matches()) { list.add(entry); } } return list; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy