Adding the hooks "AddMagicWordsXX" to allow addition of localized magic words.
[lhc/web/wiklou.git] / languages / LanguageBe.php
1 <?php
2 /** Belarusian (Беларуская мова)
3 *
4 * @package MediaWiki
5 * @subpackage Language
6 *
7 * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
8 * @bug 1638, 2135
9 * @link http://be.wikipedia.org/wiki/Talk:LanguageBe.php
10 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
11 * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
12 */
13
14 require_once('LanguageUtf8.php');
15
16 if (!$wgCachedMessageArrays) {
17 require_once('MessagesBe.php');
18 }
19
20 class LanguageBe extends LanguageUtf8 {
21 private $mMessagesBe, $mNamespaceNamesBe = null;
22
23 private $mQuickbarSettingsBe = array(
24 'Не паказваць', 'Замацаваная зьлева', 'Замацаваная справа', 'Рухомая зьлева'
25 );
26
27 private $mSkinNamesBe = array(
28 'standard' => 'Клясычны',
29 'nostalgia' => 'Настальгія',
30 'cologneblue' => 'Кёльнскі смутак',
31 'davinci' => 'Да Вінчы',
32 'mono' => 'Мона',
33 'monobook' => 'Монакніга',
34 'myskin' => 'MySkin',
35 'chick' => 'Цыпа'
36 );
37
38 private $mDateFormatsBe = array(
39 MW_DATE_DEFAULT,
40 '16:12, 15.01.2001',
41 MW_DATE_ISO,
42 );
43
44 private $mMagicWordsBe = array(
45 MAG_REDIRECT => array( 0, '#перанакіраваньне', '#redirect' ),
46 MAG_NOTOC => array( 0, '__NOTOC__', '__БЯЗЬ_ЗЬМЕСТУ__' ),
47 MAG_FORCETOC => array( 0, '__FORCETOC__', '__ЗЬМЕСТ_ПРЫМУСАМ__' ),
48 MAG_TOC => array( 0, '__TOC__', '__ЗЬМЕСТ__' ),
49 MAG_NOEDITSECTION => array( 0, '__NOEDITSECTION__', '__БЕЗ_РЭДАГАВАНЬНЯ_СЭКЦЫІ__' ),
50 MAG_START => array( 0, '__START__', '__ПАЧАТАК__' ),
51 MAG_CURRENTMONTH => array( 1, 'CURRENTMONTH', 'БЯГУЧЫ_МЕСЯЦ' ),
52 MAG_CURRENTMONTHNAME => array( 1, 'CURRENTMONTHNAME', 'НАЗВА_БЯГУЧАГА_МЕСЯЦА' ),
53 MAG_CURRENTMONTHNAMEGEN => array( 1, 'CURRENTMONTHNAMEGEN', 'НАЗВА_БЯГУЧАГА_МЕСЯЦА_Ў_РОДНЫМ_СКЛОНЕ' ),
54 MAG_CURRENTMONTHABBREV => array( 1, 'CURRENTMONTHABBREV', 'СКАРОЧАНАЯ_НАЗВА_БЯГУЧАГА_МЕСЯЦА' ),
55 MAG_CURRENTDAY => array( 1, 'CURRENTDAY', 'БЯГУЧЫ_ДЗЕНЬ' ),
56 MAG_CURRENTDAY2 => array( 1, 'CURRENTDAY2', 'БЯГУЧЫ_ДЗЕНЬ_2' ),
57 MAG_CURRENTDAYNAME => array( 1, 'CURRENTDAYNAME', 'НАЗВА_БЯГУЧАГА_ДНЯ' ),
58 MAG_CURRENTYEAR => array( 1, 'CURRENTYEAR', 'БЯГУЧЫ_ГОД' ),
59 MAG_CURRENTTIME => array( 1, 'CURRENTTIME', 'БЯГУЧЫ_ЧАС' ),
60 MAG_NUMBEROFPAGES => array( 1, 'NUMBEROFPAGES', 'КОЛЬКАСЬЦЬ_СТАРОНАК' ),
61 MAG_NUMBEROFARTICLES => array( 1, 'NUMBEROFARTICLES', 'КОЛЬКАСЬЦЬ_АРТЫКУЛАЎ' ),
62 MAG_NUMBEROFFILES => array( 1, 'NUMBEROFFILES', 'КОЛЬКАСЬЦЬ_ФАЙЛАЎ' ),
63 MAG_NUMBEROFUSERS => array( 1, 'NUMBEROFUSERS', 'КОЛЬКАСЬЦЬ_УДЗЕЛЬНІКАЎ' ),
64 MAG_PAGENAME => array( 1, 'PAGENAME', 'НАЗВА_СТАРОНКІ' ),
65 MAG_PAGENAMEE => array( 1, 'PAGENAMEE', 'НАЗВА_СТАРОНКІ_2' ),
66 MAG_NAMESPACE => array( 1, 'NAMESPACE', 'ПРАСТОРА_НАЗВАЎ' ),
67 MAG_NAMESPACEE => array( 1, 'NAMESPACEE', 'ПРАСТОРА_НАЗВАЎ_2' ),
68 MAG_TALKSPACE => array( 1, 'TALKSPACE', 'ПРАСТОРА_НАЗВАЎ_АБМЕРКАВАНЬНЯ' ),
69 MAG_TALKSPACEE => array( 1, 'TALKSPACEE', 'ПРАСТОРА_НАЗВАЎ_АБМЕРКАВАНЬНЯ_2' ),
70 MAG_SUBJECTSPACE => array( 1, 'SUBJECTSPACE', 'ARTICLESPACE', 'ПРАСТОРА_НАЗВАЎ_ПРАДМЕТУ', 'ПРАСТОРА_НАЗВАЎ_АРТЫКУЛА' ),
71 MAG_SUBJECTSPACEE => array( 1, 'SUBJECTSPACEE', 'ARTICLESPACEE', 'ПРАСТОРА_НАЗВАЎ_ПРАДМЕТУ_2', 'ПРАСТОРА_НАЗВАЎ_АРТЫКУЛА_2' ),
72 MAG_FULLPAGENAME => array( 1, 'FULLPAGENAME', 'ПОЎНАЯ_НАЗВА_СТАРОНКІ' ),
73 MAG_FULLPAGENAMEE => array( 1, 'FULLPAGENAMEE', 'ПОЎНАЯ_НАЗВА_СТАРОНКІ_2' ),
74 MAG_SUBPAGENAME => array( 1, 'SUBPAGENAME', 'НАЗВА_ПАДСТАРОНКІ' ),
75 MAG_SUBPAGENAMEE => array( 1, 'SUBPAGENAMEE', 'НАЗВА_ПАДСТАРОНКІ_2' ),
76 MAG_BASEPAGENAME => array( 1, 'BASEPAGENAME', 'НАЗВА_БАЗАВАЙ_СТАРОНКІ' ),
77 MAG_BASEPAGENAMEE => array( 1, 'BASEPAGENAMEE', 'НАЗВА_БАЗАВАЙ_СТАРОНКІ_2' ),
78 MAG_TALKPAGENAME => array( 1, 'TALKPAGENAME', 'НАЗВА_СТАРОНКІ_АБМЕРКАВАНЬНЯ' ),
79 MAG_TALKPAGENAMEE => array( 1, 'TALKPAGENAMEE', 'НАЗВА_СТАРОНКІ_АБМЕРКАВАНЬНЯ_2' ),
80 MAG_SUBJECTPAGENAME => array( 1, 'SUBJECTPAGENAME', 'ARTICLEPAGENAME', 'НАЗВА_СТАРОНКІ_ПРАДМЕТУ', 'НАЗВА_СТАРОНКІ_АРТЫКУЛА' ),
81 MAG_SUBJECTPAGENAMEE => array( 1, 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE', 'НАЗВА_СТАРОНКІ_ПРАДМЕТУ_2', 'НАЗВА_СТАРОНКІ_АРТЫКУЛА_2' ),
82 MAG_MSG => array( 0, 'MSG:', 'ПАВЕДАМЛЕНЬНЕ:' ),
83 MAG_SUBST => array( 0, 'SUBST:', 'ПАДСТАНОЎКА:' ),
84 MAG_MSGNW => array( 0, 'MSGNW:', 'ПАВЕДАМЛЕНЬНЕ_БЯЗЬ_ВІКІ:' ),
85 MAG_END => array( 0, '__END__', '__КАНЕЦ__' ),
86 MAG_IMG_THUMBNAIL => array( 1, 'thumbnail', 'thumb', 'значак', 'міні' ),
87 MAG_IMG_MANUALTHUMB => array( 1, 'thumbnail=$1', 'thumb=$1', 'значак=$1', 'міні=$1' ),
88 MAG_IMG_RIGHT => array( 1, 'right', 'справа' ),
89 MAG_IMG_LEFT => array( 1, 'left', 'зьлева' ),
90 MAG_IMG_NONE => array( 1, 'none', 'няма' ),
91 MAG_IMG_WIDTH => array( 1, '$1px', '$1пкс' ),
92 MAG_IMG_CENTER => array( 1, 'center', 'centre', 'цэнтар' ),
93 MAG_IMG_FRAMED => array( 1, 'framed', 'enframed', 'frame', 'рамка' ),
94 MAG_INT => array( 0, 'INT:' ),
95 MAG_SITENAME => array( 1, 'SITENAME', 'НАЗВА_САЙТУ' ),
96 MAG_NS => array( 0, 'NS:', 'ПН:' ),
97 MAG_LOCALURL => array( 0, 'LOCALURL:', 'ЛЯКАЛЬНЫ_АДРАС:' ),
98 MAG_LOCALURLE => array( 0, 'LOCALURLE:', 'ЛЯКАЛЬНЫ_АДРАС_2:' ),
99 MAG_SERVER => array( 0, 'SERVER', 'СЭРВЭР' ),
100 MAG_SERVERNAME => array( 0, 'SERVERNAME', 'НАЗВА_СЭРВЭРА' ),
101 MAG_SCRIPTPATH => array( 0, 'SCRIPTPATH', 'ШЛЯХ_ДА_СКРЫПТА' ),
102 MAG_GRAMMAR => array( 0, 'GRAMMAR:', 'ГРАМАТЫКА:' ),
103 MAG_NOTITLECONVERT => array( 0, '__NOTITLECONVERT__', '__NOTC__', '__БЕЗ_КАНВЭРТАЦЫІ_НАЗВЫ__' ),
104 MAG_NOCONTENTCONVERT => array( 0, '__NOCONTENTCONVERT__', '__NOCC__', '__БЕЗ_КАНВЭРТАЦЫІ_ТЭКСТУ__' ),
105 MAG_CURRENTWEEK => array( 1, 'CURRENTWEEK', 'БЯГУЧЫ_ТЫДЗЕНЬ' ),
106 MAG_CURRENTDOW => array( 1, 'CURRENTDOW', 'БЯГУЧЫ_ДЗЕНЬ_ТЫДНЯ' ),
107 MAG_REVISIONID => array( 1, 'REVISIONID', 'ID_ВЭРСІІ' ),
108 MAG_PLURAL => array( 0, 'PLURAL:', 'МНОЖНЫ_ЛІК:'),
109 MAG_FULLURL => array( 0, 'FULLURL:', 'ПОЎНЫ_АДРАС:' ),
110 MAG_FULLURLE => array( 0, 'FULLURLE:', 'ПОЎНЫ_АДРАС_2:' ),
111 MAG_LCFIRST => array( 0, 'LCFIRST:', 'ПЕРШАЯ_ЛІТАРА_МАЛАЯ:' ),
112 MAG_UCFIRST => array( 0, 'UCFIRST:', 'ПЕРШАЯ_ЛІТАРА_ВЯЛІКАЯ:' ),
113 MAG_LC => array( 0, 'LC:', 'МАЛЫМІ_ЛІТАРАМІ:' ),
114 MAG_UC => array( 0, 'UC:', 'ВЯЛІКІМІ_ЛІТАРАМІ:' ),
115 MAG_RAW => array( 0, 'RAW:', 'НЕАПРАЦАВАНЫ' ),
116 MAG_DISPLAYTITLE => array( 1, 'DISPLAYTITLE', 'АДЛЮСТРАВАНАЯ_НАЗВА' ),
117 MAG_RAWSUFFIX => array( 1, 'R', 'Н' ),
118 MAG_NEWSECTIONLINK => array( 1, '__NEWSECTIONLINK__', '__СПАСЫЛКА_НА_НОВУЮ_СЭКЦЫЮ__' ),
119 MAG_CURRENTVERSION => array( 1, 'CURRENTVERSION', 'БЯГУЧАЯ_ВЭРСІЯ' ),
120 MAG_URLENCODE => array( 0, 'URLENCODE:' ),
121 );
122
123 function __construct() {
124 parent::__construct();
125
126 global $wgAllMessagesBe;
127 $this->mMessagesBe =& $wgAllMessagesBe;
128
129 global $wgMetaNamespace;
130 $this->mNamespaceNamesBe = array(
131 NS_MEDIA => 'Мэдыя',
132 NS_SPECIAL => 'Спэцыяльныя',
133 NS_MAIN => '',
134 NS_TALK => 'Абмеркаваньне',
135 NS_USER => 'Удзельнік',
136 NS_USER_TALK => 'Гутаркі_ўдзельніка',
137 NS_PROJECT => $wgMetaNamespace,
138 NS_PROJECT_TALK => 'Абмеркаваньне_' . $wgMetaNamespace,
139 NS_IMAGE => 'Выява',
140 NS_IMAGE_TALK => 'Абмеркаваньне_выявы',
141 NS_MEDIAWIKI => 'MediaWiki',
142 NS_MEDIAWIKI_TALK => 'Абмеркаваньне_MediaWiki',
143 NS_TEMPLATE => 'Шаблён',
144 NS_TEMPLATE_TALK => 'Абмеркаваньне_шаблёну',
145 NS_HELP => 'Дапамога',
146 NS_HELP_TALK => 'Абмеркаваньне_дапамогі',
147 NS_CATEGORY => 'Катэгорыя',
148 NS_CATEGORY_TALK => 'Абмеркаваньне_катэгорыі'
149 );
150
151 wfRunHooks( 'AddMagicWordsBe', array( &$this->mMagicWordsBe ) );
152 }
153
154 function getNamespaces() {
155 return $this->mNamespaceNamesBe + parent::getNamespaces();
156 }
157
158 function getQuickbarSettings() {
159 return $this->mQuickbarSettingsBe;
160 }
161
162 function getSkinNames() {
163 return $this->mSkinNamesBe + parent::getSkinNames();
164 }
165
166 function &getMagicWords() {
167 $t = $this->mMagicWordsBe + parent::getMagicWords();
168 return $t;
169 }
170
171 function getDateFormats() {
172 return $this->mDateFormatsBe;
173 }
174
175 function getMessage( $key ) {
176 if( isset( $this->mMessagesBe[$key] ) ) {
177 return $this->mMessagesBe[$key];
178 } else {
179 return parent::getMessage( $key );
180 }
181 }
182
183 function getAllMessages() {
184 return $this->mMessagesBe;
185 }
186
187 // The date and time format
188 function date( $ts, $adj = false, $format = true, $timecorrection = false ) {
189 $datePreference = $this->dateFormat( $format );
190 if( $datePreference == MW_DATE_ISO ) {
191 return parent::date( $ts, $adj, $datePreference, $timecorrection );
192 } else {
193 if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); } # Adjust based on the timezone setting.
194 // 20050310001506 => 10.03.2005
195 $date = (substr( $ts, 6, 2 )) . '.' . substr( $ts, 4, 2 ) . '.' . substr( $ts, 0, 4 );
196 return $date;
197 }
198 }
199
200 function separatorTransformTable() {
201 return array(',' => '.', '.' => ',' );
202 }
203
204 function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
205 $count = str_replace ('.', '', $count);
206 if ($count > 10 && floor(($count % 100) / 10) == 1) {
207 return $wordform3;
208 } else {
209 switch ($count % 10) {
210 case 1: return $wordform1;
211 case 2:
212 case 3:
213 case 4: return $wordform2;
214 default: return $wordform3;
215 }
216 }
217 }
218
219 # Convert from the nominative form of a noun to some other case
220 # Invoked with {{GRAMMAR:case|word}}
221 /**
222 * Cases: родны, вінавальны, месны
223 */
224 function convertGrammar( $word, $case ) {
225 switch ( $case ) {
226 case 'родны': # genitive
227 if ( $word == 'Вікіпэдыя' ) {
228 $word = 'Вікіпэдыі';
229 } elseif ( $word == 'ВікіСлоўнік' ) {
230 $word = 'ВікіСлоўніка';
231 } elseif ( $word == 'ВікіКнігі' ) {
232 $word = 'ВікіКніг';
233 } elseif ( $word == 'ВікіКрыніца' ) {
234 $word = 'ВікіКрыніцы';
235 } elseif ( $word == 'ВікіНавіны' ) {
236 $word = 'ВікіНавін';
237 } elseif ( $word == 'ВікіВіды' ) {
238 $word = 'ВікіВідаў';
239 }
240 break;
241 case 'вінавальны': # akusative
242 if ( $word == 'Вікіпэдыя' ) {
243 $word = 'Вікіпэдыю';
244 } elseif ( $word == 'ВікіСлоўнік' ) {
245 $word = 'ВікіСлоўнік';
246 } elseif ( $word == 'ВікіКнігі' ) {
247 $word = 'ВікіКнігі';
248 } elseif ( $word == 'ВікіКрыніца' ) {
249 $word = 'ВікіКрыніцу';
250 } elseif ( $word == 'ВікіНавіны' ) {
251 $word = 'ВікіНавіны';
252 } elseif ( $word == 'ВікіВіды' ) {
253 $word = 'ВікіВіды';
254 }
255 break;
256 case 'месны': # prepositional
257 if ( $word == 'Вікіпэдыя' ) {
258 $word = 'Вікіпэдыі';
259 } elseif ( $word == 'ВікіСлоўнік' ) {
260 $word = 'ВікіСлоўніку';
261 } elseif ( $word == 'ВікіКнігі' ) {
262 $word = 'ВікіКнігах';
263 } elseif ( $word == 'ВікіКрыніца' ) {
264 $word = 'ВікіКрыніцы';
265 } elseif ( $word == 'ВікіНавіны' ) {
266 $word = 'ВікіНавінах';
267 } elseif ( $word == 'ВікіВіды' ) {
268 $word = 'ВікіВідах';
269 }
270 break;
271 }
272
273 return $word; # this will return the original value for 'назоўны' (nominative) and all undefined case values
274 }
275
276 }
277
278 ?>