Я пытаюсь создать многоязычную страницу, я хочу, чтобы перенаправление пользователя на определенную страницу зависело от его языка (в случае, если файл cookie не настроен, если файл cookie существует, потому что пользователь выбрал ранее язык, на котором я буду игнорировать этот блок ) создание фиктивного файла для захвата языка через $ _SERVER [‘HTTP_ACCEPT_LANGUAGE’]:
<?php
echo $_SERVER['HTTP_ACCEPT_LANGUAGE']
?>
Теоретически это должно вернуть фактический заголовок языка принятия для запроса. Но делать тесты на разных компьютерах с разными языками EN, IT, ES … (я проверил, что они отправляют свои языки как accept_language)
Я обнаружил, что если я впервые получу доступ к EN, независимо от того, сделаю ли я другой запрос на других языках, он останется на EN. То же самое, если первый запрос с IT или ES. Это не обновляется через некоторое время или после того, как я модифицирую фиктивный файл и загружаю его снова.
Насколько я вижу, ведет себя как статическая переменная, но в соответствии с PHP, док говорит, что он должен возвращать «фактический», и весь пример, который я вижу, чтобы сделать это многоязычным, предлагает сделать это таким образом.
На самом деле после часового тестирования я решил создать правило в .htaccess для перенаправления на нужный сайт, зависит от этого значения, и оно работает:
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* /en/index.php [L]
RewriteCond %{HTTP:Accept-Language} (it) [NC]
RewriteRule .* /it/index.php [L]
RewriteCond %{HTTP:Accept-Language} (es) [NC]
RewriteRule .* /es/index.php [L]
так что-то не заставляет его работать в PHP.
С уважением,
Pablo
Задача ещё не решена.
Других решений пока нет …