Простой многоязычный коммутатор

Во-первых, я установил wp с разным языком с индонезийским языком как по умолчанию, у меня есть план, вы хотите перевести с другим языком, как просто перевести переключатель, но сохраните индонезийский по умолчанию. с файлом .po

Спасибо за помощь …

Solutions Collecting From Web of "Простой многоязычный коммутатор"

Предполагая, что вы говорите об интерфейсе, и у вас есть правильные интернационализации строк, вам просто нужно вставить функцию load_theme_textdomain (), чтобы сообщить wordpress, где находятся ваши файлы .po.

вот как это делает Тема Toolbox:

/** * Make theme available for translation * Translations can be filed in the /languages/ directory * If you're building a theme based on martins, use a find and replace * to change 'martins' to the name of your theme in all the template files */ load_theme_textdomain( 'martins', TEMPLATEPATH . '/languages' ); $locale = get_locale(); $locale_file = TEMPLATEPATH . "/languages/$locale.php"; if ( is_readable( $locale_file ) ) require_once( $locale_file ); 

ОБНОВИТЬ:

Я однажды играл с меняющейся локалью пользователей, чтобы сделать это автоматически, получив язык пользователей от суперпользователя $ _SERVER.

Я придумал это, но он пока не работает. Может быть, вы можете работать с ним.

ПРЕДУПРЕЖДЕНИЕ: ЭТО НЕ ПРЕДОСТАВЛЯЕТСЯ И МОЖЕТ БЫТЬ ВЕРОЯТНО ИЛИ ДАЖЕ ПЕРЕРЫВАТЬ ВАШ САЙТ, БУДЬТЕ ОСТОРОЖНЫ

 function rm_get_locale($lang) { global $locale; // This gets the users' primary browser settings for acceptable languages // and transforms the string so it looks like en_US or pt_BR rather than // en-us and pt-br. It takes only the first value returned, no all of them. $langcode = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']); $langcode = explode(",", $langcode['0']); $langcode = $langcode['0']; $langcode = preg_split('/-/', $langcode); $upper = strtoupper($langcode[1]); $lower = $langcode[0]; // now we get the native wp locale and the parsed user locale $wplocale = get_locale(); $userlocale = implode('_',array($lower,$upper)); // compare them and apply the user's locale if they don't match. if ($userlocale != $wplocale) { return $userlocale; } else { return $lang; } } add_filter('locale','rm_get_locale');