We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 609
    • 36 Posts
    Сложностей, в принципе, нету. Однако, кроме контента, на сайте есть меню, формы обратной связи и много других вещей, кто и как решали эти проблемы?

    Может у кого наработки остались?

    То, же меню, сам попробую написать... а, может у кого получше и универсальнее выйдет.
      • 897
      • 1,620 Posts
      я делал, все весьма просто. единственная вещь, это переключать страницы с одного языка на другой, я свой сниппет писал который язык подставляет, а так на ЧПУ все красиво работало

        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

        Не используйте Revo для "просто сайтов". Используйте Evo

        Who can defeat the Russian bear?
        • 33114
        • 518 Posts
        я делал два подсайта (на два языка) в папках. далее все просто-напросто умножалось на два: два шаблона, два сниппета (например отвечающих за меню) и тд. смена языка при работающих дружественных url делается элементарно.

        PS. кстати smiley за весь свой опыт я заметил - вовсе необязательно стремиться делать так что, допустим, я нахожусь на странице "Контакты", нажимаю eng и перехожу на анг. версию страницы "Контакты". это абсолютно бесполезная вещь - англичанин, оказавшийся на русских Контактах, нажав на eng не оценит того, что попадет на англоязычные Контакты. достаточно просто направить его на главную страницу анг. сайта.
          http://modx.ru - российская поддержка MODx
          http://newscup.ru - экспериментальный проект
          http://yentsun.com - персональный сайт
          • 609
          • 36 Posts
          Зачем делать 2 шаблона? Ведь данные и так меняются, при переходе в другую папку...
            • 897
            • 1,620 Posts
            например в шапке у вас слоган на разных языках может быть
              "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

              Не используйте Revo для "просто сайтов". Используйте Evo

              Who can defeat the Russian bear?
              • 33114
              • 518 Posts
              конечно, графические элементы с текстом на другом языке и тд.
                http://modx.ru - российская поддержка MODx
                http://newscup.ru - экспериментальный проект
                http://yentsun.com - персональный сайт
                • 31113
                • 45 Posts
                Да, Янсон прав, встроенной поддержки многоязычности в MODx нет, однако, эта система такова, что построить многоязычный сайт довольно просто. И никаких универсальных способов даже не надо.

                Однако, может кому пригодится одна фишка... Суть в следующем:
                1) Многоязычный сайт, в котором, в соответствующей папке лежит соответствующий язык
                2) Создаем дополнительный TV с именем LANG для выбора языка:
                Русский==ru||English==en...
                И ставим значение по-умолчанию @INHERIT ru
                3) Выбираем в каждой папке соответствующие значения языков

                Из этого получаем, что все документы внутри них автоматически будут знать имя языка

                Например, в основном шаблоне можно прописать: {{slogan_[*LANG*]}}
                И хранить несколько чанков {{slogan_ru}}, {{slogan_en}} и т.д., что решает проблему создания нескольких шаблонов. Этот же [*LANG*] можно использовать и при вызове снипетов (наверно...)
                  • 27235
                  • 3 Posts
                  а как на счет того чтобы сделать полную зеркалку? и как вызвать псевдоним страницы?
                    • 16239
                    • 49 Posts
                    Quote from: ur001 at Aug 02, 2006, 03:50 AM

                    Например, в основном шаблоне можно прописать: {{slogan_[*LANG*]}}
                    И хранить несколько чанков {{slogan_ru}}, {{slogan_en}} и т.д., что решает проблему создания нескольких шаблонов. Этот же [*LANG*] можно использовать и при вызове снипетов (наверно...)

                    Добрый день!
                    Кто пробовал эту конструкцию, когда имя чанка задается через TV?
                    У мну она не работает, у кого-то работала?
                      • 23398
                      • 10 Posts
                      UPD: копался по форуму, нашел более элегантное решение (http://modxcms.com/forums/index.php/topic,21754.msg134490.html#msg134490), чем то о котором писал ниже smiley


                      К сожалению, данную возможность обещают только в версии 0.9.7 (с нетерпением ждём).

                      А пока я решаю эту проблему так:

                      Убираем из этой цепочки TV, так как значение языка мы можем брать из названия корневой директории, в которой находится документ:
                      site
                      + ru
                      + en
                      + lv


                      В моём случае мы вызываем нужный чанк с именем вида chunk_lang (например, slogan_ru) с помощью сниппета с параметром [!lang? &chnk=`ChunkName` !]. Тогда при вызове снипета из директории ru нам будет возвращено значение ChunkName_ru.

                      <?php
                      /* UltimateParent 2.0 beta by Jason Coward <[email protected]> */
                      $top= isset ($top) && intval($top) ? $top : 0;
                      $id= isset ($id) && intval($id) ? intval($id) : $modx->documentIdentifier;
                      $topLevel= isset ($topLevel) && intval($topLevel) ? intval($topLevel) : 0;
                      if ($id && $id != $top) {
                          $pid= $id;
                          if (!$topLevel || count($modx->getParentIds($id)) >= $topLevel) {
                              while ($parentIds= $modx->getParentIds($id, 1)) {
                                  $pid= array_pop($parentIds);
                                  if ($pid == $top) {
                                      break;
                                  }
                                  $id= $pid;
                                  if ($topLevel && count($modx->getParentIds($id)) < $topLevel) {
                                      break;
                                  }
                              }
                          }
                      }
                      /* END of UltimateParent */
                      
                      $chnk= isset ($chnk) ? $chnk : '[*alias*]';
                      $docInfo = $modx->getDocument($id,'id,alias,pagetitle,menutitle,published,deleted,parent,hidemenu,description,longtitle,introtext');
                      $docAlias = $docInfo['alias'];
                      
                      echo '{{' . $chnk . '_' . $docAlias . '}}';
                      ?>



                      В связи с этим вопрос по производительности: стоит ли переписывать весь снипет, или же вызвать его через $modx->runSnippet(’snippetName’); ?

                      У данного метода нашлась ошибка (может знающие люди помогут): при вызове чанка этим методом, Wayfinder (да и предположительно другие сниппеты), вызывающийся из этого чанка не запускается sad

                      Также, наверное, можно воспользоваться placeholder’ ами.

                      Если необходимо переключение между языками, читайте в английской Вики http://wiki.modxcms.com/index.php/How_to_make_Multi_Lingual_Site