2012-03-24, 03:27:13
lrsk Wrote:Code:if (function_exists('i18n_load_texts')) {
i18n_load_texts('user-login');
} else {
i18n_merge('user-login', substr($LANG,0,2)) || i18n_merge('user-login', 'en');
}
into the plugin file, but it still won't work correctly. In fact, it does work if I set the language using setlang and then navigate to a different page or refresh the login page. I have dug deeper into the code and found that $LANG does not change until after I navigate to a different page or rerun the same page, nor does $_SESSION['language']. I thought about setting $LANG = $language in the i18n_load_texts() function or something, but the $language variable is empty there for some reason.
I don't want to create a solution that is so hacky that I can't maintain the site...
Where have you added this code?
Looking at the plugin, it should be at the top of the function show_login_box(), welcome_message_login(), etc.
The order in which functionalities are executed:
- plugins are loaded, language is not known, thus putting the code at the top of the plugin file won't work
- on the index-pretemplate hook I18N determines the best language,
- thus it is known at the beginning of the template
- plugin functions like show_login_box are called, the language is known here, too
Hope this helps.