getMain()->setCacheMode( 'public' ); $this->getMain()->setCacheMaxAge( 2419200 ); $params = $this->extractRequestParams(); $language = $params['language']; if ( !Language::isValidCode( $language ) ) { $this->dieWithError( [ 'apierror-invalidlang', 'language' ], 'invalidlanguage' ); } $contents = ULSJsonMessageLoader::getMessages( $language ); // 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 [ 'language' => [ ApiBase::PARAM_REQUIRED => true, ApiBase::PARAM_TYPE => 'string', ], ]; } /** * @inheritDoc */ protected function getExamplesMessages() { return [ 'action=ulslocalization&language=ta' => 'apihelp-ulslocalization-example-1', 'action=ulslocalization&language=hi' => 'apihelp-ulslocalization-example-2', ]; } public function isInternal() { // Try to scare people away from using this externally return true; } }