Открываешь админку чужого сайта, а она на английском. Мне-то всё равно, где какая кнопка, я и так помню. А вот человеку, который будет наполнять сайт, проще по-русски: в незнакомой админке и на родном языке легко заблудиться.
В 2014 году я менял язык через wp-config.php, и под тем постом мне написали: «думал, можно просто изменить настройки — и всё». Сейчас так и есть: язык меняется в настройках, а у каждого пользователя может быть свой. Ниже — где это делается, как то же сделать одной командой на сервере и что делать, если русского в списке нет.
wp language core install ru_RU --activate. Константу WPLANG в wp-config.php ставить не нужно: WordPress её больше не читает.Язык всего сайта
В английской админке: Settings → General → Site Language. Выбираете «Русский», жмёте «Save Changes». Если русского перевода на сайте ещё нет, WordPress сам скачает его с wordpress.org в wp-content/languages. Меняется язык и админки, и тех надписей сайта, которые выводит сам WordPress и тема: даты, «Читать далее», формы комментариев.
Вернуть английский — там же, пункт «English (United States)».
Свой язык для каждого пользователя
С версии 4.7 язык можно выбрать в профиле: Пользователи → Профиль → Язык (Users → Profile → Language). По умолчанию там стоит «Язык сайта», то есть пользователь видит то, что выбрано в общих настройках.
Это и есть ответ на мою задачу 2014 года: сайт клиента остаётся как был, наполнителю я ставлю в профиле русский, себе — что удобнее. Администратор меняет язык любому пользователю на странице его профиля. Сам сайт для посетителей от этого не меняется — только админка этого человека.
Одной командой на сервере (WP-CLI)
Когда сайтов несколько или доступ в админку неудобен, язык ставится через WP-CLI — консольную утилиту для WordPress:
wp language core install ru_RU --activate
wp language plugin install --all ru_RU
wp language theme install --all ru_RU
Первая команда скачивает перевод самого WordPress и включает его, две другие — переводы плагинов и тем, у которых они есть на wordpress.org. Переключиться на уже установленный язык:
wp site switch-language ru_RU
wp language прямо из папки сайта. Что WP-CLI там работает, я проверил на своём сайте.Язык одного пользователя (вместо admin — его логин):
wp user meta update admin locale en_US
Пустое значение locale — значит «как у сайта». Команды запускаются из папки сайта или с ключом --path=/путь/к/сайту.
Грабли
wp-config.php стоит define('DISALLOW_FILE_MODS', true); или у PHP нет прав на запись в wp-content (тогда при обновлениях WordPress просит данные FTP). Варианты: поставить перевод через WP-CLI из-под пользователя, которому можно писать в папку сайта; временно разрешить запись; или скачать архив перевода и распаковать его в wp-content/languages вручную.WPLANG, и она перекрывает константу из wp-config.php. Если константа там осталась, в «Настройках → Общие» под списком языков WordPress пишет: «The WPLANG constant in your wp-config.php file is no longer needed». Строку можно смело удалить и выбрать язык в настройках.Как это делалось в 2014 году
Тогда в «Настройках → Общие» список языков уже был:
Но этого не хватало: я ещё прописывал язык в wp-config.php, сразу после строки с $table_prefix:
define('WPLANG', 'ru_RU');
а потом в «Консоль → Обновления» жал «Переустановить», чтобы WordPress докачал русские файлы:
Смешно, но к тому моменту это уже было не нужно: за две недели до поста вышел WordPress 4.0, в котором язык выбирается в настройках, а перевод скачивается сам. Я действовал по старой привычке и старым инструкциям.
Спасибо, про фишку с wp-config.php не знал, думал можно просто изменить настройки и все.