2 *******************************************************************************
\r
3 * Copyright (C) 1998-2008, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
7 * Created on Apr 4, 2003
\r
9 *******************************************************************************
\r
11 package com.ibm.icu.dev.tool.layout;
\r
14 * This class holds the list of languages.
\r
19 public class LanguageData extends TagValueData
\r
21 public static class Record
\r
24 private String name;
\r
26 public Record(String tag, String name)
\r
37 public String name()
\r
42 public String label()
\r
44 return TagUtilities.tagLabel(tag);
\r
47 public String makeTag()
\r
49 return TagUtilities.makeTag(tag);
\r
54 * This is temporary data until there is some resolution between
\r
55 * the OpenType language system tags and the ISO and RFC standards...
\r
57 private Record[] languages =
\r
59 new Record("", "null"),
\r
60 new Record("ARA", "Arabic"),
\r
61 new Record("ASM", "Assamese"),
\r
62 new Record("BEN", "Bengali"),
\r
63 new Record("FAR", "Farsi"),
\r
64 new Record("GUJ", "Gujarati"),
\r
65 new Record("HIN", "Hindi"),
\r
66 new Record("IWR", "Hebrew"),
\r
67 new Record("JII", "Yiddish"),
\r
68 new Record("JAN", "Japanese"),
\r
69 new Record("KAN", "Kannada"),
\r
70 new Record("KOK", "Konkani"),
\r
71 new Record("KOR", "Korean"),
\r
72 new Record("KSH", "Kashmiri"),
\r
73 new Record("MAL", "Malayalam (Traditional)"),
\r
74 new Record("MAR", "Marathi"),
\r
75 new Record("MLR", "Malayalam (Reformed)"),
\r
76 new Record("MNI", "Manipuri"),
\r
77 new Record("ORI", "Oriya"),
\r
78 new Record("SAN", "Sanscrit"),
\r
79 new Record("SND", "Sindhi"),
\r
80 new Record("SNH", "Sinhalese"),
\r
81 new Record("SYR", "Syriac"),
\r
82 new Record("TAM", "Tamil"),
\r
83 new Record("TEL", "Telugu"),
\r
84 new Record("THA", "Thai"),
\r
85 new Record("URD", "Urdu"),
\r
86 new Record("ZHP", "Chinese (Phonetic)"),
\r
87 new Record("ZHS", "Chinese (Simplified)"),
\r
88 new Record("ZHT", "Chinese (Traditional)"),
\r
90 // languages added on 03/13/2008
\r
91 // TODO: need to deal with the fact that
\r
92 // these codes should be @draft, and the above
\r
93 // codes should be @final.
\r
94 new Record("AFK", "Afrikaans"),
\r
95 new Record("BEL", "Belarussian"),
\r
96 new Record("BGR", "Bulgarian"),
\r
97 new Record("CAT", "Catalan"),
\r
98 new Record("CHE", "Chechen"),
\r
99 new Record("COP", "Coptic"),
\r
100 new Record("CSY", "Czech"),
\r
101 new Record("DAN", "Danish"),
\r
102 new Record("DEU", "German"),
\r
103 new Record("DZN", "Dzongkha"),
\r
104 new Record("ELL", "Greek"),
\r
105 new Record("ENG", "English"),
\r
106 new Record("ESP", "Spanish"),
\r
107 new Record("ETI", "Estonian"),
\r
108 new Record("EUQ", "Basque"),
\r
109 new Record("FIN", "Finnish"),
\r
110 //new Record("FLE", "Flemish"), // Flemish has the same ISO 639-2 code as Dutch (NLD)
\r
111 new Record("FRA", "French"),
\r
112 new Record("GAE", "Gaelic"),
\r
113 new Record("HAU", "Hausa"),
\r
114 new Record("HRV", "Croation"),
\r
115 new Record("HUN", "Hungarian"),
\r
116 new Record("HYE", "Armenian"),
\r
117 new Record("IND", "Indonesian"),
\r
118 new Record("ITA", "Italian"),
\r
119 new Record("KHM", "Khmer"),
\r
120 new Record("MNG", "Mongolian"),
\r
121 new Record("MTS", "Maltese"),
\r
122 new Record("NEP", "Nepali"),
\r
123 new Record("NLD", "Dutch"),
\r
124 new Record("PAS", "Pashto"),
\r
125 new Record("PLK", "Polish"),
\r
126 new Record("PTG", "Portuguese"),
\r
127 new Record("ROM", "Romanian"),
\r
128 new Record("RUS", "Russian"),
\r
129 new Record("SKY", "Slovak"),
\r
130 new Record("SLV", "Slovenian"),
\r
131 new Record("SQI", "Albanian"),
\r
132 new Record("SRB", "Serbian"),
\r
133 new Record("SVE", "Swedish"),
\r
134 new Record("TIB", "Tibetan"),
\r
135 new Record("TRK", "Turkish"),
\r
136 new Record("WEL", "Welsh")
\r
139 private int minLanguage = 0;
\r
140 private int maxLanguage = minLanguage + languages.length - 1;
\r
142 public int getMinValue()
\r
144 return minLanguage;
\r
147 public int getMaxValue()
\r
149 return maxLanguage;
\r
152 public String getTag(int value)
\r
154 if (value < minLanguage || value > maxLanguage) {
\r
158 return languages[value - minLanguage].tag();
\r
161 public String getTagLabel(int value)
\r
163 if (value < minLanguage || value > maxLanguage) {
\r
167 return languages[value - minLanguage].label();
\r
170 public String makeTag(int value)
\r
172 if (value < minLanguage || value > maxLanguage) {
\r
176 return languages[value - minLanguage].makeTag();
\r
179 public String getName(int value) {
\r
180 if (value < minLanguage || value > maxLanguage) {
\r
181 return "(UNKNOWN)";
\r
184 return languages[value - minLanguage].name();
\r