8 require_once( 'LanguageUtf8.php' );
10 if (!$wgCachedMessageArrays) {
11 require_once('MessagesBs.php');
14 class LanguageBs
extends LanguageUtf8
{
15 private $mMessagesBs, $mNamespaceNamesBs = null;
17 private $mQuickbarSettingsBs = array(
18 'Nikakva', 'Pričvršćena lijevo', 'Pričvršćena desno', 'Plutajuća lijevo'
21 private $mSkinNamesBs = array(
22 'Obična', 'Nostalgija', 'Kelnsko plavo', 'Pedington', 'Monparnas'
25 private $mDateFormatsBs = array(
27 '06:12, 5. januar 2001.',
28 '06:12, 5 januar 2001',
31 '06:12, 5. jan 2001.',
33 '6:12, 5. januar 2001.',
34 '6:12, 5 januar 2001',
41 private $mMagicWordsBs = array(
43 MAG_REDIRECT
=> array( 0, '#Preusmjeri', '#redirect', '#preusmjeri', '#PREUSMJERI' ),
44 MAG_NOTOC
=> array( 0, '__NOTOC__', '__BEZSADRŽAJA__' ),
45 MAG_FORCETOC
=> array( 0, '__FORCETOC__', '__FORSIRANISADRŽAJ__' ),
46 MAG_TOC
=> array( 0, '__TOC__', '__SADRŽAJ__' ),
47 MAG_NOEDITSECTION
=> array( 0, '__NOEDITSECTION__', '__BEZ_IZMENA__', '__BEZIZMENA__' ),
48 MAG_START
=> array( 0, '__START__', '__POČETAK__' ),
49 MAG_END
=> array( 0, '__END__', '__KRAJ__' ),
50 MAG_CURRENTMONTH
=> array( 1, 'CURRENTMONTH', 'TRENUTNIMJESEC' ),
51 MAG_CURRENTMONTHNAME
=> array( 1, 'CURRENTMONTHNAME', 'TRENUTNIMJESECIME' ),
52 MAG_CURRENTMONTHNAMEGEN
=> array( 1, 'CURRENTMONTHNAMEGEN', 'TRENUTNIMJESECROD' ),
53 MAG_CURRENTMONTHABBREV
=> array( 1, 'CURRENTMONTHABBREV', 'TRENUTNIMJESECSKR' ),
54 MAG_CURRENTDAY
=> array( 1, 'CURRENTDAY', 'TRENUTNIDAN' ),
55 MAG_CURRENTDAYNAME
=> array( 1, 'CURRENTDAYNAME', 'TRENUTNIDANIME' ),
56 MAG_CURRENTYEAR
=> array( 1, 'CURRENTYEAR', 'TRENUTNAGODINA' ),
57 MAG_CURRENTTIME
=> array( 1, 'CURRENTTIME', 'TRENUTNOVRIJEME' ),
58 MAG_NUMBEROFARTICLES
=> array( 1, 'NUMBEROFARTICLES', 'BROJČLANAKA' ),
59 MAG_NUMBEROFFILES
=> array( 1, 'NUMBEROFFILES', 'BROJDATOTEKA', 'BROJFAJLOVA' ),
60 MAG_PAGENAME
=> array( 1, 'PAGENAME', 'STRANICA' ),
61 MAG_PAGENAMEE
=> array( 1, 'PAGENAMEE', 'STRANICE' ),
62 MAG_NAMESPACE
=> array( 1, 'NAMESPACE', 'IMENSKIPROSTOR' ),
63 MAG_NAMESPACEE
=> array( 1, 'NAMESPACEE', 'IMENSKIPROSTORI' ),
64 MAG_FULLPAGENAME
=> array( 1, 'FULLPAGENAME', 'PUNOIMESTRANE' ),
65 MAG_FULLPAGENAMEE
=> array( 1, 'FULLPAGENAMEE', 'PUNOIMESTRANEE' ),
66 MAG_MSG
=> array( 0, 'MSG:', 'POR:' ),
67 MAG_SUBST
=> array( 0, 'SUBST:', 'ZAMJENI:' ),
68 MAG_MSGNW
=> array( 0, 'MSGNW:', 'NVPOR:' ),
69 MAG_IMG_THUMBNAIL
=> array( 1, 'thumbnail', 'thumb', 'mini' ),
70 MAG_IMG_MANUALTHUMB
=> array( 1, 'thumbnail=$1', 'thumb=$1', 'mini=$1' ),
71 MAG_IMG_RIGHT
=> array( 1, 'right', 'desno', 'd' ),
72 MAG_IMG_LEFT
=> array( 1, 'left', 'lijevo', 'l' ),
73 MAG_IMG_NONE
=> array( 1, 'none', 'n', 'bez' ),
74 MAG_IMG_WIDTH
=> array( 1, '$1px', '$1piksel' , '$1p' ),
75 MAG_IMG_CENTER
=> array( 1, 'center', 'centre', 'centar', 'c' ),
76 MAG_IMG_FRAMED
=> array( 1, 'framed', 'enframed', 'frame', 'okvir', 'ram' ),
77 MAG_INT
=> array( 0, 'INT:', 'INT:' ),
78 MAG_SITENAME
=> array( 1, 'SITENAME', 'IMESAJTA' ),
79 MAG_NS
=> array( 0, 'NS:', 'IP:' ),
80 MAG_LOCALURL
=> array( 0, 'LOCALURL:', 'LOKALNAADRESA:' ),
81 MAG_LOCALURLE
=> array( 0, 'LOCALURLE:', 'LOKALNEADRESE:' ),
82 MAG_SERVER
=> array( 0, 'SERVER', 'SERVER' ),
83 MAG_SERVERNAME
=> array( 0, 'SERVERNAME', 'IMESERVERA' ),
84 MAG_SCRIPTPATH
=> array( 0, 'SCRIPTPATH', 'SKRIPTA' ),
85 MAG_GRAMMAR
=> array( 0, 'GRAMMAR:', 'GRAMATIKA:' ),
86 MAG_NOTITLECONVERT
=> array( 0, '__NOTITLECONVERT__', '__NOTC__', '__BEZTC__' ),
87 MAG_NOCONTENTCONVERT
=> array( 0, '__NOCONTENTCONVERT__', '__NOCC__', '__BEZCC__' ),
88 MAG_CURRENTWEEK
=> array( 1, 'CURRENTWEEK', 'TRENUTNASEDMICA' ),
89 MAG_CURRENTDOW
=> array( 1, 'CURRENTDOW', 'TRENUTNIDOV' ),
90 MAG_REVISIONID
=> array( 1, 'REVISIONID', 'IDREVIZIJE' ),
91 MAG_PLURAL
=> array( 0, 'PLURAL:', 'MNOŽINA:' ),
92 MAG_FULLURL
=> array( 0, 'FULLURL:', 'PUNURL:' ),
93 MAG_FULLURLE
=> array( 0, 'FULLURLE:', 'PUNURLE:' ),
94 MAG_LCFIRST
=> array( 0, 'LCFIRST:', 'LCPRVI:' ),
95 MAG_UCFIRST
=> array( 0, 'UCFIRST:', 'UCPRVI:' ),
96 MAG_LC
=> array( 0, 'LC:', 'LC:' ),
97 MAG_UC
=> array( 0, 'UC:', 'UC:' ),
100 function __construct() {
101 parent
::__construct();
103 global $wgAllMessagesBs;
104 $this->mMessagesBs
=& $wgAllMessagesBs;
106 global $wgMetaNamespace;
107 $this->mNamespaceNamesBs
= array(
108 NS_MEDIA
=> 'Medija',
109 NS_SPECIAL
=> 'Posebno',
111 NS_TALK
=> 'Razgovor',
112 NS_USER
=> 'Korisnik',
113 NS_USER_TALK
=> 'Razgovor_sa_korisnikom',
114 NS_PROJECT
=> $wgMetaNamespace,
115 NS_PROJECT_TALK
=> 'Razgovor_' . str_replace( ' ', '_',
116 $this->convertGrammar( $wgMetaNamespace, 'instrumental' ) ),
118 NS_IMAGE_TALK
=> 'Razgovor_o_slici',
119 NS_MEDIAWIKI
=> 'MedijaViki',
120 NS_MEDIAWIKI_TALK
=> 'Razgovor_o_MedijaVikiju',
121 NS_TEMPLATE
=> 'Šablon',
122 NS_TEMPLATE_TALK
=> 'Razgovor_o_šablonu',
124 NS_HELP_TALK
=> 'Razgovor_o_pomoći',
125 NS_CATEGORY
=> 'Kategorija',
126 NS_CATEGORY_TALK
=> 'Razgovor_o_kategoriji',
130 function getNamespaces() {
131 return $this->mNamespaceNamesBs + parent
::getNamespaces();
134 function getQuickbarSettings() {
135 return $this->mQuickbarSettingsBs
;
138 function getSkinNames() {
139 return $this->mSkinNamesBs + parent
::getSkinNames();
142 // Not implemented ??
143 /* function getDateFormats() {
144 return $this->mDateFormatsBs;
147 function getMessage( $key ) {
148 if( isset( $this->mMessagesBs
[$key] ) ) {
149 return $this->mMessagesBs
[$key];
151 return parent
::getMessage( $key );
155 function getAllMessages() {
156 return $this->mMessagesBs
;
159 function fallback8bitEncoding() {
163 function separatorTransformTable() {
164 return array(',' => '.', '.' => ',' );
167 function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
168 $count = str_replace ('.', '', $count);
169 if ($count > 10 && floor(($count %
100) / 10) == 1) {
172 switch ($count %
10) {
173 case 1: return $wordform1;
176 case 4: return $wordform2;
177 default: return $wordform3;
182 # Convert from the nominative form of a noun to some other case
183 # Invoked with {{GRAMMAR:case|word}}
185 * Cases: genitiv, dativ, akuzativ, vokativ, instrumental, lokativ
187 function convertGrammar( $word, $case ) {
188 global $wgGrammarForms;
189 if ( isset($wgGrammarForms['bs'][$case][$word]) ) {
190 return $wgGrammarForms['bs'][$case][$word];
193 case 'genitiv': # genitive
194 if ( $word == 'Wikipedia' ) {
195 $word = 'Wikipedije';
196 } elseif ( $word == 'Wikiknjige' ) {
197 $word = 'Wikiknjiga';
198 } elseif ( $word == 'Wikivijesti' ) {
199 $word = 'Wikivijesti';
200 } elseif ( $word == 'Wikicitati' ) {
201 $word = 'Wikicitata';
202 } elseif ( $word == 'Wikiizvor' ) {
203 $word = 'Wikiizvora';
204 } elseif ( $word == 'Vikirječnik' ) {
205 $word = 'Vikirječnika';
208 case 'dativ': # dative
209 if ( $word == 'Wikipedia' ) {
210 $word = 'Wikipediji';
211 } elseif ( $word == 'Wikiknjige' ) {
212 $word = 'Wikiknjigama';
213 } elseif ( $word == 'Wikicitati' ) {
214 $word = 'Wikicitatima';
215 } elseif ( $word == 'Wikivijesti' ) {
216 $word = 'Wikivijestima';
217 } elseif ( $word == 'Wikiizvor' ) {
218 $word = 'Wikiizvoru';
219 } elseif ( $word == 'Vikirječnik' ) {
220 $word = 'Vikirječniku';
223 case 'akuzativ': # akusative
224 if ( $word == 'Wikipedia' ) {
225 $word = 'Wikipediju';
226 } elseif ( $word == 'Wikiknjige' ) {
227 $word = 'Wikiknjige';
228 } elseif ( $word == 'Wikicitati' ) {
229 $word = 'Wikicitate';
230 } elseif ( $word == 'Wikivijesti' ) {
231 $word = 'Wikivijesti';
232 } elseif ( $word == 'Wikiizvor' ) {
233 $word = 'Wikiizvora';
234 } elseif ( $word == 'Vikirječnik' ) {
235 $word = 'Vikirječnika';
238 case 'vokativ': # vocative
239 if ( $word == 'Wikipedia' ) {
240 $word = 'Wikipedijo';
241 } elseif ( $word == 'Wikiknjige' ) {
242 $word = 'Wikiknjige';
243 } elseif ( $word == 'Wikicitati' ) {
244 $word = 'Wikicitati';
245 } elseif ( $word == 'Wikivijesti' ) {
246 $word = 'Wikivijesti';
247 } elseif ( $word == 'Wikiizvor' ) {
248 $word = 'Wikizivoru';
249 } elseif ( $word == 'Vikirječnik' ) {
250 $word = 'Vikirječniče';
253 case 'instrumental': # instrumental
254 if ( $word == 'Wikipedia' ) {
255 $word = 's Wikipediom';
256 } elseif ( $word == 'Wikiknjige' ) {
257 $word = 's Wikiknjigama';
258 } elseif ( $word == 'Wikicitati' ) {
259 $word = 's Wikicitatima';
260 } elseif ( $word == 'Wikivijesti' ) {
261 $word = 's Wikivijestima';
262 } elseif ( $word == 'Wikiizvor' ) {
263 $word = 's Wikiizvorom';
264 } elseif ( $word == 'Vikirječnik' ) {
265 $word = 's Vikirječnikom';
267 $word = 's ' . $word;
270 case 'lokativ': # locative
271 if ( $word == 'Wikipedia' ) {
272 $word = 'o Wikipediji';
273 } elseif ( $word == 'Wikiknjige' ) {
274 $word = 'o Wikiknjigama';
275 } elseif ( $word == 'Wikicitati' ) {
276 $word = 'o Wikicitatima';
277 } elseif ( $word == 'Wikivijesti' ) {
278 $word = 'o Wikivijestima';
279 } elseif ( $word == 'Wikiizvor' ) {
280 $word = 'o Wikiizvoru';
281 } elseif ( $word == 'Vikirječnik' ) {
282 $word = 'o Vikirječniku';
284 $word = 'o ' . $word;
289 return $word; # this will return the original value for 'nominativ' (nominative) and all undefined case values