FuelCMS中的多语言

时间:2015-06-03 10:00:33

标签: php codeigniter multilingual fuelcms

我试图使用fuelCMS在codeigniter中创建一个多语言网站。我找到了一些东西:

我在MY_fuel.php中添加了多语言选项

$config['language_mode'] = 'segment';
$config['settings']['languages'] =  array(
                        'type' => 'keyval',
                        'fields' => array(
                                'key' => array('ignore_representative' => TRUE),
                                'label' => array('ignore_representative' => TRUE),
                            ),
                        'class' => 'repeatable',
                        'repeatable' => TRUE,
                        'ignore_representative' => TRUE
                    );

我为不同的语言设置了导航。

<?php echo fuel_nav(array('container_tag_id' => 'masterMenu', 'item_id_prefix' => 'menu-item','subcontainer_tag_class' => array("subMenu"),'language' => $this->fuel->language->selected())); ?>

导航如下:

  

默认en:

     
      
  •   
  • 产品/产品A
  •   
  • 产品/产品B
  •   

另一种语言:

  

NL:

     
      
  • overons
  •   
  • producten /产品A
  •   
  • producten /产品B
  •   

显示正确的导航。但所选择的语言并没有被导入&#34;在网址中。所以它总是消失。

实施例: 如果我在关于页面(英文默认)并且我将语言更改为nl。它仍然显示关于页面,但具有正确的荷兰导航。所以我对此有一些疑问。

  • (已解决此部分)是否有可能始终在网址中使用该语言?我查看了菜单类(http://docs.getfuelcms.com/libraries/menu),但无法添加。

  • 我可以在CMS中有1个具有多语言的页面吗?如果我改变语言,它会显示正确的荷兰文本吗?

这样的东西
{language=en}About the company{/language}
{language=nl}Over het bedrijf{/language}
  • 还是有其他解决方案吗?如果我改变语言,可能总是去那个语言的主页?

1 个答案:

答案 0 :(得分:0)

我设法解决了问题的一部分。

我添加了一个页面“overons”(NL的语言参数,位置overons) 然后我手动添加了此页面的导航,其中包含位置参数nl / overons。这很有效。

只有当我在英文页面上更改语言时,才会保留英语。所以我无法将页面链接到翻译的页面。

如果我在viewfolder中手动添加它们似乎是可能的。但我不知道如何在CMS中解决这个问题。

  

查看页面

     

此外,如果您的网页使用的是视图且有语言   用户使用Fuel_language设置的值,它首先会查找一个   在views / language / {language} /文件夹中查看文件,如果没有   找到它,它将默认为只有views文件夹。

编辑:

我用另一种方法来解决它。尚未导入CMS。

我在视图中创建了以下结构

  

语言/

     

语言/ FR /

     

语言/ FR / home.php

     

语言/ FR / company.php

-

  

语言/ NL /

     

语言/ NL / home.php

     

语言/ NL / company.php

全局视图中,我添加了home&amp; company.php

对于正确的菜单,我有这个代码 的视图/ _variables / nav.php

if($this->fuel->language->selected() == "nl"){

$nav['home'] = 'Home';
$nav['contact'] = 'Contact';
$nav['company'] = 'Over ons';

}
if($this->fuel->language->selected() == "en"){

    $nav['home'] = 'Home';
    $nav['contact'] = 'Contact';
    $nav['company'] = 'About us';

}

if($this->fuel->language->selected() == "fr"){

    $nav['home'] = 'Accueil';
    $nav['contact'] = 'Contact';
    $nav['company'] = 'Société';

}