mirror of
https://github.com/Hopiu/django-rosetta.git
synced 2026-03-16 21:30:24 +00:00
Add support for Google translate
This commit is contained in:
parent
d889d6a89c
commit
9cb28dddc8
3 changed files with 18 additions and 8 deletions
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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(/>/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) {
|
||||
|
|
|
|||
|
|
@ -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)}
|
||||
|
|
|
|||
Loading…
Reference in a new issue