Один из самых простых способов сделать сайт на нескольких языках на CodeIgniter, это:
- Создать на сервере папку, например /en/ и создать в ней файл .htaccess
AddDefaultCharset UTF-8
DirectoryIndex index.php
RewriteEngine on
RewriteBase /en/
RewriteRule ^js/(.+)$ /js/$1 [L]
RewriteRule ^css/(.+)$ /css/$1 [L]
RewriteRule ^img/(.+)$ /img/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
- Создать в /en/ файл index.php
$assign_to_config['base_url'] = '/en/';
$assign_to_config['active_group'] = 'en.denis909.spb.ru';
$assign_to_config['language'] = 'en';
$assign_to_config['sess_cookie_name'] = 'en';
chdir('..');
require('index.php');
- В application/config/database.php в конце файла дописать:
$config = & get_config();
if (empty($config['active_group']) == FALSE)
{
$active_group = $config['active_group'];
}
- Основной .htaccess должен быть примерно такой:
AddDefaultCharset UTF-8
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Дополнительный плюс этого метода в том, что css, js, и картинки загружаются из основной директории сайта, но можно их записать в папку /en/, и тогда сервер будет отдавать локализованные версии файлов.
23.06.2012