Codeigniter, переключение языка на основе домена (переключатель base_url), что является лучшим методом? - PullRequest
0 голосов
/ 18 мая 2011

В: У меня есть мультиязычный сайт. Там, где язык переключается автоматически путем проверки базового URL, предположим, что www.myapp.fr (для французского) и www.myapp.es (для испанского). Я использую вспомогательную функцию, чтобы сделать $ this-> config-> set_item ('base_url', $ domain) соответственно. Мой вопрос заключается в том, где я должен разместить вспомогательную функцию, лучшую область видимости, чтобы пользователь не попадал на французский сайт с неправильным URL-адресом www.domain.es? Конструктор MY_Controller?

(*) Обычно у peolpe есть одно доменное имя для мультиязычного сайта. В моем случае у меня один и тот же хостинг с двумя доменными именами, указывающими на него. На основании пользовательского запроса URI, я делаю переключатель! Я переписываю сайт, который делает это, и работает нормально. Но я помню, что у меня было несколько проблем, потому что base_url не был переключен должным образом, и пользователи перемещались на языке FR в домене ES (пример). В то время у меня не было помощника на каждом контроллере, никакой СУХОЙ хорошей практики, так что я думаю, что это была проблема. Но на 90% все работало нормально!

Любые советы приветствуются; D

Большое спасибо

1 Ответ

1 голос
/ 18 мая 2011

Не устанавливайте base_url самостоятельно.

CI 2.0 и далее вам не нужно устанавливать base_url.

вы можете использовать этот код для установки base_url

$config['base_url'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://' . $_SERVER['HTTP_HOST'];

Теперь, когда вы свободны от base_url.Вы можете иметь ловушку, чтобы определить, какой язык использовать на основе доменного имени.

...