We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26770
    • 74 Posts
    Всем доброго времени суток!

    Вот перечитал то что было по сабжевой теме:
    http://modxcms.com/forums/index.php/topic,16866.0.html
    http://modxcms.com/forums/index.php?topic=6134.5
    http://modxcms.com/forums/index.php/topic,18791.0.html
    http://modxcms.com/forums/index.php/topic,9984.0.html
    http://wiki.modxcms.com/index.php/Make_Multi_Lingual_Site

    Остановился на последней ссылке и сделал все как было в Wiki
    1. Создал Redirect - в коде ничего не менял smiley
    2. --//-- Languages изменил следующее

    $langnames = array(
    "ru" => "Russian",
    "ua" => "Ukrainian"
    );

    3. Создал TV languages поля заполним следующим образом:
    Имя параметра: languages
    Заголовок: Языки
    Описание: Выбор языка
    Тип ввода: Text
    все остальное оставил без изменений только применил данный TV под свои шаблоны.

    4. Выкачал иконки и вставил их в рекомендуемую директорию assets/images/ru.gif и assets/images/ua.gif
    5. Поместил в свои темплейты код <td>[[Languages]]</td> (Верстаю таблицами).
    5. Создал два дока в дереве сайта - Russian (имеет ID 62) и Ukrainian (имеет ID 62)

    И тут начались вопросы...

    а) куда имеено вставить Redirect?id=`док на который сделать перенаправление` и когда его вставлять? Пробовал просто вставить при редактировании дока через TinyMCE но он как и должен вставился контентом...

    б) почему-то не появились иконки флагов стран sad при просмотре исходного кода страницы просто получаю пустую ячейку <td></td>

    Извините за тупые вопросы если такие таки появились... MODx`ом начал заниматься недавно...

    После постижения сего планирую написать мануал с картинками для таких же начинающих как и я, что бы не возникало таких по сути детских вопросов smiley

    Всем за ответ заранее благодарен!
      • 22301
      • 1,084 Posts
      Привет, Seruy.

      У каждого двуязычного документа заполни TV languages (ты, кста, "описАлся") следующим тесктом:
      для доков на украинском
      ru=62
      , для русскоязычных доков
      ua=63

      Таким образом ты укажешь сниппету Languages, что есть переведённая страница.
      [[Redirect?id=62]]
      -- вот так вот редирект вставляешь в любом месте на индексной странице. Вставлять надо в режиме HTML. Всегда все вызовы сниппетов вставляй в режиме HTML. На всякий случай, когда будешь тренироваться, отключи визивик вообще. Я бы вообще создал отдельный шаблон для входной страницы и вызов редиректа воткнул бы непосредственно туда.
        [img]http://jurist-info.ru/pic/rrr.jpg[/img]

        Безжалостный пияр!
        Artima -- неуч!
        Осторожно: преступная локализация -- modx-cms.ru
        Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

        Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
        • 22301
        • 1,084 Posts
        примечание

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

        если всё заработает, достаточно будет, например, при настройке TV в поле по умолчанию вставить @INHERIT ua=63, и языковой код указать только для главной русскоязычной страницы... но не уверен, надо проверить.
          [img]http://jurist-info.ru/pic/rrr.jpg[/img]

          Безжалостный пияр!
          Artima -- неуч!
          Осторожно: преступная локализация -- modx-cms.ru
          Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

          Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
          • 26770
          • 74 Posts
          У каждого двуязычного документа заполни TV languages

          как? Я из документации никак не могу понять как они задаются sad Это где-то менюшка должна появится? Или
          просто руками [*ru=62*]

          тогда я так понимаю в каждой странице должен быть код:
          в indexru
          [*ua=63*][[Redirect?id=63]]

          а в indexua
          [*ua=62*][[Redirect?id=62]]


          или Redirect пишется только в одной странице, а в другой нет?

          И кстати у меня как не отображались иконки флагов так и не отображаются sad Где я мог напартачить?
            • 22301
            • 1,084 Posts
            нет, всё не так.

            если ты завёл TV’арь languages и привязал его к шаблонам, значит, в админке! при редактировании документа должно появиться дополнительное текстовое поле, слева от которого будет написано languages.

            Сам снипет Languages работает достаточно примитивно: его задача вывести значки-ссылки на иноязычные части сайта, тупо в корень! Но, ему надо передать id документов, на которые должны быть ссылки с флажков. Вот для этого и нужен TV languages, здесь ты указываешь, допустим, ru=62. Этот TV’арь не надо нигде выводить на странице, он служит только для того, чтобы сохранить параметр. И всё, [[Languages]] получает команду вывести флажок ru с ссылкой на документ с id=62.

            Понятно, что у всех документов на украинском языке должна быть сссылка на начало русскоязычной части, поэтому у всех документов TV languages должен быть заполнен как ru=62. В русскоязычной с точностью до наоборот.

            Теперь про редирект. Если без заморочек, без вской там обработки куков и т.д., то решаешь для себя сам, какой язык основной. Понятно, что если домен ua, то украинский. Поэтому надо сразу же с индексной страницы сделать перенаправление на ураинскую часть, вставив туда сниппет [[Redirect?id=63]], где id=63 -- это айдишник главной украинской страницы...

            Сделай всё так, как я описал, а я потом расскажу, как доработать TV’ари, а то чувствую, что перегрузка у тебя наступает.
              [img]http://jurist-info.ru/pic/rrr.jpg[/img]

              Безжалостный пияр!
              Artima -- неуч!
              Осторожно: преступная локализация -- modx-cms.ru
              Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

              Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
              • 26770
              • 74 Posts
              если ты завёл TV’арь languages и привязал его к шаблонам, значит, в админке! при редактировании документа должно появиться дополнительное текстовое поле, слева от которого будет написано languages.
              Есть, появилось под редактором TinyMCE дополнительное поле "Дополнительные параметры"
              Напротив Язык: пишу для русской страницы ua=63 и соответственно перехожу на русскую страницу и пишу в ней напротив язык: ua=62

              Кстати при последующем редактировании страницы параметр не остается... поле пустое (это так и надо? или его постоянно прописывать придется?)

              Сам снипет Languages работает достаточно примитивно: его задача вывести значки-ссылки на иноязычные части сайта, тупо в корень! Но, ему надо передать id документов, на которые должны быть ссылки с флажков. Вот для этого и нужен TV languages, здесь ты указываешь, допустим, ru=62. Этот TV’арь не надо нигде выводить на странице, он служит только для того, чтобы сохранить параметр. И всё, [[Languages]] получает команду вывести флажок ru с ссылкой на документ с id=62.
              Есть, там где япланирую выводить значки а именно
              <td>[[Languages]]</td>

              Но ничего не выводится sad

              Понятно, что у всех документов на украинском языке должна быть сссылка на начало русскоязычной части, поэтому у всех документов TV languages должен быть заполнен как ru=62. В русскоязычной с точностью до наоборот.
              Тут я так понял, говоришь о тому, что со всех страниц в любом варианте должны идти все на первуб индексную страницу... Я так понял по технологии можно же сделать, что бы переходить можно было сразу на ту страницу на которой находишься только с другим языком...

              Теперь про редирект. Если без заморочек, без вской там обработки куков и т.д., то решаешь для себя сам, какой язык основной. Понятно, что если домен ua, то украинский. Поэтому надо сразу же с индексной страницы сделать перенаправление на ураинскую часть, вставив туда сниппет [[Redirect?id=63]], где id=63 -- это айдишник главной украинской страницы...
              Я вот только не понимаю зачем тогда он вообще, если напрмер при заходе на сайт ставишь в админке главная страница - ukr и все...

              чувствую, что перегрузка у тебя наступает.

              Приболел я еще до всего этого потому и туго соображаю sad
                • 26770
                • 74 Posts
                Ах, да говорят, что нужно какую-то таблицу создавать... я ничего не создавал, так как на вики ничего об этом не вычитал...

                И еще, в адресной строке какие-то переменные через & должны же передаваться, а то я не вижу ничего sad
                  • 26770
                  • 74 Posts
                  Я тут начал вдумываться в то что у меня не передаются переменные sad
                  и срабатывает именно это
                   if (strlen($output))
                    {
                      $output .= ' ';
                    }

                  Может реально нужно еще и таблицу какую-то создавать, что бы эти переменные таки куда-то записывались?
                    • 22301
                    • 1,084 Posts
                    В разнобой...

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

                    Насчёт редиректа ты слегка не прав, весь смысл в том, что ты под каждый язык создаёшь ветвь, для каждого языкового раздела у тебя будет своё меню, которое ты уже будешь строить не от стартовой страницы. так что тебе важно сразу развязаться с входной страницей, чтобы иерархически разделы были равноправны.

                    и наконец.. ты сам писал:

                    3. Создал TV languages поля заполним следующим образом:
                    Имя параметра: languages
                    Заголовок: Языки
                    Описание: Выбор языка
                    Тип ввода: Text
                    все остальное оставил без изменений только применил данный TV под свои шаблоны.

                    У тебя должно появиться поле "Языки". Кстати, после того, как ты туда что-то вбил, страницу необходимо сохранить!
                      [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                      Безжалостный пияр!
                      Artima -- неуч!
                      Осторожно: преступная локализация -- modx-cms.ru
                      Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                      Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
                      • 22301
                      • 1,084 Posts
                      никаких таблиц создавать не надо, ничего передавать в адресной строке тоже, это из "другой оперы".
                        [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                        Безжалостный пияр!
                        Artima -- неуч!
                        Осторожно: преступная локализация -- modx-cms.ru
                        Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                        Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun