Мультиязычность своими руками (без плагинов)

Уже долгое время у меня куплена безлимитная лицензия на WPML и при разработке сайтов, где нужна мультиязычность, я использовал именно этот плагин. Но мне он не нравится из-за громоздкости (создаёт кучу таблиц и имеет массу ненужных настроек), а также за отвратительную документацию и отсутствие "написанных по-человечески" (т.е. аккуратно и с умом) функций для управления языковыми моментами внутри темы.

Собственно вопрос тут такой: имеет ли смысл писать что-то своё?

Я, собственно, вижу очень простую структуру для превращения сайта в мультиязычный:
1) Для каждого языка создаются кастомные поля тайтл-контент с префиксом или постфиксом локали.
2) При смене языка на сайте ставится куки
3) Пишется простенький фильтр для the_title() и the_content(), который меняет контент на мета поле meta_content_$postfix к примеру
4) Для менюшек пишется свой волкер по аналогии.
5) Все строки в теме и скриптах переведены через gettext. (вот тут вопрос, кстати, как передавать в тему, что язык сменился?)

Заметки к вопросу:
stepan 7.1 год назад

не пробовали смотреть в сторону плагинов типа qTranslate. Н-р, wpglobus
Они работаю по более простому принципу, чем WPML

maxxwell 7.1 год назад

WPGLOBUS крутой плагин с минимумом настроек. Совместим с ACF и Yoast SEO.

Jackky 7.1 год назад

qTranslate - ещё хуже WPML, ИМХО. WP Globus я сейчас посмотрел - он не поддерживает мультисайты и, как всегда, имеет платные расширения, которые с вероятностью 99% понадобятся.

Riskful 7 лет назад

Я решил проблему мультиязычности так:
1) Создал кастомную таксономи с языками
2) Указал ее тем типам записей которые необходимы
3) Создал по 2 версии шаблонов файлов, например две страницы контактов contact-ru.php | contact-en.php
4) В результате когда добавляю пост указываю язык, а когда нужно добавить страницу создаю шаблоны разных языковых версий.

Jackky 7 лет назад

Да, но при таком подходе каждая страница будет с уникальным адресом на разных языках - это не есть гуд.

Шаблоны создавать-то зачем? Если для перевода строк внутри кода, то для этого есть удобный gettext внутри вп