При создании мультиязычного сайта основная проблема поддержка и администрирование контента. Те плагины которые есть, даже Polylang, не удобны как для администраторов так и для авторов, начинается путаница из страниц, постов, рубрик, блоков, слайдеров. После долгого тестирования плагина Polylang, было принято решение отказаться от плагинов вообще и использовать для каждого языка свой WordPress сайт (отдельный установленный движок для каждого языка).
Возможно это дополнительная работа в начале, но зато удобное администрирование и постинг в дальнейшем.
Недостатки этого решения:
- Нет авто редиректа на нужную языковую версию сайта, нужно нажимать на кнопку в меню чтоб попасть на сайт другого языка.
- Если вы на каком-то посте хотите переключиться на другой язык вы попадете на главную сайта другого языка, вы не попадаете на ту же страницу но на другом языке.
- Если на сайте разрешена регистрация пользователей, и если пользователь знает несколько языков и хочет общаться и на страницах и того и того языка, то ему нужно будет регистрироваться на том и на том сайте. Но чаще владельцы сайтов регистрацию пользователей оставляют отключенной, в таком случае особых проблем нет, комментировать посетители могут без регистрации вписав свой емейл возле своего комментария, впишет и на том и на том сайте емейл и будет комментировать.
- При покупке платных тем и плагинов, возможно будут проблемы с активацией лицензии, там идет одна лицензия для одного домена, сработает ли двойная активация лицензии по одному домену нужно тестировать, или перед покупкой спрашивать у разработчика данной темы или плагина.
- На хостинге нужно выбирать тарифный план в котором две и более базы данных (под каждый языковой сайт своя база данных).
- Два сайта на хостинге будут больше места занимать чем один.
- При заказе сайта, за дополнительный сайт нужно будет отдельно заплатить, но за настройку мультиязычного плагина, создание слайдеров, форм контактов, меню, страниц, для каждого языка нужно будет заплатить не меньше.
Плюсы решения:
- На сайте нет хаоса, каждый сайт полностью на одном языке.
- Поля и сообщения формы заявки будут на нужном языке.
- Удобно создавать слайдеры.
- Удобно писать посты и новости.
- В боковой колонке сайта отображаются комментарии и посты на одном языке
- Удобно заниматься SEO продвижением, корректно работает SEO плагин.
- Сайт грузится быстрее, в базе данных нет мусора.
- В итоге все очень удобно и круто получается.
Какие кардинально другие варианты решения можно придумать?
1) Можно завести для каждого языка отдельный блог на платформе medium.com. Потом сделать сайт на нескольких языках, без админки, на своем домене и хостинге, и на этом сайте добавить кнопки на блог. Кому нужно перейдет на блог и будет читать посты там.
2) Ничего не придумывать, установить плагин Polylang, и смириться с путаницей и хаосом. Разрулить проблемы со слайдером для каждого языка; разрулить проблемы с выводом комментариев и постов, в боковой колонке для каждого языка; форму заявки сделать для каждого языка; и как бы можно жить. Если раз в месяц собираетесь делать пост, то плагин наверно будет экономное оптимальное решение.
3) В WordPress включить и настроить режим Multisite. Но он много памяти требует 128 Мб (PHP memory_limit), вам нужно будет на хостинге сменить тарифный план на более мощный. PHP memory_limit — объем оперативной память который выделяется каждому php скрипту вашим хостинг провайдером (согласно ограничений тарифного плана). У этого решения тоже достаточно мороки в настройке и обслуживании.
По поводу плагина Polylang, маленький секрет
У него будет такая структура ссылок (в конце ссылки получается странное окончание):
mysite.com/ru/home/
mysite.com/en/home-2/
mysite.com/ru/contacts/
mysite.com/en/contacts-2/
Хотелось бы чтоб было так:
mysite.com/ru/home/
mysite.com/en/home/
mysite.com/ru/contacts/
mysite.com/en/contacts/
Но так не возможно.
Один из вариантов, в настройках плагина можно отключить приставку у ссылок /ru/ и /en/ И при редактировании постов, вручную прописывать ссылки так (тоже не очень красиво, но чуть чуть лучше):
mysite.com/ru-home/
mysite.com/en-home/
mysite.com/ru-contacts/
mysite.com/en-contacts/
Детали поводу плагина Polylang: