diff --git a/rosetta/conf/settings.py b/rosetta/conf/settings.py
index 27fc868..4c215d1 100644
--- a/rosetta/conf/settings.py
+++ b/rosetta/conf/settings.py
@@ -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)
diff --git a/rosetta/templates/rosetta/js/rosetta.js b/rosetta/templates/rosetta/js/rosetta.js
index 13b5ce2..ebc8546 100644
--- a/rosetta/templates/rosetta/js/rosetta.js
+++ b/rosetta/templates/rosetta/js/rosetta.js
@@ -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(/
/g,'\n').replace(//,'').replace(/<\/code>/g,'').replace(/>/g,'>').replace(/</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) {
diff --git a/rosetta/views.py b/rosetta/views.py
index d6c9b0a..8f18227 100644
--- a/rosetta/views.py
+++ b/rosetta/views.py
@@ -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)}