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