Sanasol

FluxCP - Переключатель языка

8 сообщений в этой теме

langswitcher.png

Как аддон такую штуку не сделать, поэтому придется добавлять ручками целых несколько строк кода в 2 файла.

Открываем FluxCP/lib/Flux.php

Находим такую лабуду

if ($lang=self::config('DefaultLanguage')) {
$current = $addonName ? FLUX_ADDON_DIR."/$addonName/lang/$lang.php" : FLUX_LANG_DIR."/$lang.php";
}

И добавляем несколько строк после

// [Sanasol] LangSwitcher
$dictionary = array("en" => "en_us", "ru" => "ru_ru"); // keeping bad guys from use ../../../../
if(!empty($_COOKIE["language"]) && array_key_exists($_COOKIE["language"], $dictionary))
{
$lang = $dictionary[$_COOKIE["language"]];
$current = $addonName ? FLUX_ADDON_DIR."/$addonName/lang/$lang.php" : FLUX_LANG_DIR."/$lang.php";
}
// [Sanasol] LangSwitcher

Здесь мы может поменять список языков в переменной $dictionary. Например: "lang_key" => "lang_file" потом создаем файл с переводом в FluxCP/lang/ и называем его lang_file.php

Вывод переключателя.

Открываем FluxCP/themes/your_theme/footer.php или другой файл с версткой в зависимости от того куда нужно поставить его.

Для дефолтной темы добавлял в footer.php

перед этим

<?php if (Flux::config('ShowCopyright')): ?>

добавляем

<tr>
<td colspan="3"></td>
<td>
<script>
function setCookie(key, value) {
var expires = new Date();
expires.setTime(expires.getTime() + expires.getTime()); // never expires :D
document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
}

function getCookie(key) {
var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
return keyValue ? keyValue[2] : null;
}

$(document).ready(function(){
$("a[data-lang]").click(function(e){
e.preventDefault();
if(getCookie('language') != $(this).data("lang"))
{
setCookie('language', $(this).data("lang"));
reload();
}
});

$("a[data-lang]").each(function(i){
if(getCookie('language') == $(this).data("lang"))
{
$(this).css("font-weight","700");
}
});
});
</script>
<p>
<a href="#" data-lang="en">English</a>/<a href="#" data-lang="ru">Russian</a>
</p>
</td>
<td></td>
</tr>

Все очень просто.

Ссылки в конце по которым меняется язык data-lang = lang_key

На этом все!

Будет как-то так

9a2df3ccd5873be2f94613a159a6.png

Демо: http://ro.sanasol.ws...xcp/?module=woe

5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужно бы еще и меню переводить и Тайтл страницы

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужно бы еще и меню переводить и Тайтл страницы

не тупи) все переводится, я для демо сделал русский 2 строчки)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не тупи) все переводится, я для демо сделал русский 2 строчки)

тогда сделай норм демо, я не смотрел код и не вникал, я глянул демо - перевелись лишь текст записи - отстой, вот и отписал ;)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

весь флюкс перевести чтобы показать как работает код который пишется за 10 минут? :ph34r:

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

весь флюкс перевести чтобы показать как работает код который пишется за 10 минут? :ph34r:

привыкай, кто сказал, что будет легко?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

весь флюкс перевести чтобы показать как работает код который пишется за 10 минут? :ph34r:

Народу же надо все готовое) Зачем вот школьникам переключатель языка, если нет для него перевода))

А так плюс конечно, кому надо тот заюзает

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тема зачет хочу и на своем проекте реализовать!!!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас