Index: branches/REL1_3/phase3/includes/MagicWord.php |
— | — | @@ -47,6 +47,7 @@ |
48 | 48 | define("MAG_PAGENAMEE", 31); |
49 | 49 | define("MAG_NAMESPACE", 32); |
50 | 50 | define("MAG_TOC", 33); |
| 51 | +define("MAG_GRAMMAR", 34); |
51 | 52 | |
52 | 53 | $wgVariableIDs = array( |
53 | 54 | MAG_CURRENTMONTH, |
Index: branches/REL1_3/phase3/includes/GlobalFunctions.php |
— | — | @@ -45,6 +45,21 @@ |
46 | 46 | } |
47 | 47 | } |
48 | 48 | |
| 49 | +# UTF-8 substr function based on a PHP manual comment |
| 50 | +if ( !function_exists( 'mb_substr' ) ) { |
| 51 | + function mb_substr($str,$start) |
| 52 | + { |
| 53 | + preg_match_all("/./us", $str, $ar); |
| 54 | + |
| 55 | + if(func_num_args() >= 3) { |
| 56 | + $end = func_get_arg(2); |
| 57 | + return join("",array_slice($ar[0],$start,$end)); |
| 58 | + } else { |
| 59 | + return join("",array_slice($ar[0],$start)); |
| 60 | + } |
| 61 | + } |
| 62 | +} |
| 63 | + |
49 | 64 | # html_entity_decode exists in PHP 4.3.0+ but is FATALLY BROKEN even then, |
50 | 65 | # with no UTF-8 support. |
51 | 66 | function do_html_entity_decode( $string, $quote_style=ENT_COMPAT, $charset='ISO-8859-1' ) { |
Index: branches/REL1_3/phase3/includes/Parser.php |
— | — | @@ -1590,11 +1590,12 @@ |
1591 | 1591 | # PHP global rebinding syntax is a bit weird, need to use the GLOBALS array |
1592 | 1592 | $GLOBALS['wgCurParser'] =& $this; |
1593 | 1593 | |
1594 | | - |
1595 | | - if ( $this->mOutputType == OT_HTML ) { |
| 1594 | + if ( $this->mOutputType == OT_HTML || $this->mOutputType == OT_MSG ) { |
1596 | 1595 | # Variable substitution |
1597 | 1596 | $text = preg_replace_callback( "/{{([$nonBraceChars]*?)}}/", 'wfVariableSubstitution', $text ); |
1598 | | - |
| 1597 | + } |
| 1598 | + |
| 1599 | + if ( $this->mOutputType == OT_HTML ) { |
1599 | 1600 | # Argument substitution |
1600 | 1601 | $text = preg_replace_callback( "/(\\n?){{{([$titleChars]*?)}}}/", 'wfArgSubstitution', $text ); |
1601 | 1602 | } |
— | — | @@ -1760,6 +1761,15 @@ |
1761 | 1762 | $found = true; |
1762 | 1763 | $this->mOutput->mContainsOldMagic = true; |
1763 | 1764 | } |
| 1765 | + |
| 1766 | + # GRAMMAR |
| 1767 | + if ( !$found && $argc == 1 ) { |
| 1768 | + $mwGrammar =& MagicWord::get( MAG_GRAMMAR ); |
| 1769 | + if ( $mwGrammar->matchStartAndRemove( $part1 ) ) { |
| 1770 | + $text = $wgLang->convertGrammar( $args[0], $part1 ); |
| 1771 | + $found = true; |
| 1772 | + } |
| 1773 | + } |
1764 | 1774 | /* |
1765 | 1775 | # Arguments input from the caller |
1766 | 1776 | $inputArgs = end( $this->mArgStack ); |
Index: branches/REL1_3/phase3/languages/LanguageFi.php |
— | — | @@ -17,8 +17,8 @@ |
18 | 18 | 1 => "Keskustelu", |
19 | 19 | 2 => "Käyttäjä", |
20 | 20 | 3 => "Keskustelu_käyttäjästä", |
21 | | - 4 => "Wikipedia", |
22 | | - 5 => "Keskustelu_Wikipediasta", |
| 21 | + 4 => $wgMetaNamespace, |
| 22 | + 5 => "{$wgMetaNamespace}-keskustelu", |
23 | 23 | 6 => "Kuva", |
24 | 24 | 7 => "Keskustelu_kuvasta", |
25 | 25 | 8 => "MediaWiki", |
— | — | @@ -26,7 +26,7 @@ |
27 | 27 | 10 => "Template", |
28 | 28 | 11 => "Template_talk" |
29 | 29 | |
30 | | -); |
| 30 | +) + $wgNamespaceNamesEn; |
31 | 31 | |
32 | 32 | /* private */ $wgQuickbarSettingsFi = array( |
33 | 33 | "Ei mitään", "Tekstin mukana, vasen", "Tekstin mukana, oikea", |
— | — | @@ -140,17 +140,17 @@ |
141 | 141 | "linktrail" => "/^((?:ä|ö|[a-z])+)(.*)\$/sD", |
142 | 142 | "mainpage" => "Etusivu", |
143 | 143 | "about" => "Tietoja", |
144 | | -"aboutwikipedia" => "Tietoja Wikipediasta", |
145 | | -"aboutpage" => "Wikipedia:Tietoja", |
| 144 | +"aboutwikipedia" => "Tietoja {{grammar:elative|{{SITENAME}}}}", |
| 145 | +"aboutpage" => "{{ns:project}}:Tietoja", |
146 | 146 | "help" => "Ohje", |
147 | | -"helppage" => "Wikipedia:Ohje", |
148 | | -"wikititlesuffix" => "Wikipedia", |
| 147 | +"helppage" => "{{ns:project}}:Ohje", |
| 148 | +"wikititlesuffix" => "{{ns:project}}", |
149 | 149 | "bugreports" => "Bugiraportit", |
150 | | -"bugreportspage" => "Wikipedia:Bugiraportit", |
| 150 | +"bugreportspage" => "{{ns:project}}:Bugiraportit", |
151 | 151 | "faq" => "FAQ", |
152 | | -"faqpage" => "Wikipedia:FAQ", |
| 152 | +"faqpage" => "{{ns:project}}:FAQ", |
153 | 153 | "edithelp" => "Muokkausohjeet", |
154 | | -"edithelppage" => "Wikipedia:Kuinka_sivuja_muokataan", |
| 154 | +"edithelppage" => "{{ns:project}}:Kuinka_sivuja_muokataan", |
155 | 155 | "cancel" => "Keskeytä", |
156 | 156 | "qbfind" => "Etsi", |
157 | 157 | "qbbrowse" => "Selaa", |
— | — | @@ -189,7 +189,7 @@ |
190 | 190 | "gnunote" => "Kaikki teksti on saatavilla <a class=internal href='$wgScriptPath/GNU_FDL'>GNU Free Documentation -lisenssin</a> ehdoilla.", |
191 | 191 | "printsubtitle" => "(Lähde: http://fi.wikipedia.org)", |
192 | 192 | "protectedpage" => "Suojattu sivu", |
193 | | -"administrators" => "Wikipedia:Ylläpitäjät", |
| 193 | +"administrators" => "{{ns:project}}:Ylläpitäjät", |
194 | 194 | "sysoptitle" => "Vaatii ylläpitäjä-oikeudet", |
195 | 195 | "sysoptext" => "Tämän toiminnon voi suorittaa vain käyttäjä, jolla on \"ylläpitäjä\"-oikeudet. |
196 | 196 | Katso $1.", |
— | — | @@ -230,7 +230,7 @@ |
231 | 231 | "nodb" => "Tietokantaa $1 ei voitu valita", |
232 | 232 | "readonly" => "Tietokanta on lukittu", |
233 | 233 | "enterlockreason" => "Anna syy lukitukselle sekä arvio lukituksen poistamisajankohdalle.", |
234 | | -"readonlytext" => "Wikipedian tietokanta on tällä hetkellä lukittu. |
| 234 | +"readonlytext" => "{{grammar:genitive|{{SITENAME}}}} tietokanta on tällä hetkellä lukittu. |
235 | 235 | Uusia artikkeleita tai muita muutoksia ei voi tehdä. |
236 | 236 | Syynä ovat todennäköisimmin rutiininomaiset tietokannan ylläpitotoimet. |
237 | 237 | Tietokannan lukinneen ylläpitäjän selitys: |
— | — | @@ -253,8 +253,8 @@ |
254 | 254 | # Login and logout pages |
255 | 255 | # |
256 | 256 | "logouttitle" => "Käyttäjän uloskirjautuminen", |
257 | | -"logouttext" => "Olet nyt kirjautunut ulos Wikipediasta. |
258 | | -Voit jatkaa Wikipedian käyttöä nimettömänä, tai |
| 257 | +"logouttext" => "Olet nyt kirjautunut ulos {{grammar:elative|{{SITENAME}}}}. |
| 258 | +Voit jatkaa {{grammar:genitive|{{SITENAME}}}} käyttöä nimettömänä, tai |
259 | 259 | kirjautua uudelleen sisään samana tai eri käyttäjänä.\n", |
260 | 260 | |
261 | 261 | "welcomecreation" => "<h2>Tervetuloa, $1!</h2><p> |
— | — | @@ -284,14 +284,14 @@ |
285 | 285 | "loginerror" => "Sisäänkirjautumisvirhe", |
286 | 286 | "noname" => "Et ole määritellyt kelvollista käyttäjänimeä.", |
287 | 287 | "loginsuccesstitle" => "Sisäänkirjoittautuminen onnistui", |
288 | | -"loginsuccess" => "Olet nyt kirjautunut Wikipediaan käyttäjänä \"$1\".", |
| 288 | +"loginsuccess" => "Olet nyt kirjautunut {{grammar:illative|{{SITENAME}}}} käyttäjänä \"$1\".", |
289 | 289 | "nosuchuser" => "Käyttäjänimeä \"$1\" ei ole olemassa. |
290 | 290 | Tarkista kirjoititko nimen oikein, tai käytä alla olevaa lomaketta uuden käyttäjätunnuksen luomiseksi.", |
291 | 291 | "wrongpassword" => "Syöttämäsi salasana ei ole oikein. Ole hyvä ja yritä uudelleen.", |
292 | 292 | "mailmypassword" => "Lähetä minulle uusi salasana sähköpostilla", |
293 | | -"passwordremindertitle" => "Salasanamuistutus Wikipediasta", |
| 293 | +"passwordremindertitle" => "Salasanamuistutus {{grammar:elative|{{SITENAME}}}}", |
294 | 294 | "passwordremindertext" => "Joku (todennäköisesti sinä), IP-osoitteesta $1 |
295 | | -pyysi Wikipediaa lähettämään uuden salasanan. |
| 295 | +pyysi {{grammar:partitive|{{SITENAME}}}} lähettämään uuden salasanan. |
296 | 296 | Salasana käyttäjälle \"$2\" on nyt \"$3\". |
297 | 297 | Kirjaudu sisään ja vaihda heti salasanasi.", |
298 | 298 | "noemail" => "Käyttäjälle \"$1\" ei ole määritelty sähköpostiosoitetta.", |
— | — | @@ -308,9 +308,9 @@ |
309 | 309 | "blockedtitle" => "Pääsy käyttäjältä estetty", |
310 | 310 | "blockedtext" => "$1 on estänyt pääsysi Wikpediaan joko käyttäjänimesi tai IP-osoitteesi perusteella. |
311 | 311 | Syynä tähän on:<br>''$2''<p>Ota yhteyttä henkilöön $1 tai johonkuhun |
312 | | -muuhun [[Wikipedia:ylläpitäjät|ylläpitäjään]] keskustellaksesi estosta.", |
| 312 | +muuhun [[{{ns:project}}:ylläpitäjät|ylläpitäjään]] keskustellaksesi estosta.", |
313 | 313 | "newarticle" => "(uusi)", |
314 | | -"newarticletext" => "Olet seurannut linkkiä sivulle, jota ei ole vielä olemassa.Luodaksesi sivun, kirjoita alla olevaan laatikkoon (katso [[Wikipedia:Ohje|ohjeesta]] lisätietoja). Jos tarkoituksesi ei ole luoda uutta sivua, paina selaimesi '''back'''-painiketta.", |
| 314 | +"newarticletext" => "Olet seurannut linkkiä sivulle, jota ei ole vielä olemassa.Luodaksesi sivun, kirjoita alla olevaan laatikkoon (katso [[{{ns:project}}:Ohje|ohjeesta]] lisätietoja). Jos tarkoituksesi ei ole luoda uutta sivua, paina selaimesi '''back'''-painiketta.", |
315 | 315 | "anontalkpagetext" => "----\n''Tämä on nimettömän käyttäjän keskustelusivu. Hän ei ole joko luonut itselleen käyttäjätunnusta tai ei käytä sitä. Siksi hänet tunnistetaan nyt numeerisella [[IP-osoite|IP-osoitteella]]. Kyseinen IP-osoite voi olla useamman henkilön käytössä. Jos olet nimetön käyttäjä, ja sinusta tuntuu, että merkityksettömiä kommentteja on ohjattu sinulle, [[Erikoissivut:Sisäänkirjautuminen|luo itsellesi käyttäjätunnus tai kirjaudu sisään]] välttääksesi jatkossa sekaannukset muiden nimettömien käyttäjien kanssa.''", |
316 | 316 | "noarticletext" => "(Tällä sivulla ei ole vielä tekstiä)", |
317 | 317 | "updated" => "(Päivitetty)", |
— | — | @@ -329,7 +329,7 @@ |
330 | 330 | "editingold" => "<strong>VAROITUS: Olet muokkaamassa vanhentunutta versiota tämän sivun tekstistä. |
331 | 331 | Jos tallennat sen, kaikki tämän version jälkeen tehdyt muutokset katoavat.</strong>\n", |
332 | 332 | "yourdiff" => "Eroavaisuudet", |
333 | | -"copyrightwarning" => "Huomaa, että kaikki Wikipediaan tehtävät tuotokset |
| 333 | +"copyrightwarning" => "Huomaa, että kaikki {{grammar:illative|{{SITENAME}}}} tehtävät tuotokset |
334 | 334 | katsotaan julkaistuksi GNU Free Documentation -lisenssin mukaisesti |
335 | 335 | (katso sivulta $1 yksityiskohtia). Jos et halua, että kirjoitustasi |
336 | 336 | muokataan armottomasti ja uudelleenkäytetään vapaasti, älä tallenna kirjoitustasi.<br> |
— | — | @@ -437,13 +437,13 @@ |
438 | 438 | # |
439 | 439 | "changes" => "muutokset", |
440 | 440 | "recentchanges" => "Tuoreet muutokset", |
441 | | -"recentchangestext" => "Tältä sivulta voi seurata tuoreita Wikipediaan tehtyjä muutoksia. |
442 | | -[[Wikipedia:Tervetuloa Wikipediaan|Tervetuloa Wikipediaan!]] |
443 | | -Katso seuraavia sivuja: [[Wikipedia:Kysymyksiä ja vastauksia Wikipediasta|Useimmin kysyttyjä asioita]], [[Wikipedia:Sääntöjä ja ohjeita|Wikipedian säännöt]] |
444 | | -(erityisesti [[Wikipedia:Merkitsemiskäytäntöjä|Merkitsemiskäytännöt]], |
445 | | -[[Wikipedia::Neutraali näkökulma|Neutraali näkökulma]]), |
446 | | -ja [[Wikipedia:Aloittelijan virheitä|Aloittelijan virheitä]]. |
447 | | -Jos haluat nähdä Wikipedian onnistuvan, on erittäin tärkeää, että et lisää materiaalia, |
| 441 | +"recentchangestext" => "Tältä sivulta voi seurata tuoreita {{grammar:illative|{{SITENAME}}}} tehtyjä muutoksia. |
| 442 | +[[{{ns:project}}:Tervetuloa {{grammar:illative|{{SITENAME}}}}|Tervetuloa {{grammar:illative|{{SITENAME}}}}!]] |
| 443 | +Katso seuraavia sivuja: [[{{ns:project}}:Kysymyksiä ja vastauksia {{grammar:elative|{{SITENAME}}}}|Useimmin kysyttyjä asioita]], [[{{ns:project}}:Sääntöjä ja ohjeita|{{grammar:genitive|{{SITENAME}}}} säännöt]] |
| 444 | +(erityisesti [[{{ns:project}}:Merkitsemiskäytäntöjä|Merkitsemiskäytännöt]], |
| 445 | +[[{{ns:project}}:Neutraali näkökulma|Neutraali näkökulma]]), |
| 446 | +ja [[{{ns:project}}:Aloittelijan virheitä|Aloittelijan virheitä]]. |
| 447 | +Jos haluat nähdä {{grammar:genitive|{{SITENAME}}}} onnistuvan, on erittäin tärkeää, että et lisää materiaalia, |
448 | 448 | jonka käyttöä rajoittavat [[Wikipedia ja Tekijänoikeudet|tekijänoikeudet]]. |
449 | 449 | Oikeudelliset seuraukset voivat vahingoittaa projektia vakavasti, joten kunnioita muiden tekijänoikeuksia. |
450 | 450 | Katso myös [http://meta.wikipedia.org/wiki/Special:Recentchanges recent meta discussion].", |
— | — | @@ -478,7 +478,7 @@ |
479 | 479 | "uploadfile" => "Tallenna tiedosto", |
480 | 480 | "uploaderror" => "Tallennusvirhe", |
481 | 481 | "uploadtext" => "<strong>SEIS!</strong> Ennen kuin tallennat tänne, |
482 | | -tutustu ja seuraa Wikipedian <a href=\"" . |
| 482 | +tutustu ja seuraa {{grammar:genitive|{{SITENAME}}}} <a href=\"" . |
483 | 483 | wfLocalUrlE( "Wikipedia:Kuvien käyttösäännöt" ) . "\">kuvienkäyttösääntöihin</a>. |
484 | 484 | <p>Näyttääksesi tai etsiäksesi aiemmin tallennettuja kuvia, |
485 | 485 | katso <a href=\"" . wfLocalUrlE( "Erityissivut:Luettelo kuvista" ) . |
— | — | @@ -498,7 +498,7 @@ |
499 | 499 | Liittääksesi kuvan artikkeliin käytä seuraavan muotoista linkkiä |
500 | 500 | <b>[[Kuva:tiedosto.jpg]]</b> tai <b>[[Kuva:tiedosto.png|kuvausteksti]]</b> |
501 | 501 | tai <b>[[media:tiedosto.ogg]]</b> äänille.. |
502 | | -<p>Huomaa, että Wikipedian sivuilla muut voivat muokata tai poistaa tallentamasi |
| 502 | +<p>Huomaa, että {{grammar:genitive|{{SITENAME}}}} sivuilla muut voivat muokata tai poistaa tallentamasi |
503 | 503 | tiedoston, jos he katsovat, että se ei palvele tietosanakirjan tarpeita, ja |
504 | 504 | sinun tallentamismahdollisuutesi voidaan estää, jos väärinkäytät järjestelmää.", |
505 | 505 | "uploadlog" => "Tallennusloki", |
— | — | @@ -512,7 +512,7 @@ |
513 | 513 | "filedesc" => "Yhteenveto", |
514 | 514 | "affirmation" => "Lupaan, että tämän tiedoston tekijänoikeuksien haltija sallii sen |
515 | 515 | käytön $1 lisenssin mukaisesti.", |
516 | | -"copyrightpage" => "Wikipedia:Wikipedia ja tekijänoikeudet", |
| 516 | +"copyrightpage" => "{{ns:project}}:Wikipedia ja tekijänoikeudet", |
517 | 517 | "copyrightpagename" => "Wikipedia ja tekijänoikeudet", |
518 | 518 | "uploadedfiles" => "Tallennetut tiedostot", |
519 | 519 | "noaffirmation" => "Vahvista, ettei lähettämäsi tiedosto riko tekijänoikeuksia.", |
— | — | @@ -562,7 +562,7 @@ |
563 | 563 | "sitestats" => "Sivuston tilastoja", |
564 | 564 | "userstats" => "Käyttäjätilastoja", |
565 | 565 | "sitestatstext" => "Tietokannassa on yhteensä <b>$1</b> sivua. |
566 | | -Tähän on laskettu mukaan keskustelusivut, Wikipediasta kertovat sivut, |
| 566 | +Tähän on laskettu mukaan keskustelusivut, {{grammar:elative|{{SITENAME}}}} kertovat sivut, |
567 | 567 | lyhyet \"tynkäsivut\", uudelleenohjaukset sekä muita sivuja joita |
568 | 568 | ei voi pitää kunnollisina artikkeleina. Nämä poislukien tietokannassa on |
569 | 569 | <b>$2</b> sivua joita voidaan todennäköisesti pitää oikeina artikkeleina.<p> |
— | — | @@ -579,7 +579,7 @@ |
580 | 580 | |
581 | 581 | "maintenancebacklink" => "Takaisin ylläpitosivulle", |
582 | 582 | "disambiguations" => "Tarkennussivu", |
583 | | -"disambiguationspage" => "Wikipedia:Linkkejä_tarkennussivuihin", |
| 583 | +"disambiguationspage" => "{{ns:project}}:Linkkejä_tarkennussivuihin", |
584 | 584 | "disambiguationstext" => "Seuraavat artikkelit linkittävät <i>tarkennussivuun</i>. Sen sijasta niiden pitäisi linkittää asianomaiseen aiheeseen.<br>Sivua kohdellaan tarkennussivuna jos siihen on linkki sivulta $1.<br>Linkkejä muihin nimiavaruuksiin <i>ei</i> ole listattu tässä.", |
585 | 585 | "doubleredirects" => "Kaksinkertaiset uudelleenohjaukset", |
586 | 586 | "doubleredirectstext" => "<b>Huomio:</b> Tässä listassa saattaa olla virheitä. Yleensä kyseessä on sivu, jossa ensimmäisen #REDIRECT:in jälkeen on tekstiä.<br>\nJokaisella rivillä on linkit ensimmäiseen ja toiseen uudelleenohjaukseen sekä toisen uudelleenohjauksen kohteen ensimmäiseen riviin, eli yleensä \"oikeaan\" kohteeseen, johon ensimmäisen uudelleenohjauksen pitäisi osoittaa.", |
— | — | @@ -675,7 +675,7 @@ |
676 | 676 | "confirm" => "Vahvista", |
677 | 677 | "confirmdelete" => "Vahvista poisto", |
678 | 678 | "deletesub" => "(Poistetaan \"$1\")", |
679 | | -"confirmdeletetext" => "Olet tuhoamassa pysyvästi sivun tai kuvan ja kaiken sen historian tietokannasta. Vahvista, että todella aiot tehdä näin ja että ymmärrät seuraukset, sekä että teet tämän [[Wikipedia:Policy|Wikipedian käytännön]] mukaisesti.", |
| 679 | +"confirmdeletetext" => "Olet tuhoamassa pysyvästi sivun tai kuvan ja kaiken sen historian tietokannasta. Vahvista, että todella aiot tehdä näin ja että ymmärrät seuraukset, sekä että teet tämän [[{{ns:project}}:Policy|{{grammar:genitive|{{SITENAME}}}} käytännön]] mukaisesti.", |
680 | 680 | "confirmcheck" => "Kyllä, haluan varmasti poistaa tämän.", |
681 | 681 | "actioncomplete" => "Toiminta suoritettu", |
682 | 682 | "deletedtext" => "\"$1\" on poistettu. |
— | — | @@ -710,7 +710,7 @@ |
711 | 711 | "undeletebtn" => "Palauta!", |
712 | 712 | "undeletedarticle" => "palautettiin \"$1\"", |
713 | 713 | "undeletedtext" => "Artikkeli [[$1]] on palautettu onnistuneesti. |
714 | | -Lista viimeisimmistä poistoista ja palautuksista on sivulla [[Wikipedia:poistoloki]].", |
| 714 | +Lista viimeisimmistä poistoista ja palautuksista on sivulla [[{{ns:project}}:poistoloki]].", |
715 | 715 | |
716 | 716 | # Contributions |
717 | 717 | # |
— | — | @@ -735,7 +735,7 @@ |
736 | 736 | # Block/unblock IP |
737 | 737 | # |
738 | 738 | "blockip" => "Aseta muokkausesto", |
739 | | -"blockiptext" => "Käytä allaolevaa lomaketta estämään kirjoitusoikeudet tietyltä IP-osoitteelta. Näin pitäisi tehdä vain vandalismin estämiseksi, ja samalla on noudatettava [[Wikipedia:Policy|Wikipedian käytäntöjä]]. |
| 739 | +"blockiptext" => "Käytä allaolevaa lomaketta estämään kirjoitusoikeudet tietyltä IP-osoitteelta. Näin pitäisi tehdä vain vandalismin estämiseksi, ja samalla on noudatettava [[{{ns:project}}:Policy|{{grammar:genitive|{{SITENAME}}}} käytäntöjä]]. |
740 | 740 | Ilmoita syy alapuolella (esimerkiksi lista vandalisoiduista sivuista).", |
741 | 741 | "ipaddress" => "IP-osoite", |
742 | 742 | "ipbreason" => "Syy", |
— | — | @@ -775,12 +775,12 @@ |
776 | 776 | # SQL query |
777 | 777 | # |
778 | 778 | "asksql" => "SQL-kysely", |
779 | | -"asksqltext" => "Käytä allaolevaa lomaketta tehdäksesi suoria kyselyitä Wikipedian tietokannasta. |
| 779 | +"asksqltext" => "Käytä allaolevaa lomaketta tehdäksesi suoria kyselyitä {{grammar:genitive|{{SITENAME}}}} tietokannasta. |
780 | 780 | Merkkijonovakioita merkitään yksinkertaisilla lainausmerkeillä ('näin'). |
781 | 781 | Kyselyt voivat usein kuormittaa palvelinta pahastikin, joten käytä tätä toimintoa säästeliäästi.", |
782 | 782 | "sqlquery" => "Kirjoita kysely", |
783 | 783 | "querybtn" => "Lähetä kysely", |
784 | | -"selectonly" => "Vain Wikipedian kehittäjät voivat tehdä muita kuin \"SELECT\"-hakuja.", |
| 784 | +"selectonly" => "Vain {{grammar:genitive|{{SITENAME}}}} kehittäjät voivat tehdä muita kuin \"SELECT\"-hakuja.", |
785 | 785 | "querysuccessful" => "Kysely onnistui", |
786 | 786 | |
787 | 787 | # Move page |
— | — | @@ -817,6 +817,10 @@ |
818 | 818 | require_once( "LanguageUtf8.php" ); |
819 | 819 | |
820 | 820 | class LanguageFi extends LanguageUtf8 { |
| 821 | + /*function LanguageFi() { |
| 822 | + global $wgNamespaceNamesFi, $wgMetaNamespace; |
| 823 | + $wgNamespaceNamesFi[NS_WP_TALK] = 'Keskustelu_' . $this->convertGrammar( $wgMetaNamespace, 'elative' ); |
| 824 | + }*/ |
821 | 825 | |
822 | 826 | function getNamespaces() { |
823 | 827 | global $wgNamespaceNamesFi; |
— | — | @@ -932,8 +936,38 @@ |
933 | 937 | function getMessage( $key ) |
934 | 938 | { |
935 | 939 | global $wgAllMessagesFi; |
936 | | - return $wgAllMessagesFi[$key]; |
| 940 | + return @$wgAllMessagesFi[$key]; |
937 | 941 | } |
938 | 942 | |
| 943 | + # Convert from the nominative form of a noun to some other case |
| 944 | + # Invoked with {{grammar:case|word}} |
| 945 | + function convertGrammar( $word, $case ) { |
| 946 | + # These rules are not perfect, but they are currently only used for site names so it doesn't |
| 947 | + # matter if they are wrong sometimes. Just add a special case for your site name if necessary. |
| 948 | + switch ( $case ) { |
| 949 | + case 'genitive': |
| 950 | + $word = "{$word}n"; |
| 951 | + break; |
| 952 | + case 'elative': |
| 953 | + if ( mb_substr($word, -1) == 'y' ) { |
| 954 | + $word = "{$word}stä"; |
| 955 | + } else { |
| 956 | + $word = "{$word}sta"; |
| 957 | + } |
| 958 | + break; |
| 959 | + case 'partitive': |
| 960 | + if ( mb_substr($word, -1) == 'y' ) { |
| 961 | + $word = "{$word}ä"; |
| 962 | + } else { |
| 963 | + $word = "{$word}a"; |
| 964 | + } |
| 965 | + break; |
| 966 | + case 'illative': |
| 967 | + # Double the last letter and add "n" |
| 968 | + # mb_substr has a compatibility function in GlobalFunctions.php |
| 969 | + $word = $word . mb_substr($word,-1) . 'n'; |
| 970 | + } |
| 971 | + return $word; |
| 972 | + } |
939 | 973 | } |
940 | 974 | ?> |
Index: branches/REL1_3/phase3/languages/Language.php |
— | — | @@ -194,7 +194,8 @@ |
195 | 195 | MAG_NS => array( 0, 'NS:' ), |
196 | 196 | MAG_LOCALURL => array( 0, 'LOCALURL:' ), |
197 | 197 | MAG_LOCALURLE => array( 0, 'LOCALURLE:' ), |
198 | | - MAG_SERVER => array( 0, 'SERVER' ) |
| 198 | + MAG_SERVER => array( 0, 'SERVER' ), |
| 199 | + MAG_GRAMMAR => array( 0, 'GRAMMAR:' ) |
199 | 200 | ); |
200 | 201 | |
201 | 202 | #------------------------------------------------------------------- |
— | — | @@ -1786,11 +1787,17 @@ |
1787 | 1788 | return $ellipsis . $string; |
1788 | 1789 | } |
1789 | 1790 | } |
1790 | | - |
| 1791 | + |
1791 | 1792 | # Get a regex fragment for a single whitespace character |
1792 | 1793 | function getWhiteCharRegex() { |
1793 | 1794 | return '[\\s\\xa0_]'; |
1794 | 1795 | } |
| 1796 | + |
| 1797 | + # Grammatical transformations, needed for inflected languages |
| 1798 | + # Invoked by putting {{grammar:case|word}} in a message |
| 1799 | + function convertGrammar( $word, $case ) { |
| 1800 | + return $word; |
| 1801 | + } |
1795 | 1802 | } |
1796 | 1803 | |
1797 | 1804 | # This should fail gracefully if there's not a localization available |