среда, 2 декабря 2009 г.

Добавление переводов сайта на разные языки за 5 минут. Использование панели Google Translation

В очередной раз, при просмотре статистики Google Analytics понял, что люди которые не понимают русский язык периодически заходят в мой блог, но так же быстро и уходят. Сразу хочется сказать: "Учите русский язык - пригодится!" :).

Дабы дать возможность воспользоваться информацией блога решил добавить возможность перевода страниц. В качестве такого инструмента взял панель Google Translation. Google уже подумал за нас и добавление панели занимает считанные минуты. Но внедрив это решение понял, что мне то эта панель не нужна. После небольших "потуг" родилось решение, панель необходимо отображать только пользователям у которых язык, определяемый браузером, указан не русский.

Для использования вам понадобится следующий кусок javascript-а:

<script type="text/javascript">
var ignoreLanguage = ['ru'];
$(document).ready(function(){
if (!hl(ignoreLanguage)){
d=document;b=d.body;o=d.createElement('scri'+'pt');o.setAttribute('src','http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');o.setAttribute('type','text/javascript');b.appendChild(o);v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';p=d.createElement('scri'+'pt');p.text='function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:""},"google_translate_element");}';p.setAttribute('type','text/javascript');b.appendChild(p);
}
});

function hl(ls) {
if (!ls instanceof Array) { return false; }
var cl = get_current_language();
for(i=0;i<ls.length;i++) { if (cl.indexOf(ls[i])==0){ return true; } }
return false;
}

function get_current_language(){
 return window.navigator.language?window.navigator.language:window.navigator.systemLanguage;
}
</script>
В переменную "ignoreLanguage" можно добавить дополнительные языки, для который не будет отображаться панель перевода.

При использовании данного скрипта вам понадобится jQuery, но вы без труда сможете исключить его из кода. Работает в IE, FireFox, Google Chrome, Opera, Safari.

UPDATE: Исключение секций перевода


Иногда бывает необходимо исключить некоторые секции текста из перевода. Например, текст программного кода или цитату. Для этого мы можем воспользоваться Google Translator Toolkit Data API, часть тескта помещаем в html тег и зададим класс "notranslate".
<div class="notranslate">
//Текст который не будет переведен!
</div>

Комментариев нет:

Отправить комментарий