Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url Codeigniter中的多语言站点_Url_Codeigniter_Multilingual - Fatal编程技术网

Url Codeigniter中的多语言站点

Url Codeigniter中的多语言站点,url,codeigniter,multilingual,Url,Codeigniter,Multilingual,我正在Codeigniter中启动一个新的站点项目。我需要这个网站是多语言,其中英语将是默认语言。 我知道codeigniter中的语言类是如何工作的,我已经在使用它了 我担心的是,我需要以所选语言显示URL。我将用一个例子来解释我自己: 当选择英语时,我有以下URL: www.domain.com/cars/list_cars 其中cars是控制器,list_cars是负责调用适当视图的方法 当选择西班牙语时,我希望URL显示为 www.domain.com/coches/mostrar_co

我正在Codeigniter中启动一个新的站点项目。我需要这个网站是多语言,其中英语将是默认语言。 我知道codeigniter中的语言类是如何工作的,我已经在使用它了

我担心的是,我需要以所选语言显示URL。我将用一个例子来解释我自己:

当选择英语时,我有以下URL: www.domain.com/cars/list_cars 其中cars是控制器,list_cars是负责调用适当视图的方法

当选择西班牙语时,我希望URL显示为 www.domain.com/coches/mostrar_coches

实现这一目标的最佳方式是什么?我能想到的唯一方法是使用以下内容更改routes.php: $route['cars/list_cars'] = 'coches/mostrar_coches'; $route['cars/list_cars']=“coches/mostrar_coches”

有没有更好/更简单的方法来实现这一点


谢谢

翻译您的控制器和方法名称是一件即将发生的令人头痛的事情。搜索引擎优化的好处是如此之小,以至于它真的不值得做,只要确保你有好的内容。

我按照你的建议做了,使用routes.php作为你的本地化url段。对我来说效果很好,但对于每个页面,您确实需要在路由文件中添加一个新条目。

我使用CodeIgniter和Url翻译构建了。我的解决方案是只将所有请求重定向到一个控制器,该控制器负责根据翻译调用其他函数。见下文:

function dinamic($js,$page,$item=NULL,$id=NULL)
{

    switch ($page)
    {
        case $this->lang->line('products'):
            $page='products';
        break;
        case $this->lang->line('about_us'):
            $page='about_us';
        break;
        ...
    }

    //switch page
    switch ($page)
    {
        case 'contact_us':
            $this->template->render($js,$this->_contact_us($js));
            return;
        break;
    }
这不是一个聪明的解决方案,也帮不了你,因为这很难,但我也必须区分js调用,这是唯一的方法,我希望这能帮助别人


约束:当切换语言时,您会丢失您所在的页面。

在routes.php中为每个页面设置一个条目让我感到不舒服,但我认为这是唯一的方法。Codeigniter需要知道您想将名称页翻译成什么,在这种情况下,我不能使用regexp。我对您的答案感到惊讶。我不是SEO大师,但是我已经读过很多次,在你的URL里有关键词是最重要的考虑因素之一。这就是我想“翻译”URL的原因。在适当的情况下,SEO的好处将是巨大的。如果你想手动翻译每一个URL,这样你就可以进行轻微的搜索引擎优化,我宁愿确保我的内容适合每种语言。