2015-04-10 3 views
0

Я разработал свой собственный огромный WP-плагин и локализовал его на трех языках. Он отлично работает при переключении языка с Wp-админи-> Настройки, но не переключается язык при переключении языка в коде следующим образом:Программирование программ Wordpress в версии 4+

add_filter('locale', 'wpse_52419_change_language'); 
function wpse_52419_change_language($locale){ 
    return 'fr_FR'; 
} 

Остальная часть сайта, однако переключается в соответствии с этим кодом ,

Что может быть неправильным?

ответ

0

Хорошо, моя ошибка была simpel: я включил load_plugin_textdomain-команду слишком рано.

Так же, как примечание, может быть, это поможет кому-то, теперь я сделал следующее, который работает как шарм:

add_filter('locale', 'slople_change_language'); 
function slople_change_language($locale) 
{ 
    $lang = 'en'; 
    if(isset($_GET['lang'])) { 
     //get parameter is the most important factor 
     $lang = $_GET['lang']; 
    }else if(isset($_COOKIE['lang'])){ 
     //cookie is the 2nd most important factor 
     $lang = $_COOKIE['lang']; 
    }else{ 
     //try to make an educated guess about what the user wants to see 
     $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 
    } 
    //store current language in cookie 
    setcookie('lang', $lang, time() + (10 * 365 * 24 * 60 * 60), "/"); 
    $langIsoCode = $lang.'_'.strtoupper($lang); 
    return $langIsoCode; 
}