Многоязычность в FuelCMS

1

Я пытаюсь создать многоязычный сайт в codeigniter с помощью FuelCMS. Я выяснил некоторые вещи:

Я добавил многоязычный вариант в 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:

  • около
  • Продукты /producta
  • Продукты /productb

И другой язык:

п:

  • overons
  • Продукты /producta
  • Продукты /productb

Он показывает правильную навигацию. Но выбранный язык не "импортируется" в URL. Так что он исчезает всегда.

Пример. Если я на странице about (английский по умолчанию), и я меняю язык на nl. Он по-прежнему показывает страницу, но с правильной навигацией на голландском языке. Поэтому у меня есть некоторые вопросы.

  • (РЕШАЕТ ЭТУ ЧАСТЬ) Есть ли возможность всегда иметь язык в URL-адресе? Я посмотрел в классе меню (http://docs.getfuelcms.com/libraries/menu), но не смог его добавить.

  • Могу ли я иметь 1 страницу в CMS, которая имеет в ней многоязычность? Если я изменю язык, то он покажет правильный голландский текст?

Что-то вроде

{language=en}About the company{/language}
{language=nl}Over het bedrijf{/language}
  • Или есть другое решение? Если я изменю язык, возможно, всегда перейдите на домашнюю страницу этого языка?
Теги:
codeigniter
multilanguage
fuelcms

1 ответ

0
Лучший ответ

Мне удалось решить одну часть моей проблемы.

Я добавил страницу "overons" (параметр языка для NL, переопределение местоположения). Затем я вручную добавил навигацию для этой страницы с параметром местоположения nl/overons. Это работает.

Только если я изменю язык, пока я на английской странице, он остается на английском. Поэтому я не могу связать страницы с переведенными страницами.

Кажется, это возможно, если я добавлю их вручную в папку просмотра. Но я не знаю, как это исправить в CMS.

Просмотр страниц

Кроме того, если ваши страницы используют представления и есть языковое значение, заданное пользователем с использованием Fuel_language, сначала будет искать файл вида в папке views/language/{language}/, и если он его не найдет, он по умолчанию будет только папка views.

РЕДАКТИРОВАТЬ:

Я использовал другой метод для его решения. Только не импортировано в CMS.

Я создал в представлениях следующую структуру:

язык /

язык/фр/

язык/фр/home.php

язык/фр/company.php

-

язык/нл/

язык/нл /home.php

язык/нл /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é';

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню