Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function look_up_language() {
- // Language recognition (STELLA_CURRENT_LANG) for multisite should be in sunrise.php
- if( is_multisite() )
- return;
- $use_lang = $this->langs['default']['prefix'];
- // Language recognition in rewrite_url function. only for subfolder situation
- if( $this->is_subfolder() && is_permalinks_enabled() ){
- $this->set_current_language($use_lang);
- return;
- }
- if ( $this->use_hosts ):
- foreach ( $this->langs['others'] as $prefix => $lang ) {
- if ( $_SERVER['HTTP_HOST'] == $lang['host'] || $_SERVER['HTTP_HOST'] == 'www.' . $lang['host'] ) {
- $use_lang = $lang['prefix'];
- break;
- }
- }
- elseif ( ! is_permalinks_enabled() ) :
- // Non-permalinks variant.
- if ( isset($_GET['lang']) ) :
- foreach ( $this->langs['others'] as $prefix => $lang ) {
- if ( $_GET['lang'] == $lang['prefix'] ) {
- $use_lang = $lang['prefix'];
- break;
- }
- }
- endif;
- else: // Permalinks no-hosts variant.
- if( ! $this->is_subfolder() ){ //wp is not in subfolder
- $uri = $_SERVER['REQUEST_URI'];
- $code = substr( $uri, 0, 4 );
- if ( '/' != substr( $code, -1 ) )
- $code = $code . '/';
- foreach ( $this->langs['others'] as $prefix => $lang ) {
- if ( ! ( false === strpos( $code, '/' . $lang['prefix'] . '/' ) ) ) {
- $use_lang = $lang['prefix'];
- break;
- }
- }
- }
- endif;
- $this->set_current_language($use_lang);
- }
- /**
- * Sets the current language
- * and also the locale
- * @param string $lang current language
- */
- private function set_current_language($lang){
- if( ! defined( 'STELLA_CURRENT_LANG' ) ) {
- define('STELLA_CURRENT_LANG', $lang);
- }
- add_filter('locale', array(&$this,'stella_setlocale'), 10);
- }
- /**
- * locale hook when load_theme_textdomain is present in functions.php
- *
- *
- * called by locale hook
- */
- public function stella_setlocale( $locale ) {
- //for now we have these
- $locales = array(
- 'en' => 'en_US',
- 'fr' => 'fr_FR',
- 'zh' => 'zh_CN'
- );
- return $locales[STELLA_CURRENT_LANG];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement