getMain()->setCacheMode( 'public' ); $this->getMain()->setCacheMaxAge( 300 ); $params = $this->extractRequestParams(); $language = $params['language']; if ( !Language::isValidCode( $language ) ) { $this->dieUsage( 'Invalid language', 'invalidlanguage' ); } $contents = array(); // jQuery.uls localization $filename = __DIR__ . "/../lib/jquery.uls/i18n/$language.json"; if ( file_exists( $filename ) ) { $contents += json_decode( file_get_contents( $filename ), true ); } // mediaWiki.uls localization $filename = __DIR__ . "/../i18n/$language.json"; if ( file_exists( $filename ) ) { $contents += json_decode( file_get_contents( $filename ), true ); } // Output the file's contents raw $this->getResult()->addValue( null, 'text', json_encode( $contents ) ); $this->getResult()->addValue( null, 'mime', 'application/json' ); } public function getCustomPrinter() { return new ApiFormatRaw( $this->getMain(), $this->getMain()->createPrinterByName( 'json' ) ); } public function getAllowedParams() { return array( 'language' => array( ApiBase::PARAM_REQUIRED => true, ApiBase::PARAM_TYPE => 'string', ), ); } public function getParamDescription() { return array( 'language' => 'Language string', ); } public function getDescription() { return 'Get the localization of ULS in given language'; } public function getExamples() { return array( 'api.php?action=ulslocalization&language=ta', 'api.php?action=ulslocalization&language=hi', ); } public function getVersion() { return __CLASS__ . ': ' . ULS_VERSION; } }