Я добавил этот код в свой файл functions.php
add_filter('locale', 'wpse27056_setLocale'); function wpse27056_setLocale($locale) { if ( is_admin() ) { return 'en_US'; } return $locale; }
поэтому интерфейс доступен в ro_RO
а wp-admin
доступен в en_US
Ну … это почти сработало, за исключением плагина WordPress SEO Yoast, который переведен на румынском языке.
Что я могу сделать с этим плагином, который будет отображаться на английском языке?
Этот плагин загружает свой язык с момента включения его основного файла:
load_plugin_textdomain( 'wordpress-seo', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
Поэтому, когда используется ваш locale
фильтр, язык уже существует. : /
Переместите свой небольшой плагин в каталог mu-plugins
. Вы можете создать его, если он не существует в wp-content
. Это должно загрузить ваш плагин раньше, чем Yoast's.
Урок: никогда не загружайте свои языковые файлы до wp_loaded
.
Существует даже лучшее решение: фильтр под названием plugin_locale
. Он фильтрует аргумент locale перед его использованием в load_plugin_textdomain
.
add_filter( 'plugin_locale', 'mytheme_plugin_locale' ); function mytheme_plugin_locale() { return 'en_US'; }