Перейти к содержанию

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


Sanasol

Рекомендуемые сообщения

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

  • Upvote 5
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

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

  • 9 месяцев спустя...
×
×
  • Создать...
Яндекс.Метрика