Войти

Показать полную графическую версию : [решено] Помогите поставить переводчик на сайт


QUMATOZ
07-01-2009, 00:52
Помогите поставить переводчик на сайт как на этом сайте http://www.sinsinat.com/ там справа под словом "Language " находится переводчик от гугла
вот он http://pic.ipicture.ru/uploads/090107/8209/thumbs/PTW4mKNETS.jpg (http://ipicture.ru/Gallery/Viewfull/11253585.html)
но админ его как то переиначил что на нем нет гугловской рекламы, и выбор языка выглядит красиво, как поставить такой же? у меня тоже стоят от гугла переводчик но вышлядит страшновато http://pic.ipicture.ru/uploads/090107/8209/thumbs/57OWR8o7C6.jpg (http://ipicture.ru/Gallery/Viewfull/11253586.html)

Igor_I
07-01-2009, 01:43
Правой кнопкой, посмотреть исходный код. Там всё есть.

Martia
07-01-2009, 05:25
да... все оказалось не так просто...

Итак, начну.
Впринципе, достаточно просто сделать перевод при помощи translate.ru. Там по крайней мере виден исходный код.


<form name='form_var7b' method='POST' action='http://www.translate.ru/url/wideTranslation.aspx' target='_top'>
<script>
var str_url=location.href;
if (top != self){
str_url = str_url.replace("http://",'');
var i = str_url.search('/');
if (i>0)
str_url = str_url.substring(0,i);
str_url = "http://"+str_url;}
document.write('<input type="hidden" name=url value="'+str_url+'">');document.write('<input type="hidden" name="template"
value="General">');document.write('<input type="hidden" name="autotranslate" value="true">');document.write('<input
type="hidden" name="transliterate" value="on">');document.write('<input type="hidden" name="status"
value="translate">');document.write('<input type="hidden" name="prmtlang" value="ru">');
function movepic_new (img_obj, img_src)
{
img_obj.src = img_src.src;
return true;
}
</script>

<table border=1>
<tr><td><select name=direction>
<option value="re">English</option>
<option value="rg">German</option>
<option value="rf">French</option>
<option value="rs">Spanish</option></select></td>
<td><input type=submit Value=Перевод></td></tr>
</table>

</form>


Я просто убрал из таблицы лишнее. Исходные коды здесь (http://www.translate.ru/About.aspx/Webmaster_Tools#). Но также в этом методе есть и недостки: полоса promt'а вверху переведенной страницы и малое количество языков для перевода.

У гугла исходник выглядит код с приведенного выше сайта так:


<script type="text/javascript">

function doTranslate(select_obj) {
if (location.hostname == 'adress' && select_obj.value == 'en|en')
return;
else if(location.hostname != 'adress' && select_obj.value == 'en|en')
location.href = gfg('u');
else if(location.hostname == 'adress' && select_obj.value != 'en|en')
location.href = 'http://translate.google.com/translate_p?client=tmpg&hl=en&langpair=' + select_obj.value + '&u=' + location.href;
else
location.href = 'http://translate.google.com/translate_p?client=tmpg&hl=en&langpair=' + select_obj.value + '&u=' + gfg('u');
}

// get from get
function gfg(name) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(location.href);

if(results == null)
return '';
else
return results[1];
}
//]]>
</script>

<select onchange="doTranslate(this);" style="width:150;">
<option value="">Select Language</option>
<option value="en|en">English</option>
<option value="en|ar">Arabic</option>
<option value="en|bg">Bulgarian</option>
<option value="en|zh-CN">Chinese (Simplified)</option>
<option value="en|zh-TW">Chinese (Traditional)</option>
<option value="en|hr">Croatian</option>
<option value="en|cs">Czech</option>
<option value="en|da">Danish</option>
<option value="en|nl">Dutch</option>
<option value="en|fi">Finnish</option>
<option value="en|fr">French</option>
<option value="en|de">German</option>
<option value="en|el">Greek</option>
<option value="en|hi">Hindi</option>
<option value="en|it">Italian</option>
<option value="en|ja">Japanese</option>
<option value="en|ko">Korean</option>
<option value="en|no">Norwegian</option>
<option value="en|pl">Polish</option>
<option value="en|pt">Portuguese</option>
<option value="en|ro">Romanian</option>
<option value="en|ru">Russian</option>
<option value="en|es">Spanish</option>
<option value="en|sv">Swedish</option>
</select>


Этот исходник подходит для перевода с английского языка на другие.

Для перевода с русского на другие стоит использовать этот вариант:


<script type="text/javascript">

function doTranslate(select_obj) {
if (location.hostname == 'adress' && select_obj.value == 'ru|ru')
return;
else if(location.hostname != 'adress' && select_obj.value == 'ru|ru')
location.href = gfg('u');
else if(location.hostname == 'adress' && select_obj.value != 'ru|ru')
location.href = 'http://translate.google.com/translate_p?client=tmpg&hl=ru&langpair=' + select_obj.value + '&u=' + location.href;
else
location.href = 'http://translate.google.com/translate_p?client=tmpg&hl=ru&langpair=' + select_obj.value + '&u=' + gfg('u');
}

// get from get
function gfg(name) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(location.href);

if(results == null)
return '';
else
return results[1];
}
//]]>
</script>

