Codeigniter i18n-在URL中隐藏default_controller语言段


Codeigniter i18n - Hide default_controller language Segment in URL

除了一个小问题:之外,我的i18n库的一切都很完美

我想制作一个主页来选择一种带有链接的语言(指向:en,fr,bg,…):

示例:<a href="www.mysite.com/bg">BG</a>, <a href="www.mysite.com/en">EN</a>

但我的default_uri始终是一个示例:/bg并打开:www.mysite.com/bg

我只想在那里加载普通的URL:www.mysite.com,加载我的START.HP控制器(无论名称是什么,但不能是www.mysite.com/START),然后用链接重定向到某个地方(bg/,en/,fr/)

似乎没有那么难,但不知道如何修复

在MY_Lang.php中:

// languages
    var $languages = array(
        'bg' => 'bulgarian',
        'en' => 'english',
        'fr' => 'french'
    );
    // special URIs (not localized)
    var $special = array (
        "admin", "start"
    );
    // where to redirect if no language in URI
    var $default_uri = '';

在我的routes.php:

$route['default_controller'] = "start";
$route['404_override'] = '';
// URI like '/en/about' -> use controller 'about'
//$route['('w{2})/(.*)'] = '$2';
//$route['('w{2})'] = $route['default_controller'];
$route['^(bulgarian|english|french)/(.+)$'] = "$2";
// '/en', '/de', '/fr' and '/nl' URIs -> use default controller
$route['^(bulgarian|english|french)$'] = $route['default_controller'];

我也遇到过类似的情况。对我来说,解决方案是:

https://github.com/oleurud/Codeigniter_Multi-language_Package