Поддержка Проблемы и решения Мультиязычный сайт (блог)

  • Здравствуйте!

    Поднимаю, судя по комментам очень не определенную тему, касательно настройки мультиязычности сайтов или блогов на WP. На одном из проектов, столкнулся с задачей, для начала создания двух версий сайтов (англ. по умолчанию и рус. дополнительно). Все что требовалось, две ссылки для переключение языка. Сайт состоял всего из 6 главных страниц. Т.е. достаточно было перевести всего-лишь эти 6 страниц, меню, наименование топиков, разделов, переменных и кое каких стандартных записей в теме. Весь контент в тот же момент должен был быть общий и не нуждался в постоянном бы переводе или локализации. Т.е. при добавление комментариев или материала, все это хранилось в одной общей базе данных и было идентично доступно с нескольких языковых вариантов, но без требования переводов, перевод только того, что указал выше.

    1. Естественно пробовал изначально всемозвожные плагины локализации и переводов. Из всех, более менее оказался подходящим qTranslate, но все таки не подошел, т.к. много недочетов и нюансов.

    2. После пробовал к примеру создать несколько версий одной и той же темы, на разных языках, с возможностью переключения на сайте, через плагины switch. Это уже было более близко к тому, что хотелось бы видить, но думаю, Вы понимаете недостатки и глючность такого метода.

    3. К выше написанному, пришлось создавать интересную возможность новых версий wordpress как создание сети сайтов или же просто по старинке создание поддемонов. Но в том случае, сайты создаются абсолютно разные в виде поддоменов или префикса к общему домену (supersite.com/ru или ru.supersite.ru), с индивидуальной и разными базой материалов, что конечно же не надо.

    В общем, я пока в раздумьях, как же реализовать подобное. Как пример, хочется привести знаменитый youtube. База одна, материалы общие, комментарии так же все вместе, но есть возможность просмотра на разных языках, в зависимости от места нахождения, языка браузера и т.п.

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

    Может кому удалось совершить подобное или есть какие-то идеи? Буду рад почитать!