<select onchange="doTranslate(this);" style="width:150;">
<option value="">Select Language</option>
<option value="ru|ru">Russian</option>
<option value="ru|en">English</option>
<option value="ru|ar">Arabic</option>
<option value="ru|bg">Bulgarian</option>
<option value="ru|zh-CN">Chinese (Simplified)</option>
<option value="ru|zh-TW">Chinese (Traditional)</option>
<option value="ru|hr">Croatian</option>
<option value="ru|cs">Czech</option>
<option value="ru|da">Danish</option>
<option value="ru|nl">Dutch</option>
<option value="ru|fi">Finnish</option>
<option value="ru|fr">French</option>
<option value="ru|de">German</option>
<option value="ru|el">Greek</option>
<option value="ru|hi">Hindi</option>
<option value="ru|it">Italian</option>
<option value="ru|ja">Japanese</option>
<option value="ru|ko">Korean</option>
<option value="ru|no">Norwegian</option>
<option value="ru|pl">Polish</option>
<option value="ru|pt">Portuguese</option>
<option value="ru|ro">Romanian</option>
<option value="ru|es">Spanish</option>
<option value="ru|sv">Swedish</option>
</select>


При желании можно править html код, удалять ненужные языки.

При вставке в тело страницы нужно менять adress на адрес сайта, на котором будет располагаться страница (например вместо adress вводим forum.oszone.net, если страница с кодом будет находится на сайте forum.oszone.net.

QUMATOZ
07-01-2009, 14:50
Martia, Igor_I,

Я пробовал тупо скопировать код с того сайта до того как создать тему здесь.
При выборе какого нибудь языка гугл выдает это
http://pic.ipicture.ru/uploads/090107/8209/thumbs/8lGGFtavgz.jpg (http://ipicture.ru/Gallery/Viewfull/11275232.html)

Впринципе, достаточно просто сделать перевод при помощи translate.ru. Там по крайней мере виден исходный код.

Слишком мало языков да и перевод хуже гугловского, не вариант.

Igor_I
07-01-2009, 16:10
Почему бы и нет. Ведь ты скрипт тупо скопировал. А надо его переделать как показал Martia,
Для перевода с русского на другие стоит использовать этот вариант:
Вписать свой адрес.

QUMATOZ
07-01-2009, 16:18
Почему бы и нет. Ведь ты скрипт тупо скопировал. А надо его переделать как показал Martia,

Я сделал это, я делал так когда сам пробовал код скопировать и адресс своего сайта ставил неработает.

А все! дошло, я адресс с www прописывал а без него работает, вот только на том сайте при переводе фрейм гугловский не показывается как так сделать чтобы сразу без фрейма перевод был?

Martia
07-01-2009, 16:42
QUMATOZ, смотри как примеры:

http://starter-ly.narod.ru/files/example_en.html
http://starter-ly.narod.ru/files/example_ru.html

Там нет ничего, кроме переделанных скриптов из этого (http://forum.oszone.net/post-999417-3.html) поста.

Меня заинтересовал этот вопрос и я проковырялся пол ночи над этим вопросом. Все работает ;)

P.S. Кстати ночью у меня тоже фрейма не было, а сейчас фрейм есть и у того сайта. Не пойму, что там к чему...

QUMATOZ
07-01-2009, 17:10
QUMATOZ, смотри как примеры:

http://starter-ly.narod.ru/files/example_en.html
http://starter-ly.narod.ru/files/example_ru.html

Ну это у меня уже работает) надо теперь понять как сделать так чтобы без фрейма перевод был.

QUMATOZ
08-01-2009, 17:40
Ну как? есть новые идеи?

Igor_I
09-01-2009, 18:39
В гугле не дураки работают. Их просто так не проведёшь :)

QUMATOZ
09-01-2009, 18:55
В гугле не дураки работают. Их просто так не проведёшь

Ну и не гении уж точно)

Martia
09-01-2009, 19:44
в гугле уволили в связи с кризисом больше половины сотрудников, надеюсь сократили в основном "не гениев" :cool:

QUMATOZ
10-01-2009, 16:37
надеюсь сократили в основном "не гениев"

Ты думаешь это причина того что при переводе фрейм не убирается?)))

QUMATOZ
27-01-2009, 17:36
Есть новые идеи?

rostisslav
13-05-2009, 21:20
вот это посмотри
http://www.trident.com.ua/rus/license.html




© OSzone.net 2001-2012