Динамический атрибут href (многоязычный веб-сайт) - PullRequest
0 голосов
/ 10 июля 2019

Я постараюсь быть максимально четким.

Я включаю нижний колонтитул и панель навигации, используя:

<?php include 'includes/nav.php';?>
<?php include 'includes/footer.php';?>

На панели навигации есть языковая кнопка, как показано ниже:

<ul class="language">
   <li class="en"><a href="...."></a></li>
</ul>

Язык моего сайта английский.Но у меня есть его немецкая копия в папке / de / .

Вопрос / проблема:

Созданиединамическое изменение языка.

Или, другими словами, когда я нахожусь на своей странице www.website.com / contact и нажимаю <a href="...."></a>, чтобы перейти на www.website.com / de /контакт стр.

Я принимаю любое решение.Не имеет значения, является ли он mod_rewrite в .htaccess, простыми правилами php, включенными в nav.php, или в некоторый код javascript.

Если объяснение было недостаточно ясным, просто введите вопрос ниже, и я сразу же отвечу более подробно.

1 Ответ

0 голосов
/ 10 июля 2019

В вашем nav.php вы можете использовать $ _SERVER ["REQUEST_URI"], чтобы получить путь к текущему URL.

Тогда, если вы находитесь на www.website.com/contact, $ _SERVER ["REQUEST_URI"] будет / contact , если вы находитесь на www.website.com/de/contact, тогда is / de / contact .

Вы можете оценить его, чтобы определить, находитесь ли вы под / де / или нет. Вот пример кода:

$prefix = "";

$uri = $_SERVER['REQUEST_URI'];

if ( substr($uri,0, 4) == "/de/" ) {
    $prefix = '/de';
}

URL будет

<ul class="language">
   <li class="en"><a href="<?php echo $prefix ?>/contact"></a></li>
</ul>

если вы находитесь в корне (не / de /), префикс $ var пуст и не печатается в URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...