1
22
23 package com.liferay.portlet.translator.util;
24
25 import com.liferay.portal.kernel.util.StringMaker;
26 import com.liferay.portal.kernel.util.StringUtil;
27 import com.liferay.portal.util.WebCacheable;
28 import com.liferay.portlet.translator.model.Translation;
29 import com.liferay.util.ConverterException;
30 import com.liferay.util.Http;
31 import com.liferay.util.HttpUtil;
32 import com.liferay.util.Time;
33
34 import java.net.URL;
35
36
42 public class TranslationConverter implements WebCacheable {
43
44 public TranslationConverter(String translationId, String fromText) {
45 _translationId = translationId;
46 _fromText = fromText;
47 }
48
49 public Object convert(String id) throws ConverterException {
50 Translation translation = new Translation(_translationId, _fromText);
51
52 try {
53 StringMaker url = new StringMaker();
54
55 url.append("http://babelfish.altavista.com/babelfish/tr?doit=done");
56 url.append("&urltext=").append(HttpUtil.encodeURL(_fromText));
57 url.append("&lp=").append(_translationId);
58
59 String text = Http.URLtoString(new URL(url.toString()));
60
61 int begin = text.indexOf("<div style=padding:10px;>") + 25;
62 int end = text.indexOf("</div>", begin);
63
64 String toText = text.substring(begin, end).trim();
65
66 toText = StringUtil.replace(toText, "\n", " ");
67
68 translation.setToText(toText);
69 }
70 catch (Exception e) {
71 throw new ConverterException(e);
72 }
73
74 return translation;
75 }
76
77 public long getRefreshTime() {
78 return _REFRESH_TIME;
79 }
80
81 private static final long _REFRESH_TIME = Time.DAY * 90;
82
83 private String _translationId;
84 private String _fromText;
85
86 }