2010-11-06 3 views
0

Как использовать несколько представлений языков в контроллере в соответствии с параметром url? У меня есть английская версия веб-сайта в CodeIgniter. Я хочу сделать греческую и арабскую версию этого сайта без изменения моделей и контроллеров. Любой знает, как это сделать, чтобы я мог заставить CodeIgniter отображать разные представления для одного и того же контроллера в соответствии с параметрами языка в URL. как URL нижеИспользование нескольких языков для одного и того же контроллера в CodeIgniter

http://www.example.com/en/ для английского

http://www.example.com/ar/ для арабского

http://www.example.com/gk/ для греческих

Спасибо заранее

+0

Пожалуйста, отметьте правильный ответ, как принято, или укажите дополнительную информацию, если вам нужна дополнительная помощь .. спасибо! – tpae

ответ

2

Попробуйте с этим:

Internationalization (i18n) library for CodeIgniter

Я использовал его в своем проекте с небольшой модификацией, и это действительно здорово.

+0

Спасибо за ваш ответ. Мне нужно использовать разные шаблоны (представления) для каждого языка, потому что в моем дизайне есть изображения с текстом на разных языках. Так что использование языкового файла не работает. –

+0

Вам не нужно использовать языковые файлы, они предназначены для статического текста (оставьте их пустыми) ... вы можете взять все (предложения, абзац, текст в целом) из базы данных (я использовал оба подхода в своем приложении, но вы может придерживаться только базы данных). О представлениях, создайте один главный шаблон и, в зависимости от языка, загрузите свои зависящие от языка представления (с этими изображениями), если эти страницы являются динамическими. Если они статические страницы, то это еще проще. Эта библиотека поможет вам легко перейти на соответствующий язык, и ничего больше. – trix

0

Вы можете сделать следующее, если у вас разные шаблоны/представления для каждого языка.

$lang = $this->uri->segment(1); 

$this->load->view("view_folder/".$lang."/main_page"); 

Тогда вы можете хранить каждый на разных языках, как это:

view_folder/en/main_page.php 
view_folder/ar/main_page.php 
view_folder/gk/main_page.php 

Пожалуйста, имейте в виду, чтобы изменить маршруты, так что вы можете использовать один и тот же контроллер. Я хотел бы использовать Regex в системе маршрутизации, например:

$route['([a-z_A-Z]+)/controller'] = 'controller'; 

Затем, когда вы делаете http://www.example.com/en/controller, вы должны быть перенаправлены на контроллер и $this->uri->segment(1); будет доступен для выбора языка.

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