typus
Мой дом здесь!
- Регистрация
- 25 Июл 2007
- Сообщения
- 895
- Реакции
- 241
- Автор темы
- #1
Изменил первоначальное сообщение, так как залил вчера двуязычную версию сайта на сервер, и могу теперь данную проблему показать более наглядно.
Приветствую, достаточно спешно ищу удовлетворительное решение следующей проблемы.
Есть сайт на вордпрессе, собственно,Для просмотра ссылки Войдиили Зарегистрируйся, в настоящее время языков 2 - англ и рус.
Проблема.
При применении любого правила сортировки (например, см пункт меню Properties) при втором (недефолтном) языке результат сортировки выдается на дефолтном языке....Т.е. у меня дефолтный англ, второй - рус, например, тот же пункт меню Properties у меня назван Объекты и находится по адресу Для просмотра ссылки Войдиили Зарегистрируйся - связан с англ Для просмотра ссылки Войди или Зарегистрируйся
Теперь я например хочу отсортировать объекты по цене по возрастанию, находясь в русской версии, результат получаю как Для просмотра ссылки Войдиили Зарегистрируйся т.е. по англ.
Если я вручную добавляю ru - Для просмотра ссылки Войдиили Зарегистрируйся - результат сортировки корректный, но как добиться, чтобы это []ru[/] при сортировке не удалялось, не пойму...
Единственное похожее видел в гугле Для просмотра ссылки Войдиили Зарегистрируйся - но там как видно сортировка посредством woocommerce, а у меня тут woocommerce нет... Однако думаю все равно как то должно это решаться, может быть, где то можно вручную (htaccess?) прописать редиректы для соотв-их урлов, благо их там немного.
Т.е. если нет красивого и правильного решения, возможно ли каким то образом задать редиректы, например с Для просмотра ссылки Войдиили Зарегистрируйся редиректить на Для просмотра ссылки Войди или Зарегистрируйся, но конечно только для переходов с любой []ru[/] страницы ( Для просмотра ссылки Войди или Зарегистрируйся.... )
добавлено:
Написал в суппорт автора шаблона, как вариант, в непереведенных местах использовать условие для вывода нужного контента или подключения оного в зависимости от текущей языковой локали.
Поскольку для многоязычности используется wpml, автор предложил использовать следующую конструкцию:
Что самое смешное, в гугле довольно много комментов по данной проблеме, и в основном, все у людей работает.
У меня - нет.
Если использую код выше, то результат сортировки всегда - в обоих языках - выводится на англ, если изменяю на
то результат сортировки в обоих языках всегда по русски.
Автор темы стал меня игнорировать, сказал, типа, все должно работать, но у меня не срабатывает и я искренне недоумеваю, в чем проблема.
Если мыслить логически, исходя из результатов сортировки, условие срабатывает, но переменная ICL_LANGUAGE_CODE всегда в первом случае возвращает false - и совершенно не понятно, почему...
Использую ICL_LANGUAGE_CODE для вывода нужных виджетов - в зависимости от языка - все срабатывает...а тут нет...
Предлагается всесто ICL_LANGUAGE_CODE использовать wpml_current_lang - результат абсолютно идентичен предыдущему...
Есть идеи?
Проблема решена, публикую решение, может, кому то еще пригодится.
Для начала необходимо внести изменения в соответствующий php файл, в моем случае это archive-property.php - если изменения будут вноситься в другие шаблоны, необходимо найти соотв-ий php-файл и внести данное изменение в него.
Например, для header.twig это header.php, для footer.twig это footer.php ну и т.д.
Я буду вносить изменения в шаблон sort.twig, который подключен к шаблону archive-property.twig, поэтому первое изменение я и вношу в файл archive-property.php,
Итак, в archive-property.php в секцию echo View::render необходимо добавить след-ю строку:
После чего уже изменения можно вносить в шаблон.
Я изменяю sotr.twig, но можно создать свой шаблон для нужного языка и подключать его.
Я изменяю в sort.twig
на
И все работает, условие отрабатывает корректно, и сортировка также корректно работает.
Приветствую, достаточно спешно ищу удовлетворительное решение следующей проблемы.
Есть сайт на вордпрессе, собственно,Для просмотра ссылки Войди
Проблема.
При применении любого правила сортировки (например, см пункт меню Properties) при втором (недефолтном) языке результат сортировки выдается на дефолтном языке....Т.е. у меня дефолтный англ, второй - рус, например, тот же пункт меню Properties у меня назван Объекты и находится по адресу Для просмотра ссылки Войди
Теперь я например хочу отсортировать объекты по цене по возрастанию, находясь в русской версии, результат получаю как Для просмотра ссылки Войди
Если я вручную добавляю ru - Для просмотра ссылки Войди
Единственное похожее видел в гугле Для просмотра ссылки Войди
Т.е. если нет красивого и правильного решения, возможно ли каким то образом задать редиректы, например с Для просмотра ссылки Войди
добавлено:
Написал в суппорт автора шаблона, как вариант, в непереведенных местах использовать условие для вывода нужного контента или подключения оного в зависимости от текущей языковой локали.
Поскольку для многоязычности используется wpml, автор предложил использовать следующую конструкцию:
Код:
{% if ICL_LANGUAGE_CODE=='ru' %}
{выводим для ru}
{% else %}
{выводим для en}
{% endif %}
У меня - нет.
Если использую код выше, то результат сортировки всегда - в обоих языках - выводится на англ, если изменяю на
Код:
{% if ICL_LANGUAGE_CODE=='en' %}
{выводим для en}
{% else %}
{выводим для ru}
{% endif %}
Автор темы стал меня игнорировать, сказал, типа, все должно работать, но у меня не срабатывает и я искренне недоумеваю, в чем проблема.
Если мыслить логически, исходя из результатов сортировки, условие срабатывает, но переменная ICL_LANGUAGE_CODE всегда в первом случае возвращает false - и совершенно не понятно, почему...
Использую ICL_LANGUAGE_CODE для вывода нужных виджетов - в зависимости от языка - все срабатывает...а тут нет...
Предлагается всесто ICL_LANGUAGE_CODE использовать wpml_current_lang - результат абсолютно идентичен предыдущему...
Есть идеи?
Проблема решена, публикую решение, может, кому то еще пригодится.
Для начала необходимо внести изменения в соответствующий php файл, в моем случае это archive-property.php - если изменения будут вноситься в другие шаблоны, необходимо найти соотв-ий php-файл и внести данное изменение в него.
Например, для header.twig это header.php, для footer.twig это footer.php ну и т.д.
Я буду вносить изменения в шаблон sort.twig, который подключен к шаблону archive-property.twig, поэтому первое изменение я и вношу в файл archive-property.php,
Итак, в archive-property.php в секцию echo View::render необходимо добавить след-ю строку:
Код:
'wpml_current_lang' => ICL_LANGUAGE_CODE
После чего уже изменения можно вносить в шаблон.
Я изменяю sotr.twig, но можно создать свой шаблон для нужного языка и подключать его.
Я изменяю в sort.twig
Код:
<form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('properties', 'aviators') }}/" method="get" class="form-sort form-horizontal">
Код:
{% if wpml_current_lang == 'en' %}
<form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('properties', 'aviators') }}/" method="get" class="form-sort form-horizontal">
{% else %}
<form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('ru/properties', 'aviators') }}/" method="get" class="form-sort form-horizontal">
{% endif %}
Последнее редактирование: