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

时间:2013-12-17 13:25:00

标签: php .htaccess codeigniter internationalization

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

我想制作1个主页来选择带链接的语言(导致: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

我只想在那里加载普通网址: www.mysite.com ,加载我的START.PHP控制器(无论名称是什么,但不是www.mysite.com/开始)之后用链接重定向到某个地方(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'];

1 个答案:

答案 0 :(得分:0)

我有类似的情况。对我来说,解决方案就是:

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