Локализация Есть решение

Добрый день!
Помогите, пожалуйста, с локализацией. Хочу на сайте www.troyka-import.com сделать вариант на английском.
Планирую сделать английскую локализацию в www.troyka-import.com/en/. Как сделать в английской локализации меню на английском?

Возможно ли реализовать это установкой второго сайта по адресу www.troyka-import.com/en/ во фронтэнде www.troyka-import.com?
Спасибо

8 ответов

  • 2
    Владимир Тупоршин-мл. Webasyst 5 сентября 2013 08:56 # Решение
    Лучше всего для этой задачи создать новое поселение приложения «Сайт» по адресу /en/*
    Тогда вы сможете редактировать оба сайта в разделе «Страницы» приложения «Сайт»: страницы будут сгруппированы по отдельным поселениям /* и /en/*

    Что касается меню, то самым простым вариантом будет выводить название в зависимости, скажем, от локали пользователя: <li><a href="...ссылка">{if $wa->locale() == 'ru_RU'}Направления деятельности{else}What we do{/if}</a></li>
    В настройках каждого поселения в таком варианте реализации нужно будет установить локаль явно: /* -> русская, /en/* — английская
  • 1
    vc4.ru Партнер-разработчик 5 сентября 2013 09:33 #
    Владимир, я правильно понимаю, что меню будет генериться не автоматически и его необходимо прописать в ручную?
    • +1
      Это зависит от того, как у вас реализовано меню.

      Предложенной мной вариант — для случая, когда меню жестко опубликовано в шаблонах дизайна.

      Если же у вас меню строится из массива страниц данного поселения, то и вообще никаких if-ов не надо — названия страниц будут показаны такими, как вы их ввели в «Сайте».
  • 1
    vc4.ru Партнер-разработчик 5 сентября 2013 09:49 #
    Мне вообще нужно, чтобы в поселении en/* было свое меню, которое будет вести на страницы с английским контентом.
    В варианте, что был вами предложен, мы можем вывести навигацию на английском, но она все равно будет вести на страницы на русском.
    • +1
      Если вы будете использовать конструкцию вывода меню страниц из дефолтноей темы дизайна:

      {wa_print_tree tree=$wa->site->pages() attrs = 'id="page-list"' class="menu-v" elem ='<a href=":url">:name</a>' selected=$page.id}

      или же если вы выводите страницы примерно как
      {$pages = $wa->site->pages()}
      {foreach $pages as $page}
      <li><a href="">...</li>
      {/foreach}

      То вы увидите в поселении /en/* только те страницы, которые находятся в поселении /en/* (приложение «Сайт» отдает только те страницы, которые находятся в текущем поселении).
  • 1
    5 сентября 2013 13:54 #
    Владимир, большое спасибо!
    Ваши советы помогли полностью решить задачу.
  • 1
    Магарам Агацарский 2 октября 2013 03:29 #
    А как на счет локализации магазина, непосредственно самих товаров? Какой оптимальный способ их выводить на анг. языке?
    • 0
      Магарам Агацарский Магарам Агацарский 2 октября 2013 03:31 #
      Делать 2 поселения "Магазина" с одинаковыми товарами - не очень удобно, т.к. при редактировании цен товара или количества на складе, придется менять на 2-х поселениях. А хотелось бы, чтобы изменения товара на русском языке (всех полей, кроме тех, что на русском яз.) синхронно изменяли те же параметры товара на анг. языке, а не двойную работу делать с редактированием.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите