MediaWiki
REL1_24
|
00001 <?php 00026 require_once dirname( __DIR__ ) . '/Maintenance.php'; 00027 00031 class ListVariants extends Maintenance { 00032 00033 public function __construct() { 00034 parent::__construct(); 00035 $this->mDescription = 'Outputs a list of language variants'; 00036 $this->addOption( 'flat', 'Output variants in a flat list' ); 00037 $this->addOption( 'json', 'Output variants as JSON' ); 00038 } 00039 00040 public function execute() { 00041 $variantLangs = array(); 00042 $variants = array(); 00043 foreach ( LanguageConverter::$languagesWithVariants as $langCode ) { 00044 $lang = Language::factory( $langCode ); 00045 if ( count( $lang->getVariants() ) > 1 ) { 00046 $variants += array_flip( $lang->getVariants() ); 00047 $variantLangs[$langCode] = $lang->getVariants(); 00048 } 00049 } 00050 $variants = array_keys( $variants ); 00051 sort( $variants ); 00052 $result = $this->hasOption( 'flat' ) ? $variants : $variantLangs; 00053 00054 // Not using $this->output() because muting makes no sense here 00055 if ( $this->hasOption( 'json' ) ) { 00056 echo FormatJson::encode( $result, true ) . "\n"; 00057 } else { 00058 foreach ( $result as $key => $value ) { 00059 if ( is_array( $value ) ) { 00060 echo "$key\n"; 00061 foreach ( $value as $variant ) { 00062 echo " $variant\n"; 00063 } 00064 } else { 00065 echo "$value\n"; 00066 } 00067 } 00068 } 00069 } 00070 } 00071 00072 $maintClass = 'ListVariants'; 00073 require_once RUN_MAINTENANCE_IF_MAIN;