• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Не переключаются языки системных сообщений

Prof1

Создатель
Регистрация
21 Янв 2015
Сообщения
21
Реакции
2
Сделал сайт на DLE 10.4 на 3 языках - русском, английском и украинском. Соответственно, сделал 3 шаблона - Russian, English, Ukrainian. При переключении языков (шаблонов) при помощи {changeskin}всё работает замечательно. Если же использовать ссылки типа site.ua/index.php?action_skin_change=yes&skin_name=ИМЯ_ШАБЛОНА, то шаблоны переключаются, а язык системных сообщений остается такой, какой выбран по умолчанию в админке. Шаблоны связаны со своими языковыми файлами в админке. Возможно ли это как-то исправить?
 
Возможно ли это как-то исправить?
Как вариант попробуй отключить кеширование в админке ДЛЕ, возможно поможет если по {changeskin} все работает нормально...
 
Вот код, который отвечает за смену шаблона:
PHP:
elseif (isset ( $_REQUEST['action_skin_change'] )) {

	$_REQUEST['skin_name'] = trim( totranslit($_REQUEST['skin_name'], false, false) );

	if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) {
		$config['skin'] = $_REQUEST['skin_name'];
		set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 );
	}

}
Как видим, метод получения данных не имеет значения - что GET, что POST запрос.

Таким образом, если Вы не допустили ошибок в названии шаблона (Регистр имеет значения) - ошибка явно связана с настройками...

Идём в файл /engine/data/config.php и ищем:
'lang_Default' => "Russian", - где Default - Ваш шаблон, Russian - язык.

Вот код подключения языка:
PHP:
if (isset ( $config["lang_" . $config['skin']] ) and $config["lang_" . $config['skin']] != '') {
	if ( file_exists( ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng' ) ) {
		include_once ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng';
	} else die("Language file not found");
} else {

	include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';

}

Как видим, язык выбирается по алгоритму: если в файле настроек есть 'lang_Default' => "Russian", - то выбирает указанный язык, иначе - выбираем стандартный.

В админке всё интереснее... Это закодированный init.php:
PHP:
$selected_language = $config['langs'];

if (isset( $_POST['selected_language'] )) {

	$_POST['selected_language'] = totranslit( $_POST['selected_language'], false, false );

	if ($_POST['selected_language'] != "" AND @is_dir ( ROOT_DIR . '/language/' . $_POST['selected_language'] )) {
		$selected_language = $_POST['selected_language'];
		set_cookie ( "selected_language", $selected_language, 365 );

	}

} elseif (isset( $_COOKIE['selected_language'] )) { 

	$_COOKIE['selected_language'] = totranslit( $_COOKIE['selected_language'], false, false );

	if ($_COOKIE['selected_language'] != "" AND @is_dir ( ROOT_DIR . '/language/' . $_COOKIE['selected_language'] )) {
		$selected_language = $_COOKIE['selected_language'];
	}

}
if ( file_exists( ROOT_DIR . '/language/' . $selected_language . '/adminpanel.lng' ) ) {
	require_once (ROOT_DIR . '/language/' . $selected_language . '/adminpanel.lng');
} else die("Language file not found");
Мы видим, что язык меняется только по куке $_COOKIE['selected_language'] и $_POST['selected_language']... При смене шаблона в пользовательской части, кука не меняется... Посему и смеша пользовательского шаблона никак не отразится на язык админ панели...

Почему отрабатывала смена при использовании выпадающего списка - ответить не могу... В коде этого нет...

В общем Вам после set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 ); а лучше после include_once ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng'; надо ещё и $_COOKIE['selected_language'] генерировать...

P.s. код взят из DataLife Engine 10.4 (с) Все права похерены...
 
Как вариант попробуй отключить кеширование в админке ДЛЕ, возможно поможет если по {changeskin} все работает нормально...
Спасибо за быстрый ответ. Кеширование отключил - проблема пока осталась. Вот адрес сайта - Для просмотра ссылки Войди или Зарегистрируйся, светофор слева - это ссылки, которые, к сожалению, только переключают темы. Внизу страницы - поле с выбором (это {changeskin} ) - там все работает нормально.
<?PHP

//System Configurations

