messageDust.php
Go to the documentation of this file.00001 <?php
00008 require( dirname( __FILE__ ) . '/cli.inc' );
00009
00010 $dbr = wfGetDB( DB_SLAVE );
00011 $rows = $dbr->select( array( 'page' ),
00012 array( 'page_title', 'page_namespace' ),
00013 array(
00014 'page_namespace' => $wgTranslateMessageNamespaces,
00015 ),
00016 __METHOD__
00017 );
00018
00019 $owners = array();
00020 $keys = array();
00021 $codes = Language::getLanguageNames();
00022 $invalid = array();
00023
00024 foreach ( $rows as $row ) {
00025 list( $key, $code ) = TranslateUtils::figureMessage( $row->page_title );
00026
00027 if ( !$code ) {
00028 $code = 'en';
00029 }
00030
00031 $mg = TranslateUtils::messageKeyToGroup( $row->page_namespace, $key );
00032 $ns = $wgContLang->getNsText( $row->page_namespace );
00033
00034 if ( is_null( $mg ) ) {
00035 $keys["$ns:$key"][] = $code;
00036 $owner = 'xx-unknown';
00037 } else {
00038 $owner = $mg;
00039 }
00040
00041 if ( !isset( $codes[$code] ) ) {
00042 $invalid[$code][] = "[[$ns:$key/$code]]";
00043 }
00044
00045 if ( !isset( $owners[$owner] ) ) {
00046 $owners[$owner] = 0;
00047 }
00048
00049 $owners[$owner]++;
00050 }
00051
00052 $rows->free();
00053
00054 ksort( $owners );
00055
00056 if ( count( $invalid ) ) {
00057 echo "==Invalid language codes==\n" . implode( ', ', array_keys( $invalid ) ) . "\n";
00058
00059 foreach ( $invalid as $key => $pages ) {
00060 echo "# $key: " . implode( ', ', $pages ) . "\n";
00061 }
00062 }
00063
00064 if ( count( $owners ) ) {
00065 echo "\n==Messages claimed==\n";
00066
00067 foreach ( $owners as $o => $count ) {
00068 echo "# $o: $count\n";
00069 }
00070 }
00071
00072 if ( count( $keys ) ) {
00073 echo "\n==Unclaimed messages==\n";
00074
00075 foreach ( $keys as $page => $langs ) {
00076 echo "* $page: " . implode( ', ', $langs ) . "\n";
00077 }
00078 }