Простой способ получить два языка WP сайта

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

То, что я пытаюсь сделать:

1) Чтобы иметь domain.com/en и domain.com/ru а перенаправление по умолчанию – в domain.com/en .

2) Одна установка для WP, такая же панель администратора с тем же языком – английский.

3) Бесплатный способ стилизации вещей (сюда входит html, а не только css). Конечно, это наиболее проблематичная часть.

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

Solutions Collecting From Web of "Простой способ получить два языка WP сайта"

Вы можете использовать код ниже для перевода строк:

 add_filter('gettext', 'translate_text'); add_filter('ngettext', 'translate_text'); function translate_text($translated) { $translated = str_ireplace('Choose an option', 'Select', $translated); $translated = str_ireplace('Original Text', 'Your Replacment Text', $translated); return $translated; } 

Но я не имею в виду перевод сложного содержимого. Я знаю, что вы не хотите использовать плагины, но, как и мои исследования, мы должны написать очень простой PHP-код для работы плагина. Я рекомендую WPGLOBUS , он создает значок для каждого поля сообщения или страницы, например заголовка, контента или категории и т. Д., В то время как вы нажимаете на значок, вы можете ввести свой перевод для неограниченного количества языков, которые вы задали ранее в настройках, плагин генерирует yoursite.com/ru без генерации или необходимости в любой новой таблице стилей, js или страницах или загрузке любого дополнительного файла.

Вот простой (так, а не исчерпывающий) способ:

  1. Создайте два пользовательских типа сообщений: «en» и «ru». Это позволит убедиться, что все ваши сообщения будут иметь URL-адреса www.example.com/en/post-slug и www.example.com/ru/post-slug

  2. Создавайте файлы .po и .mo для обоих языков (или только для русских, если английский язык уже является языком по умолчанию для вашей темы)

  3. В your functions.php убедитесь, что правильный текстовый домен загружен с использованием фильтра locale на основе типа post:

    add_filter( 'locale', 'wpse210218_set_locale' ); function wpse210218_set_locale ($lang) { if ( 'ru' == get_post_type() ) { return 'ru_RU'; } else { return 'en_EN'; } }

Что касается html и css, у вас могут быть разные шаблоны для разных типов сообщений, поэтому их легко решить.