Url Codeigniter中的多语言站点
我正在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” 有没有更好/更简单的方法来实现这一点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
谢谢 翻译您的控制器和方法名称是一件即将发生的令人头痛的事情。搜索引擎优化的好处是如此之小,以至于它真的不值得做,只要确保你有好的内容。我按照你的建议做了,使用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,这样你就可以进行轻微的搜索引擎优化,我宁愿确保我的内容适合每种语言。