1

我正在尝试使用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:

  • 关于
  • 产品/产品
  • 产品/产品b

还有另一种语言:

荷兰语:

  • 过场
  • 产品/产品
  • 产品/产品b

它显示了正确的导航。但所选语言并未在 url 中“导入”。所以它总是消失。

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

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

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

就像是

{language=en}About the company{/language}
{language=nl}Over het bedrijf{/language}
  • 还是有其他解决方案?如果我改变语言,也许总是去那个语言的主页?
4

1 回答 1

0

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

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

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

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

查看页面

此外,如果您的页面正在使用视图,并且用户使用 Fuel_language 设置了语言值,它将首先在 views/language/{language}/ 文件夹中查找视图文件,如果找不到,它将默认为仅视图文件夹。

编辑:

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

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

语言/

语言/法语/

语言/fr/home.php

语言/fr/company.php

-

语言/nl/

语言/nl/home.php

语言/nl/company.php

全局视图地图中,我添加了 home & 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é';

}
于 2015-06-03T10:58:03.260 回答