Всем привет. многие хотят сделать сайт англоязычным но uCoz не предоставляет такой возможности, недавно в работе нашей студии понадобился подобный перевод, но переписывать сотни PHP страниц на одни и теже встречающиеся слова не было желания. Поэтому мы решили сделать на js перевод так как быстро и удобно!... Сам скрипт работает на Cookie для сохранения действий.
Возможности:
1.Перевод сайта на 2 языка.
2. Отображение включен или отключен тот или иной язык перевода!.
3. Своя база перевода слов.
Установка:
1. Добавим кнопку переключения языка:
Код
<div class="i-off options-language"></div>
2. Добавим CSS для нашей кнопки:
Код
.i-off { background: url(/images/en.png); width: 32px; height: 24px; margin-right: 30px; cursor: pointer; } .i-on { background: url(/images/ru.png); width: 32px; height: 24px; margin-right: 30px; 3. Добавим Сookie + js скрипт: Код
jQuery.cookie = function(name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; if (value === null) { value = ''; options.expires = -1; } var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE } // CAUTION: Needed to parenthesize options.path and options.domain // in the following expressions, otherwise they evaluate to undefined // in the packed version for some reason... var path = options.path ? '; path=' + (options.path) : ''; var domain = options.domain ? '; domain=' + (options.domain) : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { // only name given, get cookie var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } }; $(function () { $('.i-off').live({ 'click': function() { $(this).removeClass('i-off').addClass('i-on'); } }); $('.i-on').live({ 'click': function() { $(this).removeClass('i-on').addClass('i-off'); } }); function mySookie() { $('.options-language').click(function () { location.reload(); if($.cookie('optLanguage') != 'false') { $.cookie('optLanguage', 'false'); } else { $.cookie('optLanguage', 'true'); } }); }; mySookie(); if($.cookie('optLanguage') != 'false') { $('.options-language').removeClass('i-on').addClass('i-off'); } else { $('.options-language').removeClass('i-off').addClass('i-on'); myLang(); mySookie(); }; function myLang() { var a = [0, 'Home', 'News', 'Advertise']; var b = [0, 'Главная', 'Новости', 'рекламировать']; $('#CenteFix').html(function(x, y) { return a.reduce(function(cur, prev, i) { return cur.replace(new RegExp(prev, 'g'), b[i]); }, y); }); };
Разберем скрипт:
1. Находим в скрипте: $('#CenteFix').html(function(x, y) - Тут нам нужно указать атрибут элемента где нужен перевод в нашем случае весь наш сайт был обвернут в div с атрибутом #CenteFix.
2. Массив перевода:
var a = [0, 'Home', 'News', 'Advertise'];
var b = [0, 'Главная', 'Новости', 'рекламировать']; - Тут указываем свои слова перевода из родного в нужный язык!..
P.s Будьте осторожны в переводе слов, так как скрипт заменяет весь код HTML код страницы на ваши указанные слова перевода.