Перевод меню сайта ( i18 ): форсированно не переводит.

Japansimpson
Posts: 85
Joined: Mon Jul 29, 2013 11:59 am

Перевод меню сайта ( i18 ): форсированно не переводит.

Post by Japansimpson »

Что я делал:

1) создал темплейт lang

<?php
$my_keywords['en'] = array(
'text' => 'текст_на_английском_языке',
);
$my_keywords['de'] = array(
'text' => 'текст-на-немецком-языке',
);
$my_keywords['ru'] = array(
'text' => 'текст_на_русском_языке',
);

if (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'de')) {
$lang = $my_keywords['de'];
} elseif (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'ru')) {
$lang = $my_keywords['ru'];
} else $lang = $my_keywords['en'];

if ($_GET['set_lng'] and isset($my_keywords[$_GET['set_lng']])) {
setcookie('force_lng', $_GET['set_lng'], time() + 86400);
$lang = $my_keywords['en'];
} elseif ($_COOKIE['force_lng'] and isset($my_keywords[$_COOKIE['force_lng']])){
$lang = $my_keywords[$_COOKIE['force_lng']];
}
?>

2) Заинклюдил его в темплейт main кодом
<!--INCLUDE_TEMPLATE_lang-->

3) заменил нужный текст куском кода
<?=$lang['text']?>

Открываю сайт в русском браузере - текст на русском. Пробую открыть сайт http://domain/?force_lng=de или http://domain/?force_lng=en - текст всё равно на русском языке. Пробовал переделать темплейт lang на подмену языка по гео-айпи - открывается на английском, форсированная замена языка язык опять не меняет. Пробовал и не 51-й версии, и на ТЦМС (обновлял оба сегодня) - не помогает. Добавлял (на всякий случай) языковые слэйвы - тож не работает. Что же и где я не доделал, подскажите, пожалуйста.
richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by richmantrade »

А если попробовать $_GET['set_lng'] поменять на $_GET['force_lng'] ?
Мне чета кажется что это оЧепятка в мануале :)
admin
Site Admin
Posts: 37247
Joined: Wed Sep 10, 2008 11:43 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by admin »

http://smartcj.com/wiki/doku.php?id=ru: ... %D0%B0_i18


что то я тут поискал и set_lng вообще не нашел...
Может быть где то сохранился такой вариант ?
Don't forget to run script update
Japansimpson
Posts: 85
Joined: Mon Jul 29, 2013 11:59 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by Japansimpson »

Поправил. Теперь страница http://domain.com/ отображается нормально, а http://domain/?force_lng=de отображается с уже измененным текстом, но снизу страницы выводтися варнинг
Warning, can not parse template () (Error: Type 2, Cannot modify header information - headers already sent by (output started at /path/to/scj/folder/tube/index.php(769) : eval()'d code:53), line 247 )
и ниже выводится текстовый код всего темплейта. 247 строка этого темплейта:
247: setcookie('force_lng', $_GET['force_lng'], time() + 86400);
Это в ТЦМС. В 51-й же версии остается дефолтный язык, и он форсированно всё равно не меняется.
admin
Site Admin
Posts: 37247
Joined: Wed Sep 10, 2008 11:43 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by admin »

Варинигн потмоу что у вас там видимо есть таг под который нет сабтемпелйта.

От версии скирпта это не зависит. Совершенно весь код которые переводит меню у вас на руках, а точнее в темплейте.

D вики поправил, спасибо.
Don't forget to run script update
Japansimpson
Posts: 85
Joined: Mon Jul 29, 2013 11:59 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by Japansimpson »

>Варинигн потмоу что у вас там видимо есть таг под который нет сабтемпелйта.

Перепроверил - тагов, под которые нету сабтемплейтов, нету. И, судя по варнингу, ошибка в строке темплейта для мультиязычности:
setcookie('force_lng', $_GET['force_lng'], time() + 86400);

Может я скину доступ в админку в ЛС, проверите?
admin
Site Admin
Posts: 37247
Joined: Wed Sep 10, 2008 11:43 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by admin »

Даю 100% гарантии что не на этой строке.

Вы точно проверили что нет указания темпелйта ?

Если точно - скидывайте админку.
Don't forget to run script update
Japansimpson
Posts: 85
Joined: Mon Jul 29, 2013 11:59 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by Japansimpson »

Проверил - нет указания темпелейтов несуществующих.

Скинул доступы в ЛС.
admin
Site Admin
Posts: 37247
Joined: Wed Sep 10, 2008 11:43 am

Re: Перевод меню сайта ( i18 ): форсированно не переводит.

Post by admin »

да, не подумал что могут быть переводы только меню без контента

попробуйте плз заменить

setcookie('force_lng', $_GET['force_lng'], time() + 86400);

на


setcookie('force_lng', (isset($_GET['force_lng']) ? $_GET['force_lng'] : ''), time() + 86400);
Don't forget to run script update
Post Reply