2013-02-13 2 views
9

Я работаю на странице администратора, чтобы создать пост для блога. У меня есть французский textarea и текстовое поле на английском языке. Итак, для тех, кто не может перевести на там самостоятельно, я создал кнопку «перевести с Google»:Google translate - Отключить перевод части моего текста

<a id="tr_textefr" href="http://translate.google.fr/#fr/en/" target="_blank"> 
Traduire avec Google</a> 

И мой французский TextArea имеет Javascript функция называется OnKeyUp:

function translate(what){ 
var button = "tr_" + what; 
var textarea = document.getElementById(what); 
var google = "http://translate.google.fr/#fr/en/" + textarea.value; 

document.getElementById(button).setAttribute('href', google); 
} 

Для Exemple, если Я пишу «Voulez-vous coucher avec moi ce soir?», Он изменит атрибут href для «http://translate.google.fr/#fr/en/Voulez-vous coucher avec moi ce soir?». Ссылка будет перенаправлена ​​на переведенную версию моего текста (путем перевода google).

Этот код отлично работает, кстати. Дело в том, что у меня иногда может быть bbcode внутри моего текста: «Voulez-vous [b] coucher [/ b] avec moi ce soir?».

Итак, есть ли способ с переводом Google, чтобы отключить перевод некоторых слов или предложений? Например, я не хочу переводить слова между двумя @: «Voulez-vous @ [b] @coucher @ [/ b] @ avec moi ce soir?»

ответ

14

Защита части строки из перевода можно, обернув их в <span> тег с определенным значением класса (как описано here):

<span class="notranslate">[bold]</span> 

Пример: http://goo.gl/9JkhA

Кроме того, Google Translate API предоставит вам большую гибкость, если вы не против платить небольшую плату (20 долларов США за 1 M символов).

+1

я не смог найти указанную гибкость, но '' трюк работает. Было бы неплохо, если бы вы могли вернуть переведенный текст без маркера. – theblang

+1

Кажется, что теперь вы можете использовать API Google Translate, только если вы платите небольшую плату. Не могли бы вы объяснить, что улучшенное решение от API? – Adam

Смежные вопросы