Как поменять язык сайта для англичан?

Для себя выделил lagdoc.php , где записал каждую фразу
Пример:
$msg['menu'] = 'Меню';

Собственно, как мне при нажатии всего лишь на кнопку, язык сайта сразу менялся?

Ну или допустим, язык был на английском, только тогда, когда люди переходят на мойдомен.com , а на .ru язык русский.
  • Вопрос задан
  • 792 просмотра
Решения вопроса 1
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
<?php
	if (isset($_GET['lang'])) {
		setcookie("lang", $_GET['lang'], time()+365*24*60*60, "/");  
		Header('Location:?');
	}

	$tr['Site menu'] = [
		'ru' => 'Меню сайта',
		'es' => 'Menu del sitio',
	]; 

	function _($def) {
		global $tr;
		$ret = $def;
		if (isset($tr[$def])) {
			$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : '';
			if (isset($tr[$def][$lang])) {
				$ret = $tr[$def][$lang];
			}  // else throw new Exception('Translation to language "'.$lang.'" for phrase "'.$def.'" not found');
		} // else throw new Exception('Default translation for phrase "'.$def.'" not found');
		return $ret;
	}
?>
<!doctype html5>
<html>
<head><meta charset="utf-8" /> </head>
<body>
	<a href="?lang=en">En</a> 
	&middot; <a href="?lang=ru">Ru</a>
	&middot; <a href="?lang=es">Es</a>
	&middot; <a href="?lang=ar">Ar</a>
	<hr>
	<?=_('Site menu')?>
</body>
</html>
?>
<!doctype html5>
<html>
<head><meta charset="utf-8" /> </head>
<body>
	<a href="?lang=en">En</a> 
	&middot; <a href="?lang=ru">Ru</a>
	&middot; <a href="?lang=es">Es</a>
	&middot; <a href="?lang=ar">Ar</a>
	<hr>
	<?=_('Site menu')?>
</body>
</html>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Machez
@Machez
Бу!
Есть хорошая штука, которая называется i18n (Internationalization) - https://github.com/Philipp15b/php-i18n
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы