Step 3: Balance the quotes directly on $text
[lhc/web/wiklou.git] / includes / MessageCache.php
index 96c00ac..e5eb705 100644 (file)
@@ -318,12 +318,11 @@ class MessageCache {
                        # database or in code.
                        if ( $code !== $wgContLanguageCode ) {
                                # Messages for particular language
-                               $escapedCode = $dbr->escapeLike( $code );
-                               $conds[] = "page_title like '%%/$escapedCode'";
+                               $conds[] = 'page_title' . $dbr->buildLike( $dbr->anyString(), "/$code" );
                        } else {
                                # Effectively disallows use of '/' character in NS_MEDIAWIKI for uses
                                # other than language code.
-                               $conds[] = "page_title not like '%%/%%'";
+                               $conds[] = 'page_title NOT' . $dbr->buildLike( $dbr->anyString(), '/', $dbr->anyString() );
                        }
                }
 
@@ -509,10 +508,15 @@ class MessageCache {
 
                $message = false;
 
-               # Normalise title-case input
+               # Normalise title-case input (with some inlining)
                $lckey = str_replace( ' ', '_', $key );
-               $lckey[0] = strtolower( $lckey[0] );
-               $uckey = ucfirst( $lckey );
+               if ( ord( $key ) < 128 ) {
+                       $lckey[0] = strtolower( $lckey[0] );
+                       $uckey = ucfirst( $lckey );
+               } else {
+                       $lckey = $wgContLang->lcfirst( $lckey );
+                       $uckey = $wgContLang->ucfirst( $lckey );
+               }
 
                # Try the MediaWiki namespace
                if( !$this->mDisable && $useDB ) {