Я не опытный в PHP, я знаю только основы. Я не знаю, правильно ли я спрашиваю, и даже не знаю, возможно ли это, но я постараюсь объяснить.
У меня есть база данных с 10+ таблицами. Каждая таблица называется страной (Австрия, Германия, Латвия, Литва и т. Д.).
У меня есть скрипт, который отображает язык браузера пользователя при подключении к сайту.
Кроме того, у меня есть скрипт запроса PHP, который отображает данные на языке браузера пользователя (если пользователь соединяется с браузером, основным языком которого является австрийский язык, чем данные запроса PHP из таблицы Австрии).
HTTP_ACCEPT_LANGUAGE
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
if($lc == "de") { $langas = "Germany"; }
if($lc == "lt") { $langas = "Lithuania"; }
// etc..
echo $langas;
Запрос:
foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
echo '<span>'.$row['info1'].'</span>';
echo '<span>'.$row['info2'].'</span>';
// etc..
}
Что я хочу сделать:
Я хочу, чтобы, если пользователь подключается к веб-сайту, и его язык браузера не совпадает с моими таблицами, чем по умолчанию, запрос должен инициироваться с другой таблицей и не отправлять ошибки (например, таблицу Латвии). Как я могу это сделать?
Другой вопрос:
Я знаю, что если я буду использовать функцию HTTP_ACCEPT_LANGUAGE, то я не смогу использовать <select>
код, который пользователь сможет выбрать страну вручную. Может быть, я ошибаюсь .. может, кто-то может объяснить это для меня?
Попробуйте что-то вроде этого
$langas = '';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if($lc == "de") { $langas = "Germany"; }
if($lc == "lt") { $langas = "Lithuania"; }
// etc
}
if ( $langas == '' ) {
// set default language
$langas = "Germany";
}
foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
echo '<span>'.$row['info1'].'</span>';
echo '<span>'.$row['info2'].'</span>';
// etc..
}
Ваш второй вопрос должен быть задан как отдельный вопрос!
Других решений пока нет …