Odmiana w MediaWiki

Z funus.net

Instalując MediaWiki nadajemy jej nazwę poprzez ustawienie odpowiedniej zmiennej w LocalSettings.php:

$wgSitename = "Najlepszy Serwis Ogłoszeniowy Świata";

Szybko zauważymy, że nazwa naszej wiki nie jest odmieniana tam, gdzie powinna. Na przykład: "O Najlepszy Serwis Ogłoszeniowy Świata", "W Najlepszy Serwis Ogłoszeniowy Świata ograniczono możliwość tworzenia nowych stron" itp. Można próbować podmieniać odpowiednie komunikaty systemowe, ale właściwym podejściem jest zdefiniowanie w LocalSettings.php zestawu form fleksyjnych dla poszczególnych przypadków.

W polskiej wersji językowej mogłoby to wyglądać następująco:

$wgGrammarForms['pl']['M.lp'] [$wgSitename] = "Najlepszy Serwis Ogłoszeniowy Świata";
$wgGrammarForms['pl']['D.lp'] [$wgSitename] = "Najlepszego Serwisu Ogłoszeniowego Świata";
$wgGrammarForms['pl']['C.lp'] [$wgSitename] = "Najlepszemu Serwisowi Ogłoszeniowemu Świata";
$wgGrammarForms['pl']['B.lp'] [$wgSitename] = "Najlepszy Serwis Ogłoszeniowy Świata";
$wgGrammarForms['pl']['MS.lp'][$wgSitename] = "Najlepszym Serwisie Ogłoszeniowym Świata";
$wgGrammarForms['pl']['N.lp'] [$wgSitename] = "Najlepszym Serwisem Ogłoszeniowym Świata";
$wgGrammarForms['pl']['W.lp'] [$wgSitename] = "Najlepszy Serwisie Ogłoszeniowy Świata!";

Czyli pierwszy indeks tablicy to kod języka (pl), drugi - skrótowe określenie przypadku dla danego języka, trzeci - podstawowa forma komunikatu. Używa się czegoś takiego poprzez makro {{GRAMMAR}}:

{{GRAMMAR:MS.lp|{{SITENAME}}}}

co powinno się rozwinąć do:

Najlepszym Serwisie Ogłoszeniowym Świata