FuelCMS 中的多语言

Multi language in 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())); ?>

导航是这样的:

default en:

  • about
  • products/producta
  • products/productb

以及其他语言:

nl:

  • overons
  • producten/producta
  • producten/productb

它显示了正确的导航。但是选择的语言不是 url 中的 "imported"。所以它总是消失。

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

类似

{language=en}About the company{/language}
{language=nl}Over het bedrijf{/language}

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

我添加了一个页面 "overons"(NL 的语言参数,位置提示) 然后我使用位置参数 nl/overons 手动为该页面添加了导航。这行得通。

只有当我在英文页面上更改语言时,它才会保持英文。所以我不能 link 页面到翻译页面。

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

View Pages

Additionally, if your pages are using views and there is a language value set by the user using Fuel_language, it will first look for a view file in the views/language/{language}/ folder and if it doesn't find it, it will default to just the views folder.

编辑:

我已经用另一种方法解决了。只是还没有导入到 CMS。

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

language/

language/fr/

language/fr/home.php

language/fr/company.php

-

language/nl/

language/nl/home.php

language/nl/company.php

并且在全局视图地图中,我添加了主页&company.php

对于正确的菜单,我有这个代码 views/_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é';

}