Просмотр 15 ответов — с 61 по 75 (всего 96)
  • wp-user.php, плагин написан на PHP и не имеет ни одного шорткода. Есть только функции, написанные на PHP и использующие соответсвующий синтаксис. Если не верите — не пожалейте мобильного траффика, загляните в pdf.

    синтаксис плагина ВП

    Киньте ссылочку, что сие есть такое?

    И это только поверхностно. При обрастании функционала это нужно сплошь и рядом (формы, надписи и тп).

    Э-э, батенька, тут я вам не помощник — во всяком случае, пока.
    Основной сайт у меня сделан на совершенно самостоятельной теме, которая была первой в жизни ее конструктора. От блога как такового там нет совсем ничего, все страницы статичные. Вроде как всё, что требует локализации, на первый взгляд прекрасно локализуется Polylang даже несмотря на то, что сама тема вообще не интернационализовалась: надлежащий подход к этому делу я узнал только на прошлой неделе. Поскольку от версии на русском языке проку в обозримом будущем, в сущности, никакого, я бегло оценил принципиальную пригодность решения и на том остановился; на «пальцы» сейчас просто нет времени. Делать русскую версию я буду потом, и если обнаружатся новые грабли, буду допрашивать разработчика.
    Маркетинговые сайты-спутники, из которых даже к запуску пока подготовлен только один, и вовсе не требуют локализации: там, напротив, всё по-русски, и читать их будут понимающие русский язык. Там пока я решил использовать готовые темы; можно было бы попробовать на них, но положа руку на сердце, просто недосуг. Да и функций там кот наплакал: ни к чему, один контентный маркетинг.

    плагин написан на PHP

    Это для меня откровение. Я и не знал, что плагины для ВП пишутся на пхп 🙂
    Жду ещё сакральных знаний 🙂

    Киньте ссылочку, что сие есть такое?

    2 раза уже в этом топике повторил (синтаксис плагина qtranslate, если чо).

    Э-э, батенька, тут я вам не помощник — во всяком случае, пока.

    И всё-таки.. кинь текстовый виджет в сайдбар и.. сосбсно вопрос именно в том что и как должно быть в нём заполнено, что бы выводился разный контент в зависимости от языка.

    Я и не знал, что плагины для ВП пишутся на пхп

    В каждой шутке есть доля шутки. Cинтаксис плагина qtranslate тоже PHP, если чо.

    ещё сакральных знаний

    У qtranslate есть language tags, никакого синтаксиса кроме php не наблюдается.
    У polylang нет ни псевдотегов, ни шорткодов. Если эта тема так живо интересует, смотрите ссылки выше.

    С каких пор у пхп есть синтаксис плагина ВП? 😉
    Есть? Ок. Ну и как же?

    Весь мир бардак.

    И всё-таки.. кинь текстовый виджет в сайдбар и…

    А теперь то же самое в доступной форме и, по-возможности, либо на грамотном языке родных осин, либо на нормальном английском. Я и без того слабо разбираюсь в предмете, чтобы ещё и перелагать задачу на русский с наречия грошовых быдлокодеров.
    В этом случае прямо сейчас не обещаю, но в принципе попробую. Polylang у меня активирован только на основном сайте, причём все результаты субботних экспериментов я до лучших времён скрыл, чтобы не пугать случайного посетителя. Снова экспериментировать и само по себе напряжно, а уж при такой постановке задачи…

    сосбсно вопрос именно в том что и как должно быть в нём заполнено, что бы выводился разный контент в зависимости от языка

    В чём — «в нём»? Для другого языка Polylang просто создаёт новую страницу (сиречь записи для неё), и пользователю в результате оказывается доступно то же самое, что и просто при создании новой страницы (если не ошибаюсь, название страницы модуль всё же копирует, а вот все остальные поля оставляет, увы пустыми).

    Cинтаксис плагина qtranslate тоже PHP, если чо.

    Омайнгот..
    Я о чем пытаю? О пыхе чоли? СИНТАКСИС вставки. СИНТАКСИС, который после обработки ПЛАГИНОМ выдаст контент на НУЖНОМ ЯЗЫКЕ. Еще раз, третий, пример СИНТАКСИСА qtranslate:

    1. <!--:en-->english text<!--:--><!--:ru-->русский текст<!--:-->
    2. [:en]english text[:ru]русский текст

    Сдаётся мне ты менять тупо троллишь.

    А теперь то же самое в доступной форме

    нда.. сайдбар — боковая колонка (мб не одна и не обязательно только боковая 😉 ). Виджеты — блоки вставляемый в сайдбар и имеющие определённую функциональность (См в админке: вешний вид — виджеты).
    С слов «Ещё сбоку есть..» в этом раздела — об этом же, но не употребляется терминология.

    Текстовый виджет — тип виджета, выводящего текст (точнее HTML\JS) , в него помещённый.

    Ок, фиг с ними, с виджетами. Хотя бы как делается заголовок САЙТА (чтобы на разных языках был разный)? Что и как вставлять в поле «название сайта» в общих настройках?

    Если не верите — не пожалейте мобильного траффика, загляните в pdf.

    Да не в трафе дело (250 кб это вообще не траф 🙂 ). Дело принципа 🙂 (и где-то да, не любви к мануалам в пдфе)
    Хоцца не только (и даже не столько) самому узнать, сколько «дать пинка» Legendre для подумать и не совершить ошибки.

    Ок, фиг с ними, с виджетами.

    И это правильно, потому что никаких виджетов (только что проверил) конструктор за ненадобностью совсем не прикрутил. То есть тема даже не знает об их существововании. Сайт ведь простенький, просто крошечный интернет-офис вольнопрактикующего специалиста. Нужные изюминки сделаны по моим ТУ и делают в точности то, что от них требуется… Ничего другого просто не нужно. А до тех времён, когда этому сайту понадобится что-то ещё (что?!), надо ещё дожить.

    Хотя бы как делается заголовок САЙТА (чтобы на разных языках был разный)?

    Ну задачка-то типовая, и разработчик был бы просто дебилом, если б её не решил в первую очередь. Собственно, с этого начинается настройка Polylang: заголовок и лозунг локализуются на третьем разделителе String translation собственного интерфейса модуля. Я уже и призабыть успел… А там идёт поле с заголовком, а под ним второе, для локализованной версии литералов; после поле с лозунгом, а под ним — второе, для локализованной версии…

    Модератор Юрий

    (@yube)

    Посмотрел Polylang. На первый взгляд вполне подходящий плагин для «асихронных» сайтов (не считая неожиданной проблемы с исчезновением меню). Для «синхронных» imho лучший — qTranslate.

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

    Кстате вопрос еще один по qtranslate. В одной из тем, в archive.php, так же, как и в комментариях(но здесь я решил вопрос обратной переадресацией), при смене номера страницы (pagenavigation) происходит переброс на тот uri, что стоит по умолчанию на сайте, т.е. англ. Пример:
    Выбираем на сайте русский язык, переходим в раздел материалов (ololol) и видим список материалов и переключение страниц.
    Адрес будет такого вида:
    http://site.com/ru/category/ololol/
    Если мы заходим перейти на следующую страницу, то получается так:
    http://site.com/category/ololol/page2
    Т.е. перебрасывает на вторую страницу списка материалов на англ. языке (по умолчанию), которую получает с сервера. Ввод PHP_SELF не помог.
    Функция вывода переключения страниц:

    <?php
    //activate pagination
    css_pagination(1,5,5,$_SESSION['slug']);
    ?>

    Как видим, все зависит от сессии. Slug описывается выше:

    <?php
    $slug = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    if ($_SERVER["SERVER_PORT"] != "80")
    {
    	$slug .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    }
    else
    {
    	$slug .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }
    
    if(!strpos($slug,'page')){
    	$_SESSION['slug'] = $slug;
    }

    Как только не менял, в т.ч. массив $_SERVER но увы, мои скудные знания php не дали результаты 8(. Есть идеи какие-нибудь?

    А там идёт поле с заголовком, а под ним второе, для локализованной версии литералов;

    Т.е. для 25 языков автоматом появится 50 полей?

    «асихронных»..»синхронных»

    ЮБ, ху из ху?

    pagenavigation

    Вот, кстати, ещё один неприятный сюрприз qtranslate (интересно как на это отреагирует Polylang?). А решил я эту проблему путём сноса плага (пейджнави) и сделал вручную навигацию. Не помню только по какому рецепту. Мб от Димокса, немного доработав.. И это если я не ошибаюсь, qtranslate префикс языка кидает в переменную (типа $lang) и его можно использовать.. Не помню уже точно — надо ФАКи читать 🙂
    Да, Tsybin, к qtranslat-у еще полезны плаги qtranslate-meta и Google XML Sitemaps v3 for qTranslate . А qTranslate slug with widget — коварный предатель, обеспечивающий массовые 404 (так было во всяком случае пару лет назад 😉 ).

    Модератор Юрий

    (@yube)

    Ну, это я такую терминологию изобрел 🙂 Есть сайты, на которых контент обязательно должен быть на всех используемых языках, то есть, ситуация, когда запись не существует хотя бы на одном из языков, принципиально недопустима. Например, каталоги организаций. Или официальные сайты стран с двумя и более гос.языками. Такие сайты я называю «синхронными», по аналогии с «синхронным переводом» — переводом всего сказанного практически одновременно с оригиналом (так работают в ООН и на серьезных международных конференциях). Другие же сайты могут для разных языков иметь разный контент. Скажем, многие новостные агентства не дают одни и те же новости сразу на всех языках, да и вообще не всё переводят на альтернативные языки. Или компании, которые хотят иностранцам показать немного другую сторону своей деятельности или другую продукцию. Соответственно, такие сайты названы «асинхронными».

    У меня тоже навигация сделана в ручную. Пробовал с плагином, но так же как и ты снес его. Эффект тот же. Не могу понять, где во всем этом добре прописать синтаксис или поковырять php…

    это я такую терминологию изобрел

    :))
    Тогда вот ещё дарю третий термин — «полуассихронный» У меня (точнее у клиента) сайт на qtranslate. Какие захочет — переведёт. Или даже на разных языках — разный текст. А там где нет «перевода» — нет и поста. Благо, qtranslate это позволяет.

    Не могу понять, где во всем этом добре прописать синтаксис или поковырять php..

    Я уже не помню, а ща искать — ковырять.. Сорри, не до того. Насколько я помню — мне факи плага помогли (хотя я буржуйский гораздо хуже знаю, чем наш друг-испанский лётчик ВП 😉 ).

    ладно, спасибо, пошел по ФАКам…

    Модератор Юрий

    (@yube)

    «полуассихронный»

    Немногобеременный :))))

Просмотр 15 ответов — с 61 по 75 (всего 96)
  • Тема «Мультиязычный сайт (блог)» закрыта для новых ответов.