Что я делал:
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-й версии, и на ТЦМС (обновлял оба сегодня) - не помогает. Добавлял (на всякий случай) языковые слэйвы - тож не работает. Что же и где я не доделал, подскажите, пожалуйста.
Перевод меню сайта ( i18 ): форсированно не переводит.
-
- Posts: 85
- Joined: Mon Jul 29, 2013 11:59 am
-
- Posts: 1034
- Joined: Tue Dec 04, 2012 8:46 am
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
А если попробовать $_GET['set_lng'] поменять на $_GET['force_lng'] ?
Мне чета кажется что это оЧепятка в мануале
Мне чета кажется что это оЧепятка в мануале
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
http://smartcj.com/wiki/doku.php?id=ru: ... %D0%B0_i18
что то я тут поискал и set_lng вообще не нашел...
Может быть где то сохранился такой вариант ?
что то я тут поискал и set_lng вообще не нашел...
Может быть где то сохранился такой вариант ?
Don't forget to run script update
-
- Posts: 85
- Joined: Mon Jul 29, 2013 11:59 am
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
Поправил. Теперь страница 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-й же версии остается дефолтный язык, и он форсированно всё равно не меняется.
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-й же версии остается дефолтный язык, и он форсированно всё равно не меняется.
-
- Posts: 85
- Joined: Mon Jul 29, 2013 11:59 am
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
$_GET['set_lng'] остался на
http://smartcj.com/wiki/doku.php?id=ru: ... gual_sites
http://smartcj.com/wiki/doku.php?id=ru: ... gual_sites
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
Варинигн потмоу что у вас там видимо есть таг под который нет сабтемпелйта.
От версии скирпта это не зависит. Совершенно весь код которые переводит меню у вас на руках, а точнее в темплейте.
D вики поправил, спасибо.
От версии скирпта это не зависит. Совершенно весь код которые переводит меню у вас на руках, а точнее в темплейте.
D вики поправил, спасибо.
Don't forget to run script update
-
- Posts: 85
- Joined: Mon Jul 29, 2013 11:59 am
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
>Варинигн потмоу что у вас там видимо есть таг под который нет сабтемпелйта.
Перепроверил - тагов, под которые нету сабтемплейтов, нету. И, судя по варнингу, ошибка в строке темплейта для мультиязычности:
setcookie('force_lng', $_GET['force_lng'], time() + 86400);
Может я скину доступ в админку в ЛС, проверите?
Перепроверил - тагов, под которые нету сабтемплейтов, нету. И, судя по варнингу, ошибка в строке темплейта для мультиязычности:
setcookie('force_lng', $_GET['force_lng'], time() + 86400);
Может я скину доступ в админку в ЛС, проверите?
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
Даю 100% гарантии что не на этой строке.
Вы точно проверили что нет указания темпелйта ?
Если точно - скидывайте админку.
Вы точно проверили что нет указания темпелйта ?
Если точно - скидывайте админку.
Don't forget to run script update
-
- Posts: 85
- Joined: Mon Jul 29, 2013 11:59 am
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
Проверил - нет указания темпелейтов несуществующих.
Скинул доступы в ЛС.
Скинул доступы в ЛС.
Re: Перевод меню сайта ( i18 ): форсированно не переводит.
да, не подумал что могут быть переводы только меню без контента
попробуйте плз заменить
setcookie('force_lng', $_GET['force_lng'], time() + 86400);
на
setcookie('force_lng', (isset($_GET['force_lng']) ? $_GET['force_lng'] : ''), time() + 86400);
попробуйте плз заменить
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