Мультиязычный сайт в Codeigniter - PullRequest
2 голосов
/ 20 июля 2010

Я начинаю новый проект сайта в Codeigniter.Мне нужно, чтобы этот сайт был многоязычным, где английский будет языком по умолчанию.Я знаю, как работает языковой класс в codeigniter, и я уже использую его.

Меня беспокоит то, что мне нужно, чтобы URL отображался на выбранном языке.Я объясню на примере:

Когда выбран язык Английский , у меня есть этот URL: www.domain.com / cars / list_cars где cars - контроллер, а list_cars - метод, отвечающий за вызов соответствующего представления.

Когда выбран язык Spanish , я хотел быURL для показа в виде www.domain.com / coches / mostrar_coches

Каков наилучший способ добиться этого?Единственный способ, о котором я могу думать, - это изменить rout.php на что-то вроде:

$route['cars/list_cars'] = 'coches/mostrar_coches';

Есть ли какой-нибудь лучший / более простой способ добиться этого?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 22 ноября 2011

Я создал concebe.com с переведенными CodeIgniter и Url.Моим решением было перенаправить все запросы только на один контроллер, который отвечает за вызов других функций в зависимости от перевода.см. ниже:

function dinamic($js,$page,$item=NULL,$id=NULL)
{

    switch ($page)
    {
        case $this->lang->line('products'):
            $page='products';
        break;
        case $this->lang->line('about_us'):
            $page='about_us';
        break;
        ...
    }

    //switch page
    switch ($page)
    {
        case 'contact_us':
            $this->template->render($js,$this->_contact_us($js));
            return;
        break;
    }

Это не умное решение, и оно вам тоже не поможет, потому что сложнее, но я должен дифференцировать вызов js, и это был единственный способ, я надеюсьпомогите кому-нибудь.

Ограничения: при переключении языка вы теряете страницу, где бы вы были.

0 голосов
/ 20 июля 2010

Я сделал то, что вы предлагаете, используя маршруты.php для ваших локализованных сегментов URL.У меня отлично работает, но для каждой страницы вам нужна новая запись в вашем файле маршрутов.

0 голосов
/ 20 июля 2010

Перевод названия вашего контроллера и метода - головная боль, которая должна произойти.Преимущества для вашего SEO настолько минимальны, что делать его не стоит, просто убедитесь, что у вас хороший контент.

...