$config = array (

'home_title' => 'Кафедра ОТСиС',

'http_home_url' => 'Для просмотра ссылки Войди или Зарегистрируйся',

'charset' => 'utf-8',

'description' => 'Сайт кафедры Охрана труда, стандартизация и сертификация',

'keywords' => 'Охрана труда, БЖД, Метрология, Стандартизация, Управление качеством',

'short_title' => 'Сайт кафедры ОТСиС',

'start_site' => '1',

'date_adjust' => 'Europe/Kiev',

'allow_alt_url' => '1',

'seo_type' => '2',

'seo_control' => '1',

'langs' => 'Russian',

'skin' => 'Ukrainian',

'allow_admin_wysiwyg' => '2',

'allow_static_wysiwyg' => '0',

'allow_complaint_mail' => '1',

'offline_reason' => 'Сайт находится на текущей реконструкции, после завершения всех работ сайт будет открыт.<br /><br />Приносим вам свои извинения за доставленные неудобства.',

'admin_path' => 'admin.php',

'extra_login' => '0',

'admin_allowed_ip' => '',

'login_log' => '5',

'login_ban_timeout' => '20',

'ip_control' => '1',

'log_hash' => '1',

'sec_addnews' => '2',

'spam_api_key' => '',

'allow_recaptcha' => '0',

'recaptcha_public_key' => '6LfoOroSAAAAAEg7PViyas0nRqCN9nIztKxWcDp_',

'recaptcha_private_key' => '6LfoOroSAAAAAMgMr_BTRMZy20PFir0iGT2OQYZJ',

'recaptcha_theme' => 'clean',

'adminlog_maxdays' => '30',

'news_number' => '10',

'search_number' => '10',

'related_number' => '5',

'top_number' => '10',

'tags_number' => '40',

'max_moderation' => '0',

'news_restricted' => '0',

'category_separator' => '/',

'speedbar_separator' => '&raquo;',

'smilies' => 'wink,winked,smile,am,belay,feel,fellow,laughing,lol,love,no,recourse,request,sad,tongue,wassat,crying,what,bully,angry',

'timestamp_active' => 'j-m-Y, H:i',

'news_navigation' => '1',

'news_sort' => 'date',

'news_msort' => 'DESC',

'catalog_sort' => 'date',

'catalog_msort' => 'DESC',

'image_align' => 'left',

'mail_news' => '1',

'show_sub_cats' => '1',

'allow_search_print' => '1',

'allow_add_tags' => '1',

'allow_share' => '1',

'short_rating' => '1',

'rating_type' => '1',

'allow_site_wysiwyg' => '2',

'allow_quick_wysiwyg' => '2',

'allow_comments' => '1',

'comments_restricted' => '0',

'allow_subscribe' => '1',

'allow_combine' => '1',

'max_comments_days' => '0',

'comments_minlen' => '10',

'comments_maxlen' => '3000',

'comm_nummers' => '30',

'comm_msort' => 'ASC',

'flood_time' => '30',

'auto_wrap' => '80',

'timestamp_comment' => 'j F Y H:i',

'allow_search_link' => '1',

'mail_comments' => '1',

'allow_comments_rating' => '1',

'comments_rating_type' => '2',

'allow_comments_wysiwyg' => '1',

'clear_cache' => '0',

'cache_type' => '0',

'memcache_server' => 'localhost:11211',

'allow_comments_cache' => '1',

'full_search' => '0',

'allow_registration' => '1',

'allow_multi_category' => '1',

'no_date' => '1',

'allow_fixed' => '1',

'speedbar' => '1',

'allow_banner' => '1',

'allow_votes' => '1',

'allow_read_count' => '1',

'allow_calendar' => '1',

'allow_archives' => '1',

'allow_change_sort' => '1',

'comments_ajax' => '1',

'online_status' => '1',

'files_allow' => '1',

'max_file_count' => '0',

'files_force' => '1',

'files_antileech' => '1',

'files_count' => '1',

'admin_mail' => 'prof.kharkov.ua@rambler.ru',

'mail_title' => '',

'mail_metod' => 'php',

'mail_additional' => '',

'smtp_host' => 'localhost',

'smtp_port' => '465',

'smtp_user' => '',

'smtp_pass' => '',

'smtp_mail' => 'prof.kharkov.ua@rambler.ru',

'smtp_helo' => 'HELO',

'auth_metod' => '0',

'reg_group' => '4',

'registration_type' => '0',

'allow_social' => '1',

'reg_multi_ip' => '1',

'auth_domain' => '1',

'registration_rules' => '1',

'allow_sec_code' => '1',

'allow_skin_change' => '1',

'mail_pm' => '1',

'max_users' => '0',

'max_users_day' => '0',

'max_up_side' => '0',

'o_seite' => '0',

'max_up_size' => '800',

'max_image_days' => '5',

'allow_watermark' => '1',

'max_watermark' => '150',

'watermark_seite' => '4',

'max_image' => '200',

'medium_image' => '450',

't_seite' => '0',

'jpeg_quality' => '85',

'avatar_size' => '100',

'tag_img_width' => '0',

'thumb_dimming' => '1',

'thumb_gallery' => '1',

'outlinetype' => '0',

'allow_smart_format' => '1',

'mobile_news' => '10',

'allow_rss' => '1',

'rss_mtype' => '0',

'rss_number' => '10',

'rss_format' => '1',

'site_offline' => '0',

'news_future' => '0',

'create_metatags' => '0',

'create_catalog' => '0',

'parse_links' => '0',

'related_only_cats' => '0',

'hide_full_link' => '0',

'js_min' => '0',

'fast_search' => '0',

'related_news' => '0',

'allow_cmod' => '0',

'cache_count' => '0',

'rss_informer' => '0',

'allow_tags' => '0',

'allow_links' => '0',

'allow_cache' => '0',

'allow_gzip' => '0',

'allow_topnews' => '0',

'use_admin_mail' => '0',

'mail_bcc' => '0',

'reg_question' => '0',

'allow_smartphone' => '0',

'allow_smart_images' => '0',

'allow_smart_video' => '0',

'comments_lazyload' => '0',

'auth_only_social' => '0',

'version_id' => '10.4',

'key' => '8febcf214da3317669dfa91972fe10e6',

'lang_Ukrainian' => 'Ukrainian',

'lang_Russian' => 'Russian',

'lang_English' => 'English',

);

