}
if ( $wgContLang->linkPrefixExtension() ) {
- $data['linkprefix'] = wfMessage( 'linkprefix' )->inContentLanguage()->text();
+ $linkPrefixCharset = $wgContLang->linkPrefixCharset();
+ $data['linkprefixcharset'] = $linkPrefixCharset;
+ // For backwards compatability
+ $data['linkprefix'] = "/^((?>.*[^$linkPrefixCharset]|))(.+)$/sDu";
} else {
+ $data['linkprefixcharset'] = '';
$data['linkprefix'] = '';
}
'fallback', 'namespaceNames', 'bookstoreList',
'magicWords', 'messages', 'rtl', 'capitalizeAllNouns', 'digitTransformTable',
'separatorTransformTable', 'fallback8bitEncoding', 'linkPrefixExtension',
- 'linkTrail', 'namespaceAliases',
+ 'linkTrail', 'linkPrefixCharset', 'namespaceAliases',
'dateFormats', 'datePreferences', 'datePreferenceMigrationMap',
'defaultDateFormat', 'extraUserToggles', 'specialPageAliases',
'imageFiles', 'preloadedMessages', 'namespaceGenderAliases',
if ( $useLinkPrefixExtension ) {
# Match the end of a line for a word that's not followed by whitespace,
# e.g. in the case of 'The Arab al[[Razi]]', 'al' will be matched
- $e2 = wfMessage( 'linkprefix' )->inContentLanguage()->text();
+ global $wgContLang;
+ $charset = $wgContLang->linkPrefixCharset();
+ $e2 = "/^((?>.*[^$charset]|))(.+)$/sDu";
}
if ( is_null( $this->mTitle ) ) {
return self::$dataCache->getItem( $this->mCode, 'linkTrail' );
}
+ /**
+ * A regular expression character set to match legal word-prefixing
+ * characters which should be merged onto a link of the form foo[[bar]].
+ *
+ * @return string
+ */
+ public function linkPrefixCharset() {
+ return self::$dataCache->getItem( $this->mCode, 'linkPrefixCharset' );
+ }
+
/**
* @return Language
*/
'noindex-category' => 'shat mamfhtsach',
'broken-file-category' => 'ṣfaḫi fiha wṣlat milffaṫ mhrrsa',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'ala',
'article' => 'sfht mohtawa',
'newwindow' => '(kayṫḫell fe ċerjem weḫdaĥor)',
'noindex-category' => 'İndeksləşdirilməyən səhifələr',
'broken-file-category' => 'İşləməyən fayl keçidləri olan səhifələr',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Haqqında',
'article' => 'Mündəricat',
'newwindow' => '(yeni pəncərədə açılır)',
'broken-file-category' => '{{#switch:{{NAMESPACE}}
|{{ns:0}}=Болх цабеш файлийн хьажорагаш йолу агӀонаш}}',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Цуьнах лаьцна',
'article' => 'Яззам',
'newwindow' => '(керлачу корехь)',
$separatorTransformTable = array( ',' => '.', '.' => ',' );
$linkTrail = '/^([a-zâçğıñöşüа-яё“»]+)(.*)$/sDu';
+$linkPrefixCharset = 'a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„';
$messages = array(
# User preference toggles
'noindex-category' => 'Индекссиз саифелер',
'broken-file-category' => 'Ичинде бозукъ файл багълантылары олгъан саифелер',
-'linkprefix' => '/^(.*?)([a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„]+)$/sDu',
-
'about' => 'Акъкъында',
'article' => 'Саифе',
'newwindow' => '(янъы бир пенджереде ачылыр)',
$separatorTransformTable = array( ',' => '.', '.' => ',' );
$linkTrail = '/^([a-zâçğıñöşüа-яё“»]+)(.*)$/sDu';
+$linkPrefixCharset = 'a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„';
$messages = array(
# User preference toggles
'noindex-category' => 'İndekssiz saifeler',
'broken-file-category' => 'İçinde bozuq fayl bağlantıları olğan saifeler',
-'linkprefix' => '/^(.*?)([a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„]+)$/sDu',
-
'about' => 'Aqqında',
'article' => 'Saife',
'newwindow' => '(yañı bir pencerede açılır)',
);
$linkTrail = '/^([a-zабвгдеєжѕзїіıићклмнопсстѹфхѡѿцчшщъыьѣюѥѧѩѫѭѯѱѳѷѵґѓђёјйљњќуўџэ҄я“»]+)(.*)$/sDu';
+$linkPrefixCharset = '„«';
$messages = array(
# User preference toggles
'category-subcat-count' => '{{PLURAL:$2|Сѥи катигорїи тъкъмо сꙗ подъкатигорїꙗ ѥстъ|Сѥи катигорїи {{PLURAL:$1|ѥдина подъкатигорїꙗ ѥстъ|2 подъкатигорїи ѥстє|$1 подъкатигорїѩ сѫтъ}} · а вьсѩ жє подъкатигорїѩ число $2 ѥстъ}}',
'listingcontinuesabbrev' => '· вѧщє',
-'linkprefix' => '/^(.*?)(„|«)$/sD',
-
'about' => 'опьсаниѥ',
'article' => 'члѣнъ',
'newwindow' => '(иномь окънѣ)',
$linkPrefixExtension = true;
$linkTrail = '/^([a-zа-яĕçăӳ"»]+)(.*)$/sDu';
+$linkPrefixCharset = 'a-zA-Z"\\x{80}-\\x{10ffff}';
$messages = array(
# User preference toggles
'category-file-count-limited' => 'Ку категоринче $1 файл.',
'listingcontinuesabbrev' => '(малалли)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff«"]+)$/sD',
-
'about' => 'Ăнлантаркăч',
'article' => 'Статья',
'newwindow' => '(çĕнĕ чӳречере)',
'broken-file-category' => 'Peleye ke gıreyê dosyeyanê ğeletan muhtewa kenê',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => "'''MediaWiki niya ro.'''",
-
'about' => 'Heqa cı de',
'article' => 'Wesiqe',
'newwindow' => '(pençereyê newey de beno a)',
*/
$linkTrail = '/^([a-z]+)(.*)$/sD';
+/**
+ * Regular expression charset matching the "link prefix", e.g. "foo" in
+ * foo[[bar]]. UTF-8 characters may be used.
+ */
+$linkPrefixCharset = 'a-zA-Z\\x{80}-\\x{10ffff}';
+
/**
* List of filenames for some ui images that can be overridden per language
* basis if needed.
'broken-file-category' => 'Pages with broken file links',
'categoryviewer-pagedlinks' => '($1) ($2)', # only translate this message to other languages if you have to change it
-'linkprefix' => '/^((?>.*(?<![a-zA-Z\\x80-\\xff])))(.+)$/sD', # only translate this message to other languages if you have to change it
-
'about' => 'About',
'article' => 'Content page',
'newwindow' => '(opens in new window)',
'listingcontinuesabbrev' => 'ar lean.',
'index-category' => 'Leathanaigh innéacsaithe',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Maidir leis',
'article' => 'Leathanach ábhair',
'newwindow' => '(a osclófar i bhfuinneog nua)',
'noindex-category' => 'અનુક્રમણિકા નહી બનાવેલા પાનાં',
'broken-file-category' => 'ફાઇલોની ત્રૂટક કડીઓવાળાં પાનાં',
-'linkprefix' => '/^(.*?)((?:[a-zA-Z\\x80-\\xff]|ક્|ખ્|ગ્|ઘ્|ચ્|છ્|જ્|ઝ્|ટ્|ઠ્|ડ્|ઢ્|ણ્|ત્|થ્|દ્|ધ્|ન્|પ્|ફ્|બ્|ભ્|મ્|ય્|ર્|લ્|વ્|સ્|શ્|ષ્|હ્|ળ્|ક્ષ્|જ્ઞ્|અ|આ|ઇ|ઈ|ઉ|ઊ|એ|ઐ|ઓ|ઔ|અં|અઃ|અઁ|ઍ|ઑ|ઋ|ઁ|઼|।|્|ા|િ|ી|ુ|ૂ|ે|ૈ|ો|ૌ|ં|ઃ|ૅ|ૉ|ૃ)+)$/sD',
-
'about' => 'વિષે',
'article' => 'લેખનું પાનું',
'newwindow' => '(નવા પાનામાં ખુલશે)',
'broken-file-category' => 'Halaman dengan gambar rusak',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Tentang',
'article' => 'Halaman isi',
'newwindow' => '(buka di jendela baru)',
$separatorTransformTable = array( ',' => '.', '.' => ',' );
$linkPrefixExtension = true;
$linkTrail = '/^([áðéíóúýþæöa-z-–]+)(.*)$/sDu';
+$linkPrefixCharset = 'áÁðÐéÉíÍóÓúÚýÝþÞæÆöÖA-Za-z–-';
$messages = array(
# User preference toggles
'noindex-category' => 'Óraðaðar skrár',
'broken-file-category' => 'Síður með brotna myndatengla',
-'linkprefix' => '/^(.*?)([áÁðÐéÉíÍóÓúÚýÝþÞæÆöÖA-Za-z-–]+)$/sDu',
-
'about' => 'Um',
'article' => 'Efnissíða',
'newwindow' => '(opnast í nýjum glugga)',
'broken-file-category' => 'გვერდები ფაილების არასწორი ბმულებით',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'შესახებ',
'article' => 'სტატია',
'newwindow' => '(ახალ ფანჯარაში)',
);
$linkTrail = "/^((?:[a-zıʼ’“»]|'(?!'))+)(.*)$/sDu";
+$linkPrefixCharset = 'a-zıA-Zİ\\x80-\\xff';
$messages = array(
# User preference toggles
'category-file-count-limited' => "Usı kategoriyada to'mendegi {{PLURAL:$1|fayl|$1 fayl}} bar.",
'listingcontinuesabbrev' => 'dawamı',
-'linkprefix' => '/^(.*?)([a-zıA-Zİ\\x80-\\xff]+)$/sDu',
-
'about' => 'Haqqında',
'article' => "Mag'lıwmat beti",
'newwindow' => "(jan'a aynada)",
'noindex-category' => 'Pelê bêendeksıni',
'broken-file-category' => 'Peli be gıreunê dosyeunê sıkıtau',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Heqa',
'article' => 'Pela tedeesteyu',
'newwindow' => '(zerrê pençerê dê newey de beno ra)',
'broken-file-category' => 'ទំព័រទាំងឡាយដែលដាច់តំណភ្ជាប់',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'អំពី',
'article' => 'មាតិកាអត្ថបទ',
'newwindow' => '(បើកលើបង្អួចថ្មី)',
'category-article-count' => '{{PLURAL:$2|Itymā kategorejā ir vīn dūtuo puslopa.|{{PLURAL:$1|Paruodeita $1 puslopa|Paruodeitys $1 puslopys}} nu $2.}}',
'listingcontinuesabbrev' => '(tuoļuojums)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Aproksts',
'article' => 'Rakstīņs',
'newwindow' => '(atdareišona jaunuo puslopā)',
'noindex-category' => 'Неиндексирани страници',
'broken-file-category' => 'Страници со прекинати врски до податотеки',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'За {{SITENAME}}',
'article' => 'Статија',
'newwindow' => '(се отвора во нов прозорец)',
'noindex-category' => 'Laman tak diindeks',
'broken-file-category' => 'Laman yang ada pautan fail yang terputus',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Perihal',
'article' => 'Laman kandungan',
'newwindow' => '(dibuka di tetingkap baru)',
'formatdate' => array( '0', 'formatdata', 'dataformat', 'formatdate', 'dateformat' ),
);
+$linkPrefixCharset = 'A-\\x{10ffff}';
+
$messages = array(
# User preference toggles
'tog-underline' => 'Ħoloq sottolinjati:',
'noindex-category' => 'Paġni mhux indiċizzati',
'broken-file-category' => "Paġni b'ħoloq lejn fajls miksura",
-'linkprefix' => '/^(.*?)([a-żA-Ż\\x80-\\xff]+)$/sD',
-
'about' => 'Dwar',
'article' => 'artiklu',
'newwindow' => "(tinfetaħ f'tieqa ġdida)",
'noindex-category' => 'क्रमांकन नगरिएका पृष्ठहरु',
'broken-file-category' => 'टुटेको फाइल लिंकसितको पृष्ठ',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'बारेमा',
'article' => 'सामाग्री पृष्ठ',
'newwindow' => '(नयाँ विन्डोमा खुल्छ)',
'noindex-category' => 'Ikkje-indekserte sider',
'broken-file-category' => 'Sider med brotne fillenkjer',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Om',
'article' => 'Innhaldsside',
'newwindow' => '(vert opna i eit nytt vindauge)',
* $1 - the previous link, uses {{msg-mw|Prevn}}
* $2 - the next link, uses {{msg-mw|Nextn}}',
-'linkprefix' => '{{optional}}',
-
'about' => '{{Identical|About}}',
'article' => "A 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].
'noindex-category' => 'Pagini neindexate',
'broken-file-category' => 'Pagini cu legături invalide către fișiere',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Despre',
'article' => 'Articol',
'newwindow' => '(se deschide într-o fereastră nouă)',
'broken-file-category' => 'Pàggene cu collegaminde a le file scuasciate',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Sus a',
'article' => 'Pàgene de le condenute',
'newwindow' => "(iapre jndr'à 'na fenestra nova)",
'index-category' => 'Pàginas indicizadas',
'noindex-category' => 'Pàginas no indicitzadas',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'A propòsitu de',
'article' => 'Artìculu',
'newwindow' => '(aberit in una bentana noa)',
'noindex-category' => 'සූචිගත නොකළ පිටු',
'broken-file-category' => 'භින්න වූ ගොනු සබැඳි සහිත පිටු',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'පිළිබඳ',
'article' => 'පටුන',
'newwindow' => '(නව කවුළුවක විවෘතවේ)',
'noindex-category' => 'Непописане странице',
'broken-file-category' => 'Странице с неисправним везама до датотека',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'О нама',
'article' => 'Страница са садржајем',
'newwindow' => '(отвара се у новом прозору)',
'noindex-category' => 'Nepopisane stranice',
'broken-file-category' => 'Stranice s neispravnim vezama do datoteka',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'O nama',
'article' => 'Stranica sa sadržajem',
'newwindow' => '(otvara u novom prozoru)',
'broken-file-category' => 'Mga pahina na may sirang mga kawing ng talaksan',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Patungkol',
'article' => 'Pahina ng nilalaman',
'newwindow' => '(magbubukas sa bagong bintana)',
'noindex-category' => 'Индексланмаган битләр',
'broken-file-category' => 'Файлларга эшләми торган сылтамалар булган битләр',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Тасвирлама',
'article' => 'Мәкалә',
'newwindow' => '(яңа тәрәзәдә ачыла)',
'index-category' => 'İndekslanğan bitlär',
'noindex-category' => 'İndekslanmağan bitlär',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Taswirlama',
'article' => 'Mäqälä',
'newwindow' => '(yaña täräzädä açıla)',
$namespaceGenderAliases = array();
$linkTrail = '/^([a-zа-яёӝӟӥӧӵ“»]+)(.*)$/sDu';
+$linkPrefixCharset = '„«';
$fallback8bitEncoding = 'windows-1251';
$separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
'index-category' => 'Индексировать кароно бамъёс',
'noindex-category' => 'Индексировать каронтэм бамъёс',
-'linkprefix' => '/^((?>.*(?<!(?:„|«)$)))(.+)$/sDu',
-
'about' => 'Та сярысь',
'article' => 'Статья',
'mypage' => 'Ас бам',
'broken-file-category' => 'ھۆججەت ئۇلىنىشى بۇزۇلغان بەتلەر',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'ھەققىدە',
'article' => 'مۇندەرىجە',
'newwindow' => '(يېڭى كۆزنەكتە ئاچ)',
);
$linkTrail = '/^([a-zабвгґдеєжзиіїйклмнопрстуфхцчшщьєюяёъы“»]+)(.*)$/sDu';
+$linkPrefixCharset = '„«';
$messages = array(
# User preference toggles
'broken-file-category' => 'Сторінки, що посилаються на неіснуючі файли',
'categoryviewer-pagedlinks' => '($1) ($2)',
-'linkprefix' => '/^(.*?)(„|«)$/sD',
-
'about' => 'Про',
'article' => 'Стаття',
'newwindow' => '(відкривається в новому вікні)',
);
$linkTrail = '/^([a-zʻʼ“»]+)(.*)$/sDu';
+$linkPrefixCharset = 'a-zA-Z\\x80-\\xffʻʼ«„';
$messages = array(
# User preference toggles
'noindex-category' => 'Indekslanmaydigan sahifalar',
'broken-file-category' => 'Ishlamaydigan fayl havolalari bor sahifalar',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xffʻʼ«„]+)$/sDu',
-
'about' => 'Haqida',
'article' => 'Sahifa',
'newwindow' => '(yangi oynada ochiladi)',
'noindex-category' => 'Mga diri nakatudlokan nga pagkli',
'broken-file-category' => 'Mga pakli nga mayda utod nga mga sumpay hin paypay',
-'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
-
'about' => 'Mahitungod han',
'article' => 'Pakli hin sulod',
'newwindow' => '(nabuklad hin bag-o nga tamboan o bintana)',
/** Optional messages, which may be translated only if changed in the target language. */
$wgOptionalMessages = array(
- 'linkprefix',
'feed-atom',
'feed-rss',
'unit-pixel',
'broken-file-category',
'categoryviewer-pagedlinks',
),
- 'mainpage' => array(
- 'linkprefix',
- ),
'miscellaneous1' => array(
'about',
'article',