From 21a9d834439f5a501385a952efe5ee653c662fc6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Robert=20Stojni=C4=87?= Date: Tue, 26 Dec 2006 12:19:45 +0000 Subject: [PATCH] More language variant stuff: * 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 | 3 + includes/Parser.php | 7 ++- languages/LanguageConverter.php | 4 +- languages/Names.php | 4 +- languages/classes/LanguageSr.php | 13 ++++- maintenance/parserTests.txt | 98 ++++++++++++++++++++++++++++++++ 6 files changed, 122 insertions(+), 7 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 3094dc8e19..b8673a17fd 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 == diff --git a/includes/Parser.php b/includes/Parser.php index 484c7dc891..5ea06898a5 100644 --- a/includes/Parser.php +++ b/includes/Parser.php @@ -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 ); diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index ac38fa0f62..73b7f487ef 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -165,8 +165,10 @@ class LanguageConverter { // disable convert to variants between tags $codefix = '.+?<\/code>|'; + // disable convertsion of + $scriptfix = '.*?<\/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); diff --git a/languages/Names.php b/languages/Names.php index 9588d8e44e..b5a324ffdb 100644 --- a/languages/Names.php +++ b/languages/Names.php @@ -223,9 +223,9 @@ '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 diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php index 7f3e63c24c..e3eaf30ec2 100644 --- a/languages/classes/LanguageSr.php +++ b/languages/classes/LanguageSr.php @@ -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) diff --git a/maintenance/parserTests.txt b/maintenance/parserTests.txt index b009807176..fea83ed0dd 100644 --- a/maintenance/parserTests.txt +++ b/maintenance/parserTests.txt @@ -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 +

Both Dunav and Дунав are names for this river. +

+!!end + + +!! test +Link to pages in language variants +!! options +language=sr +!! input +Main Page can be written as [[Маин Паге]] +!! result +

Main Page can be written as Маин Паге +

+!!end + + +!! test +Multiple links to pages in language variants +!! options +language=sr +!! input +[[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]]. +!! result +

Main Page can be written as Маин Паге same as Маин Паге. +

+!!end + + +!! test +Simple template in language variants +!! options +language=sr +!! input +{{тест}} +!! result +

This is a test template +

+!! end + + +!! test +Template with explicit namespace in language variants +!! options +language=sr +!! input +{{Template:тест}} +!! result +

This is a test template +

+!! end + + +!! test +Basic test for template parameter in language variants +!! options +language=sr +!! input +{{парамтест|param=foo}} +!! result +

This is a test template with parameter foo +

+!! end + + +!! test +Simple category in language variants +!! options +language=sr cat +!! input +[[:Category:МедиаWики Усер'с Гуиде]] +!! result +MediaWiki User's Guide +!! end + + +!! test +Stripping -{}- tags (language variants) +!! options +language=sr +!! input +Latin proverb: -{Ne nuntium necare}- +!! result +

Latin proverb: Ne nuntium necare +

+!! end + + # # # -- 2.20.1