Всем привет. многие хотят сделать сайт англоязычным но 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;
cursor: pointer;
}
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 код страницы на ваши указанные слова перевода.