merging in latest changes from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / translation / GoogleLanguageApiWrapper.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.ui.translation;
12
13 import com.google.api.translate.Translate;
14
15 import eu.etaxonomy.cdm.model.common.Language;
16
17 /**
18 * <p>GoogleLanguageApiWrapper class.</p>
19 *
20 * @author n.hoffmann
21 * @created Oct 21, 2010
22 * @version 1.0
23 */
24 public class GoogleLanguageApiWrapper implements ITranslationServiceWrapper {
25
26 /* (non-Javadoc)
27 * @see eu.etaxonomy.taxeditor.editor.translation.ITranslationServiceWrapper#translate(java.lang.String, eu.etaxonomy.cdm.model.common.Language, eu.etaxonomy.cdm.model.common.Language)
28 */
29 /** {@inheritDoc} */
30 @Override
31 public String translate(String text, Language source, Language target) throws LanguageNotSupportedException {
32 // TODO make this configurable in preferences
33 Translate.setHttpReferrer("http://wp5.e-taxonomy.eu");
34
35 String translated;
36 try {
37 translated = Translate.execute(text, getLanguageEquivalent(source), getLanguageEquivalent(target));
38 } catch (Exception e) {
39 throw new LanguageNotSupportedException(e.getMessage());
40 }
41
42 return translated;
43 }
44
45 /**
46 * @param source
47 * @return
48 * @throws LanguageNotSupportedException
49 */
50 private com.google.api.translate.Language getLanguageEquivalent(
51 Language language) throws LanguageNotSupportedException {
52
53
54 if(language.equals(Language.ENGLISH())){
55 return com.google.api.translate.Language.ENGLISH;
56 }
57 else if(language.equals(Language.FRENCH())){
58 return com.google.api.translate.Language.FRENCH;
59 }
60 else if(language.equals(Language.GERMAN())){
61 return com.google.api.translate.Language.GERMAN;
62 }
63 else if(language.equals(Language.SPANISH_CASTILIAN())){
64 return com.google.api.translate.Language.SPANISH;
65 }
66 else if(language.equals(Language.AFRIKAANS())){
67 return com.google.api.translate.Language.AFRIKAANS;
68 }
69 else if(language.equals(Language.ALBANIAN())){
70 return com.google.api.translate.Language.ALBANIAN;
71 }
72 else if(language.equals(Language.AMHARIC())){
73 return com.google.api.translate.Language.AMHARIC;
74 }
75 else if(language.equals(Language.ARABIC())){
76 return com.google.api.translate.Language.ARABIC;
77 }
78 else if(language.equals(Language.ARMENIAN())){
79 return com.google.api.translate.Language.ARMENIAN;
80 }
81 else if(language.equals(Language.AZERBAIJANI())){
82 return com.google.api.translate.Language.AZERBAIJANI;
83 }
84 else if(language.equals(Language.BASQUE())){
85 return com.google.api.translate.Language.BASQUE;
86 }
87 else if(language.equals(Language.BENGALI())){
88 return com.google.api.translate.Language.BENGALI;
89 }
90 else if(language.equals(Language.BIHARI())){
91 return com.google.api.translate.Language.BIHARI;
92 }
93 else if(language.equals(Language.BULGARIAN())){
94 return com.google.api.translate.Language.BULGARIAN;
95 }
96 else if(language.equals(Language.BURMESE())){
97 return com.google.api.translate.Language.BURMESE;
98 }
99 else if(language.equals(Language.CHEROKEE())){
100 return com.google.api.translate.Language.CHEROKEE;
101 }
102 else if(language.equals(Language.CHINESE())){
103 return com.google.api.translate.Language.CHINESE;
104 }
105 else if(language.equals(Language.CROATIAN())){
106 return com.google.api.translate.Language.CROATIAN;
107 }
108 else if(language.equals(Language.CZECH())){
109 return com.google.api.translate.Language.CZECH;
110 }
111 else if(language.equals(Language.DANISH())){
112 return com.google.api.translate.Language.DANISH;
113 }
114 else if(language.equals(Language.DUTCH_MIDDLE())){
115 return com.google.api.translate.Language.DUTCH;
116 }
117 else if(language.equals(Language.ESPERANTO())){
118 return com.google.api.translate.Language.ESPERANTO;
119 }
120 else if(language.equals(Language.ESTONIAN())){
121 return com.google.api.translate.Language.ESTONIAN;
122 }
123 else if(language.equals(Language.FILIPINO())){
124 return com.google.api.translate.Language.FILIPINO;
125 }
126 else if(language.equals(Language.FINNISH())){
127 return com.google.api.translate.Language.FINNISH;
128 }
129 else if(language.equals(Language.GALICIAN())){
130 return com.google.api.translate.Language.GALICIAN;
131 }
132 else if(language.equals(Language.GEORGIAN())){
133 return com.google.api.translate.Language.GEORGIAN;
134 }
135 else if(language.equals(Language.GREEK_MODERN())){
136 return com.google.api.translate.Language.GREEK;
137 }
138 else if(language.equals(Language.GUARANI())){
139 return com.google.api.translate.Language.GUARANI;
140 }
141 else if(language.equals(Language.GUJARATI())){
142 return com.google.api.translate.Language.GUJARATI;
143 }
144 else if(language.equals(Language.HEBREW())){
145 return com.google.api.translate.Language.HEBREW;
146 }
147 else if(language.equals(Language.HINDI())){
148 return com.google.api.translate.Language.HINDI;
149 }
150 else if(language.equals(Language.HUNGARIAN())){
151 return com.google.api.translate.Language.HUNGARIAN;
152 }
153 else if(language.equals(Language.ICELANDIC())){
154 return com.google.api.translate.Language.ICELANDIC;
155 }
156 else if(language.equals(Language.INDONESIAN())){
157 return com.google.api.translate.Language.INDONESIAN;
158 }
159 else if(language.equals(Language.INUKTITUT())){
160 return com.google.api.translate.Language.INUKTITUT;
161 }
162 else if(language.equals(Language.IRISH())){
163 return com.google.api.translate.Language.IRISH;
164 }
165 else if(language.equals(Language.ITALIAN())){
166 return com.google.api.translate.Language.ITALIAN;
167 }
168 else if(language.equals(Language.JAPANESE())){
169 return com.google.api.translate.Language.JAPANESE;
170 }
171 else if(language.equals(Language.KANNADA())){
172 return com.google.api.translate.Language.KANNADA;
173 }
174 else if(language.equals(Language.KAZAKH())){
175 return com.google.api.translate.Language.KAZAKH;
176 }
177 else if(language.equals(Language.KOREAN())){
178 return com.google.api.translate.Language.KOREAN;
179 }
180 else if(language.equals(Language.KURDISH())){
181 return com.google.api.translate.Language.KURDISH;
182 }
183 else if(language.equals(Language.KIRGHIZ_KYRGYZ())){
184 return com.google.api.translate.Language.KYRGYZ;
185 }
186 else if(language.equals(Language.LAO())){
187 return com.google.api.translate.Language.LAOTHIAN;
188 }
189 else if(language.equals(Language.LATVIAN())){
190 return com.google.api.translate.Language.LATVIAN;
191 }
192 else if(language.equals(Language.LITHUANIAN())){
193 return com.google.api.translate.Language.LITHUANIAN;
194 }
195 else if(language.equals(Language.MACEDONIAN())){
196 return com.google.api.translate.Language.MACEDONIAN;
197 }
198 else if(language.equals(Language.MALAY())){
199 return com.google.api.translate.Language.MALAY;
200 }
201 else if(language.equals(Language.MALAYALAM())){
202 return com.google.api.translate.Language.MALAYALAM;
203 }
204 else if(language.equals(Language.MALTESE())){
205 return com.google.api.translate.Language.MALTESE;
206 }
207 else if(language.equals(Language.MARATHI())){
208 return com.google.api.translate.Language.MARATHI;
209 }
210 else if(language.equals(Language.MARATHI())){
211 return com.google.api.translate.Language.MONGOLIAN;
212 }
213 else if(language.equals(Language.MARATHI())){
214 return com.google.api.translate.Language.NEPALI;
215 }
216 else if(language.equals(Language.NORWEGIAN())){
217 return com.google.api.translate.Language.NORWEGIAN;
218 }
219 else if(language.equals(Language.ORIYA())){
220 return com.google.api.translate.Language.ORIYA;
221 }
222 else if(language.equals(Language.PUSHTO())){
223 return com.google.api.translate.Language.PASHTO;
224 }
225 else if(language.equals(Language.PERSIAN())){
226 return com.google.api.translate.Language.PERSIAN;
227 }
228 else if(language.equals(Language.PERSIAN())){
229 return com.google.api.translate.Language.POLISH;
230 }
231 else if(language.equals(Language.PORTUGUESE())){
232 return com.google.api.translate.Language.PORTUGUESE;
233 }
234 else if(language.equals(Language.PANJABI_PUNJABI())){
235 return com.google.api.translate.Language.PUNJABI;
236 }
237 else if(language.equals(Language.ROMANIAN())){
238 return com.google.api.translate.Language.ROMANIAN;
239 }
240 else if(language.equals(Language.RUSSIAN())){
241 return com.google.api.translate.Language.RUSSIAN;
242 }
243 else if(language.equals(Language.SANSKRIT())){
244 return com.google.api.translate.Language.SANSKRIT;
245 }
246 else if(language.equals(Language.SERBIAN())){
247 return com.google.api.translate.Language.SERBIAN;
248 }
249 else if(language.equals(Language.SINDHI())){
250 return com.google.api.translate.Language.SINDHI;
251 }
252 else if(language.equals(Language.SINDHI())){
253 return com.google.api.translate.Language.SINHALESE;
254 }
255 else if(language.equals(Language.SLOVAK())){
256 return com.google.api.translate.Language.SLOVAK;
257 }
258 else if(language.equals(Language.SLOVENIAN())){
259 return com.google.api.translate.Language.SLOVENIAN;
260 }
261 else if(language.equals(Language.SWAHILI())){
262 return com.google.api.translate.Language.SWAHILI;
263 }
264 else if(language.equals(Language.SWEDISH())){
265 return com.google.api.translate.Language.SWEDISH;
266 }
267 else if(language.equals(Language.TAGALOG())){
268 return com.google.api.translate.Language.TAGALOG;
269 }
270 else if(language.equals(Language.TAJIK())){
271 return com.google.api.translate.Language.TAJIK;
272 }
273 else if(language.equals(Language.TAMIL())){
274 return com.google.api.translate.Language.TAMIL;
275 }
276 else if(language.equals(Language.TELUGU())){
277 return com.google.api.translate.Language.TELUGU;
278 }
279 else if(language.equals(Language.THAI())){
280 return com.google.api.translate.Language.THAI;
281 }
282 else if(language.equals(Language.TIBETAN())){
283 return com.google.api.translate.Language.TIBETAN;
284 }
285 else if(language.equals(Language.TURKISH())){
286 return com.google.api.translate.Language.TURKISH;
287 }
288 else if(language.equals(Language.UIGHUR_UYGHUR())){
289 return com.google.api.translate.Language.UIGHUR;
290 }
291 else if(language.equals(Language.UKRAINIAN())){
292 return com.google.api.translate.Language.UKRANIAN;
293 }
294 else if(language.equals(Language.URDU())){
295 return com.google.api.translate.Language.URDU;
296 }
297 else if(language.equals(Language.UZBEK())){
298 return com.google.api.translate.Language.UZBEK;
299 }
300 else if(language.equals(Language.VIETNAMESE())){
301 return com.google.api.translate.Language.VIETNAMESE;
302 }
303 else if(language.equals(Language.WELSH())){
304 return com.google.api.translate.Language.WELSH;
305 }
306 else if(language.equals(Language.YIDDISH())){
307 return com.google.api.translate.Language.YIDDISH;
308 }
309 else{
310 throw new LanguageNotSupportedException("The language " + language.getDescription() + " is not supported");
311 }
312 }
313
314 }