More language variant stuff:
authorRobert Stojnić <rainman@users.mediawiki.org>
Tue, 26 Dec 2006 12:19:45 +0000 (12:19 +0000)
committerRobert Stojnić <rainman@users.mediawiki.org>
Tue, 26 Dec 2006 12:19:45 +0000 (12:19 +0000)
* Added some basic parser tests for variants
* Enable selflinks to be written in variants
* Prevent username lookup in variants for sr.wiki (per community request)
* Update release notes (also notes for last commit, when I forgot)

RELEASE-NOTES
includes/Parser.php
languages/LanguageConverter.php
languages/Names.php
languages/classes/LanguageSr.php
maintenance/parserTests.txt

index 3094dc8..b8673a1 100644 (file)
@@ -411,6 +411,9 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * Added wgCanonicalSpecialPageName to JavaScript variables
 * Fix image deleting when using Postgres.
 * Output both source and destination titles in maintenance/moveBatch.php
+* Added basic parser tests for language variants 
+* Enable selflinks and categories to be written in some of the language variants
+* Prevent conversion of javascript code in language variants
 
 == Languages updated ==
 
index 484c7dc..5ea0689 100644 (file)
@@ -1561,7 +1561,10 @@ class Parser
                        $prefix = '';
                }
 
-               $selflink = $this->mTitle->getPrefixedText();
+               if($wgContLang->hasVariants())
+                       $selflink = $wgContLang->convertLinkToAllVariants($this->mTitle->getPrefixedText());
+               else 
+                       $selflink = array($this->mTitle->getPrefixedText());
                $useSubpages = $this->areSubpagesAllowed();
                wfProfileOut( $fname.'-setup' );
 
@@ -1771,7 +1774,7 @@ class Parser
                                }
                        }
 
-                       if( ( $nt->getPrefixedText() === $selflink ) &&
+                       if( ( in_array( $nt->getPrefixedText(), $selflink ) ) &&
                            ( $nt->getFragment() === '' ) ) {
                                # Self-links are handled specially; generally de-link and change to bold.
                                $s .= $prefix . $sk->makeSelfLinkObj( $nt, $text, '', $trail );
index ac38fa0..73b7f48 100644 (file)
@@ -165,8 +165,10 @@ class LanguageConverter {
 
                // disable convert to variants between <code></code> tags
                $codefix = '<code>.+?<\/code>|';
+               // disable convertsion of <script type="text/javascript"> ... </script>
+               $scriptfix = '<script.*?>.*?<\/script>|';
 
-               $reg = '/'.$codefix.'<[^>]+>|&[a-zA-Z#][a-z0-9]+;' . $marker . $htmlfix . '/s';
+               $reg = '/'.$codefix . $scriptfix . '<[^>]+>|&[a-zA-Z#][a-z0-9]+;' . $marker . $htmlfix . '/s';
        
                $matches = preg_split($reg, $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
 
index 9588d8e..b5a324f 100644 (file)
        'so' => 'Soomaaliga',   # Somali
        'sq' => 'Shqip',                # Albanian
        'sr' => 'Српски / Srpski',        # Serbian
-       'sr-ec' => 'екавица',    # Serbian cyrillic ekavian
+       'sr-ec' => 'ћирилица',  # Serbian cyrillic ekavian
        'sr-jc' => 'ијекавица',        # Serbian cyrillic iyekvian
-       'sr-el' => 'ekavica',   # Serbian latin ekavian
+       'sr-el' => 'latinica',  # Serbian latin ekavian
        'sr-jl' => 'ijekavica', # Serbian latin iyekavian
        'ss' => 'SiSwati',              # Swati
        'st' => 'seSotho',              # Southern Sotho
index 7f3e63c..e3eaf30 100644 (file)
@@ -103,10 +103,19 @@ class SrConverter extends LanguageConverter {
 
 
        /*
-        * A function wrapper, if there is no selected variant, 
-        * leave the link names as they were
+        * A function wrapper:
+        *   - if there is no selected variant, leave the link 
+        *     names as they were
+        *   - do not try to find variants for usernames
         */
        function findVariantLink( &$link, &$nt ) {
+               // check for user namespace
+               if(is_object($nt)){
+                       $ns = $nt->getNamespace();
+                       if($ns==NS_USER || $ns==NS_USER_TALK)
+                               return;
+               }
+
                $oldlink=$link;
                parent::findVariantLink($link,$nt);
                if($this->getPreferredVariant()==$this->mMainLanguageCode)
index b009807..fea83ed 100644 (file)
@@ -6167,6 +6167,104 @@ bar
 !! end
 
 
+###
+### Language variants related tests
+###
+!! test
+Self-link in language variants
+!! options
+title=[[Dunav]] language=sr
+!! input
+Both [[Dunav]] and [[Дунав]] are names for this river.
+!! result
+<p>Both <strong class="selflink">Dunav</strong> and <strong class="selflink">Дунав</strong> are names for this river.
+</p>
+!!end
+
+
+!! test
+Link to pages in language variants
+!! options
+language=sr
+!! input
+Main Page can be written as [[Маин Паге]]
+!! result
+<p>Main Page can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>
+</p>
+!!end
+
+
+!! test
+Multiple links to pages in language variants
+!! options
+language=sr
+!! input
+[[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]].
+!! result
+<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a> same as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>.
+</p>
+!!end
+
+
+!! test
+Simple template in language variants
+!! options
+language=sr
+!! input
+{{тест}}
+!! result
+<p>This is a test template
+</p>
+!! end
+
+
+!! test
+Template with explicit namespace in language variants
+!! options
+language=sr
+!! input
+{{Template:тест}}
+!! result
+<p>This is a test template
+</p>
+!! end
+
+
+!! test
+Basic test for template parameter in language variants
+!! options
+language=sr
+!! input
+{{парамтест|param=foo}}
+!! result
+<p>This is a test template with parameter foo
+</p>
+!! end
+
+
+!! test
+Simple category in language variants
+!! options
+language=sr cat
+!! input
+[[:Category:МедиаWики Усер'с Гуиде]]
+!! result
+<a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
+!! end
+
+
+!! test
+Stripping -{}- tags (language variants)
+!! options
+language=sr
+!! input
+Latin proverb: -{Ne nuntium necare}-
+!! result
+<p>Latin proverb: Ne nuntium necare
+</p>
+!! end
+
+
 #
 #
 #