codeigniter CI-Smarty +国际化(i18n)用于CodeIgniter 2.x.

时间:2014-03-19 03:24:47

标签: codeigniter internationalization smarty multilingual

我正在开发一个需要国际化(i18n)支持的Codeigniter应用程序。

我正在使用CI-Smarty(Smarty 3)作为模板解决方案,Internationalization (i18n) for CodeIgniter 2.x,但是我无法获得使用CI Smarty的多语言支持,我试图更改代码,尝试添加路线,同时做两个但没有成功。

我的网站控制器:

public function index() {
    $this->news();
} #index

public function news() {
    $xml = $this->pages->news();
    $data['news'] = $xml->xpath('//item');
    $data['date'] = $xml->xpath('//item/pubDate');
    $data['alphabet'] = $this->pages->alphabet();
    $data['numbers'] = $this->pages->numbers();
    $data['pagetitle'] = $this->config->item('news_pagetitle');
    $data['description'] = $this->config->item('news_description');
    $data['keywords'] = $this->config->item('news_keywords');
    $this->pages->page('news', $data);
} #news

我的网页型号:

function page($page, $data = NULL) {
    $data['base'] = base_url();
    $data['current'] = current_url();
    $data['page'] = $page;
    $data['title'] = $this->config->item('title');
    $data['tagline'] = $this->config->item('tagline');
    $data['datetime'] = date('l, F d, Y');
    $data['dateshow'] = date('Y-n-j');
    $this->parser->parse('header', $data);
    $this->parser->parse($page, $data);
    $this->parser->parse('footer', $data);
} #page

我的routes.php:

$route['^(en|pt)/(.+)$'] = "$2";
// '/en', '/de', '/fr' and '/nl' URIs -> use default controller
$route['^(en|pt)$'] = $route['default_controller'];

// Prettify the url
$route['default_controller'] = 'site';
$route['404_override'] = 'site/e404';
$route['scaffolding_trigger']= "";

$route['(:any)'] = 'site/$1';
$route['guide/(:num)'] = 'guide/$1';
$route['shows/(:any)'] = 'shows/$1';
$route['shows/(:any)/(:num)'] = 'shows/$1/cat/$2';
$route['title/(:num)/(:any)'] = 'title/$1';

当我使用www.example.com/en/请求索引页面时,它会显示新闻信息,但是如果我使用www.example.com/en/news请求页面新闻则不会加载新闻,而是加载404页面,并对所有其他页面执行相同的操作。

该应用程序正常工作,没有国际化(i18n)支持,加载所有页面,包括新闻页面。

国际化(i18n)支持也很好,我在没有CI-Smarty的版本中进行了测试。

我需要将此应用翻译成多种语言,因此我需要为Codeigniter找到一种方法,让CI-Smarty支持它。有吗?感谢所有人如何提供帮助。

0 个答案:

没有答案