http://www.mediawiki.org/wiki/Special:Code/MediaWiki/64053
Revision: 64053 Author: conrad Date: 2010-03-23 01:33:20 +0000 (Tue, 23 Mar 2010) Log Message: ----------- Localise option names better, still needs work for booleans and list/rawlist Modified Paths: -------------- trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.php trunk/extensions/NaturalLanguageList/NaturalLanguageList.php Added Paths: ----------- trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.magic.php Added: trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.magic.php =================================================================== --- trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.magic.php (rev 0) +++ trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.magic.php 2010-03-23 01:33:20 UTC (rev 64053) @@ -0,0 +1,12 @@ +<?php + +$magicWords = array(); + +$magicWords['en'] = array( + 'nll_blanks' => array( 0, 'blanks' ), + 'nll_duplicates' => array( 0, 'duplicates' ), + 'nll_itemcover' => array( 0, 'itemcover' ), + 'nll_fieldsperitem' => array( 0, 'itemsperitem', 'fieldsperitem' ), + 'nll_lastseparator' => array( 0, 'lastseparator' ), + 'nll_outputseparator' => array( 0, 'outputseparator', 'separator' ), +); Property changes on: trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.magic.php ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.php =================================================================== --- trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.php 2010-03-23 01:32:15 UTC (rev 64052) +++ trunk/extensions/NaturalLanguageList/NaturalLanguageList.i18n.php 2010-03-23 01:33:20 UTC (rev 64053) @@ -1,4 +1,6 @@ <?php + +require_once( dirname(__FILE__) . '/NaturalLanguageList.i18n.magic.php' ); $messages['en'] = array ( 'nll-itemcover' => '$1', 'nll-separator' => ', ', Modified: trunk/extensions/NaturalLanguageList/NaturalLanguageList.php =================================================================== --- trunk/extensions/NaturalLanguageList/NaturalLanguageList.php 2010-03-23 01:32:15 UTC (rev 64052) +++ trunk/extensions/NaturalLanguageList/NaturalLanguageList.php 2010-03-23 01:33:20 UTC (rev 64053) @@ -320,26 +320,18 @@ } } # Still here? Then it must be an option - switch ( trim( $var ) ) { + switch ( $name = self::parseOptionName( $var ) ) { case 'duplicates': - $this->mOptions['duplicates'] = self::trueCheck ( $value ); - break; case 'blanks': - $this->mOptions['blanks'] = self::trueCheck ( $value ); + $this->mOptions[$name] = self::parseBoolean( $value ); break; case 'outputseparator': - case 'separator': - $this->mOptions['outputseparator'] = self::trimString ( $value ); - break; case 'lastseparator': - $this->mOptions['lastseparator'] = self::trimString ( $value ); - break; case 'itemcover': - $this->mOptions['itemcover'] = self::trimString ( $value ); + $this->mOptions[$name] = self::parseString( $value ); break; case 'fieldsperitem': - case 'itemsperitem': - $this->mOptions['fieldsperitem'] = self::numeralCheck ( $value ); + $this->mOptions[$name] = self::parseNumeral( $value ); break; default: # Wasn't an option after all @@ -347,22 +339,42 @@ ? trim( $this->mFrame->expand( $arg ) ) : $arg; } + return false; } - private static function numeralCheck ( $value, $default = 1 ) { - if ( is_numeric ( $value ) && $value > 0 ) { + private static function parseOptionName( $value ) { + + static $magicWords = null; + if ( $magicWords === null ) { + $magicWords = new MagicWordArray( array( + 'nll_blanks', 'nll_duplicates', + 'nll_fieldsperitem', 'nll_itemcover', + 'nll_lastseparator', 'nll_outputseparator' + ) ); + } + + if ( $name = $magicWords->matchStartToEnd( trim($value) ) ) { + return str_replace( 'nll_', '', $name ); + } + + return false; + } + + + private static function parseNumeral( $value, $default = 1 ) { + if ( is_numeric( $value ) && $value > 0 ) { return floor( $value ); # only integers } return $default; } - private static function trimString ( $value, $default = null ) { + private static function parseString( $value, $default = null ) { if ( $value !== '' ) return $value; return $default; } - private static function trueCheck ( $value ) { + private static function parseBoolean( $value ) { return in_array( $value, array( 1, true, '1', 'true' ), true ); } } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs