[FOray-commit] SF.net SVN: foray: [7793] trunk/foray/foray-common/src/java/org/foray/common
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
|
From: <vic...@us...> - 2006-07-18 16:08:01
|
Revision: 7793 Author: victormote Date: 2006-07-18 09:07:41 -0700 (Tue, 18 Jul 2006) ViewCVS: http://svn.sourceforge.net/foray/?rev=7793&view=rev Log Message: ----------- Move the ISO-639 logic to a new Common class, and bring it up to date. Modified Paths: -------------- trunk/foray/foray-fotree/src/java/org/foray/fotree/fo/prop/Language.java trunk/foray/foray-fotree/src/java/org/foray/fotree/value/DtLanguage.java Added Paths: ----------- trunk/foray/foray-common/src/java/org/foray/common/ISO639.java Added: trunk/foray/foray-common/src/java/org/foray/common/ISO639.java =================================================================== --- trunk/foray/foray-common/src/java/org/foray/common/ISO639.java (rev 0) +++ trunk/foray/foray-common/src/java/org/foray/common/ISO639.java 2006-07-18 16:07:41 UTC (rev 7793) @@ -0,0 +1,642 @@ +/* + * Copyright 2006 The FOray Project. + * http://www.foray.org + * + * 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. + * + * This work is in part derived from the following work(s), used with the + * permission of the licensor: + * Apache FOP, licensed by the Apache Software Foundation + * + */ + +/* $Id$ */ + +package org.foray.common; + +import java.util.Arrays; + +/** + * Utility class for validating ISO language codes using the ISO-639 standard. + * + */ +public class ISO639 { + + /** + * This list is derived from + * http://www.loc.gov/standards/iso639-2/langcodes.html. + * Element 0 is the 3-letter code, element 1 is the 2-letter code (if any), + * element 2 is the English language name, and element 3 is the French + * language name. + */ + private static String[][] rawCodes = { + {"aar", "aa", "Afar", "afar"}, + {"abk", "ab", "Abkhazian", "abkhaze"}, + {"ace", null, "Achinese", "aceh"}, + {"ach", null, "Acoli", "acoli"}, + {"ada", null, "Adangme", "adangme"}, + {"ady", null, "Adyghe; Adygei", "adygh\xE9"}, + {"afa", null, "Afro-Asiatic (Other)", + "afro-asiatiques, autres langues"}, + {"afh", null, "Afrihili", "afrihili"}, + {"afr", "af", "Afrikaans", "afrikaans"}, + {"ain", null, "Ainu", "a\xEFnou"}, + {"aka", "ak", "Akan", "akan"}, + {"akk", null, "Akkadian", "akkadien"}, + {"alb", "sq", "Albanian", "albanais"}, + {"ale", null, "Aleut", "al\xE9oute"}, + {"alg", null, "Algonquian languages", "algonquines, langues"}, + {"alt", null, "Southern Altai", "alta\xEF du Sud"}, + {"amh", "am", "Amharic", "amharique"}, + {"ang", null, "English, Old (ca.450-1100)", + "anglo-saxon (ca.450-1100)"}, + {"anp", null, "Angika", "angika"}, + {"apa", null, "Apache languages", "apache"}, + {"ara", "ar", "Arabic", "arabe"}, + {"arc", null, "Aramaic", "aram\xE9en"}, + {"arg", "an", "Aragonese", "aragonais"}, + {"arm", "hy", "Armenian", "arm\xE9nien"}, + {"arn", null, "Araucanian", "araucan"}, + {"arp", null, "Arapaho", "rapaho"}, + {"art", null, "Artificial (Other)", + "artificielles, autres langues"}, + {"arw", null, "Arawak", "arawak"}, + {"asm", "as", "Assamese", "assamais"}, + {"ast", null, "Asturian; Bable", " asturien; bable"}, + {"ath", null, "Athapascan languages", "athapascanes, langues"}, + {"aus", null, "Australian languages", "australiennes, langues"}, + {"ava", "av", "Avaric", "avar"}, + {"ave", "ae", "Avestan", "avestique"}, + {"awa", null, "Awadhi", "awadhi"}, + {"aym", "ay", "Aymara", "aymara"}, + {"aze", "az", "Azerbaijani", "az\xE9ri"}, + {"bad", null, "Banda", " banda"}, + {"bai", null, "Bamileke languages", "bamil\xE9k\xE9s, langues"}, + {"bak", "ba", "Bashkir", "bachkir"}, + {"bal", null, "Baluchi", "baloutchi"}, + {"bam", "bm", "Bambara", "bambara"}, + {"ban", null, "Balinese", "balinais"}, + {"baq", "eu", "Basque", "basque"}, + {"bas", null, "Basa", "basa"}, + {"bat", null, "Baltic (Other)", "baltiques, autres langues"}, + {"bej", null, "Beja", "bedja"}, + {"bel", "be", "Belarusian", "bi\xE9lorusse"}, + {"bem", null, "Bemba", "bemba"}, + {"ben", "bn", "Bengali", "bengali"}, + {"ber", null, "Berber (Other)", "berb\xE8res, autres langues"}, + {"bho", null, "Bhojpuri", "bhojpuri"}, + {"bih", "bh", "Bihari", "bihari"}, + {"bik", null, "Bikol", "bikol"}, + {"bin", null, "Bini", "bini"}, + {"bis", "bi", "Bislama", "bichlamar"}, + {"bla", null, "Siksika", "blackfoot"}, + {"bnt", null, "Bantu (Other)", "bantoues, autres langues"}, + {"tib", "bo", "Tibetan", "tib\xE9tain"}, + {"bos", "bs", "Bosnian", "bosniaque"}, + {"bra", null, "Braj", "braj"}, + {"bre", "br", "Breton", "breton"}, + {"btk", null, "Batak (Indonesia)", "batak (Indon\xE9sie)"}, + {"bua", null, "Buriat", "bouriate"}, + {"bug", null, "Buginese", "bugi"}, + {"bul", "bg", "Bulgarian", "bulgare"}, + {"bur", "my", "Burmese", "birman"}, + {"byn", null, "Blin; Bilin", "blin; bilen"}, + {"cad", null, "Caddo", "caddo"}, + {"cai", null, "Central American Indian (Other)", + "indiennes d'Am\xE9rique centrale, autres langues"}, + {"car", null, "Carib", "caribe"}, + {"cat", "ca", "Catalan; Valencian", "catalan; valencien"}, + {"cau", null, "Caucasian (Other)", "caucasiennes, autres langues"}, + {"ceb", null, "Cebuano", "cebuano"}, + {"cel", null, "Celtic (Other)", "celtiques, autres langues"}, + {"cze", "cs", "Czech", "tch\xE8que"}, + {"cha", "ch", "Chamorro", "chamorro"}, + {"chb", null, "Chibcha", " chibcha"}, + {"che", "ce", "Chechen", "tch\xE9tch\xE8ne"}, + {"chg", null, "Chagatai", "djaghata\xEF"}, + {"chi", "zh", "Chinese", "chinois"}, + {"chk", null, "Chuukese", "chuuk"}, + {"chm", null, "Mari", "mari"}, + {"chn", null, "Chinook jargon", "chinook, jargon"}, + {"cho", null, "Choctaw", "choctaw"}, + {"chp", null, "Chipewyan", "chipewyan"}, + {"chr", null, "Cherokee", "cherokee"}, + {"chu", "cu", "Church Slavic; Old Slavonic; Church Slavonic; " + + "Old Bulgarian; Old Church Slavonic", + "slavon d'\xE9glise; vieux slave; slavon liturgique; vieux " + + "bulgare"}, + {"chv", "cv", "Chuvash", "tchouvache"}, + {"chy", null, "Cheyenne", "cheyenne"}, + {"cmc", null, "Chamic languages", "chames, langues"}, + {"cop", null, "Coptic", "copte"}, + {"cor", "kw", "Cornish", "cornique"}, + {"cos", "co", "Corsican", "corse"}, + {"cpe", null, "Creoles and pidgins, English based (Other)", + "cr\xE9oles et pidgins anglais, autres"}, + {"cpf", null, "Creoles and pidgins, French-based (Other)", + "cr\xE9oles et pidgins fran\xE7ais, autres"}, + {"cpp", null, "Creoles and pidgins, Portuguese-based (Other)", + "cr\xE9oles et pidgins portugais, autres"}, + {"cre", "cr", "Cree", "cree"}, + {"crh", null, "Crimean Tatar; Crimean Turkish", "tatar de Crim\xE9"}, + {"crp", null, "Creoles and pidgins (Other)", + "cr\xE9oles et pidgins divers"}, + {"csb", null, "Kashubian", "kachoube"}, + {"cus", null, "Cushitic (Other)", "couchitiques, autres langues"}, + {"wel", "cy", "Welsh", "gallois"}, + {"cze", "cs", "Czech", "tch\xE8que"}, + {"dak", null, "Dakota", "dakota"}, + {"dan", "da", "Danish", "danois"}, + {"dar", null, "Dargwa", "dargwa"}, + {"day", null, "Dayak", "dayak"}, + {"del", null, "Delaware", "delaware"}, + {"den", null, "Slave (Athapascan)", "esclave (athapascan)"}, + {"ger", "de", "German", "allemand"}, + {"dgr", null, "Dogrib", "dogrib"}, + {"din", null, "Dinka", "dinka"}, + {"div", "dv", "Divehi; Dhivehi; Maldivian", " maldivien"}, + {"doi", null, "Dogri", "dogri"}, + {"dra", null, "Dravidian (Other)", "dravidiennes, autres langues"}, + {"dsb", null, "Lower Sorbian", "bas-sorabe"}, + {"dua", null, "Duala", "douala"}, + {"dum", null, "Dutch, Middle (ca.1050-1350)", + "n\xE9erlandais moyen (ca. 1050-1350)"}, + {"dut", "nl", "Dutch; Flemish", "n\xE9erlandais; flamand"}, + {"dyu", null, "Dyula", "dioula"}, + {"dzo", "dz", "Dzongkha", "dzongkha"}, + {"efi", null, "Efik", "efik"}, + {"egy", null, "Egyptian (Ancient)", "\xE9gyptien"}, + {"eka", null, "Ekajuk", "ekajuk"}, + {"gre", "el", "Greek, Modern (1453-)", "grec moderne (apr\xE8s 1453)"}, + {"elx", null, "Elamite", "\xE9lamite"}, + {"eng", "en", "English", "anglais"}, + {"enm", null, "English, Middle (1100-1500)", + "anglais moyen (1100-1500)"}, + {"epo", "eo", "Esperanto", "esp\xE9ranto"}, + {"est", "et", "Estonian", "estonien"}, + {"baq", "eu", "Basque", "basque"}, + {"ewe", "ee", "Ewe", "\xE9w\xE9"}, + {"ewo", null, "Ewondo", "\xE9wondo"}, + {"fan", null, "Fang", "fang"}, + {"fao", "fo", "Faroese", "f\xE9ro\xEFen"}, + {"per", "fa", "Persian", "persan"}, + {"fat", null, "Fanti", "fanti"}, + {"fij", "fj", "Fijian", "fidjien"}, + {"fil", null, "Filipino; Pilipino", "filipino; pilipino"}, + {"fin", "fi", "Finnish", "finnois"}, + {"fiu", null, "Finno-Ugrian (Other)", + "finno-ougriennes, autres langues"}, + {"fon", null, "Fon", "fon"}, + {"fre", "fr", "French", "fran\xE7ais"}, + {"frm", null, "French, Middle (ca.1400-1600)", + "fran\xE7ais moyen (1400-1600)"}, + {"fro", null, "French, Old (842-ca.1400)", + "fran\xE7ais ancien (842-ca.1400)"}, + {"frr", null, "Northern Frisian", "frison septentrional"}, + {"frs", null, "Eastern Frisian", "frison oriental"}, + {"fry", "fy", "Western Frisian", "frison occidental"}, + {"ful", "ff", "Fulah", "peul"}, + {"fur", null, "Friulian", "frioulan"}, + {"gaa", null, "Ga", "ga"}, + {"gay", null, "Gayo", " gayo"}, + {"gba", null, "Gbaya", "gbaya"}, + {"gem", null, "Germanic (Other)", "germaniques, autres langues"}, + {"geo", "ka", "Georgian", "g\xE9orgien"}, + {"ger", "de", "German", "allemand"}, + {"gez", null, "Geez", "gu\xE8ze"}, + {"gil", null, "Gilbertese", "kiribati"}, + {"gla", "gd", "Gaelic; Scottish Gaelic", + "ga\xE9lique; ga\xE9lique \xE9cossais"}, + {"gle", "ga", "Irish", "irlandais"}, + {"glg", "gl", "Galician galicien"}, + {"glv", "gv", "Manx", "manx; mannois"}, + {"gmh", null, "German, Middle High (ca.1050-1500)", + "allemand, moyen haut (ca. 1050-1500)"}, + {"goh", null, "German, Old High (ca.750-1050)", + "allemand, vieux haut (ca. 750-1050)"}, + {"gon", null, "Gondi", "gond"}, + + {"gor", null, "Gorontalo", "gorontalo"}, + {"got", null, "Gothic", "gothique"}, + {"grb", null, "Grebo", "grebo"}, + {"grc", null, "Greek, Ancient (to 1453)", + "grec ancien (jusqu'\xE0 1453)"}, + {"gre", "el", "Greek, Modern (1453-)", "grec moderne (apr\xE8s 1453)"}, + {"grn", "gn", "Guarani", "guarani"}, + {"gsw", null, "Alemanic; Swiss German", " al\xE9manique"}, + {"guj", "gu", "Gujarati", "goudjrati"}, + {"gwi", null, "Gwich\xB4in", "gwich\xB4in"}, + {"hai", null, "Haida", "haida"}, + {"hat", "ht", "Haitian; Haitian Creole", "ha\xEFtien; cr\xE9ole ha\xEFtien"}, + {"hau", "ha", "Hausa", "haoussa"}, + {"haw", null, "Hawaiian", "hawa\xEFen"}, + {"heb", "he", "Hebrew", "h\xE9breu"}, + {"her", "hz", "Herero", " herero"}, + {"hil", null, "Hiligaynon", "hiligaynon"}, + {"him", null, "Himachali", "himachali"}, + {"hin", "hi", "Hindi", "hindi"}, + {"hit", null, "Hittite", "hittite"}, + {"hmn", null, "Hmong", "hmong"}, + {"hmo", "ho", "Hiri Motu", "hiri motu"}, + {"scr", "hr", "Croatian", "croate"}, + {"hsb", null, "Upper Sorbian", "haut-sorabe"}, + {"hun", "hu", "Hungarian", "hongrois"}, + {"hup", null, "Hupa", "hupa"}, + {"arm", "hy", "Armenian", "arm\xE9nien"}, + {"iba", null, "Iban", "iban"}, + {"ibo", "ig", "Igbo", "igbo"}, + {"ice", "is", "Icelandic", "islandais"}, + {"ido", "io", "Ido", "ido"}, + {"iii", "ii", "Sichuan Yi", "yi de Sichuan"}, + {"ijo", null, "Ijo", "ijo"}, + {"iku", "iu", "Inuktitut", "inuktitut"}, + {"ile", "ie", "Interlingue", "interlingue"}, + {"ilo", null, "Iloko", "ilocano"}, + {"ina", "ia", "Interlingua (International Auxiliary Language " + + "Association)", + "interlingua (langue auxiliaire internationale)"}, + {"inc", null, "Indic (Other)", "indo-aryennes, autres langues"}, + {"ind", "id", "Indonesian", "indon\xE9sien"}, + {"ine", null, "Indo-European (Other)", + "indo-europ\xE9ennes, autres langues"}, + {"inh", null, "Ingush", "ingouche"}, + {"ipk", "ik", "Inupiaq", "inupiaq"}, + {"ira", null, "Iranian (Other)", "iraniennes, autres langues"}, + {"iro", null, "Iroquoian languages", + "iroquoises, langues (famille)"}, + {"ice", "is", "Icelandic", "islandais"}, + {"ita", "it", "Italian", "italien"}, + {"jav", "jv", "Javanese", "javanais"}, + {"jbo", null, "Lojban", "lojban"}, + {"jpn", "ja", "Japanese", "japonais"}, + {"jpr", null, "Judeo-Persian", "jud\xE9o-persan"}, + {"jrb", null, "Judeo-Arabic", "jud\xE9o-arabe"}, + {"kaa", null, "Kara-Kalpak", "karakalpak"}, + {"kab", null, "Kabyle", "kabyle"}, + {"kac", null, "Kachin", "kachin"}, + {"kal", "kl", "Kalaallisut; Greenlandic", "groenlandais"}, + {"kam", null, "Kamba", "kamba"}, + {"kan", "kn", "Kannada", "kannada"}, + {"kar", null, "Karen", "karen"}, + {"kas", "ks", "Kashmiri", "kashmiri"}, + {"geo", "ka", "Georgian", "g\xE9orgien"}, + {"kau", "kr", "Kanuri", "kanouri"}, + {"kaw", null, "Kawi", "kawi"}, + {"kaz", "kk", "Kazakh", "kazakh"}, + {"kbd", null, "Kabardian", "kabardien"}, + {"kha", null, "Khasi", "khasi"}, + {"khi", null, "Khoisan (Other)", "khoisan, autres langues"}, + {"khm", "km", "Khmer", "khmer"}, + {"kho", null, "Khotanese", "khotanais"}, + {"kik", "ki", "Kikuyu; Gikuyu", "kikuyu"}, + {"kin", "rw", "Kinyarwanda", "rwanda"}, + {"kir", "ky", "Kirghiz", "kirghize"}, + {"kmb", null, "Kimbundu", "kimbundu"}, + {"kok", null, "Konkani", "konkani"}, + {"kom", "kv", "Komi", "kom"}, + {"kon", "kg", "Kongo", "kongo"}, + {"kor", "ko", "Korean", "cor\xE9en"}, + {"kos", null, "Kosraean", "kosrae"}, + {"kpe", null, "Kpelle", "kpell\xE9"}, + {"krc", null, "Karachay-Balkar", "karatcha\xEF balkar"}, + {"krl", null, "Karelian", "car\xE9lien"}, + {"kro", null, "Kru", "krou"}, + {"kru", null, "Kurukh", "kurukh"}, + {"kua", "kj", "Kuanyama; Kwanyama", "kuanyama; kwanyama"}, + {"kum", null, "Kumyk", "koumyk"}, + {"kur", "ku", "Kurdish", "kurde"}, + {"kut", null, "Kutenai", "kutenai"}, + {"lad", null, "Ladino", "jud\xE9o-espagnol"}, + {"lah", null, "Lahnda", "lahnda"}, + {"lam", null, "Lamba", "lamba"}, + {"lao", "lo", "Lao", "lao"}, + {"lat", "la", "Latin", "latin"}, + {"lav", "lv", "Latvian", "letton"}, + {"lez", null, "Lezghian", "lezghien"}, + {"lim", "li", "Limburgan; Limburger;", "Limburgish limbourgeois"}, + {"lin", "ln", "Lingala", "lingala"}, + {"lit", "lt", "Lithuanian", "lituanien"}, + {"lol", null, "Mongo", "mongo"}, + {"loz", null, "Lozi", "lozi"}, + {"ltz", "lb", "Luxembourgish; Letzeburgesch", "luxembourgeois"}, + {"lua", null, "Luba-Lulua", "luba-lulua"}, + {"lub", "lu", "Luba-Katanga", "luba-katanga"}, + {"lug", "lg", "Ganda", "ganda"}, + {"lui", null, "Luiseno", "luiseno"}, + {"lun", null, "Lunda", "lunda"}, + {"luo", null, "Luo (Kenya and Tanzania)", + "luo (Kenya et Tanzanie)"}, + {"lus", null, "lushai", "Lushai"}, + {"mac", "mk", "Macedonian", "mac\xE9donien"}, + {"mad", null, "Madurese", "madourais"}, + {"mag", null, "Magahi", "magahi"}, + {"mah", "mh", "Marshallese", "marshall"}, + {"mai", null, "Maithili", "maithili"}, + {"mak", null, "Makasar", "makassar"}, + {"mal", "ml", "Malayalam", "malayalam"}, + {"man", null, "Mandingo", "mandingue"}, + {"mao", "mi", "Maori", "maori"}, + {"map", null, "Austronesian (Other)", + "malayo-polyn\xE9siennes, autres langues"}, + {"mar", "mr", "Marathi", "marathe"}, + {"mas", null, "Masai", "massa\xEF"}, + {"may", "ms", "Malay", "malais"}, + {"mdf", null, "Moksha", "moksa"}, + {"mdr", null, "Mandar", "mandar"}, + {"men", null, "Mende", "mend\xE9"}, + {"mga", null, "Irish, Middle (900-1200)", + "irlandais moyen (900-1200)"}, + {"mic", null, "Mi'kmaq; Micmac", "mi'kmaq; micmac"}, + {"min", null, "Minangkabau", "minangkabau"}, + {"mis", null, "Miscellaneous languages", "diverses, langues"}, + {"mac", "mk", "Macedonian", "mac\xE9donien"}, + {"mkh", null, "Mon-Khmer (Other)", "m\xF4n-khmer, autres langues"}, + {"mlg", "mg", "Malagasy", "malgache"}, + {"mlt", "mt", "Maltese", "maltais"}, + {"mnc", null, "Manchu", "mandchou"}, + {"mni", null, "Manipuri", "manipuri"}, + {"mno", null, "Manobo languages", " manobo, langues"}, + {"moh", null, "Mohawk", "mohawk"}, + {"mol", "mo", "Moldavian", "moldave"}, + {"mon", "mn", "Mongolian", "mongol"}, + {"mos", null, "Mossi", "mor\xE9"}, + {"mao", "mi", "Maori", "maori"}, + {"may", "ms", "Malay", "malais"}, + {"mul", null, "Multiple languages", "multilingue"}, + {"mun", null, "Munda languages", "mounda, langues"}, + {"mus", null, "Creek", "muskogee"}, + {"mwl", null, "Mirandese", "mirandais"}, + {"mwr", null, "Marwari", "marvari"}, + {"bur", "my", "Burmese", "birman"}, + {"myn", null, "Mayan languages", "maya, langues"}, + {"myv", null, "Erzya", "erza"}, + {"nah", null, "Nahuatl", "nahuatl"}, + {"nai", null, "North American Indian", + "indiennes d'Am\xE9rique du Nord, autres langues"}, + {"nap", null, "Neapolitan", "napolitain"}, + {"nau", "na", "Nauru", "nauruan"}, + {"nav", "nv", "Navajo; Navaho", "navaho"}, + {"nbl", "nr", "Ndebele, South; South Ndebele", "nd\xE9b\xE9l\xE9 du Sud"}, + {"nde", "nd", "Ndebele, North; North Ndebele", "nd\xE9b\xE9l\xE9 du Nord"}, + {"ndo", "ng", "Ndonga", "ndonga"}, + {"nds", null, "Low German; Low Saxon; German, Low; Saxon, Low", + "bas allemand; bas saxon; allemand, bas; saxon, bas"}, + {"nep", "ne", "Nepali", "n\xE9palais"}, + {"new", null, "Newari; Nepal Bhasa", "newari; nepal bhasa"}, + {"nia", null, "Nias", "nias"}, + {"nic", null, "Niger-Kordofanian (Other)", + "nig\xE9ro-congolaises, autres langues"}, + {"niu", null, "Niuean", "niu\xE9"}, + {"dut", "nl", "Dutch; Flemish", "n\xE9erlandais; flamand"}, + {"nno", "nn", "Norwegian Nynorsk; Nynorsk, Norwegian", + "norv\xE9gien nynorsk; nynorsk, norv\xE9gien"}, + {"nob", "nb", "Norwegian Bokm\xE5l; Bokm\xE5l, Norwegian", + "norv\xE9gien bokm\xE5l; bokm\xE5l, norv\xE9gien"}, + {"nog", null, "Nogai", "noga\xEF; nogay"}, + {"non", null, "Norse, Old", "norrois, vieux"}, + {"nor", "no", "Norwegian", "norv\xE9gien"}, + {"nqo", null, "N'ko", "n'ko"}, + {"nso", null, "Northern Sotho, Pedi; Sepedi", + "sotho du Nord; pedi; sepedi"}, + {"nub", null, "Nubian languages", "nubiennes, langues"}, + {"nwc", null, "Classical Newari; Old Newari; Classical Nepal", + "Bhasa newari classique"}, + {"nya", "ny", "Chichewa; Chewa; Nyanja", "chichewa; chewa; nyanja"}, + {"nym", null, "Nyamwezi", "nyamwezi"}, + {"nyn", null, "Nyankole", "nyankol\xE9"}, + {"nyo", null, "Nyoro", "nyoro"}, + {"nzi", null, "Nzima", "nzema"}, + {"oci", "oc", "Occitan (post 1500); Proven\xE7al", + "occitan (apr\xE8s 1500); proven\xE7al"}, + {"oji", "oj", "Ojibwa", "ojibwa"}, + {"ori", "or", "Oriya", "oriya"}, + {"orm", "om", "Oromo", "galla"}, + {"osa", null, "Osage", "osage"}, + {"oss", "os", "Ossetian; Ossetic", "oss\xE8te"}, + {"ota", null, "Turkish, Ottoman (1500-1928)", + "turc ottoman (1500-1928)"}, + {"oto", null, "Otomian languages", "otomangue, langues"}, + {"paa", null, "Papuan (Other)", "papoues, autres langues"}, + {"pag", null, "Pangasinan", "pangasinan"}, + {"pal", null, "Pahlavi", "pahlavi"}, + {"pam", null, "Pampanga", "pampangan"}, + {"pan", "pa", "Panjabi; Punjabi", "pendjabi"}, + {"pap", null, "Papiamento", "papiamento"}, + {"pau", null, "Palauan", "palau"}, + {"peo", null, "Persian, Old (ca.600-400 B.C.)", + "perse, vieux (ca. 600-400 av. J.-C.)"}, + {"per", "fa", "Persian", "persan"}, + {"phi", null, "Philippine (Other)", "philippines, autres langues"}, + {"phn", null, "Phoenician", "ph\xE9nicien"}, + {"pli", "pi", "Pali", "pali"}, + {"pol", "pl", "Polish", "polonais"}, + {"pon", null, "Pohnpeian", "pohnpei"}, + {"por", "pt", "Portuguese", "portugais"}, + {"pra", null, "Prakrit languages", "pr\xE2krit"}, + {"pro", null, "Proven\xE7al, Old (to 1500)", + "proven\xE7al ancien (jusqu'\xE0 1500)"}, + {"pus", "ps", "Pushto", "pachto"}, + {"que", "qu", "Quechua", "quechua"}, + {"raj", null, "Rajasthani", "rajasthani"}, + {"rap", null, "Rapanui", "rapanui"}, + {"rar", null, "Rarotongan", "rarotonga"}, + {"roa", null, "Romance (Other)", "romanes, autres langues"}, + {"roh", "rm", "Raeto-Romance", "rh\xE9to-roman"}, + {"rom", null, "Romany", "tsigane"}, + {"rum", "ro", "Romanian", "roumain"}, + {"run", "rn", "Rundi", "rundi"}, + {"rup", null, "Aromanian; Arumanian; Macedo-Romanian", + "aroumain; mac\xE9do-roumain"}, + {"rus", "ru", "Russian", "russe"}, + {"sad", null, "Sandawe", "sandawe"}, + {"sag", "sg", "Sango", "sango"}, + {"sah", null, "Yakut", "iakoute"}, + {"sai", null, "South American Indian (Other)", + "indiennes d'Am\xE9rique du Sud autres langues"}, + {"sal", null, "Salishan languages", "salish, langues"}, + {"sam", null, "Samaritan Aramaic", "samaritain"}, + {"san", "sa", "Sanskrit", "sanskrit"}, + {"sas", null, "Sasak", "sasak"}, + {"sat", null, "Santali", "santal"}, + {"scc", "sr", "Serbian", "serbe"}, + {"scn", null, "Sicilian", "sicilien"}, + {"sco", null, "Scots", "\xE9cossais"}, + {"scr", "hr", "Croatian", "croate"}, + {"sel", null, "Selkup", "selkoupe"}, + {"sem", null, "Semitic (Other)", "s\xE9mitiques, autres langues"}, + {"sga", null, "Irish, Old (to 900)", + "irlandais ancien (jusqu'\xE0 900)"}, + {"sgn", null, "Sign Languages", "langues des signes"}, + {"shn", null, "Shan", "chan"}, + {"sid", null, "Sidamo", "sidamo"}, + {"sin", "si", "Sinhala; Sinhalese", "singhalais"}, + {"sio", null, "Siouan languages", "sioux, langues"}, + {"sit", null, "Sino-Tibetan (Other)", + "sino-tib\xE9taines, autres langues"}, + {"sla", null, "Slavic (Other)", "slaves, autres langues"}, + {"slo", "sk", "Slovak", "slovaque"}, + {"slv", "sl", "Slovenian", "slov\xE8ne"}, + {"sma", null, "Southern Sami", "sami du Sud"}, + {"sme", "se", "Northern Sami", "sami du Nord"}, + {"smi", null, "Sami languages (Other)", "sami, autres langues"}, + {"smj", null, "Lule Sami", "sami de Lule"}, + {"smn", null, "Inari Sami", "sami d'Inari"}, + {"smo", "sm", "Samoan", "samoan"}, + {"sms", null, "Skolt Sami", "sami skolt"}, + {"sna", "sn", "Shona", "shona"}, + {"snd", "sd", "Sindhi", "sindhi"}, + {"snk", null, "Soninke", "sonink\xE9"}, + {"sog", null, "Sogdian", "sogdien"}, + {"som", "so", "Somali", "somali"}, + {"son", null, "Songhai", "songhai"}, + {"sot", "st", "Sotho, Southern", "sotho du Sud"}, + {"spa", "es", "Spanish; Castilian", "espagnol; castillan"}, + {"alb", "sq", "Albanian", "albanais"}, + {"srd", "sc", "Sardinian", "sarde"}, + {"srn", null, "Sranan Togo", "sranan togo"}, + {"scc", "sr", "Serbian", "serbe"}, + {"srr", null, "Serer", "s\xE9r\xE8re"}, + {"ssa", null, "Nilo-Saharan (Other)", + "nilo-sahariennes, autres langues"}, + {"ssw", "ss", "Swati", "swati"}, + {"suk", null, "Sukuma", "sukuma"}, + {"sun", "su", "Sundanese", "soundanais"}, + {"sus", null, "Susu", "soussou"}, + {"sux", null, "Sumerian", "sum\xE9rien"}, + {"swa", "sw", "Swahili", "swahili"}, + {"swe", "sv", "Swedish", "su\xE9dois"}, + {"syr", null, "Syriac", "syriaque"}, + {"tah", "ty", "Tahitian", "tahitien"}, + {"tai", null, "Tai (Other)", "tha\xEFes, autres langues"}, + {"tam", "ta", "Tamil", "tamoul"}, + {"tat", "tt", "Tatar", "tatar"}, + {"tel", "te", "Telugu", "t\xE9lougou"}, + {"tem", null, "Timne", "temne"}, + {"ter", null, "Tereno", "tereno"}, + {"tet", null, "Tetum", "tetum"}, + {"tgk", "tg", "Tajik", "tadjik"}, + {"tgl", "tl", "Tagalog", "tagalog"}, + {"tha", "th", "Thai", "tha\xEF"}, + {"tib", "bo", "Tibetan", "tib\xE9tain"}, + {"tig", null, "Tigre", "tigr\xE9"}, + {"tir", "ti", "Tigrinya", "tigrigna"}, + {"tiv", null, "Tiv", "tiv"}, + {"tkl", null, "Tokelau", "tokelau"}, + {"tlh", null, "Klingon; tlhIngan-Hol", "klingon"}, + {"tli", null, "Tlingit", "tlingit"}, + {"tmh", null, "Tamashek", "tamacheq"}, + {"tog", null, "Tonga (Nyasa)", "tonga (Nyasa)"}, + {"ton", "to", "Tonga (Tonga Islands)", "tongan (\xCEles Tonga)"}, + {"tpi", null, "Tok Pisin", "tok pisin"}, + {"tsi", null, "Tsimshian", "tsimshian"}, + {"tsn", "tn", "Tswana", "tswana"}, + {"tso", "ts", "Tsonga", "tsonga"}, + {"tuk", "tk", "Turkmen", "turkm\xE8ne"}, + {"tum", null, "Tumbuka", "tumbuka"}, + {"tup", null, "Tupi languages", "tupi, langues"}, + {"tur", "tr", "Turkish", "turc"}, + {"tut", null, "Altaic (Other)", "alta\xEFques, autres langues"}, + {"tvl", null, "Tuvalu", "tuvalu"}, + {"twi", "tw", "Twi", "twi"}, + {"tyv", null, "Tuvinian", "touva"}, + {"udm", null, "Udmurt", "oudmourte"}, + {"uga", null, "Ugaritic", "ougaritique"}, + {"uig", "ug", "Uighur; Uyghur", "ou\xEFgour"}, + {"ukr", "uk", "Ukrainian", "ukrainien"}, + {"umb", null, "Umbundu", "umbundu"}, + {"und", null, "Undetermined", "ind\xE9termin\xE9e"}, + {"urd", "ur", "Urdu", "ourdou"}, + {"uzb", "uz", "Uzbek", "ouszbek"}, + {"vai", null, "Vai", "va\xEF"}, + {"ven", "ve", "Venda", "venda"}, + {"vie", "vi", "Vietnamese", "vietnamien"}, + {"vol", "vo", "Volap\xFCk", "volap\xFCk"}, + {"vot", null, "Votic", "vote"}, + {"wak", null, "Wakashan languages", "wakashennes, langues"}, + {"wal", null, "Walamo", "walamo"}, + {"war", null, "Waray", "waray"}, + {"was", null, "Washo", "washo"}, + {"wel", "cy", "Welsh", "gallois"}, + {"wen", null, "Sorbian languages", "sorabes, langues"}, + {"wln", "wa", "Walloon", "wallon"}, + {"wol", "wo", "Wolof", "wolof"}, + {"xal", null, "Kalmyk; Oirat", "kalmouk; o\xEFrat"}, + {"xho", "xh", "Xhosa", "xhosa"}, + {"yao", null, "Yao", "yao"}, + {"yap", null, "Yapese", "yapois"}, + {"yid", "yi", "Yiddish", "yiddish"}, + {"yor", "yo", "Yoruba", "yoruba"}, + {"ypk", null, "Yupik languages yupik,", "langues"}, + {"zap", null, "Zapotec", "zapot\xE8que"}, + {"zen", null, "Zenaga", "zenaga"}, + {"zha", "za", "Zhuang; Chuang", "zhuang; chuang"}, + {"chi", "zh", "Chinese", "chinois"}, + {"znd", null, "Zande", "zand\xE9"}, + {"zul", "zu", "Zulu", "zoulou"}, + {"zun", null, "Zuni", "zuni"}, + {"zxx", null, "No linguistic content", + "pas de contenu linguistique"}, + }; + + private static String[] codes3Letter; + private static String[] codes2Letter; + + static { + /* Build the 3-letter codes array.*/ + int count2LetterCodes = 0; + codes3Letter = new String[rawCodes.length]; + for (int i = 0; i < rawCodes.length; i++) { + codes3Letter[i] = rawCodes[i][0]; + if (rawCodes[i][1] != null) { + count2LetterCodes ++; + } + } + Arrays.sort(codes3Letter); + + /* Build the 2-letter codes array. */ + codes2Letter = new String[count2LetterCodes]; + count2LetterCodes = 0; + for (int i = 0; i < rawCodes.length; i++) { + if (rawCodes[i][1] != null) { + codes2Letter[count2LetterCodes] = rawCodes[i][1]; + count2LetterCodes ++; + } + } + Arrays.sort(codes2Letter); + } + + /** + * Private constructor (should not be instantiated). + */ + private ISO639() {} + + /** + * Determines whether a given language code is a valid 2-character or + * 3-character language code as defined in ISO 639 + * @param languageCode A 2-letter or 3-letter ISO 639 code + * @return True iff <code>languageCode</code> is a valid 2- or 3-character + * ISO 639 language code. + */ + public static boolean validLanguage(String languageCode) { + int index = Arrays.binarySearch(codes3Letter, languageCode); + if (index >= 0) { + return true; + } + index = Arrays.binarySearch(codes2Letter, languageCode); + if (index >= 0) { + return true; + } + return false; + } + +} Property changes on: trunk/foray/foray-common/src/java/org/foray/common/ISO639.java ___________________________________________________________________ Name: svn:keywords + "Author Id Rev Date URL" Name: svn:eol-style + native Modified: trunk/foray/foray-fotree/src/java/org/foray/fotree/fo/prop/Language.java =================================================================== --- trunk/foray/foray-fotree/src/java/org/foray/fotree/fo/prop/Language.java 2006-07-18 02:19:08 UTC (rev 7792) +++ trunk/foray/foray-fotree/src/java/org/foray/fotree/fo/prop/Language.java 2006-07-18 16:07:41 UTC (rev 7793) @@ -24,6 +24,7 @@ package org.foray.fotree.fo.prop; +import org.foray.common.ISO639; import org.foray.fotree.FObj; import org.foray.fotree.Property; import org.foray.fotree.PropertyException; @@ -61,7 +62,7 @@ if (pv != null) { return pv; } - if (DtLanguage.validLanguage(value)) { + if (ISO639.validLanguage(value)) { return new DtLanguage(value); } throw new PropertyException(unexpectedValueMessage(value, Modified: trunk/foray/foray-fotree/src/java/org/foray/fotree/value/DtLanguage.java =================================================================== --- trunk/foray/foray-fotree/src/java/org/foray/fotree/value/DtLanguage.java 2006-07-18 02:19:08 UTC (rev 7792) +++ trunk/foray/foray-fotree/src/java/org/foray/fotree/value/DtLanguage.java 2006-07-18 16:07:41 UTC (rev 7793) @@ -24,7 +24,7 @@ package org.foray.fotree.value; -import java.util.Arrays; +import org.foray.common.ISO639; /** * A "language" datatype in XSL-FO. Languages must conform to the 3-letter ISO @@ -32,587 +32,6 @@ */ public class DtLanguage extends Datatype { - /** - * This list is derived from http://www.w3.org/WAI/ER/IG/ert/iso639.htm, - * which also contains the mappings to language names. This list should - * be maintained in alphabetical order so that a binary search can be - * used. - */ - public static final String[] validLanguages = { - "aar", - "abk", - "ace", - "ach", - "ada", - "afa", - "afh", - "afr", - "aka", - "akk", - "alb", - "ale", - "alg", - "amh", - "ang", - "apa", - "ara", - "arc", - "arm", - "arn", - "arp", - "art", - "arw", - "asm", - "ath", - "ava", - "ave", - "awa", - "aym", - "aze", - "bad", - "bai", - "bak", - "bal", - "bam", - "ban", - "baq", - "bas", - "bat", - "bej", - "bel", - "bem", - "ben", - "ber", - "bho", - "bih", - "bik", - "bin", - "bis", - "bla", - "bnt", - "bod", - "bra", - "bre", - "bua", - "bug", - "bul", - "bur", - "cad", - "cai", - "car", - "cat", - "cau", - "ceb", - "cel", - "ces", - "cha", - "chb", - "che", - "chg", - "chi", - "chm", - "chn", - "cho", - "chr", - "chu", - "chv", - "chy", - "cop", - "cor", - "cos", - "cpe", - "cpf", - "cpp", - "cre", - "crp", - "cus", - "cym", - "cze", - "dak", - "dan", - "del", - "deu", - "din", - "div", - "doi", - "dra", - "dua", - "dum", - "dut", - "dyu", - "dzo", - "efi", - "egy", - "eka", - "ell", - "elx", - "eng", - "enm", - "epo", - "esk", - "esl", - "est", - "eus", - "ewe", - "ewo", - "fan", - "fao", - "fas", - "fat", - "fij", - "fin", - "fiu", - "fon", - "fra", - "fre", - "frm", - "fro", - "fry", - "ful", - "gaa", - "gae", - "gai", - "gay", - "gdh", - "gem", - "geo", - "ger", - "gez", - "gil", - "glg", - "gmh", - "goh", - "gon", - "got", - "grb", - "grc", - "gre", - "grn", - "guj", - "hai", - "hau", - "haw", - "heb", - "her", - "hil", - "him", - "hin", - "hmo", - "hun", - "hup", - "hye", - "iba", - "ibo", - "ice", - "ijo", - "iku", - "ilo", - "ina", - "inc", - "ind", - "ine", - "ine", - "ipk", - "ira", - "iri", - "iro", - "isl", - "ita", - "jav", - "jaw", - "jpn", - "jpr", - "jrb", - "kaa", - "kab", - "kac", - "kal", - "kam", - "kan", - "kar", - "kas", - "kat", - "kau", - "kaw", - "kaz", - "kha", - "khi", - "khm", - "kho", - "kik", - "kin", - "kir", - "kok", - "kom", - "kon", - "kor", - "kpe", - "kro", - "kru", - "kua", - "kum", - "kur", - "kus", - "kut", - "lad", - "lah", - "lam", - "lao", - "lat", - "lav", - "lez", - "lin", - "lit", - "lol", - "loz", - "ltz", - "lub", - "lug", - "lui", - "lun", - "luo", - "mac", - "mad", - "mag", - "mah", - "mai", - "mak", - "mak", - "mal", - "man", - "mao", - "map", - "mar", - "mas", - "max", - "may", - "men", - "mga", - "mic", - "min", - "mis", - "mkh", - "mlg", - "mlt", - "mni", - "mno", - "moh", - "mol", - "mon", - "mos", - "mri", - "msa", - "mul", - "mun", - "mus", - "mwr", - "mya", - "myn", - "nah", - "nai", - "nau", - "nav", - "nbl", - "nde", - "ndo", - "nep", - "new", - "nic", - "niu", - "nla", - "nno", - "non", - "nor", - "nso", - "nub", - "nya", - "nym", - "nyn", - "nyo", - "nzi", - "oci", - "oji", - "ori", - "orm", - "osa", - "oss", - "ota", - "oto", - "paa", - "pag", - "pal", - "pam", - "pan", - "pap", - "pau", - "peo", - "per", - "phn", - "pli", - "pol", - "pon", - "por", - "pra", - "pro", - "pus", - "que", - "raj", - "rar", - "roa", - "roh", - "rom", - "ron", - "rum", - "run", - "rus", - "sad", - "sag", - "sah", - "sai", - "sal", - "sam", - "san", - "sco", - "scr", - "sel", - "sem", - "sga", - "shn", - "sid", - "sin", - "sio", - "sit", - "sla", - "slk", - "slo", - "slv", - "smi", - "smo", - "sna", - "snd", - "sog", - "som", - "son", - "sot", - "spa", - "sqi", - "srd", - "srr", - "ssa", - "ssw", - "ssw", - "suk", - "sun", - "sus", - "sux", - "sve", - "swa", - "swe", - "syr", - "tah", - "tam", - "tat", - "tel", - "tem", - "ter", - "tgk", - "tgl", - "tha", - "tib", - "tig", - "tir", - "tiv", - "tli", - "tmh", - "tog", - "ton", - "tru", - "tsi", - "tsn", - "tso", - "tuk", - "tum", - "tur", - "tut", - "twi", - "tyv", - "uga", - "uig", - "ukr", - "umb", - "und", - "urd", - "uzb", - "vai", - "ven", - "vie", - "vol", - "vot", - "wak", - "wal", - "war", - "was", - "wel", - "wen", - "wol", - "xho", - "yao", - "yap", - "yid", - "yor", - "zap", - "zen", - "zha", - "zho", - "zul", - "zun", - }; - - /** - * This list is derived from http://www.w3.org/WAI/ER/IG/ert/iso639.htm, - * which also contains the mappings to language names. This list should - * be maintained in alphabetical order so that a binary search can be - * used. - */ - public static final String[] validLanguages2char = { - "aa", - "ab", - "af", - "am", - "ar", - "as", - "ay", - "az", - "ba", - "be", - "bg", - "bh", - "bi", - "bn", - "bo", - "br", - "ca", - "co", - "cs", - "cy", - "da", - "de", - "dz", - "el", - "en", - "eo", - "es", - "et", - "eu", - "fa", - "fi", - "fj", - "fo", - "fr", - "fy", - "ga", - "gd", - "gl", - "gn", - "gu", - "ha", - "hi", - "hr", - "hu", - "hy", - "ia", - "ie", - "ik", - "in", - "is", - "it", - "iw", - "ja", - "ji", - "jw", - "ka", - "kk", - "kl", - "km", - "kn", - "ko", - "ks", - "ku", - "ky", - "la", - "ln", - "lo", - "lt", - "lv", - "mg", - "mi", - "mk", - "ml", - "mn", - "mo", - "mr", - "ms", - "mt", - "my", - "na", - "ne", - "nl", - "no", - "oc", - "om", - "or", - "pa", - "pl", - "ps", - "pt", - "qu", - "rm", - "rn", - "ro", - "ru", - "rw", - "sa", - "sd", - "sg", - "sh", - "si", - "sk", - "sl", - "sm", - "sn", - "so", - "sq", - "sr", - "ss", - "st", - "su", - "sv", - "sw", - "ta", - "te", - "tg", - "th", - "ti", - "tk", - "tl", - "tn", - "to", - "tr", - "ts", - "tt", - "tw", - "uk", - "ur", - "uz", - "vi", - "vo", - "wo", - "xh", - "yo", - "zh", - "zu", - }; - /** The 2-letter or 3-letter ISO 639 code. */ private String value = null; @@ -638,27 +57,8 @@ this.value = value; } - /** - * Determines whether a given language code is found in validLanguages - * or validLanguages2char. - * @param languageCode A 2-letter or 3-letter ISO 639 code - * @return True if languageCode is found in validLanguages or - * validLanguages2char, false otherwise. - */ - public static boolean validLanguage(String languageCode) { - int index = Arrays.binarySearch(validLanguages, languageCode); - if (index >= 0) { - return true; - } - index = Arrays.binarySearch(validLanguages2char, languageCode); - if (index >= 0) { - return true; - } - return false; - } - public static DtLanguage makeLanguageDT(String languageCode) { - if (! validLanguage(languageCode)) { + if (! ISO639.validLanguage(languageCode)) { return null; } return new DtLanguage(languageCode); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |