Add support for Google translate

This commit is contained in:
cuchac 2014-12-10 01:07:56 +01:00
parent d889d6a89c
commit 9cb28dddc8
3 changed files with 18 additions and 8 deletions

View file

@ -15,6 +15,9 @@ YANDEX_TRANSLATE_KEY = getattr(settings, 'YANDEX_TRANSLATE_KEY', None)
AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None)
AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None)
# Use Google translator
GOOGLE_TRANSLATE = getattr(settings, 'ROSETTA_GOOGLE_TRANSLATE', None)
# Displays this language beside the original MSGID in the admin
MAIN_LANGUAGE = getattr(settings, 'ROSETTA_MAIN_LANGUAGE', None)

View file

@ -7,7 +7,8 @@ google.setOnLoadCallback(function() {
$('.hide', $(this).parent()).hide();
});
{% if rosetta_settings.ENABLE_TRANSLATION_SUGGESTIONS and rosetta_settings.AZURE_CLIENT_ID and rosetta_settings.AZURE_CLIENT_SECRET %}
{% if rosetta_settings.ENABLE_TRANSLATION_SUGGESTIONS %}
{% if rosetta_settings.AZURE_CLIENT_ID and rosetta_settings.AZURE_CLIENT_SECRET or rosetta_settings.GOOGLE_TRANSLATE %}
$('a.suggest').click(function(e){
e.preventDefault();
var a = $(this);
@ -20,7 +21,7 @@ google.setOnLoadCallback(function() {
orig = unescape(orig).replace(/<br\s?\/?>/g,'\n').replace(/<code>/,'').replace(/<\/code>/g,'').replace(/&gt;/g,'>').replace(/&lt;/g,'<');
a.attr('class','suggesting').html('...');
$.getJSON("/rosetta/translate/", {
$.getJSON("./translate/", {
from: sourceLang,
to: destLang,
text: orig
@ -35,9 +36,9 @@ google.setOnLoadCallback(function() {
}
);
});
{% endif %}
{% endif %}
{% if rosetta_settings.ENABLE_TRANSLATION_SUGGESTIONS and rosetta_settings.YANDEX_TRANSLATE_KEY %}
{% if rosetta_settings.YANDEX_TRANSLATE_KEY %}
$('a.suggest').click(function(e){
e.preventDefault();
var a = $(this);
@ -74,6 +75,7 @@ google.setOnLoadCallback(function() {
}
});
});
{% endif %}
{% endif %}
$('td.plural').each(function(i) {

View file

@ -417,13 +417,18 @@ def translate_text(request):
data = {'success': True, 'translation': text}
else:
# run the translation:
AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None)
AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None)
translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
if getattr(rosetta_settings, 'GOOGLE_TRANSLATE', False):
import goslate
translator = goslate.Goslate()
else:
AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None)
AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None)
translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
try:
translated_text = translator.translate(text, language_to)
translated_text = translator.translate(text, language_to, language_from)
data = {'success': True, 'translation': translated_text}
except TranslateApiException as e:
data = {'success': False, 'error': "Translation API Exception: {0}".format(e.message)}