2010-07-20 2 views
2

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

Я обеспокоен тем, что мне нужен URL-адрес, который будет отображаться на выбранном языке. Я объясниться с примером:

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

При выборе испанского языка языка, я хотел бы, чтобы URL, чтобы показать, как www.domain.com/coches/mostrar_coches

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

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

Есть ли лучше/проще способ достижения этой цели?

Спасибо!

ответ

0

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

+0

, имеющий запись в routes.php для каждой страницы, меня отталкивает, но я полагаю, что это единственный способ сделать это. Codeigniter должен знать, что вы хотите перевести на страницу имен, и в этой ситуации я не могу использовать регулярное выражение. – yinyang78

0

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

+0

Я удивлен вашим ответом. Я не гуру SEO, но я много раз читал, что ключевое слово в вашем URL-адресе является одним из наиболее важных моментов для рассмотрения. Вот почему я хочу «перевести» URL. – yinyang78

+0

Преимущества SEO будут существенными при правильных обстоятельствах. Мысль должна быть приложена к ней. – stef

+0

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

2

Я построил 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 также, и это был единственный способ, я надеюсь, это поможет кому-то ,

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

Смежные вопросы