]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/tools/misc/src/com/ibm/icu/dev/tool/layout/LanguageData.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / tools / misc / src / com / ibm / icu / dev / tool / layout / LanguageData.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 1998-2008, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  *\r
7  * Created on Apr 4, 2003\r
8  *\r
9  *******************************************************************************\r
10  */\r
11 package com.ibm.icu.dev.tool.layout;\r
12 \r
13 /**\r
14  * This class holds the list of languages.\r
15  * \r
16  * @author emader\r
17  *\r
18  */\r
19 public class LanguageData extends TagValueData\r
20 {\r
21     public static class Record\r
22     {\r
23         private String tag;\r
24         private String name;\r
25         \r
26         public Record(String tag, String name)\r
27         {\r
28             this.tag = tag;\r
29             this.name = name;\r
30         }\r
31         \r
32         public String tag()\r
33         {\r
34             return tag;\r
35         }\r
36         \r
37         public String name()\r
38         {\r
39             return name;\r
40         }\r
41         \r
42         public String label()\r
43         {\r
44             return TagUtilities.tagLabel(tag);\r
45         }\r
46         \r
47         public String makeTag()\r
48         {\r
49             return TagUtilities.makeTag(tag);\r
50         }\r
51     }\r
52         \r
53     /*\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
56      */\r
57     private Record[] languages =\r
58     {\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
89         \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
137     };\r
138     \r
139     private int minLanguage = 0;\r
140     private int maxLanguage = minLanguage + languages.length - 1;\r
141     \r
142     public int getMinValue()\r
143     {\r
144         return minLanguage;\r
145     }\r
146     \r
147     public int getMaxValue()\r
148     {\r
149         return maxLanguage;\r
150     }\r
151     \r
152     public String getTag(int value)\r
153     {\r
154         if (value < minLanguage || value > maxLanguage) {\r
155             return null;\r
156         }\r
157         \r
158         return languages[value - minLanguage].tag();\r
159     }\r
160     \r
161     public String getTagLabel(int value)\r
162     {\r
163         if (value < minLanguage || value > maxLanguage) {\r
164             return null;\r
165         }\r
166         \r
167         return languages[value - minLanguage].label();\r
168     }\r
169     \r
170     public String makeTag(int value)\r
171     {\r
172         if (value < minLanguage || value > maxLanguage) {\r
173             return null;\r
174         }\r
175         \r
176         return languages[value - minLanguage].makeTag();\r
177     }\r
178     \r
179     public String getName(int value) {\r
180         if (value < minLanguage || value > maxLanguage) {\r
181             return "(UNKNOWN)";\r
182         }\r
183         \r
184         return languages[value - minLanguage].name();\r
185     }\r
186 }\r