?>
Сейчас буду изучать информацию, которую предоставил Горбушка. Меня больше интересует не админпанель - там язык не принципиален. Я имел в виду системные сообщения - это календарь, порядок сортировки новостей
bb4945e978d6.jpg

68a7ad3ec830.jpg

5fb1fe1d3d2a.jpg
 
Последнее редактирование:
светофор слева - это ссылки, которые, к сожалению, только переключают темы
сейчас открыл этот сайт, побродил по ссылкам, и всё работает нормально, что менять язык по смене скина что по "светофору"...
 
Сейчас в качестве языка по умолчанию стоит русский язык. И у меня, как показано в скриншотах выше, тема полностью изменяется и по смене скина и по светофору. Но то, что выделено красным цветом на скриншотах, переключается исключительно через смену скина. Пробовал на разных компьютерах и в браузерах - Chrome, Opera, FireFox. Если у Вас всё переключается, то я в замешательстве.
Скорее всего, ответ кроется где-то внутри engine/init.php . Но где именно - понять не могу
 
Последнее редактирование:
Всё немного не так... КЭШ необходимо очистить и вырубить - тогда всё будет Ок...

Не буду углубляться в код, но календарь и прочие элементы кэшируются отдельно от новостей и т.д. и из-за этого могут отдаваться из кэша со старым языком... Ну а сам кэш может генерироваться под рабочую группу, а значит мы, гости, кэш уже не видим (отключён), а ты, админ, видишь ещё сохранённый тогда...
 
Всем спасибо за помощь. Кэш очищал и отключал - не помогло. Помогло замечание от Горбушка:
Таким образом, если Вы не допустили ошибок в названии шаблона (Регистр имеет значения) - ошибка явно связана с настройками...
В ссылках у меня было - index.php?action_skin_change=yes&skin_name=english, а надо было - index.php?action_skin_change=yes&skin_name=English. Самое интересное, шаблоны переключались вне зависимости от регистра, а для переключения языка системных сообщений регистр букв имеет значение. Сейчас вроде всё заработало.
 
Скорее всего, у Вас сайт сейчас на Windows :) Дело в том, что в Windows названия папкой регистро независимые (на самом деле не совсем так, но нас это не касается), а PHP переменные регистрозависимые... Вот он папку шаблона нашёл, а переменную в конфиге - нет. :)

Возможно и на хостинге так же будет - надо код подключения папки смотреть...
 
Скорее всего, у Вас сайт сейчас на Windows
Абсолютно правильно. Сайт нa домашнем хостинге - OpenServer на Windows Server 2008 r2.
Самое интересное, после отключенния / чистки кэша перестала высвечиваться главная страница. То есть, если обращаться по адресу - Для просмотра ссылки Войди или Зарегистрируйся , то получается белая страница, если же обращаться по ссылкам (как прописано в .htaccess) :
или соответственно:
то всё загружается нормально.
При включении всех сообщений об ошибках при обращении по адресу Для просмотра ссылки Войди или Зарегистрируйся высвечивается следующее:
Notice: Undefined index: skin_name in C:\OpenServer\domains\kafotss.kharkov.ua\engine\init.php on line 324 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined variable: view_template in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\show.short.php on line 121 Notice: Undefined index: tags_cloud in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\main.php on line 35 Notice: Undefined index: topnews in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\main.php on line 37 Notice: Undefined variable: informers in C:\OpenServer\domains\kafotss.kharkov.ua\engine\modules\main.php on line 71

Вот часть файла engine\init.php:
82c05d00ad39.jpg


Как я понял, теперь шаблон по умолчанию не выбирается.
Попробовал и в ссылках и в названиях шаблонов использовать только нижний регистр - главная страница появилась, но зато язык системных сообщений опять перестал переключаться.
В файле engine\data\config.php исправил названия шаблонов на нижний регистр - системные сообщения переключаются, нет главной страницы. Опять размышляю...
 
Последнее редактирование:
Назад
Сверху