Codeigniter MVC структура обнаружения пользовательских параметров - PullRequest
1 голос
/ 27 марта 2011

Мне интересно узнать о лучших методах КИ

Мне нужен код, который определяет язык браузера и назначает соответствующий языковой файл.

относится ли такой код к библиотеке или помощнику? (если я прав, помощники - это php-функции, а не библиотеки-классы)

также, что было бы лучшим способом запустить класс, а не просто загрузить его.

спасибо.

Ответы [ 2 ]

3 голосов
/ 27 марта 2011

Вы можете получить информацию о языке из браузера с помощью:

$this->input->server('HTTP_ACCEPT_LANGUAGE');

Мина возвращается en-US,en;q=0.8, поэтому вам нужно будет выполнить какой-то анализ, чтобы перевести это на что-то полезное для вас.

Но тогда вы можете установить язык, который CI использует для загрузки языковых файлов, с помощью

$config['language'] = 'english';

где 'english' - это имя папки в вашей папке application/languages, которая содержит ваши языковые файлы.

Вы можете делать эти вещи где угодно до запуска вашего кода. Я бы рекомендовал сделать application/libraries/MY_Lang.php (application / core / MY_Lang.php в 2.0) и поместить его в конструктор, потому что он всегда загружается перед использованием языкового файла.

Наконец следует прочитать это . Но в основном вы извлекаете строку из вашего языкового файла с помощью:

$this->lang->line('language_key');
2 голосов
/ 27 марта 2011

PHP имеет функцию с именем get_browser для обнаружения браузера пользователя.Я думаю, что лучшая практика такова:

  1. Установите фронт-контроллер для получения браузера пользователя с использованием Javascript.
  2. Перенаправьте пользователя на соответствующую функцию, чтобы установить язык и загрузить ваш главный вид..

В любом случае, в Google я нашел несколько фрагментов:

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

И отсюда, в StackOverflow: Проверка языка браузера по php

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