Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Помогите поставить переводчик на сайт (http://forum.oszone.net/showthread.php?t=127929)

QUMATOZ 07-01-2009 00:52 999325

Помогите поставить переводчик на сайт
 
Помогите поставить переводчик на сайт как на этом сайте http://www.sinsinat.com/ там справа под словом "Language " находится переводчик от гугла
вот он
но админ его как то переиначил что на нем нет гугловской рекламы, и выбор языка выглядит красиво, как поставить такой же? у меня тоже стоят от гугла переводчик но вышлядит страшновато

Igor_I 07-01-2009 01:43 999379

Правой кнопкой, посмотреть исходный код. Там всё есть.

Martia 07-01-2009 05:25 999417

да... все оказалось не так просто...

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

HTML код:

<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>


Я просто убрал из таблицы лишнее. Исходные коды здесь. Но также в этом методе есть и недостки: полоса promt'а вверху переведенной страницы и малое количество языков для перевода.

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

HTML код:

<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>


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

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

HTML код:

<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 999620

Martia, Igor_I,

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


Цитата:

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

Igor_I 07-01-2009 16:10 999674

Почему бы и нет. Ведь ты скрипт тупо скопировал. А надо его переделать как показал Martia,
Цитата:

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

QUMATOZ 07-01-2009 16:18 999680

Цитата:

Почему бы и нет. Ведь ты скрипт тупо скопировал. А надо его переделать как показал Martia,
Я сделал это, я делал так когда сам пробовал код скопировать и адресс своего сайта ставил неработает.

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

Martia 07-01-2009 16:42 999706

QUMATOZ, смотри как примеры:

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

Там нет ничего, кроме переделанных скриптов из этого поста.

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

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

QUMATOZ 07-01-2009 17:10 999723

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

QUMATOZ 08-01-2009 17:40 1000659

Ну как? есть новые идеи?

Igor_I 09-01-2009 18:39 1001804

В гугле не дураки работают. Их просто так не проведёшь :)

QUMATOZ 09-01-2009 18:55 1001830

Цитата:

В гугле не дураки работают. Их просто так не проведёшь
Ну и не гении уж точно)

Martia 09-01-2009 19:44 1001905

в гугле уволили в связи с кризисом больше половины сотрудников, надеюсь сократили в основном "не гениев" :cool:

QUMATOZ 10-01-2009 16:37 1002791

Цитата:

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

QUMATOZ 27-01-2009 17:36 1021400

Есть новые идеи?

rostisslav 13-05-2009 21:20 1117687

вот это посмотри
http://www.trident.com.ua/rus/license.html


Время: 13:06.

Время: 13:06.
© OSzone.net 2001-