addModules( 'ext.uls.init' ); $out->addModules( 'ext.uls.languagesettings' ); $out->addModules( 'ext.uls.displaysettings' ); return true; } /** * ResourceLoaderTestModules hook handler. * @param $testModules: array of javascript testing modules. 'qunit' is fed using tests/qunit/QUnitTestResources.php. * @param $resourceLoader object * @return bool */ public static function addTestModules( array &$testModules, ResourceLoader &$resourceLoader ) { $testModules['qunit']['ext.uls.tests'] = array( 'scripts' => array( 'tests/qunit/ext.uls.tests.js' ), 'dependencies' => array( 'ext.uls.init' ), 'localBasePath' => __DIR__, 'remoteExtPath' => 'UniversalLanguageSelector', ); return true; } /** * Add some tabs for navigation for users who do not use Ajax interface. * Hooks: SkinTemplateNavigation, SkinTemplateTabs */ static function addTrigger( array &$personal_urls, &$title ) { global $wgLang; $personal_urls = array( 'uls'=> array( 'text' => $wgLang->getLanguageName( $wgLang->getCode() ), 'href' => '#', 'class' => 'uls-trigger', 'active' => true ) ) + $personal_urls; return true; } /** * Hook to UserGetLanguageObject * @param $user User * @param $code String * @return bool */ public static function getLanguage( $user, &$code ) { global $wgRequest; if ( $wgRequest->getVal( 'uselang' ) ) { // uselang can be used for temporary override of language preference return true; } $setlang = $wgRequest->getVal( 'setlang' ); if ( $setlang ) { if ( $user->isAnon() ) { $wgRequest->response()->setcookie( 'language', $setlang ); } else { $user->setOption( 'language', $setlang ); $user->saveSettings(); } $code = $setlang; } else { if ( $user->isAnon() ) { $code = $wgRequest->getCookie( 'language' ); } else { $code = $user->getOption( 'language' ); } } $code = RequestContext::sanitizeLangCode( $code ); return true; } /** * Hook: ResourceLoaderGetConfigVars * @param $vars Array * @return bool */ public static function addConfig( &$vars ) { global $wgContLang; $vars['wgULSLanguages'] = Language::fetchLanguageNames( $wgContLang->getCode() ); return true; } /** * Add the template for the ULS to the body. * Hooks: SkinAfterContent * TODO: move to JavaScript side * TODO: hardcoded English */ public static function addTemplate( &$data, $skin ) { $data .= "

" . $skin->msg( 'uls-select-content-language' )->escaped() . "

No results found for \"\"

You can search by language name, script name, ISO code of language or you can browse by region: America, Europe, Middle East, Africa, Asia, Pacific or Worldwide languages.

"; return true; } }