Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Помечено: 

This topic contains 17 ответов, has 2 голосов.

Last updated by Andrey 1 месяц, 2 недели назад.

Assigned support staff: Andrey.

Автор Посты
Август 26, 2019 в 8:59 пп #4461411

Александр Крутов

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

Несколько вопросов - причина одна, но меня интересуют несколько вариантов решить проблему.

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

Причина такая: если со страницы поиска из поиска на русском языке hidden link перейти на украинский, то мы получим неверный результат hidden link. Поэтому я рассматриваю несколько вариантов, как обойти эту проблему и прошу вас помочь найти их реализацию.

1) лучшим вариантом я вижу сброс фильтра поиска - при переключении на другой язык мне нужно удалить категорию, искомое слово и поставить местоположением страну с которой переходили - hidden link
Тип записи должен остаться тот, что был активный.

2) менее хороший вариант - hidden link показать все объявления данного типа записи со всех стран

3) переход на страницу локации hidden link на языке на который переходим из страны, с которой переходили

4) еще вариант - делать переход на главную страницу на языке на который переходим - hidden link

5) или вариант не показывать переключатель языка на странице поиска

Можете помочь с этим вопросом? Может быть у вас есть другое решение. Мне еще кажется, что я видел, но не могу уже найти, где в WPML можно настроить вывод переключателя языка только на главной странице. Даже думаю, Что самым простым было сделать переключатель языка таким, чтобы бы он всегда вел на главную страницу. Этот вариант тоже устроил бы. Но не знаю, как сделать меню с выбором языка.

Вот такие у меня мучения с этими адресами на разных языках 🙁

Август 27, 2019 в 8:28 дп #4463707

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

Здравствуйте, прежде чем мы продолжим решать вопрос, который возник. Я хотел бы остановится над тем, что написали в начале:
Причина такая: если со страницы поиска из поиска на русском языке hidden link перейти на украинский, то мы получим неверный результат hidden link. Поэтому я рассматриваю несколько вариантов, как обойти эту проблему и прошу вас помочь найти их реализацию.

Почему Вы думаете, что неверный результат? И в чем именно проблема? Остаются фильтры? Я хотел бы это лучше понять. Я просмотрел ссылки, мне кажется, что они работают корректно и категория меняется на переведенную, что есть тоже корректно.
Если у Вас не установлена опция Preserve URL arguments в WPML >> Langauges > Language switcher options, то я могу предположить, что автор темы как-то эти фильтры сохраняет для смены языка.

Август 27, 2019 в 8:54 дп #4463957

Александр Крутов

Здравствуйте, Андрей!

Я вижу проблему в том, что мой проект и его реализация выходит за рамки штатной интеграции WPML и WPgeodirectory. Насколько я понял, разработчики предполагали, что на международных сайтах пользователи должны использовать карту на одном (основном) языке. И адреса, которые устанавливаются для местоположений в публикациях тоже должны быть на одном основном языке для всех переводов на дополнительные языки. Т.е. интеграция продуктов успешно работает в пределах территории с одним языком пользования. Я уже рассказывал, что мой проект международный, в частности, для Украины - пользователи могут применять поиск местоположений и на русском и на украинском. Поэтому я делаю перевод карты на активный язык и изменяю адрес в объявлении на активный язык. Следовательно, если пользователь - автор объявления русскоговорящий, он будет создавать объявление в русском интерфейсе и город будет написан, как, например, "Киев". После, я делаю дубль объявления на украинский, без перевода самого текста объявления на украинский, но изменяю адрес на карте простым нажатием кнопки "Установить адрес на карте" и адрес записывается в базу с городом "Київ". Соответственно, у этих местоположений получаются разные ссылки. Из-за этого, нельзя получить из адреса "ru" hidden link верный переход на "uk" потому что в "ru" местоположение "city=kiev", а в "uk" объявлений с ним нет, а дубли объявлений имеют "city=kiev-1". Вот, кажется теперь вам должно стать понятно, что можно улучшить интергацию WPML и GD. Я думаю, над этим стоит поработать вашим компаниям. Ведь это касается и других проектов, стран, у которых в обиходе несколько языков.

Август 27, 2019 в 12:05 пп #4466235

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

Да, спасибо за разъяснение. Теперь ясно в чем именно проблема. К сожалению, как писал ранее автор не ответил на наши усилия с ним связаться для сотрудничества. Я предполагаю, что вряд ли будут улучшения в ближайшее время, если автор сам их не интегрирует.

Автору просто необходимо вытягивать переведенное объявление и соответственно "city=kiev-1" и делать замену в ссылке. Так как автор использует свои пользовательские таблицы в базе данных, я думаю, что существующие фильтры в WPML могут и не сработать.

Описанные Вами варианты, являются кастомными вариантами и требуют определенных навыков для их реализации.
Все доступные фильтры в WPML можно увидеть здесь:https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference/
В новых версиях будет доступен следующий фильтр, который может быть полезен Вам: https://wpml.org/wpml-hook/wpml_enqueue_browser_redirect_language/

Если /search/ это страница, можно попробовать разъединить перевод (в правом сайдбаре где языки при редактировании, как бы каждая страница будет без перевода и не будет перенаправлять), тогда при смене языка должно перекидывать просто на домашнюю второстепенного языка (hidden link). Дайте мне знать если это помогает?

Август 27, 2019 в 12:52 пп #4466811

Александр Крутов

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

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

Я добавил переключатель в сайдбар, см. hidden link, но как можно это использовать и что значит "разъединить языки"? Нам нужно "разъединить страницы" для этого переключателя, ведь я рассматривал вариант не показывать его на странице поиска на ВСЕХ языках. И зачем переключатель размещать в правом сайдбаре, если он уже есть в Header Right? И там и там нельзя выключить показ переключателя для определенных страниц. Это можно сделать только для виджетов GD.

Как все таки решить задачу?

Август 27, 2019 в 5:18 пп #4468735

Александр Крутов

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

Август 27, 2019 в 9:05 пп #4469749

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

Извините, что не совсем ясно объяснил. Я не говорил, о том что нужно перемещать переключатель языков в другие сайдбары. Идея заключалась, чтобы данная страница поиска просто не имела перевод, тогда и не будет куда переключаться или можно будет переключится на домашнюю другого языка (если опция Link to home of language for missing translations установлена в WPML >> Langauges > Language switcher options). То есть у Вас есть страница поиска на основном языке, и отдельно страница поиска на другом. Смотрите скриншот.

Еще вариант, который бы меня устроил, сделать так, чтобы переключатель языка всегда с любых страниц вел на главную страницу языка, на который переключаемся. Так можно сделать?
С текущими настройками так не сделать. Тогда перевод страниц, постов и использования переключателя не имеет смысл.

Август 27, 2019 в 9:34 пп #4469891

Александр Крутов

Спасибо, теперь понятно. Я разъединил страницы "Search". WPML >> Langauges > Language switcher options было включено. Но из меню языков на странице Search теперь пропали дополнительные языки. Это так должно работать? Или дополнительные языки должны остаться, но вести на главную страницу переключаемого языка?

Август 27, 2019 в 9:43 пп #4469895

Александр Крутов

Вроде бы получилось. Только в переключателе в верхнем правом виджете пропало название языка, но сам виджет со стрелкой остался. А в футере вместо русского показан язык английский hidden link Это можно исправить?

Август 27, 2019 в 10:15 пп #4469959

Александр Крутов

Хотя, нет - не все получилось. С английской Search нет перехода на русскую, т.к. в переключателе только англ. язык.

Август 28, 2019 в 7:48 дп #4471649

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

При активации опции "дополнительные языки должны остаться, но вести на главную страницу переключаемого языка". Я протестировал локально должно работать.

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

Август 28, 2019 в 8:25 дп #4471945

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

Я сделал несколько тестов и вижу, что эта опция не работает из за GeoDirectory Multilingual плагина. Видимо, какой-то код автора на это влияет.

В данном случае могу предложить скрыть переключатель полностью с помощью CSS для страницы поиска.
Я добавил следующий код в WPML >> Языки >> Параметры переключателя языка >> Дополнительный CSS :

.search.geodir_advance_search .widget_icl_lang_sel_widget {
       display: none;
}

.search.geodir_advance_search .wpml-ls-statics-footer {
       display: none;
}

Вы также можете теперь связать обратно оригинальную страницу поиска с переводами (см. скриншот).

Август 28, 2019 в 8:34 дп #4472201

Александр Крутов

Хорошо, спасибо, так тоже подходит. Подскажите еще, пожалуйста, как добавить в этот код еще страницу /location/ и ее вариации, например, hidden link

Август 28, 2019 в 8:53 дп #4472561

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+03:00)

Здесь пришлось скрыть по ID страницы (к примеру, .page-id-710), так как нет других уникальных классов. Я обновил код и сделал для всех языковых версий.

Август 28, 2019 в 9:26 дп #4472739

Александр Крутов

Спасибо, попробую так поработать.

А на что нужно обратить внимание разработчиков GD, чтобы реализовать: "чтобы данная страница поиска просто не имела перевод, тогда и не будет куда переключаться или можно будет переключится на домашнюю другого языка (если опция Link to home of language for missing translations установлена в WPML >> Langauges > Language switcher options)"?