У меня очень досадная проблема с языком / языковым стандартом для нашего сайта. Я искал здесь, но не нашел ничего подобного.
Таким образом, мы поддерживаем несколько разных языков и настроили все файлы .po и .mo, которые в большинстве случаев работают нормально. Иногда он переключает язык, когда вы загружаете что-то или обновляете страницу. На самом деле это не шаблон, иногда 6 'en' подряд, а затем 'sv', а иногда каждую секунду 'sv' и 'en'.
Пример. Если вы хотите отредактировать пользователя, вы получите всплывающее окно, которое начинается с включения authorize.php, где мы проверяем язык и устанавливаем его соответствующим образом с помощью этой функции:
function _set_locale ($lang){
switch($lang) {
case 'sv': $locale = "sv_SE"; break;
case 'en': $locale = "en_SG"; break;
case 'nl': $locale = "nl_NL"; break;
case 'dk': $locale = "da_DK"; break;
case 'vi': $locale = "vi_VN"; break;
case 'zh': $locale = "zh_CN"; break;
default: $locale = "en_SG"; break;
}
putenv("LANGUAGE=$locale");
setlocale(LC_ALL, "$locale.UTF-8");
bindtextdomain("messages", "./locale/");
textdomain("messages");
Я управлял учетной записью со шведским, установил 'sv' и обновил всплывающее окно редактирования пользователя 10 раз и отладил эту функцию, $ lang был 'sv', и я зарегистрировал setlocale (LC_ALL, 0), который возвратил 'sv_SE.UTF- 8 'каждый раз, но страница отображалась на английском 5-6 раз.
Кажется, что он только переключается с текущего языка на английский, который является исходным языком, поэтому я полагаю, что он не переводится. Не похоже, что мы устанавливаем неправильный язык / язык по умолчанию, он просто игнорирует / не успевает? установить язык.
Язык не сохраняется в файлах cookie, и некоторые учетные записи имеют только 1 язык (не английский) и по-прежнему получают его.
В приведенном выше отл. когда мы возвращаемся из authorize.php, мы не используем какую-либо языковую переменную на реальной странице редактирования пользователя. Так что не должно быть в состоянии изменить это там. (Я также отлаживал и проверял язык при возвращении из аутентификации. Каждый раз это был шведский).
Я не ожидаю, что кто-нибудь сможет решить эту проблему с помощью предоставленной мной информации. Мне просто интересно, если кто-то испытал это или имел какое-либо представление, почему это иногда «переключается», пожалуйста, дайте мне знать, если я могу прикрепить еще немного кода, чтобы разобраться в этом.
Спасибо!