From: Roan Kattouw Date: Wed, 6 Jan 2010 10:20:38 +0000 (+0000) Subject: Per CR on r58358, refactor obtaining the language code from a filename into Language... X-Git-Tag: 1.31.0-rc.0~38394 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=commitdiff_plain;h=f0dda2c5fa764ad802d71b9279fa108f8fe516b9;p=lhc%2Fweb%2Fwiklou.git Per CR on r58358, refactor obtaining the language code from a filename into Language::getCodeFromFileName() and use it in Language::getLanguageNames() and LocalisationUpdate --- diff --git a/languages/Language.php b/languages/Language.php index 690d592ed8..2856201ab2 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -465,12 +465,9 @@ class Language { $names = array(); $dir = opendir( "$IP/languages/messages" ); while( false !== ( $file = readdir( $dir ) ) ) { - $m = array(); - if( preg_match( '/Messages([A-Z][a-z_]+)\.php$/', $file, $m ) ) { - $code = str_replace( '_', '-', strtolower( $m[1] ) ); - if ( isset( $allNames[$code] ) ) { - $names[$code] = $allNames[$code]; - } + $code = self::getCodeFromFileName( $file, 'Messages' ); + if ( $code && isset( $allNames[$code] ) ) { + $names[$code] = $allNames[$code]; } } closedir( $dir ); @@ -2492,9 +2489,33 @@ class Language { $this->mCode = $code; } + /** + * Get the name of a file for a certain language code + * @param $prefix string Prepend this to the filename + * @param $code string Language code + * @param $suffix string Append this to the filename + * @return string $prefix . $mangledCode . $suffix + */ static function getFileName( $prefix = 'Language', $code, $suffix = '.php' ) { return $prefix . str_replace( '-', '_', ucfirst( $code ) ) . $suffix; } + + /** + * Get the language code from a file name. Inverse of getFileName() + * @param $filename string $prefix . $languageCode . $suffix + * @param $prefix string Prefix before the language code + * @param $suffix string Suffix after the language code + * @return Language code, or false if $prefix or $suffix isn't found + */ + static function getCodeFromFileName( $filename, $prefix = 'Language', $suffix = '.php' ) { + $m = null; + preg_match( '/' . preg_quote( $prefix ) . '([A-Z][a-z_])' . + preg_quote( $suffix ) . '/', $filename, $m ); + if ( !count( $m ) ) { + return false; + } + return str_replace( '_', '-', strtolower( $m[1] ) ); + } static function getMessagesFileName( $code ) { global $IP;