I am trying to implement the code from this post. I manage to do it successfully for some languages, but for Greek I get some weird results, like this: ΑÏ?χάÏ?ιος
Here is the java code I use:
public static String translate(String langFrom, String langTo, String text) {
StringBuilder response = null;
System.out.println("Translate: " + text);
try {
String urlStr = Main.GOOGLE_SCRIPTS_URL +
"?q=" + URLEncoder.encode(text, "UTF-8") +
"&target=" + langTo +
"&source=" + langFrom;
//System.out.println(urlStr);
URL url = new URL(urlStr);
response = new StringBuilder();
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return response.toString();
}
And this is the script that I use in script.google.com website:
var mock = {
parameter:{
q:'hello',
source:'en',
target:'fr'
}
};
function doGet(e) {
e = e || mock;
var sourceText = ''
if (e.parameter.q){
sourceText = e.parameter.q;
}
var sourceLang = '';
if (e.parameter.source){
sourceLang = e.parameter.source;
}
var targetLang = 'en';
if (e.parameter.target){
targetLang = e.parameter.target;
}
var translatedText = LanguageApp.translate(sourceText, sourceLang, targetLang, {contentType: 'html'});
return ContentService.createTextOutput(translatedText).setMimeType(ContentService.MimeType.JSON);
}
Any ideas how to fix this? Thanks.