Page 1 of 1

Перевод меню сайта

Posted: Wed Apr 01, 2020 6:11 pm
by S_Flash
Тут сказанно https://smartcj.com/wiki/doku.php?id=ru ... %D0%B0_i18
и в конце темпелйта

Code: Select all

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

Все, конец темплейта :)
2. во всех темплейтах где надо будут разные языки инклудим этот созданный темплейт
<!--INCLUDE_TEMPLATE_languages-->
Получается надо вставить <!--INCLUDE_TEMPLATE_languages--> перед <!DOCTYPE html> в темплейтах иначе нет смысла в коде:

Code: Select all

setcookie('force_lng', $_GET['force_lng'], time() + 86400);
, так как установка куки не должна сработать после вывода текста в html ибо она передаётся в хедерах.

Но вставка <!--INCLUDE_TEMPLATE_languages--> перед <!DOCTYPE html> даёт лишний пробел, что противоречит корректному форматированию html

Я гдет-то ошибся или в этом варианте кода не всё ладно, так как у меня лично не работает передача языка между страницами, но это уже скорее другой вопрос.

Re: Перевод меню сайта

Posted: Wed Apr 01, 2020 7:41 pm
by admin
а в самом точно нет пробела?

я сделал


<!--INCLUDE_TEMPLATE_header-->dlkjsfldkj

и сам header типа "121221"

проверил - пробела нет

на тестовых темплейтах повторяется проблема?

Re: Перевод меню сайта

Posted: Wed Apr 01, 2020 7:48 pm
by S_Flash
точно, был пробел в конце

дк, я правильно понял, что <!--INCLUDE_TEMPLATE_header--> надо самым первым символом в темплейте инклудить?

Re: Перевод меню сайта

Posted: Wed Apr 01, 2020 7:58 pm
by admin
да, верно