2012-04-17 2 views
1

Я хочу, чтобы пользователь выбирал свой язык с любой подстраницы на моем веб-сайте. Лучшим решением для хранения каждого пользовательского языка являются сеансы.Выбор языка CodeIgniter

Мой сайт по умолчанию - английский, но как загрузить другой язык, который пользователь выбирает? Я предполагаю, что я должен сделать это следующим образом:

$this->lang->load('my_language_file', $this->session->userdata('language'));

Но этот путь, я должен загрузить язык в каждом контроллере. Не существует способа выбрать язык пользователя из сеанса по всему миру? Поэтому я мог бы использовать $this->lang->line('some-message'); в любом месте на моем сайте?

ответ

4

Либо сделать

$CI =& get_instance(); 
$CI->lang->load('my_language_file', $CI->session->userdata('language')); 

в начале пользовательской helper и он autoloaded в вашей конфигурации/autoload.php.

Иначе вы можете это сделать через hooks.
Основном использовать

$CI =& get_instance(); 
$CI->lang->load('my_language_file', $CI->session->userdata('language')); 

здесь как хорошо внутри __construct(), и имеют крюк точки post_controller_constructor.

Это позволит вам включить файл lang во все контроллеры. Однако зависит от вас, сколько текстового текста вы хотите загрузить автоматически, так как он исчерпывает сервер, пусть даже в малой степени.

+0

Ну, язык по умолчанию (английский) загружается автоматически, поэтому как это важно, если я загружу английский файл для каждого пользователя и другого языка для других пользователей? – Lucas

+0

Не имеет значения, я полагаю. Почему? –

+0

Вы писали: '[..], так как он исчерпывает сервер, пусть даже в малой степени. ' – Lucas

Смежные вопросы