我经常搜索并发现有关CI的多语言网址的更多主题。但是大多数答案已经不再与CI维基链接,或者没有解释我想要的东西。
我的默认语言是非英语,但我想要用英语命名的控制器和方法。我也不希望语言段出现在我的网址中(至少不是默认语言)。
例如:
两种语言的链接都应该调用Blog :: item()
生成uris应该类似 - site_url('blog/item/123');
应该在用户语言中生成一个链接:
用户语言最好在cookie或会话中设置。
有没有办法实现这个目标?
使用最新的CI 2.2.0
我相信this solution for 2.1应该有用,但我无法弄清楚URI应该如何翻译(在哪里放置翻译)以及如何从URI中删除语言部分。
答案 0 :(得分:0)
可能是我错了,但我的理解是你试图使用site_url
中使用相同单词的活动语言生成不同的网址。如果这是正确的,您可以使用语言助手简单地翻译您的单词。
site_url(lang('blog_item_url') . '123);
在你的英文语言文件中。
$lang['blog_item_url'] = "blog/item/";
在你的其他langugae
$lang['blog_item_url'] = "blogas/irasas/";
在配置中的 route.php 中定义路径。
$route['blog/item/(:num)'] = "blog/item/$1";
$route['blogas/irasas/(:num)'] = "blog/item/$1";