summaryrefslogtreecommitdiff
path: root/languages
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2006-10-11 20:21:25 +0000
committerPierre Schmitz <pierre@archlinux.de>2006-10-11 20:21:25 +0000
commitd81f562b712f2387fa02290bf2ca86392ab356f2 (patch)
treed666cdefbe6ac320827a2c6cb473581b46e22c4c /languages
parent183851b06bd6c52f3cae5375f433da720d410447 (diff)
Aktualisierung auf Version 1.8.1
Diffstat (limited to 'languages')
-rw-r--r--languages/Language.php1503
-rw-r--r--languages/LanguageConverter.php140
-rw-r--r--languages/Names.php27
-rw-r--r--languages/classes/LanguageAz.php17
-rw-r--r--languages/classes/LanguageBe.php89
-rw-r--r--languages/classes/LanguageBg.php25
-rw-r--r--languages/classes/LanguageBs.php137
-rw-r--r--languages/classes/LanguageCs.php87
-rw-r--r--languages/classes/LanguageEo.php74
-rw-r--r--languages/classes/LanguageEt.php21
-rw-r--r--languages/classes/LanguageFi.php165
-rw-r--r--languages/classes/LanguageFr.php17
-rw-r--r--languages/classes/LanguageGa.php52
-rw-r--r--languages/classes/LanguageGsw.php69
-rw-r--r--languages/classes/LanguageHe.php70
-rw-r--r--languages/classes/LanguageHr.php26
-rw-r--r--languages/classes/LanguageHu.php53
-rw-r--r--languages/classes/LanguageJa.php42
-rw-r--r--languages/classes/LanguageKo.php57
-rw-r--r--languages/classes/LanguageKsh.php35
-rw-r--r--languages/classes/LanguageLa.php37
-rw-r--r--languages/classes/LanguageLt.php22
-rw-r--r--languages/classes/LanguageLv.php57
-rw-r--r--languages/classes/LanguagePt_br.php17
-rw-r--r--languages/classes/LanguageRmy.php72
-rw-r--r--languages/classes/LanguageRu.php87
-rw-r--r--languages/classes/LanguageSk.php94
-rw-r--r--languages/classes/LanguageSl.php124
-rw-r--r--languages/classes/LanguageSr.deps.php10
-rw-r--r--languages/classes/LanguageSr.php181
-rw-r--r--languages/classes/LanguageSr_ec.php28
-rw-r--r--languages/classes/LanguageSr_el.deps.php9
-rw-r--r--languages/classes/LanguageSr_el.php28
-rw-r--r--languages/classes/LanguageTr.php18
-rw-r--r--languages/classes/LanguageTyv.php233
-rw-r--r--languages/classes/LanguageVi.php74
-rw-r--r--languages/classes/LanguageWa.php71
-rw-r--r--languages/classes/LanguageZh.deps.php10
-rw-r--r--languages/classes/LanguageZh.php101
-rw-r--r--languages/classes/LanguageZh_cn.php27
-rw-r--r--languages/classes/LanguageZh_yue.php27
-rw-r--r--languages/messages/MessagesAb.php5
-rw-r--r--languages/messages/MessagesAf.php694
-rw-r--r--languages/messages/MessagesAn.php24
-rw-r--r--languages/messages/MessagesAr.php607
-rw-r--r--languages/messages/MessagesArc.php15
-rw-r--r--languages/messages/MessagesAs.php20
-rw-r--r--languages/messages/MessagesAst.php29
-rw-r--r--languages/messages/MessagesAv.php9
-rw-r--r--languages/messages/MessagesAy.php9
-rw-r--r--languages/messages/MessagesAz.php674
-rw-r--r--languages/messages/MessagesBa.php201
-rw-r--r--languages/messages/MessagesBar.php17
-rw-r--r--languages/messages/MessagesBat_smg.php9
-rw-r--r--languages/messages/MessagesBe.php837
-rw-r--r--languages/messages/MessagesBg.php1379
-rw-r--r--languages/messages/MessagesBm.php9
-rw-r--r--languages/messages/MessagesBn.php133
-rw-r--r--languages/messages/MessagesBo.php20
-rw-r--r--languages/messages/MessagesBpy.php11
-rw-r--r--languages/messages/MessagesBr.php1096
-rw-r--r--languages/messages/MessagesBs.php1093
-rw-r--r--languages/messages/MessagesCa.php1247
-rw-r--r--languages/messages/MessagesCe.php9
-rw-r--r--languages/messages/MessagesCs.php2080
-rw-r--r--languages/messages/MessagesCsb.php326
-rw-r--r--languages/messages/MessagesCv.php244
-rw-r--r--languages/messages/MessagesCy.php845
-rw-r--r--languages/messages/MessagesDa.php1340
-rw-r--r--languages/messages/MessagesDe.php1972
-rw-r--r--languages/messages/MessagesDv.php9
-rw-r--r--languages/messages/MessagesDz.php22
-rw-r--r--languages/messages/MessagesEl.php1769
-rw-r--r--languages/messages/MessagesEn.php2457
-rw-r--r--languages/messages/MessagesEnRTL.php5
-rw-r--r--languages/messages/MessagesEo.php1250
-rw-r--r--languages/messages/MessagesEs.php1708
-rw-r--r--languages/messages/MessagesEt.php897
-rw-r--r--languages/messages/MessagesEu.php201
-rw-r--r--languages/messages/MessagesFa.php924
-rw-r--r--languages/messages/MessagesFi.php1908
-rw-r--r--languages/messages/MessagesFo.php116
-rw-r--r--languages/messages/MessagesFr.php1533
-rw-r--r--languages/messages/MessagesFur.php727
-rw-r--r--languages/messages/MessagesFy.php861
-rw-r--r--languages/messages/MessagesGa.php1785
-rw-r--r--languages/messages/MessagesGn.php9
-rw-r--r--languages/messages/MessagesGsw.php793
-rw-r--r--languages/messages/MessagesGu.php19
-rw-r--r--languages/messages/MessagesHe.php2118
-rw-r--r--languages/messages/MessagesHi.php128
-rw-r--r--languages/messages/MessagesHr.php1558
-rw-r--r--languages/messages/MessagesHu.php1052
-rw-r--r--languages/messages/MessagesIa.php801
-rw-r--r--languages/messages/MessagesId.php1919
-rw-r--r--languages/messages/MessagesIi.php9
-rw-r--r--languages/messages/MessagesIs.php705
-rw-r--r--languages/messages/MessagesIt.php1839
-rw-r--r--languages/messages/MessagesJa.php1673
-rw-r--r--languages/messages/MessagesJbo.php23
-rw-r--r--languages/messages/MessagesJv.php45
-rw-r--r--languages/messages/MessagesKa.php574
-rw-r--r--languages/messages/MessagesKk.php10
-rw-r--r--languages/messages/MessagesKk_cn.php10
-rw-r--r--languages/messages/MessagesKm.php22
-rw-r--r--languages/messages/MessagesKn.php376
-rw-r--r--languages/messages/MessagesKo.php1204
-rw-r--r--languages/messages/MessagesKs.php11
-rw-r--r--languages/messages/MessagesKsh.php2345
-rw-r--r--languages/messages/MessagesKu.php774
-rw-r--r--languages/messages/MessagesKv.php9
-rw-r--r--languages/messages/MessagesLa.php822
-rw-r--r--languages/messages/MessagesLi.php941
-rw-r--r--languages/messages/MessagesLo.php22
-rw-r--r--languages/messages/MessagesLt.php942
-rw-r--r--languages/messages/MessagesLv.php978
-rw-r--r--languages/messages/MessagesMk.php1708
-rw-r--r--languages/messages/MessagesMl.php23
-rw-r--r--languages/messages/MessagesMs.php816
-rw-r--r--languages/messages/MessagesMzn.php23
-rw-r--r--languages/messages/MessagesNah.php51
-rw-r--r--languages/messages/MessagesNap.php10
-rw-r--r--languages/messages/MessagesNds.php1170
-rw-r--r--languages/messages/MessagesNds_nl.php60
-rw-r--r--languages/messages/MessagesNl.php1900
-rw-r--r--languages/messages/MessagesNn.php1601
-rw-r--r--languages/messages/MessagesNo.php1367
-rw-r--r--languages/messages/MessagesNon.php11
-rw-r--r--languages/messages/MessagesNv.php72
-rw-r--r--languages/messages/MessagesOc.php800
-rw-r--r--languages/messages/MessagesOr.php22
-rw-r--r--languages/messages/MessagesOs.php217
-rw-r--r--languages/messages/MessagesPa.php410
-rw-r--r--languages/messages/MessagesPl.php1793
-rw-r--r--languages/messages/MessagesPms.php1699
-rw-r--r--languages/messages/MessagesPs.php17
-rw-r--r--languages/messages/MessagesPt.php1998
-rw-r--r--languages/messages/MessagesPt_br.php789
-rw-r--r--languages/messages/MessagesQu.php9
-rw-r--r--languages/messages/MessagesRmy.php337
-rw-r--r--languages/messages/MessagesRo.php1626
-rw-r--r--languages/messages/MessagesRu.php2168
-rw-r--r--languages/messages/MessagesSc.php655
-rw-r--r--languages/messages/MessagesSd.php12
-rw-r--r--languages/messages/MessagesSk.php1889
-rw-r--r--languages/messages/MessagesSl.php1586
-rw-r--r--languages/messages/MessagesSq.php1496
-rw-r--r--languages/messages/MessagesSr.php12
-rw-r--r--languages/messages/MessagesSr_ec.php2125
-rw-r--r--languages/messages/MessagesSr_el.php2128
-rw-r--r--languages/messages/MessagesSr_jc.php10
-rw-r--r--languages/messages/MessagesSr_jl.php10
-rw-r--r--languages/messages/MessagesSu.php1029
-rw-r--r--languages/messages/MessagesSv.php1524
-rw-r--r--languages/messages/MessagesTa.php730
-rw-r--r--languages/messages/MessagesTe.php836
-rw-r--r--languages/messages/MessagesTg.php34
-rw-r--r--languages/messages/MessagesTh.php214
-rw-r--r--languages/messages/MessagesTlh.php30
-rw-r--r--languages/messages/MessagesTr.php1116
-rw-r--r--languages/messages/MessagesTt.php119
-rw-r--r--languages/messages/MessagesTyv.php306
-rw-r--r--languages/messages/MessagesUdm.php51
-rw-r--r--languages/messages/MessagesUg.php10
-rw-r--r--languages/messages/MessagesUk.php826
-rw-r--r--languages/messages/MessagesUr.php33
-rw-r--r--languages/messages/MessagesUz.php11
-rw-r--r--languages/messages/MessagesVec.php1174
-rw-r--r--languages/messages/MessagesVi.php1315
-rw-r--r--languages/messages/MessagesWa.php1768
-rw-r--r--languages/messages/MessagesXal.php55
-rw-r--r--languages/messages/MessagesYi.php469
-rw-r--r--languages/messages/MessagesZa.php9
-rw-r--r--languages/messages/MessagesZh.php7
-rw-r--r--languages/messages/MessagesZh_cn.php855
-rw-r--r--languages/messages/MessagesZh_hk.php10
-rw-r--r--languages/messages/MessagesZh_sg.php10
-rw-r--r--languages/messages/MessagesZh_tw.php844
-rw-r--r--languages/messages/MessagesZh_yue.php2127
179 files changed, 102489 insertions, 533 deletions
diff --git a/languages/Language.php b/languages/Language.php
index cbb5e316..454d60e1 100644
--- a/languages/Language.php
+++ b/languages/Language.php
@@ -4,7 +4,10 @@
* @subpackage Language
*/
-if( defined( 'MEDIAWIKI' ) ) {
+if( !defined( 'MEDIAWIKI' ) ) {
+ echo "This file is part of MediaWiki, it is not a valid entry point.\n";
+ exit( 1 );
+}
#
# In general you should not make customizations in these language files
@@ -18,294 +21,26 @@ if( defined( 'MEDIAWIKI' ) ) {
# files for examples.
#
-#--------------------------------------------------------------------------
-# Language-specific text
-#--------------------------------------------------------------------------
-
-if($wgMetaNamespace === FALSE)
- $wgMetaNamespace = str_replace( ' ', '_', $wgSitename );
-
-/* private */ $wgNamespaceNamesEn = array(
- NS_MEDIA => 'Media',
- NS_SPECIAL => 'Special',
- NS_MAIN => '',
- NS_TALK => 'Talk',
- NS_USER => 'User',
- NS_USER_TALK => 'User_talk',
- NS_PROJECT => $wgMetaNamespace,
- NS_PROJECT_TALK => $wgMetaNamespace . '_talk',
- NS_IMAGE => 'Image',
- NS_IMAGE_TALK => 'Image_talk',
- NS_MEDIAWIKI => 'MediaWiki',
- NS_MEDIAWIKI_TALK => 'MediaWiki_talk',
- NS_TEMPLATE => 'Template',
- NS_TEMPLATE_TALK => 'Template_talk',
- NS_HELP => 'Help',
- NS_HELP_TALK => 'Help_talk',
- NS_CATEGORY => 'Category',
- NS_CATEGORY_TALK => 'Category_talk',
-);
-
-if(isset($wgExtraNamespaces)) {
- $wgNamespaceNamesEn=$wgNamespaceNamesEn+$wgExtraNamespaces;
-}
-
-/* private */ $wgDefaultUserOptionsEn = array(
- 'quickbar' => 1,
- 'underline' => 2,
- 'cols' => 80,
- 'rows' => 25,
- 'searchlimit' => 20,
- 'contextlines' => 5,
- 'contextchars' => 50,
- 'skin' => $wgDefaultSkin,
- 'math' => 1,
- 'rcdays' => 7,
- 'rclimit' => 50,
- 'wllimit' => 250,
- 'highlightbroken' => 1,
- 'stubthreshold' => 0,
- 'previewontop' => 1,
- 'editsection' => 1,
- 'editsectiononrightclick'=> 0,
- 'showtoc' => 1,
- 'showtoolbar' => 1,
- 'date' => 0,
- 'imagesize' => 2,
- 'thumbsize' => 2,
- 'rememberpassword' => 0,
- 'enotifwatchlistpages' => 0,
- 'enotifusertalkpages' => 1,
- 'enotifminoredits' => 0,
- 'enotifrevealaddr' => 0,
- 'shownumberswatching' => 1,
- 'fancysig' => 0,
- 'externaleditor' => 0,
- 'externaldiff' => 0,
- 'showjumplinks' => 1,
- 'numberheadings' => 0,
- 'uselivepreview' => 0,
- 'watchlistdays' => 3.0,
-);
-
-/* private */ $wgQuickbarSettingsEn = array(
- 'None', 'Fixed left', 'Fixed right', 'Floating left', 'Floating right'
-);
-
-/* private */ $wgSkinNamesEn = array(
- 'standard' => 'Classic',
- 'nostalgia' => 'Nostalgia',
- 'cologneblue' => 'Cologne Blue',
- 'davinci' => 'DaVinci',
- 'mono' => 'Mono',
- 'monobook' => 'MonoBook',
- 'myskin' => 'MySkin',
- 'chick' => 'Chick'
-);
-
-/* private */ $wgMathNamesEn = array(
- MW_MATH_PNG => 'mw_math_png',
- MW_MATH_SIMPLE => 'mw_math_simple',
- MW_MATH_HTML => 'mw_math_html',
- MW_MATH_SOURCE => 'mw_math_source',
- MW_MATH_MODERN => 'mw_math_modern',
- MW_MATH_MATHML => 'mw_math_mathml'
-);
-
-/**
- * Whether to use user or default setting in Language::date()
- *
- * NOTE: the array string values are no longer important!
- * The actual date format functions are now called for the selection in
- * Special:Preferences, and the 'datedefault' message for MW_DATE_DEFAULT.
- *
- * The array keys make up the set of formats which this language allows
- * the user to select. It's exposed via Language::getDateFormats().
- *
- * @private
- */
-$wgDateFormatsEn = array(
- MW_DATE_DEFAULT => 'No preference',
- MW_DATE_DMY => '16:12, 15 January 2001',
- MW_DATE_MDY => '16:12, January 15, 2001',
- MW_DATE_YMD => '16:12, 2001 January 15',
- MW_DATE_ISO => '2001-01-15 16:12:34'
-);
-
-/* private */ $wgUserTogglesEn = array(
- 'highlightbroken',
- 'justify',
- 'hideminor',
- 'extendwatchlist',
- 'usenewrc',
- 'numberheadings',
- 'showtoolbar',
- 'editondblclick',
- 'editsection',
- 'editsectiononrightclick',
- 'showtoc',
- 'rememberpassword',
- 'editwidth',
- 'watchcreations',
- 'watchdefault',
- 'minordefault',
- 'previewontop',
- 'previewonfirst',
- 'nocache',
- 'enotifwatchlistpages',
- 'enotifusertalkpages',
- 'enotifminoredits',
- 'enotifrevealaddr',
- 'shownumberswatching',
- 'fancysig',
- 'externaleditor',
- 'externaldiff',
- 'showjumplinks',
- 'uselivepreview',
- 'autopatrol',
- 'forceeditsummary',
- 'watchlisthideown',
- 'watchlisthidebots',
-);
-
-/* private */ $wgBookstoreListEn = array(
- 'AddALL' => 'http://www.addall.com/New/Partner.cgi?query=$1&type=ISBN',
- 'PriceSCAN' => 'http://www.pricescan.com/books/bookDetail.asp?isbn=$1',
- 'Barnes & Noble' => 'http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1',
- 'Amazon.com' => 'http://www.amazon.com/exec/obidos/ISBN=$1'
-);
-
# Read language names
global $wgLanguageNames;
-/** */
require_once( 'Names.php' );
-$wgLanguageNamesEn =& $wgLanguageNames;
-
-
-/* private */ $wgWeekdayNamesEn = array(
- 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday',
- 'friday', 'saturday'
-);
+global $wgInputEncoding, $wgOutputEncoding;
+/**
+ * These are always UTF-8, they exist only for backwards compatibility
+ */
+$wgInputEncoding = "UTF-8";
+$wgOutputEncoding = "UTF-8";
-/* private */ $wgMonthNamesEn = array(
- 'january', 'february', 'march', 'april', 'may_long', 'june',
- 'july', 'august', 'september', 'october', 'november',
- 'december'
-);
-/* private */ $wgMonthNamesGenEn = array(
- 'january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen', 'june-gen',
- 'july-gen', 'august-gen', 'september-gen', 'october-gen', 'november-gen',
- 'december-gen'
-);
-
-/* private */ $wgMonthAbbreviationsEn = array(
- 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug',
- 'sep', 'oct', 'nov', 'dec'
-);
-
-# Note to translators:
-# Please include the English words as synonyms. This allows people
-# from other wikis to contribute more easily.
-#
-/* private */ $wgMagicWordsEn = array(
-# ID CASE SYNONYMS
- MAG_REDIRECT => array( 0, '#REDIRECT' ),
- MAG_NOTOC => array( 0, '__NOTOC__' ),
- MAG_NOGALLERY => array( 0, '__NOGALLERY__' ),
- MAG_FORCETOC => array( 0, '__FORCETOC__' ),
- MAG_TOC => array( 0, '__TOC__' ),
- MAG_NOEDITSECTION => array( 0, '__NOEDITSECTION__' ),
- MAG_START => array( 0, '__START__' ),
- MAG_CURRENTMONTH => array( 1, 'CURRENTMONTH' ),
- MAG_CURRENTMONTHNAME => array( 1, 'CURRENTMONTHNAME' ),
- MAG_CURRENTMONTHNAMEGEN => array( 1, 'CURRENTMONTHNAMEGEN' ),
- MAG_CURRENTMONTHABBREV => array( 1, 'CURRENTMONTHABBREV' ),
- MAG_CURRENTDAY => array( 1, 'CURRENTDAY' ),
- MAG_CURRENTDAY2 => array( 1, 'CURRENTDAY2' ),
- MAG_CURRENTDAYNAME => array( 1, 'CURRENTDAYNAME' ),
- MAG_CURRENTYEAR => array( 1, 'CURRENTYEAR' ),
- MAG_CURRENTTIME => array( 1, 'CURRENTTIME' ),
- MAG_NUMBEROFPAGES => array( 1, 'NUMBEROFPAGES' ),
- MAG_NUMBEROFARTICLES => array( 1, 'NUMBEROFARTICLES' ),
- MAG_NUMBEROFFILES => array( 1, 'NUMBEROFFILES' ),
- MAG_NUMBEROFUSERS => array( 1, 'NUMBEROFUSERS' ),
- MAG_PAGENAME => array( 1, 'PAGENAME' ),
- MAG_PAGENAMEE => array( 1, 'PAGENAMEE' ),
- MAG_NAMESPACE => array( 1, 'NAMESPACE' ),
- MAG_NAMESPACEE => array( 1, 'NAMESPACEE' ),
- MAG_TALKSPACE => array( 1, 'TALKSPACE' ),
- MAG_TALKSPACEE => array( 1, 'TALKSPACEE' ),
- MAG_SUBJECTSPACE => array( 1, 'SUBJECTSPACE', 'ARTICLESPACE' ),
- MAG_SUBJECTSPACEE => array( 1, 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
- MAG_FULLPAGENAME => array( 1, 'FULLPAGENAME' ),
- MAG_FULLPAGENAMEE => array( 1, 'FULLPAGENAMEE' ),
- MAG_SUBPAGENAME => array( 1, 'SUBPAGENAME' ),
- MAG_SUBPAGENAMEE => array( 1, 'SUBPAGENAMEE' ),
- MAG_BASEPAGENAME => array( 1, 'BASEPAGENAME' ),
- MAG_BASEPAGENAMEE => array( 1, 'BASEPAGENAMEE' ),
- MAG_TALKPAGENAME => array( 1, 'TALKPAGENAME' ),
- MAG_TALKPAGENAMEE => array( 1, 'TALKPAGENAMEE' ),
- MAG_SUBJECTPAGENAME => array( 1, 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
- MAG_SUBJECTPAGENAMEE => array( 1, 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
- MAG_MSG => array( 0, 'MSG:' ),
- MAG_SUBST => array( 0, 'SUBST:' ),
- MAG_MSGNW => array( 0, 'MSGNW:' ),
- MAG_END => array( 0, '__END__' ),
- MAG_IMG_THUMBNAIL => array( 1, 'thumbnail', 'thumb' ),
- MAG_IMG_MANUALTHUMB => array( 1, 'thumbnail=$1', 'thumb=$1'),
- MAG_IMG_RIGHT => array( 1, 'right' ),
- MAG_IMG_LEFT => array( 1, 'left' ),
- MAG_IMG_NONE => array( 1, 'none' ),
- MAG_IMG_WIDTH => array( 1, '$1px' ),
- MAG_IMG_CENTER => array( 1, 'center', 'centre' ),
- MAG_IMG_FRAMED => array( 1, 'framed', 'enframed', 'frame' ),
- MAG_INT => array( 0, 'INT:' ),
- MAG_SITENAME => array( 1, 'SITENAME' ),
- MAG_NS => array( 0, 'NS:' ),
- MAG_LOCALURL => array( 0, 'LOCALURL:' ),
- MAG_LOCALURLE => array( 0, 'LOCALURLE:' ),
- MAG_SERVER => array( 0, 'SERVER' ),
- MAG_SERVERNAME => array( 0, 'SERVERNAME' ),
- MAG_SCRIPTPATH => array( 0, 'SCRIPTPATH' ),
- MAG_GRAMMAR => array( 0, 'GRAMMAR:' ),
- MAG_NOTITLECONVERT => array( 0, '__NOTITLECONVERT__', '__NOTC__'),
- MAG_NOCONTENTCONVERT => array( 0, '__NOCONTENTCONVERT__', '__NOCC__'),
- MAG_CURRENTWEEK => array( 1, 'CURRENTWEEK' ),
- MAG_CURRENTDOW => array( 1, 'CURRENTDOW' ),
- MAG_REVISIONID => array( 1, 'REVISIONID' ),
- MAG_PLURAL => array( 0, 'PLURAL:' ),
- MAG_FULLURL => array( 0, 'FULLURL:' ),
- MAG_FULLURLE => array( 0, 'FULLURLE:' ),
- MAG_LCFIRST => array( 0, 'LCFIRST:' ),
- MAG_UCFIRST => array( 0, 'UCFIRST:' ),
- MAG_LC => array( 0, 'LC:' ),
- MAG_UC => array( 0, 'UC:' ),
- MAG_RAW => array( 0, 'RAW:' ),
- MAG_DISPLAYTITLE => array( 1, 'DISPLAYTITLE' ),
- MAG_RAWSUFFIX => array( 1, 'R' ),
- MAG_NEWSECTIONLINK => array( 1, '__NEWSECTIONLINK__' ),
- MAG_CURRENTVERSION => array( 1, 'CURRENTVERSION' ),
- MAG_URLENCODE => array( 0, 'URLENCODE:' ),
- MAG_CURRENTTIMESTAMP => array( 1, 'CURRENTTIMESTAMP' ),
- MAG_DIRECTIONMARK => array( 1, 'DIRECTIONMARK', 'DIRMARK' ),
- MAG_LANGUAGE => array( 0, '#LANGUAGE:' ),
- MAG_CONTENTLANGUAGE => array( 1, 'CONTENTLANGUAGE', 'CONTENTLANG' ),
- MAG_PAGESINNAMESPACE => array( 1, 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
- MAG_NUMBEROFADMINS => array( 1, 'NUMBEROFADMINS' ),
- MAG_FORMATNUM => array( 0, 'FORMATNUM' ),
-
-);
-
-if (!$wgCachedMessageArrays) {
- require_once('Messages.php');
+if( function_exists( 'mb_strtoupper' ) ) {
+ mb_internal_encoding('UTF-8');
}
/* a fake language converter */
-class fakeConverter {
+class FakeConverter {
var $mLang;
- function fakeConverter($langobj) {$this->mLang = $langobj;}
+ function FakeConverter($langobj) {$this->mLang = $langobj;}
function convert($t, $i) {return $t;}
function parserConvert($t, $p) {return $t;}
function getVariants() { return array( $this->mLang->getCode() ); }
@@ -313,9 +48,10 @@ class fakeConverter {
function findVariantLink(&$l, &$n) {}
function getExtraHashOptions() {return '';}
function getParsedTitle() {return '';}
- function markNoConversion($text) {return $text;}
+ function markNoConversion($text, $noParse=false) {return $text;}
function convertCategoryKey( $key ) {return $key; }
-
+ function convertLinkToAllVariants($text){ return array( $this->mLang->getCode() => $text); }
+ function setNoTitleConvert(){}
}
#--------------------------------------------------------------------------
@@ -323,21 +59,106 @@ class fakeConverter {
#--------------------------------------------------------------------------
class Language {
- var $mConverter;
+ var $mConverter, $mVariants, $mCode, $mLoaded = false;
+
+ static public $mLocalisationKeys = array( 'fallback', 'namespaceNames',
+ 'quickbarSettings', 'skinNames', 'mathNames',
+ 'bookstoreList', 'magicWords', 'messages', 'rtl', 'digitTransformTable',
+ 'separatorTransformTable', 'fallback8bitEncoding', 'linkPrefixExtension',
+ 'defaultUserOptionOverrides', 'linkTrail', 'namespaceAliases',
+ 'dateFormats', 'datePreferences', 'datePreferenceMigrationMap',
+ 'defaultDateFormat', 'extraUserToggles' );
+
+ static public $mMergeableMapKeys = array( 'messages', 'namespaceNames', 'mathNames',
+ 'dateFormats', 'defaultUserOptionOverrides', 'magicWords' );
+
+ static public $mMergeableListKeys = array( 'extraUserToggles' );
+
+ static public $mLocalisationCache = array();
+
+ static public $mWeekdayMsgs = array(
+ 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday',
+ 'friday', 'saturday'
+ );
+
+ static public $mWeekdayAbbrevMsgs = array(
+ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'
+ );
+
+ static public $mMonthMsgs = array(
+ 'january', 'february', 'march', 'april', 'may_long', 'june',
+ 'july', 'august', 'september', 'october', 'november',
+ 'december'
+ );
+ static public $mMonthGenMsgs = array(
+ 'january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen', 'june-gen',
+ 'july-gen', 'august-gen', 'september-gen', 'october-gen', 'november-gen',
+ 'december-gen'
+ );
+ static public $mMonthAbbrevMsgs = array(
+ 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug',
+ 'sep', 'oct', 'nov', 'dec'
+ );
+
+ /**
+ * Create a language object for a given language code
+ */
+ static function factory( $code ) {
+ global $IP;
+ static $recursionLevel = 0;
+
+ if ( $code == 'en' ) {
+ $class = 'Language';
+ } else {
+ $class = 'Language' . str_replace( '-', '_', ucfirst( $code ) );
+ // Preload base classes to work around APC/PHP5 bug
+ if ( file_exists( "$IP/languages/classes/$class.deps.php" ) ) {
+ include_once("$IP/languages/classes/$class.deps.php");
+ }
+ if ( file_exists( "$IP/languages/classes/$class.php" ) ) {
+ include_once("$IP/languages/classes/$class.php");
+ }
+ }
+
+ if ( $recursionLevel > 5 ) {
+ throw new MWException( "Language fallback loop detected when creating class $class\n" );
+ }
+
+ if( ! class_exists( $class ) ) {
+ $fallback = Language::getFallbackFor( $code );
+ ++$recursionLevel;
+ $lang = Language::factory( $fallback );
+ --$recursionLevel;
+ $lang->setCode( $code );
+ } else {
+ $lang = new $class;
+ }
+
+ return $lang;
+ }
+
function __construct() {
- $this->mConverter = new fakeConverter($this);
+ $this->mConverter = new FakeConverter($this);
+ // Set the code to the name of the descendant
+ if ( get_class( $this ) == 'Language' ) {
+ $this->mCode = 'en';
+ } else {
+ $this->mCode = str_replace( '_', '-', strtolower( substr( get_class( $this ), 8 ) ) );
+ }
}
/**
- * Exports the default user options as defined in
- * $wgDefaultUserOptionsEn, user preferences can override some of these
- * depending on what's in (Local|Default)Settings.php and some defines.
- *
+ * Hook which will be called if this is the content language.
+ * Descendants can use this to register hook functions or modify globals
+ */
+ function initContLang() {}
+
+ /**
+ * @deprecated
* @return array
*/
function getDefaultUserOptions() {
- global $wgDefaultUserOptionsEn;
- return $wgDefaultUserOptionsEn;
+ return User::getDefaultOptions();
}
/**
@@ -345,16 +166,16 @@ class Language {
* @return array
*/
function getBookstoreList() {
- global $wgBookstoreListEn;
- return $wgBookstoreListEn;
+ $this->load();
+ return $this->bookstoreList;
}
/**
* @return array
*/
function getNamespaces() {
- global $wgNamespaceNamesEn;
- return $wgNamespaceNamesEn;
+ $this->load();
+ return $this->namespaceNames;
}
/**
@@ -407,13 +228,13 @@ class Language {
* @return mixed An integer if $text is a valid value otherwise false
*/
function getNsIndex( $text ) {
- $ns = $this->getNamespaces();
-
- foreach ( $ns as $i => $n ) {
- if ( strcasecmp( $n, $text ) == 0)
- return $i;
+ $this->load();
+ $index = @$this->mNamespaceIds[$this->lc($text)];
+ if ( is_null( $index ) ) {
+ return false;
+ } else {
+ return $index;
}
- return false;
}
/**
@@ -423,7 +244,7 @@ class Language {
* @return string
*/
function getVariantname( $code ) {
- return wfMsg( "variantname-$code" );
+ return $this->getMessageFromDB( "variantname-$code" );
}
function specialPage( $name ) {
@@ -431,77 +252,122 @@ class Language {
}
function getQuickbarSettings() {
- global $wgQuickbarSettingsEn;
- return $wgQuickbarSettingsEn;
+ $this->load();
+ return $this->quickbarSettings;
}
function getSkinNames() {
- global $wgSkinNamesEn;
- return $wgSkinNamesEn;
+ $this->load();
+ return $this->skinNames;
}
function getMathNames() {
- global $wgMathNamesEn;
- return $wgMathNamesEn;
+ $this->load();
+ return $this->mathNames;
}
+ function getDatePreferences() {
+ $this->load();
+ return $this->datePreferences;
+ }
+
function getDateFormats() {
- global $wgDateFormatsEn;
- return $wgDateFormatsEn;
+ $this->load();
+ return $this->dateFormats;
+ }
+
+ function getDefaultDateFormat() {
+ $this->load();
+ return $this->defaultDateFormat;
+ }
+
+ function getDatePreferenceMigrationMap() {
+ $this->load();
+ return $this->datePreferenceMigrationMap;
+ }
+
+ function getDefaultUserOptionOverrides() {
+ $this->load();
+ return $this->defaultUserOptionOverrides;
}
- function getUserToggles() {
- global $wgUserTogglesEn;
- return $wgUserTogglesEn;
+ function getExtraUserToggles() {
+ $this->load();
+ return $this->extraUserToggles;
}
function getUserToggle( $tog ) {
- return wfMsg( "tog-$tog" );
+ return $this->getMessageFromDB( "tog-$tog" );
+ }
+
+ /**
+ * Get language names, indexed by code.
+ * If $customisedOnly is true, only returns codes with a messages file
+ */
+ function getLanguageNames( $customisedOnly = false ) {
+ global $wgLanguageNames;
+ if ( !$customisedOnly ) {
+ return $wgLanguageNames;
+ }
+
+ global $IP;
+ $messageFiles = glob( "$IP/languages/messages/Messages*.php" );
+ $names = array();
+ foreach ( $messageFiles as $file ) {
+ if( preg_match( '/Messages([A-Z][a-z_]+)\.php$/', $file, $m ) ) {
+ $code = str_replace( '_', '-', strtolower( $m[1] ) );
+ if ( isset( $wgLanguageNames[$code] ) ) {
+ $names[$code] = $wgLanguageNames[$code];
+ }
+ }
+ }
+ return $names;
}
- function getLanguageNames() {
- global $wgLanguageNamesEn;
- return $wgLanguageNamesEn;
+ /**
+ * Ugly hack to get a message maybe from the MediaWiki namespace, if this
+ * language object is the content or user language.
+ */
+ function getMessageFromDB( $msg ) {
+ global $wgContLang, $wgLang;
+ if ( $wgContLang->getCode() == $this->getCode() ) {
+ # Content language
+ return wfMsgForContent( $msg );
+ } elseif ( $wgLang->getCode() == $this->getCode() ) {
+ # User language
+ return wfMsg( $msg );
+ } else {
+ # Neither, get from localisation
+ return $this->getMessage( $msg );
+ }
}
function getLanguageName( $code ) {
- global $wgLanguageNamesEn;
- if ( ! array_key_exists( $code, $wgLanguageNamesEn ) ) {
+ global $wgLanguageNames;
+ if ( ! array_key_exists( $code, $wgLanguageNames ) ) {
return '';
}
- return $wgLanguageNamesEn[$code];
+ return $wgLanguageNames[$code];
}
function getMonthName( $key ) {
- global $wgMonthNamesEn, $wgContLang;
- // see who called us and use the correct message function
- if( get_class( $wgContLang->getLangObj() ) == get_class( $this ) )
- return wfMsgForContent($wgMonthNamesEn[$key-1]);
- else
- return wfMsg($wgMonthNamesEn[$key-1]);
+ return $this->getMessageFromDB( self::$mMonthMsgs[$key-1] );
}
- /* by default we just return base form */
function getMonthNameGen( $key ) {
- return $this->getMonthName( $key );
+ return $this->getMessageFromDB( self::$mMonthGenMsgs[$key-1] );
}
function getMonthAbbreviation( $key ) {
- global $wgMonthAbbreviationsEn, $wgContLang;
- // see who called us and use the correct message function
- if( get_class( $wgContLang->getLangObj() ) == get_class( $this ) )
- return wfMsgForContent(@$wgMonthAbbreviationsEn[$key-1]);
- else
- return wfMsg(@$wgMonthAbbreviationsEn[$key-1]);
+ return $this->getMessageFromDB( self::$mMonthAbbrevMsgs[$key-1] );
}
function getWeekdayName( $key ) {
- global $wgWeekdayNamesEn, $wgContLang;
- // see who called us and use the correct message function
- if( get_class( $wgContLang->getLangObj() ) == get_class( $this ) )
- return wfMsgForContent($wgWeekdayNamesEn[$key-1]);
- else
- return wfMsg($wgWeekdayNamesEn[$key-1]);
+ return $this->getMessageFromDB( self::$mWeekdayMsgs[$key-1] );
+ }
+
+ function getWeekdayAbbreviation( $key ) {
+ return $this->getMessageFromDB( self::$mWeekdayAbbrevMsgs[$key-1] );
}
/**
@@ -511,7 +377,6 @@ class Language {
* @param mixed $tz adjust the time by this amount (default false,
* mean we get user timecorrection setting)
* @return int
-
*/
function userAdjust( $ts, $tz = false ) {
global $wgUser, $wgLocalTZoffset;
@@ -553,6 +418,228 @@ class Language {
}
/**
+ * This is a workalike of PHP's date() function, but with better
+ * internationalisation, a reduced set of format characters, and a better
+ * escaping format.
+ *
+ * Supported format characters are dDjlNwzWFmMntLYyaAgGhHiscrU. See the
+ * PHP manual for definitions. There are a number of extensions, which
+ * start with "x":
+ *
+ * xn Do not translate digits of the next numeric format character
+ * xN Toggle raw digit (xn) flag, stays set until explicitly unset
+ * xr Use roman numerals for the next numeric format character
+ * xx Literal x
+ * xg Genitive month name
+ *
+ * Characters enclosed in double quotes will be considered literal (with
+ * the quotes themselves removed). Unmatched quotes will be considered
+ * literal quotes. Example:
+ *
+ * "The month is" F => The month is January
+ * i's" => 20'11"
+ *
+ * Backslash escaping is also supported.
+ *
+ * @param string $format
+ * @param string $ts 14-character timestamp
+ * YYYYMMDDHHMMSS
+ * 01234567890123
+ */
+ function sprintfDate( $format, $ts ) {
+ $s = '';
+ $raw = false;
+ $roman = false;
+ $unix = false;
+ $rawToggle = false;
+ for ( $p = 0; $p < strlen( $format ); $p++ ) {
+ $num = false;
+ $code = $format[$p];
+ if ( $code == 'x' && $p < strlen( $format ) - 1 ) {
+ $code .= $format[++$p];
+ }
+
+ switch ( $code ) {
+ case 'xx':
+ $s .= 'x';
+ break;
+ case 'xn':
+ $raw = true;
+ break;
+ case 'xN':
+ $rawToggle = !$rawToggle;
+ break;
+ case 'xr':
+ $roman = true;
+ break;
+ case 'xg':
+ $s .= $this->getMonthNameGen( substr( $ts, 4, 2 ) );
+ break;
+ case 'd':
+ $num = substr( $ts, 6, 2 );
+ break;
+ case 'D':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $s .= $this->getWeekdayAbbreviation( date( 'w', $unix ) + 1 );
+ break;
+ case 'j':
+ $num = intval( substr( $ts, 6, 2 ) );
+ break;
+ case 'l':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $s .= $this->getWeekdayName( date( 'w', $unix ) + 1 );
+ break;
+ case 'N':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $w = date( 'w', $unix );
+ $num = $w ? $w : 7;
+ break;
+ case 'w':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = date( 'w', $unix );
+ break;
+ case 'z':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = date( 'z', $unix );
+ break;
+ case 'W':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = date( 'W', $unix );
+ break;
+ case 'F':
+ $s .= $this->getMonthName( substr( $ts, 4, 2 ) );
+ break;
+ case 'm':
+ $num = substr( $ts, 4, 2 );
+ break;
+ case 'M':
+ $s .= $this->getMonthAbbreviation( substr( $ts, 4, 2 ) );
+ break;
+ case 'n':
+ $num = intval( substr( $ts, 4, 2 ) );
+ break;
+ case 't':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = date( 't', $unix );
+ break;
+ case 'L':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = date( 'L', $unix );
+ break;
+ case 'Y':
+ $num = substr( $ts, 0, 4 );
+ break;
+ case 'y':
+ $num = substr( $ts, 2, 2 );
+ break;
+ case 'a':
+ $s .= intval( substr( $ts, 8, 2 ) ) < 12 ? 'am' : 'pm';
+ break;
+ case 'A':
+ $s .= intval( substr( $ts, 8, 2 ) ) < 12 ? 'AM' : 'PM';
+ break;
+ case 'g':
+ $h = substr( $ts, 8, 2 );
+ $num = $h % 12 ? $h % 12 : 12;
+ break;
+ case 'G':
+ $num = intval( substr( $ts, 8, 2 ) );
+ break;
+ case 'h':
+ $h = substr( $ts, 8, 2 );
+ $num = sprintf( '%02d', $h % 12 ? $h % 12 : 12 );
+ break;
+ case 'H':
+ $num = substr( $ts, 8, 2 );
+ break;
+ case 'i':
+ $num = substr( $ts, 10, 2 );
+ break;
+ case 's':
+ $num = substr( $ts, 12, 2 );
+ break;
+ case 'c':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $s .= date( 'c', $unix );
+ break;
+ case 'r':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $s .= date( 'r', $unix );
+ break;
+ case 'U':
+ if ( !$unix ) $unix = wfTimestamp( TS_UNIX, $ts );
+ $num = $unix;
+ break;
+ case '\\':
+ # Backslash escaping
+ if ( $p < strlen( $format ) - 1 ) {
+ $s .= $format[++$p];
+ } else {
+ $s .= '\\';
+ }
+ break;
+ case '"':
+ # Quoted literal
+ if ( $p < strlen( $format ) - 1 ) {
+ $endQuote = strpos( $format, '"', $p + 1 );
+ if ( $endQuote === false ) {
+ # No terminating quote, assume literal "
+ $s .= '"';
+ } else {
+ $s .= substr( $format, $p + 1, $endQuote - $p - 1 );
+ $p = $endQuote;
+ }
+ } else {
+ # Quote at end of string, assume literal "
+ $s .= '"';
+ }
+ break;
+ default:
+ $s .= $format[$p];
+ }
+ if ( $num !== false ) {
+ if ( $rawToggle || $raw ) {
+ $s .= $num;
+ $raw = false;
+ } elseif ( $roman ) {
+ $s .= self::romanNumeral( $num );
+ $roman = false;
+ } else {
+ $s .= $this->formatNum( $num, true );
+ }
+ $num = false;
+ }
+ }
+ return $s;
+ }
+
+ /**
+ * Roman number formatting up to 3000
+ */
+ static function romanNumeral( $num ) {
+ static $table = array(
+ array( '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X' ),
+ array( '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', 'C' ),
+ array( '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', 'M' ),
+ array( '', 'M', 'MM', 'MMM' )
+ );
+
+ $num = intval( $num );
+ if ( $num > 3000 || $num <= 0 ) {
+ return $num;
+ }
+
+ $s = '';
+ for ( $pow10 = 1000, $i = 3; $i >= 0; $pow10 /= 10, $i-- ) {
+ if ( $num >= $pow10 ) {
+ $s .= $table[$i][floor($num / $pow10)];
+ }
+ $num = $num % $pow10;
+ }
+ return $s;
+ }
+
+ /**
* This is meant to be used by time(), date(), and timeanddate() to get
* the date preference they're supposed to use, it should be used in
* all children.
@@ -561,6 +648,7 @@ class Language {
* function timeanddate([...], $format = true) {
* $datePreference = $this->dateFormat($format);
* [...]
+ * }
*</code>
*
* @param mixed $usePrefs: if true, the user's preference is used
@@ -573,9 +661,9 @@ class Language {
if( is_bool( $usePrefs ) ) {
if( $usePrefs ) {
- $datePreference = $wgUser->getOption( 'date' );
+ $datePreference = $wgUser->getDatePreference();
} else {
- $options = $this->getDefaultUserOptions();
+ $options = User::getDefaultOptions();
$datePreference = (string)$options['date'];
}
} else {
@@ -584,7 +672,7 @@ class Language {
// return int
if( $datePreference == '' ) {
- return MW_DATE_DEFAULT;
+ return 'default';
}
return $datePreference;
@@ -602,25 +690,16 @@ class Language {
* @return string
*/
function date( $ts, $adj = false, $format = true, $timecorrection = false ) {
- global $wgUser, $wgAmericanDates;
-
- if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); }
-
- $datePreference = $this->dateFormat( $format );
- if( $datePreference == MW_DATE_DEFAULT ) {
- $datePreference = $wgAmericanDates ? MW_DATE_MDY : MW_DATE_DMY;
+ $this->load();
+ if ( $adj ) {
+ $ts = $this->userAdjust( $ts, $timecorrection );
}
- $month = $this->formatMonth( substr( $ts, 4, 2 ), $datePreference );
- $day = $this->formatDay( substr( $ts, 6, 2 ), $datePreference );
- $year = $this->formatNum( substr( $ts, 0, 4 ), true );
-
- switch( $datePreference ) {
- case MW_DATE_DMY: return "$day $month $year";
- case MW_DATE_YMD: return "$year $month $day";
- case MW_DATE_ISO: return substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2);
- default: return "$month $day, $year";
+ $pref = $this->dateFormat( $format );
+ if( $pref == 'default' || !isset( $this->dateFormats["$pref date"] ) ) {
+ $pref = $this->defaultDateFormat;
}
+ return $this->sprintfDate( $this->dateFormats["$pref date"], $ts );
}
/**
@@ -635,61 +714,16 @@ class Language {
* @return string
*/
function time( $ts, $adj = false, $format = true, $timecorrection = false ) {
- global $wgUser;
-
- if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); }
- $datePreference = $this->dateFormat( $format );
-
- $sep = $this->timeSeparator( $format );
-
- $hh = substr( $ts, 8, 2 );
- $mm = substr( $ts, 10, 2 );
- $ss = substr( $ts, 12, 2 );
-
- if ( $datePreference != MW_DATE_ISO ) {
- $hh = $this->formatNum( $hh, true );
- $mm = $this->formatNum( $mm, true );
- //$ss = $this->formatNum( $ss, true );
- return $hh . $sep . $mm;
- } else {
- return $hh . ':' . $mm . ':' . $ss;
+ $this->load();
+ if ( $adj ) {
+ $ts = $this->userAdjust( $ts, $timecorrection );
}
- }
-
- /**
- * Default separator character between hours, minutes, and seconds.
- * Will be used by Language::time() for non-ISO formats.
- * (ISO will always use a colon.)
- * @return string
- */
- function timeSeparator( $format ) {
- return ':';
- }
-
- /**
- * String to insert between the time and the date in a combined
- * string. Should include any relevant whitespace.
- * @return string
- */
- function timeDateSeparator( $format ) {
- return ', ';
- }
- /**
- * Return true if the time should display before the date.
- * @return bool
- * @private
- */
- function timeBeforeDate() {
- return true;
- }
-
- function formatMonth( $month, $format ) {
- return $this->getMonthName( $month );
- }
-
- function formatDay( $day, $format ) {
- return $this->formatNum( 0 + $day, true );
+ $pref = $this->dateFormat( $format );
+ if( $pref == 'default' || !isset( $this->dateFormats["$pref time"] ) ) {
+ $pref = $this->defaultDateFormat;
+ }
+ return $this->sprintfDate( $this->dateFormats["$pref time"], $ts );
}
/**
@@ -706,30 +740,27 @@ class Language {
* @return string
*/
function timeanddate( $ts, $adj = false, $format = true, $timecorrection = false) {
- global $wgUser;
+ $this->load();
+ if ( $adj ) {
+ $ts = $this->userAdjust( $ts, $timecorrection );
+ }
- $datePreference = $this->dateFormat($format);
- switch ( $datePreference ) {
- case MW_DATE_ISO: return $this->date( $ts, $adj, $format, $timecorrection ) . ' ' .
- $this->time( $ts, $adj, $format, $timecorrection );
- default:
- $time = $this->time( $ts, $adj, $format, $timecorrection );
- $sep = $this->timeDateSeparator( $datePreference );
- $date = $this->date( $ts, $adj, $format, $timecorrection );
- return $this->timeBeforeDate( $datePreference )
- ? $time . $sep . $date
- : $date . $sep . $time;
+ $pref = $this->dateFormat( $format );
+ if( $pref == 'default' || !isset( $this->dateFormats["$pref both"] ) ) {
+ $pref = $this->defaultDateFormat;
}
+
+ return $this->sprintfDate( $this->dateFormats["$pref both"], $ts );
}
function getMessage( $key ) {
- global $wgAllMessagesEn;
- return @$wgAllMessagesEn[$key];
+ $this->load();
+ return @$this->messages[$key];
}
function getAllMessages() {
- global $wgAllMessagesEn;
- return $wgAllMessagesEn;
+ $this->load();
+ return $this->messages;
}
function iconv( $in, $out, $string ) {
@@ -737,43 +768,166 @@ class Language {
return iconv( $in, $out, $string );
}
- function ucfirst( $string ) {
- # For most languages, this is a wrapper for ucfirst()
- return ucfirst( $string );
+ // callback functions for uc(), lc(), ucwords(), ucwordbreaks()
+ function ucwordbreaksCallbackAscii($matches){
+ return $this->ucfirst($matches[1]);
}
-
- function uc( $str ) {
- return strtoupper( $str );
+
+ function ucwordbreaksCallbackMB($matches){
+ return mb_strtoupper($matches[0]);
+ }
+
+ function ucCallback($matches){
+ list( $wikiUpperChars ) = self::getCaseMaps();
+ return strtr( $matches[1], $wikiUpperChars );
+ }
+
+ function lcCallback($matches){
+ list( , $wikiLowerChars ) = self::getCaseMaps();
+ return strtr( $matches[1], $wikiLowerChars );
+ }
+
+ function ucwordsCallbackMB($matches){
+ return mb_strtoupper($matches[0]);
+ }
+
+ function ucwordsCallbackWiki($matches){
+ list( $wikiUpperChars ) = self::getCaseMaps();
+ return strtr( $matches[0], $wikiUpperChars );
}
- function lcfirst( $s ) {
- return strtolower( $s{0} ). substr( $s, 1 );
+ function ucfirst( $str ) {
+ return self::uc( $str, true );
}
- function lc( $str ) {
- return strtolower( $str );
+ function uc( $str, $first = false ) {
+ if ( function_exists( 'mb_strtoupper' ) )
+ if ( $first )
+ if ( self::isMultibyte( $str ) )
+ return mb_strtoupper( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
+ else
+ return ucfirst( $str );
+ else
+ return self::isMultibyte( $str ) ? mb_strtoupper( $str ) : strtoupper( $str );
+ else
+ if ( self::isMultibyte( $str ) ) {
+ list( $wikiUpperChars ) = $this->getCaseMaps();
+ $x = $first ? '^' : '';
+ return preg_replace_callback(
+ "/$x([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/",
+ array($this,"ucCallback"),
+ $str
+ );
+ } else
+ return $first ? ucfirst( $str ) : strtoupper( $str );
+ }
+
+ function lcfirst( $str ) {
+ return self::lc( $str, true );
+ }
+
+ function lc( $str, $first = false ) {
+ if ( function_exists( 'mb_strtolower' ) )
+ if ( $first )
+ if ( self::isMultibyte( $str ) )
+ return mb_strtolower( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
+ else
+ return strtolower( substr( $str, 0, 1 ) ) . substr( $str, 1 );
+ else
+ return self::isMultibyte( $str ) ? mb_strtolower( $str ) : strtolower( $str );
+ else
+ if ( self::isMultibyte( $str ) ) {
+ list( , $wikiLowerChars ) = self::getCaseMaps();
+ $x = $first ? '^' : '';
+ return preg_replace_callback(
+ "/$x([A-Z]|[\\xc0-\\xff][\\x80-\\xbf]*)/",
+ array($this,"lcCallback"),
+ $str
+ );
+ } else
+ return $first ? strtolower( substr( $str, 0, 1 ) ) . substr( $str, 1 ) : strtolower( $str );
+ }
+
+ function isMultibyte( $str ) {
+ return (bool)preg_match( '/[\x80-\xff]/', $str );
+ }
+
+ function ucwords($str) {
+ if ( self::isMultibyte( $str ) ) {
+ $str = self::lc($str);
+
+ // regexp to find first letter in each word (i.e. after each space)
+ $replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)| ([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
+
+ // function to use to capitalize a single char
+ if ( function_exists( 'mb_strtoupper' ) )
+ return preg_replace_callback(
+ $replaceRegexp,
+ array($this,"ucwordsCallbackMB"),
+ $str
+ );
+ else
+ return preg_replace_callback(
+ $replaceRegexp,
+ array($this,"ucwordsCallbackWiki"),
+ $str
+ );
+ }
+ else
+ return ucwords( strtolower( $str ) );
+ }
+
+ # capitalize words at word breaks
+ function ucwordbreaks($str){
+ if (self::isMultibyte( $str ) ) {
+ $str = self::lc($str);
+
+ // since \b doesn't work for UTF-8, we explicitely define word break chars
+ $breaks= "[ \-\(\)\}\{\.,\?!]";
+
+ // find first letter after word break
+ $replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)|$breaks([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
+
+ if ( function_exists( 'mb_strtoupper' ) )
+ return preg_replace_callback(
+ $replaceRegexp,
+ array($this,"ucwordbreaksCallbackMB"),
+ $str
+ );
+ else
+ return preg_replace_callback(
+ $replaceRegexp,
+ array($this,"ucwordsCallbackWiki"),
+ $str
+ );
+ }
+ else
+ return preg_replace_callback(
+ '/\b([\w\x80-\xff]+)\b/',
+ array($this,"ucwordbreaksCallbackAscii"),
+ $str );
}
function checkTitleEncoding( $s ) {
- global $wgInputEncoding;
-
- # Check for UTF-8 URLs; Internet Explorer produces these if you
- # type non-ASCII chars in the URL bar or follow unescaped links.
+ if( is_array( $s ) ) {
+ wfDebugDieBacktrace( 'Given array to checkTitleEncoding.' );
+ }
+ # Check for non-UTF-8 URLs
$ishigh = preg_match( '/[\x80-\xff]/', $s);
- $isutf = ($ishigh ? preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
- '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ) : true );
+ if(!$ishigh) return $s;
- if( ($wgInputEncoding != 'utf-8') and $ishigh and $isutf )
- return @iconv( 'UTF-8', $wgInputEncoding, $s );
+ $isutf8 = preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
+ '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s );
+ if( $isutf8 ) return $s;
- if( ($wgInputEncoding == 'utf-8') and $ishigh and !$isutf )
- return utf8_encode( $s );
-
- # Other languages can safely leave this function, or replace
- # it with one to detect and convert another legacy encoding.
- return $s;
+ return $this->iconv( $this->fallback8bitEncoding(), "utf-8", $s );
}
+ function fallback8bitEncoding() {
+ $this->load();
+ return $this->fallback8bitEncoding;
+ }
+
/**
* Some languages have special punctuation to strip out
* or characters which need to be converted for MySQL's
@@ -782,8 +936,25 @@ class Language {
* @param string $in
* @return string
*/
- function stripForSearch( $in ) {
- return strtolower( $in );
+ function stripForSearch( $string ) {
+ # MySQL fulltext index doesn't grok utf-8, so we
+ # need to fold cases and convert to hex
+
+ wfProfileIn( __METHOD__ );
+ if( function_exists( 'mb_strtolower' ) ) {
+ $out = preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "'U8' . bin2hex( \"$1\" )",
+ mb_strtolower( $string ) );
+ } else {
+ list( , $wikiLowerChars ) = self::getCaseMaps();
+ $out = preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "'U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )",
+ $string );
+ }
+ wfProfileOut( __METHOD__ );
+ return $out;
}
function convertForSearchResult( $termsArray ) {
@@ -793,15 +964,16 @@ class Language {
}
/**
- * Get the first character of a string. In ASCII, return
- * first byte of the string. UTF8 and others have to
- * overload this.
+ * Get the first character of a string.
*
* @param string $s
* @return string
*/
function firstChar( $s ) {
- return $s[0];
+ preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
+ '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})/', $s, $matches);
+
+ return isset( $matches[1] ) ? $matches[1] : "";
}
function initEncoding() {
@@ -809,15 +981,6 @@ class Language {
# (Esperanto X-coding, Japanese furigana conversion, etc)
# If this language is used as the primary content language,
# an override to the defaults can be set here on startup.
- #global $wgInputEncoding, $wgOutputEncoding, $wgEditEncoding;
- }
-
- function setAltEncoding() {
- # Some languages may have an alternate char encoding option
- # (Esperanto X-coding, Japanese furigana conversion, etc)
- # If 'altencoding' is checked in user prefs, this gives a
- # chance to swap out the default encoding settings.
- #global $wgInputEncoding, $wgOutputEncoding, $wgEditEncoding;
}
function recodeForEdit( $s ) {
@@ -827,27 +990,27 @@ class Language {
# Note that if wgOutputEncoding is different from
# wgInputEncoding, this text will be further converted
# to wgOutputEncoding.
- global $wgInputEncoding, $wgEditEncoding;
+ global $wgEditEncoding;
if( $wgEditEncoding == '' or
- $wgEditEncoding == $wgInputEncoding ) {
+ $wgEditEncoding == 'UTF-8' ) {
return $s;
} else {
- return $this->iconv( $wgInputEncoding, $wgEditEncoding, $s );
+ return $this->iconv( 'UTF-8', $wgEditEncoding, $s );
}
}
function recodeInput( $s ) {
# Take the previous into account.
- global $wgInputEncoding, $wgOutputEncoding, $wgEditEncoding;
+ global $wgEditEncoding;
if($wgEditEncoding != "") {
$enc = $wgEditEncoding;
} else {
- $enc = $wgOutputEncoding;
+ $enc = 'UTF-8';
}
- if( $enc == $wgInputEncoding ) {
+ if( $enc == 'UTF-8' ) {
return $s;
} else {
- return $this->iconv( $enc, $wgInputEncoding, $s );
+ return $this->iconv( $enc, 'UTF-8', $s );
}
}
@@ -856,25 +1019,42 @@ class Language {
*
* @return bool
*/
- function isRTL() { return false; }
+ function isRTL() {
+ $this->load();
+ return $this->rtl;
+ }
/**
* A hidden direction mark (LRM or RLM), depending on the language direction
*
* @return string
*/
- function getDirMark() { return $this->isRTL() ? "\xE2\x80\x8F" : "\xE2\x80\x8E"; }
+ function getDirMark() {
+ return $this->isRTL() ? "\xE2\x80\x8F" : "\xE2\x80\x8E";
+ }
+
+ /**
+ * An arrow, depending on the language direction
+ *
+ * @return string
+ */
+ function getArrow() {
+ return $this->isRTL() ? '←' : '→';
+ }
/**
* To allow "foo[[bar]]" to extend the link over the whole word "foobar"
*
* @return bool
*/
- function linkPrefixExtension() { return false; }
+ function linkPrefixExtension() {
+ $this->load();
+ return $this->linkPrefixExtension;
+ }
function &getMagicWords() {
- global $wgMagicWordsEn;
- return $wgMagicWordsEn;
+ $this->load();
+ return $this->magicWords;
}
# Fill a MagicWord object with data from here
@@ -896,6 +1076,9 @@ class Language {
}
}
+ if( !is_array( $rawEntry ) ) {
+ error_log( "\"$rawEntry\" is not a valid magic thingie for \"$mw->mId\"" );
+ }
$mw->mCaseSensitive = $rawEntry[0];
$mw->mSynonyms = array_slice( $rawEntry, 1 );
}
@@ -963,11 +1146,13 @@ class Language {
}
function digitTransformTable() {
- return null;
+ $this->load();
+ return $this->digitTransformTable;
}
function separatorTransformTable() {
- return null;
+ $this->load();
+ return $this->separatorTransformTable;
}
@@ -984,7 +1169,7 @@ class Language {
if ($i == $m) {
$s = $l[$i];
} else if ($i == $m - 1) {
- $s = $l[$i] . ' ' . wfMsg('and') . ' ' . $s;
+ $s = $l[$i] . ' ' . $this->getMessageFromDB( 'and' ) . ' ' . $s;
} else {
$s = $l[$i] . ', ' . $s;
}
@@ -999,7 +1184,7 @@ class Language {
#
# $length does not include the optional ellipsis.
# If $length is negative, snip from the beginning
- function truncate( $string, $length, $ellipsis = '' ) {
+ function truncate( $string, $length, $ellipsis = "" ) {
if( $length == 0 ) {
return $ellipsis;
}
@@ -1008,9 +1193,24 @@ class Language {
}
if( $length > 0 ) {
$string = substr( $string, 0, $length );
+ $char = ord( $string[strlen( $string ) - 1] );
+ if ($char >= 0xc0) {
+ # We got the first byte only of a multibyte char; remove it.
+ $string = substr( $string, 0, -1 );
+ } elseif( $char >= 0x80 &&
+ preg_match( '/^(.*)(?:[\xe0-\xef][\x80-\xbf]|' .
+ '[\xf0-\xf7][\x80-\xbf]{1,2})$/', $string, $m ) ) {
+ # We chopped in the middle of a character; remove it
+ $string = $m[1];
+ }
return $string . $ellipsis;
} else {
$string = substr( $string, $length );
+ $char = ord( $string[0] );
+ if( $char >= 0x80 && $char < 0xc0 ) {
+ # We chopped in the middle of a character; remove the whole thing
+ $string = preg_replace( '/^[\x80-\xbf]+/', '', $string );
+ }
return $ellipsis . $string;
}
}
@@ -1048,8 +1248,8 @@ class Language {
* @param string $wordform3 (optional)
* @return string
*/
- function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
- return $count == '1' ? $wordform1 : $wordform2;
+ function convertPlural( $count, $w1, $w2, $w3) {
+ return $count == '1' ? $w1 : $w2;
}
/**
@@ -1060,7 +1260,7 @@ class Language {
*/
function translateBlockExpiry( $str ) {
- $scBlockExpiryOptions = wfMsg( 'ipboptions' );
+ $scBlockExpiryOptions = $this->getMessageFromDB( 'ipboptions' );
if ( $scBlockExpiryOptions == '-') {
return $str;
@@ -1109,6 +1309,17 @@ class Language {
return $this->mConverter->parserConvert( $text, $parser );
}
+ # Tell the converter that it shouldn't convert titles
+ function setNoTitleConvert(){
+ $this->mConverter->setNotitleConvert();
+ }
+
+ # Check if this is a language with variants
+ function hasVariants(){
+ return sizeof($this->getVariants())>1;
+ }
+
+
/**
* Perform output conversion on a string, and encode for safe HTML output.
* @param string $text
@@ -1135,8 +1346,8 @@ class Language {
}
- function getPreferredVariant() {
- return $this->mConverter->getPreferredVariant();
+ function getPreferredVariant( $fromUser = true ) {
+ return $this->mConverter->getPreferredVariant( $fromUser );
}
/**
@@ -1154,6 +1365,17 @@ class Language {
}
/**
+ * If a language supports multiple variants, converts text
+ * into an array of all possible variants of the text:
+ * 'variant' => text in that variant
+ */
+
+ function convertLinkToAllVariants($text){
+ return $this->mConverter->convertLinkToAllVariants($text);
+ }
+
+
+ /**
* returns language specific options used by User::getPageRenderHash()
* for example, the preferred language variant
*
@@ -1182,8 +1404,8 @@ class Language {
* @param string $text text to be tagged for no conversion
* @return string the tagged text
*/
- function markNoConversion( $text ) {
- return $this->mConverter->markNoConversion( $text );
+ function markNoConversion( $text, $noParse=false ) {
+ return $this->mConverter->markNoConversion( $text, $noParse );
}
/**
@@ -1194,7 +1416,8 @@ class Language {
* @public
*/
function linkTrail() {
- return $this->getMessage( 'linktrail' );
+ $this->load();
+ return $this->linkTrail;
}
function getLangObj() {
@@ -1205,22 +1428,300 @@ class Language {
* Get the RFC 3066 code for this language object
*/
function getCode() {
- return str_replace( '_', '-', strtolower( substr( get_class( $this ), 8 ) ) );
+ return $this->mCode;
}
+ function setCode( $code ) {
+ $this->mCode = $code;
+ }
-}
+ static function getFileName( $prefix = 'Language', $code, $suffix = '.php' ) {
+ return $prefix . str_replace( '-', '_', ucfirst( $code ) ) . $suffix;
+ }
+
+ static function getMessagesFileName( $code ) {
+ global $IP;
+ return self::getFileName( "$IP/languages/messages/Messages", $code, '.php' );
+ }
+
+ static function getClassFileName( $code ) {
+ global $IP;
+ return self::getFileName( "$IP/languages/classes/Language", $code, '.php' );
+ }
+
+ static function getLocalisationArray( $code, $disableCache = false ) {
+ self::loadLocalisation( $code, $disableCache );
+ return self::$mLocalisationCache[$code];
+ }
+
+ /**
+ * Load localisation data for a given code into the static cache
+ *
+ * @return array Dependencies, map of filenames to mtimes
+ */
+ static function loadLocalisation( $code, $disableCache = false ) {
+ static $recursionGuard = array();
+ global $wgMemc;
+
+ if ( !$code ) {
+ throw new MWException( "Invalid language code requested" );
+ }
+
+ if ( !$disableCache ) {
+ # Try the per-process cache
+ if ( isset( self::$mLocalisationCache[$code] ) ) {
+ return self::$mLocalisationCache[$code]['deps'];
+ }
+
+ wfProfileIn( __METHOD__ );
+
+ # Try the serialized directory
+ $cache = wfGetPrecompiledData( self::getFileName( "Messages", $code, '.ser' ) );
+ if ( $cache ) {
+ self::$mLocalisationCache[$code] = $cache;
+ wfDebug( "Got localisation for $code from precompiled data file\n" );
+ wfProfileOut( __METHOD__ );
+ return self::$mLocalisationCache[$code]['deps'];
+ }
+
+ # Try the global cache
+ $memcKey = wfMemcKey('localisation', $code );
+ $cache = $wgMemc->get( $memcKey );
+ if ( $cache ) {
+ $expired = false;
+ # Check file modification times
+ foreach ( $cache['deps'] as $file => $mtime ) {
+ if ( !file_exists( $file ) || filemtime( $file ) > $mtime ) {
+ $expired = true;
+ break;
+ }
+ }
+ if ( self::isLocalisationOutOfDate( $cache ) ) {
+ $wgMemc->delete( $memcKey );
+ $cache = false;
+ wfDebug( "Localisation cache for $code had expired due to update of $file\n" );
+ } else {
+ self::$mLocalisationCache[$code] = $cache;
+ wfDebug( "Got localisation for $code from cache\n" );
+ wfProfileOut( __METHOD__ );
+ return $cache['deps'];
+ }
+ }
+ } else {
+ wfProfileIn( __METHOD__ );
+ }
-# FIXME: Merge all UTF-8 support code into Language base class.
-# We no longer support Latin-1 charset.
-require_once( 'LanguageUtf8.php' );
+ if ( $code != 'en' ) {
+ $fallback = 'en';
+ } else {
+ $fallback = false;
+ }
+
+ # Load the primary localisation from the source file
+ $filename = self::getMessagesFileName( $code );
+ if ( !file_exists( $filename ) ) {
+ wfDebug( "No localisation file for $code, using implicit fallback to en\n" );
+ $cache = array();
+ $deps = array();
+ } else {
+ $deps = array( $filename => filemtime( $filename ) );
+ require( $filename );
+ $cache = compact( self::$mLocalisationKeys );
+ wfDebug( "Got localisation for $code from source\n" );
+ }
+
+ if ( !empty( $fallback ) ) {
+ # Load the fallback localisation, with a circular reference guard
+ if ( isset( $recursionGuard[$code] ) ) {
+ throw new MWException( "Error: Circular fallback reference in language code $code" );
+ }
+ $recursionGuard[$code] = true;
+ $newDeps = self::loadLocalisation( $fallback, $disableCache );
+ unset( $recursionGuard[$code] );
+
+ $secondary = self::$mLocalisationCache[$fallback];
+ $deps = array_merge( $deps, $newDeps );
+
+ # Merge the fallback localisation with the current localisation
+ foreach ( self::$mLocalisationKeys as $key ) {
+ if ( isset( $cache[$key] ) ) {
+ if ( isset( $secondary[$key] ) ) {
+ if ( in_array( $key, self::$mMergeableMapKeys ) ) {
+ $cache[$key] = $cache[$key] + $secondary[$key];
+ } elseif ( in_array( $key, self::$mMergeableListKeys ) ) {
+ $cache[$key] = array_merge( $secondary[$key], $cache[$key] );
+ }
+ }
+ } else {
+ $cache[$key] = $secondary[$key];
+ }
+ }
+
+ # Merge bookstore lists if requested
+ if ( !empty( $cache['bookstoreList']['inherit'] ) ) {
+ $cache['bookstoreList'] = array_merge( $cache['bookstoreList'], $secondary['bookstoreList'] );
+ }
+ if ( isset( $cache['bookstoreList']['inherit'] ) ) {
+ unset( $cache['bookstoreList']['inherit'] );
+ }
+ }
+
+ # Add dependencies to the cache entry
+ $cache['deps'] = $deps;
+
+ # Replace spaces with underscores in namespace names
+ $cache['namespaceNames'] = str_replace( ' ', '_', $cache['namespaceNames'] );
+
+ # Save to both caches
+ self::$mLocalisationCache[$code] = $cache;
+ if ( !$disableCache ) {
+ $wgMemc->set( $memcKey, $cache );
+ }
+
+ wfProfileOut( __METHOD__ );
+ return $deps;
+ }
+
+ /**
+ * Test if a given localisation cache is out of date with respect to the
+ * source Messages files. This is done automatically for the global cache
+ * in $wgMemc, but is only done on certain occasions for the serialized
+ * data file.
+ *
+ * @param $cache mixed Either a language code or a cache array
+ */
+ static function isLocalisationOutOfDate( $cache ) {
+ if ( !is_array( $cache ) ) {
+ self::loadLocalisation( $cache );
+ $cache = self::$mLocalisationCache[$cache];
+ }
+ $expired = false;
+ foreach ( $cache['deps'] as $file => $mtime ) {
+ if ( !file_exists( $file ) || filemtime( $file ) > $mtime ) {
+ $expired = true;
+ break;
+ }
+ }
+ return $expired;
+ }
+
+ /**
+ * Get the fallback for a given language
+ */
+ static function getFallbackFor( $code ) {
+ self::loadLocalisation( $code );
+ return self::$mLocalisationCache[$code]['fallback'];
+ }
+
+ /**
+ * Get all messages for a given language
+ */
+ static function getMessagesFor( $code ) {
+ self::loadLocalisation( $code );
+ return self::$mLocalisationCache[$code]['messages'];
+ }
-# This should fail gracefully if there's not a localization available
-wfSuppressWarnings();
-// Preload base classes to work around APC/PHP5 bug
-include_once( 'Language' . str_replace( '-', '_', ucfirst( $wgLanguageCode ) ) . '.deps.php' );
-include_once( 'Language' . str_replace( '-', '_', ucfirst( $wgLanguageCode ) ) . '.php' );
-wfRestoreWarnings();
+ /**
+ * Get a message for a given language
+ */
+ static function getMessageFor( $key, $code ) {
+ self::loadLocalisation( $code );
+ return @self::$mLocalisationCache[$code]['messages'][$key];
+ }
+
+ /**
+ * Load localisation data for this object
+ */
+ function load() {
+ if ( !$this->mLoaded ) {
+ self::loadLocalisation( $this->getCode() );
+ $cache =& self::$mLocalisationCache[$this->getCode()];
+ foreach ( self::$mLocalisationKeys as $key ) {
+ $this->$key = $cache[$key];
+ }
+ $this->mLoaded = true;
+
+ $this->fixUpSettings();
+ }
+ }
+
+ /**
+ * Do any necessary post-cache-load settings adjustment
+ */
+ function fixUpSettings() {
+ global $wgExtraNamespaces, $wgMetaNamespace, $wgMetaNamespaceTalk, $wgMessageCache,
+ $wgNamespaceAliases, $wgAmericanDates;
+ wfProfileIn( __METHOD__ );
+ if ( $wgExtraNamespaces ) {
+ $this->namespaceNames = $wgExtraNamespaces + $this->namespaceNames;
+ }
+
+ $this->namespaceNames[NS_PROJECT] = $wgMetaNamespace;
+ if ( $wgMetaNamespaceTalk ) {
+ $this->namespaceNames[NS_PROJECT_TALK] = $wgMetaNamespaceTalk;
+ } else {
+ $talk = $this->namespaceNames[NS_PROJECT_TALK];
+ $talk = str_replace( '$1', $wgMetaNamespace, $talk );
+
+ # Allow grammar transformations
+ # Allowing full message-style parsing would make simple requests
+ # such as action=raw much more expensive than they need to be.
+ # This will hopefully cover most cases.
+ $talk = preg_replace_callback( '/{{grammar:(.*?)\|(.*?)}}/i',
+ array( &$this, 'replaceGrammarInNamespace' ), $talk );
+ $talk = str_replace( ' ', '_', $talk );
+ $this->namespaceNames[NS_PROJECT_TALK] = $talk;
+ }
+
+ # The above mixing may leave namespaces out of canonical order.
+ # Re-order by namespace ID number...
+ ksort( $this->namespaceNames );
+
+ # Put namespace names and aliases into a hashtable.
+ # If this is too slow, then we should arrange it so that it is done
+ # before caching. The catch is that at pre-cache time, the above
+ # class-specific fixup hasn't been done.
+ $this->mNamespaceIds = array();
+ foreach ( $this->namespaceNames as $index => $name ) {
+ $this->mNamespaceIds[$this->lc($name)] = $index;
+ }
+ if ( $this->namespaceAliases ) {
+ foreach ( $this->namespaceAliases as $name => $index ) {
+ $this->mNamespaceIds[$this->lc($name)] = $index;
+ }
+ }
+ if ( $wgNamespaceAliases ) {
+ foreach ( $wgNamespaceAliases as $name => $index ) {
+ $this->mNamespaceIds[$this->lc($name)] = $index;
+ }
+ }
+
+ if ( $this->defaultDateFormat == 'dmy or mdy' ) {
+ $this->defaultDateFormat = $wgAmericanDates ? 'mdy' : 'dmy';
+ }
+ wfProfileOut( __METHOD__ );
+ }
+
+ function replaceGrammarInNamespace( $m ) {
+ return $this->convertGrammar( trim( $m[2] ), trim( $m[1] ) );
+ }
+
+ static function getCaseMaps() {
+ static $wikiUpperChars, $wikiLowerChars;
+ if ( isset( $wikiUpperChars ) ) {
+ return array( $wikiUpperChars, $wikiLowerChars );
+ }
+ wfProfileIn( __METHOD__ );
+ $arr = wfGetPrecompiledData( 'Utf8Case.ser' );
+ if ( $arr === false ) {
+ throw new MWException(
+ "Utf8Case.ser is missing, please run \"make\" in the serialized directory\n" );
+ }
+ extract( $arr );
+ wfProfileOut( __METHOD__ );
+ return array( $wikiUpperChars, $wikiLowerChars );
+ }
}
+
?>
diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php
index 9bb6715a..a949ad4e 100644
--- a/languages/LanguageConverter.php
+++ b/languages/LanguageConverter.php
@@ -12,7 +12,9 @@ class LanguageConverter {
var $mMainLanguageCode;
var $mVariants, $mVariantFallbacks;
var $mTablesLoaded = false;
+ var $mUseFss = false;
var $mTables;
+ var $mFssObjects;
var $mTitleDisplay='';
var $mDoTitleConvert=true, $mDoContentConvert=true;
var $mCacheKey;
@@ -20,6 +22,7 @@ class LanguageConverter {
var $mMarkup;
var $mFlags;
var $mUcfirst = false;
+ var $mNoTitleConvert = false;
/**
* Constructor
*
@@ -35,17 +38,20 @@ class LanguageConverter {
$variantfallbacks=array(),
$markup=array(),
$flags = array()) {
- global $wgDBname;
+ global $wgLegalTitleChars;
$this->mLangObj = $langobj;
$this->mMainLanguageCode = $maincode;
$this->mVariants = $variants;
$this->mVariantFallbacks = $variantfallbacks;
- $this->mCacheKey = $wgDBname . ":conversiontables";
+ $this->mCacheKey = wfMemcKey( 'conversiontables' );
$m = array('begin'=>'-{', 'flagsep'=>'|', 'codesep'=>':',
'varsep'=>';', 'end'=>'}-');
$this->mMarkup = array_merge($m, $markup);
$f = array('A'=>'A', 'T'=>'T');
$this->mFlags = array_merge($f, $flags);
+ if ( function_exists( 'fss_prep_replace' ) ) {
+ $this->mUseFss = true;
+ }
}
/**
@@ -72,11 +78,12 @@ class LanguageConverter {
/**
- * get preferred language variants.
+ * get preferred language variants.
+ * @param boolean $fromUser Get it from $wgUser's preferences
* @return string the preferred language code
* @access public
*/
- function getPreferredVariant() {
+ function getPreferredVariant( $fromUser = true ) {
global $wgUser, $wgRequest;
if($this->mPreferredVariant)
@@ -90,7 +97,9 @@ class LanguageConverter {
}
// get language variant preference from logged in users
- if(is_object($wgUser) && $wgUser->isLoggedIn() ) {
+ // Don't call this on stub objects because that causes infinite
+ // recursion during initialisation
+ if( $fromUser && $wgUser->isLoggedIn() ) {
$this->mPreferredVariant = $wgUser->getOption('variant');
return $this->mPreferredVariant;
}
@@ -147,19 +156,22 @@ class LanguageConverter {
$marker = "";
// this one is needed when the text is inside an html markup
- $htmlfix = '|<[^>]+=\"[^(>=)]*$|^[^(<>=\")]*\"[^>]*>';
+ $htmlfix = '|<[^>]+$|^[^<>]*>';
+
+ // disable convert to variants between <code></code> tags
+ $codefix = '<code>.+?<\/code>|';
- $reg = '/<[^>]+>|&[a-z#][a-z0-9]+;' . $marker . $htmlfix . '/';
+ $reg = '/'.$codefix.'<[^>]+>|&[a-zA-Z#][a-z0-9]+;' . $marker . $htmlfix . '/s';
$matches = preg_split($reg, $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
-
$m = array_shift($matches);
- $ret = strtr($m[0], $this->mTables[$toVariant]);
+
+ $ret = $this->translate($m[0], $toVariant);
$mstart = $m[1]+strlen($m[0]);
foreach($matches as $m) {
$ret .= substr($text, $mstart, $m[1]-$mstart);
- $ret .= strtr($m[0], $this->mTables[$toVariant]);
+ $ret .= $this->translate($m[0], $toVariant);
$mstart = $m[1] + strlen($m[0]);
}
wfProfileOut( $fname );
@@ -167,11 +179,29 @@ class LanguageConverter {
}
/**
+ * Translate a string to a variant
+ * Doesn't process markup or do any of that other stuff, for that use convert()
+ *
+ * @param string $text Text to convert
+ * @param string $variant Variant language code
+ * @return string Translated text
+ */
+ function translate( $text, $variant ) {
+ if( !$this->mTablesLoaded )
+ $this->loadTables();
+ if ( $this->mUseFss ) {
+ return fss_exec_replace( $this->mFssObjects[$variant], $text );
+ } else {
+ return strtr( $text, $this->mTables[$variant] );
+ }
+ }
+
+ /**
* convert text to all supported variants
*
* @param string $text the text to be converted
* @return array of string
- * @private
+ * @public
*/
function autoConvertToAllVariants($text) {
$fname="LanguageConverter::autoConvertToAllVariants";
@@ -181,20 +211,54 @@ class LanguageConverter {
$ret = array();
foreach($this->mVariants as $variant) {
- $ret[$variant] = strtr($text, $this->mTables[$variant]);
+ $ret[$variant] = $this->translate($text, $variant);
}
+
wfProfileOut( $fname );
return $ret;
}
/**
+ * convert link text to all supported variants
+ *
+ * @param string $text the text to be converted
+ * @return array of string
+ * @public
+ */
+ function convertLinkToAllVariants($text) {
+ if( !$this->mTablesLoaded )
+ $this->loadTables();
+
+ $ret = array();
+ $tarray = explode($this->mMarkup['begin'], $text);
+ $tfirst = array_shift($tarray);
+
+ foreach($this->mVariants as $variant)
+ $ret[$variant] = $this->translate($tfirst,$variant);
+
+ foreach($tarray as $txt) {
+ $marked = explode($this->mMarkup['end'], $txt, 2);
+
+ foreach($this->mVariants as $variant){
+ $ret[$variant] .= $this->mMarkup['begin'].$marked[0].$this->mMarkup['end'];
+ if(array_key_exists(1, $marked))
+ $ret[$variant] .= $this->translate($marked[1],$variant);
+ }
+
+ }
+
+ return $ret;
+ }
+
+
+ /**
* Convert text using a parser object for context
*/
function parserConvert( $text, &$parser ) {
global $wgDisableLangConversion;
/* don't do anything if this is the conversion table */
if ( $parser->mTitle->getNamespace() == NS_MEDIAWIKI &&
- strpos($parser->mTitle->getText, "Conversiontable") !== false )
+ strpos($parser->mTitle->getText(), "Conversiontable") !== false )
{
return $text;
}
@@ -223,27 +287,30 @@ class LanguageConverter {
* @access public
*/
function convert( $text , $isTitle=false) {
- $mw =& MagicWord::get( MAG_NOTITLECONVERT );
+ $mw =& MagicWord::get( 'notitleconvert' );
if( $mw->matchAndRemove( $text ) )
$this->mDoTitleConvert = false;
- $mw =& MagicWord::get( MAG_NOCONTENTCONVERT );
+ $mw =& MagicWord::get( 'nocontentconvert' );
if( $mw->matchAndRemove( $text ) ) {
$this->mDoContentConvert = false;
}
// no conversion if redirecting
- $mw =& MagicWord::get( MAG_REDIRECT );
+ $mw =& MagicWord::get( 'redirect' );
if( $mw->matchStart( $text ))
return $text;
if( $isTitle ) {
+ if($this->mNoTitleConvert){
+ $this->mTitleDisplay = $text;
+ return $text;
+ }
+
if( !$this->mDoTitleConvert ) {
$this->mTitleDisplay = $text;
return $text;
}
- if( !empty($this->mTitleDisplay))
- return $this->mTitleDisplay;
global $wgRequest;
$isredir = $wgRequest->getText( 'redirect', 'yes' );
@@ -252,7 +319,7 @@ class LanguageConverter {
return $text;
}
else {
- $this->mTitleDisplay = $this->autoConvert($text);
+ $this->mTitleDisplay = $this->convert($text);
return $this->mTitleDisplay;
}
}
@@ -289,7 +356,7 @@ class LanguageConverter {
else
$rules = $marked[0];
-#FIXME: may cause trouble here...
+ //FIXME: may cause trouble here...
//strip &nbsp; since it interferes with the parsing, plus,
//all spaces should be stripped in this tag anyway.
$rules = str_replace('&nbsp;', '', $rules);
@@ -331,6 +398,9 @@ class LanguageConverter {
}
}
+ if ( $this->mUseFss ) {
+ $this->generateFssObjects();
+ }
}
}
else {
@@ -381,23 +451,16 @@ class LanguageConverter {
* @access public
*/
function findVariantLink( &$link, &$nt ) {
- static $count=0; //used to limit this operation
- static $cache=array();
global $wgDisableLangConversion;
$pref = $this->getPreferredVariant();
$ns=0;
if(is_object($nt))
$ns = $nt->getNamespace();
- if( $count > 50 && $ns != NS_CATEGORY )
- return;
- $count++;
+
$variants = $this->autoConvertToAllVariants($link);
if($variants == false) //give up
return;
foreach( $variants as $v ) {
- if(isset($cache[$v]))
- continue;
- $cache[$v] = 1;
$varnt = Title::newFromText( $v, $ns );
if( $varnt && $varnt->getArticleID() > 0 ) {
$nt = $varnt;
@@ -495,6 +558,18 @@ class LanguageConverter {
$wgMemc->set($this->mCacheKey, $this->mTables, 43200);
$this->unlockCache();
}
+ if ( $this->mUseFss ) {
+ $this->generateFssObjects();
+ }
+ }
+
+ /**
+ * Generate FSS objects. The FSS extension must be available.
+ */
+ function generateFssObjects() {
+ foreach ( $this->mTables as $variant => $table ) {
+ $this->mFssObjects[$variant] = fss_prep_replace( $table );
+ }
}
/**
@@ -601,7 +676,7 @@ class LanguageConverter {
if ($this->mUcfirst) {
foreach ($ret as $k => $v) {
- $ret[LanguageUtf8::ucfirst($k)] = LanguageUtf8::ucfirst($v);
+ $ret[Language::ucfirst($k)] = Language::ucfirst($v);
}
}
return $ret;
@@ -614,7 +689,7 @@ class LanguageConverter {
* @param string $text text to be tagged for no conversion
* @return string the tagged text
*/
- function markNoConversion($text) {
+ function markNoConversion($text, $noParse=false) {
# don't mark if already marked
if(strpos($text, $this->mMarkup['begin']) ||
strpos($text, $this->mMarkup['end']))
@@ -655,6 +730,11 @@ class LanguageConverter {
}
return true;
}
+
+ function setNoTitleConvert(){
+ $this->mNoTitleConvert = true;
+ }
+
}
?>
diff --git a/languages/Names.php b/languages/Names.php
index c5f3d6f1..7b825c57 100644
--- a/languages/Names.php
+++ b/languages/Names.php
@@ -20,6 +20,7 @@
'ay' => 'Aymar', # Aymara, should possibly be Aymará
'az' => 'Azərbaycan', # Azerbaijani
'ba' => 'Башҡорт', # Bashkir
+ 'bar' => 'Boarisch', # Bavarian (Austro-Bavarian and South Tyrolean)
'bat-smg' => 'Žemaitėška', # Samogitian
'be' => 'Беларуская', # Belarusian ''or'' Byelarussian
'bg' => 'Български', # Bulgarian
@@ -28,10 +29,14 @@
'bm' => 'Bamanankan', # Bambara
'bn' => 'বাংলা', # Bengali
'bo' => 'བོད་ཡིག', # Tibetan
+ 'bpy' => 'ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী', # Bishnupriya Manipuri
'br' => 'Brezhoneg', # Breton
'bs' => 'Bosanski', # Bosnian
'bug' => 'ᨅᨔ ᨕᨘᨁᨗ', # Buginese
+ 'bxr' => 'Буряад', # Buryat (Russia)
'ca' => 'Català', # Catalan
+ 'cbk-zam' => 'Chavacano de Zamboanga', # Zamboanga Chavacano
+ 'cdo' => 'Mìng-dĕ̤ng-ngṳ̄', # Min Dong
'ce' => 'Нохчийн', # Chechen
'ceb' => 'Cebuano', # Cebuano
'ch' => 'Chamoru', # Chamorro
@@ -42,15 +47,18 @@
'cr' => 'Nēhiyaw / ᓀᐦᐃᔭᐤ', # Cree
'cs' => 'Česky', # Czech
'csb' => 'Kaszëbsczi', # Cassubian
+ 'cu' => 'словѣньскъ', # Old Church Slavonic (ancient language)
'cv' => 'Чăвашла', # Chuvash
'cy' => 'Cymraeg', # Welsh
'da' => 'Dansk', # Danish
'de' => 'Deutsch', # German
+ 'diq' => 'Zazaki', # Zazaki
'dk' => 'Dansk', # Unused code currently redirecting to Danish, 'da' is correct for the language
'dv' => 'ދިވެހިބަސް', # Dhivehi
'dz' => 'ཇོང་ཁ', # Bhutani
- 'ee' => 'Ɛʋɛ', # Ewe
+ 'ee' => 'Eʋegbe', # Ewe
'el' => 'Ελληνικά', # Greek
+ 'eml' => 'Emilià', # Emilian-Romagnol / Sammarinese
'en' => 'English', # English
'eo' => 'Esperanto', # Esperanto
'es' => 'Español', # Spanish
@@ -69,6 +77,7 @@
'ga' => 'Gaeilge', # Irish
'gd' => 'Gàidhlig', # Scots Gaelic
'gl' => 'Galego', # Gallegan
+ 'glk' => 'گیلکی', # Gilaki
'gn' => 'Avañe\'ẽ', # Guarani
'got' => '𐌲𐌿𐍄𐌹𐍃𐌺', # Gothic
'gsw' => 'Alemannisch', # Alemannic
@@ -80,6 +89,7 @@
'hi' => 'हिन्दी', # Hindi
'ho' => 'Hiri Motu', # Hiri Motu
'hr' => 'Hrvatski', # Croatian
+ 'hsb' => 'Hornjoserbsce', # Upper Sorbian
'ht' => 'Krèyol ayisyen', # Haitian, common/popular form is Kreyòl
'hu' => 'Magyar', # Hungarian
'hy' => 'Հայերեն', # Armenian
@@ -102,7 +112,10 @@
'kg' => 'Kongo', # Kongo, (FIXME!) should probaly be KiKongo or KiKoongo
'ki' => 'Gĩkũyũ', # Kikuyu, correctness not guaranteed
'kj' => 'Kuanyama', # Kuanyama (FIXME!)
- 'kk' => 'қазақша', # Kazakh
+ 'kk' => 'Қазақша', # Kazakh
+ 'kk-cn' => 'قازاق', # Kazakh Arabic
+ 'kk-kz' => 'Қазақ', # Kazakh Cyrillic
+ 'kk-tr' => 'Qazaq', # Kazakh Latin
'kl' => 'Kalaallisut', # Greenlandic
'km' => 'ភាសាខ្មែរ', # Cambodian
'kn' => 'ಕನ್ನಡ', # Kannada
@@ -116,6 +129,7 @@
'ky' => 'Кыргызча', # Kirghiz
'la' => 'Latina', # Latin
'lad' => 'Ladino', # Ladino
+ 'lbe' => 'Лакку', # Lak
'lb' => 'Lëtzebuergesch', # Luxemburguish
'lg' => 'Luganda', # Ganda
'li' => 'Limburgs', # Limburgian
@@ -139,6 +153,7 @@
'mt' => 'Malti', # Maltese
'mus' => 'Muscogee', # Creek, should possibly be Muskogee
'my' => 'Myanmasa', # Burmese
+ 'mzn' => 'مَزِروني', # Mazandarin
'na' => 'Ekakairũ Naoero', # Nauruan
'nah' => 'Nahuatl', # Nahuatl, en:Wikipedia writes Nahuatlahtolli, while another form is Náhuatl
'nap' => 'Nnapulitano', # Neapolitan
@@ -146,11 +161,13 @@
'nds' => 'Plattdüütsch', # Low German ''or'' Low Saxon
'nds-nl' => 'Nedersaksisch', # Dutch Low Saxon
'ne' => 'नेपाली', # Nepali
+ 'new' => 'नेपाल भाषा', # Newar / Nepal Bhasa
'ng' => 'Oshiwambo', # Ndonga
'nl' => 'Nederlands', # Dutch
'nn' => 'Norsk (nynorsk)' , # Norwegian (Nynorsk)
'no' => 'Norsk (bokmål)', # Norwegian
'non' => 'Norrǿna', # Old Norse
+ 'nov' => 'Novial', # Novial
'nrm' => 'Nouormand', # Norman
'nv' => 'Diné bizaad', # Navajo
'ny' => 'Chi-Chewa', # Chichewa
@@ -159,6 +176,7 @@
'or' => 'ଓଡ଼ିଆ', # Oriya
'os' => 'Иронау', # Ossetic
'pa' => 'ਪੰਜਾਬੀ', # Punjabi
+ 'pag' => 'Pangasinan', # Pangasinan
'pam' => 'Pampangan', # Pampanga
'pap' => 'Papiamentu', # Papiamentu
'pdc' => 'Deitsch', # Pennsylvania German
@@ -175,7 +193,9 @@
'rn' => 'Kirundi', # Kirundi
'ro' => 'Română', # Romanian
'roa-rup' => 'Armâneashti', # Aromanian
+ 'roa-tara' => 'Tarandíne', # Tarantino
'ru' => 'Русский', # Russian
+ 'ru-sib' => 'Сибирской', # Siberian/North Russian
'rw' => 'Kinyarwanda', # Kinyarwanda, should possibly be Kinyarwandi
'sa' => 'संस्कृत', # Sanskrit
'sc' => 'Sardu', # Sardinian
@@ -237,13 +257,16 @@
'wa' => 'Walon', # Walloon
'war' => 'Samar-Leyte Visayan', # Waray-Waray
'wo' => 'Wollof', # Wolof
+ 'wuu' => '吴语', # Wu
'xal' => 'Хальмг', # Kalmyk
'xh' => 'isiXhosa', # Xhosan
'yi' => 'ייִדיש', # Yiddish
'yo' => 'Yorùbá', # Yoruba
'za' => '(Cuengh)', # Zhuang
+ 'zea' => 'Zeêuws', # Zealandic
'zh' => '中文', # (Zhōng Wén) - Chinese
'zh-cfr' => '閩南語', # Min-nan alias (site is at minnan)
+ 'zh-classical' => '古文 / 文言文', # Classical Chinese/Literary Chinese
'zh-cn' => '中文(简体)', # Simplified
'zh-hk' => '中文(繁體)', # Traditional (Hong Kong)
'zh-min-nan' => 'Bân-lâm-gú', # Min-nan
diff --git a/languages/classes/LanguageAz.php b/languages/classes/LanguageAz.php
new file mode 100644
index 00000000..d5df3ecc
--- /dev/null
+++ b/languages/classes/LanguageAz.php
@@ -0,0 +1,17 @@
+<?php
+/** Azerbaijani (Azərbaycan)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageAz extends Language {
+ function ucfirst ( $string ) {
+ if ( $string[0] == 'i' ) {
+ return 'İ' . substr( $string, 1 );
+ } else {
+ return parent::ucfirst( $string );
+ }
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageBe.php b/languages/classes/LanguageBe.php
new file mode 100644
index 00000000..f2a52cca
--- /dev/null
+++ b/languages/classes/LanguageBe.php
@@ -0,0 +1,89 @@
+<?php
+/** Belarusian (Беларуская мова)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @bug 1638, 2135
+ * @link http://be.wikipedia.org/wiki/Talk:LanguageBe.php
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
+ * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
+ */
+
+class LanguageBe extends Language {
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace ('.', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ /**
+ * Cases: родны, вінавальны, месны
+ */
+ function convertGrammar( $word, $case ) {
+ switch ( $case ) {
+ case 'родны': # genitive
+ if ( $word == 'Вікіпэдыя' ) {
+ $word = 'Вікіпэдыі';
+ } elseif ( $word == 'ВікіСлоўнік' ) {
+ $word = 'ВікіСлоўніка';
+ } elseif ( $word == 'ВікіКнігі' ) {
+ $word = 'ВікіКніг';
+ } elseif ( $word == 'ВікіКрыніца' ) {
+ $word = 'ВікіКрыніцы';
+ } elseif ( $word == 'ВікіНавіны' ) {
+ $word = 'ВікіНавін';
+ } elseif ( $word == 'ВікіВіды' ) {
+ $word = 'ВікіВідаў';
+ }
+ break;
+ case 'вінавальны': # akusative
+ if ( $word == 'Вікіпэдыя' ) {
+ $word = 'Вікіпэдыю';
+ } elseif ( $word == 'ВікіСлоўнік' ) {
+ $word = 'ВікіСлоўнік';
+ } elseif ( $word == 'ВікіКнігі' ) {
+ $word = 'ВікіКнігі';
+ } elseif ( $word == 'ВікіКрыніца' ) {
+ $word = 'ВікіКрыніцу';
+ } elseif ( $word == 'ВікіНавіны' ) {
+ $word = 'ВікіНавіны';
+ } elseif ( $word == 'ВікіВіды' ) {
+ $word = 'ВікіВіды';
+ }
+ break;
+ case 'месны': # prepositional
+ if ( $word == 'Вікіпэдыя' ) {
+ $word = 'Вікіпэдыі';
+ } elseif ( $word == 'ВікіСлоўнік' ) {
+ $word = 'ВікіСлоўніку';
+ } elseif ( $word == 'ВікіКнігі' ) {
+ $word = 'ВікіКнігах';
+ } elseif ( $word == 'ВікіКрыніца' ) {
+ $word = 'ВікіКрыніцы';
+ } elseif ( $word == 'ВікіНавіны' ) {
+ $word = 'ВікіНавінах';
+ } elseif ( $word == 'ВікіВіды' ) {
+ $word = 'ВікіВідах';
+ }
+ break;
+ }
+
+ return $word; # this will return the original value for 'назоўны' (nominative) and all undefined case values
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageBg.php b/languages/classes/LanguageBg.php
new file mode 100644
index 00000000..4884c2a8
--- /dev/null
+++ b/languages/classes/LanguageBg.php
@@ -0,0 +1,25 @@
+<?php
+/** Bulgarian (Български)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageBg extends Language {
+ /**
+ * ISO number formatting: 123 456 789,99.
+ * Avoid tripple grouping by numbers with whole part up to 4 digits.
+ */
+ function commafy($_) {
+ if (!preg_match('/^\d{1,4}$/',$_)) {
+ return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+ } else {
+ return $_;
+ }
+ }
+}
+?>
diff --git a/languages/classes/LanguageBs.php b/languages/classes/LanguageBs.php
new file mode 100644
index 00000000..4734fdc1
--- /dev/null
+++ b/languages/classes/LanguageBs.php
@@ -0,0 +1,137 @@
+<?php
+/** Bosnian (bosanski)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageBs extends Language {
+
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace ('.', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ /**
+ * Cases: genitiv, dativ, akuzativ, vokativ, instrumental, lokativ
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['bs'][$case][$word]) ) {
+ return $wgGrammarForms['bs'][$case][$word];
+ }
+ switch ( $case ) {
+ case 'genitiv': # genitive
+ if ( $word == 'Wikipedia' ) {
+ $word = 'Wikipedije';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjiga';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 'Wikivijesti';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 'Wikicitata';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 'Wikiizvora';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 'Vikirječnika';
+ }
+ break;
+ case 'dativ': # dative
+ if ( $word == 'Wikipedia' ) {
+ $word = 'Wikipediji';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjigama';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 'Wikicitatima';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 'Wikivijestima';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 'Wikiizvoru';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 'Vikirječniku';
+ }
+ break;
+ case 'akuzativ': # akusative
+ if ( $word == 'Wikipedia' ) {
+ $word = 'Wikipediju';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjige';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 'Wikicitate';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 'Wikivijesti';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 'Wikiizvora';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 'Vikirječnika';
+ }
+ break;
+ case 'vokativ': # vocative
+ if ( $word == 'Wikipedia' ) {
+ $word = 'Wikipedijo';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjige';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 'Wikicitati';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 'Wikivijesti';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 'Wikizivoru';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 'Vikirječniče';
+ }
+ break;
+ case 'instrumental': # instrumental
+ if ( $word == 'Wikipedia' ) {
+ $word = 's Wikipediom';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 's Wikiknjigama';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 's Wikicitatima';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 's Wikivijestima';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 's Wikiizvorom';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 's Vikirječnikom';
+ } else {
+ $word = 's ' . $word;
+ }
+ break;
+ case 'lokativ': # locative
+ if ( $word == 'Wikipedia' ) {
+ $word = 'o Wikipediji';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'o Wikiknjigama';
+ } elseif ( $word == 'Wikicitati' ) {
+ $word = 'o Wikicitatima';
+ } elseif ( $word == 'Wikivijesti' ) {
+ $word = 'o Wikivijestima';
+ } elseif ( $word == 'Wikiizvor' ) {
+ $word = 'o Wikiizvoru';
+ } elseif ( $word == 'Vikirječnik' ) {
+ $word = 'o Vikirječniku';
+ } else {
+ $word = 'o ' . $word;
+ }
+ break;
+ }
+
+ return $word; # this will return the original value for 'nominativ' (nominative) and all undefined case values
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageCs.php b/languages/classes/LanguageCs.php
new file mode 100644
index 00000000..6b8d3d61
--- /dev/null
+++ b/languages/classes/LanguageCs.php
@@ -0,0 +1,87 @@
+<?php
+/** Czech (česky)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+#--------------------------------------------------------------------------
+# Internationalisation code
+#--------------------------------------------------------------------------
+
+class LanguageCs extends Language {
+ # Grammatical transformations, needed for inflected languages
+ # Invoked by putting {{grammar:case|word}} in a message
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['cs'][$case][$word]) ) {
+ return $wgGrammarForms['cs'][$case][$word];
+ }
+ # allowed values for $case:
+ # 1sg, 2sg, ..., 7sg -- nominative, genitive, ... (in singular)
+ switch ( $word ) {
+ case 'Wikipedia':
+ case 'Wikipedie':
+ switch ( $case ) {
+ case '3sg':
+ case '4sg':
+ case '6sg':
+ return 'Wikipedii';
+ case '7sg':
+ return 'Wikipedií';
+ default:
+ return 'Wikipedie';
+ }
+
+ case 'Wiktionary':
+ case 'Wikcionář':
+ switch ( $case ) {
+ case '2sg':
+ return 'Wikcionáře';
+ case '3sg':
+ case '5sg';
+ case '6sg';
+ return 'Wikcionáři';
+ case '7sg':
+ return 'Wikcionářem';
+ default:
+ return 'Wikcionář';
+ }
+
+ case 'Wikiquote':
+ case 'Wikicitáty':
+ switch ( $case ) {
+ case '2sg':
+ return 'Wikicitátů';
+ case '3sg':
+ return 'Wikicitátům';
+ case '6sg';
+ return 'Wikicitátech';
+ default:
+ return 'Wikicitáty';
+ }
+ }
+ # unknown
+ return $word;
+ }
+
+ # Plural form transformations, needed for some languages.
+ # Invoked by {{plural:count|wordform1|wordform2|wordform3}}
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace( '\xc2\xa0', '', $count );
+ switch ( $count ) {
+ case 1:
+ return $wordform1;
+
+ case 2:
+ case 3:
+ case 4:
+ return $wordform2;
+
+ default:
+ return $wordform3;
+ };
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageEo.php b/languages/classes/LanguageEo.php
new file mode 100644
index 00000000..a62ccc9b
--- /dev/null
+++ b/languages/classes/LanguageEo.php
@@ -0,0 +1,74 @@
+<?php
+/** Esperanto (Esperanto)
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageEo extends Language {
+ function iconv( $in, $out, $string ) {
+ # For most languages, this is a wrapper for iconv
+ # Por multaj lingvoj, ĉi tiu nur voku la sisteman funkcion iconv()
+ # Ni ankaŭ konvertu X-sistemajn surogotajn
+ if( strcasecmp( $in, 'x' ) == 0 and strcasecmp( $out, 'utf-8' ) == 0) {
+ $xu = array (
+ 'xx' => 'x' , 'xX' => 'x' ,
+ 'Xx' => 'X' , 'XX' => 'X' ,
+ "Cx" => "\xc4\x88" , "CX" => "\xc4\x88" ,
+ "cx" => "\xc4\x89" , "cX" => "\xc4\x89" ,
+ "Gx" => "\xc4\x9c" , "GX" => "\xc4\x9c" ,
+ "gx" => "\xc4\x9d" , "gX" => "\xc4\x9d" ,
+ "Hx" => "\xc4\xa4" , "HX" => "\xc4\xa4" ,
+ "hx" => "\xc4\xa5" , "hX" => "\xc4\xa5" ,
+ "Jx" => "\xc4\xb4" , "JX" => "\xc4\xb4" ,
+ "jx" => "\xc4\xb5" , "jX" => "\xc4\xb5" ,
+ "Sx" => "\xc5\x9c" , "SX" => "\xc5\x9c" ,
+ "sx" => "\xc5\x9d" , "sX" => "\xc5\x9d" ,
+ "Ux" => "\xc5\xac" , "UX" => "\xc5\xac" ,
+ "ux" => "\xc5\xad" , "uX" => "\xc5\xad"
+ ) ;
+ return preg_replace ( '/([cghjsu]x?)((?:xx)*)(?!x)/ei',
+ 'strtr( "$1", $xu ) . strtr( "$2", $xu )', $string );
+ } else if( strcasecmp( $in, 'UTF-8' ) == 0 and strcasecmp( $out, 'x' ) == 0 ) {
+ $ux = array (
+ 'x' => 'xx' , 'X' => 'Xx' ,
+ "\xc4\x88" => "Cx" , "\xc4\x89" => "cx" ,
+ "\xc4\x9c" => "Gx" , "\xc4\x9d" => "gx" ,
+ "\xc4\xa4" => "Hx" , "\xc4\xa5" => "hx" ,
+ "\xc4\xb4" => "Jx" , "\xc4\xb5" => "jx" ,
+ "\xc5\x9c" => "Sx" , "\xc5\x9d" => "sx" ,
+ "\xc5\xac" => "Ux" , "\xc5\xad" => "ux"
+ ) ;
+ # Double Xs only if they follow cxapelutaj literoj.
+ return preg_replace( '/((?:[cghjsu]|\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]'.
+ '|\xc5[\x9c\x9d\xac\xad])x*)/ei', 'strtr( "$1", $ux )', $string );
+ }
+ return iconv( $in, $out, $string );
+ }
+
+ function checkTitleEncoding( $s ) {
+ # Check for X-system backwards-compatibility URLs
+ $ishigh = preg_match( '/[\x80-\xff]/', $s);
+ $isutf = preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
+ '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s );
+
+ if($ishigh and !$isutf) {
+ # Assume Latin1
+ $s = utf8_encode( $s );
+ } else {
+ if( preg_match( '/(\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]'.
+ '|\xc5[\x9c\x9d\xac\xad])/', $s ) )
+ return $s;
+ }
+
+ //if( preg_match( '/[cghjsu]x/i', $s ) )
+ // return $this->iconv( 'x', 'utf-8', $s );
+ return $s;
+ }
+
+ function initEncoding() {
+ global $wgEditEncoding;
+ $wgEditEncoding = 'x';
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageEt.php b/languages/classes/LanguageEt.php
new file mode 100644
index 00000000..92843406
--- /dev/null
+++ b/languages/classes/LanguageEt.php
@@ -0,0 +1,21 @@
+<?php
+/** Estonian (Eesti)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
+
+class LanguageEt extends Language {
+ /**
+ * Avoid grouping whole numbers between 0 to 9999
+ */
+ function commafy($_) {
+ if (!preg_match('/^\d{1,4}$/',$_)) {
+ return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+ } else {
+ return $_;
+ }
+ }
+}
+?>
diff --git a/languages/classes/LanguageFi.php b/languages/classes/LanguageFi.php
new file mode 100644
index 00000000..47dd0e65
--- /dev/null
+++ b/languages/classes/LanguageFi.php
@@ -0,0 +1,165 @@
+<?php
+/** Finnish (Suomi)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Niklas Laxström
+ */
+class LanguageFi extends Language {
+ /**
+ * Avoid grouping whole numbers between 0 to 9999
+ */
+ function commafy($_) {
+ if (!preg_match('/^\d{1,4}$/',$_)) {
+ return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+ } else {
+ return $_;
+ }
+ }
+
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['fi'][$case][$word]) ) {
+ return $wgGrammarForms['fi'][$case][$word];
+ }
+
+ # These rules are not perfect, but they are currently only used for site names so it doesn't
+ # matter if they are wrong sometimes. Just add a special case for your site name if necessary.
+ switch ( $case ) {
+ case 'genitive':
+ if ( $word == 'Wikisitaatit' ) {
+ $word = 'Wikisitaattien';
+ } else {
+ $word .= 'n';
+ }
+ break;
+ case 'elative':
+ if ( $word == 'Wikisitaatit' ) {
+ $word = 'Wikisitaateista';
+ } else {
+ if ( mb_substr($word, -1) == 'y' ) {
+ $word .= 'stä';
+ } else {
+ $word .= 'sta';
+ }
+ }
+ break;
+ case 'partitive':
+ if ( $word == 'Wikisitaatit' ) {
+ $word = 'Wikisitaatteja';
+ } else {
+ if ( mb_substr($word, -1) == 'y' ) {
+ $word .= 'ä';
+ } else {
+ $word .= 'a';
+ }
+ }
+ break;
+ case 'illative':
+ # Double the last letter and add 'n'
+ # mb_substr has a compatibility function in GlobalFunctions.php
+ if ( $word == 'Wikisitaatit' ) {
+ $word = 'Wikisitaatteihin';
+ } else {
+ $word = $word . mb_substr($word,-1) . 'n';
+ }
+ break;
+ case 'inessive':
+ if ( $word == 'Wikisitaatit' ) {
+ $word = 'Wikisitaateissa';
+ } else {
+ if ( mb_substr($word, -1) == 'y' ) {
+ $word .= 'ssä';
+ } else {
+ $word .= 'ssa';
+ }
+ }
+ break;
+
+ }
+ return $word;
+ }
+
+ function translateBlockExpiry( $str ) {
+ /*
+ 'ago', 'now', 'today', 'this', 'next',
+ 'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth',
+ 'tomorrow', 'yesterday'
+
+ $months = 'january:tammikuu,february:helmikuu,march:maaliskuu,april:huhtikuu,may:toukokuu,june:kesäkuu,' .
+ 'july:heinäkuu,august:elokuu,september:syyskuu,october:lokakuu,november:marraskuu,december:joulukuu,' .
+ 'jan:tammikuu,feb:helmikuu,mar:maaliskuu,apr:huhtikuu,jun:kesäkuu,jul:heinäkuu,aug:elokuu,sep:syyskuu,'.
+ 'oct:lokakuu,nov:marraskuu,dec:joulukuu,sept:syyskuu';
+ */
+ $weekds = array(
+ 'monday' => 'maanantai',
+ 'tuesday' => 'tiistai',
+ 'wednesday' => 'keskiviikko',
+ 'thursay' => 'torstai',
+ 'friday' => 'perjantai',
+ 'saturday' => 'lauantai',
+ 'sunday' => 'sunnuntai',
+ 'mon' => 'ma',
+ 'tue' => 'ti',
+ 'tues' => 'ti',
+ 'wed' => 'ke',
+ 'wednes' => 'ke',
+ 'thu' => 'to',
+ 'thur' => 'to',
+ 'thurs' => 'to',
+ 'fri' => 'pe',
+ 'sat' => 'la',
+ 'sun' => 'su',
+ 'next' => 'seuraava',
+ 'tomorrow' => 'huomenna',
+ 'ago' => 'sitten',
+ 'seconds' => 'sekuntia',
+ 'second' => 'sekunti',
+ 'secs' => 's',
+ 'sec' => 's',
+ 'minutes' => 'minuuttia',
+ 'minute' => 'minuutti',
+ 'mins' => 'min',
+ 'min' => 'min',
+ 'days' => 'päivää',
+ 'day' => 'päivä',
+ 'hours' => 'tuntia',
+ 'hour' => 'tunti',
+ 'weeks' => 'viikkoa',
+ 'week' => 'viikko',
+ 'fortnights' => 'tuplaviikkoa',
+ 'fortnight' => 'tuplaviikko',
+ 'months' => 'kuukautta',
+ 'month' => 'kuukausi',
+ 'years' => 'vuotta',
+ 'year' => 'vuosi',
+ 'infinite' => 'ikuisesti',
+ 'indefinite' => 'ikuisesti'
+ );
+
+ $final = '';
+ $tokens = explode ( ' ', $str);
+ foreach( $tokens as $item ) {
+ if ( !is_numeric($item) ) {
+ if ( count ( explode( '-', $item ) ) == 3 && strlen($item) == 10 ) {
+ list( $yyyy, $mm, $dd ) = explode( '-', $item );
+ $final .= ' ' . $this->date( "{$yyyy}{$mm}{$dd}00000000");
+ continue;
+ }
+ if( isset( $weekds[$item] ) ) {
+ $final .= ' ' . $weekds[$item];
+ continue;
+ }
+ }
+
+ $final .= ' ' . $item;
+ }
+ return '<span class="blockexpiry" title="' . htmlspecialchars($str). '">”' . trim( $final ) . '”</span>';
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageFr.php b/languages/classes/LanguageFr.php
new file mode 100644
index 00000000..61cd91c6
--- /dev/null
+++ b/languages/classes/LanguageFr.php
@@ -0,0 +1,17 @@
+<?php
+/** French (Français)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
+
+class LanguageFr extends Language {
+ /**
+ * Use singular form for zero (see bug 7309)
+ */
+ function convertPlural( $count, $w1, $w2, $w3) {
+ return $count <= '1' ? $w1 : $w2;
+ }
+}
+?>
diff --git a/languages/classes/LanguageGa.php b/languages/classes/LanguageGa.php
new file mode 100644
index 00000000..0779e42b
--- /dev/null
+++ b/languages/classes/LanguageGa.php
@@ -0,0 +1,52 @@
+<?php
+/** Irish (Gaeilge)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageGa extends Language {
+ # Convert day names
+ # Invoked with {{GRAMMAR:transformation|word}}
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['ga'][$case][$word]) ) {
+ return $wgGrammarForms['ga'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'genitive':
+ switch ($word) {
+ case 'Vicipéid': $word = 'Vicipéide'; break;
+ case 'Vicífhoclóir': $word = 'Vicífhoclóra'; break;
+ case 'Vicíleabhair': $word = 'Vicíleabhar'; break;
+ case 'Vicíshliocht': $word = 'Vicíshleachta'; break;
+ case 'Vicífhoinse': $word = 'Vicífhoinse'; break;
+ case 'Vicíghnéithe': $word = 'Vicíghnéithe'; break;
+ case 'Vicínuacht': $word = 'Vicínuachta'; break;
+ }
+
+ case 'ainmlae':
+ switch ($word) {
+ case 'an Domhnach':
+ $word = 'Dé Domhnaigh'; break;
+ case 'an Luan':
+ $word = 'Dé Luain'; break;
+ case 'an Mháirt':
+ $word = 'Dé Mháirt'; break;
+ case 'an Chéadaoin':
+ $word = 'Dé Chéadaoin'; break;
+ case 'an Déardaoin':
+ $word = 'Déardaoin'; break;
+ case 'an Aoine':
+ $word = 'Dé hAoine'; break;
+ case 'an Satharn':
+ $word = 'Dé Sathairn'; break;
+ }
+ }
+ return $word;
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageGsw.php b/languages/classes/LanguageGsw.php
new file mode 100644
index 00000000..ce4e0578
--- /dev/null
+++ b/languages/classes/LanguageGsw.php
@@ -0,0 +1,69 @@
+<?php
+/** Alemannic (Alemannisch)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageGsw extends Language {
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with result
+
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['gsw'][$case][$word]) ) {
+ return $wgGrammarForms['gsw'][$case][$word];
+ }
+ switch ( $case ) {
+ case 'dativ':
+ if ( $word == 'Wikipedia' ) {
+ $word = 'vo de Wikipedia';
+ } elseif ( $word == 'Wikinorchrichte' ) {
+ $word = 'vo de Wikinochrichte';
+ } elseif ( $word == 'Wiktionaire' ) {
+ $word = 'vom Wiktionaire';
+ } elseif ( $word == 'Wikibuecher' ) {
+ $word = 'vo de Wikibuecher';
+ } elseif ( $word == 'Wikisprüch' ) {
+ $word = 'vo de Wikisprüch';
+ } elseif ( $word == 'Wikiquälle' ) {
+ $word = 'vo de Wikiquälle';
+ }
+ break;
+ case 'akkusativ':
+ if ( $word == 'Wikipedia' ) {
+ $word = 'd Wikipedia';
+ } elseif ( $word == 'Wikinorchrichte' ) {
+ $word = 'd Wikinochrichte';
+ } elseif ( $word == 'Wiktionaire' ) {
+ $word = 's Wiktionaire';
+ } elseif ( $word == 'Wikibuecher' ) {
+ $word = 'd Wikibuecher';
+ } elseif ( $word == 'Wikisprüch' ) {
+ $word = 'd Wikisprüch';
+ } elseif ( $word == 'Wikiquälle' ) {
+ $word = 'd Wikiquälle';
+ }
+ break;
+ case 'nominativ':
+ if ( $word == 'Wikipedia' ) {
+ $word = 'd Wikipedia';
+ } elseif ( $word == 'Wikinorchrichte' ) {
+ $word = 'd Wikinochrichte';
+ } elseif ( $word == 'Wiktionaire' ) {
+ $word = 's Wiktionaire';
+ } elseif ( $word == 'Wikibuecher' ) {
+ $word = 'd Wikibuecher';
+ } elseif ( $word == 'Wikisprüch' ) {
+ $word = 'd Wikisprüch';
+ } elseif ( $word == 'Wikiquälle' ) {
+ $word = 'd Wikiquälle';
+ }
+ break;
+ }
+ return $word;
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageHe.php b/languages/classes/LanguageHe.php
new file mode 100644
index 00000000..70de3115
--- /dev/null
+++ b/languages/classes/LanguageHe.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Hebrew (עברית)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Rotem Liss
+ */
+
+class LanguageHe extends Language {
+ /**
+ * Convert grammar forms of words.
+ *
+ * Available cases:
+ * "prefixed" (or "תחילית") - when the word has a prefix
+ *
+ * @param string the word to convert
+ * @param string the case
+ */
+ public function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['he'][$case][$word]) ) {
+ return $wgGrammarForms['he'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'prefixed':
+ case 'תחילית':
+ # Duplicate the "Waw" if prefixed
+ if ( substr( $word, 0, 2 ) == "ו" && substr( $word, 0, 4 ) != "וו" ) {
+ $word = "ו".$word;
+ }
+
+ # Remove the "He" if prefixed
+ if ( substr( $word, 0, 2 ) == "ה" ) {
+ $word = substr( $word, 2 );
+ }
+
+ # Add a hyphen if non-Hebrew letters
+ if ( substr( $word, 0, 2 ) < "א" || substr( $word, 0, 2 ) > "ת" ) {
+ $word = "־".$word;
+ }
+ }
+
+ return $word;
+ }
+
+ /**
+ * Gets a number and uses the suited form of the word.
+ *
+ * @param integer the number of items
+ * @param string the first form (singular)
+ * @param string the second form (plural)
+ * @param string the third form (2 items, plural is used if not applicable and not specified)
+ *
+ * @return string of the suited form of word
+ */
+ public function convertPlural( $count, $w1, $w2, $w3) {
+ if ( $count == '1' ) {
+ return $w1;
+ } elseif ( $count == '2' && $w3 ) {
+ return $w3;
+ } else {
+ return $w2;
+ }
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageHr.php b/languages/classes/LanguageHr.php
new file mode 100644
index 00000000..b1f6b0fc
--- /dev/null
+++ b/languages/classes/LanguageHr.php
@@ -0,0 +1,26 @@
+<?php
+/** Croatian (hrvatski)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageHr extends Language {
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace ('.', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguageHu.php b/languages/classes/LanguageHu.php
new file mode 100644
index 00000000..ac6555dc
--- /dev/null
+++ b/languages/classes/LanguageHu.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+#
+# Hungarian localisation for MediaWiki
+#
+
+class LanguageHu extends Language {
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms[$this->getCode()][$case][$word]) ) {
+ return $wgGrammarForms[$this->getCode()][$case][$word];
+ }
+
+ static $localForms = array(
+ 'rol' => array(
+ 'Wikipédia' => 'Wikipédiáról',
+ 'Wikidézet' => 'Wikidézetről',
+ 'Wikiszótár' => 'Wikiszótárról',
+ 'Wikikönyvek' => 'Wikikönyvekről',
+ ),
+ 'ba' => array(
+ 'Wikipédia' => 'Wikipédiába',
+ 'Wikidézet' => 'Wikidézetbe',
+ 'Wikiszótár' => 'Wikiszótárba',
+ 'Wikikönyvek' => 'Wikikönyvekbe',
+ ),
+ 'k' => array(
+ 'Wikipédia' => 'Wikipédiák',
+ 'Wikidézet' => 'Wikidézetek',
+ 'Wikiszótár' => 'Wikiszótárak',
+ 'Wikikönyvek' => 'Wikikönyvek',
+ )
+ );
+
+ if ( isset( $localForms[$case][$word] ) ) {
+ return $localForms[$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'rol':
+ return $word . 'ról';
+ case 'ba':
+ return $word . 'ba';
+ case 'k':
+ return $word . 'k';
+ }
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageJa.php b/languages/classes/LanguageJa.php
new file mode 100644
index 00000000..800650b0
--- /dev/null
+++ b/languages/classes/LanguageJa.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Japanese (日本語)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageJa extends Language {
+ function stripForSearch( $string ) {
+ # MySQL fulltext index doesn't grok utf-8, so we
+ # need to fold cases and convert to hex
+ $s = $string;
+
+ # Strip known punctuation ?
+ #$s = preg_replace( '/\xe3\x80[\x80-\xbf]/', '', $s ); # U3000-303f
+
+ # Space strings of like hiragana/katakana/kanji
+ $hiragana = '(?:\xe3(?:\x81[\x80-\xbf]|\x82[\x80-\x9f]))'; # U3040-309f
+ $katakana = '(?:\xe3(?:\x82[\xa0-\xbf]|\x83[\x80-\xbf]))'; # U30a0-30ff
+ $kanji = '(?:\xe3[\x88-\xbf][\x80-\xbf]'
+ . '|[\xe4-\xe8][\x80-\xbf]{2}'
+ . '|\xe9[\x80-\xa5][\x80-\xbf]'
+ . '|\xe9\xa6[\x80-\x99])';
+ # U3200-9999 = \xe3\x88\x80-\xe9\xa6\x99
+ $s = preg_replace( "/({$hiragana}+|{$katakana}+|{$kanji}+)/", ' $1 ', $s );
+
+ # Double-width roman characters: ff00-ff5f ~= 0020-007f
+ $s = preg_replace( '/\xef\xbc([\x80-\xbf])/e', 'chr((ord("$1") & 0x3f) + 0x20)', $s );
+ $s = preg_replace( '/\xef\xbd([\x80-\x99])/e', 'chr((ord("$1") & 0x3f) + 0x60)', $s );
+
+ # Do general case folding and UTF-8 armoring
+ return parent::stripForSearch( $s );
+ }
+
+ # Italic is not appropriate for Japanese script
+ # Unfortunately most browsers do not recognise this, and render <em> as italic
+ function emphasize( $text ) {
+ return $text;
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageKo.php b/languages/classes/LanguageKo.php
new file mode 100644
index 00000000..55d28117
--- /dev/null
+++ b/languages/classes/LanguageKo.php
@@ -0,0 +1,57 @@
+<?php
+/** Korean (한국어)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageKo extends Language {
+ function firstChar( $s ) {
+ preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
+ '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})/', $s, $matches);
+
+ if ( isset( $matches[1] ) ) {
+ if ( strlen( $matches[1] ) != 3 ) {
+ return $matches[1];
+ }
+ $code = (ord($matches[1]{0}) & 0x0f) << 12;
+ $code |= (ord($matches[1]{1}) & 0x3f) << 6;
+ $code |= (ord($matches[1]{2}) & 0x3f);
+ if ( $code < 0xac00 || 0xd7a4 <= $code) {
+ return $matches[1];
+ } elseif ( $code < 0xb098 ) {
+ return "\xe3\x84\xb1";
+ } elseif ( $code < 0xb2e4 ) {
+ return "\xe3\x84\xb4";
+ } elseif ( $code < 0xb77c ) {
+ return "\xe3\x84\xb7";
+ } elseif ( $code < 0xb9c8 ) {
+ return "\xe3\x84\xb9";
+ } elseif ( $code < 0xbc14 ) {
+ return "\xe3\x85\x81";
+ } elseif ( $code < 0xc0ac ) {
+ return "\xe3\x85\x82";
+ } elseif ( $code < 0xc544 ) {
+ return "\xe3\x85\x85";
+ } elseif ( $code < 0xc790 ) {
+ return "\xe3\x85\x87";
+ } elseif ( $code < 0xcc28 ) {
+ return "\xe3\x85\x88";
+ } elseif ( $code < 0xce74 ) {
+ return "\xe3\x85\x8a";
+ } elseif ( $code < 0xd0c0 ) {
+ return "\xe3\x85\x8b";
+ } elseif ( $code < 0xd30c ) {
+ return "\xe3\x85\x8c";
+ } elseif ( $code < 0xd558 ) {
+ return "\xe3\x85\x8d";
+ } else {
+ return "\xe3\x85\x8e";
+ }
+ } else {
+ return "";
+ }
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageKsh.php b/languages/classes/LanguageKsh.php
new file mode 100644
index 00000000..412a00f4
--- /dev/null
+++ b/languages/classes/LanguageKsh.php
@@ -0,0 +1,35 @@
+<?php
+/** Ripuarian (Ripoarėsh)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Purodha Blissenbach
+ */
+
+class LanguageKsh extends Language {
+ /**
+ * Avoid grouping whole numbers between 0 to 9999
+ */
+ public function commafy( $_ ) {
+ if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
+ return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1&nbsp;', strrev( $_ ) ) );
+ } else {
+ return $_;
+ }
+ }
+ /**
+ * Handle cases of (1, other, 0) or (1, other)
+ */
+ public function convertPlural( $count, $w1, $w2, $w3 ) {
+ $count = str_replace (' ', '', $count);
+ if ( $count == '1' ) {
+ return $w1;
+ } elseif ( $count == '0' && $w3 ) {
+ return $w3;
+ } else {
+ return $w2;
+ }
+ }
+}
+?>
diff --git a/languages/classes/LanguageLa.php b/languages/classes/LanguageLa.php
new file mode 100644
index 00000000..b9f69925
--- /dev/null
+++ b/languages/classes/LanguageLa.php
@@ -0,0 +1,37 @@
+<?php
+/** Latin (lingua Latina)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+class LanguageLa extends Language {
+ /**
+ * Convert from the nominative form of a noun to some other case
+ *
+ * Just used in a couple places for sitenames; special-case as necessary.
+ * Rules are far from complete.
+ *
+ * Cases: genitive
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['la'][$case][$word]) ) {
+ return $wgGrammarForms['la'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'genitive':
+ // 1st and 2nd declension singular only.
+ $in = array( '/a$/', '/u[ms]$/', '/tio$/' );
+ $out = array( 'ae', 'i', 'tionis' );
+ return preg_replace( $in, $out, $word );
+ default:
+ return $word;
+ }
+ }
+
+}
+
+
+?>
diff --git a/languages/classes/LanguageLt.php b/languages/classes/LanguageLt.php
new file mode 100644
index 00000000..53729006
--- /dev/null
+++ b/languages/classes/LanguageLt.php
@@ -0,0 +1,22 @@
+<?php
+/** Lithuanian (Lietuvių)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
+
+class LanguageLt extends Language {
+ /* Word forms (with examples):
+ 1 - vienas (1) lapas
+ 2 - trys (3) lapai
+ 3 - penkiolika (15) lapų
+ */
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace (' ', '', $count);
+ if ($count%10==1 && $count%100!=11) return $wordform1;
+ if ($count%10>=2 && ($count%100<10 || $count%100>=20)) return $wordform2;
+ return $wordform3;
+ }
+}
+?>
diff --git a/languages/classes/LanguageLv.php b/languages/classes/LanguageLv.php
new file mode 100644
index 00000000..54cae487
--- /dev/null
+++ b/languages/classes/LanguageLv.php
@@ -0,0 +1,57 @@
+<?php
+/** Latvian (Latviešu)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ * @author Niklas Laxström
+ *
+ * @copyright Copyright © 2006, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+
+class LanguageLv extends Language {
+ /**
+ * Plural form transformations. Using the first form for words with the last digit 1, but not for words with the last digits 11, and the second form for all the others.
+ *
+ * Example: {{plural:{{NUMBEROFARTICLES}}|article|articles}}
+ *
+ * @param integer $count
+ * @param string $wordform1
+ * @param string $wordform2
+ * @param string $wordform3 (not used)
+ * @return string
+ */
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3 ) {
+ return ( ( $count % 10 == 1 ) && ( $count % 100 != 11 ) ) ? $wordform1 : $wordform2;
+ }
+
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ # ģenitīvs - kā, datīvs - kam, akuzatīvs - ko, lokatīvs - kur.
+ /**
+ * Cases: ģenitīvs, datīvs, akuzatīvs, lokatīvs
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+
+ $wgGrammarForms['lv']['ģenitīvs' ]['Vikipēdija'] = 'Vikipēdijas';
+ $wgGrammarForms['lv']['ģenitīvs' ]['Vikivārdnīca'] = 'Vikivārdnīcas';
+ $wgGrammarForms['lv']['datīvs' ]['Vikipēdija'] = 'Vikipēdijai';
+ $wgGrammarForms['lv']['datīvs' ]['Vikivārdnīca'] = 'Vikivārdnīcai';
+ $wgGrammarForms['lv']['akuzatīvs']['Vikipēdija'] = 'Vikipēdiju';
+ $wgGrammarForms['lv']['akuzatīvs']['Vikivārdnīca'] = 'Vikivārdnīcu';
+ $wgGrammarForms['lv']['lokatīvs' ]['Vikipēdija'] = 'Vikipēdijā';
+ $wgGrammarForms['lv']['lokatīvs' ]['Vikivārdnīca'] = 'Vikivārdnīcā';
+
+ if ( isset($wgGrammarForms['lv'][$case][$word]) ) {
+ return $wgGrammarForms['lv'][$case][$word];
+ }
+
+ return $word;
+
+ }
+
+}
+
+?>
diff --git a/languages/classes/LanguagePt_br.php b/languages/classes/LanguagePt_br.php
new file mode 100644
index 00000000..6132aaa2
--- /dev/null
+++ b/languages/classes/LanguagePt_br.php
@@ -0,0 +1,17 @@
+<?php
+/** Brazilian Portugese (Portuguêsi do Brasil)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
+
+class LanguagePt_br extends Language {
+ /**
+ * Use singular form for zero (see bug 7309)
+ */
+ function convertPlural( $count, $w1, $w2, $w3) {
+ return $count <= '1' ? $w1 : $w2;
+ }
+}
+?>
diff --git a/languages/classes/LanguageRmy.php b/languages/classes/LanguageRmy.php
new file mode 100644
index 00000000..bbf22d52
--- /dev/null
+++ b/languages/classes/LanguageRmy.php
@@ -0,0 +1,72 @@
+<?php
+
+class LanguageRmy extends Language {
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{GRAMMAR:case|word}}
+ *
+ * Cases: nominative, genitive-m-sg, genitive-f-sg, dative, locative, ablative, instrumental
+ */
+ public function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['rmy'][$case][$word]) ) {
+ return $wgGrammarForms['rmy'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'genitive-m-sg': # genitive (m.sg.)
+ if ( $word == 'Vikipidiya' ) {
+ $word = 'Vikipidiyako';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonaresko';
+ }
+ break;
+ case 'genitive-f-sg': # genitive (f.sg.)
+ if ( $word == 'Vikipidiya' ) {
+ $word = 'Vikipidiyaki';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonareski';
+ }
+ break;
+ case 'genitive-pl': # genitive (pl.)
+ if ( $word == 'Vikipidiya' ) {
+ $word = 'Vikipidiyake';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonareske';
+ }
+ break;
+ case 'dativ':
+ if ( $word == 'Vikipidiyake' ) {
+ $word = 'Wikipediji';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonareske';
+ }
+ break;
+ case 'locative':
+ if ( $word == 'Vikipidiyate' ) {
+ $word = 'Wikipedijo';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonareste';
+ }
+ break;
+ case 'ablative':
+ if ( $word == 'Vikipidiyatar' ) {
+ $word = 'o Wikipediji';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonarestar';
+ }
+ break;
+ case 'instrumental':
+ if ( $word == 'Vikipidiyasa' ) {
+ $word = 'z Wikipedijo';
+ } elseif ( $word == 'Vikcyonaro' ) {
+ $word = 'Vikcyonaresa';
+ }
+ break;
+ }
+
+ return $word; # this will return the original value for 'nominative' and all undefined case values
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php
new file mode 100644
index 00000000..b64a4144
--- /dev/null
+++ b/languages/classes/LanguageRu.php
@@ -0,0 +1,87 @@
+<?php
+/** Russian (русский язык)
+ *
+ * You can contact Alexander Sigachov (alexander.sigachov at Googgle Mail)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+/* Please, see Language.php for general function comments */
+class LanguageRu extends Language {
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{grammar:case|word}}
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['ru'][$case][$word]) ) {
+ return $wgGrammarForms['ru'][$case][$word];
+ }
+
+ # These rules are not perfect, but they are currently only used for site names so it doesn't
+ # matter if they are wrong sometimes. Just add a special case for your site name if necessary.
+
+ #join and array_slice instead mb_substr
+ $ar = array();
+ preg_match_all( '/./us', $word, $ar );
+ if (!preg_match("/[a-zA-Z_]/us", $word))
+ switch ( $case ) {
+ case 'genitive': #родительный падеж
+ if ((join('',array_slice($ar[0],-4))=='вики') || (join('',array_slice($ar[0],-4))=='Вики'))
+ {}
+ elseif (join('',array_slice($ar[0],-1))=='ь')
+ $word = join('',array_slice($ar[0],0,-1)).'я';
+ elseif (join('',array_slice($ar[0],-2))=='ия')
+ $word=join('',array_slice($ar[0],0,-2)).'ии';
+ elseif (join('',array_slice($ar[0],-2))=='ка')
+ $word=join('',array_slice($ar[0],0,-2)).'ки';
+ elseif (join('',array_slice($ar[0],-2))=='ти')
+ $word=join('',array_slice($ar[0],0,-2)).'тей';
+ elseif (join('',array_slice($ar[0],-2))=='ды')
+ $word=join('',array_slice($ar[0],0,-2)).'дов';
+ elseif (join('',array_slice($ar[0],-3))=='ник')
+ $word=join('',array_slice($ar[0],0,-3)).'ника';
+ break;
+ case 'dative': #дательный падеж
+ #stub
+ break;
+ case 'accusative': #винительный падеж
+ #stub
+ break;
+ case 'instrumental': #творительный падеж
+ #stub
+ break;
+ case 'prepositional': #предложный падеж
+ #stub
+ break;
+ }
+ return $word;
+ }
+
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace (' ', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+ /*
+ * Russian numeric format is "12 345,67" but "1234,56"
+ */
+
+ function commafy($_) {
+ if (!preg_match('/^\d{1,4}$/',$_)) {
+ return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+ } else {
+ return $_;
+ }
+ }
+}
+?>
diff --git a/languages/classes/LanguageSk.php b/languages/classes/LanguageSk.php
new file mode 100644
index 00000000..2fa8df0f
--- /dev/null
+++ b/languages/classes/LanguageSk.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Slovak (Slovenčina)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageSk extends Language {
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ /**
+ * Cases: genitív, datív, akuzatív, lokál, inštrumentál
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['sk'][$case][$word]) ) {
+ return $wgGrammarForms['sk'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'genitív':
+ if ( $word == 'Wikipédia' ) {
+ $word = 'Wikipédie';
+ } elseif ( $word == 'Wikislovník' ) {
+ $word = 'Wikislovníku';
+ } elseif ( $word == 'Wikicitáty' ) {
+ $word = 'Wikicitátov';
+ } elseif ( $word == 'Wikiknihy' ) {
+ $word = 'Wikikníh';
+ }
+ break;
+ case 'datív':
+ if ( $word == 'Wikipédia' ) {
+ $word = 'Wikipédii';
+ } elseif ( $word == 'Wikislovník' ) {
+ $word = 'Wikislovníku';
+ } elseif ( $word == 'Wikicitáty' ) {
+ $word = 'Wikicitátom';
+ } elseif ( $word == 'Wikiknihy' ) {
+ $word = 'Wikiknihám';
+ }
+ break;
+ case 'akuzatív':
+ if ( $word == 'Wikipédia' ) {
+ $word = 'Wikipédiu';
+ } elseif ( $word == 'Wikislovník' ) {
+ $word = 'Wikislovník';
+ } elseif ( $word == 'Wikicitáty' ) {
+ $word = 'Wikicitáty';
+ } elseif ( $word == 'Wikiknihy' ) {
+ $word = 'Wikiknihy';
+ }
+ break;
+ case 'lokál':
+ if ( $word == 'Wikipédia' ) {
+ $word = 'Wikipédii';
+ } elseif ( $word == 'Wikislovník' ) {
+ $word = 'Wikislovníku';
+ } elseif ( $word == 'Wikicitáty' ) {
+ $word = 'Wikicitátoch';
+ } elseif ( $word == 'Wikiknihy' ) {
+ $word = 'Wikiknihách';
+ }
+ break;
+ case 'inštrumentál':
+ if ( $word == 'Wikipédia' ) {
+ $word = 'Wikipédiou';
+ } elseif ( $word == 'Wikislovník' ) {
+ $word = 'Wikislovníkom';
+ } elseif ( $word == 'Wikicitáty' ) {
+ $word = 'Wikicitátmi';
+ } elseif ( $word == 'Wikiknihy' ) {
+ $word = 'Wikiknihami';
+ }
+ break;
+ }
+ return $word;
+ }
+
+ function convertPlural( $count, $w1, $w2, $w3) {
+ $count = str_replace ('.', '', $count);
+ $forms = array( $w1, $w2, $w3);
+ if ( $count == 1 ) {
+ $index = 0;
+ } elseif ( $count == 2 || $count == 3 || $count == 4 ) {
+ $index = 1;
+ } else {
+ $index = 2;
+ }
+ return $forms[$index];
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageSl.php b/languages/classes/LanguageSl.php
new file mode 100644
index 00000000..35991caa
--- /dev/null
+++ b/languages/classes/LanguageSl.php
@@ -0,0 +1,124 @@
+<?php
+/** Slovenian (Slovenščina)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
+class LanguageSl extends Language {
+ # Convert from the nominative form of a noun to some other case
+ # Invoked with {{GRAMMAR:case|word}}
+ /**
+ * Cases: rodilnik, dajalnik, tožilnik, mestnik, orodnik
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['sl'][$case][$word]) ) {
+ return $wgGrammarForms['sl'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'rodilnik': # genitive
+ if ( $word == 'Wikipedija' ) {
+ $word = 'Wikipedije';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjig';
+ } elseif ( $word == 'Wikinovice' ) {
+ $word = 'Wikinovic';
+ } elseif ( $word == 'Wikinavedek' ) {
+ $word = 'Wikinavedka';
+ } elseif ( $word == 'Wikivir' ) {
+ $word = 'Wikivira';
+ } elseif ( $word == 'Wikislovar' ) {
+ $word = 'Wikislovarja';
+ }
+ break;
+ case 'dajalnik': # dativ
+ if ( $word == 'Wikipedija' ) {
+ $word = 'Wikipediji';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjigam';
+ } elseif ( $word == 'Wikinovice' ) {
+ $word = 'Wikinovicam';
+ } elseif ( $word == 'Wikinavedek' ) {
+ $word = 'Wikinavedku';
+ } elseif ( $word == 'Wikivir' ) {
+ $word = 'Wikiviru';
+ } elseif ( $word == 'Wikislovar' ) {
+ $word = 'Wikislovarju';
+ }
+ break;
+ case 'tožilnik': # akuzatív
+ if ( $word == 'Wikipedija' ) {
+ $word = 'Wikipedijo';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'Wikiknjige';
+ } elseif ( $word == 'Wikinovice' ) {
+ $word = 'Wikinovice';
+ } elseif ( $word == 'Wikinavedek' ) {
+ $word = 'Wikinavedek';
+ } elseif ( $word == 'Wikivir' ) {
+ $word = 'Wikivir';
+ } elseif ( $word == 'Wikislovar' ) {
+ $word = 'Wikislovar';
+ }
+ break;
+ case 'mestnik': # locative
+ if ( $word == 'Wikipedija' ) {
+ $word = 'o Wikipediji';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'o Wikiknjigah';
+ } elseif ( $word == 'Wikinovice' ) {
+ $word = 'o Wikinovicah';
+ } elseif ( $word == 'Wikinavedek' ) {
+ $word = 'o Wikinavedku';
+ } elseif ( $word == 'Wikivir' ) {
+ $word = 'o Wikiviru';
+ } elseif ( $word == 'Wikislovar' ) {
+ $word = 'o Wikislovarju';
+ } else {
+ $word = 'o ' . $word;
+ }
+ break;
+ case 'orodnik': # instrumental
+ if ( $word == 'Wikipedija' ) {
+ $word = 'z Wikipedijo';
+ } elseif ( $word == 'Wikiknjige' ) {
+ $word = 'z Wikiknjigami';
+ } elseif ( $word == 'Wikinovice' ) {
+ $word = 'z Wikinovicami';
+ } elseif ( $word == 'Wikinavedek' ) {
+ $word = 'z Wikinavedkom';
+ } elseif ( $word == 'Wikivir' ) {
+ $word = 'z Wikivirom';
+ } elseif ( $word == 'Wikislovar' ) {
+ $word = 'z Wikislovarjem';
+ } else {
+ $word = 'z ' . $word;
+ }
+ break;
+ }
+
+ return $word; # this will return the original value for 'imenovalnik' (nominativ) and all undefined case values
+ }
+
+ function convertPlural( $count, $w1, $w2, $w3, $w4, $w5) {
+ $count = str_replace ('.', '', $count);
+ $forms = array( $w1, $w2, $w3, $w4, $w5 );
+ if ( $count % 100 == 1 ) {
+ $index = 0;
+ } elseif ( $count % 100 == 2 ) {
+ $index = 1;
+ } elseif ( $count % 100 == 3 || $count % 100 == 4 ) {
+ $index = 2;
+ } elseif ( $count != 0 ) {
+ $index = 3;
+ } else {
+ $index = 4;
+ }
+ return $forms[$index];
+ }
+
+
+}
+?>
diff --git a/languages/classes/LanguageSr.deps.php b/languages/classes/LanguageSr.deps.php
new file mode 100644
index 00000000..8fe354e0
--- /dev/null
+++ b/languages/classes/LanguageSr.deps.php
@@ -0,0 +1,10 @@
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageSr.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+// see http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html
+
+require_once( dirname(__FILE__).'/LanguageSr_ec.php' );
+require_once( dirname(__FILE__).'/../LanguageConverter.php' );
+?>
diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php
new file mode 100644
index 00000000..412463f8
--- /dev/null
+++ b/languages/classes/LanguageSr.php
@@ -0,0 +1,181 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+/*
+ There are two levels of conversion for Serbian: the script level
+ (Cyrillics <-> Latin), and the variant level (ekavian
+ <->iyekavian). The two are orthogonal. So we really only need two
+ dictionaries: one for Cyrillics and Latin, and one for ekavian and
+ iyekavian.
+*/
+require_once( dirname(__FILE__).'/../LanguageConverter.php' );
+require_once( dirname(__FILE__).'/LanguageSr_ec.php' );
+require_once( dirname(__FILE__).'/LanguageSr_el.php' );
+
+class SrConverter extends LanguageConverter {
+ var $mToLatin = array(
+ 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
+ 'ђ' => 'đ', 'е' => 'e', 'ж' => 'ž', 'з' => 'z', 'и' => 'i',
+ 'ј' => 'j', 'к' => 'k', 'л' => 'l', 'љ' => 'lj', 'м' => 'm',
+ 'н' => 'n', 'њ' => 'nj', 'о' => 'o', 'п' => 'p', 'р' => 'r',
+ 'с' => 's', 'т' => 't', 'ћ' => 'ć', 'у' => 'u', 'ф' => 'f',
+ 'х' => 'h', 'ц' => 'c', 'ч' => 'č', 'џ' => 'dž', 'ш' => 'š',
+
+ 'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D',
+ 'Ђ' => 'Đ', 'Е' => 'E', 'Ж' => 'Ž', 'З' => 'Z', 'И' => 'I',
+ 'Ј' => 'J', 'К' => 'K', 'Л' => 'L', 'Љ' => 'Lj', 'М' => 'M',
+ 'Н' => 'N', 'Њ' => 'Nj', 'О' => 'O', 'П' => 'P', 'Р' => 'R',
+ 'С' => 'S', 'Т' => 'T', 'Ћ' => 'Ć', 'У' => 'U', 'Ф' => 'F',
+ 'Х' => 'H', 'Ц' => 'C', 'Ч' => 'Č', 'Џ' => 'Dž', 'Ш' => 'Š',
+ );
+
+ var $mToCyrillics = array(
+ 'a' => 'а', 'b' => 'б', 'c' => 'ц', 'č' => 'ч', 'ć' => 'ћ',
+ 'd' => 'д', 'dž' => 'џ', 'đ' => 'ђ', 'e' => 'е', 'f' => 'ф',
+ 'g' => 'г', 'h' => 'х', 'i' => 'и', 'j' => 'ј', 'k' => 'к',
+ 'l' => 'л', 'lj' => 'љ', 'm' => 'м', 'n' => 'н', 'nj' => 'њ',
+ 'o' => 'о', 'p' => 'п', 'r' => 'р', 's' => 'с', 'š' => 'ш',
+ 't' => 'т', 'u' => 'у', 'v' => 'в', 'z' => 'з', 'ž' => 'ж',
+
+ 'A' => 'А', 'B' => 'Б', 'C' => 'Ц', 'Č' => 'Ч', 'Ć' => 'Ћ',
+ 'D' => 'Д', 'Dž' => 'Џ', 'Đ' => 'Ђ', 'E' => 'Е', 'F' => 'Ф',
+ 'G' => 'Г', 'H' => 'Х', 'I' => 'И', 'J' => 'Ј', 'K' => 'К',
+ 'L' => 'Л', 'LJ' => 'Љ', 'M' => 'М', 'N' => 'Н', 'NJ' => 'Њ',
+ 'O' => 'О', 'P' => 'П', 'R' => 'Р', 'S' => 'С', 'Š' => 'Ш',
+ 'T' => 'Т', 'U' => 'У', 'V' => 'В', 'Z' => 'З', 'Ž' => 'Ж',
+
+ 'DŽ' => 'Џ', 'd!ž' => 'дж', 'D!ž'=> 'Дж', 'D!Ž'=> 'ДЖ',
+ 'Lj' => 'Љ', 'l!j' => 'лј', 'L!j'=> 'Лј', 'L!J'=> 'ЛЈ',
+ 'Nj' => 'Њ', 'n!j' => 'нј', 'N!j'=> 'Нј', 'N!J'=> 'НЈ'
+ );
+
+ function loadDefaultTables() {
+ $this->mTables = array();
+ $this->mTables['sr-ec'] = $this->mToCyrillics;
+ $this->mTables['sr-jc'] = $this->mToCyrillics;
+ $this->mTables['sr-el'] = $this->mToLatin;
+ $this->mTables['sr-jl'] = $this->mToLatin;
+ $this->mTables['sr'] = array();
+ }
+
+ /* rules should be defined as -{ekavian | iyekavian-} -or-
+ -{code:text | code:text | ...}-
+ update: delete all rule parsing because it's not used
+ currently, and just produces a couple of bugs
+ */
+ function parseManualRule($rule, $flags=array()) {
+ // ignore all formatting
+ foreach($this->mVariants as $v) {
+ $carray[$v] = $rule;
+ }
+
+ return $carray;
+ }
+
+ /*
+ * Override function from LanguageConvertor
+ * Additional checks:
+ * - There should be no conversion for Talk pages
+ */
+ function getPreferredVariant(){
+ global $wgTitle;
+ if($wgTitle!=NULL && $wgTitle->isTalkPage()){
+ return $this->mMainLanguageCode;
+ }
+ return parent::getPreferredVariant();
+ }
+
+
+ /*
+ * A function wrapper, if there is no selected variant,
+ * leave the link names as they were
+ */
+ function findVariantLink( &$link, &$nt ) {
+ $oldlink=$link;
+ parent::findVariantLink($link,$nt);
+ if($this->getPreferredVariant()==$this->mMainLanguageCode)
+ $link=$oldlink;
+ }
+
+
+ /*
+ * We want our external link captions to be converted in variants,
+ * so we return the original text instead -{$text}-, except for URLs
+ */
+ function markNoConversion($text, $noParse=false) {
+ if($noParse || preg_match("/^https?:\/\/|ftp:\/\/|irc:\/\//",$text))
+ return parent::markNoConversion($text);
+ return $text;
+ }
+
+ /*
+ * An ugly function wrapper for parsing Image titles
+ * (to prevent image name conversion)
+ */
+ function autoConvert($text, $toVariant=false) {
+ global $wgTitle;
+ if($wgTitle->getNameSpace()==NS_IMAGE){
+ $imagename = $wgTitle->getNsText();
+ if(preg_match("/^$imagename:/",$text)) return $text;
+ }
+ return parent::autoConvert($text,$toVariant);
+ }
+
+ /**
+ * It translates text into variant, specials:
+ * - ommiting roman numbers
+ */
+ function translate($text, $toVariant){
+ $breaks = '[^\w\x80-\xff]';
+
+ // regexp for roman numbers
+ $roman = 'M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})';
+
+ $reg = '/^'.$roman.'$|^'.$roman.$breaks.'|'.$breaks.$roman.'$|'.$breaks.$roman.$breaks.'/';
+
+ $matches = preg_split($reg, $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
+
+ $m = array_shift($matches);
+ $ret = strtr($m[0], $this->mTables[$toVariant]);
+ $mstart = $m[1]+strlen($m[0]);
+ foreach($matches as $m) {
+ $ret .= substr($text, $mstart, $m[1]-$mstart);
+ $ret .= parent::translate($m[0], $toVariant);
+ $mstart = $m[1] + strlen($m[0]);
+ }
+
+ return $ret;
+ }
+
+
+}
+
+class LanguageSr extends LanguageSr_ec {
+ function __construct() {
+ global $wgHooks;
+
+ parent::__construct();
+
+ // these variants are currently UNUSED:
+ // 'sr-jc', 'sr-jl'
+ $variants = array('sr', 'sr-ec', 'sr-el');
+ $variantfallbacks = array(
+ 'sr' => 'sr-ec',
+ 'sr-ec' => 'sr-ec',
+ 'sr-el' => 'sr-el',
+ );
+
+
+ $marker = array();//don't mess with these, leave them as they are
+ $flags = array(
+ 'S' => 'S', 'писмо' => 'S', 'pismo' => 'S',
+ 'W' => 'W', 'реч' => 'W', 'reč' => 'W', 'ријеч' => 'W', 'riječ' => 'W'
+ );
+ $this->mConverter = new SrConverter($this, 'sr', $variants, $variantfallbacks, $marker, $flags);
+ $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
+ }
+}
+?>
diff --git a/languages/classes/LanguageSr_ec.php b/languages/classes/LanguageSr_ec.php
new file mode 100644
index 00000000..f84ebd06
--- /dev/null
+++ b/languages/classes/LanguageSr_ec.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+#--------------------------------------------------------------------------
+# Internationalisation code
+#--------------------------------------------------------------------------
+
+class LanguageSr_ec extends Language {
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace ('.', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageSr_el.deps.php b/languages/classes/LanguageSr_el.deps.php
new file mode 100644
index 00000000..f39da2f2
--- /dev/null
+++ b/languages/classes/LanguageSr_el.deps.php
@@ -0,0 +1,9 @@
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageSr_el.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+// see http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html
+
+require_once( dirname(__FILE__).'/LanguageSr_ec.php' );
+?>
diff --git a/languages/classes/LanguageSr_el.php b/languages/classes/LanguageSr_el.php
new file mode 100644
index 00000000..cba1b57e
--- /dev/null
+++ b/languages/classes/LanguageSr_el.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+#--------------------------------------------------------------------------
+# Internationalisation code
+#--------------------------------------------------------------------------
+
+class LanguageSr_el extends Language {
+ function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
+ $count = str_replace ('.', '', $count);
+ if ($count > 10 && floor(($count % 100) / 10) == 1) {
+ return $wordform3;
+ } else {
+ switch ($count % 10) {
+ case 1: return $wordform1;
+ case 2:
+ case 3:
+ case 4: return $wordform2;
+ default: return $wordform3;
+ }
+ }
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageTr.php b/languages/classes/LanguageTr.php
new file mode 100644
index 00000000..67d68f60
--- /dev/null
+++ b/languages/classes/LanguageTr.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Turkish (Türkçe)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageTr extends Language {
+ function ucfirst ( $string ) {
+ if ( $string[0] == 'i' ) {
+ return 'İ' . substr( $string, 1 );
+ } else {
+ return parent::ucfirst( $string );
+ }
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageTyv.php b/languages/classes/LanguageTyv.php
new file mode 100644
index 00000000..aacfaff5
--- /dev/null
+++ b/languages/classes/LanguageTyv.php
@@ -0,0 +1,233 @@
+<?php
+/** Tyvan localization (Тыва дыл)
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+# From friends at tyvawiki.org
+
+#--------------------------------------------------------------------------
+# Internationalisation code
+#--------------------------------------------------------------------------
+
+class LanguageTyv extends Language {
+ /**
+ * Grammatical transformations, needed for inflected languages
+ * Invoked by putting {{grammar:case|word}} in a message
+ *
+ * @param string $word
+ * @param string $case
+ * @return string
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['tyv'][$case][$word]) ) {
+ return $wgGrammarForms['tyv'][$case][$word];
+ }
+
+
+ // Set up some constants...
+ $allVowels = array("е", "и", "э", "ө", "ү", "а", "ё", "о", "у", "ы", "ю", "я", "a", "e", "i", "o", "ö", "u", "ü", "y");
+ $frontVowels = array("е", "и", "э", "ө", "ү", "e", "i", "ö", "ü");
+ $backVowels = array("а", "ё", "о", "у", "ы", "ю", "я", "a", "o", "u", "y");
+ $unroundFrontVowels = array("е", "и", "э", "e", "i");
+ $roundFrontVowels = array("ө", "ү", "ö", "ü");
+ $unroundBackVowels = array("а", "ы", "я", "a", "y");
+ $roundBackVowels = array("ё", "о", "у", "ю", "o", "u");
+ $voicedPhonemes = array("д", "б", "з", "ж", "г", "d", "b", "z", "g");
+ $unvoicedPhonemes = array("т", "п", "с", "ш", "к", "ч", "х", "t", "p", "s", "k", "x");
+ $directiveUnvoicedStems = array("т", "п", "с", "ш", "к", "ч", "х", "л", "м", "н", "ң", "t", "p", "s", "k", "x", "l", "m", "n", "ŋ");
+ $directiveVoicedStems = array("д", "б", "з", "ж", "г", "р", "й", "d", "b", "z", "g", "r", "j");
+
+// $allSonants = array("л", "м", "н", "ң", "р", "й");
+// $allNasals = array("м", "н", "ң");
+
+ // Put the word in a form we can play with since we're using UTF-8
+ preg_match_all( '/./us', $word, $ar );
+
+ $wordEnding = $ar[0][count($ar[0]) - 1]; //Here's the last letter in the word
+ $wordReversed = array_reverse($ar[0]); //Here's an array with the order of the letters in the word reversed so we can find a match quicker *shrug*
+
+ // Find the last vowel in the word
+ $wordLastVowel = NULL;
+ foreach ( $wordReversed as $xvalue ) {
+ foreach ( $allVowels as $yvalue ) {
+ if ( strcmp($xvalue, $yvalue) == 0 ) {
+ $wordLastVowel = $xvalue;
+ break;
+ } else {
+ continue;
+ }
+ }
+ if ( $wordLastVowel !== NULL ) {
+ break;
+ } else {
+ continue;
+ }
+ }
+
+ // Now convert the word
+ switch ( $case ) {
+ case "genitive":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "түң";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "тиң";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "туң";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "тың";
+ } else {
+ }
+ } elseif ( $wordEnding === "л" || $wordEnding === "l") {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "дүң";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "диң";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "дуң";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "дың";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "нүң";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "ниң";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "нуң";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ның";
+ } else {
+ }
+ }
+ break;
+ case "dative":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "ке";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "ка";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "ге";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "га";
+ } else {
+ }
+ }
+ break;
+ case "accusative":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "тү";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "ти";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ту";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ты";
+ } else {
+ }
+ } elseif ( $wordEnding === "л" || $wordEnding === "l") {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "дү";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "ди";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ду";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ды";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "нү";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "ни";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ну";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "ны";
+ } else {
+ }
+ }
+ break;
+ case "locative":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "те";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "та";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "де";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "да";
+ } else {
+ }
+ }
+ break;
+ case "ablative":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "тен";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "тан";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $frontVowels) ) {
+ $word = implode("",$ar[0]) . "ден";
+ } elseif ( in_array($wordLastVowel, $backVowels) ) {
+ $word = implode("",$ar[0]) . "дан";
+ } else {
+ }
+ }
+ break;
+ case "directive1":
+ if ( in_array($wordEnding, $directiveVoicedStems) ) {
+ $word = implode("",$ar[0]) . "же";
+ } elseif ( in_array($wordEnding, $directiveUnvoicedStems) ) {
+ $word = implode("",$ar[0]) . "че";
+ } else {
+ }
+ break;
+ case "directive2":
+ if ( in_array($wordEnding, $unvoicedPhonemes) ) {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "түве";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "тиве";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "туве";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "тыве";
+ } else {
+ }
+ } else {
+ if ( in_array($wordLastVowel, $roundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "дүве";
+ } elseif ( in_array($wordLastVowel, $unroundFrontVowels) ) {
+ $word = implode("",$ar[0]) . "диве";
+ } elseif ( in_array($wordLastVowel, $roundBackVowels) ) {
+ $word = implode("",$ar[0]) . "дуве";
+ } elseif ( in_array($wordLastVowel, $unroundBackVowels) ) {
+ $word = implode("",$ar[0]) . "дыве";
+ } else {
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ return $word;
+ }
+}
+?>
diff --git a/languages/classes/LanguageVi.php b/languages/classes/LanguageVi.php
new file mode 100644
index 00000000..4f9c4da3
--- /dev/null
+++ b/languages/classes/LanguageVi.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Based on Language.php 1.645
+ * @package MediaWiki
+ * @subpackage Language
+ * Compatible to MediaWiki 1.5
+ * Initial translation by Trần Thế Trung and Nguyễn Thanh Quang
+ * Last update 28 August 2005 (UTC)
+ */
+
+class LanguageVi extends Language {
+ function date( $ts, $adj = false, $format = true, $timecorrection = false ) {
+ if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); }
+
+ $datePreference = $this->dateFormat( $format );
+
+ $month = $this->formatMonth( substr( $ts, 4, 2 ), $datePreference );
+ $day = $this->formatDay( substr( $ts, 6, 2 ), $datePreference );
+ $year = $this->formatNum( substr( $ts, 0, 4 ), true );
+
+ switch( $datePreference ) {
+ case 3:
+ case 4: return "$day/$month/$year";
+ case MW_DATE_ISO: return substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2);
+ default: return "$day $month năm $year";
+ }
+ }
+
+ function timeSeparator( $format ) {
+ $datePreference = $this->dateFormat($format);
+ switch ( $datePreference ) {
+ case '4': return 'h';
+ default: return ':';
+ }
+ }
+
+ function timeDateSeparator( $format ) {
+ $datePreference = $this->dateFormat($format);
+ switch ( $datePreference ) {
+ case '0':
+ case '1':
+ case '2': return ', ';
+ default: return ' ';
+ }
+ }
+
+ function formatMonth( $month, $format ) {
+ $datePreference = $this->dateFormat($format);
+ switch ( $datePreference ) {
+ case '0':
+ case '1': return 'tháng ' . ( 0 + $month );
+ case '2': return 'tháng ' . $this->getSpecialMonthName( $month );
+ default: return 0 + $month;
+ }
+ }
+
+ function formatDay( $day, $format ) {
+ $datePreference = $this->dateFormat($format);
+ switch ( $datePreference ) {
+ case '0':
+ case '1':
+ case '2': return 'ngày ' . (0 + $day);
+ default: return 0 + $day;
+ }
+ }
+
+ function getSpecialMonthName( $key ) {
+ $names = 'Một, Hai, Ba, Tư, Năm, Sáu, Bảy, Tám, Chín, Mười, Mười một, Mười hai';
+ $names = explode(', ', $names);
+ return $names[$key-1];
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageWa.php b/languages/classes/LanguageWa.php
new file mode 100644
index 00000000..541c6de8
--- /dev/null
+++ b/languages/classes/LanguageWa.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Walloon (Walon)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+# NOTE: cweri après "NOTE:" po des racsegnes so des ratournaedjes
+# k' i gn a.
+
+class LanguageWa extends Language {
+ ###
+ ### Dates in Walloon are "1î d' <monthname>" for 1st of the month,
+ ### "<day> di <monthname>" for months starting by a consoun, and
+ ### "<day> d' <monthname>" for months starting with a vowel
+ ###
+ function date( $ts, $adj = false, $format = true, $tc = false ) {
+ global $wgUser;
+
+ if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); }
+ $datePreference = $this->dateFormat( $format );
+
+ # ISO (YYYY-mm-dd) format
+ #
+ # we also output this format for YMD (eg: 2001 January 15)
+ if ( $datePreference == 'ISO 8601' ) {
+ $d = substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2);
+ return $d;
+ }
+
+ # dd/mm/YYYY format
+ if ( $datePreference == 'walloon short' ) {
+ $d = substr($ts, 6, 2). '/' . substr($ts, 4, 2). '/' .substr($ts, 0, 4);
+ return $d;
+ }
+
+ # Walloon format
+ #
+ # we output this in all other cases
+ $m = substr( $ts, 4, 2 );
+ $n = substr( $ts, 6, 2 );
+ if ($n == 1) {
+ $d = "1î d' " . $this->getMonthName( $m ) .
+ " " . substr( $ts, 0, 4 );
+ } else if ($n == 2 || $n == 3 || $n == 20 || $n == 22 || $n == 23) {
+ $d = (0 + $n) . " d' " . $this->getMonthName( $m ) .
+ " " . substr( $ts, 0, 4 );
+ } else if ($m == 4 || $m == 8 || $m == 10) {
+ $d = (0 + $n) . " d' " . $this->getMonthName( $m ) .
+ " " . substr( $ts, 0, 4 );
+ } else {
+ $d = (0 + $n) . " di " . $this->getMonthName( $m ) .
+ " " . substr( $ts, 0, 4 );
+ }
+ return $d;
+ }
+
+ function timeanddate( $ts, $adj = false, $format = true, $tc = false ) {
+ if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); }
+ $datePreference = $this->dateFormat( $format );
+ if ( $datePreference == 'ISO 8601' ) {
+ return parent::timeanddate( $ts, $adj, $format, $tc );
+ } else {
+ return $this->date( $ts, $adj, $format, $tc ) . ' a ' .
+ $this->time( $ts, $adj, $format, $tc );
+ }
+ }
+}
+
+?>
diff --git a/languages/classes/LanguageZh.deps.php b/languages/classes/LanguageZh.deps.php
new file mode 100644
index 00000000..1d736340
--- /dev/null
+++ b/languages/classes/LanguageZh.deps.php
@@ -0,0 +1,10 @@
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageZh.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+// see http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html
+
+require_once( dirname(__FILE__).'/LanguageZh_cn.php' );
+require_once( dirname(__FILE__).'/../LanguageConverter.php' );
+?>
diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php
new file mode 100644
index 00000000..c34315ac
--- /dev/null
+++ b/languages/classes/LanguageZh.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+require_once( dirname(__FILE__).'/../LanguageConverter.php' );
+require_once( dirname(__FILE__).'/LanguageZh_cn.php' );
+
+class ZhConverter extends LanguageConverter {
+ function loadDefaultTables() {
+ require( "includes/ZhConversion.php" );
+ $this->mTables = array();
+ $this->mTables['zh-cn'] = $zh2CN;
+ $this->mTables['zh-tw'] = $zh2TW;
+ $this->mTables['zh-sg'] = array_merge($zh2CN, $zh2SG);
+ $this->mTables['zh-hk'] = array_merge($zh2TW, $zh2HK);
+ $this->mTables['zh'] = array();
+ }
+
+ function postLoadTables() {
+ $this->mTables['zh-sg'] = array_merge($this->mTables['zh-cn'], $this->mTables['zh-sg']);
+ $this->mTables['zh-hk'] = array_merge($this->mTables['zh-tw'], $this->mTables['zh-hk']);
+ }
+
+ /* there shouldn't be any latin text in Chinese conversion, so no need
+ to mark anything
+ */
+ function markNoConversion($text) {
+ return $text;
+ }
+
+ function convertCategoryKey( $key ) {
+ return $this->autoConvert( $key, 'zh-cn' );
+ }
+}
+
+
+/* class that handles both Traditional and Simplified Chinese
+ right now it only distinguish zh_cn, zh_tw, zh_sg and zh_hk.
+*/
+class LanguageZh extends LanguageZh_cn {
+
+ function __construct() {
+ global $wgHooks;
+ parent::__construct();
+ $this->mConverter = new ZhConverter($this, 'zh',
+ array('zh', 'zh-cn', 'zh-tw', 'zh-sg', 'zh-hk'),
+ array('zh'=>'zh-cn',
+ 'zh-cn'=>'zh-sg',
+ 'zh-sg'=>'zh-cn',
+ 'zh-tw'=>'zh-hk',
+ 'zh-hk'=>'zh-tw'));
+ $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
+ }
+
+
+ # this should give much better diff info
+ function segmentForDiff( $text ) {
+ return preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' ' .\"$1\"", $text);
+ }
+
+ function unsegmentForDiff( $text ) {
+ return preg_replace(
+ "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "\"$1\"", $text);
+ }
+
+ // word segmentation
+ function stripForSearch( $string ) {
+ $fname="LanguageZh::stripForSearch";
+ wfProfileIn( $fname );
+
+ // eventually this should be a word segmentation
+ // for now just treat each character as a word
+ $t = preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' ' .\"$1\"", $string);
+
+ //always convert to zh-cn before indexing. it should be
+ //better to use zh-cn for search, since conversion from
+ //Traditional to Simplified is less ambiguous than the
+ //other way around
+
+ $t = $this->mConverter->autoConvert($t, 'zh-cn');
+ $t = parent::stripForSearch( $t );
+ wfProfileOut( $fname );
+ return $t;
+
+ }
+
+ function convertForSearchResult( $termsArray ) {
+ $terms = implode( '|', $termsArray );
+ $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );
+ $ret = array_unique( explode('|', $terms) );
+ return $ret;
+ }
+
+}
+?>
diff --git a/languages/classes/LanguageZh_cn.php b/languages/classes/LanguageZh_cn.php
new file mode 100644
index 00000000..af94cb99
--- /dev/null
+++ b/languages/classes/LanguageZh_cn.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageZh_cn extends Language {
+ function stripForSearch( $string ) {
+ # MySQL fulltext index doesn't grok utf-8, so we
+ # need to fold cases and convert to hex
+ # we also separate characters as "words"
+ if( function_exists( 'mb_strtolower' ) ) {
+ return preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' U8' . bin2hex( \"$1\" )",
+ mb_strtolower( $string ) );
+ } else {
+ list( , $wikiLowerChars ) = Language::getCaseMaps();
+ return preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )",
+ $string );
+ }
+ }
+}
+
+
+?>
diff --git a/languages/classes/LanguageZh_yue.php b/languages/classes/LanguageZh_yue.php
new file mode 100644
index 00000000..0e45508c
--- /dev/null
+++ b/languages/classes/LanguageZh_yue.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
+class LanguageZh_yue extends Language {
+ function stripForSearch( $string ) {
+ # MySQL fulltext index doesn't grok utf-8, so we
+ # need to fold cases and convert to hex
+ # we also separate characters as "words"
+ if( function_exists( 'mb_strtolower' ) ) {
+ return preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' U8' . bin2hex( \"$1\" )",
+ mb_strtolower( $string ) );
+ } else {
+ list( , $wikiLowerChars ) = Language::getCaseMaps();
+ return preg_replace(
+ "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+ "' U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )",
+ $string );
+ }
+ }
+}
+
+
+?>
diff --git a/languages/messages/MessagesAb.php b/languages/messages/MessagesAb.php
new file mode 100644
index 00000000..7be9a316
--- /dev/null
+++ b/languages/messages/MessagesAb.php
@@ -0,0 +1,5 @@
+<?php
+
+$fallback = 'ru';
+
+?>
diff --git a/languages/messages/MessagesAf.php b/languages/messages/MessagesAf.php
new file mode 100644
index 00000000..56f88087
--- /dev/null
+++ b/languages/messages/MessagesAf.php
@@ -0,0 +1,694 @@
+<?php
+
+$quickbarSettings = array(
+ 'Geen.', 'Links vas.', 'Regs vas.', 'Dryf links.'
+);
+
+$skinNames = array(
+ 'standard' => 'Standaard',
+ 'nostalgia' => 'Nostalgie',
+ 'cologneblue' => 'Keulen blou',
+);
+
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Spesiaal',
+ NS_MAIN => '',
+ NS_TALK => 'Bespreking',
+ NS_USER => 'Gebruiker',
+ NS_USER_TALK => 'Gebruikerbespreking',
+ # NS_PROJECT set by $wgMetaNamespace,
+ NS_PROJECT_TALK => '$1bespreking',
+ NS_IMAGE => 'Beeld',
+ NS_IMAGE_TALK => 'Beeldbespreking',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWikibespreking',
+ NS_TEMPLATE => 'Sjabloon',
+ NS_TEMPLATE_TALK => 'Sjabloonbespreking',
+ NS_HELP => 'Hulp',
+ NS_HELP_TALK => 'Hulpbespreking',
+ NS_CATEGORY => 'Kategorie',
+ NS_CATEGORY_TALK => 'Kategoriebespreking'
+);
+
+# South Africa uses space for thousands and comma for decimal
+# Reference: AWS Reël 7.4 p. 52, 2002 edition
+# glibc is wrong in this respect in some versions
+$separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
+$linkTrail = "/^([a-z]+)(.*)\$/sD";
+
+$messages = array(
+# User Toggles
+
+"tog-underline" => "Onderstreep skakels.",
+"tog-highlightbroken" => "Wys gebroke skakels <a href=\"\" class=\"new\">so</a> of so<a href=\"\" class=\"internal\">?</a>).",
+"tog-justify" => "Justeer paragrawe.",
+"tog-hideminor" => "Moenie klein wysigings in die nuwe wysigingslys wys nie.",
+"tog-usenewrc" => "Verbeterde nuwe wysigingslys (vir moderne blaaiers).",
+"tog-numberheadings" => "Automatiese nommer opskrifte.",
+"tog-showtoolbar" => "Show edit toolbar",
+"tog-rememberpassword" => "Onthou wagwoord oor sessies.",
+"tog-editwidth" => "Wysigingsboks met volle wydte.",
+"tog-editondblclick" => "Wysig blaaie met dubbelkliek (JavaScript).",
+"tog-watchdefault" => "Lys nuwe en gewysigde bladsye.",
+"tog-minordefault" => "Merk alle wysigings automaties as klein by verstek.",
+"tog-previewontop" => "Wys voorskou bo wysigingsboks.",
+
+# Dates
+'sunday' => 'Sondag',
+'monday' => 'Maandag',
+'tuesday' => 'Dinsdag',
+'wednesday' => 'Woensdag',
+'thursday' => 'Donderdag',
+'friday' => 'Vrydag',
+'saturday' => 'Saterdag',
+'january' => 'Januarie',
+'february' => 'Februarie',
+'march' => 'Maart',
+'april' => 'April',
+'may_long' => 'Mei',
+'june' => 'Junie',
+'july' => 'Julie',
+'august' => 'Augustus',
+'september' => 'September',
+'october' => 'Oktober',
+'november' => 'November',
+'december' => 'Desember',
+'jan' => '01',
+'feb' => '02',
+'mar' => '03',
+'apr' => '04',
+'may' => '05',
+'jun' => '06',
+'jul' => '07',
+'aug' => '08',
+'sep' => '09',
+'oct' => '10',
+'nov' => '11',
+'dec' => '12',
+
+
+# Bits of text used by many pages:
+#
+"mainpage" => "Tuisblad",
+"about" => "Omtrent",
+"aboutsite" => "Inligting oor {{SITENAME}}",
+"aboutpage" => "{{ns:4}}:Omtrent",
+"help" => "Help",
+"helppage" => "{{ns:4}}:Hulp",
+"bugreports" => "Foutrapporte",
+"bugreportspage" => "{{ns:4}}:FoutRapporte",
+"faq" => "Gewilde vrae",
+"faqpage" => "{{ns:4}}:GewildeVrae",
+"edithelp" => "Wysighulp",
+"edithelppage" => "{{ns:4}}:Hoe_word_'n_bladsy_gewysig",
+"cancel" => "Kanselleer",
+"qbfind" => "Vind",
+"qbbrowse" => "Snuffel",
+"qbedit" => "Wysig",
+"qbpageoptions" => "Bladsy opsies",
+"qbpageinfo" => "Bladsy inligting",
+"qbmyoptions" => "My opsies",
+"mypage" => "My bladsy",
+"mytalk" => "My besprekings",
+"currentevents" => "Huidige gebeure",
+"errorpagetitle" => "Fout",
+"returnto" => "Keer terug na $1.",
+"whatlinkshere" => "Bladsye wat hierheen skakel",
+"help" => "Hulp",
+"search" => "Soek",
+"searchbutton" => "Soek",
+"go" => "Wys",
+'searcharticle' => "Wys",
+"history" => "Ouer weergawes",
+"printableversion" => "Drukbare weergawe",
+"editthispage" => "Wysig hierdie bladsy",
+"deletethispage" => "Skrap bladsy",
+"protectthispage" => "Beskerm hierdie bladsy",
+"unprotectthispage" => "Laat toe dat bladsy gewysig word",
+"newpage" => "Nuwe bladsy",
+"talkpage" => "Bespreek hierdie bladsy",
+"articlepage" => "Lees artikel",
+"userpage" => "Lees gebruikersbladsy",
+"projectpage" => "Lees metabladsy",
+"imagepage" => "Lees bladsy oor prent",
+"viewtalkpage" => "Lees bespreking",
+"otherlanguages" => "Ander tale",
+"redirectedfrom" => "(Van $1 aangestuur.)",
+"lastmodifiedat" => "Laaste wysiging op $2, $1.",
+"viewcount" => "Hierdie bladsy is al $1 keer aangevra.",
+"protectedpage" => "Beskermde bladsy",
+
+"nbytes" => "$1 grepe",
+"ok" => "Aanvaar", #fixMe
+"retrievedfrom" => "Ontsluit van \"$1\"",
+"newmessageslink" => "nuwe boodskappe",
+
+# Main script and global functions
+#
+"nosuchaction" => "Ongeldige aksie",
+"nosuchactiontext" => "Onbekende aksie deur die adres gespesifeer",
+"nosuchspecialpage" => "Ongeldige spesiale bladsy",
+"nospecialpagetext" => "Ongeldige spesiale bladsy gespesifeer.",
+
+# General errors
+#
+"error" => "Fout",
+"databaseerror" => "Databasisfout",
+"dberrortext" => "Sintaksisfout in databasisnavraag.
+Die laaste navraag was:
+<blockquote><tt>$1</tt></blockquote>
+van funksie \"<tt>$2</tt>\".
+MySQL foutboodskap \"<tt>$3: $4</tt>\".",
+"noconnect" => "Kon nie met databasis op $1 konnekteer nie",
+"nodb" => "Kon nie databasis $1 selekteer nie",
+"readonly" => "Databasis gesluit",
+"enterlockreason" => "Rede vir die sluiting,
+en beraming van wanneer ontsluiting sal plaas vind",
+"readonlytext" => "Die {{SITENAME}} databasis is tans gesluit vir nuwe
+artikelwysigings, waarskynlik vir roetine databasisonderhoud,
+waarna dit terug sal wees na normaal.
+Die administreerder wat dit gesluit het se verduideliking:
+<p>$1",
+"missingarticle" => "Die databasis het nie die teks van die veronderstelde bladsy \"$1\" gekry nie.
+Nie databasisfout nie, moontlik sagtewarefout.
+Raporteer die adres asseblief aan enige administrateur.",
+"internalerror" => "Interne fout",
+"filecopyerror" => "Kon nie lêer van \"$1\" na \"$2\" kopieer nie.",
+"filerenameerror" => "Kon nie lêernaam van \"$1\" na \"$2\" wysig nie.",
+"filedeleteerror" => "Kon nie lêer \"$1\" skrap nie.",
+"filenotfound" => "Kon nie lêer \"$1\" vind nie.",
+"unexpected" => "Onverwagte waarde: \"$1\"=\"$2\".",
+"formerror" => "Fout: kon vorm nie stuur nie",
+"badarticleerror" => "Die aksie kon nie op hierdie bladsy uitgevoer word nie.",
+"cannotdelete" => "Kon nie die bladsy of prent skrap nie, iemand anders het dit miskien reeds geskrap.",
+"badtitle" => "Ongeldige titel",
+"badtitletext" => "Die bladsytitel waarvoor gevra is, is ongeldig, leeg, of
+'n verkeerd geskakelde tussen-taal of tussen-wiki titel.",
+"perfdisabled" => "Hierdie funksie is afgeskakel tydens spitstoegangsure vir verrigtingsredes, probeer weer tussen 02:00z en 14:00z (Universeel Gekoördineerde Tyd - UGT).",
+
+# Login and logout pages
+#
+"logouttitle" => "Teken uit",
+"logouttext" => "Jy is nou uitgeteken, en kan aanhou om
+{{SITENAME}} anoniem te gebruik; of jy kan inteken as dieselfde of 'n ander gebruiker.",
+
+"welcomecreation" => "<h2>Welkom, $1.</h2><p>Jou rekening is geskep;
+moenie vergeet om jou persoonlike voorkeure te stel nie.",
+
+"loginpagetitle" => "Teken in",
+"yourname" => "Jou gebruikersnaam",
+"yourpassword" => "Jou wagwoord",
+"yourpasswordagain" => "Tik weer jou wagwoord in",
+"remembermypassword" => "Onthou my wagwoord oor sessies.",
+"loginproblem" => "<b>Daar was probleme met jou intekening.</b><br />Probeer weer.",
+"alreadyloggedin" => "<strong>Gebruiker $1, jy is reeds ingeteken.</strong><br />",
+
+"login" => "Teken in",
+"userlogin" => "Teken in",
+"logout" => "Teken uit",
+"userlogout" => "Teken uit",
+"createaccount" => "Kies nuwe wagwoord",
+"badretype" => "Die wagwoorde wat jy ingetik het, is nie dieselfde nie.",
+"userexists" => "Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief 'n ander gebruikersnaam.",
+"youremail" => "Jou e-pos",
+"yournick" => "Jou bynaam (vir stempel)",
+"loginerror" => "Intekenfout",
+"noname" => "Ongeldige gebruikersnaam.",
+"loginsuccesstitle" => "Suksesvolle intekening",
+"loginsuccess" => "Jy is ingeteken by {{SITENAME}} as \"$1\".",
+"nosuchuser" => "Daar is geen \"$1\" gebruikersnaam nie.
+Maak seker dit is reg gespel, of gebruik die vorm hier onder om 'n nuwe rekening te skep.",
+"wrongpassword" => "Ongeldige wagwoord, probeer weer.",
+"mailmypassword" => "Stuur my wagwword na my e-pos adres.",
+"passwordremindertitle" => "Wagwoordwenk van {{SITENAME}}",
+"passwordremindertext" => "Iemand (waarskynlik jy, van IP-adres $1)
+het gevra dat ons vir jou 'n nuwe {{SITENAME}} wagwoord stuur.
+Die wagwoord vir gebruiker \"$2\" is nou \"$3\".
+Teken asseblief in en verander jou wagwoord.",
+"noemail" => "Daar is geen e-pos adres vir gebruiker \"$1\" nie.",
+"passwordsent" => "Nuwe wagwoord gestuur na e-posadres vir \"$1\".
+Teken asseblief in na jy dit ontvang het.",
+
+# Edit pages
+#
+"summary" => "Opsomming",
+"minoredit" => "Klein wysiging",
+"watchthis" => "Hou bladsy dop",
+"savearticle" => "Stoor bladsy",
+"preview" => "Voorskou",
+"showpreview" => "Wys voorskou",
+"blockedtitle" => "Gebruiker is geblokkeer",
+"blockedtext" => "Jou gebruikersnaam of IP-adres is deur $1 geblokkeer:
+<br />''$2''<p>Jy mag $1 of een van die ander [[{{ns:4}}:administreerders|administreerders]] kontak
+om dit te bespreek.",
+"newarticle" => "(Nuut)",
+"newarticletext" =>
+"Die bladsy waarna geskakel is, bestaan nie.
+Om 'n nuwe bladsy te skep, tik in die invoerboks hier onder. Lees die [[{{ns:4}}:Help|hulp bladsy]]
+vir meer inligting.
+Indien jy per ongeluk hier is, gebruik jou blaaier se '''terug''' knop.",
+"anontalkpagetext" => "---- ''Dit is die besprekingsbladsy vir 'n anonieme gebruiker wat nie 'n rekening geskep het nie. Ons moet dus hul [[IP-adres]] gebruik om hulle te identifiseer. So 'n IP-adres kan deur verskeie gebruikers gedeel word. Indien jy 'n anonieme gebruiker is wat voel dat oneerbiedige komentaar aan jou gerig is, [[Special:Userlogin|skep 'n rekening of teken in]] om verwarring te voorkom met ander anonieme gebruikers.'' ",
+"noarticletext" => "(Daar is tans geen inligting vir hierdie artikel nie.)",
+"updated" => "(Gewysig)",
+"note" => "<strong>Nota:</strong> ",
+"previewnote" => "Onthou dat dit slegs 'n voorskou is en nog nie gestoor is nie!",
+"previewconflict" => "Hierdie voorskou reflekteer die teks in die boonste invoerboks soos dit sal lyk as jy dit stoor.",
+"editing" => "Besig om $1 te wysig",
+'editinguser' => "Besig om $1 te wysig",
+"editconflict" => "Wysigingskonflik: $1",
+"explainconflict" => "Iemand anders het hierdie bladsy gewysig sedert jy dit begin verander het.
+Die boonste invoerboks het die teks wat tans bestaan.
+Jou wysigings word in die onderste invoerboks gewys.
+Jy sal jou wysigings moet saamsmelt met die huidige teks.
+<strong>Slegs</strong> die teks in die boonste invoerboks sal gestoor word wanneer jy \"Stoor bladsy\" druk.<br />",
+"yourtext" => "Jou teks",
+"storedversion" => "Gestoorde weergawe",
+"editingold" => "<strong>Waarskuwing: jy is besig om 'n ou weergawe van hierdie bladsy te wysig.
+As jy dit stoor, sal enige wysigings sedert hierdie wysiging verloor word.</strong>",
+"yourdiff" => "Wysigings",
+/*"copyrightwarning" => "Alle bydraes aan {{SITENAME}} word beskou as beskikbaar gestel onder
+die ''GNU Free Documentation License'' (lees $1 vir meer inligting).
+As jy nie wil hê dat jou werk ongemagtig gewysig of versprei mag word nie, moet jy dit nie hier indien nie.<br />
+Jy belowe ons ook dat jy dit self geskryf het, of verkry het van 'n bron wat toelaat dat dit hier mag wees.<br />
+<strong>Moenie werk beskerm deur kopiereg sonder toestemming indien nie!</strong>",*/
+"longpagewarning" => "Waarskuwing: hierdie bladsy is $1 kilogrepe lank; sekere blaaiers
+kan probleme hê met die wysiging va blaaie langer as 32 kilogrepe. Breek asseblief die bladsy op in kleiner dele.",
+
+# History pages
+#
+"revhistory" => "Wysigingsgeskiedenis",
+"nohistory" => "Daar is geen wysigingsgeskiedenis vir hierdie bladsy nie.",
+"revnotfound" => "Wysiging nie gevind nie.",
+"revnotfoundtext" => "Die ou wysiging waarvoor jy gevra het, kon nie gevind word nie. Maak asseblief seker dat die adres wat jy gebruik
+het om toegang te kry tot hierdie bladsy, reg is.",
+"loadhist" => "Besig om bladsy wysigingsgeskiedenis te laai.",
+"currentrev" => "Huidige wysiging",
+"revisionasof" => "Wysiging soos op $1",
+"cur" => "huidige",
+"next" => "volgende",
+"last" => "vorige",
+"orig" => "oorspronklike",
+"histlegend" => "Byskrif: (huidige) = verskil van huidige weergawe,
+(vorige) = verskil van vorige weergawe, M = klein wysiging",
+
+# Diffs
+#
+"difference" => "(Verksil tussen weergawes)",
+"loadingrev" => "Besig om weergawe van verskil te laai.",
+"lineno" => "Lyn $1:",
+"editcurrent" => "Wysig die huidige weergawe van hierdie bladsy.",
+
+# Search results
+#
+"searchresults" => "soekresultate",
+"searchresulttext" => "Vir meer inligting oor {{SITENAME}} soekresultate, lees [[Project:Soek|Soek in {{SITENAME}}]].",
+"searchsubtitle" => "Vir navraag \"[[:$1]]\"",
+"searchsubtitleinvalid" => "Vir navraag \"$1\"",
+"badquery" => "Verkeerd gestelde navraag",
+"badquerytext" => "Ons kon nie jou naavraag prosesseer nie.
+Dit is miskien omdat jy gesoek het vir iets wat minder as drie letters bevat. Jy het miskien die navraag verkeerd ingetik.",
+"matchtotals" => "Die navraag \"$1\" pas $2 artikeltitels
+en teks in $3 artikels.",
+"noexactmatch" => "Geen bladsy met hierdie presiese titel bestaan nie, probeer 'n volteksnavraag. ",
+"titlematches" => "Artikeltitel resultate",
+"notitlematches" => "Geen artikeltitel resultate nie",
+"textmatches" => "Artikelteks resultate",
+"notextmatches" => "Geen artikelteks resultate nie",
+"prevn" => "vorige $1",
+"nextn" => "volgende $1",
+"viewprevnext" => "Kyk na ($1) ($2) ($3).",
+"showingresults" => "Onder <b>$1</b> resultate, beginende met #<b>$2</b>.",
+"nonefound" => "<strong>Nota</strong>: onsuksesvolle navrae word gewoonlik veroorsaak deur 'n soektog met algemene
+woorde wat nie geindekseer word nie, of spesifisering van meer as een woord (slegs blaaie wat alle navraagwoorde
+bevat, word gewys).",
+"powersearch" => "Soek",
+"powersearchtext" => "
+Search in namespaces :<br />
+$1<br />
+$2 List redirects Search for $3 $9", #fixMe
+
+
+# Preferences page
+#
+"preferences" => "Voorkeure",
+"prefsnologin" => "Nie ingeteken nie",
+"prefsnologintext" => "Jy moet [[Special:Userlogin|ingeteken wees]]
+om voorkeure te spesifiseer.",
+"prefsreset" => "Voorkeure is herstel.",
+"qbsettings" => "Snelbalkvoorkeure", #fixMe Quickbar settings
+"changepassword" => "Verander wagwoord",
+"skin" => "Omslag",
+"math" => "Verbeeld wiskunde",
+"math_failure" => "Kon nie verbeeld nie",
+"math_unknown_error" => "onbekende fout",
+"math_unknown_function" => "onbekende funksie ",
+"math_lexing_error" => "leksikale fout",
+"math_syntax_error" => "sintaksfout",
+"saveprefs" => "Stoor voorkeure",
+"resetprefs" => "Herstel voorkeure",
+"oldpassword" => "Ou wagwoord",
+"newpassword" => "Nuwe wagwoord",
+"retypenew" => "Tik nuwe wagwoord weer in",
+"textboxsize" => "Grootte van invoerboks",
+"rows" => "Rye",
+"columns" => "Kolomme",
+"searchresultshead" => "Soekresultaat voorkeure",
+"resultsperpage" => "Aantal resultate om te wys",
+"contextlines" => "Aantal lyne per resultaat",
+"contextchars" => "Karakters konteks per lyn",
+"stubthreshold" => "Drempel vir verkorte artikels",
+"recentchangescount" => "Aantal titels in onlangse wysigings",
+"savedprefs" => "Jou voorkeure is gestoor.",
+"timezonetext" => "Aantal ure wat plaaslike tyd verskil van UGT.",
+"localtime" => "Plaaslike tyd",
+"timezoneoffset" => "Teenrekening",
+
+# Recent changes
+#
+"changes" => "wysigings",
+"recentchanges" => "Onlangse wysigings",
+"rcnote" => "Hier onder is die laaste <strong>$1</strong> wysigings gedurende die laaste <strong>$2</strong> dae.",
+"rcnotefrom" => "Hier onder is die wysigings sedert <b>$2</b> (tot by <b>$1</b> word gewys).",
+"rclistfrom" => "Wys nuwe wysigings en begin by $1",
+"rclinks" => "Wys die laaste $1 wysigings in die laaste $2 dae.",
+"diff" => "verskil",
+"hist" => "geskiedenis",
+"hide" => "vat weg",
+"show" => "wys",
+"minoreditletter" => "K",
+"newpageletter" => "N",
+
+# Upload
+#
+"upload" => "Laai lêer",
+"uploadbtn" => "Laai lêer",
+"reupload" => "Herlaai",
+"reuploaddesc" => "Keer terug na die laaivorm.",
+"uploadnologin" => "Nie ingeteken nie",
+"uploadnologintext" => "Teken eers in [[Special:Userlogin|logged in]]
+om lêers te laai.",
+"uploaderror" => "Laaifout",
+"uploadtext" => "'''STOP!''' Voor jy hier laai, lees en volg {{SITENAME}} se
+[[Project:Image_use_policy|beleid oor prentgebruik]].
+
+Om prente wat voorheen gelaai is te sien of te soek, gaan na die
+[[Special:Imagelist|lys van gelaaide prente]].
+Laai van lêers en skrappings word aangeteken in die
+[[Project:Upload_log|laailog]].
+
+Gebruik die vorm hier onder om nuwe prente te laai wat jy ter illustrasie in jou artikels wil gebruik.
+In die meeste webblaaiers sal jy 'n \"Browse...\" knop sien, wat jou bedryfstelsel se standaard lêeroopmaak dialoogblokkie sal oopmaak.
+Deur 'n lêer in hierdie dialoogkassie te kies, vul jy die teksboks naas die knop met die naam van die lêer.
+Jy moet ook die blokkie merk om te bevestig dat jy geen kopieregte skend deur die lêer op te laai nie.
+Kliek die \"Laai\" knop om die laai af te handel.
+Dit mag dalk 'n rukkie neem as jy 'n stadige internetverbinding het.
+
+Die voorkeurformate is JPEG vir fotografiese prente, PNG vir tekeninge en ander ikoniese prente, en OGG vir klanklêers.
+Gebruik asseblief beskrywende lêername om verwarring te voorkom.
+Om die prent in 'n artikel te gebruik, gebruik 'n skakel met die formaat '''<nowiki>[[image:file.jpg]]</nowiki>''' of
+'''<nowiki>[[image:file.png|alt text]]</nowiki>''' of
+'''<nowiki>[[media:file.ogg]]</nowiki>''' vir klanklêers.
+
+Let asseblief op dat, soos met {{SITENAME}} bladsye, mag ander jou gelaaide lêers redigeer as hulle dink dit dien die ensiklopedie, en jy kan verhoed word om lêers te laai as jy die stelsel misbruik.",
+"uploadlog" => "laailog",
+"uploadlogpage" => "laai_log",
+"uploadlogpagetext" => "Hier onder is 'n lys van die mees onlangse lêers wat gelaai is.
+Alle tye is bedienertyd (UGT).
+<ul>
+</ul>",
+"filename" => "Lêernaam",
+"filedesc" => "Opsomming",
+"copyrightpage" => "{{ns:4}}:kopiereg",
+"copyrightpagename" => "{{SITENAME}} kopiereg",
+"uploadedfiles" => "Gelaaide lêers",
+"minlength" => "Prentname moet ten minste drie letters lank wees.",
+"badfilename" => "Prentnaam is verander na \"$1\".",
+"badfiletype" => "\".$1\" is nie 'n aanbevole lêerformaat vir prente nie.",
+"successfulupload" => "Laai suksesvol",
+"fileuploaded" => "Lêer \"$1\" suksesvol gelaai.
+Volg asseblief hierdie skakel: ($2) na die beskrywingsbladsy en vul inligting in oor die die lêer, soos waar dit vandaan kom, wie het dit geskep en wanneer, en enige iets anders wat jy daarvan af weet.",
+"uploadwarning" => "Laaiwaarskuwing",
+"savefile" => "Stoor lêer",
+"uploadedimage" => "Het \"[[$1]]\" gelaai",
+
+# Image list
+#
+"imagelist" => "Prentelys",
+"imagelisttext" => "Hier onder is a lys van $1 prente gesorteer $2.",
+"getimagelist" => "Besig om prentelys te haal",
+"ilsubmit" => "Soek",
+"showlast" => "Wys laaste $1 prente gesorteer $2.",
+"byname" => "volgens naam",
+"bydate" => "volgens datum",
+"bysize" => "volgens grootte",
+"imgdelete" => "skrap",
+"imgdesc" => "beskrywing",
+"imglegend" => "Legende: (beskrywing) = wys/verander prent se beskrywing.",
+"imghistory" => "Prentgeskiedenis",
+"revertimg" => "gaan terug",
+"deleteimg" => "skrap",
+"deleteimgcompletely" => "skrap",
+"imghistlegend" => "Legende: (huidig) = dit is die huidige prent, (skrap) = skrap hierdie ou weergawe, (gaan terug) = gaan terug na hierdie ou weergawe.
+<br /><i>Kliek die datum om die prent te sien wat op daardie datum gelaai is</i>.",
+"imagelinks" => "Prentskakels",
+"linkstoimage" => "Die volgende bladsye gebruik hierdie prent:",
+"nolinkstoimage" => "Daar is geen bladsye wat hierdie prent gebruik nie.",
+
+# Statistics
+#
+"statistics" => "Statistiek",
+"sitestats" => "Werfstatistiek",
+"userstats" => "Gebruikerstatistiek",
+"sitestatstext" => "Daar is 'n totaal van <b>$1</b> bladsye in die databasis.
+Dit sluit \"bespreek\" bladsye in, bladsye oor {{SITENAME}}, minimale \"verkorte\"
+bladsye, wegwysbladsye, en ander wat waarskynlik nie as artikels kwalifiseer nie.
+Uitsluitend bogenoemde, is daar <b>$2</b> bladsye wat waarskynlik ware artikels is.<p>
+Bladsye is al <b>$3</b> kere aangevra, en <b>$4</b> keer verander sedert die sagteware opgegradeer is (July 20, 2002).
+Dit werk uit op gemiddeld <b>$5</b> veranderings per bladsy, en bladsye word <b>$6</b> keer per verandering aangevra.",
+"userstatstext" => "Daar is <b>$1</b> geregistreerde gebruikers.
+<b>$2</b> van hulle is administrateurs (sien $3).",
+
+# Maintenance Page
+#
+"disambiguations" => "Bladsye wat onduidelikhede opklaar",
+"disambiguationspage" => "{{ns:4}}:Links_to_disambiguating_pages",
+"disambiguationstext" => "Die volgende artikels skakel na 'n <i>bladsy wat onduidelikhede opklaar</i>. Hulle behoort eerder na die relevante onderwerp te skakel.<br />'n Bladsy word gesien as een wat onduidelikhede opklaar as $1 daarna toe skakel.<br />Skakels van ander naamkontekste is <i>nie</i> hier gelys nie.",
+"doubleredirects" => "Dubbele aansture",
+"doubleredirectstext" => "<b>Let op:</b> Hierdie lys bevat moontlik false positiewe. Dit beteken gewoonlik dat daar nog teks met skakels onder die eerste #REDIRECT is.<br />\nElke ry bevat skakels na die eerste en die tweede aanstuur, asook die eerste reël van van die tweede aanstuurteks, wat gewoonlik die \"regte\" teikenbladsy gee waarna die eerste aanstuur behoort te wys.",
+"brokenredirects" => "Stukkende aansture",
+"brokenredirectstext" => "Die volgende aansture skakel na 'n bladsy wat nie bestaan nie.",
+
+
+# Miscellaneous special pages
+#
+"lonelypages" => "Weesbladsye",
+"unusedimages" => "Ongebruikte prente",
+"popularpages" => "Populêre bladsye",
+"nviews" => "$1 keer aangevra",
+"wantedpages" => "Gesogte bladsye",
+"nlinks" => "$1 skakels",
+"allpages" => "Alle bladsye",
+"randompage" => "Lukrake bladsy",
+"shortpages" => "Kort bladsye",
+"longpages" => "Lang bladsye",
+"listusers" => "Gebruikerslys",
+"specialpages" => "Spesiale bladsye",
+"spheading" => "Spesiale bladsye",
+"recentchangeslinked" => "Verwante veranderings",
+"rclsub" => "(na bladsye waarna \"$1\" skakel)",
+"newpages" => "Nuwe bladsye",
+"movethispage" => "Skuif hierdie bladsy",
+"unusedimagestext" => "<p>Let asseblief op dat ander webwerwe, soos die internasionale {{SITENAME}}s, dalk met 'n direkte URL na 'n prent skakel, so die prent sal dus hier verskyn al word dit aktief gebruik.", // TODO: grammar
+"booksources" => "Boekbronne",
+"booksourcetext" => "Hier onder is 'n lys van skakels na ander werwe wat nuwe en tweede handse boeke verkoop, en wat dalk ook verdere inligting het oor boeke waarna jy soek.
+{{SITENAME}} is nie geaffilieer aan enige van hierdie besighede nie en die lys moet nie as 'n aanbeveling gesien word nie.",
+
+# Email this user
+#
+"mailnologin" => "Geen verstuuradres",
+"mailnologintext" => "Jy moet [[Special:Userlogin|ingeteken]]
+wees en 'n geldige e-posadres in jou [[Special:Preferences|voorkeure]]
+hê om e-pos aan ander gebruikers te stuur.",
+"emailuser" => "Stuur e-pos na hierdie gebruiker",
+"emailpage" => "Stuur e-pos na gebruiker",
+"emailpagetext" => "As die gerbuiker 'n geldoge e-posadres in haar of sy gebruikersvoorkeure het, sal die vorm hier onder 'n enkele boodskap stuur.
+Die e-posadres wat jy in jou gebruikersvoorkeure het sal verkyn as die \"Van\" adres van die pos, so die ontvanger sal kan terug antwoord.",
+"noemailtitle" => "Geen e-posadres",
+"noemailtext" => "Hierdie gebruiker het nie 'n geldige e-posadres gespesifiseer nie of het gekies om nie e-pos van ander gebruikers te ontvang nie.",
+"emailfrom" => "Van",
+"emailto" => "Aan",
+"emailsubject" => "Onderwerp",
+"emailmessage" => "Boodskap",
+"emailsend" => "Stuur",
+"emailsent" => "E-pos gestuur",
+"emailsenttext" => "Jou e-pos is gestuur.",
+
+# Watchlist
+#
+"watchlist" => "My dophoulys",
+"nowatchlist" => "Jy het geen items in jou dophoulys nie.",
+"watchnologin" => "Nie ingeteken nie",
+"watchnologintext" => "Jy moet [[Special:Userlogin|ingeteken]]
+wees om jou dophoulys te verander.",
+"addedwatch" => "Bygevoeg tot dophoulys",
+"addedwatchtext" => "Die bladsy \"$1\" is by jou <a href=\"" .
+ "{{localurle:Special:Watchlist}}\">dophoulys</a> gevoeg.
+Toekomstige veranderinge aan hierdie bladsye en sy geassosieerde Bespreekbladsy sal hier verskyn en die bladsy sal in <b>vetdruk</b> verskyn in die <a href=\"" .
+ "{{localurle:Special:Recentchanges}}\">lys van onlangse wysigings</a> om dit makliker te maak om dit raak te sien.</p>
+
+<p>As jy die bladsy later van jou dophoulys wil verwyder, kliek \"Moenie meer dophou\" in die kantbalk.",
+"removedwatch" => "Afgehaal van dophoulys",
+"removedwatchtext" => "Die bladsy \"$1\" is van jou dophoulys afgehaal.",
+"watchthispage" => "Hou hierdie bladsy dop",
+"unwatchthispage" => "Moenie meer dophou",
+"notanarticle" => "Nie 'n artikel",
+
+# Delete/protect/revert
+#
+"deletepage" => "Skrap bladsy",
+"confirm" => "Bevestig",
+"confirmdelete" => "Bevestig skrapping",
+"deletesub" => "(Besig om \"$1\" te skrap)",
+"confirmdeletetext" => "Jy staan op die punt om 'n bladsy of prent asook al hulle geskiedenis uit die databasis te skrap.
+Bevestig asseblief dat jy dit wil doen, dat jy die gevolge verstaan en dat jy dit doen in ooreenstemming met die [[{{ns:4}}:Policy]].",
+"actioncomplete" => "Aksie uitgevoer",
+"deletedtext" => "\"$1\" is geskrap.
+Kyk na $2 vir 'n rekord van onlangse skrappings.",
+"deletedarticle" => "\"$1\" geskrap",
+"dellogpage" => "Skrap_log",
+"dellogpagetext" => "Hier onder is 'n lys van die mees onlangse skrappings. Alle tye is bedienertyd (UGT).
+<ul>
+</ul>",
+"deletionlog" => "skrappingslog",
+"reverted" => "Het terug gegaan na vroeëre weergawe",
+"deletecomment" => "Rede vir skrapping",
+"imagereverted" => "Terugkeer na vorige weergawe was suksesvol.",
+"rollback" => "Rol veranderinge terug",
+"rollbacklink" => "Rol terug",
+"cantrollback" => "Kan nie na verandering terug keer nie; die laaste bydraer is die enigste outer van hierdie bladsy.",
+"revertpage" => "Het teruggegaan na laaste verandering wat $1 gemaak het",
+
+# Undelete
+"undelete" => "Herstel geskrapte bladsy",
+"undeletepage" => "Bekyk en herstel geskrapte bladsye",
+"undeletepagetext" => "Die volgende bladsye is geskrap, maar hulle is nog in die argief en kan herstel word. Die argief kan periodiek skoongemaak word.",
+"undeletearticle" => "Herstel geskrapte bladsy",
+"undeleterevisions" => "$1 weergawes in argief",
+"undeletehistory" => "As jy die bladsy herstel, sal alle weergawes herstel word.
+As 'n nuwe bladsy met dieselfde naam sedert die skrapping geskep is, sal die herstelde weergawes in die nuwe bladsy se voorgeskiedenis verskyn en die huidige weergawe van die lewendige bladsy sal nie outomaties vervang word nie.",
+"undeleterevision" => "Geskrape weergawes vanaf $1",
+"undeletebtn" => "Herstel!",
+"undeletedarticle" => "het \"$1\" herstel",
+
+# Contributions
+#
+"contributions" => "Gebruikersbydraes",
+"mycontris" => "My bydraes",
+"contribsub" => "Vir $1",
+
+"nocontribs" => "Geen veranderinge wat by hierdie kriteria pas, is gevind nie.",
+"ucnote" => "Hier onder is die gebruiker se laaste <b>$1</b> veranderings in die laaste <b>$2</b> dae.",
+"uclinks" => "Bekyk die laaste $1 veranderings; bekyk die laaste $2 dae.",
+"uctop" => " (boontoe)" ,
+
+# What links here
+#
+"whatlinkshere" => "Wat skakel hierheen",
+"notargettitle" => "Geen teiken",
+"notargettext" => "Jy het nie 'n teikenbladsy of gebruiker waarmee hierdie funksie moet werk, gespesifiseer nie.",
+"linklistsub" => "(Lys van skakels)",
+"linkshere" => "Die volgende bladsye skakel hierheen:",
+"nolinkshere" => "Geen bladsye skakel hierheen nie.",
+"isredirect" => "Stuur bladsy aan",
+
+# Block/unblock IP
+#
+"blockip" => "Blok IP-adres",
+"blockiptext" => "Gebruik die vorm hier onder om skryftoegang van 'n sekere IP-adres te blok.
+Dit moet net gedoen word om vandalisme te voorkom en in ooreenstemming met [[{{ns:4}}:Policy|{{SITENAME}} policy]].
+Vul 'n spesifieke rede hier onder in (haal byvoorbeeld spesifieke bladsye wat gevandaliseer is, aan).",
+"ipaddress" => "IP-Adres",
+"ipbreason" => "Rede",
+"ipbsubmit" => "Blok hierdie adres",
+"badipaddress" => "Die IP-adres is nie in die regte formaat nie.",
+"blockipsuccesssub" => "Blokkering het geslaag",
+"blockipsuccesstext" => "Die IP-adres \"$1\" is geblok.
+<br />Kyk na [[Special:Ipblocklist|IP block list]] vir 'n oorsig van blokkerings.",
+"unblockip" => "Maak IP-adres oop",
+"unblockiptext" => "Gebruik die vorm hier onder om skryftoegang te herstel vir 'n voorheen geblokkeerde IP-adres.",
+"ipusubmit" => "Maak hierdie adres oop",
+"ipblocklist" => "Lys van geblokkeerde IP-adresse",
+'blocklistline' => '$1, $2 het $3 geblok ($4)',
+"blocklink" => "blok",
+"unblocklink" => "maak oop",
+"contribslink" => "bydraes",
+
+# Developer tools
+#
+"lockdb" => "Sluit databasis",
+"unlockdb" => "Ontsluit databasis",
+"lockdbtext" => "As jy die databasis sluit, kan geen gebruiker meer bladsye redigeer nie, voorkeure verander nie, dophoulyste verander nie, of ander aksies uitvoer wat veranderinge in die databasis verg nie.
+Bevestig asseblief dat dit is wat jy wil doen en dat jy die databasis sal ontsluit sodra jy jou instandhouding afgehandel het.",
+"unlockdbtext" => "As jy die databasis ontsluit, kan gebruikers weer bladsye redigeer, voorkeure verander, dophoulyste verander, of ander aksies uitvoer wat veranderinge in die databasis verg.
+Bevestig asseblief dat dit is wat jy wil doen.",
+"lockconfirm" => "Ja, ek wil regtig die databasis sluit.",
+"unlockconfirm" => "Ja, ek wil regtig die databasis ontsluit.",
+"lockbtn" => "Sluit die databasis",
+"unlockbtn" => "Ontsluit die databasis",
+"locknoconfirm" => "Jy het nie die bevestigblokkie gemerk nie.",
+"lockdbsuccesssub" => "Databasissluit het geslaag",
+"unlockdbsuccesssub" => "Databasisslot is verwyder",
+"lockdbsuccesstext" => "Die {{SITENAME}} databasis is gesluit.
+<br />Onthou om dit te ontsluit wanneer jou onderhoud afgehandel is.",
+"unlockdbsuccesstext" => "Die {{SITENAME}} databasis is ontsluit.",
+
+# Move page
+#
+"movepage" => "Skuif bladsy",
+"movepagetext" => "Met die vorm hier onder kan jy 'n bladsy hernoem en so al sy geskiedenis na die nuwe naam skuif.
+Die ou titel sal 'n aanstuurbladsy na die nuwe titel word.
+Skakels na die ou bladsytitel sal nie verander nie; maak seker dat jy
+check vir dubbele of gebrekte aansture.
+Dis jou verantwoordelikheid om seker te maak dat skakels steeds wys waarheen hulle moet.
+
+Let op dat 'n bladsy '''nie''' geskuif sal word as daar reeds 'n bladsy met so 'n titel bestaan nie, tensy dit leeg is off 'n aanstuurbladsy is, en dit het geen veranderingsgeskiedenis nie. Dit beteken dat jy 'n bladsy kan hernoem na sy ou titel as jy 'n fout gemaak het, en jy kan nie oor 'n bestaande bladsy skryf nie.
+
+<b>WAARSKUWING!</b>
+Hierdie kan 'n drasitiese en onverwagte verandering vir 'n populêre bladsy wees;
+maak asseblief seker dat jy die gevolge verstaan voordat jy voortgaan.",
+"movepagetalktext" => "Die geassosieerde praatbladsy, indien enige, sal outomaties saam met dit geskuif word, '''behalwe as:'''
+*Jy die bladsy oor naamkontekste heen skuif,
+*'n Bespreekbladsy wat nie leeg is nie reeds onder die nuwe naam bestaan, of
+*Jy die merk uit blokkie hier onder wegneem.
+
+In hierdie gevalle, sal jy die bladsy met die hand moet skuif of saamsmelt as jy wil.",
+"movearticle" => "Skuif bladsy",
+"movenologin" => "Nie ingeteken nie",
+"movenologintext" => "Jy moet 'n geregistreerde gebruiker wees en [[Special:Userlogin|ingeteken]]
+wees om 'n bladsy te skuif.",
+"newtitle" => "Na nuwe titel",
+"movepagebtn" => "Skuif bladsy",
+"pagemovedsub" => "Verskuiwing het geslaag",
+"pagemovedtext" => "Bladsy \"[[$1]]\" geskuif na \"[[$2]]\".",
+"articleexists" => "'n Bladsy met daardie naam bestaan reeds, of die naam wat jy gekies het, is nie geldig nie.
+Kies asseblief 'n ander naam.",
+"talkexists" => "Die bladsy self is suksesvol verskuif, maar die bespreekbladsy kon nie geskuif word nie omdat een reeds bestaan met die nuwe titel. Smelt hulle asseblief met die hand saam.",
+"movedto" => "geskuif na",
+"movetalk" => "Skuif \"bespreek\"bladsy ook, indien van toepassing.",
+"talkpagemoved" => "Die ooreenkomstige bespreekbladsy is ook geskuif.",
+"talkpagenotmoved" => "Die ooreenkomstige bespreekbladsy is <strong>nie</strong> geskuif nie.",
+
+#Math
+'mw_math_png' => "Gebruik altyd PNG.",
+'mw_math_simple' => "Gebruik HTML indien dit eenvoudig is, andersins PNG.",
+'mw_math_html' => "Gebruik HTML wanneer moontlik, andersins PNG.",
+'mw_math_source' => "Los as TeX (vir teks blaaiers).",
+'mw_math_modern' => "Moderne blaaiers.",
+'mw_math_mathml' => 'MathML',
+
+);
+
+
+
+?>
diff --git a/languages/messages/MessagesAn.php b/languages/messages/MessagesAn.php
new file mode 100644
index 00000000..a10cd232
--- /dev/null
+++ b/languages/messages/MessagesAn.php
@@ -0,0 +1,24 @@
+<?php
+
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Espezial',
+ NS_MAIN => '',
+ NS_TALK => 'Descusión',
+ NS_USER => 'Usuario',
+ NS_USER_TALK => 'Descusión_usuario',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => 'Descusión_$1',
+ NS_IMAGE => 'Imachen',
+ NS_IMAGE_TALK => 'Descusión_imachen',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'Descusión_MediaWiki',
+ NS_TEMPLATE => 'Plantilla',
+ NS_TEMPLATE_TALK => 'Descusión_plantilla',
+ NS_HELP => 'Aduya',
+ NS_HELP_TALK => 'Descusión_aduya',
+ NS_CATEGORY => 'Categoría',
+ NS_CATEGORY_TALK => 'Descusión_categoría',
+);
+
+?>
diff --git a/languages/messages/MessagesAr.php b/languages/messages/MessagesAr.php
new file mode 100644
index 00000000..476b6621
--- /dev/null
+++ b/languages/messages/MessagesAr.php
@@ -0,0 +1,607 @@
+<?php
+/** Arabic (العربية)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$linkPrefixExtension = true;
+$fallback8bitEncoding = 'windows-1256';
+
+$rtl = true;
+$defaultUserOptionOverrides = array(
+ # Swap sidebar to right side by default
+ 'quickbar' => 2,
+ # Underlines seriously harm legibility. Force off:
+ 'underline' => 0,
+);
+
+$namespaceNames = array(
+ NS_MEDIA => 'ملف',
+ NS_SPECIAL => 'خاص',
+ NS_MAIN => '',
+ NS_TALK => 'نقاش',
+ NS_USER => 'مستخدم',
+ NS_USER_TALK => 'نقاش_المستخدم',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => 'نقاش' . '_$1',
+ NS_IMAGE => 'صورة',
+ NS_IMAGE_TALK => 'نقاش_الصورة',
+ NS_MEDIAWIKI => 'ميدياويكي',
+ NS_MEDIAWIKI_TALK => 'نقاش_ميدياويكي',
+ NS_TEMPLATE => 'قالب',
+ NS_TEMPLATE_TALK => 'نقاش_قالب',
+ NS_HELP => 'مساعدة',
+ NS_HELP_TALK => 'نقاش_المساعدة',
+ NS_CATEGORY => 'تصنيف',
+ NS_CATEGORY_TALK => 'نقاش_التصنيف'
+);
+
+
+$magicWords = array(
+# ID CASE SYNONYMS
+ 'redirect' => array( 0, '#REDIRECT' , '#تحويل' ),
+ 'notoc' => array( 0, '__NOTOC__' , '__لافهرس__' ),
+ 'forcetoc' => array( 0, '__FORCETOC__' , '__لصق_فهرس__' ),
+ 'toc' => array( 0, '__TOC__' , '__فهرس__' ),
+ 'noeditsection' => array( 0, '__NOEDITSECTION__' , '__لاتحريرقسم__' ),
+ 'start' => array( 0, '__START__' , '__ابدأ__' ),
+ 'currentmonth' => array( 1, 'CURRENTMONTH' , 'شهر' , 'شهر_حالي' ),
+ 'currentmonthname' => array( 1, 'CURRENTMONTHNAME' , 'اسم_شهر', 'اسم_شهر_حالي'),
+# 'currentmonthnamegen' => array( 1, 'CURRENTMONTHNAMEGEN' ),
+# 'currentmonthabbrev' => array( 1, 'CURRENTMONTHABBREV' ),
+ 'currentday' => array( 1, 'CURRENTDAY' , 'يوم' ),
+# 'currentday2' => array( 1, 'CURRENTDAY2' ),
+ 'currentdayname' => array( 1, 'CURRENTDAYNAME' , 'اسم_يوم' ),
+ 'currentyear' => array( 1, 'CURRENTYEAR' , 'عام' ),
+ 'currenttime' => array( 1, 'CURRENTTIME' , 'وقت' ),
+ 'numberofarticles' => array( 1, 'NUMBEROFARTICLES' ,'عددالمقالات' , 'عدد_المقالات'),
+ 'numberoffiles' => array( 1, 'NUMBEROFFILES' , 'عددالملفات' , 'عدد_الملفات'),
+ 'pagename' => array( 1, 'PAGENAME' , 'اسم_صفحة' ),
+ 'pagenamee' => array( 1, 'PAGENAMEE' , 'عنوان_صفحة' ),
+ 'namespace' => array( 1, 'NAMESPACE' , 'نطاق' ),
+ 'namespacee' => array( 1, 'NAMESPACEE' , 'عنوان_نطاق' ),
+ 'fullpagename' => array( 1, 'FULLPAGENAME', 'اسم_كامل' ),
+ 'fullpagenamee' => array( 1, 'FULLPAGENAMEE' , 'عنوان_كامل' ),
+ 'msg' => array( 0, 'MSG:' , 'رسالة:' ),
+ 'subst' => array( 0, 'SUBST:' , 'نسخ:' , 'نسخ_قالب:' ),
+ 'msgnw' => array( 0, 'MSGNW:' , 'مصدر:' , 'مصدر_قالب:' ),
+ 'end' => array( 0, '__END__' , '__نهاية__', '__إنهاء__' ),
+ 'img_thumbnail' => array( 1, 'thumbnail', 'thumb' , 'تصغير' ),
+ 'img_manualthumb' => array( 1, 'thumbnail=$1', 'thumb=$1' ,'تصغير=$1' ),
+ 'img_right' => array( 1, 'right' , 'يمين' ),
+ 'img_left' => array( 1, 'left' , 'يسار' ),
+ 'img_none' => array( 1, 'none' , 'بدون' ),
+ 'img_width' => array( 1, '$1px' , '$1بك' ),
+ 'img_center' => array( 1, 'center', 'centre' , 'وسط' ),
+ 'img_framed' => array( 1, 'framed', 'enframed', 'frame' , 'إطار', 'اطار'),
+ 'int' => array( 0, 'INT:' , 'محتوى:' ),
+ 'sitename' => array( 1, 'SITENAME' , 'اسم_الموقع' ),
+ 'ns' => array( 0, 'NS:' , 'نط:' ),
+ 'localurl' => array( 0, 'LOCALURL:' , 'عنوان:' ),
+# 'localurle' => array( 0, 'LOCALURLE:' ),
+ 'server' => array( 0, 'SERVER' , 'العنوان' ),
+ 'servername' => array( 0, 'SERVERNAME' , 'اسم_عنوان' ),
+ 'scriptpath' => array( 0, 'SCRIPTPATH' , 'مسار' ),
+# 'grammar' => array( 0, 'GRAMMAR:' ),
+ 'notitleconvert' => array( 0, '__NOTITLECONVERT__', '__NOTC__', 'لاتحويل_عنوان'),
+ 'nocontentconvert' => array( 0, '__NOCONTENTCONVERT__', '__NOCC__', 'لاتحويل_محتوى' ),
+ 'currentweek' => array( 1, 'CURRENTWEEK' , 'أسبوع' ),
+ 'currentdow' => array( 1, 'CURRENTDOW' , 'رقم_يوم' ),
+ 'revisionid' => array( 1, 'REVISIONID' , 'نسخة' ),
+# 'plural' => array( 0, 'PLURAL:' ),
+ 'fullurl' => array( 0, 'FULLURL:', 'عنوان_كامل:' ),
+# 'fullurle' => array( 0, 'FULLURLE:' ),
+# 'lcfirst' => array( 0, 'LCFIRST:' ),
+# 'ucfirst' => array( 0, 'UCFIRST:' ),
+# 'lc' => array( 0, 'LC:' ),
+# 'uc' => array( 0, 'UC:' ),
+# 'raw' => array( 0, 'RAW:' ),
+);
+
+$digitTransformTable = array(
+ '0' => '٠',
+ '1' => '١',
+ '2' => '٢',
+ '3' => '٣',
+ '4' => '٤',
+ '5' => '٥',
+ '6' => '٦',
+ '7' => '٧',
+ '8' => '٨',
+ '9' => '٩',
+ '.' => '٫', // wrong table?
+ ',' => '٬'
+);
+
+$messages = array(
+# Dates
+'sunday' => 'الأحد',
+'monday' => 'الإثنين',
+'tuesday' => 'الثلاثاء',
+'wednesday' => 'الأربعاء',
+'thursday' => 'الخميس',
+'friday' => 'الجمعة',
+'saturday' => 'السبت',
+'january' => 'يناير',
+'february' => 'فبراير',
+'march' => 'مارس',
+'april' => 'ابريل',
+'may_long' => 'مايو',
+'june' => 'يونيو',
+'july' => 'يوليو',
+'august' => 'أغسطس',
+'september' => 'سبتمبر',
+'november' => 'نوفمبر',
+'december' => 'ديسمبر',
+'jan' => 'يناير',
+'feb' => 'فبراير',
+'mar' => 'مارس',
+'apr' => 'ابريل',
+'may' => 'مايو',
+'jun' => 'يونيو',
+'jul' => 'يوليو',
+'aug' => 'أغسطس',
+'sep' => 'سبتمبر',
+'nov' => 'نوفمبر',
+'dec' => 'ديسمبر',
+
+# Bits of text used by many pages:
+#
+'mainpage' => 'الصفحة الرئيسية',
+'mytalk' => 'صفحة نقاشي',
+'history_short' => 'تاريخ الصفحة',
+'edit' => 'عدل هذه الصفحة',
+'delete' => 'حذف هذه الصفحة',
+'protect' => 'صفحة محمية',
+'talk' => 'ناقش هذه الصفحة',
+
+# Watchlist
+#
+'watch' => 'راقب هذه الصفحة',
+'watchthispage' => 'راقب هذه الصفحة',
+'unwatch' => 'توقف عن مراقبة الصفحة',
+'unwatchthispage' => 'توقف عن مراقبة الصفحة',
+
+'1movedto2' => '$1 تم نقلها إلى $2',
+'1movedto2_redir' => 'تم نقل $1 فوق التحويلة $2',
+'about' => 'حول',
+'aboutpage' => '{{ns:project}}:حول',
+'accmailtext' => 'تم إرسال كلمة السر الخاصة بـ \'$1\' إلى العنوان $2.',
+'accmailtitle' => 'تم إرسال كلمة السر.',
+'acct_creation_throttle_hit' => 'معذرة، لقد أقمت $1 حساب. لا يممكنك عمل المزيد.',
+'actioncomplete' => 'انتهاء العملية',
+'addedwatch' => 'تمت الإضافة لقائمة المراقبة',
+'allmessages' => 'كافة رسائل النظام',
+'allpages' => 'كل الصفحات',
+'allpagessubmit' => 'اذهب',
+'alphaindexline' => '$1 إلى $2',
+'alreadyloggedin' => '<strong>المستخدم $1, انت مسجل للدخول من قبل!</strong><br />',
+'ancientpages' => 'المقالات القديمة',
+'anontalkpagetext' => '----
+هذه صفحة نقاش لمستخدم مجهول، وهو المستخدم الذي لم يقم بإنشاء حساب في {{SITENAME}}، أو لا يستعمل ذلك الحساب.
+لذا يتم إستعمال رقم ال IP للتعريف به. من الممكن أن يشترك عدد من المستخدمين بنفس رقم ال IP. إذا كنت مستخدم مجهول
+وترى أن رسائل خير موجهة لك قد وصلتك، من الممكن أن تقوم [[Special:Userlogin|بإنشاء حساب أو القيام بالدخول]]
+حتى يزول الخلط بينك وبين المستخدمين المجهولين الآخرين.',
+'anonymous' => 'مستخدم مجهول ل{{SITENAME}}',
+'article' => 'مقالة',
+'articleexists' => 'يوجد صفحة بهذا الإسم،
+أو أن الإسم الذي تم إختياره غير صالح.
+يرجى إختيار إسم آخر.',
+'articlepage' => 'عرض المقالة',
+'badfilename' => 'تم تغيير إسم الصورة إلى "$1".',
+'badipaddress' => 'لا يوجد مستخدم بهذا الإسم',
+'badquery' => 'نص بحث خاطئ',
+'badretype' => 'كلمات السر التي أدخلتها غير متطابقة.',
+'badtitle' => 'عنوان خاطئ',
+'blanknamespace' => 'مقالات',
+'blockedtext' => 'إسم المستخدم أو عنوان ال IP الخاص بك تم منعه من قبل $1.
+سبب المنع هو: <br />\'\'$2\'\' <p>
+من الممكن الإتصال مع $1 للنقاش حول المنع، أو من الممكن الإتصال مع أحد [[{{ns:project}}:Administrators|الإداريين]] حول ذلك.
+
+تذكر أنه لا يمكن لك إستعمال خاصية إرسال رسائل إلكترونية للمستخدمين إلا إذا كنت قد وضعت عنوان بريدي صحيح في صفحة [[Special:Preferences|التفضيلات]] الخاصة بك.
+
+عنوان ال IP الخاص بك هو $3. يرجى إضافته في أي رسالة للتساؤل حول المنع.',
+'blockedtitle' => 'المستخدم ممنوع',
+'blockip' => 'منع مستخدم',
+'blocklink' => 'منع مستخدم',
+'blocklogentry' => 'منع "$1" لفترة زمنية مدتها $2',
+'bold_sample' => 'نص عريض',
+'bold_tip' => 'نص عريض',
+'booksources' => 'مصدر كتاب',
+'brokenredirects' => 'وصلات مكسورة',
+'brokenredirectstext' => 'الوصلات التالية تشير لصفحات غير موجودة.',
+'bugreports' => 'تقارير الأخطاء',
+'bydate' => 'على التاريخ',
+'byname' => 'على الإسم',
+'bysize' => 'على الحجم',
+'cancel' => 'إلغاء العملية',
+'categories' => 'تصنيفات الصفحة',
+'categoriespagetext' => 'التصنيفات التالية موجودة في {{SITENAME}}',
+'category_header' => 'المقالات في التصنيف "$1"',
+'categoryarticlecount' => 'يوجد $1 مقال في هذا التصنيف.',
+'changepassword' => 'غير كلمة السر',
+'changes' => 'تغييرات',
+'columns' => 'أعمدة',
+'compareselectedversions' => 'قارن بين النسخ المختارة',
+'confirm' => 'تأكيد',
+'confirmdelete' => 'تأكيد الحذف',
+'confirmprotect' => 'تأكيد الحماية',
+'confirmprotecttext' => 'هل أنت متأكد انك تريد حماية هذه الصفحة؟',
+'confirmunprotect' => 'تأكيد إزالة الحماية',
+'confirmunprotecttext' => 'هل أنت متأكد انك تريد إزالة الحماية عن هذه الصفحة؟',
+'contribslink' => 'مساهمات',
+'contribsub' => 'للمستخدم $1',
+'contributions' => 'مساهمات المستخدم',
+'copyright' => 'المحتويات تحت $1.',
+'copyrightpage' => '{{ns:project}}:حقوق النسخ',
+'copyrightpagename' => 'حقوق النسخ في {{SITENAME}}',
+/*'copyrightwarning' => 'يرجى الملاحظة أن جميع المساهمات هنا خاضعة وصادرة تحت ترخيص
+جنو للوثائق الحرة (أنظر في $1 للمزيد من التفاصيل)
+إذا لم ترد أن تخضع كتابتك للتعديل والتوزيع الحر، لا تضعها هنا.
+<br />
+كما أنك تتعهد بأنك قمت بكتابة ما هو موجود بنفسك، أو قمت بنسخها
+من مصدر يخضع ضمن الملكية العامة، أو مصدر حر آخر.
+<strong>لا ترسل أي عمل ذو حقوق محفوظة بدون الإذن من صاحب الحق</strong>.',*/
+'createaccount' => 'إنشاء حساب جديد',
+'createaccountmail' => 'عبر البريد الإلكتروني',
+'cur' => 'الحالي',
+'currentevents' => 'احداث حالية',
+'currentrev' => 'النسخة الحالية',
+'databaseerror' => 'خطأ في قاعدة البيانات',
+'dateformat' => 'صيغة التاريخ',
+'deadendpages' => 'صفحات نهاية مسدودة',
+'defaultns' => 'أبحث في هذه النطاقات بشكل أفتراضي:',
+'defemailsubject' => 'رسالة من {{SITENAME}}',
+'deletecomment' => 'سبب الحذف',
+'deletedarticle' => 'تم حذف "$1"',
+'deletedtext' => '"$1" تم حذفها.
+انظر في $2 لسجل آخر عمليات الحذف.',
+'deleteimg' => 'حذف',
+'deletepage' => 'حذف الصفحة',
+'deletesub' => '(حذف "$1")',
+'deletethispage' => 'حذف هذه الصفحة',
+'deletionlog' => 'سجل الحذف',
+'dellogpage' => 'سجل_الحذف',
+'diff' => 'فرق',
+'disclaimerpage' => '{{ns:project}}:عدم_مسؤولية_عام',
+'disclaimers' => 'عدم مسؤولية',
+'doubleredirects' => 'وصلات مزدوجة',
+'editcurrent' => 'حرر النسخة الحالية من هذه الصفحة',
+'edithelp' => 'مساعدة التحرير',
+'edithelppage' => '{{ns:project}}:مساعدة التحرير',
+'editing' => 'تحرير $1',
+'editinguser' => 'تحرير $1',
+'editingold' => '<strong> تحذير: أنت تقوم الآن بتحرير نسخة قديمة من هذه الصفحة. إذا قمت بحفظها، سيتم فقدات كافة التغييرات التي حدثت بعد هذه النسخة. </strong>',
+'editsection' => 'تحرير',
+'editold' => 'تحرير',
+'editthispage' => 'عدل هذه الصفحة',
+'emailfrom' => 'من',
+'emailmessage' => 'نص الرسالة',
+'emailpage' => 'أرسل رسالة للمستخدم',
+'emailpagetext' => 'لو أن هذا المستخدم قد قام بإدخال عنوان بريدي صحيح في تفضيلاته،
+فسيتم إرسال رسالة واحدة له بالنموذج أدناه.
+العنوان الذي قمت أنت بإدخاله لك في تفضيلات المستخدم،
+سيظهر في مكان المرسل في الرسالة التي سترسل له، ليتمكن من الرد عليك.',
+'emailsend' => 'إرسال',
+'emailsent' => 'تم إرسال الرسالة',
+'emailsenttext' => 'تم إرسال رسالتك الإلكترونية.',
+'emailsubject' => 'العنوان',
+'emailto' => 'إلى',
+'emailuser' => 'أرسل رسالة لهذا المستخدم',
+'error' => 'خطأ',
+'errorpagetitle' => 'خطأ',
+'excontent' => 'المحتوى كان: \'$1\'',
+'excontentauthor' => 'المحتوى كان: \'$1\' (و المساهم الوحيد كان \'$2\')',
+'explainconflict' => 'لقد قام أحد ما بتعديل الصفحة بعد أن بدأت انت بتحريرها.
+صندوق النصوص العلوي يحتوي على النص الموجود حاليا في الصفحة.
+والتغييرات التي قمت أنت بها موجودة في الصندوق في أسفل الصفحة.
+يجب أن تقوم بدمج تغييراتك في النص الموجود حاليا.
+<b>فقط</b> ما هو موجود في الصندوق العلوي هو ما سيتم حفظه وإستعاله عند الضغط على زر "حفظ الصفحة".
+<p>',
+'export' => 'صدّر صفحات',
+'faq' => 'الأسئلة الأكثر تكرارا',
+'faqpage' => '{{ns:project}}:أسئلة متكررة',
+'filecopyerror' => 'لا يمكن نسخ الملف من "$1" إلى "$2".',
+'filedeleteerror' => 'لا يمكن حذف الملف "$1".',
+'filedesc' => 'وصف قصير',
+'filename' => 'إسم الملف',
+'filenotfound' => 'لا يمكن إيجاد الملف "$1".',
+'filerenameerror' => 'لا يمكن غيير إسم الملف من "$1" إلى "$2".',
+'filesource' => 'مصدر',
+'go' => 'إذهب',
+'searcharticle' => 'إذهب',
+'headline_sample' => 'نص عنوان رئيسي',
+'headline_tip' => 'عنوان من المستوى الثاني',
+'help' => 'مساعدة',
+'helppage' => '{{ns:project}}:مساعدة',
+'hide' => 'إخفاء',
+'hidetoc' => 'إخفاء',
+'hist' => 'تاريخ',
+'histlegend' => 'مفتاح: (الحالي) = الفرق مع النسخة الحالية
+(السابق) = الفروقات مع النسخة السابقة، ط = تغيير طفيف',
+'history' => 'تاريخ الصفحة',
+'ilsubmit' => 'بحث',
+'imagelist' => 'قائمة الصور',
+'imagepage' => 'عرض صفحة الصورة',
+'imgdelete' => 'حذف',
+'imgdesc' => 'وصف',
+'imghistory' => 'تاريخ الصورة',
+'internalerror' => 'خطأ داخلي',
+'intl' => 'وصلات بين لغات الموسوعة',
+'invert' => 'عكس الإختيار',
+'ipblocklist' => 'قائمة أسماء الأعضاء و عناوين ال IP الممنوعة',
+'ipbreason' => 'السبب',
+'isredirect' => 'صفحة تحويل',
+'italic_sample' => 'نص مائل',
+'italic_tip' => 'نص مائل',
+'last' => 'السابق',
+'lastmodifiedat' => 'أخر تعديل لهذه الصفحة كان في $2, $1.',
+'lineno' => 'سطر $1:',
+'link_sample' => 'عنوان وصلة',
+'linkshere' => 'الصفحات التالية تحتوي على وصلة إلى هنا:',
+'linkstoimage' => 'الصفحات التالية تحتوي على وصلة لهذه الصورة:',
+'listusers' => 'قائمة الأعضاء',
+'loadhist' => 'تحميل تاريخ الصفحة',
+'localtime' => 'عرض الوقت المحلي',
+'log' => 'تحميل و حذف',
+'login' => 'دخول',
+'loginerror' => 'خطأ في الدخول',
+'loginpagetitle' => 'تسجيل الدخول للمستخدم',
+'loginproblem' => '<b>حدثت مشكلة أثناء الدخول.</b><br />يرجى المحاولة مرى أخرى!',
+'loginprompt' => 'يجب أن يدعم متصفحك الكوكيز Cookies لتتمكن من الدخول.',
+'loginsuccess' => 'لقد قمت بتسجيل الدخول ل{{SITENAME}} بإسم "$1".',
+'loginsuccesstitle' => 'تم الدخول بشكل صحيح',
+'logout' => 'خروج',
+'logouttext' => 'أنت الآن غير مسجل الدخول للنظام.
+تستطيع المتابعة بإستعمال {{SITENAME}} كمجهول، أو الدخول مرة أخرى بنفس الإسم أو بإسم آخر. من الممكن أن ترى بعض الصفحات في الموسوعة كما وأنك مسجل في النظام.، وذلك بسبب إستعمال الصفحات المخبأة Cache في المنتصفح لديك.',
+'logouttitle' => 'تسجيل الخروج للمستخدم',
+'lonelypages' => 'صفحات يتيمة',
+'longpages' => 'صفحات طويلة',
+'mailmypassword' => 'أرسل لي كلمة السر عبر البريد الإلكتروني.',
+'mailnologin' => 'لا يوجد عنوان للإرسال',
+'minoredit' => 'هذا تعديل طفيف',
+'minoreditletter' => 'ط',
+'moredotdotdot' => 'المزيد...',
+'move' => 'نقل',
+'movearticle' => 'نقل صفحة',
+'movedto' => 'تم نقلها إلى',
+'movelogpage' => 'سجل النقل',
+'movenologin' => 'غير مسجل',
+'movepage' => 'نقل صفحة',
+'movepagebtn' => 'أنقل الصفحة',
+'movepagetalktext' => 'صفحة النقاش المرفقة بالمقالة سيتم نقلها كذلك، إذا وجدت. ولكن لا يتم نقل صفحة النقاش في الحالات التالية:
+* نقل الصفحة عبر نطاقات namespaces مختلفة.
+* يوجد صفحة نقاش غير فارغة تحت العنوان الجديد للمقالة.
+* قمت بإزالة إختيار نقل صفحة النقاش في الأسفل.
+
+وفي الحالات أعلاه، يجب عليك نقل أو دمج محتويات صفحة النقاش يدويا، إذا رغب في ذلك.',
+'movereason' => 'السبب',
+'movetalk' => 'أنقل صفحة \'\'\'النقاش\'\'\' أن أمكن.',
+'movethispage' => 'أنقل هذه الصفحة',
+'mycontris' => 'مساهماتي',
+'mypage' => 'صفحتي',
+'namespace' => 'النطاق:',
+'namespacesall' => 'الكل',
+'navigation' => 'تصفح',
+'nbytes' => '$1 بايت',
+'newarticle' => '(جديد)',
+'newarticletext' => 'لقد تبعت وصلة لصفحة لم يتم إنشائها بعد.
+لإنشاء هذه الصفحة إبدأ بالكتابة في الصندوق بالأسفل.
+(أنظر في [[{{ns:project}}:مساعدة|صفحة المساعدة]] للمزيد من المعلومات)
+إذا كانت زيارتك لهذه الصفحة بالخطأ، إضغم على زر \'\'رجوع\'\' في متصفح الإنترنت لديك.',
+'newimages' => 'معرض الصور الجديدة',
+'newmessageslink' => 'رسائل جديدة',
+'newpage' => 'صفحة جديدة',
+'newpageletter' => 'ج',
+'newpages' => 'صفحات جديدة',
+'newpassword' => 'كلمة السر الجديدة',
+'newtitle' => 'إلى العنوان الجديد',
+'newwindow' => '(يفتح في شباك جديد)',
+'next' => 'التالي',
+'nextn' => '$1 التالية',
+'nlinks' => '$1 وصلة',
+'noarticletext' => '(لا يوجد حاليا أي نص في هذه الصفحة)',
+'noemail' => 'لا يوجد أي عنوان بريدي مسجل للمستخدم "$1".',
+'noemailtext' => 'لم يحدد هذا المستخدم عنوان بريد إلكتروني صحيح،
+أو طلب عدم إستلام الرسائل من المستخدمين الآخرين.',
+'noemailtitle' => 'لا يوجد عنوان بريد إلكتروني',
+'noexactmatch' => 'لا يوجد صفحة بنفس العنوان، حاول البحث بشكل مفصل أكثر من خلال إستعمال صندوق البحث أدناه. بإمكانك أيضاً إنشاء [[:1|صفحة جديدة]] بالعنوان الذي طلبته.',
+'nohistory' => 'لا يوجد تاريخ للتغييرات لهذه الصفحة.',
+'nolinkshere' => 'لا يوجد صفحات تصل لهذه الصفحة.',
+'nolinkstoimage' => 'لا يوجد صفحات تصل لهذه الصورة.',
+'noname' => 'لم تحدد إسم مستخدم صحيح.',
+'nospecialpagetext' => 'لقد طلبت صفحة خاصة لا يمكن التعرف عليها من قبل نظام الويكي.',
+'nosuchspecialpage' => 'لا يوجد صفحة خاصة بهذا الإسم',
+'nosuchuser' => 'لا يوجد مستخدم بالإسم "$1".
+تأكد من إملاء الإسم، أو إستعمل النموذج الموجود في الأسفل لإنشاء مستخدم جديد.',
+'note' => '<strong>ملاحظة:</strong>',
+'notextmatches' => 'لم يتم إيجاد أي نص مطابق',
+'notitlematches' => 'لم يتم إيجاد أي عنوان مطابق',
+'notloggedin' => 'غير مسجل',
+'nowatchlist' => 'لا يوجد شيء في قائمة مراقبتك.',
+'nowiki_tip' => 'أهمل تهيئة الويكي',
+'nstab-category' => 'تصنيف',
+'nstab-help' => 'مساعدة',
+'nstab-image' => 'صورة',
+'nstab-main' => 'مقالة',
+'nstab-mediawiki' => 'رسالة',
+'nstab-special' => 'خاص',
+'nstab-template' => 'قالب',
+'nstab-user' => 'صفحة مستخدم',
+'nstab-project' => 'حول',
+'ok' => 'موافق',
+'oldpassword' => 'كلمة السر القديمة',
+'orig' => 'الأصلي',
+'otherlanguages' => ' لغات أخرى',
+'pagemovedsub' => 'تم النقل بنجاح',
+'pagemovedtext' => 'تم نقل الصفحة "[[$1]]" إلى "[[$2]]".',
+'passwordremindertitle' => 'تذكير بكلمة السر من {{SITENAME}}',
+'passwordsent' => 'تم إرسال كلمة سر جديدة إلى العنوان البريدي المسجل للمستخدم "$1".
+يرجى محاولة تسجيل الدخول مرة أخرى عند إستلامها.',
+'popularpages' => 'الصفحات المشهورة',
+'portal' => 'بوابة المجتمع',
+'portal-url' => '{{ns:project}}:بوابة المجتمع',
+'postcomment' => 'أرسل تعليق',
+'powersearch' => 'بحث',
+'preferences' => 'تفضيلات',
+'prefsnologin' => 'غير مسجل',
+'preview' => 'عرض مسبق',
+'previewnote' => 'تذكر، هذا فقط عرض مسبق للصفحة، ولم يتم حفظه بعد!',
+'prevn' => '$1 السابقة',
+'printableversion' => 'نسخة للطباعة',
+'protectcomment' => 'سبب الحماية',
+'protectedarticle' => 'حماية [[$1]]',
+'protectedpage' => 'صفحة محمية',
+'protectlogpage' => 'سجل_الحماية',
+'protectthispage' => 'حماية هذه الصفحة',
+'qbbrowse' => 'تصفح',
+'qbedit' => 'تحرير',
+'qbfind' => 'بحث',
+'qbmyoptions' => 'صفحاتي',
+'qbpageinfo' => 'سياق النص',
+'qbpageoptions' => 'هذه الصفحة',
+'qbsettings' => 'خيارات لوحة الوصلات',
+'qbspecialpages' => 'الصفحات الخاصّة',
+'randompage' => 'صفحة عشوائية',
+'rclinks' => 'أظهر آخر $1 تعديل في آخر $2 يوم، $3',
+'rclistfrom' => 'أظهر التغييرات بدأ من $1',
+'rclsub' => '(لصفحات تصل بها الصفحة "$1")',
+'rcnote' => 'في الأسفل ستجد آخر <strong>$1</strong> تعديل في آخر <strong>$2</strong> أيام.',
+'rcnotefrom' => 'في الأسفل التغييرات منذ <b>$2</b> (ولغاية <b>$1</b>).',
+'readonly' => 'قاعدة البيانات مغلقة',
+'readonlytext' => 'قاعدة البيانات مغلقة حاليا أمام الإضافات والتعديلات، السبب غالبا ما يكون الصيانة، وستعود قاعدة البيانات للوضع الطبيعي قريبا.
+عندما تم أغلاق قاعدة البيانات أمام التعديلات والإضافات تم أعطاء السبب التالي:
+<p>$1',
+'recentchanges' => 'أحدث التغييرات',
+'recentchangescount' => 'عدد العناوين في صفحة أحدث التغييرات',
+'recentchangeslinked' => 'تغييرات ذات علاقة',
+'recentchangestext' => 'تابع آخر التغييرات في الموسوعة من هذه الصفحة.',
+'redirectedfrom' => '(تم التحويل من $1)',
+'remembermypassword' => 'تذكر كلمة السر عبر الجلسات.',
+'removechecked' => 'حذف المواد المختارة من قائمة المراقبة.',
+'removedwatch' => 'تم الحذف من قائمة المراقبة',
+'removedwatchtext' => 'تم حذف الصفحة "$1" من قائمة مراقبتك.',
+'removingchecked' => 'حذف الصفحات المطلوبة من قائمة المراقبة...',
+'returnto' => 'أرجع إلى $1.',
+'retypenew' => 'أعد كتابة كلمة السر الجديدة',
+'revertpage' => 'إسترجاع المقال حتى أخر تعديل من قبل $1',
+'revhistory' => 'تاريخ التغييرات',
+'revnotfound' => 'النسخة غير موجودة',
+'rows' => 'أسطر',
+'savearticle' => 'حفظ الصفحة',
+'savedprefs' => 'تم حفظ تفضيلاتك.',
+'savefile' => 'حفظ الملف',
+'saveprefs' => 'حفظ التفضيلات',
+'search' => 'بحث',
+'searchbutton' => 'بحث',
+'searchdisabled' => '<p>عذرا! لقد تم إيقاف ميزة البحث في النصوص بشكل مؤقت، لأسباب تتعلق بتأثيرها على الأداء العام. في الوقت الحالي من الممكن أن تستعمل محرك البحث جووجل Google بدل من خاصية البحث في النصوص. من الممكن أن لا يكون البحث في جووجل يشمل آخر التعديلات والصفحات.
+</p>',
+'searchsubtitle' => 'لصيغة البحث "[[:$1]]"',
+'searchsubtitleinvalid' => 'لصيغة البحث "$1"',
+'searchresults' => 'نتائج البحث',
+'searchresultshead' => 'خيارات نتائج البحث',
+'searchresulttext' => 'للمزيد من المعلومات حول البحث في {{SITENAME}}، راجع [[{{ns:project}}:تصفح]].',
+'servertime' => 'الوقت في الأجهزة الخادمة الآن هو',
+'shortpages' => 'صفحات قصيرة',
+'show' => 'عرض',
+'showdiff' => 'أظهر الفرق',
+'showpreview' => 'عرض التعديلات',
+'showtoc' => 'إظهار',
+'sitestats' => 'إحصاءات الموقع',
+'sitestatstext' => 'يوجد <b>$1</b> صفحة في قاعدة بيانات الموسوعة العربية، وهذا يشمل صفحات النقاش، والصفحات الخاصة بنظام {{SITENAME}}، والمقالات الصغيرة التي تحتاج تطوير، والتحويلات، وغيرها مما لا يرقى لأن يكون مقالا. إذا تم أهمال تلك الصفحات، فإن عدد الصفحات التي قد تحتوي على مقالات يكون <b>$2</b>.<p>
+تم عرض الصفحات <b>$3</b> مرة، وعدد التعديلات على الصفحات<b>$4</b> تعديل، منذ إنشاء الموسوعة العربية في يوليو/تموز 2003.
+وهذا يعني أن معدل التعديل لكل صفحة <b>$5</b> تعديل، ومعدل عرض كل صفحة <b>$6</b> عرض.',
+'sitesupport' => 'التبرعات',
+'specialpage' => 'صفحة خاصة',
+'specialpages' => 'الصفحات الخاصّة',
+'spheading' => 'الصفحات الخاصة لكل المستخدمين',
+'statistics' => 'إحصاءات',
+'storedversion' => 'النسخة المخزنة',
+'subcategories' => 'التصنيفات الفرعية',
+'subcategorycount' => 'يوجد $1 تصنيف فرعي في هذا التصنيف.',
+'subject' => 'موضوع',
+'successfulupload' => 'تحميل الملف بنجاح',
+'summary' => 'ملخص',
+'talkexists' => 'تم نقل الصفحة بنجاح، لكن لم
+يتم نقل صفحة النقاش المرافقة، بسبب وجود صفحة نقاش
+مسبقا تحت العوان الجديد.
+يرجى نقل محتويات صفحة النقاش يدويا، ودمجها مع المحتويات السابقة.',
+'talkpage' => 'ناقش هذه الصفحة',
+'talkpagemoved' => 'تم نقل صفحة النقاش أيضا.',
+'talkpagenotmoved' => '<strong>لم</strong> يتم نقل صفحة النقاش.',
+'templatesused' => 'القوالب المستخدمة في هذه الصفحة:',
+'textboxsize' => 'أبعاد صندوق النصوص',
+'thumbnail-more' => 'تكبير',
+'toc' => 'فهرست',
+'toolbox' => 'أدوات',
+'uclinks' => 'عرض آخر $1 تعديل; عرض أخر $2 يوم.',
+'ucnote' => 'في الأسفل ستجد آخر <b>$1</b> تعديل لهذا المستخدم في <b>$2</b> أيام.',
+'uctop' => ' (أعلى)',
+'unblocklink' => 'رفع المنع عن مستخدم',
+'uncategorizedcategories' => 'تصنيفات غير مصنفة',
+'uncategorizedpages' => 'صفحات غير مصنفة',
+'undelete' => 'إرجاع صفحات محذوفة',
+'unprotect' => 'أزل الحماية',
+'unprotectcomment' => 'سبب إزالة الحماية',
+'unprotectedarticle' => 'ازالة حماية [[$1]]',
+'unprotectthispage' => 'أزل الحماية عن الصفحة',
+'unusedimages' => 'صور غير مستعملة',
+'upload' => 'تحميل ملف',
+'uploadbtn' => 'تحميل الملف',
+'uploaddisabled' => 'عذرا، تم إيقاف خاصية تحميل الملفات.',
+'uploadedfiles' => 'الملفات المحملة',
+'uploadedimage' => 'تم تحميل "$1"',
+'uploaderror' => 'خطأ في التحميل',
+'uploadlogpagetext' => 'في الأسفل قائمة بأخر الملفات التي تم تحميلها.
+كل الأوقات المعروضة هي حسب توقيت الأجهزةالخادمة (UTC).
+<ul>
+</ul>',
+'uploadnologin' => 'لم تقم بتسجيل الدخول',
+'uploadwarning' => 'تحذير تحميل الملفات',
+'userexists' => 'إسم المستخدم الذي إخترته مستخدم من قبل، يرجى إختيار إسم مستخدم آخر.',
+'userlogin' => 'دخول',
+'userlogout' => 'خروج',
+'userpage' => 'عرض صفحة المستخدم',
+'userstats' => 'إحصاءات المستخدم',
+'userstatstext' => 'يوجد <b>$1</b> عضو مسجل. ومنهم <b>$2</b> إداريين. (أنظر $3)',
+'version' => 'رقم النسخة',
+'viewcount' => 'تم عرض محتويات هذه الصفحة $1 مرة.',
+'viewsource' => 'عرض المصدر للمقالة',
+'viewtalkpage' => 'عرض النقاش',
+'wantedpages' => 'صفحات مطلوبة',
+'watcheditlist' => 'فيما يلي قائمة مرتبة أبجديا للصفحات الموجودة في قائمة المراقبة لديك.
+أختر الصفحات التري تريد إزالتها من خلال الإشارة عليها من الصندوق بجانبها.
+وإضغط على زر \'حذف المختارات\' في آخر الصفحة.',
+'watchlist' => 'قائمة مراقبتي',
+'watchlistcontains' => 'تحتوي قائمة المراقبة لديك على $1 صفحة.',
+'watchmethod-list' => 'إظهار التحريرات في الصفحات المراقبة',
+'watchmethod-recent' => 'تفحص التغييرات الأخيرة في قائمة المراقة لديك',
+'watchnochange' => 'لم يتم تعديل أي صفحة في قائمة المراقبة لديك خلال الفترة المحددة.',
+'watchnologin' => 'غير مسجل',
+'watchthis' => 'راقب هذه الصفحة',
+'welcomecreation' => '<h2>أهلا بك يا , $1!</h2><p> تم إنشاء حسابك.
+لا تنسى أن تقوم بتغيير وتحديد تفضيلاتك في {{SITENAME}}.',
+'whatlinkshere' => 'ماذا يرتبط هنا؟',
+'whitelistacctitle' => 'لا يسمح لك بإنشاء إشتراك',
+'whitelistedittext' => 'يجب عليك [[Special:Userlogin|تسجيل الدخول]] لتتمكن من تعديل الصفحات.',
+'whitelistedittitle' => 'الدخول ضروري للقيام بالتعديل',
+'whitelistreadtext' => 'يجب عليك [[Special:Userlogin|تسجيل الدخول]] لتتمكن من قراءة المقالات.',
+'whitelistreadtitle' => 'تسجيل الدخول ضروري للقراءة',
+'projectpage' => 'عرض الصفحة العامة',
+'wlnote' => 'في الأسفل آخر $1 تعديل في آخر <b>$2</b> ساعة.',
+'wlsaved' => 'هذه نسخة مخزنة من قائمة المراقبة لديك.',
+'wlshowlast' => 'عرض أخر $1 ساعات $2 أيام $3',
+'wrongpassword' => 'كلمة السر التي أدخلتها غير صحيحة، يرجى إعادة المحاولة.',
+'yourdiff' => 'الفروقات',
+'youremail' => 'بريدك الإلكتروني*',
+'yourname' => 'اسمك',
+'yournick' => 'اللقب الخاص بك (للتواقيع)',
+'yourpassword' => 'كلمة السر خاصتك',
+'yourpasswordagain' => 'أعد كتابة كلمة السر',
+'yourrealname' => 'اسمك الحقيقي*',
+'yourtext' => 'النص الذي كتبته',
+);
+
+
+?>
diff --git a/languages/messages/MessagesArc.php b/languages/messages/MessagesArc.php
new file mode 100644
index 00000000..400e7d5f
--- /dev/null
+++ b/languages/messages/MessagesArc.php
@@ -0,0 +1,15 @@
+<?php
+
+/** Aramaic ( ܕܥܒܪܸܝܛ )
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$rtl = true;
+$defaultUserOptionOverrides = array(
+ # Swap sidebar to right side by default
+ 'quickbar' => 2,
+);
+
+?>
diff --git a/languages/messages/MessagesAs.php b/languages/messages/MessagesAs.php
new file mode 100644
index 00000000..3ab1c32e
--- /dev/null
+++ b/languages/messages/MessagesAs.php
@@ -0,0 +1,20 @@
+<?php
+/** Assamese (অসমীয়া)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$digitTransformTable = array(
+ '0' => '০',
+ '1' => '১',
+ '2' => '২',
+ '3' => '৩',
+ '4' => '৪',
+ '5' => '৫',
+ '6' => '৬',
+ '7' => '৭',
+ '8' => '৮',
+ '9' => '৯'
+);
+?>
diff --git a/languages/messages/MessagesAst.php b/languages/messages/MessagesAst.php
new file mode 100644
index 00000000..5fcd7d5d
--- /dev/null
+++ b/languages/messages/MessagesAst.php
@@ -0,0 +1,29 @@
+<?php
+/** Asturian (Asturianu)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Especial',
+ NS_MAIN => '',
+ NS_TALK => 'Discusión',
+ NS_USER => 'Usuariu',
+ NS_USER_TALK => 'Usuariu_discusión',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_discusión',
+ NS_IMAGE => 'Imaxen',
+ NS_IMAGE_TALK => 'Imaxen_discusión',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_discusión',
+ NS_TEMPLATE => 'Plantilla',
+ NS_TEMPLATE_TALK => 'Plantilla_discusión',
+ NS_HELP => 'Ayuda',
+ NS_HELP_TALK => 'Ayuda_discusión',
+ NS_CATEGORY => 'Categoría',
+ NS_CATEGORY_TALK => 'Categoría_discusión',
+);
+
+?>
diff --git a/languages/messages/MessagesAv.php b/languages/messages/MessagesAv.php
new file mode 100644
index 00000000..39a715bf
--- /dev/null
+++ b/languages/messages/MessagesAv.php
@@ -0,0 +1,9 @@
+<?php
+/** Avar (Авар)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'ru';
+?> \ No newline at end of file
diff --git a/languages/messages/MessagesAy.php b/languages/messages/MessagesAy.php
new file mode 100644
index 00000000..cd0d143b
--- /dev/null
+++ b/languages/messages/MessagesAy.php
@@ -0,0 +1,9 @@
+<?php
+/** Tahitian (Reo Mā`ohi)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'fr';
+?>
diff --git a/languages/messages/MessagesAz.php b/languages/messages/MessagesAz.php
new file mode 100644
index 00000000..7e0a505d
--- /dev/null
+++ b/languages/messages/MessagesAz.php
@@ -0,0 +1,674 @@
+<?php
+/** Azerbaijani (Azərbaycan)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$namespaceNames = array(
+ NS_MEDIA => 'Mediya',
+ NS_SPECIAL => 'Xüsusi',
+ NS_MAIN => '',
+ NS_TALK => 'Müzakirə',
+ NS_USER => 'İstifadəçi',
+ NS_USER_TALK => 'İstifadəçi_müzakirəsi',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_müzakirəsi',
+ NS_IMAGE => 'Şəkil',
+ NS_IMAGE_TALK => 'Şəkil_müzakirəsi',
+ NS_MEDIAWIKI => 'MediyaViki',
+ NS_MEDIAWIKI_TALK => 'MediyaViki_müzakirəsi',
+ NS_TEMPLATE => 'Şablon',
+ NS_TEMPLATE_TALK => 'Şablon_müzakirəsi',
+ NS_HELP => 'Kömək',
+ NS_HELP_TALK => 'Kömək_müzakirəsi',
+ NS_CATEGORY => 'Kateqoriya',
+ NS_CATEGORY_TALK => 'Kateqoriya_müzakirəsi',
+);
+
+$separatorTransformTable = array(',' => '.', '.' => ',' );
+
+
+$messages = array(
+
+# User preference toggles # Kullanıcı seçenekleri
+'tog-fancysig' => 'Xam imza (daxili bağlantı yaratmaz)',
+'tog-hideminor' => 'Son dəyişikliklərdə kiçik redaktələri gizlə',
+'tog-rememberpassword' => 'Parolu xatırla',
+'tog-showtoc' => 'Mündərəcat siyhəsin göstər (3 başliqdan artix ola səhifələrdə)',
+
+'underline-always' => 'Həmişə',
+'underline-default' => 'Browser default',
+'underline-never' => 'Həç zaman',
+
+'skinpreview' => '(Sınaq göstərişi)',
+
+# dates # zaman bilgileri
+'monday' => 'Bazar ertǝsi',
+'tuesday' => 'Çǝrşenbǝ axşamı',
+'wednesday' => 'Çǝrşenbǝ',
+'thursday' => 'Cümǝ axşamı',
+'friday' => 'Cümǝ',
+'saturday' => 'Şǝnbǝ',
+'sunday' => 'Bazar',
+'january' => 'Yanvar',
+'february' => 'Fevral',
+'march' => 'Mart',
+'april' => 'Aprel',
+'may_long' => 'May',
+'june' => 'Iyun',
+'july' => 'Iyul',
+'august' => 'Avqust',
+'september' => 'Sentyabr',
+'october' => 'Oktyabr',
+'november' => 'Noyabr',
+'december' => 'Dekabr',
+'jan' => 'Yanvar',
+'feb' => 'Fevral',
+'mar' => 'Mart',
+'apr' => 'Aprel',
+'may' => 'May',
+'jun' => 'Iyun',
+'jul' => 'Iyul',
+'aug' => 'Avqust',
+'sep' => 'Sentyabr',
+'oct' => 'Oktyabr',
+'nov' => 'Noyabr',
+'dec' => 'Dekabr',
+# Bits of text used by many pages: # Birçok sayfada geçen metinler
+#
+'categories' => 'Kateqoriyalar',
+'category_header' => '"$1" kategoriyasındaki məqalələr',
+'subcategories' => 'Alt kategoriyalar',
+
+'mainpage' => 'Ana Səhifə',
+
+'portal' => 'Kənd Meydani',
+'portal-url' => 'Project:Kənd Meydani',
+'about' => 'İzah',
+'aboutpage' => 'Project:İzah',
+'aboutsite' => '{{SITENAME}} haqqında',
+'article' => 'Mündəricat Səhifəsi',
+'help' => 'Kömək',
+'helppage' => 'Help:Mündəricət',
+'bugreports' => 'Xəta mə\'ruzəsı',
+'bugreportspage' => 'Project:Xəta_mə\'ruzəsı',
+'sitesupport' => 'Bağışlar',
+'faq' => 'FAQ',
+'faqpage' => 'Project:FAQ',
+'edithelp' => 'Redaktə kömək',
+'newwindow' => '(Yeni pəncərədə açılır)',
+'edithelppage' => 'Help:Redaktə',
+'cancel' => 'Ləğv et',
+'qbfind' => 'Tap',
+'qbbrowse' => 'Browse',
+'qbedit' => 'Redaktə',
+'qbpageoptions' => 'Bu səhifə',
+'qbpageinfo' => 'Məzmun',
+'qbmyoptions' => 'Mənim səhifələrim',
+'qbspecialpages' => 'Xüsusi səhifələr',
+'moredotdotdot' => 'More...',
+'mypage' => 'Mənim səhifəm',
+'mytalk' => 'Danişiqlarım',
+'navigation' => 'Rəhbər',
+
+# Metadata in edit box
+
+'currentevents' => 'Güncəl hadisələr',
+'currentevents-url' => 'Project:Güncəl Hadisələr',
+'disclaimers' => 'İmtina etmə',
+'errorpagetitle' => 'Xəta',
+'returnto' => '$1 səhifəsinə qayıt.',
+'go' => 'Gətir',
+'searcharticle' => 'Gətir',
+'search' => 'Axtar',
+'searchbutton' => 'Axtar',
+'history' => 'Səhifənin tarixçəsi',
+'history_short' => 'Tarixçə',
+'printableversion' => 'Çap variantı',
+'permalink' => 'Daimi bağlantı',
+'edit' => 'Redaktə',
+'editthispage' => 'Bu səhifəni redaktə edin',
+'delete' => 'Sil',
+'deletethispage' => 'Bu səhifəni sil',
+'protect' => 'Qoru',
+'protectthispage' => 'Bu səhifəni qoru',
+'unprotect' => 'Qorumanı bitir',
+'unprotectthispage' => 'Bu səhifəni qoruma',
+'newpage' => 'Yeni səhifə',
+'talkpage' => 'Bu səhifəyi müzakirə et',
+'specialpage' => 'Xüsusi səhifə',
+'postcomment' => 'Post a comment',
+'articlepage' => 'Məqaləyə get',
+'talk' => 'Müzakirə',
+'toolbox' => 'Alətlər Sandıqı',
+'userpage' => 'İstifadəçi səhifəsini göstər',
+'projectpage' => 'Layihə səhifəsini göstər',
+'viewtalkpage' => 'View discussion',
+'otherlanguages' => 'Başqa dillərdə',
+'redirectedfrom' => '($1 səhifəsindən istiqamətləndirilmişdir)',
+'redirectpagesub' => 'İstiqamətləndirmə səhifəsi',
+'lastmodifiedat' => 'Bu səhifə sonuncu dəfə $2, $1 tarixində redaktə edilib.',
+'copyright' => 'Bu məzmun $1 əhatəsindədir.',
+
+'nbytes' => '$1 bayt',
+'youhavenewmessages' => 'Hal-hazırda $1 var. ($2)',
+'newmessageslink' => 'yeni mesajlar!',
+'editsection' => 'redaktə',
+'editold' => 'redaktə',
+'toc' => 'Mündəricat',
+'showtoc' => 'göstər',
+'hidetoc' => 'gizlə',
+
+# Short words for each namespace, by default used in the 'article' tab in monobook
+'nstab-main' => 'Məqalə',
+'nstab-user' => 'İstifadəçi səhifəsi',
+'nstab-special' => 'Xüsusi',
+'nstab-project' => 'Layihə səhifəsi',
+'nstab-image' => 'Fayl',
+'nstab-mediawiki' => 'Mə\'lumat',
+'nstab-template' => 'Şablon',
+'nstab-help' => 'Kömək',
+'nstab-category' => 'Kateqoriya',
+
+# General errors
+#
+'error' => 'Xəta',
+'databaseerror' => 'Verilənlər bazası xətası',
+'readonly' => 'Verilənlər bazası kilidli',
+'internalerror' => 'Daxili xəta',
+'badtitle' => 'Yanlış başlıq',
+'viewsource' => 'Mənbə göstər',
+
+# Login and logout pages
+#
+'logouttext' => '<strong>Sistemdən çıxdınız.</strong><br /> Vikipediyanı anonim olaraq istifadə etməyə davam edəbilər, və ya eyni yaxud başqa istifadəçi adı ilə yenidən daxil ola bilərsiniz. Diqqətinizə çatdırırıq ki, ön yaddaşı (browser cache) təmizləyənə qədər bə\'zi səhifələr sistemdən çıxdığınız halda da göstərilə bilər.',
+'logouttitle' => 'İstifadəçi çıxış',
+'welcomecreation' => '== $1, xoş gəlmişsiniz! == Hesabınız yaradıldı. {{SITENAME}} nizamlamalarını dəyişdirməyi unutmayın.',
+'loginpagetitle' => 'İstifadəçi Giriş Səhifəsi',
+'yourname' => 'İstifadəçi adı',
+'yourpassword' => 'Parol',
+'yourpasswordagain' => 'Parolu təkrar yazın',
+'remembermypassword' => 'Məni xatırla',
+'alreadyloggedin' => '<strong>User $1, Siz onsuz da daxil olmusunuz!</strong><br />',
+
+'login' => 'Daxil ol',
+'loginprompt' => '{{SITENAME}}-ya daxil olmaq üçün "veb kökələrinin" (cookies) istifadəsinə icazə verilməlidir.',
+'logout' => 'Çıxış',
+'userlogin' => 'Daxil ol və ya istifadəçi yarat',
+'userlogout' => 'Çıxış',
+'nologin' => 'İstifadəçi adınız yoxdursa, $1.',
+'nologinlink' => 'hesab açın',
+'createaccount' => 'Yeni hesab aç',
+'gotaccount' => 'Giriş hesabınız varsa $1.',
+'gotaccountlink' => 'daxil olun',
+'createaccountmail' => 'e-məktub ilə',
+'username' => 'İstifadəçi adı:',
+'uid' => 'İstifadəçi ID:',
+'youremail' => 'E-məktub *',
+'yourlanguage' => 'Dil:',
+'yournick' => 'Ləqəb:',
+'yourrealname' => 'Həqiqi adınız *',
+'email' => 'E-məktub',
+'prefs-help-email' => '* E-məktub (qeyri-məcburi): Enables others to contact you through your user or user_talk page without the need of revealing your identity.',
+'loginsuccess' => '\'\'\'"$1" olaraq {{SITENAME}}-ya daxil oldunuz.\'\'\'',
+'loginsuccesstitle' => 'Daxil olundu',
+'wrongpassword' => 'Yanlış parol. Təkrar yaz.',
+'wrongpasswordempty' => 'Parol boş. Təkrar yaz.',
+'mailmypassword' => 'Parolu unutmuşam',
+'noemail' => '"$1" adlı istifadəçi e-məktub ünvanı qeyd edmemişdir.',
+'acct_creation_throttle_hit' => 'Siz artıq $1 hesab açmısınız. Daha çox hesab açabilmərsiniz.',
+'emailauthenticated' => 'E-məktub ünvanınız $1 tarixində təsdiq edilib.',
+'emailnotauthenticated' => 'Your e-mail address is not yet authenticated. No e-mail will be sent for any of the following features.',
+'emailconfirmlink' => 'E-məktubunu təsdiq et',
+'invalidemailaddress' => 'E-məktub ünvanını qeyri düzgün formatda olduğu üçün qəbul edə bilmirik. Xahiş edirik düzgün formatlı ünvan daxil edin və ya bu sahəni boş qoyun.',
+
+# Edit page toolbar
+
+'bold_sample' => 'Qalın mətn',
+'bold_tip' => 'Qalın mətn',
+'italic_sample' => 'Kursiv mətn',
+'italic_tip' => 'Kursiv mətn',
+'link_sample' => 'Bağlantı başlığı',
+'link_tip' => 'Daxili bağlantı',
+'extlink_sample' => 'http://www.misal.com başlıq',
+'extlink_tip' => 'Xarici səhifə (http:// ekini unutma)',
+'headline_sample' => 'Başlıq metni',
+'headline_tip' => '2. səviyyə başlıq',
+'image_sample' => 'Misal.jpg',
+'media_sample' => 'Misal.ogg',
+'hr_tip' => 'Horizontal cizgi',
+
+# Edit pages
+#
+'summary' => 'Qısa məzmun',
+'subject' => 'Mövzu/başlıq',
+'minoredit' => 'Kiçik redaktə',
+'watchthis' => 'Bu səhifəni izlə',
+'savearticle' => 'Səhifəni qeyd et',
+'preview' => 'Sınaq göstərişi',
+'showpreview' => 'Sınaq göstərişi',
+'showdiff' => 'Dəyişiklikləri göstər',
+'blockedtitle' => 'İstifadəçi bloklanıb',
+'whitelistacctitle' => 'You are not allowed to create an account',
+'whitelistedittitle' => 'Redaktə üçün daxil olmalısınız',
+'whitelistreadtitle' => 'Oxumaq üçün daxil olmalısınız',
+'accmailtext' => '"$1" üçün parol göndərildi bu ünvana : $2.',
+'accmailtitle' => 'Parol göndərildi.',
+'newarticle' => '(Yeni)',
+'newarticletext' => 'Mövcud olmayan səhifəyə olan keçidi izlədiniz. Aşağıdakı sahəyə məzmununu yazaraq bu səhifəni \'\'\'siz\'\'\' yarada bilərsiniz. (əlavə məlumat üçün [[Project:Help|kömək səhifəsinə]] baxın). Əgər bu səhifəyə səhvən gəlmisinizsə sadəcə olaraq brauzerin \'\'\'geri\'\'\' düyməsinə vurun.',
+'noarticletext' => 'Hal-hazırda bu səhifə boşdur. Başqa səhifələrdə [[{{ns:special}}:Search/{{PAGENAME}}|bu səhifənin adını axtara]] bilər və ya \'\'\'[{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} səhifəni siz redaktə edəbilərsiniz]\'\'\'.',
+'previewnote' => '<strong>Bu yalnız sınaq göstərişidir; dəyişikliklər hal-hazırda qeyd edilmemişdir!</strong>',
+'editing' => 'Redaktə $1',
+'editinguser' => 'Redaktə $1',
+'yourtext' => 'Metniniz ',
+'yourdiff' => 'Fərqlər ',
+'templatesused' => 'Bu səhifədə istifadə edilmiş şablonlar:',
+
+
+# History pages
+#
+'revhistory' => 'Versiya tarixçəsi',
+'currentrev' => 'Hal-hazırkı versiya',
+'revisionasof' => '$1 versiyası',
+'previousrevision' => '←Əvvəlki versiya',
+'nextrevision' => 'Sonrakı versiya→',
+'currentrevisionlink' => 'Hal-hazırkı versiyanı göstər',
+'cur' => 'hh',
+'next' => 'sonrakı',
+'last' => 'son',
+'orig' => 'orig',
+'histfirst' => 'Ən əvvəlki',
+'histlast' => 'Ən sonuncu',
+'histlegend' => 'Fərqləri seçmə və göstərmə: müqaisə etmək istədiyiniz versiyaların yanındakı radio qutularına işarə qoyun və daxil etmə düyməsinə(enter-a) və ya "müqaisə et" düyməsinə vurun.<br />
+Açıqlama: (hh) = hal-hazırkı versiya ilə olan fərqlər,
+(son) = əvvəlki versiya ilə olan fərqlər, K = kiçik redaktə.',
+
+# Diffs
+#
+'difference' => '(Versiyalar arasındakı fərq)',
+'lineno' => 'Sətir $1:',
+'editcurrent' => 'Bu səhifənin hal-hazırkı versiyanı redaktə et',
+'compareselectedversions' => 'Seçilən versiyaları müqaisə et',
+
+# Search results
+#
+'prevn' => 'əvvəlki $1',
+'nextn' => 'sonrakı $1',
+'viewprevnext' => 'Göstər ($1) ($2) ($3).',
+'powersearch' => 'Axtar',
+'blanknamespace' => '(Ana)',
+
+# Preferences page
+#
+'preferences' => 'Nizamlamalar',
+'changepassword' => 'Parol dəyiş',
+'math' => 'Riyaziyyat',
+'dateformat' => 'Tarix formatı',
+'datedefault' => 'Tərcih yox',
+'datetime' => 'Tarix və vaxt',
+'prefs-misc' => 'Digər tərcihlər',
+'prefs-personal' => 'İstifadəçi profili',
+'prefs-rc' => 'Son dəyişikliklər',
+'saveprefs' => 'Qeyd et',
+'resetprefs' => 'Reset',
+'oldpassword' => 'Köhne parol:',
+'newpassword' => 'Yeni parol:',
+'retypenew' => 'Yeni parolu təkrar yazın:',
+'textboxsize' => 'Redaktə',
+'searchresultshead' => 'Axtar',
+'recentchangescount' => 'Son dəyişikliklərdə başlıq sayı:',
+'savedprefs' => 'Tərcihlər qeyd edildi.',
+'timezonelegend' => 'Saat qurşağı',
+'timezonetext' => 'Server ilə vaxt fərqı. (Azərbaycan üçün +04:00)',
+'localtime' => 'Məhəlli vaxt',
+'timezoneoffset' => 'Vaxt fərqı¹',
+'servertime' => 'Server vaxtı',
+'allowemail' => 'Digər istifadəçilər mənə e-məktub göndərəbilir',
+'defaultns' => 'Search in these namespaces by default:',
+'default' => 'default',
+'files' => 'Fayllar',
+
+# User levels special page
+#
+
+# switching pan
+'userrights-lookup-user' => 'İstifadəçi qruplarını idarə et',
+'userrights-user-editname' => 'İstifadəçi adınızı yazın:',
+
+
+# Recent changes
+#
+'changes' => 'dəyişiklik',
+'recentchanges' => 'Son dəyişikliklər',
+'recentchangestext' => '\'\'\'Ən son dəyişiklikləri bu səhifədən izləyin.\'\'\'',
+'rcnote' => 'Aşağıdakı son <strong>$1</strong> dəyişiklik son <strong>$2</strong> gün ərzində edilmişdir.',
+'rcnotefrom' => 'Below are the changes since <b>$2</b> (up to <b>$1</b> shown).',
+'rclistfrom' => '$1 vaxtından başlayaraq yeni dəyişiklikləri göstər',
+'rclinks' => 'Son $2 gün ərzindəki son $1 dəyişikliyi göstər <br />$3',
+'diff' => 'fərq',
+'hist' => 'tarixçə',
+'hide' => 'gizlət',
+'show' => 'göstər',
+'minoreditletter' => 'k',
+'newpageletter' => 'Y',
+
+# Upload
+#
+'upload' => 'Qarşıya yüklə',
+'uploadbtn' => 'Sənəd yüklə',
+'reupload' => 'Təkrar yüklə',
+'reuploaddesc' => 'Return to the upload form.',
+'uploaderror' => 'Yükləyiş xətası',
+'uploadlog' => 'yükleme kaydı',
+'filename' => 'Fayl adı',
+'fileuploadsummary' => 'İzahat:',
+'filestatus' => 'Müəllif statusu',
+'filesource' => 'Mənbə',
+'copyrightpage' => 'Project:Müəllif',
+'copyrightpagename' => '{{SITENAME}} müəllif',
+'uploadwarning' => 'Yükləyiş xəbərdarlıqı',
+'savefile' => 'Faylı qeyd et',
+
+# Image list
+#
+'imagelist' => 'Fayl siyahısı',
+'showlast' => 'Show last $1 files sorted $2.',
+'bydate' => 'tarixe görə',
+'byname' => 'ada görə',
+'bysize' => 'ölçüye görə',
+'imgdesc' => 'desc',
+'imglegend' => 'Legend: (desc) = show/edit file description.',
+'imghistory' => 'Faylın tarixçəsi',
+'deleteimg' => 'sil',
+'noimage-linktext' => 'faylı yüklə',
+
+# Mime search
+#
+'mimesearch' => 'MIME axtar',
+'mimetype' => 'MIME type:',
+
+# Unwatchedpages
+#
+'unwatchedpages' => 'İzlənməyən səhifələr',
+
+# Statistics
+#
+'statistics' => 'Statistika',
+'sitestats' => '{{SITENAME}} statistika',
+'sitestatstext' => '<p style="font-size:125%;margin-bottom:0">Wikipedia-da hal-hazırda məqalələrin sayı: \'\'\'$2\'\'\'</p>
+
+Verilənlər bazasında yekun \'\'\'$1\'\'\' səhifə var. Buna müzakirələr, istifadəçi səhifələri, köməklər, wikipedia lahiye səhifələri, xüsusi səhifələr, istiqamətləndirmə səhifələri, boş səhifələr ilə fayllar v əşablonlar daxildir.
+
+There have been a total of \'\'\'$3\'\'\' page views, and \'\'\'$4\'\'\' page edits
+since the wiki was setup.
+That comes to \'\'\'$5\'\'\' average edits per page, and \'\'\'$6\'\'\' views per edit.
+
+Hal-hazırda [http://meta.wikimedia.org/wiki/Help:Job_queue job queue] sayı: \'\'\'$7\'\'\'.',
+'userstats' => 'İstifadəçi statistika',
+'userstatstext' => 'Hal-hazırda \'\'\'$1\'\'\' istifadəçi, \'\'\'2\'\'\' (və ya \'\'\'4%\'\'\') tanesi idarəçi. (baxınız $3).',
+
+
+'doubleredirects' => 'İkiqat istiqamətləndirmələr',
+'brokenredirects' => 'Xətalı istiqamətləndirmə',
+'brokenredirectstext' => 'The following redirects link to non-existent pages:',
+
+# Miscellaneous special pages
+#
+'lonelypages' => 'Yetim səhifələr',
+'uncategorizedcategories' => 'Kateqoriyasız kateqoriyalar',
+'uncategorizedpages' => 'Kateqoriyasız səhifələr',
+'unusedcategories' => 'İstifadə edilməmiş kateqoriyalar',
+'unusedimages' => 'İstifadə edilməmiş fayllar',
+'wantedcategories' => 'Təlabat olunan kateqoriyalar',
+'wantedpages' => 'Təlabat olunan səhifələr',
+'mostcategories' => 'Kateqoriyası ən çox olan məqalələr',
+'mostrevisions' => 'Ən çox nəzərdən keçirilmiş (versiyalı) məqalələr',
+'nlinks' => '$1 bağlantı',
+'allpages' => 'Bütün səhifələr',
+'randompage' => 'İxtiyari səhifə',
+'shortpages' => 'Qısa səhifələr',
+'longpages' => 'Uzun səhifələr',
+'listusers' => 'İstifadəçi siyahı',
+'specialpages' => 'Xüsusi səhifələr',
+'spheading' => 'İstifadəçilər üçün xüsusi səhifələr',
+'restrictedpheading' => 'İdarəçilər üçün xüsusi səhifələr',
+'recentchangeslinked' => 'Əlaqəli redaktələr',
+'newpages' => 'Yeni səhifələr',
+'ancientpages' => 'Ən köhnə səhifələr',
+'move' => 'Adını dəyişdir',
+'movethispage' => 'Bu səhifənin adını dəyiş',
+'booksources' => 'Kitab mənbələri',
+'categoriespagetext' => 'Wikide aşağıdaki kateqoriyalar var.',
+'version' => 'Versiya',
+'log' => 'Loglar',
+'alllogstext' => 'Qarşıya yükləmə, silmə, qoruma, bloklama ve sistem operatoru loqlarının birləşdirilmiş göstərməsi. Log növü, istifadəçi adı veya tə\'sir edilən səhifəni seçib görüntünü kiçildə bilərsiniz.',
+
+# Special:Allpages
+'nextpage' => 'Sonrakı səhifə ($1)',
+'allpagesfrom' => 'Bu mövqedən başlayan səhifeleri göstər:',
+'allarticles' => 'Bütün məqalələr',
+'allinnamespace' => 'Bütün səhifələr ($1 səhifələri)',
+'allpagesnext' => 'Sonrakı',
+'allpagesprev' => 'Əvvəlki',
+'allpagessubmit' => 'Gətir',
+
+# E this user
+#
+'emailuser' => 'İstifadəçiyə e-məktub yolla',
+'emailpage' => 'İstifadəçiyə e-məktub yolla',
+'defemailsubject' => '{{SITENAME}} e-məktub',
+'noemailtitle' => 'E-məktub ünvanı yox',
+'emailfrom' => 'Kimdən',
+'emailsubject' => 'Mövzu',
+'emailmessage' => 'Mesaj',
+'emailsend' => 'Göndər',
+'emailsent' => 'E-məktub göndərildi',
+
+# Watchlist
+#
+'watchlist' => 'İzlədiyim səhifələr',
+'watchnologin' => 'Daxil olmamısınız',
+'addedwatch' => 'İzləmə siyahısına əlavə edildi.',
+'addedwatchtext' => '"$1" səhifəsi [[Special:Watchlist|izlədiyiniz səhifələrə]] əlavə edildi. Bu səhifədə və əlaqəli müzakirə səhifəsində olacaq dəyişikliklər orada göstəriləcək və səhifə asanlıqla seçiləbilmək üçün [[Special:Recentchanges|son dəyişikliklər]]-də qalın şriftlərlə görsənəcəkdir. <p> Səhifəni izləmə sıyahınızdan çıxarmaq üçün yan lovhədəki "izləmə" düyməsinə vurun.',
+'removedwatch' => 'İzləmə siyahısından çıxardılıb',
+'removedwatchtext' => '"$1" səhifəsi izləmə siyahınızdan çıxardıldı.',
+'watch' => 'İzlə',
+'watchthispage' => 'Bu səhifəni izlə',
+'unwatch' => 'İzləmə',
+'unwatchthispage' => 'İzləmə',
+'watchnochange' => 'Verilən vaxt ərzində heç bir izlədiyiniz səhifə redaktə edilməmişdir.',
+'watchdetails' => '* müzakirə səhifələri çıxmaq şərtilə $1 səhifəni izləyirsiniz
+* [[Special:Watchlist/edit|İzlədiyiniz səhifələrin tam siyahısının göstərilməsi və redaktəsi]]',
+'wlheader-showupdated' => '* Son ziyarətinizdən sonra edilən dəyişikliklər \'\'\'qalın şriftlərlə\'\'\' göstərilmişdir.',
+'watchmethod-recent' => 'yeni dəyişikliklər izlənilən səhifələr üçün yoxlanılır',
+'watchmethod-list' => 'izlənilən səhifələr yeni dəyişikliklər üçün yoxlanılır',
+'removechecked' => 'İşarələnənləri izləmə siyahısından çıxart',
+'watchlistcontains' => 'İzləmə siyahınızda $1 səhifə var.',
+'watcheditlist' => 'Bunlar izlədiyiniz səhifələrin əlifba sırasına görə siyahısıdır. Siyahıdan çıxartmaq istədiyiniz səhifələrin yanındakı qutuları işarələləyin və ekranın altındakı \'işarələnənləri sıyahıdan çıxart düyməsinə\' vurun(məzmun səhifəsini çıxartdıqda əlaqəli müzakirə səhifəsi də (və tərsinə) çıxardılacaqdır).',
+'removingchecked' => 'İstədikləriniz izləmə siyahısından çıxardılır...',
+'wlnote' => 'Aşağıdakılar son <b>$2</b> saatdakı son $1 dəyişiklikdir.',
+'wlshowlast' => 'Bunları göstər: son $1 saatı $2 günü $3',
+'wlsaved' => 'Bu izləmə siyahınızın qeyd edilmiş halıdır.',
+'wlhideshowown' => 'Mənim redaktələrimi $1.',
+'wlhideshowbots' => 'Bot redaktələrini $1.',
+
+# Delete/protect/revert
+#
+'deletepage' => 'Səhifəni sil',
+'confirm' => 'Təsdiq et',
+'exblank' => 'səhifə boş',
+'confirmdelete' => 'Silmeyi təsdiq et',
+'actioncomplete' => 'Fəaliyyət tamamlandı',
+'deletedtext' => '"$1" has been deleted. See $2 for a record of recent deletions.',
+'deletedarticle' => 'silindi "[[$1]]"',
+'rollback' => 'Əvvəlki versiya',
+'rollbacklink' => 'əvvəlki halına qaytar',
+
+'confirmprotect' => 'Qorumayı təsdiq et',
+
+# Undelete
+'undelete' => 'Silinmiş səhifələri göstər',
+'viewdeletedpage' => 'Silinmiş səhifələri göstər',
+
+
+# Namespace form on various pages
+'namespace' => 'Adlar fəzası:',
+'invert' => 'Seçilən xaricindəkiləri',
+
+# Contributions
+#
+'contributions' => 'İstifadəçi köməkləri',
+'mycontris' => 'Köməklərim',
+'contribsub' => 'For $1',
+'uctop' => '(son)',
+
+# What links here
+#
+'whatlinkshere' => 'Bu səhifəyə bağlantılar',
+'linklistsub' => '(Bağlantılar siyahı)',
+
+# Block/unblock IP
+#
+'blockip' => 'İstifadəçiyi blokla',
+'ipbreason' => 'Səbəb',
+'ipbsubmit' => 'Bu istifadəçiyi əngəllə',
+'badipaddress' => 'Yanlış IP',
+'blockipsuccesssub' => 'bloklandi ',
+'blockipsuccesstext' => '[[{{ns:Special}}:Contributions/$1| $1]]bloklanıb. <br />See[[{{ns:Special}}:Ipblocklist|IP blok siyahisi]] bloklanmış IP lər.',
+'ipblocklist' => 'Əngəllənmiş istifadəçilər siyahı',
+'blocklink' => 'blokla',
+'contribslink' => 'Köməklər',
+'blocklogpage' => 'Blok qeydı',
+
+# Developer tools
+#
+
+# Make sysop
+'already_sysop' => 'Bu istifadəçi hazirdə idarəçidir',
+'already_bureaucrat' => 'Bu istifadəçi hazirdə bürokratdı',
+
+# Move page
+#
+'movepage' => 'Səhifənin adını dəyiş',
+'movearticle' => 'Səhifənin adını dəyişdir',
+'newtitle' => 'Yeni başlıq',
+'movepagebtn' => 'Səhifənin adını dəyiş',
+'movetalk' => 'Bu səhifənin müzakirə səhifəsinin de adını dəyişdir.',
+'1movedto2' => '[[$1]] adı dəyişildi. Yeni adı: [[$2]]',
+'1movedto2_redir' => '[[$1]] adı və məsiri dəyişildi : [[$2]]',
+'movereason' => 'Səbəb',
+'revertmove' => 'Əvvəlki vəziyyətinə',
+'delete_and_move' => 'Sil və apar',
+
+# Export
+'export' => 'Səhifələri ixrac et',
+
+# Namespace 8 related
+'allmessages' => 'Sistem mə\'lumatları',
+'allmessagesname' => 'Ad',
+'allmessagesdefault' => 'İlkin mətn',
+'allmessagescurrent' => 'İndiki mətn',
+'allmessagestext' => 'Sistem mə\'lumatların siyahısı MediaWiki: namespace.',
+
+
+# Metadata
+
+# Attribution
+'and' => 'və',
+
+# Spam protection
+'subcategorycount' => 'Bu kategoriyada $1 alt kategoriya var.',
+'categoryarticlecount' => 'Bu kategoriyada $1 məqalə var.',
+'listingcontinuesabbrev' => '(davam)',
+
+# Monobook.js: tooltips and access keys for monobook
+'Monobook.js' => '/*
+<pre>
+*/
+
+/* qisa yol tuşlari və kömək balunları */
+var ta = new Object();
+ta[\'pt-userpage\'] = new Array(\'.\',\'Öz Səhifəm\');
+ta[\'pt-anonuserpage\'] = new Array(\'.\',\'The user page for the ip you\'re editing as\');
+ta[\'pt-mytalk\'] = new Array(\'n\',\'Danişiq Səhifəm\');
+ta[\'pt-anontalk\'] = new Array(\'n\',\'Bu IP ünvanindan redaktə olunmuş danışıqlar\');
+ta[\'pt-preferences\'] = new Array(\'\',\'Mənim Tərcihlərim\');
+ta[\'pt-watchlist\'] = new Array(\'l\',\'İzləməyə aldığım məqalələr.\');
+ta[\'pt-mycontris\'] = new Array(\'y\',\'Mən redakə etdiğim məqalələr siyahəsi\');
+ta[\'pt-login\'] = new Array(\'o\',\'Hesab açmaniz tövsiə olur, ama icbar yoxdu .\');
+ta[\'pt-anonlogin\'] = new Array(\'o\',\'Hesab açib girişiniz tövsiyə olur, ama məndatlı dəyil.\');
+ta[\'pt-logout\'] = new Array(\'o\',\'Çixiş\');
+ta[\'ca-talk\'] = new Array(\'t\',\'Məqalə həqqində müzakirə edib, nəzərivi bildir\');
+ta[\'ca-edit\'] = new Array(\'e\',\'Bu səhifani redaktə edə bilərsiz. Lütfən avvəl sinaq gostəriş edin.\');
+ta[\'ca-addsection\'] = new Array(\'+\',\'Bu müzakirə səhifəsində iştirak edin.\');
+ta[\'ca-viewsource\'] = new Array(\'e\',\'Bu səhifə qorun altindadir. Mənbəsinə baxabilərsiz.\');
+ta[\'ca-history\'] = new Array(\'h\',\'Bu səhifənin geçmiş nüsxələri.\');
+ta[\'ca-protect\'] = new Array(\'=\',\'Bu səhifəni qoru\');
+ta[\'ca-delete\'] = new Array(\'d\',\'Bu səhifəni sil\');
+ta[\'ca-undelete\'] = new Array(\'d\',\'Bu səhifəni silinmədən oncəki halına qaytarın\');
+ta[\'ca-move\'] = new Array(\'m\',\'Bu məqalənin adını dəyışin\');
+ta[\'ca-watch\'] = new Array(\'w\',\'Bu səhifəni izlə\');
+ta[\'ca-unwatch\'] = new Array(\'w\',\'Bu səhifənin izlənmasini bitir\');
+ta[\'search\'] = new Array(\'f\',\'Bu vikini axtarin\');
+ta[\'p-logo\'] = new Array(\'\',\'Ana Səhifə\');
+ta[\'n-mainpage\'] = new Array(\'z\',\'Ana səhifəni görüş edin\');
+ta[\'n-portal\'] = new Array(\'\',\'Projə həqqində, nələr edəbilərsiz, harda şeyləri tapa bilərsiz\');
+ta[\'n-currentevents\'] = new Array(\'\',\'Gündəki xəbərlər ilə əlaqəli bilgilər\');
+ta[\'n-recentchanges\'] = new Array(\'r\',\'Bu Wikidə Son dəyişikliklər siyahəsi.\');
+ta[\'n-randompage\'] = new Array(\'x\',\'Bir təsadufi, necə gəldi, məqaləyə baxin\');
+ta[\'n-help\'] = new Array(\'\',\'Yardım almaq üçün.\');
+ta[\'n-sitesupport\'] = new Array(\'\',\'Maddi kömək\');
+ta[\'t-whatlinkshere\'] = new Array(\'j\',\'Wikidə bu məqaləyə bağlantilar\');
+ta[\'t-recentchangeslinked\'] = new Array(\'k\',\'Bu məqaləyə ayid başqa səhifələrdə yeni dəyişikliklər \');
+ta[\'feed-rss\'] = new Array(\'\',\'RSS feed for this page\');
+ta[\'feed-atom\'] = new Array(\'\',\'Atom feed for this page\');
+ta[\'t-contributions\'] = new Array(\'\',\'Bu üzvin redaktə etmiş məqalələr siyahəsi\');
+ta[\'t-emailuser\'] = new Array(\'\',\'Bu istifadəçiyə bir e-məktub yolla\');
+ta[\'t-upload\'] = new Array(\'u\',\'Yeni FILE lar Wikiyə yüklə.\');
+ta[\'t-specialpages\'] = new Array(\'q\',\'Xüsusi səhifələrin siyahəsi\');
+ta[\'ca-nstab-main\'] = new Array(\'c\',\'View the content page\');
+ta[\'ca-nstab-user\'] = new Array(\'c\',\'View the user page\');
+ta[\'ca-nstab-media\'] = new Array(\'c\',\'View the media page\');
+ta[\'ca-nstab-special\'] = new Array(\'\',\'This is a special page, you can\'t edit the page itself.\');
+ta[\'ca-nstab-project\'] = new Array(\'a\',\'View the project page\');
+ta[\'ca-nstab-image\'] = new Array(\'c\',\'View the image page\');
+ta[\'ca-nstab-mediawiki\'] = new Array(\'c\',\'View the system message\');
+ta[\'ca-nstab-template\'] = new Array(\'c\',\'View the template\');
+ta[\'ca-nstab-help\'] = new Array(\'c\',\'Kömək səhifəsi \');
+ta[\'ca-nstab-category\'] = new Array(\'c\',\'View the category page\');
+
+/*
+</pre>
+*/',
+# image deletion
+
+# browsing diffs
+'previousdiff' => '← Əvvəlki fərq',
+'nextdiff' => 'Sonrakı fərq →',
+
+'imagemaxsize' => 'Limit images on image description pages to:',
+'thumbsize' => 'Kiçik ölçü:',
+
+'newimages' => 'Yeni faylların siyahısı',
+
+
+# 'all' in various places, this might be different for inflected languages
+'imagelistall' => 'bütün',
+'watchlistall1' => 'hamısını',
+'watchlistall2' => 'hamısını',
+'namespacesall' => 'bütün',
+
+# E-mail address confirmation
+'confirmemail' => 'E-məktubunu təsdiq et',
+'confirmemail_send' => 'Təsdiq kodu göndər',
+'confirmemail_sent' => 'Təsdiq e-məktubu göndərildi.',
+'confirmemail_success' => 'E-məktub ünvanınız indi təsdiq edildi.',
+'confirmemail_loggedin' => 'E-məktubunuz indi təsdiq edildi.',
+'confirmemail_subject' => '{{SITENAME}} e-məktub təsdiq etme',
+
+# Inputbox extension, may be useful in other contexts as well
+'createarticle' => 'Məqalə yarat',
+
+);
+?>
diff --git a/languages/messages/MessagesBa.php b/languages/messages/MessagesBa.php
new file mode 100644
index 00000000..4cc91fc4
--- /dev/null
+++ b/languages/messages/MessagesBa.php
@@ -0,0 +1,201 @@
+<?php
+/** Bashkir (Башҡорт)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'ru';
+
+
+$namespaceNames = array(
+ NS_MEDIA => 'Медиа',
+ NS_SPECIAL => 'Ярҙамсы',
+ NS_MAIN => '',
+ NS_TALK => 'Фекер_алышыу',
+ NS_USER => 'Ҡатнашыусы',
+ NS_USER_TALK => 'Ҡатнашыусы_м-н_фекер_алышыу',
+ #NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_б-са_фекер_алышыу',
+ NS_IMAGE => 'Рәсем',
+ NS_IMAGE_TALK => 'Рәсем_б-са_фекер_алышыу',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_б-са_фекер_алышыу',
+ NS_TEMPLATE => 'Ҡалып',
+ NS_TEMPLATE_TALK => 'Ҡалып_б-са_фекер_алышыу',
+ NS_HELP => 'Белешмә',
+ NS_HELP_TALK => 'Белешмә_б-са_фекер_алышыу',
+ NS_CATEGORY => 'Категория',
+ NS_CATEGORY_TALK => 'Категория_б-са_фекер_алышыу',
+);
+
+$linkTrail = '/^((?:[a-z]|а|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я|ә|ө|ү|ғ|ҡ|ң|ҙ|ҫ|һ|“|»)+)(.*)$/sDu';
+
+$messages = array(
+
+# User preference toggles
+'about' => 'Тасуирлау',
+'aboutpage' => '{{ns:project}}:Тасуирлама',
+'aboutsite' => '{{grammar:genitive|{{SITENAME}}}}-ның тасуирламаһы',
+'actioncomplete' => 'Ғәмәл үтәлде',
+'addedwatch' => 'Күҙәтеү исемлегенә өҫтәлде',
+'allarticles' => 'Бөтә мәҡәләләр',
+'allinnamespace' => 'Бөтә биттәр (Исемдәре «$1» арауығында)',
+'allmessagesname' => 'Хәбәр',
+'allnotinnamespace' => 'Бөтә биттәр («$1» исемдәр арауығынан башҡа)',
+'allpages' => 'Бөтә биттәр',
+'allpagesfrom' => 'Ошондай хәрефтәрҙән башланған биттәрҙе күрһәтергә:',
+'allpagesnext' => 'Киләһе',
+'allpagesprev' => 'Алдағы',
+'allpagessubmit' => 'Үтәргә',
+'alphaindexline' => '$1 алып $2 тиклем',
+'ancientpages' => 'Иң иҫке мәҡәләләр',
+'and' => 'һәм',
+'article' => 'Мәҡәлә',
+'articlepage' => 'Мәҡәләне ҡарап сығырға',
+'badarticleerror' => 'Был биттә ундай ғәмәл үтәргә ярамай',
+'badquery' => 'Һорау дөрөҫ төҙөлмәгән',
+'badquerytext' => 'Һорауығыҙҙы үтәп булмай. Моғайын, Һеҙ өс хәрефтән ҡыҫҡараҡ һүҙ эҙләйһегеҙҙер, йәки һүҙегеҙҙә хата барҙыр. Һорауығыҙҙы яңынан төҙөп ҡарағыҙ әле.',
+'badtitle' => 'Ярамаған исем',
+'blanknamespace' => 'Мәҡәләләр',
+'blockip' => 'Ҡатнашыусыны ябыу',
+'cancel' => 'Бөтөрөргә',
+'changed' => 'үҙгәртелгән',
+'changes' => 'үҙгәрештәр',
+'contributions' => 'Ҡатнашыусы өлөшө',
+'copyright' => '<p> $1 ярашлы эстәлеге менән һәр кем файҙалана ала.',
+'createaccount' => 'Яңы ҡатнашыусыны теркәү',
+'createaccountmail' => 'эл. почта буйынса',
+'currentevents' => 'Ағымдағы ваҡиғалар',
+'currentevents-url' => 'Ағымдағы ваҡиғалар',
+'delete' => 'Юҡ итергә',
+'disclaimerpage' => 'Project:Яуаплылыҡтан баш тартыу',
+'disclaimers' => 'Яуаплылыҡтан баш тартыу',
+'edit' => 'Үҙгәртергә',
+'edithelp' => 'Мөхәрирләү белешмәһе',
+'editing' => 'Мөхәрирләү $1',
+'editinguser' => 'Мөхәрирләү $1',
+'editingcomment' => 'Мөхәрирләү $1 (комментарий)',
+'editingsection' => 'Мөхәрирләү $1 (секция)',
+'edittools' => '<charinsert>[[|]] {{}} Ә ә Ө ө Ү ү Ғ ғ Ҡ ҡ Ң ң Ҙ ҙ Ҫ ҫ Һ һ «» | </charinsert>',
+'editsection' => 'үҙгәртергә',
+'editthispage' => 'Был мәҡәләне үҙгәртергә',
+'emailfrom' => 'Кемдән',
+'emailmessage' => 'Хәбәр',
+'emailto' => 'Кемгә',
+'emailuser' => 'Ҡатнашыусыға хат',
+'enotif_newpagetext' => 'Был яңы бит.',
+'error' => 'Хата',
+'errorpagetitle' => 'Хата',
+'go' => 'Күсеү',
+'searcharticle' => 'Күсеү',
+'gotaccount' => 'Әгәр Һеҙ теркәлеү үткән булһағыҙ? $1.',
+'gotaccountlink' => 'Үҙегеҙ менән таныштырығыҙ',
+'group-all' => '(бөтә)',
+'help' => 'Белешмә',
+'hidetoc' => 'йәшерергә',
+'history' => 'Тарих',
+'history_short' => 'Тарих',
+'imagelist_user' => 'Ҡатнашыусы',
+'imagelistall' => 'бөтә',
+'info_short' => 'Мәғлүмәт',
+'jumpto' => 'Унда күсергә:',
+'jumptosearch' => 'эҙләү',
+'lastmodifiedat' => 'Был биттең һуңғы тапҡыр үҙгәртелеү ваҡыты: $2, $1 .',
+'listusers' => 'Ҡатнашыусылар исемлеге',
+'login' => 'Танышыу йәки теркәлеү',
+'loginpagetitle' => 'Танышыу йәки теркәлеү',
+'loginsuccess' => 'Хәҙер һеҙ $1 исеме менән эшләйһегеҙ.',
+'loginsuccesstitle' => 'Танышыу уңышлы үтте',
+'logout' => 'Тамамлау',
+'mailmypassword' => 'Яңы пароль ебәрергә',
+'mainpage' => 'Баш бит',
+'makesysopname' => 'Ҡатнашыусы исеме:',
+'mimesearch' => 'MIME буйынса эҙләү',
+'minoredit' => 'Әҙ генә үҙгәрештәр',
+'move' => 'Яңы исем биреү',
+'mycontris' => 'ҡылған эштәр',
+'mypage' => 'Шәхси бит',
+'mytalk' => 'Минең менән фекер алышыу',
+'namespace' => 'Исемдәр арауығы:',
+'namespacesall' => 'бөтә',
+'navigation' => 'Төп йүнәлештәр',
+'newpages-username' => 'Ҡатнашыусы:',
+'newwindow' => '(яңы биттә)',
+'nologin' => 'Һеҙ әле теркәлмәгәнме? $1.',
+'nologinlink' => 'Иҫәп яҙыуын булдырырға',
+'notanarticle' => 'Мәҡәлә түгел',
+'nstab-main' => 'Мәҡәлә',
+'nstab-mediawiki' => 'MediaWiki белдереүе',
+'nstab-special' => 'Ярҙамсы бит',
+'nstab-user' => 'Ҡатнашыусы',
+'otherlanguages' => 'Башҡа телдәрҙә',
+'permalink' => 'Даими һылтау',
+'portal' => 'Берләшмә',
+'portal-url' => '{{ns:project}}:Берләшмә ҡоро',
+'preferences' => 'Көйләүҙәр',
+'prefs-help-email' => '* Электрон почта (күрһәтмәһәң дә була) башҡа ҡатнашыусылар менән туры бәйләнешкә инергә мөмкинселек бирә.',
+'preview' => 'Ҡарап сығыу',
+'previewnote' => 'Ҡарап сығыу өлгөһө, әлегә үҙгәрештәр яҙҙырылмаған!',
+'printableversion' => 'Ҡағыҙға баҫыу өлгөһө',
+'privacy' => 'Сер һаҡлау сәйәсәте',
+'protect' => 'Һаҡларға',
+'qbfind' => 'Эҙләү',
+'qbmyoptions' => 'Көйләү',
+'qbspecialpages' => 'Махсус биттәр',
+'randompage' => 'Осраҡлы мәҡәлә',
+'recentchanges' => 'Һуңғы үҙгәртеүҙәр',
+'recentchangesall' => 'бөтә',
+'recentchangeslinked' => 'Бәйле үҙгәртеүҙәр',
+'recentchangestext' => '{{grammar:genitive|{{SITENAME}}}}. биттәрендә индерелгән һуңғы үҙгәртеүҙәр исемлеге',
+'remembermypassword' => 'Парольде хәтерҙә ҡалдырырға',
+'returnto' => '$1 битенә ҡайтыу.',
+'savearticle' => 'Яҙҙырып ҡуйырға',
+'search' => 'Эҙләү',
+'searchbutton' => 'Табыу',
+'showdiff' => 'Индерелгән үҙгәрештәр',
+'showpreview' => 'Ҡарап сығырға',
+'showtoc' => 'күрһәтергә',
+'sitesupport' => 'Ярҙам итеү',
+'sitesupport-url' => '{{ns:project}}:Эскерһеҙ ярҙам',
+'siteuser' => '{{grammar:genitive|{{SITENAME}}}} - ла ҡатнашыусы $1',
+'siteusers' => '{{grammar:genitive|{{SITENAME}}}} - ла ҡатнашыусы (-лар) $1',
+'specialloguserlabel' => 'Ҡатнашыусы:',
+'specialpage' => 'Ярҙамсы бит',
+'specialpages' => 'Махсус биттәр',
+'spheading' => 'Ярҙамсы биттәр',
+'summary' => 'Үҙгәртеүҙең ҡыҫҡаса тасуирламаһы',
+'talk' => 'Фекер алышыу',
+'talkpage' => 'Фекер алышыу',
+'toc' => 'Эстәлеге',
+'toolbox' => 'Ярҙамсы йүнәлештәр',
+'unwatch' => 'Күҙәтмәҫкә',
+'unwatchedpages' => 'Бер кем дә күҙәтмәгән биттәр',
+'userlogin' => 'Танышыу йәки теркәлеү',
+'userlogout' => 'Тамамлау',
+'userstatstext' => 'Бөтәһе \'\'\'$1\'\'\' ҡатнашыусы теркәлгән, шуларҙан \'\'\'$2\'\'\' ($4 %) хәким бурыстарын үтәй ([[{{ns:project}}:Хәкимдәр|Хәкимдәр]]).',
+'watch' => 'Күҙәтергә',
+'watchlist' => 'Күҙәтеү исемлеге',
+'watchlistall1' => 'бөтә',
+'watchlistall2' => 'бөтә',
+'watchnologin' => 'Үҙегеҙҙе танытырға кәрәк',
+'watchthis' => 'Был битте күҙәтеүҙәр исемлегенә индерергә',
+'whatlinkshere' => 'Бында һылтанмалар',
+'wrongpassword' => 'Һеҙ ҡулланған пароль ҡабул ителмәй. Яңынан яҙып ҡарағыҙ.',
+'yourdiff' => 'Айырмалыҡтар',
+'yourdomainname' => 'Һеҙҙең домен',
+'youremail' => 'Электрон почта *',
+'yourlanguage' => 'Тышҡы күренештә ҡулланылған тел:',
+'yourname' => 'Ҡатнашыусы исеме',
+'yournick' => 'Һеҙҙең уйҙырма исемегеҙ/ҡушаматығыҙ (имза өсөн):',
+'yourpassword' => 'Һеҙҙең пароль',
+'yourpasswordagain' => 'Парольде ҡабаттан яҙыу',
+'yourrealname' => 'Һеҙҙең ысын исемегеҙ (*)',
+'yourtext' => 'Һеҙҙең текст',
+'yourvariant' => 'Тел төрө',
+
+);
+
+
+
+?>
diff --git a/languages/messages/MessagesBar.php b/languages/messages/MessagesBar.php
new file mode 100644
index 00000000..786e3164
--- /dev/null
+++ b/languages/messages/MessagesBar.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Bavarian (Boarisch)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'de';
+
+$messages = array(
+
+'mainpage' => 'Hauptsaitn',
+
+);
+
+?>
diff --git a/languages/messages/MessagesBat_smg.php b/languages/messages/MessagesBat_smg.php
new file mode 100644
index 00000000..f072854f
--- /dev/null
+++ b/languages/messages/MessagesBat_smg.php
@@ -0,0 +1,9 @@
+<?php
+/** Samogitian (Žemaitėška)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'lt';
+?>
diff --git a/languages/messages/MessagesBe.php b/languages/messages/MessagesBe.php
new file mode 100644
index 00000000..6087e139
--- /dev/null
+++ b/languages/messages/MessagesBe.php
@@ -0,0 +1,837 @@
+<?php
+/** Belarusian (Беларуская мова)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$quickbarSettings = array(
+ 'Не паказваць', 'Замацаваная зьлева', 'Замацаваная справа', 'Рухомая зьлева'
+);
+
+$skinNames = array(
+ 'standard' => 'Клясычны',
+ 'nostalgia' => 'Настальгія',
+ 'cologneblue' => 'Кёльнскі смутак',
+ 'davinci' => 'Да Вінчы',
+ 'mono' => 'Мона',
+ 'monobook' => 'Монакніга',
+ 'myskin' => 'MySkin',
+ 'chick' => 'Цыпа'
+);
+
+$bookstoreList = array(
+ 'OZ.by' => 'http://oz.by/search.phtml?what=books&isbn=$1',
+ 'Amazon.com' => 'http://www.amazon.com/exec/obidos/ISBN=$1'
+);
+
+$datePreferences = array(
+ 'default',
+ 'dmy',
+ 'ISO 8601',
+);
+
+$defaultDateFormat = 'dmy';
+
+$dateFormats = array(
+ 'dmy time' => 'H:i',
+ 'dmy date' => 'j xg Y',
+ 'dmy both' => 'H:i, j xg Y',
+);
+
+$magicWords = array(
+ 'redirect' => array( 0, '#перанакіраваньне', '#redirect' ),
+ 'notoc' => array( 0, '__NOTOC__', '__БЯЗЬ_ЗЬМЕСТУ__' ),
+ 'nogallery' => array( 0, '__NOGALLERY__', '__БЕЗ_ГАЛЕРЭІ__' ),
+ 'forcetoc' => array( 0, '__FORCETOC__', '__ЗЬМЕСТ_ПРЫМУСАМ__' ),
+ 'toc' => array( 0, '__TOC__', '__ЗЬМЕСТ__' ),
+ 'noeditsection' => array( 0, '__NOEDITSECTION__', '__БЕЗ_РЭДАГАВАНЬНЯ_СЭКЦЫІ__' ),
+ 'start' => array( 0, '__START__', '__ПАЧАТАК__' ),
+ 'currentmonth' => array( 1, 'CURRENTMONTH', 'БЯГУЧЫ_МЕСЯЦ' ),
+ 'currentmonthname' => array( 1, 'CURRENTMONTHNAME', 'НАЗВА_БЯГУЧАГА_МЕСЯЦА' ),
+ 'currentmonthnamegen' => array( 1, 'CURRENTMONTHNAMEGEN', 'НАЗВА_БЯГУЧАГА_МЕСЯЦА_Ў_РОДНЫМ_СКЛОНЕ' ),
+ 'currentmonthabbrev' => array( 1, 'CURRENTMONTHABBREV', 'СКАРОЧАНАЯ_НАЗВА_БЯГУЧАГА_МЕСЯЦА' ),
+ 'currentday' => array( 1, 'CURRENTDAY', 'БЯГУЧЫ_ДЗЕНЬ' ),
+ 'currentday2' => array( 1, 'CURRENTDAY2', 'БЯГУЧЫ_ДЗЕНЬ_2' ),
+ 'currentdayname' => array( 1, 'CURRENTDAYNAME', 'НАЗВА_БЯГУЧАГА_ДНЯ' ),
+ 'currentyear' => array( 1, 'CURRENTYEAR', 'БЯГУЧЫ_ГОД' ),
+ 'currenttime' => array( 1, 'CURRENTTIME', 'БЯГУЧЫ_ЧАС' ),
+ 'numberofpages' => array( 1, 'NUMBEROFPAGES', 'КОЛЬКАСЬЦЬ_СТАРОНАК' ),
+ 'numberofarticles' => array( 1, 'NUMBEROFARTICLES', 'КОЛЬКАСЬЦЬ_АРТЫКУЛАЎ' ),
+ 'numberoffiles' => array( 1, 'NUMBEROFFILES', 'КОЛЬКАСЬЦЬ_ФАЙЛАЎ' ),
+ 'numberofusers' => array( 1, 'NUMBEROFUSERS', 'КОЛЬКАСЬЦЬ_УДЗЕЛЬНІКАЎ' ),
+ 'pagename' => array( 1, 'PAGENAME', 'НАЗВА_СТАРОНКІ' ),
+ 'pagenamee' => array( 1, 'PAGENAMEE', 'НАЗВА_СТАРОНКІ_2' ),
+ 'namespace' => array( 1, 'NAMESPACE', 'ПРАСТОРА_НАЗВАЎ' ),
+ 'namespacee' => array( 1, 'NAMESPACEE', 'ПРАСТОРА_НАЗВАЎ_2' ),
+ 'talkspace' => array( 1, 'TALKSPACE', 'ПРАСТОРА_НАЗВАЎ_АБМЕРКАВАНЬНЯ' ),
+ 'talkspacee' => array( 1, 'TALKSPACEE', 'ПРАСТОРА_НАЗВАЎ_АБМЕРКАВАНЬНЯ_2' ),
+ 'subjectspace' => array( 1, 'SUBJECTSPACE', 'ARTICLESPACE', 'ПРАСТОРА_НАЗВАЎ_ПРАДМЕТУ', 'ПРАСТОРА_НАЗВАЎ_АРТЫКУЛА' ),
+ 'subjectspacee' => array( 1, 'SUBJECTSPACEE', 'ARTICLESPACEE', 'ПРАСТОРА_НАЗВАЎ_ПРАДМЕТУ_2', 'ПРАСТОРА_НАЗВАЎ_АРТЫКУЛА_2' ),
+ 'fullpagename' => array( 1, 'FULLPAGENAME', 'ПОЎНАЯ_НАЗВА_СТАРОНКІ' ),
+ 'fullpagenamee' => array( 1, 'FULLPAGENAMEE', 'ПОЎНАЯ_НАЗВА_СТАРОНКІ_2' ),
+ 'subpagename' => array( 1, 'SUBPAGENAME', 'НАЗВА_ПАДСТАРОНКІ' ),
+ 'subpagenamee' => array( 1, 'SUBPAGENAMEE', 'НАЗВА_ПАДСТАРОНКІ_2' ),
+ 'basepagename' => array( 1, 'BASEPAGENAME', 'НАЗВА_БАЗАВАЙ_СТАРОНКІ' ),
+ 'basepagenamee' => array( 1, 'BASEPAGENAMEE', 'НАЗВА_БАЗАВАЙ_СТАРОНКІ_2' ),
+ 'talkpagename' => array( 1, 'TALKPAGENAME', 'НАЗВА_СТАРОНКІ_АБМЕРКАВАНЬНЯ' ),
+ 'talkpagenamee' => array( 1, 'TALKPAGENAMEE', 'НАЗВА_СТАРОНКІ_АБМЕРКАВАНЬНЯ_2' ),
+ 'subjectpagename' => array( 1, 'SUBJECTPAGENAME', 'ARTICLEPAGENAME', 'НАЗВА_СТАРОНКІ_ПРАДМЕТУ', 'НАЗВА_СТАРОНКІ_АРТЫКУЛА' ),
+ 'subjectpagenamee' => array( 1, 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE', 'НАЗВА_СТАРОНКІ_ПРАДМЕТУ_2', 'НАЗВА_СТАРОНКІ_АРТЫКУЛА_2' ),
+ 'msg' => array( 0, 'MSG:', 'ПАВЕДАМЛЕНЬНЕ:' ),
+ 'subst' => array( 0, 'SUBST:', 'ПАДСТАНОЎКА:' ),
+ 'msgnw' => array( 0, 'MSGNW:', 'ПАВЕДАМЛЕНЬНЕ_БЯЗЬ_ВІКІ:' ),
+ 'end' => array( 0, '__END__', '__КАНЕЦ__' ),
+ 'img_thumbnail' => array( 1, 'thumbnail', 'thumb', 'значак', 'міні' ),
+ 'img_manualthumb' => array( 1, 'thumbnail=$1', 'thumb=$1', 'значак=$1', 'міні=$1' ),
+ 'img_right' => array( 1, 'right', 'справа' ),
+ 'img_left' => array( 1, 'left', 'зьлева' ),
+ 'img_none' => array( 1, 'none', 'няма' ),
+ 'img_width' => array( 1, '$1px', '$1пкс' ),
+ 'img_center' => array( 1, 'center', 'centre', 'цэнтар' ),
+ 'img_framed' => array( 1, 'framed', 'enframed', 'frame', 'рамка' ),
+ 'int' => array( 0, 'INT:' ),
+ 'sitename' => array( 1, 'SITENAME', 'НАЗВА_САЙТУ' ),
+ 'ns' => array( 0, 'NS:', 'ПН:' ),
+ 'localurl' => array( 0, 'LOCALURL:', 'ЛЯКАЛЬНЫ_АДРАС:' ),
+ 'localurle' => array( 0, 'LOCALURLE:', 'ЛЯКАЛЬНЫ_АДРАС_2:' ),
+ 'server' => array( 0, 'SERVER', 'СЭРВЭР' ),
+ 'servername' => array( 0, 'SERVERNAME', 'НАЗВА_СЭРВЭРА' ),
+ 'scriptpath' => array( 0, 'SCRIPTPATH', 'ШЛЯХ_ДА_СКРЫПТА' ),
+ 'grammar' => array( 0, 'GRAMMAR:', 'ГРАМАТЫКА:' ),
+ 'notitleconvert' => array( 0, '__NOTITLECONVERT__', '__NOTC__', '__БЕЗ_КАНВЭРТАЦЫІ_НАЗВЫ__' ),
+ 'nocontentconvert' => array( 0, '__NOCONTENTCONVERT__', '__NOCC__', '__БЕЗ_КАНВЭРТАЦЫІ_ТЭКСТУ__' ),
+ 'currentweek' => array( 1, 'CURRENTWEEK', 'БЯГУЧЫ_ТЫДЗЕНЬ' ),
+ 'currentdow' => array( 1, 'CURRENTDOW', 'БЯГУЧЫ_ДЗЕНЬ_ТЫДНЯ' ),
+ 'revisionid' => array( 1, 'REVISIONID', 'ID_ВЭРСІІ' ),
+ 'plural' => array( 0, 'PLURAL:', 'МНОЖНЫ_ЛІК:'),
+ 'fullurl' => array( 0, 'FULLURL:', 'ПОЎНЫ_АДРАС:' ),
+ 'fullurle' => array( 0, 'FULLURLE:', 'ПОЎНЫ_АДРАС_2:' ),
+ 'lcfirst' => array( 0, 'LCFIRST:', 'ПЕРШАЯ_ЛІТАРА_МАЛАЯ:' ),
+ 'ucfirst' => array( 0, 'UCFIRST:', 'ПЕРШАЯ_ЛІТАРА_ВЯЛІКАЯ:' ),
+ 'lc' => array( 0, 'LC:', 'МАЛЫМІ_ЛІТАРАМІ:' ),
+ 'uc' => array( 0, 'UC:', 'ВЯЛІКІМІ_ЛІТАРАМІ:' ),
+ 'raw' => array( 0, 'RAW:', 'НЕАПРАЦАВАНЫ:' ),
+ 'displaytitle' => array( 1, 'DISPLAYTITLE', 'АДЛЮСТРАВАНАЯ_НАЗВА' ),
+ 'rawsuffix' => array( 1, 'R', 'Н' ),
+ 'newsectionlink' => array( 1, '__NEWSECTIONLINK__', '__СПАСЫЛКА_НА_НОВУЮ_СЭКЦЫЮ__' ),
+ 'currentversion' => array( 1, 'CURRENTVERSION', 'БЯГУЧАЯ_ВЭРСІЯ' ),
+ 'urlencode' => array( 0, 'URLENCODE:' ),
+ 'currenttimestamp' => array( 1, 'CURRENTTIMESTAMP', 'МОМАНТ_ЧАСУ' ),
+ 'directionmark' => array( 1, 'DIRECTIONMARK', 'DIRMARK', 'СЫМБАЛЬ_НАПРАМКУ_ПІСЬМА' ),
+ 'language' => array( 0, '#LANGUAGE:', '#МОВА:' ),
+ 'contentlanguage' => array( 1, 'CONTENTLANGUAGE', 'CONTENTLANG', 'МОВА_ЗЬМЕСТУ' ),
+ 'pagesinnamespace' => array( 1, 'PAGESINNAMESPACE:', 'PAGESINNS:', 'КОЛЬКАСЬЦЬ_СТАРОНАК_У_ПРАСТОРЫ_НАЗВАЎ:' ),
+ 'numberofadmins' => array( 1, 'NUMBEROFADMINS', 'КОЛЬКАСЬЦЬ_АДМІНІСТРАТАРАЎ' ),
+ 'formatnum' => array( 0, 'FORMATNUM', 'ФАРМАТАВАЦЬ_ЛІК' ),
+);
+
+$namespaceNames = array(
+ NS_MEDIA => 'Мэдыя',
+ NS_SPECIAL => 'Спэцыяльныя',
+ NS_MAIN => '',
+ NS_TALK => 'Абмеркаваньне',
+ NS_USER => 'Удзельнік',
+ NS_USER_TALK => 'Гутаркі_ўдзельніка',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => 'Абмеркаваньне_$1',
+ NS_IMAGE => 'Выява',
+ NS_IMAGE_TALK => 'Абмеркаваньне_выявы',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'Абмеркаваньне_MediaWiki',
+ NS_TEMPLATE => 'Шаблён',
+ NS_TEMPLATE_TALK => 'Абмеркаваньне_шаблёну',
+ NS_HELP => 'Дапамога',
+ NS_HELP_TALK => 'Абмеркаваньне_дапамогі',
+ NS_CATEGORY => 'Катэгорыя',
+ NS_CATEGORY_TALK => 'Абмеркаваньне_катэгорыі'
+);
+
+$separatorTransformTable = array(',' => '.', '.' => ',' );
+
+$linkTrail = '/^([абвгґджзеёжзійклмнопрстуўфхцчшыьэюяćčłńśšŭźža-z]+)(.*)$/sDu';
+
+$messages = array(
+# Belarusian Cyrillic alphabet:
+# Аа Бб Вв Гг Дд (ДЖдж ДЗдз) Ее Ёё Жж Зз Іі Йй Кк Лл Мм Нн Оо Пп Рр Сс Тт Уу Ўў Фф Хх Цц Чч Шш Ыы Ьь Ээ Юю Яя
+# Short ([^a-z]): абвгд (ДЖдж ДЗдз) еёжзійклмнопрстуўфхцчшыьэюя
+#
+# Belarusian Latin alphabet:
+# Aa Bb Cc Ćć Čč Dd (DŽdž DZdz) Ee Ff Gg Hh Ii Jj Kk Ll Łł Mm Be Ńń Oo Pp Rr Ss Śś Šš Tt Uu Ŭŭ Vv Yy Zz Źź Žž
+# Short ([^a-z]): ćč (DŽdž) łńśšŭźž
+
+# Note: use /u (unicode) and /i to turn of case-sensativity.
+
+'1movedto2' => '[[$1]] перанесеная ў [[$2]]',
+'1movedto2_redir' => '[[$1]] перанесеная ў [[$2]] з выдаленьнем перанакіраваньня',
+'about' => 'Пра',
+'aboutpage' => '{{ns:project}}:Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
+'aboutsite' => 'Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
+'accmailtext' => 'Пароль для «$1» быў адасланы на адрас $2.',
+'accmailtitle' => 'Пароль адасланы.',
+'accountcreated' => 'Рахунак створаны',
+'accountcreatedtext' => 'Рахунак удзельніка для $1 быў створаны.',
+'acct_creation_throttle_hit' => 'На жаль, Вы ўжо стварылі $1 рахункаў. Болей нельга.',
+'actioncomplete' => 'Дзеяньне завершанае',
+'addedwatch' => 'Дададзеная ў сьпіс назіраньня',
+'addedwatchtext' => "Артыкул «$1» быў дададзены да Вашага [[Special:Watchlist|сьпісу назіраньня]].
+Наступныя зьмены ў гэтым артыкуле і зьвязанай зь ім старонцы абмеркаваньняў будуць бачныя там, і старонка будзе выглядаць '''тлустай''' на [[Special:Recentchanges|старонцы са сьпісам апошніх зьменаў]], каб зьмены было лягчэй заўважыць.
+
+Калі Вы захочаце выдаліць артыкул са сьпісу назіраньня, націсьніце «не назіраць» у спэцыяльным радку зьверху артыкула.",
+'allarticles' => 'Усе артыкулы',
+'allinnamespace' => 'Усе старонкі (прастора назваў: $1)',
+'alllogstext' => 'Сумесны паказ журналаў загрузкі, выдаленьня, абароны, блякаваньня і адміністраваньня.
+Вы можаце адфільтраваць вынікі па тыпе журналу, удзельніку ці старонцы.',
+'allmessages' => 'Сыстэмныя паведамленьні',
+'allmessagescurrent' => 'Бягучы тэкст',
+'allmessagesdefault' => 'Тэкст па змоўчаньні',
+'allmessagesfilter' => 'Фільтар рэгулярных выразаў:',
+'allmessagesmodified' => 'Паказаць толькі зьмененыя',
+'allmessagesname' => 'Назва',
+'allmessagesnotsupportedDB' => "'''Special:AllMessages''' не падтрымліваецца, таму што адключанае '''\$wgUseDatabaseMessages'''.",
+'allmessagesnotsupportedUI' => 'Ваша цяперашняя мова <b>$1</b> інтэрфэйсу не падтрымліваецца Special:AllMessages гэтага сайту.',
+'allmessagestext' => 'Сьпіс усіх сыстэмных паведамленьняў, якія існуюць у прасторы назваў MediaWiki.',
+'allnotinnamespace' => 'Усе старонкі (не ў прасторы назваў $1)',
+'allowemail' => 'Дазволіць атрыманьне лістоў ад іншых удзельнікаў і ўдзельніц',
+'allpages' => 'Усе старонкі',
+'allpagesfrom' => 'Паказаць старонкі, пачынаючы з:',
+'allpagesnext' => 'Наступныя',
+'allpagesprefix' => 'Паказаць старонкі, назвы якіх пачынаюцца з:',
+'allpagesprev' => 'Папярэднія',
+'allpagessubmit' => 'Паказаць',
+'alphaindexline' => 'ад $1 да $2',
+'already_bureaucrat' => 'Гэты ўдзельнік ужо зьяўляецца бюракратам',
+'already_sysop' => 'Гэты ўдзельнік ужо зьяўляецца адміністратарам',
+'alreadyloggedin' => "<strong>Удзельнік $1, Вы ўжо ўвайшлі!</strong><br />",
+'alreadyrolled' => 'Немагчыма скасаваць апошнюю зьмену [[$1]], якую зрабіў [[User:$2|$2]] ([[User talk:$2|гутаркі]]); нехта іншы ўжо зьмяніў артыкул ці скасаваў зьмены.
+
+Апошнія зьмены зробленыя [[User:$3|$3]] ([[User talk:$3|гутаркі]]).',
+'ancientpages' => 'Найстарэйшыя старонкі',
+'and' => 'і',
+'anoneditwarning' => "'''Папярэджаньне:''' Вы не ўвайшлі. Ваш IP-адрас будзе запісаны ў гісторыі гэтай старонкі.",
+'anononlyblock' => 'толькі ананімаў',
+'anontalk' => 'Гутаркі для гэтага IP-адраса',
+'anontalkpagetext' => "----''Гэта старонка гутарак ананімнага ўдзельніка, які яшчэ не стварыў сабе рахунак ці не ўжывае яго. Таму мы вымушаныя ўжываць лічбавы IP-адрас дзеля ягонай ідэнтыфікацыі. Адзін IP-адрас можа выкарыстоўвацца некалькімі ўдзельнікамі. Калі Вы — ананімны ўдзельнік і лічыце, што атрымалі не прызначаныя Вам камэнтары, калі ласка, [[Special:Userlogin|зарэгіструйцеся ці ўвайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.''
+
+''This is the discussion page for an anonymous user who has not created an account yet or who does not use it. We therefore have to use the numerical IP address to identify him/her. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please [[Special:Userlogin|create an account or log in]] to avoid future confusion with other anonymous users.''",
+'anonymous' => 'Ананімныя ўдзельнікі і ўдзельніцы {{GRAMMAR:родны|{{SITENAME}}}}',
+'apr' => '04',
+'april' => 'красавіка',
+'april-gen' => 'красавіка',
+'article' => 'Артыкул',
+'articleexists' => 'Старонка з такой назвай ужо існуе, альбо абраная Вамі назва недапушчальная.
+Калі ласка, абярыце іншую назву.',
+'articlepage' => 'Паказаць артыкул',
+'articletitles' => "Артыкулы, якія пачынаюцца з ''$1''",
+'aug' => '08',
+'august' => 'жніўня',
+'august-gen' => 'жніўня',
+'autoblocker' => "Вы аўтаматычна заблякаваныя, таму што Ваш IP-адрас нядаўна ўжываўся «[[User:$1|$1]]». Прычына блякаваньня $1 наступная: «'''$2'''»",
+'autoredircomment' => 'Перанакіроўвае на [[$1]]',
+'badaccess' => 'Памылка: не адпаведны ўзровень правоў',
+'badaccess-group0' => 'Вам не дазволена выканаць запытанае Вамі дзеяньне.',
+'badaccess-group1' => 'Запытанае Вамі дзеяньне дазволенае толькі ўдзельнікам з групы $1.',
+'badaccess-group2' => 'Запытанае Вамі дзеяньне дазволенае толькі ўдзельнікам адной з групаў $1.',
+'badaccess-groups' => 'Запытанае Вамі дзеяньне дазволенае толькі ўдзельнікам адной з групаў $1.',
+'badarticleerror' => 'Гэтае дзеяньне немагчыма выканаць на гэтай старонцы.',
+'badquerytext' => 'Мы не змаглі апрацаваць Ваш запыт. Магчыма, прычына гэтага ў тым, што Вы паспрабавалі шукаць слова, карацейшае за тры літары, што пакуль не падтрымліваецца. Магчыма таксама, што Вы зрабілі памылку ў выразе, напрыклад, «рыба і і луска». Калі ласка, паспрабуйце іншы запыт.',
+'badfilename' => 'Назва файла была зьмененая на «$1».',
+'badfiletype' => '«.$1» не зьяўляецца рэкамэндаваным фарматам для файлаў выяваў.',
+'badipaddress' => 'Некарэктны IP-адрас',
+'badquery' => 'Няслушна сфармаваны пошукавы запыт',
+'badretype' => 'Уведзеныя Вамі паролі не супадаюць.',
+'badsig' => 'Няслушны неапрацаваны подпіс; праверце HTML-тэгі.',
+'badtitle' => 'Некарэктная назва',
+'badtitletext' => 'Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці міжвікі назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.',
+'blanknamespace' => 'Артыкул',
+'blockededitsource' => "Тэкст '''Вашых зьменаў''' у '''$1''' паказаны ніжэй:",
+'blockedoriginalsource' => "Крыніца '''$1''' паказана ніжэй:",
+'blockedtext' => "<big>'''Вашае імя ўдзельніка ці IP-адрас быў заблякаваны $1.'''</big>
+
+Прычына гэтага: ''$2''.
+
+Вы можаце скантактавацца з $1 ці адным зь іншых [[{{ns:project}}:Адміністрацыя|адміністратараў]], каб абмеркаваць блякаваньне. Заўважце, што Вы ня зможаце ўжыць мажлівасьць «даслаць ліст па электроннай пошце гэтаму ўдзельніку/гэтай удзельніцы», пакуль не пазначыце сапраўдны адрас электроннай пошты ў Вашых [[Special:Preferences|устаноўках]]. Ваш IP-адрас – $3. Калі ласка, улучайце гэты адрас ва ўсе запыты, што Вы будзеце рабіць.",
+'blockedtitle' => 'Удзельнік заблякаваны',
+'blockip' => 'Блякаваньне ўдзельніка ці ўдзельніцы',
+'blockipsuccesssub' => 'Блякаваньне пасьпяховае',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] быў заблякаваны/была заблякаваная.
+<br />Глядзіце [[Special:Ipblocklist|сьпіс заблякаваных IP-адрасоў]] дзеля перагляду блякаваньняў.',
+'blockiptext' => 'Ужывайце форму ніжэй, каб заблякаваць доступ для запісу з пэўнага IP-адрасу ці імя ўдзельніка. Гэта трэба рабіць толькі прадухіленьня вандалізму і згодна з [[{{ns:project}}:Правілы|правіламі]]. Запоўніце ніжэй пэўную прычыну (напрыклад, пералічыце асобныя старонкі, на якіх былі парушэньні).',
+'blocklink' => 'заблякаваць',
+'blocklistline' => '$1, $2 заблякаваў $3 ($4)',
+'blocklogentry' => 'заблякаваны «[[$1]]» на тэрмін: $2',
+'blocklogpage' => 'Журнал блякаваньняў',
+'blocklogtext' => 'Гэта журнал уліку блякаваньняў і разблякаваньняў удзельнікаў. Аўтаматычна заблякаваныя IP-адрасы не пазначаныя. Глядзіце [[Special:Ipblocklist|сьпіс заблякаваных IP-адрасоў]], каб пабачыць дзейныя ў гэты момант блякаваньні.',
+'booksources' => 'Кнігарні',
+'boteditletter' => 'р',
+'brokenredirects' => 'Некарэктныя перанакіраваньні',
+'brokenredirectstext' => 'Наступныя перанакіраваньні спасылаюцца на неіснуючыя старонкі:',
+'bydate' => 'па даце',
+'byname' => 'па назьве',
+'bysize' => 'па памеры',
+'cachederror' => 'Наступнае — кэшаваная копія запытанай старонкі; магчыма, яна ўжо не адпавядае рэчаіснасьці.',
+'cancel' => 'Адмяніць',
+'cannotdelete' => 'Немагчыма выдаліць указаную старонку альбо выяву. (Магчыма, яна ўжо выдаленая кімсьці іншым.)',
+'cantcreateaccounttitle' => 'Немагчыма стварыць рахунак',
+'cantrollback' => 'Немагчыма скасаваць зьмену; апошні рэдактар — адзіны аўтар гэтай старонкі.',
+'categories' => '{{PLURAL:$1|Катэгорыя|Катэгорыі|Катэгорыі}}',
+'categoriespagetext' => 'У {{GRAMMAR:месны|{{SITENAME}}}} існуюць наступныя катэгорыі:',
+'category_header' => 'Артыкулы ў катэгорыі «$1»',
+'categoryarticlecount' => 'У гэтай катэгорыі ёсьць $1 {{PLURAL:$1|артыкул|артыкулы|артыкулаў}}.',
+'changepassword' => 'Зьмяніць пароль',
+'changes' => 'зьмены',
+'clearwatchlist' => 'Ачысьціць сьпіс назіраньня',
+'columns' => 'Слупкоў:',
+'compareselectedversions' => 'Параўнаць выбраныя вэрсіі',
+'confirm' => 'Пацьверджаньне',
+'confirmdelete' => 'Пацьверджаньне выдаленьня',
+'confirmemail' => 'Пацьвердзіць адрас электроннай пошты',
+'confirmprotect' => 'Пацьверджаньне абароны',
+'confirmprotecttext' => 'Вы сапраўды жадаеце абараніць гэтую старонку?',
+'confirmunprotecttext' => 'Вы сапраўды жадаеце зьняць абарону з гэтай старонкі?',
+'contribslink' => 'унёсак',
+'contribsub' => 'Для $1',
+'contributions' => 'Унёсак удзельніка/удзельніцы',
+'copyright' => 'Зьмест старонкі падпадае пад ліцэнзію $1.',
+'copyrightpage' => '{{ns:project}}:Аўтарскія правы',
+'copyrightpagename' => 'Аўтарскія правы {{GRAMMAR:родны|{{SITENAME}}}}',
+'copyrightwarning' => '<strong>НЕЛЬГА БЕЗ [[{{ns:project}}:Дазволы на выкарыстаньне матэрыялаў|ДАЗВОЛУ]] ДАДАВАЦЬ МАТЭРЫЯЛЫ, АБАРОНЕНЫЯ АЎТАРСКІМ ПРАВАМ!</strong>',
+'couldntremove' => 'Немагчыма выдаліць «$1»...',
+'createaccount' => 'Стварыць новы рахунак',
+'createaccountmail' => 'па электроннай пошце',
+'creditspage' => 'Падзякі',
+'cur' => 'бяг',
+'currentevents' => 'Бягучыя падзеі',
+'currentevents-url' => 'Бягучыя падзеі',
+'currentrev' => 'Бягучая вэрсія',
+'currentrevisionlink' => 'Бягучая вэрсія',
+'data' => 'Зьвесткі',
+'databaseerror' => 'Памылка базы зьвестак',
+'dateformat' => 'Фармат даты',
+'datetime' => 'Дата і час',
+'deadendpages' => 'Тупіковыя старонкі',
+'dec' => '12',
+'december' => 'сьнежня',
+'december-gen' => 'сьнежня',
+'default' => 'па змоўчаньні',
+'defaultns' => 'Па змоўчаньні, шукаць у наступных прасторах назваў:',
+'delete' => 'Выдаліць',
+'delete_and_move' => 'Выдаліць і перанесьці',
+'delete_and_move_confirm' => 'Так, выдаліць старонку',
+'deletecomment' => 'Прычына выдаленьня',
+'deletedarticle' => 'выдаленая «[[$1]]»',
+'deletedrev' => '[выдаленая]',
+'deletedrevision' => 'Выдаленая старая вэрсія $1.',
+'deleteimg' => 'выдаліць',
+'deleteimgcompletely' => 'Выдаліць усе вэрсіі гэтага файла',
+'deletepage' => 'Выдаліць старонку',
+'deletesub' => '(Выдаленьне «$1»)',
+'deletethispage' => 'Выдаліць гэтую старонку',
+'deletionlog' => 'журнал выдаленьняў',
+'dellogpage' => 'Журнал выдаленьняў',
+'dellogpagetext' => 'Сьпіс апошніх выдаленьняў.',
+'diff' => 'розьн',
+'difference' => '(Адрозьненьні паміж вэрсіямі)',
+'disambiguations' => 'Старонкі-неадназначнасьці',
+'disambiguationspage' => 'Шаблён:Неадназначнасьць',
+'disclaimerpage' => '{{ns:project}}:Адмова ад адказнасьці',
+'disclaimers' => 'Адмова ад адказнасьці',
+'doubleredirects' => 'Двайныя перанакіраваньні',
+'edit' => 'Рэдагаваць',
+'editconflict' => 'Канфлікт рэдагаваньня: $1',
+'editcurrent' => 'Рэдагаваць бягучую вэрсію гэтай старонкі',
+'edithelp' => 'Дапамога ў рэдагаваньні',
+'edithelppage' => 'Help:Рэдагаваньне',
+'editing' => 'Рэдагаваньне: $1',
+'editingcomment' => 'Рэдагаваньне: $1 (камэнтар)',
+'editingsection' => 'Рэдагаваньне: $1 (сэкцыя)',
+'editsection' => 'рэдагаваць',
+'editold' => 'рэдагаваць',
+'editsectionhint' => 'Рэдагаваць сэкцыю «$1»',
+'editthispage' => 'Рэдагаваць гэтую старонку',
+'editusergroup' => 'Рэдагаваць групы ўдзельнікаў і ўдзельніц',
+'email' => 'Электронная пошта',
+'emailfrom' => 'Ад',
+'emailmessage' => 'Паведамленьне',
+'emailpage' => 'Даслаць ліст ўдзельніку ці ўдзельніцы па электроннай пошце',
+'emailsend' => 'Даслаць',
+'emailsubject' => 'Тэма',
+'emailto' => 'Каму',
+'emailuser' => 'Даслаць ліст па электроннай пошце гэтаму ўдзельніку/гэтай удзельніцы',
+'enotif_newpagetext' => 'Гэта новая старонка.',
+'error' => 'Памылка',
+'errorpagetitle' => 'Памылка',
+'exblank' => 'старонка была пустая',
+'excontent' => 'колішні зьмест: «$1»',
+'exif-exifversion' => 'Вэрсія Exif',
+'exif-flash' => 'Успышка',
+'exif-gpslatitude' => 'Шырата',
+'exif-gpslongitude' => 'Даўгата',
+'exif-imagedescription' => 'Назва выявы',
+'exif-imagelength' => 'Вышыня',
+'exif-imagewidth' => 'Шырыня',
+'exif-lightsource' => 'Крыніца сьвятла',
+'exif-lightsource-0' => 'Невядомая',
+'exif-lightsource-4' => 'Успышка',
+'exif-make' => 'Вытворца фотаапарата',
+'exif-model' => 'Мадэль фотаапарата',
+'export' => 'Экспартаваць старонкі',
+'exportcuronly' => 'Экспартаваць толькі бягучую вэрсію, бяз поўнай гісторыі',
+'extlink_tip' => 'Зьнешняя спасылка (не забывайцеся пачынаць з http:// )',
+'feb' => '02',
+'february' => 'лютага',
+'february-gen' => 'лютага',
+'filecopyerror' => 'Немагчыма cкапіяваць файл «$1» у «$2».',
+'filedeleteerror' => 'Немагчыма выдаліць файл «$1».',
+'filedesc' => 'Апісаньне',
+'filename' => 'Назва файла',
+'filenotfound' => 'Немагчыма знайсьці файл «$1».',
+'filerenameerror' => 'Немагчыма перайменаваць файл «$1» у «$2».',
+'files' => 'Файлы',
+'filesource' => 'Крыніца',
+'fileuploadsummary' => 'Апісаньне:',
+'friday' => 'пятніца',
+'getimagelist' => 'атрыманьне сьпісу файлаў',
+'go' => 'Старонка',
+'gotaccount' => 'Ужо маеце рахунак? $1.',
+'gotaccountlink' => 'Увайдзіце',
+'group' => 'Група:',
+'group-all' => '(усе)',
+'group-bot' => 'Робаты',
+'group-bot-member' => 'Робат',
+'group-sysop' => 'Адміністрацыя',
+'group-sysop-member' => 'Адміністратар/Адміністратарка',
+'grouppage-bot' => '{{ns:project}}:Робаты',
+'grouppage-sysop' => '{{ns:project}}:Адміністрацыя',
+'help' => 'Дапамога',
+'helppage' => 'Help:Зьмест',
+'hide' => 'схаваць',
+'hidetoc' => 'схаваць',
+'hist' => 'гіст',
+'history' => 'Гісторыя старонкі',
+'history_short' => 'Гісторыя',
+'historywarning' => 'Папярэджаньне: у старонкі, якую Вы зьбіраецеся выдаліць, ёсьць гісторыя:&nbsp;',
+'hr_tip' => 'Гарызантальная лінія (не выкарыстоўвайце часта)',
+'ignorewarning' => 'Праігнараваць папярэджаньне і захаваць файл.',
+'illegalfilename' => 'Назва файла «$1» зьмяшчае сымбалі, якія нельга выкарыстоўваць у назвах старонак. Калі ласка, зьмяніце назву файла і паспрабуйце загрузіць яго зноў.',
+'ilsubmit' => 'Шукаць',
+'image_sample' => 'Прыклад.jpg',
+'imagelinks' => 'Спасылкі',
+'imagelist' => 'Сьпіс файлаў',
+'imagelist_date' => 'Дата',
+'imagelist_description' => 'Апісаньне',
+'imagelist_name' => 'Назва',
+'imagelist_size' => 'Памер',
+'imagelist_user' => 'Удзельнік',
+'imagelisttext' => 'Сьпіс <strong>$1</strong> файлаў, адсартаваных <strong>$2</strong>.',
+'imagepage' => 'Паказаць старонку выявы',
+'imgdelete' => 'выдаліць',
+'imgdesc' => 'апісаньне',
+'imgfile' => 'файл',
+'imghistory' => 'Гісторыя файла',
+'import' => 'Імпартаваць старонкі',
+'importfailed' => 'Немагчыма імпартаваць: $1',
+'infiniteblock' => 'назаўсёды',
+'info_short' => 'Інфармацыя',
+'infosubtitle' => 'Інфармацыя пра старонку',
+'internalerror' => 'Унутраная памылка',
+'invert' => 'Адваротны выбар',
+'ip_range_invalid' => 'Некарэктны дыяпазон IP-адрасоў.',
+'ipaddress' => 'IP-адрас',
+'ipadressorusername' => 'IP-адрас альбо імя ўдзельніка/ўдзельніцы',
+'ipbanononly' => 'Блякаваць толькі ананімаў',
+'ipbcreateaccount' => 'Забараніць стварэньне рахункаў',
+'ipbexpiry' => 'Тэрмін',
+'ipblocklist' => 'Сьпіс заблякаваных IP-адрасоў і імёнаў удзельнікаў',
+'ipboptions' => '2 гадзіны:2 hours,1 дзень:1 day,3 дня:3 days,1 тыдзень:1 week,2 тыдні:2 weeks,1 месяц:1 month,3 месяцы:3 months,6 месяцаў:6 months,1 год:1 year,назаўсёды:infinite',
+'ipbother' => 'Іншы тэрмін',
+'ipbotheroption' => 'іншы',
+'ipbreason' => 'Прычына',
+'isredirect' => 'старонка-перанакіраваньне',
+'istemplate' => 'уключэньне',
+'jan' => '01',
+'january' => 'студзеня',
+'january-gen' => 'студзеня',
+'jul' => '07',
+'july' => 'ліпеня',
+'july-gen' => 'ліпеня',
+'jun' => '06',
+'june' => 'чэрвеня',
+'june-gen' => 'чэрвеня',
+'lastmodifiedat' => 'Гэтая старонка апошні раз рэдагавалася $2, $1.',
+'lastmodifiedatby' => 'Гэтую старонку апошні раз рэдагаваў $3 $2, $1.',
+'license' => 'Ліцэнзія',
+'lineno' => 'Радок $1:',
+'link_tip' => 'Унутраная спасылка',
+'linklistsub' => '(Сьпіс спасылак)',
+'linkshere' => 'Наступныя старонкі спасылаюцца на \'\'\'[[:$1]]\'\'\':',
+'linkstoimage' => 'Наступныя старонкі спасылаюцца на гэты файл:',
+'listingcontinuesabbrev' => " (працяг)",
+'listredirects' => 'Сьпіс перанакіраваньняў',
+'listusers' => 'Сьпіс удзельнікаў і ўдзельніц',
+'loadhist' => 'Загрузка гісторыі старонкі',
+'loadingrev' => 'Загрузка вэрсіі для параўнаньня',
+'localtime' => 'Мясцовы час',
+'log' => 'Журналы падзей',
+'login' => 'Увайсьці',
+'loginlanguagelabel' => 'Мова: $1',
+'logout' => 'Выйсьці',
+'lonelypages' => 'Старонкі-сіраціны',
+'longpages' => 'Доўгія старонкі',
+'mailmypassword' => 'Даслаць мне пароль',
+'mainpage' => 'Галоўная старонка',
+'makesysopname' => 'Імя ўдзельніка/ўдзельніцы:',
+'mar' => '03',
+'march' => 'сакавіка',
+'march-gen' => 'сакавіка',
+'math_sample' => 'Зьмясьціце тут формулу',
+'math_syntax_error' => 'сынтаксычная памылка',
+'math_tip' => 'Матэматычная формула (LaTeX)',
+'math_unknown_error' => 'невядомая памылка',
+'math_unknown_function' => 'невядомая функцыя',
+'may' => '05',
+'may-gen' => 'траўня',
+'may_long' => 'траўня',
+'media_sample' => 'Прыклад.ogg',
+'media_tip' => 'Спасылка на мэдыя-файл',
+'mimesearch' => 'Пошук па MIME',
+'mimetype' => 'Тып MIME:',
+'minlength' => 'Назва файла павінна быць не карацейшай за тры сымбалі.',
+'minoredit' => 'Гэта дробная праўка',
+'minoreditletter' => 'д',
+'missingimage' => '<b>Выява адсутнічае</b><br /><i>$1</i>',
+'monday' => 'панядзелак',
+'mostcategories' => 'Старонкі з найбольшай колькасьцю катэгорый',
+'mostimages' => 'Выявы, на якія найчасьцей спасылаюцца',
+'mostlinked' => 'Старонкі, на якія найчасьцей спасылаюцца',
+'mostlinkedcategories' => 'Катэгорыі з найбольшай колькасьцю артыкулаў',
+'mostrevisions' => 'Старонкі з найбольшай колькасьцю рэдагаваньняў',
+'move' => 'Перанесьці',
+'movearticle' => 'Перанесьці старонку',
+'movedto' => 'перанесеная ў',
+'movepage' => 'Перанесьці старонку',
+'movepagebtn' => 'Перанесьці старонку',
+'movereason' => 'Прычына',
+'movetalk' => 'Перанесьці таксама старонку абмеркаваньня.',
+'movethispage' => 'Перанесьці гэтую старонку',
+'mw_math_html' => 'HTML калі магчыма, інакш PNG',
+'mw_math_mathml' => 'MathML калі магчыма (экспэрымэнтальна)',
+'mw_math_png' => 'Заўсёды паказваць як PNG',
+'mw_math_simple' => 'HTML у простых выпадках, інакш PNG',
+'mycontris' => 'Мой унёсак',
+'mypage' => 'Мая старонка',
+'mypreferences' => 'Мае ўстаноўкі',
+'mytalk' => 'Мае размовы',
+'namespace' => 'Прастора назваў:',
+'namespacesall' => 'усе',
+'navigation' => 'Навігацыя',
+'nbytes' => '$1 {{PLURAL:$1|байт|байта|байтаў}}',
+'ncategories' => '$1 {{PLURAL:$1|катэгорыя|катэгорыі|катэгорый}}',
+'newarticle' => '(Новы)',
+'newarticletext' =>
+"Вы прыйшлі па спасылцы на старонку, якая яшчэ не існуе.
+Каб стварыць яе, напішыце тэкст у полі ніжэй (глядзіце [[Help:Зьмест|старонку дапамогі]] дзеля дадатковай інфармацыі).
+Калі Вы трапілі сюды памылкова, націсьніце '''назад''' у вашым браўзэры",
+'newbies' => 'Пачынаючыя ўдзельнікі і ўдзельніцы',
+'newimages' => 'Галерэя новых файлаў',
+'newmessagesdifflink' => 'розьніца з папярэдняй вэрсіяй',
+'newmessageslink' => 'новыя паведамленьні',
+'newpage' => 'Новая старонка',
+'newpageletter' => 'Н',
+'newpages' => 'Новыя старонкі',
+'newpages-username' => 'Імя ўдзельніка/ўдзельніцы:',
+'newpassword' => 'Новы пароль:',
+'newtitle' => 'Новая назва',
+'newwindow' => '(адчыняецца ў новым акне)',
+'nextdiff' => 'Перайсьці да наступнай зьмены →',
+'nextn' => 'наступныя $1',
+'nextpage' => 'Наступная старонка ($1)',
+'nlinks' => '$1 {{PLURAL:$1|спасылка|спасылкі|спасылак}}',
+'nmembers' => '$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}}',
+'noarticletext' => 'Зараз тэкст на гэтай старонцы адсутнічае. Вы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэтую назву]] ў іншых старонках альбо [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} рэдагаваць гэтую старонку].',
+'nodb' => 'Немагчыма выбраць базу зьвестак $1',
+'noemailtitle' => 'Адрас электроннай пошты адсутнічае',
+'noexactmatch' => "'''Старонкі з гэткай назвай не існуе.''' Вы можаце '''[[:$1|стварыць гэтую старонку]]'''.",
+'nohistory' => 'Гісторыя зьменаў для гэтай старонкі адсутнічае.',
+'noimages' => 'Выявы адсутнічаюць.',
+'nolicense' => 'Не выбраная',
+'nolinkshere' => "Ніводная старонка не спасылаецца на '''[[:$1]]'''.",
+'nolinkstoimage' => 'Ніводная старонка не спасылаецца на гэты файл.',
+'nologin' => 'Ня маеце рахунку? $1.',
+'nologinlink' => 'Стварыце рахунак',
+'nosuchaction' => 'Няма такога дзеяньня',
+'nosuchspecialpage' => 'Такой спэцыяльнай старонкі не існуе',
+'nosuchuser' => 'Не існуе ўдзельніка ці ўдзельніцы «$1».
+Праверце напісаньне, альбо выкарыстайце форму ніжэй, каб стварыць новы рахунак ўдзельніка ці ўдзельніцы.',
+'nosuchusershort' => 'Не існуе ўдзельніка ці ўдзельніцы «$1». Праверце напісаньне.',
+'notanarticle' => 'Не артыкул',
+'note' => '<strong>Заўвага: </strong>',
+'nov' => '11',
+'november' => 'лістапада',
+'november-gen' => 'лістапада',
+'nowatchlist' => 'Ваш сьпіс назіраньня — пусты.',
+'nowiki_sample' => 'Пішыце сюды нефарматаваны тэкст',
+'nowiki_tip' => 'Ігнараваць вікі-фарматаваньне',
+'nrevisions' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}}',
+'nstab-category' => 'Катэгорыя',
+'nstab-help' => 'Старонка дапамогі',
+'nstab-image' => 'Файл',
+'nstab-main' => 'Артыкул',
+'nstab-media' => 'Мэдыя',
+'nstab-mediawiki' => 'Паведамленьне',
+'nstab-project' => 'Старонка праекту',
+'nstab-special' => 'Спэцыяльная',
+'nstab-template' => 'Шаблён',
+'nstab-user' => 'Старонка ўдзельніка/ўдзельніцы',
+'numauthors' => 'Колькасьць розных аўтараў і аўтарак (артыкула): $1',
+'numedits' => 'Колькасьць зьменаў (артыкула): $1',
+'numtalkauthors' => 'Колькасьць розных аўтараў і аўтарак (старонкі абмеркаваньня): $1',
+'numtalkedits' => 'Колькасьць зьменаў (старонкі абмеркаваньня): $1',
+'numwatchers' => 'Колькасьць назіральнікаў і назіральніц: $1',
+'nviews' => '$1 {{PLURAL:$1|прагляд|прагляды|праглядаў}}',
+'oct' => '10',
+'october' => 'кастрычніка',
+'october-gen' => 'кастрычніка',
+'ok' => 'Добра',
+'oldpassword' => 'Стары пароль:',
+'orig' => 'арыг',
+'otherlanguages' => 'На іншых мовах',
+'others' => 'іншыя',
+'pagemovedtext' => 'Старонка «[[$1]]» перанесеная ў «[[$2]]».',
+'pagetitle' => '$1 - {{SITENAME}}',
+'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі.',
+'perfcachedts' => 'Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1.',
+'permalink' => 'Сталая спасылка',
+'popularpages' => 'Папулярныя старонкі',
+'portal' => 'Суполка',
+'portal-url' => '{{ns:project}}:Суполка',
+'postcomment' => 'Пракамэнтаваць',
+'powersearch' => 'Пошук',
+'preferences' => 'Устаноўкі',
+'prefixindex' => 'Пошук старонак па пачатку назвы',
+'prefs-misc' => 'Рознае',
+'prefs-rc' => 'Апошнія зьмены',
+'prefs-watchlist' => 'Сьпіс назіраньня',
+'preview' => 'Прагляд',
+'previewnote' => '<strong>Гэта толькі папярэдні прагляд і зьмены яшчэ не былі захаваныя!</strong>',
+'previousdiff' => '← Перайсьці да папярэдняй зьмены',
+'prevn' => 'папярэднія $1',
+'printableversion' => 'Вэрсія для друку',
+'privacy' => 'Правілы адносна прыватнасьці',
+'privacypage' => '{{ns:project}}:Правілы адносна прыватнасьці',
+'projectpage' => 'Паказаць старонку праекту',
+'protect' => 'Абараніць',
+'protectcomment' => 'Прычына для абароны',
+'protectedarticle' => 'абароненая «[[$1]]»',
+'protectedpage' => 'Абароненая старонка',
+'protectedpagewarning' => "<strong>ПАПЯРЭДЖАНЬНЕ: Гэтая старонка была абароненая, таму толькі адміністратары могуць рэдагаваць яе. Упэўніцеся, што Вы кіруецеся [[{{ns:project}}:Рэдагаваньне абароненых старонак|правіламі рэдагаваньня абароненых старонак]].</strong>",
+'protectlogpage' => 'Журнал абаронаў',
+'protectsub' => '(Абарона «$1»)',
+'protectthispage' => 'Абараніць гэтую старонку',
+'qbbrowse' => 'Праглядзець',
+'qbedit' => 'Рэдагаваць',
+'qbfind' => 'Знайсьці',
+'qbpageoptions' => 'Гэтая старонка',
+'qbspecialpages' => 'Спэцыяльныя старонкі',
+'randompage' => 'Выпадковая старонка',
+'randomredirect' => 'Выпадковае перанакіраваньне',
+'rclinks' => "Паказаць апошнія $1 зьменаў за мінулыя $2 дзён<br />$3",
+'rclistfrom' => 'Паказаць зьмены з $1',
+'rclsub' => '(да старонак, спасылкі на якія ёсьць на «$1»)',
+'rcnote' => 'Ніжэй пададзеныя апошнія <strong>$1</strong> зьменаў у апошнія <strong>$2</strong> дзён, па стане на $3.',
+'rcnotefrom' => "Ніжэй знаходзяцца зьмены з <b>$2</b> (да <b>$1</b> на старонку).",
+'rcshowhideanons' => '$1 ананімаў',
+'rcshowhidebots' => '$1 робатаў',
+'rcshowhideliu' => '$1 зарэгістраваных',
+'rcshowhidemine' => '$1 мае праўкі',
+'rcshowhideminor' => '$1 дробныя праўкі',
+'recentchanges' => 'Апошнія зьмены',
+'recentchangesall' => 'усе',
+'recentchangeslinked' => 'Зьвязаныя праўкі',
+'recentchangestext' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} на гэтай старонцы.',
+'redirectedfrom' => '(Перанакіраваная з $1)',
+'redirectpagesub' => 'Старонка-перанакіраваньне',
+'remembermypassword' => 'Запомніць мяне на гэтым кампутары',
+'removechecked' => 'Выдаліць выбраныя старонкі са сьпісу назіраньня',
+'removedwatch' => 'Выдаленая са сьпісу назіраньня',
+'removedwatchtext' => 'Старонка «[[:$1]]» была выдаленая з Вашага сьпісу назіраньня.',
+'removingchecked' => 'Выдаленьне выбраных старонак са сьпісу назіраньня...',
+'resetprefs' => 'Скінуць',
+'restorelink' => 'выдаленыя зьмены ($1)',
+'restrictedpheading' => 'Спэцыяльныя старонкі з абмежаваным доступам',
+'restriction-edit' => 'Рэдагаваньне',
+'restriction-move' => 'Перанос',
+'resultsperpage' => 'Колькасьць вынікаў на старонцы',
+'retrievedfrom' => 'Атрымана з «$1»',
+'returnto' => 'Вярнуцца да $1.',
+'retypenew' => 'Паўтарыце новы пароль:',
+'reupload' => 'Загрузіць зноў',
+'reuploaddesc' => 'Вярнуцца да формы загрузкі.',
+'revertimg' => 'вярнуць',
+'revhistory' => 'Гісторыя зьменаў',
+'revisionasof' => 'Вэрсія ад $1',
+'revnotfound' => 'Вэрсія ня знойдзеная',
+'rollback' => 'Адмяніць рэдагаваньні',
+'rows' => 'Радкоў:',
+'saturday' => 'субота',
+'savearticle' => 'Захаваць старонку',
+'savefile' => 'Захаваць файл',
+'saveprefs' => 'Захаваць',
+'saveusergroups' => 'Захаваць групы ўдзельнікаў і ўдзельніц',
+'search' => 'Пошук',
+'searcharticle' => 'Старонка',
+'searchbutton' => 'Пошук',
+'searchresults' => 'Вынікі пошуку',
+'searchresultshead' => 'Пошук',
+'searchresulttext' => 'Для атрыманьня больш падрабязнай інфармацыі пра пошук у {{GRAMMAR:месны|{{SITENAME}}}}, глядзіце [[{{ns:project}}:Пошук|Пошук у {{GRAMMAR:месны|{{SITENAME}}}}]].',
+'sep' => '09',
+'september' => 'верасьня',
+'september-gen' => 'верасьня',
+'servertime' => 'Бягучы час на сэрвэры',
+'sharedupload' => 'Гэты файл зьяўляецца агульным і можа выкарыстоўвацца іншымі праектамі.',
+'shortpages' => 'Кароткія старонкі',
+'show' => 'паказаць',
+'showbigimage' => 'Паказаць варыянт большага памеру ($1 × $2, $3 Кб)',
+'showdiff' => 'Паказаць зьмены',
+'showingresults' => "Ніжэй паданыя да <b>$1</b> вынікаў, пачынаючы з #<b>$2</b>.",
+'showlast' => 'Паказаць $1 апошніх файлаў адсартаваных $2.',
+'showpreview' => 'Праглядзець',
+'showtoc' => 'паказаць',
+'sig_tip' => 'Ваш подпіс і момант часу',
+'sitestats' => 'Статыстыка {{GRAMMAR:родны|{{SITENAME}}}}',
+'sitesupport' => 'Ахвяраваньні',
+'siteuser' => 'Удзельнік/удзельніца {{GRAMMAR:родны|{{SITENAME}}}} $1',
+'skin' => 'Афармленьне',
+'skinpreview' => '(Прагляд)',
+'spamprotectiontitle' => 'Фільтар для абароны ад спаму',
+'speciallogtitlelabel' => 'Назва:',
+'specialloguserlabel' => 'Удзельнік/удзельніца:',
+'specialpage' => 'Спэцыяльная старонка',
+'specialpages' => 'Спэцыяльныя старонкі',
+'spheading' => 'Спэцыяльныя старонкі для ўсіх удзельнікаў і ўдзельніц',
+'statistics' => 'Статыстыка',
+'storedversion' => 'Захаваная вэрсія',
+'subcategories' => 'Падкатэгорыі',
+'subcategorycount' => 'У гэтай катэгорыі ёсьць $1 {{PLURAL:$1|падкатэгорыя|падкатэгорыі|падкатэгорый}}.',
+'subject' => 'Тэма/назва',
+'summary' => 'Кароткае апісаньне зьменаў',
+'sunday' => 'нядзеля',
+'table_pager_first' => 'Першая старонка',
+'table_pager_last' => 'Апошняя старонка',
+'table_pager_next' => 'Наступная старонка',
+'table_pager_prev' => 'Папярэдняя старонка',
+'tagline' => 'Зьвесткі зь {{GRAMMAR:родны|{{SITENAME}}}}',
+'talk' => 'Гутаркі',
+'talkpage' => 'Абмеркаваць гэтую старонку',
+'talkpagemoved' => 'Адпаведная старонка абмеркаваньня таксама перанесеная.',
+'talkpagenotmoved' => 'Адпаведная старонка абмеркаваньня <strong>не</strong> перанесеная.',
+'templatesused' => 'На гэтай старонцы выкарыстаныя наступныя шаблёны:',
+'textboxsize' => 'Рэдагаваньне',
+'thisisdeleted' => 'Праглядзець ці аднавіць $1?',
+'thumbnail-more' => 'Павялічыць',
+'thursday' => 'чацьвер',
+'timezonelegend' => 'Часавы пояс',
+'toc' => 'Зьмест',
+'tog-editsection' => 'Дазволіць рэдагаваньне асобных сэкцыяў па спасылках [рэдагаваць]',
+'tog-editwidth' => 'Поле рэдагаваньня ў поўную шырыню',
+'tog-externaleditor' => 'Па змоўчаньні выкарыстоўваць зьнешні рэдактар',
+'tog-fancysig' => 'Просты подпіс (без аўтаматычнай спасылкі)',
+'tog-hideminor' => 'Хаваць дробныя зьмены ў сьпісе апошніх зьменаў',
+'tog-minordefault' => 'Па змоўчаньні пазначаць усе зьмены дробнымі',
+'tog-nocache' => 'Адключыць кэшаваньне старонак',
+'tog-numberheadings' => 'Аўтаматычная нумарацыя загалоўкаў',
+'tog-previewonfirst' => 'Папярэдні прагляд пры першым рэдагаваньні',
+'tog-rememberpassword' => 'Запомніць мяне на гэтым кампутары',
+'tog-showtoc' => 'Паказваць зьмест (для старонак з колькасьцю сэкцый болей за 3)',
+'tog-showtoolbar' => 'Паказваць панэль інструмэнтаў рэдагаваньня (патрабуе JavaScript)',
+'tog-underline' => 'Падкрэсьліваць спасылкі:',
+'tog-usenewrc' => 'Удасканалены сьпіс апошніх зьменаў (патрабуе JavaScript)',
+'toolbox' => 'Інструмэнты',
+'tooltip-diff' => 'Паказаць зробленыя Вамі зьмены ў тэксьце. [alt-v]',
+'tooltip-minoredit' => 'Пазначыць гэтую зьмену як дробную [alt-i]',
+'tooltip-preview' => 'Праглядзець Вашы зьмены. Калі ласка, выкарыстоўвайце гэтую магчымасьць перад тым, як захаваць старонку! [alt-p]',
+'tooltip-save' => 'Захаваць Вашы зьмены [alt-s]',
+'tooltip-watch' => 'Дадаць гэтую старонку ў Ваш сьпіс назіраньня [alt-w]',
+'tuesday' => 'аўторак',
+'uid' => 'ID удзельніка/удзельніцы:',
+'uncategorizedcategories' => 'Некатэгарызаваныя катэгорыі',
+'uncategorizedimages' => 'Некатэгарызаваныя файлы',
+'uncategorizedpages' => 'Некатэгарызаваныя старонкі',
+'undelete' => 'Прагляд выдаленых старонак',
+'undeletecomment' => 'Камэнтар:',
+'underline-always' => 'Заўсёды',
+'underline-never' => 'Ніколі',
+'unit-pixel' => 'пкс',
+'unprotect' => 'зьняць абарону',
+'unusedcategories' => 'Катэгорыі, якія не выкарыстоўваюцца',
+'unusedimages' => 'Файлы, якія не выкарыстоўваюцца',
+'unusedtemplates' => 'Шаблёны, якія не выкарыстоўваюцца',
+'unusedtemplateswlh' => 'іншыя спасылкі',
+'unwatch' => 'Не назіраць',
+'unwatchedpages' => 'Старонкі, за якімі ніхто не назірае',
+'unwatchthispage' => 'Перастаць назіраць',
+'upload' => 'Загрузіць файл',
+'uploadbtn' => 'Загрузіць файл',
+'uploadedfiles' => 'Загружаныя файлы',
+'uploadedimage' => 'загружаная «[[$1]]»',
+'uploadlog' => 'журнал загрузак',
+'uploadlogpage' => 'Журнал загрузак',
+'uploadlogpagetext' => 'Сьпіс апошніх загружаных файлаў.',
+'uploadtext' => "'''Перад тым, як загрузіць файл:'''
+
+* Азнаёмцеся з '''[[{{ns:project}}:Правілы выкарыстаньня файлаў|правіламі выкарыстаньня файлаў]]'''.
+* Праверце з дапамогай '''[[Special:Imagelist|сьпісу файлаў]]''', ці не загружаны гэты файл з іншай назвай.
+* Выкарыстоўвайце наступныя '''фарматы''': [[JPG]] — для фотаздымкаў; [[GIF]] — для анімацыі; [[PNG]] — для іншых выяваў; [[OGG]] — для аўдыёфайлаў.
+* Давайце файлам '''зразумелыя назвы''', якія адлюстроўваюць іх зьмест. Напрыклад: ''Janka Kupala, 1910.jpg'' замест ''JK1.jpg''. Назву файла '''немагчыма''' зьмяніць пасьля загрузкі.
+* Пытайцеся '''дазволу''' на публікацыю фотаздымка ва ўсіх людзей, якія там прысутнічаюць.
+
+'''Пасьля таго, як выява загружаная:'''
+
+* '''Абавязкова''' дадайце:
+** '''дэталёвае апісаньне зьместу''';
+** '''крыніцу''': файл створаны Вамі; адсканаваны з кнігі ''X''; узяты з Інтэрнэт па адрасу ''Y'';
+** для файлаў, якія зроблены '''ня''' Вамі, укажыце, ці атрымалі Вы '''дазвол''' на выкарыстаньне гэтага файла ў {{GRAMMAR:месны|{{SITENAME}}}};
+** '''ліцэнзіі''', згодна ўмоваў якіх магчыма распаўсюджваць файл.
+* '''Выкарыстоўвайце файл''' у артыкуле(ах). Напрыклад: <code><nowiki>[[Выява:file.jpg]]</nowiki></code> ці <code><nowiki>[[Выява:file.jpg|міні|200пкс|Апісаньне]]</nowiki></code> — для выяваў; <code><nowiki>[[Мэдыя:file.ogg]]</nowiki></code> — для аўдыёфайлаў.",
+'uploadvirus' => 'Файл утрымлівае вірус! Падрабязнасьці: $1',
+'userexists' => 'Выбранае Вамі імя ўдзельніка/ўдзельніцы ўжо выкарыстоўваецца кімсьці іншым. Калі ласка, выберыце іншае імя.',
+'userlogin' => 'Стварыць рахунак ці ўвайсьці',
+'userlogout' => 'Выйсьці',
+'username' => 'Імя ўдзельніка/ўдзельніцы:',
+'userrights-user-editname' => 'Увядзіце імя ўдзельніка:',
+'userstats' => 'Статыстыка ўдзелу',
+'userstatstext' => "Колькасьць зарэгістраваных удзельнікаў і ўдзельніц: '''$1'''.
+
+Колькасьць адміністратараў і адміністратарак: '''$2''' (ці '''$4%'''). Падрабязнасьці глядзіце ў $3.",
+'version' => 'Вэрсія',
+'viewdeleted' => 'Паказаць $1?',
+'viewdeletedpage' => 'Паказаць выдаленыя старонкі',
+'viewpagelogs' => 'Паказаць журналы падзей для гэтай старонкі',
+'viewprevnext' => 'Паказаць ($1) ($2) ($3).',
+'viewsource' => 'Паказаць крыніцу',
+'viewsourcefor' => 'для $1',
+'viewtalkpage' => 'Паказаць абмеркаваньне',
+'wantedcategories' => 'Запатрабаваныя катэгорыі',
+'wantedpages' => 'Запатрабаваныя старонкі',
+'watch' => 'Назіраць',
+'watchlist' => 'Мой сьпіс назіраньня',
+'watchlistclearbutton' => 'Ачысьціць сьпіс назіраньня',
+'watchlistfor' => "(для '''$1''')",
+'watchthis' => 'Назіраць за гэтай старонкай',
+'watchthispage' => 'Назіраць за гэтай старонкай',
+'wednesday' => 'серада',
+'whatlinkshere' => 'Адкуль спасылаюцца на старонку',
+'whitelistacctitle' => 'Вам не дазволена ствараць рахунак',
+'wlhideshowbots' => '$1 праўкі робатаў',
+'wlhideshowown' => '$1 мае праўкі',
+'youhavenewmessages' => 'Вы маеце $1 ($2).',
+'youremail' => 'Адрас электроннай пошты *:',
+'yourlanguage' => 'Мова інтэрфэйсу:',
+'yourname' => 'Імя ўдзельніка/ўдзельніцы',
+'yournick' => 'Мянушка:',
+'yourpassword' => 'Пароль',
+'yourrealname' => 'Сапраўднае імя *:',
+'yourtext' => 'Ваш тэкст',
+);
+
+?>
diff --git a/languages/messages/MessagesBg.php b/languages/messages/MessagesBg.php
new file mode 100644
index 00000000..b46bdccc
--- /dev/null
+++ b/languages/messages/MessagesBg.php
@@ -0,0 +1,1379 @@
+<?php
+/** Bulgarian (Български)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+$namespaceNames = array(
+ NS_MEDIA => 'Медия',
+ NS_SPECIAL => 'Специални',
+ NS_MAIN => '',
+ NS_TALK => 'Беседа',
+ NS_USER => 'Потребител',
+ NS_USER_TALK => 'Потребител_беседа',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_беседа',
+ NS_IMAGE => 'Картинка',
+ NS_IMAGE_TALK => 'Картинка_беседа',
+ NS_MEDIAWIKI => 'МедияУики',
+ NS_MEDIAWIKI_TALK => 'МедияУики_беседа',
+ NS_TEMPLATE => 'Шаблон',
+ NS_TEMPLATE_TALK => 'Шаблон_беседа',
+ NS_HELP => 'Помощ',
+ NS_HELP_TALK => 'Помощ_беседа',
+ NS_CATEGORY => 'Категория',
+ NS_CATEGORY_TALK => 'Категория_беседа'
+);
+
+$quickbarSettings = array(
+ 'Без меню', 'Неподвижно вляво', 'Неподвижно вдясно', 'Плаващо вляво', 'Плаващо вдясно'
+);
+
+$skinNames = array(
+ 'standard' => 'Класика',
+ 'nostalgia' => 'Носталгия',
+ 'cologneblue' => 'Кьолнско синьо',
+ 'smarty' => 'Падингтън',
+ 'montparnasse' => 'Монпарнас',
+ 'davinci' => 'ДаВинчи',
+ 'mono' => 'Моно',
+ 'monobook' => 'Монобук',
+ 'myskin' => 'Мой облик',
+);
+
+$datePreferences = false;
+
+$bookstoreList = array(
+ 'books.bg' => 'http://www.books.bg/ISBN/$1',
+);
+
+$magicWords = array(
+# ID CASE SYNONYMS
+ 'redirect' => array( 0, '#redirect', '#пренасочване', '#виж' ),
+ 'notoc' => array( 0, '__NOTOC__', '__БЕЗСЪДЪРЖАНИЕ__' ),
+ 'forcetoc' => array( 0, '__FORCETOC__', '__СЪССЪДЪРЖАНИЕ__' ),
+ 'toc' => array( 0, '__TOC__', '__СЪДЪРЖАНИЕ__' ),
+ 'noeditsection' => array( 0, '__NOEDITSECTION__', '__БЕЗ_РЕДАКТИРАНЕ_НА_РАЗДЕЛИ__' ),
+ 'start' => array( 0, '__START__', '__НАЧАЛО__' ),
+ 'currentmonth' => array( 1, 'CURRENTMONTH', 'ТЕКУЩМЕСЕЦ' ),
+ 'currentmonthname' => array( 1, 'CURRENTMONTHNAME', 'ТЕКУЩМЕСЕЦИМЕ' ),
+ 'currentmonthnamegen' => array( 1, 'CURRENTMONTHNAMEGEN', 'ТЕКУЩМЕСЕЦИМЕРОД' ),
+ 'currentmonthabbrev' => array( 1, 'CURRENTMONTHABBREV', 'ТЕКУЩМЕСЕЦСЪКР' ),
+ 'currentday' => array( 1, 'CURRENTDAY', 'ТЕКУЩДЕН' ),
+ 'currentdayname' => array( 1, 'CURRENTDAYNAME', 'ТЕКУЩДЕНИМЕ' ),
+ 'currentyear' => array( 1, 'CURRENTYEAR', 'ТЕКУЩАГОДИНА' ),
+ 'currenttime' => array( 1, 'CURRENTTIME', 'ТЕКУЩОВРЕМЕ' ),
+ 'numberofarticles' => array( 1, 'NUMBEROFARTICLES', 'БРОЙСТАТИИ' ),
+ 'numberoffiles' => array( 1, 'NUMBEROFFILES', 'БРОЙФАЙЛОВЕ' ),
+ 'pagename' => array( 1, 'PAGENAME', 'СТРАНИЦА' ),
+ 'pagenamee' => array( 1, 'PAGENAMEE', 'СТРАНИЦАИ' ),
+ 'namespace' => array( 1, 'NAMESPACE', 'ИМЕННОПРОСТРАНСТВО' ),
+ 'subst' => array( 0, 'SUBST:', 'ЗАМЕСТ:' ),
+ 'msgnw' => array( 0, 'MSGNW:', 'СЪОБЩNW:' ),
+ 'end' => array( 0, '__END__', '__КРАЙ__' ),
+ 'img_thumbnail' => array( 1, 'thumbnail', 'thumb', 'мини' ),
+ 'img_manualthumb' => array( 1, 'thumbnail=$1', 'thumb=$1', 'мини=$1'),
+ 'img_right' => array( 1, 'right', 'вдясно', 'дясно', 'д' ),
+ 'img_left' => array( 1, 'left', 'вляво', 'ляво', 'л' ),
+ 'img_none' => array( 1, 'none', 'н' ),
+ 'img_width' => array( 1, '$1px', '$1пкс' , '$1п' ),
+ 'img_center' => array( 1, 'center', 'centre', 'център', 'центр', 'ц' ),
+ 'img_framed' => array( 1, 'framed', 'enframed', 'frame', 'рамка', 'врамка' ),
+ 'int' => array( 0, 'INT:' ),
+ 'sitename' => array( 1, 'SITENAME', 'ИМЕНАСАЙТА' ),
+ 'ns' => array( 0, 'NS:', 'ИП:' ),
+ 'localurl' => array( 0, 'LOCALURL:', 'ЛОКАЛЕНАДРЕС:' ),
+ 'localurle' => array( 0, 'LOCALURLE:', 'ЛОКАЛЕНАДРЕСИ:' ),
+ 'server' => array( 0, 'SERVER', 'СЪРВЪР' ),
+ 'servername' => array( 0, 'SERVERNAME', 'ИМЕНАСЪРВЪРА' ),
+ 'scriptpath' => array( 0, 'SCRIPTPATH', 'ПЪТДОСКРИПТА' ),
+ 'grammar' => array( 0, 'GRAMMAR:', 'ГРАМАТИКА:' ),
+ 'notitleconvert' => array( 0, '__NOTITLECONVERT__', '__NOTC__'),
+ 'nocontentconvert' => array( 0, '__NOCONTENTCONVERT__', '__NOCC__'),
+ 'currentweek' => array( 1, 'CURRENTWEEK', 'ТЕКУЩАСЕДМИЦА'),
+ 'currentdow' => array( 1, 'CURRENTDOW' ),
+ 'revisionid' => array( 1, 'REVISIONID' ),
+);
+
+$linkTrail = '/^([a-zабвгдежзийклмнопрстуфхцчшщъыьэюя]+)(.*)$/sDu';
+
+$separatorTransformTable = array(',' => "\xc2\xa0", '.' => ',' );
+
+$messages = array(
+
+# User toggles
+'tog-underline' => 'Подчертаване на препратките',
+'tog-highlightbroken' => 'Показване на невалидните препратки <a href="#" class="new">така</a> (алтернативно: така<a href="#" class="internal">?</a>)',
+'tog-justify' => 'Двустранно подравняване на абзаците',
+'tog-hideminor' => 'Скриване на малки редакции в последните промени',
+'tog-usenewrc' => 'Подобряване на последните промени (Javascript)',
+'tog-numberheadings' => 'Номериране на заглавията',
+'tog-showtoolbar' => 'Помощна лента за редактиране (Javascript)',
+'tog-editondblclick' => 'Редактиране при двойно щракване (Javascript)',
+'tog-editsection' =>'Възможност за редактиране на раздел чрез препратка [редактиране]',
+'tog-editsectiononrightclick' => 'Възможност за редактиране на раздел при щракване с десния бутон върху заглавие на раздел (Javascript)',
+'tog-showtoc' =>'Показване на съдържание (за страници с повече от три раздела)',
+'tog-rememberpassword' => 'Запомняне между сесиите',
+'tog-editwidth' => 'Максимална ширина на кутията за редактиране',
+'tog-watchdefault' => 'Добавяне на редактираните страници към списъка за наблюдение',
+'tog-minordefault' => 'Отбелязване на всички промени като малки по подразбиране',
+'tog-previewontop' => 'Показване на предварителния преглед преди текстовата кутия, а не след нея',
+'tog-previewonfirst' => 'Показване на предварителен преглед при първа редакция',
+'tog-nocache' => 'Без складиране на страниците',
+'tog-fancysig' => 'Без превръщане на подписа в препратка към потребителската страница',
+'tog-externaleditor' => 'Използване на външен редактор по подразбиране',
+'tog-externaldiff' => 'Използване на външна програма за разлики по подразбиране',
+
+'underline-always' => 'Винаги',
+'underline-never' => 'Никога',
+'underline-default' => 'Според настройките на браузъра',
+'skinpreview' => '(Предварителен преглед)',
+
+# Dates
+'sunday' => 'неделя',
+'monday' => 'понеделник',
+'tuesday' => 'вторник',
+'wednesday' => 'сряда',
+'thursday' => 'четвъртък',
+'friday' => 'петък',
+'saturday' => 'събота',
+'january' => 'януари',
+'february' => 'февруари',
+'march' => 'март',
+'april' => 'април',
+'may_long' => 'май',
+'june' => 'юни',
+'july' => 'юли',
+'august' => 'август',
+'september' => 'септември',
+'october' => 'октомври',
+'november' => 'ноември',
+'december' => 'декември',
+'jan' => 'яну',
+'feb' => 'фев',
+'mar' => 'мар',
+'apr' => 'апр',
+'may' => 'май',
+'jun' => 'юни',
+'jul' => 'юли',
+'aug' => 'авг',
+'sep' => 'сеп',
+'oct' => 'окт',
+'nov' => 'ное',
+'dec' => 'дек',
+
+# Bits of text used by many pages:
+#
+'categories' => 'Категории',
+'category_header' => 'Страници в категория „$1“',
+'subcategories' => 'Подкатегории',
+'linkprefix' => '/^(.*?)([a-zA-Z\x80-\xff]+)$/sD',
+'mainpage' => 'Начална страница',
+'mainpagetext' => 'Уики-системата беше успешно инсталирана.',
+'mainpagedocfooter' => 'Моля, разгледайте [http://meta.wikimedia.org/wiki/MediaWiki_i18n документацията] и [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide ръководството] за подробна информация относно МедияУики.
+
+Актуална версия на българския езиков файл можете да откриете на [http://meta.wikimedia.org/wiki/LanguageBg.php Мета].',
+'portal' => 'Портал за общността',
+'portal-url' => 'Project:Портал',
+'about' => 'За {{SITENAME}}',
+'aboutsite' => 'За {{SITENAME}}',
+'aboutpage' => 'Project:За {{SITENAME}}',
+'article' => 'Страница',
+'help' => 'Помощ',
+'helppage' => 'Help:Съдържание',
+'bugreports' => 'Съобщения за грешки',
+'bugreportspage' => 'Project:Съобщения за грешки',
+'sitesupport' => 'Дарения',
+'sitesupport-url' => 'Project:Подкрепа',
+'faq' => 'ЧЗВ',
+'faqpage' => 'Project:ЧЗВ',
+'edithelp' => 'Помощ при редактиране',
+'newwindow' => '(отваря се в нов прозорец)',
+'edithelppage' => 'Help:Как_се_редактират_страници',
+'cancel' => 'Отказ',
+'qbfind' => 'Търсене',
+'qbbrowse' => 'Избор',
+'qbedit' => 'Редактиране',
+'qbpageoptions' => 'Настройки за страницата',
+'qbpageinfo' => 'Информация за страницата',
+'qbmyoptions' => 'Моите настройки',
+'qbspecialpages' => 'Специални страници',
+'moredotdotdot' => 'Още...',
+'mypage' => 'Моята страница',
+'mytalk' => 'Моята беседа',
+'anontalk' => 'Беседа за адреса',
+'navigation' => 'Навигация',
+
+# Metadata in edit box
+'metadata' => '<b>Метаданни</b> (<a href="$1">разяснение</a>)',
+
+'currentevents' => 'Текущи събития',
+'currentevents-url' => 'Текущи събития',
+'disclaimers' => 'Условия за ползване',
+'disclaimerpage' => 'Project:Условия за ползване',
+'errorpagetitle' => 'Грешка',
+'returnto' => 'Обратно към $1.',
+'tagline' => 'от {{SITENAME}}',
+'whatlinkshere' => 'Какво сочи насам',
+'help' => 'Помощ',
+'search' => 'Търсене',
+'searchbutton' => 'Търсене',
+'go' => 'Отваряне',
+'searcharticle' => 'Отваряне',
+'history' => 'История',
+'history_short' => 'История',
+'updatedmarker' => 'има промяна (от последното ми влизане)',
+'info_short' => 'Информация',
+'printableversion' => 'Версия за печат',
+'permalink' => 'Постоянна препратка',
+'print' => 'Печат',
+'edit' => 'Редактиране',
+'editthispage' => 'Редактиране',
+'delete' => 'Изтриване',
+'deletethispage' => 'Изтриване',
+'undelete_short' => 'Възстановяване на $1 редакции',
+'protect' => 'Защита',
+'protectthispage' => 'Защита',
+'unprotect' => 'Сваляне на защитата',
+'unprotectthispage' => 'Сваляне на защитата',
+'newpage' => 'Нова страница',
+'talkpage' => 'Дискусионна страница',
+'specialpage' => 'Специална страница',
+'personaltools' => 'Лични инструменти',
+'postcomment' => 'Оставяне на съобщение',
+'articlepage' => 'Преглед на страница',
+'talk' => 'Беседа',
+'views' => 'Прегледи',
+'toolbox' => 'Инструменти',
+'userpage' => 'Потребителска страница',
+'projectpage' => 'Основна страница',
+'imagepage' => 'Преглед на файл',
+'viewtalkpage' => 'Преглед на беседа',
+'otherlanguages' => 'На други езици',
+'redirectedfrom' => '(пренасочване от $1)',
+'lastmodifiedat' => 'Последна промяна на страницата: $2, $1.',
+'viewcount' => 'Страницата е била преглеждана $1 пъти.',
+'copyright' => 'Съдържанието е достъпно при условията на $1.',
+'protectedpage' => 'Защитена страница',
+'badaccess' => 'Грешка при достъп', # Permission error
+'versionrequired' => 'Изисква се версия $1 на МедияУики',
+'versionrequiredtext' => 'За да използвате тази страница, е необходима версия $1 на МедияУики. Вижте [[Special:Version]].',
+'nbytes' => '$1 байта',
+'ok' => 'Добре',
+'retrievedfrom' => 'Взето от „$1“.',
+'newmessageslink' => 'нови съобщения',
+'editsection' => 'редактиране',
+'editold' => 'редактиране',
+'toc' => 'Съдържание',
+'showtoc' => 'показване',
+'hidetoc' => 'скриване',
+'thisisdeleted' => 'Преглед или възстановяване на $1?',
+'viewdeleted' => 'Преглед на $1?',
+'restorelink' => '$1 изтрити редакции',
+'feedlinks' => 'Feed:',
+
+# Short words for each namespace, by default used in the 'article' tab in monobook
+'nstab-main' => 'Страница',
+'nstab-user' => 'Потребител',
+'nstab-media' => 'Медия',
+'nstab-special' => 'Специална страница',
+'nstab-project' => 'Проект',
+'nstab-image' => 'Файл',
+'nstab-mediawiki' => 'Съобщение',
+'nstab-template' => 'Шаблон',
+'nstab-help' => 'Помощ',
+'nstab-category' => 'Категория',
+
+# Main script and global functions
+#
+'nosuchaction' => 'Няма такова действие',
+'nosuchactiontext' => 'Действието, указано от мрежовия адрес, не се разпознава от системата.',
+'nosuchspecialpage' => 'Няма такава специална страница',
+'nospecialpagetext' => 'Отправихте заявка за невалидна [[Special:Specialpages|специална страница]].',
+
+# General errors
+#
+'error' => 'Грешка',
+'databaseerror' => 'Грешка при работа с базата от данни',
+'dberrortext' => 'Възникна синтактична грешка при заявка към базата от данни.
+Последната заявка към базата от данни беше:
+<blockquote><tt>$1</tt></blockquote>
+при функцията „<tt>$2</tt>“.
+MySQL дава грешка „<tt>$3: $4</tt>“.',
+'dberrortextcl' => 'Възникна синтактична грешка при заявка към базата от данни.
+Последната заявка беше:
+„$1“
+при функцията „$2“.
+MySQL дава грешка „$3: $4“.',
+'noconnect' => '<p>В момента има технически трудности и не може да се осъществи връзка с базата от данни.</p>
+<p>$1</p>
+<p>Моля, опитайте отново по-късно. Извиняваме се за неудобството.</p>',
+'nodb' => 'Неуспех при избирането на база от данни $1',
+'cachederror' => 'Показано е складирано копие на желаната страница, което евентуално може да е остаряло.',
+'laggedslavemode' => 'Внимание: Страницата може да не съдържа последните обновявания.',
+'readonly' => 'Базата от данни е затворена за промени',
+'enterlockreason' => 'Посочете причина за затварянето, като дадете и приблизителна оценка кога базата от данни ще бъде отново отворена',
+'readonlytext' => 'Базата от данни е временно затворена за промени – вероятно за рутинна поддръжка, след която ще бъде отново на разположение.
+Администраторът, който я е затворил, дава следното обяснение:
+$1',
+'missingarticle' => 'Текстът на страницата „$1“ не беше намерен в базата от данни.
+
+Това обикновено е причинено от последване на остаряла разлика или препратка от историята към изтрита страница.
+
+Ако не това е причината, е възможно да сте открили грешка в системата.
+Моля, съобщете за това на администратор, като включите и името на страницата.',
+'readonly_lag' => 'Базата от данни беше автоматично заключена, докато подчинените сървъри успеят да се съгласуват с основния сървър.',
+'internalerror' => 'Вътрешна грешка',
+'filecopyerror' => 'Файлът „$1“ не можа да бъде копиран като „$2“.',
+'filerenameerror' => 'Файлът „$1“ не можа да бъде преименуван на „$2“.',
+'filedeleteerror' => 'Файлът „$1“ не можа да бъде изтрит.',
+'filenotfound' => 'Файлът „$1“ не беше намерен.',
+'unexpected' => 'Неочаквана стойност: „$1“=„$2“.',
+'formerror' => 'Възникна грешка при изпращане на формуляра',
+'badarticleerror' => 'Действието не може да се изпълни върху страницата.',
+'cannotdelete' => 'Указаната страница или файл не можа да бъде изтрит(а). Възможно е вече да е изтрит(а) от някой друг.',
+'badtitle' => 'Невалидно заглавие',
+'badtitletext' => 'Желаното заглавие на страница е невалидно, празно или неправилна препратка към друго уики.',
+'perfdisabled' => 'Съжаляваме! Това свойство е временно изключено,
+защото забавя базата от данни дотам, че никой не може да използва уикито.',
+'perfdisabledsub' => 'Съхранен екземпляр от $1:',
+'perfcached' => 'Следните данни са извлечени от склада и затова може да не отговарят на текущото състояние:',
+'wrong_wfQuery_params' => 'Невалидни аргументи за wfQuery()<br />
+Функция: $1<br />
+Заявка: $2',
+'viewsource' => 'Защитена страница',
+'protectedtext' => 'Страницата е затворена за промени. Съществуват няколко причини това да е така, моля, вижте [[Project:Защитена_страница]].
+
+Можете да прегледате и копирате изходния код на страницата:',
+'sqlhidden' => '(Заявка на SQL — скрита)',
+
+# Login and logout pages
+#
+'logouttitle' => 'Излизане на потребител',
+'logouttext' => 'Излязохте от системата.
+
+Можете да продължите да използвате {{SITENAME}} анонимно или да влезете отново като друг потребител. Обърнете внимание, че някои страници все още ще се показват така, сякаш сте влезли, докато не изтриете кеш-паметта на браузъра.',
+
+'welcomecreation' => '== Добре дошли, $1! ==
+
+Вашата сметка беше успешно открита. Сега можете да промените настройките на {{SITENAME}} по Ваш вкус.',
+
+'loginpagetitle' => 'Влизане в системата',
+'yourname' => 'Потребителско име',
+'yourpassword' => 'Парола',
+'yourpasswordagain' => 'Въведете повторно парола',
+'remembermypassword' => 'Запомняне на паролата',
+'yourdomainname' => 'Домейн',
+# TODO
+'externaldberror' => 'There was either an external authentication database error or you are not allowed to update your external account.',
+'loginproblem' => '<b>Имаше проблем с влизането Ви.</b><br />Опитайте отново!',
+'alreadyloggedin' => '<strong>$1, вече сте влезли в системата!</strong>',
+'login' => 'Влизане',
+'loginprompt' => "За влизане в {{SITENAME}} е необходимо да въведете потребителското си име и парола и да натиснете бутона '''Влизане''', като за да бъде това успешно, бисквитките (cookies) трябва да са разрешени в браузъра Ви.
+
+Ако все още не сте регистрирани (нямате открита сметка), лесно можете да сторите това, като просто въведете желаните от Вас потребителско име и парола (двукратно) и щракнете върху '''Регистриране'''.",
+'userlogin' => 'Регистриране или влизане',
+'logout' => 'Излизане',
+'userlogout' => 'Излизане',
+'notloggedin' => 'Не сте влезли',
+'createaccount' => 'Регистриране',
+'createaccountmail' => 'с писмо по електронната поща',
+'badretype' => 'Въведените пароли не съвпадат.',
+'userexists' => 'Въведеното потребителско име вече се използва. Моля, изберете друго име.',
+'youremail' => 'Е-поща *',
+'yourrealname' => 'Истинско име *',
+'yourlanguage' => 'Език',
+'yourvariant' => 'Вариант',
+'yournick' => 'Псевдоним (за подписи чрез ~~~~)',
+'email' => 'Е-поща',
+'prefs-help-email' => '* <strong>Електронна поща</strong> <em>(незадължително)</em>: Позволява на хората да се свържат с Вас, без да се налага да им съобщавате адреса си, а също може да се използва, за да Ви се изпрати нова парола, ако случайно забравите сегашната си.',
+# TODO
+'prefs-help-email-enotif' => 'This address is also used to send you email notifications if you enabled the options.',
+'prefs-help-realname' => '* <strong>Истинско име</strong> <em>(незадължително)</em>: Ако го посочите, на него ще бъдат приписани Вашите приноси.',
+'loginerror' => 'Грешка при влизане',
+'nocookiesnew' => 'Потребителската сметка беше създадена, но все още не сте влезли. {{SITENAME}} използва бисквитки при влизане на потребителите. Моля, разрешете бисквитките във Вашия браузър, тъй като те са забранени, и след това влезте с потребителското си име и парола.',
+'nocookieslogin' => '{{SITENAME}} използва бисквитки (cookies) за запис на влизанията. Моля, разрешете бисквитките във Вашия браузър, тъй като те са забранени, и опитайте отново.',
+'noname' => 'Не указахте валидно потребителско име.',
+'loginsuccesstitle' => 'Успешно влизане',
+'loginsuccess' => 'Влязохте в {{SITENAME}} като „$1“.',
+'nosuchuser' => 'Няма потребител с името „$1“.
+Проверете изписването или се регистрирайте, използвайки долния формуляр.',
+'nosuchusershort' => 'Няма потребител с името „$1“. Проверете изписването.',
+'wrongpassword' => 'Въведената парола е невалидна (или липсва). Моля, опитайте отново.',
+'mailmypassword' => 'Изпращане на нова парола',
+'passwordremindertitle' => 'Напомняне за парола от {{SITENAME}}',
+'passwordremindertext' => 'Някой (най-вероятно Вие, от IP-адрес $1) помоли да Ви изпратим нова парола за влизане в {{SITENAME}}.
+Паролата за потребителя „$2“ е „$3“.
+Сега би трябвало да влезете в системата и да смените паролата си.',
+'noemail' => 'Няма записана електронна поща за потребителя „$1“.',
+'passwordsent' => 'Нова парола беше изпратена на електронната поща на „$1“.
+Моля, влезте отново, след като я получите.',
+# TODO
+'eauthentsent' => 'A confirmation email has been sent to the nominated email address.
+Before any other mail is sent to the account, you will have to follow the instructions in the email, to confirm that the account is actually yours.',
+'mailerror' => 'Грешка при изпращане на писмо: $1',
+'acct_creation_throttle_hit' => 'Съжаляваме, създали сте вече $1 сметки и нямате право на повече.',
+# TODO
+'emailauthenticated' => 'Your email address was authenticated on $1.',
+'emailnotauthenticated' => 'Your email address is not yet authenticated. No email will be sent for any of the following features.',
+'noemailprefs' => '<strong>No email address has been specified</strong>, the following features will not work.',
+'emailconfirmlink' => 'Confirm your e-mail address',
+'invalidemailaddress' => 'The email address cannot be accepted as it appears to have an invalid format. Please enter a well-formatted address or empty that field.',
+
+# Edit page toolbar
+'bold_sample' => 'Получер текст',
+'bold_tip' => 'Получер (удебелен) текст',
+'italic_sample' => 'Курсивен текст',
+'italic_tip' => 'Курсивен (наклонен) текст',
+'link_sample' => 'Име на препратка',
+'link_tip' => 'Вътрешна препратка',
+'extlink_sample' => 'http://www.primer.com Име на препратката',
+'extlink_tip' => 'Външна препратка (не забравяйте http:// отпред)',
+'headline_sample' => 'Заглавен текст',
+'headline_tip' => 'Заглавие',
+'math_sample' => 'Тук въведете формулата',
+'math_tip' => 'Математическа формула (LaTeX)',
+'nowiki_sample' => 'Тук въведете текст',
+'nowiki_tip' => 'Пренебрегване на форматиращите команди',
+'image_sample' => 'Пример.jpg',
+'image_tip' => 'Вмъкване на картинка',
+'media_sample' => 'Пример.ogg',
+'media_tip' => 'Препратка към файл',
+'sig_tip' => 'Вашият подпис заедно с времева отметка',
+'hr_tip' => 'Хоризонтална линия (използвайте пестеливо)',
+
+# Edit pages
+#
+'summary' => 'Резюме',
+'subject' => 'Тема/заглавие',
+'minoredit' => 'Това е малка промяна.',
+'watchthis' => 'Наблюдаване на страницата',
+'savearticle' => 'Съхранение',
+'preview' => 'Предварителен преглед',
+'showpreview' => 'Предварителен преглед',
+'showdiff' => 'Показване на промените',
+'blockedtitle' => 'Потребителят е блокиран',
+'blockedtext' => "Вашето потребителско име (или IP-адрес) е блокирано от $1.
+Причината за това е:<br />''$2''<p>Можете да се свържете с $1 или с някой от останалите [[Project:Администратори|администратори]], за да обсъдите това.
+
+Можете да използвате услугата „'''Пращане писмо на потребителя'''“ единствено, ако сте посочили валидна електронна поща в [[Special:Preferences|настройките]] си.
+
+Вашият IP-адрес е $3. Моля, вмъквайте този адрес във всяко питане, което правите.",
+'whitelistedittitle' => 'Необходимо е да влезете, за да може да редактирате',
+'whitelistedittext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да редактирате страници.',
+'whitelistreadtitle' => 'Необходимо е да влезете, за да може да четете страници',
+'whitelistreadtext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да четете страници.',
+'whitelistacctitle' => 'Не ви е позволено да създавате сметка',
+'whitelistacctext' => 'За да Ви бъде позволено създаването на сметки, трябва да [[Special:Userlogin|влезете]] и да имате подходящото разрешение.',
+'loginreqtitle' => 'Изисква се влизане',
+'loginreqlink' => 'влизане',
+'loginreqpagetext' => 'Необходимо е да $1, за да може да разглеждате други страници.',
+'accmailtitle' => 'Паролата беше изпратена.',
+'accmailtext' => 'Паролата за „$1“ беше изпратена на $2.',
+'newarticle' => '(нова)',
+'newarticletext' => "<div style=\"font-size:small; color:#033; border:thin solid #aaa; padding:.4em\">Последвали сте препратка към страница, която все още не съществува.
+За да я създадете, започнете да пишете в долната текстова кутия
+(вижте '''[[Project:Помощ|помощната страница]]''' за повече информация).
+Ако сте дошли тук погрешка, просто натиснете '''бутона за връщане''' на Вашия браузър.
+
+Вашата добавка ще бъде видима '''веднага''' след съхранението, затова ако просто искате да изпробвате как работят нещата, използвайте нашия '''[[Project:Пясъчник|пясъчник]]'''.</div>",
+'anontalkpagetext' => "----
+''Това е дискусионната страница на анонимен потребител, който все още няма сметка или не я използва. Затова се налага да използваме IP-адрес, за да го/я идентифицираме. Такъв адрес може да се споделя от няколко потребители.''
+
+''Ако сте анонимен потребител и мислите, че тези неуместни коментари са отправени към Вас, моля [[Special:Userlogin|регистрирайте се или влезте в системата]], за да избегнете евентуално бъдещо объркване с други анонимни потребители.''",
+'noarticletext' => "(Тази страница все още не съществува. Можете да я създадете, като щракнете на '''Редактиране'''.)",
+'clearyourcache' => "'''Бележка:''' След съхранението е необходимо да изтриете кеша на браузъра, за да видите промените:
+'''Mozilla / Firefox / Safari:''' натиснете бутона ''Shift'' и щракнете върху ''Презареждане'' (''Reload''), или изберете клавишната комбинация ''Ctrl-Shift-R'' (''Cmd-Shift-R'' за Apple Mac);
+'''IE:''' натиснете ''Ctrl'' и щракнете върху ''Refresh'', или клавишната комбинация ''CTRL-F5'';
+'''Konqueror:''' щракнете върху ''Презареждане'' или натиснете ''F5'';
+'''Opera:''' вероятно е необходимо да изчистите кеша през менюто ''Tools&rarr;Preferences''.",
+'usercssjsyoucanpreview' => '<strong>Съвет:</strong> Използвайте бутона „Предварителен преглед“, за да изпробвате новия код на css/js преди съхранението.',
+'usercsspreview' => "'''Не забравяйте, че това е само предварителен преглед на кода на CSS, страницата все още не е съхранена!'''",
+'userjspreview' => "'''Не забравяйте, че това е само изпробване/предварителен преглед на кода на Javascript, страницата все още не е съхранена!'''",
+'updated' => '(актуализирана)',
+'note' => '<strong>Забележка:</strong>',
+'previewnote' => 'Не забравяйте, че това е само предварителен преглед и страницата все още не е съхранена!',
+'previewconflict' => 'Този предварителен преглед отразява текста в горната текстова кутия така, както би се показал, ако съхраните.',
+'editing' => 'Редактиране на „$1“',
+'editinguser' => 'Редактиране на „$1“',
+'editingsection' => 'Редактиране на „$1“ (раздел)',
+'editingcomment' => 'Редактиране на „$1“ (нов раздел)',
+'editconflict' => 'Различна редакция: $1',
+'explainconflict' => 'Някой друг вече е променил тази страница, откакто започнахте да я редактирате.
+Горната текстова кутия съдържа текущия текст на страницата без Вашите промени, които са показани в долната кутия. За да бъдат и те съхранени, е необходимо ръчно да ги преместите в горното поле, тъй като <b>единствено</b> текстът в него ще бъде съхранен при натискането на бутона „Съхранение“.<br />',
+'yourtext' => 'Вашият текст',
+'storedversion' => 'Съхранена версия',
+'nonunicodebrowser' => '<strong>ВНИМАНИЕ: Браузърът Ви не поддържа Уникод. За да можете спокойно да редактирате страници, всички символи, невключени в ASCII-таблицата, ще бъдат заменени с шестнадесетични кодове.</strong>',
+'editingold' => '<strong>ВНИМАНИЕ: Редактирате остаряла версия на страницата.
+Ако съхраните, всякакви промени, направени след тази версия, ще бъдат изгубени.</strong>',
+'yourdiff' => 'Разлики',
+'copyrightwarning' => '<div style="color:black; background-color:#FFFFEE; border:thin solid #999; padding:0.5em">
+Моля, обърнете внимание на това, че всички приноси към {{SITENAME}} се публикуват при условията на $2 (за подробности вижте $1).
+Ако не сте съгласни Вашата писмена работа да бъде променяна и разпространявана без ограничения, не я публикувайте.<br />
+
+Също потвърждавате, че <strong>Вие</strong> сте написали материала или сте използвали <strong>свободни ресурси</strong> – <em>обществено достояние</em> или друг свободен източник.
+Ако сте ползвали чужди материали, за които имате разрешение, непременно посочете източника.
+
+<div style="color:#EE0000; background-color:#FFFFEE; font-weight:bold; font-size:1.1em; font-variant:small-caps; text-align:center;">Не публикувайте произведения с авторски права без разрешение!</div>
+</div>',
+'copyrightwarning2' => '<div style="color:black; background-color:#FFFFEE; border:thin solid #999; padding:0.5em">
+Моля, обърнете внимание на това, че всички приноси към {{SITENAME}} могат да бъдат редактирани, променяни или премахвани от останалите сътрудници.
+Ако не сте съгласни Вашата писмена работа да бъде променяна без ограничения, не я публикувайте.<br />
+Също потвърждавате, че <strong>Вие</strong> сте написали материала или сте използвали <strong>свободни ресурси</strong> – <em>обществено достояние</em> или друг свободен източник.
+Ако сте ползвали чужди материали, за които имате разрешение, непременно посочете източника.
+
+<div style="color:#ee0000; background-color:#ffffee; font-weight:bold; font-size:1.1em; font-variant:small-caps; text-align:center;">Не публикувайте произведения с авторски права без разрешение!</div>
+</div>',
+'longpagewarning' => '<strong>ВНИМАНИЕ: Страницата има размер $1 килобайта; някои браузъри могат да имат проблеми при редактиране на страници по-големи от 32 КБ.
+Моля, обмислете дали страницата не може да се раздели на няколко по-малки части.</strong>',
+'readonlywarning' => '<strong>ВНИМАНИЕ: Базата от данни беше затворена за поддръжка, затова в момента промените Ви не могат да бъдат съхранени. Ако желаете, можете да съхраните страницата като текстов файл и да се опитате да я публикувате по-късно.</strong>',
+'protectedpagewarning' => '<strong>ВНИМАНИЕ: Страницата е защитена и само администратори могат да я редактират.
+Моля, следвайте [[Project:Защитена страница|указанията за защитена страница]].</strong>',
+'templatesused' => 'Шаблони, използвани на страницата:',
+
+# History pages
+#
+'revhistory' => 'История на версиите',
+'nohistory' => 'Няма редакционна история за тази страница.',
+'revnotfound' => 'Версията не е открита',
+'revnotfoundtext' => 'Желаната стара версия на страницата не беше открита.
+Моля, проверете адреса, който използвахте за достъп до страницата.',
+'loadhist' => 'Зареждане история на страницата',
+'currentrev' => 'Текуща версия',
+'revisionasof' => 'Версия от $1',
+'previousrevision' => '←По-стара версия',
+'nextrevision' => 'По-нова версия→',
+'currentrevisionlink' => 'преглед на текущата версия',
+'cur' => 'тек',
+'next' => 'след',
+'last' => 'посл',
+'orig' => 'ориг',
+'histlegend' => '<i>Разлики:</i> Изберете версиите, които желаете да сравните, чрез превключвателите срещу тях и натиснете &lt;Enter&gt; или бутона за сравнение.<br />
+<i>Легенда:</i> (<b>тек</b>) = разлика с текущата версия, (<b>посл</b>) = разлика с предишната версия, <b>м</b>&nbsp;=&nbsp;малка промяна',
+'deletedrev' => '[изтрита]',
+'histfirst' => 'Първи',
+'histlast' => 'Последни',
+# Diffs
+#
+'difference' => '(Разлики между версиите)',
+'loadingrev' => 'зареждане на версии за функцията <em>разл</em>',
+'lineno' => 'Ред $1:',
+'editcurrent' => 'Редактиране на текущата версия на страницата',
+'selectnewerversionfordiff' => 'Избиране на нова версия за сравнение',
+'selectolderversionfordiff' => 'Избиране на стара версия за сравнение',
+'compareselectedversions' => 'Сравнение на избраните версии',
+
+# Search results
+#
+'searchresults' => 'Резултати от търсенето',
+'searchresulttext' => 'За повече информация относно {{SITENAME}}, вижте [[Project:Търсене|Търсене в {{SITENAME}}]].',
+'searchsubtitle' => 'За заявка „[[:$1]]“',
+'searchsubtitleinvalid' => 'За заявка „$1“',
+'badquery' => 'Лошо формулирана заявка за търсене',
+'badquerytext' => 'Вашата заявка не можа да бъде обработена.
+Вероятно сте се опитали да търсите дума с по-малко от три букви, което все още не се поддържа.
+Възможно е и да сте сгрешили в изписването на израза, например: „риба и и везни“.
+Моля, опитайте с нова заявка.',
+'matchtotals' => 'Заявката „$1“ отговаря на $2 заглавия на страници и на текста на $3 страници.',
+'noexactmatch' => 'В {{SITENAME}} не съществува страница с това заглавие. Можете да я \'\'\'[[:$1|създадете]]\'\'\'.',
+'titlematches' => 'Съответствия в заглавията на страници',
+'notitlematches' => 'Няма съответствия в заглавията на страници',
+'textmatches' => 'Съответствия в текста на страници',
+'notextmatches' => 'Няма съответствия в текста на страници',
+'prevn' => 'предишни $1',
+'nextn' => 'следващи $1',
+'viewprevnext' => 'Преглед ($1) ($2) ($3).',
+'showingresults' => 'Показване на до <b>$1</b> резултата, като се започва от номер <b>$2</b>.',
+'showingresultsnum' => 'Показване на <b>$3</b> резултата, като се започва от номер <b>$2</b>.',
+'nonefound' => "'''Забележка''': Безрезултатните търсения често са причинени от това, че се търсят основни думи като „има“ или „от“, които не се индексират, или от това, че се търсят повече от една думи, тъй като се показват само страници, съдържащи всички зададени понятия.",
+'powersearch' => 'Търсене',
+'powersearchtext' => '
+Търсене в именни пространства:<br />
+$1<br />
+$2 Показване на пренасочвания &nbsp; Търсене на $3 $4',
+'searchdisabled' => 'Търсенето в {{SITENAME}} е временно изключено поради голямото натоварване на сървъра. Междувременно можете да търсите чрез Google. Обърнете внимание обаче, че е възможно съхранените при тях страници да са остарели.',
+'blanknamespace' => '(Основно)',
+
+# Preferences page
+#
+'preferences' => 'Настройки',
+'prefsnologin' => 'Не сте влезли',
+'prefsnologintext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да променяте потребителските си настройки.',
+'prefsreset' => 'Стандартните настройки бяха възстановени.',
+'qbsettings' => 'Лента за бърз избор',
+'changepassword' => 'Смяна на парола',
+'skin' => 'Облик',
+'math' => 'Математически формули',
+'dateformat' => 'Формат на датата',
+'math_failure' => 'Неуспех при разбора',
+'math_unknown_error' => 'непозната грешка',
+'math_unknown_function' => 'непозната функция',
+'math_lexing_error' => 'лексикална грешка',
+'math_syntax_error' => 'синтактична грешка',
+'math_image_error' => 'Превръщането към PNG не сполучи. Проверете дали latex, dvips и gs са правилно инсталирани.',
+'math_bad_tmpdir' => 'Невъзможно е писането или създаването на временна папка за математическите операции',
+'math_bad_output' => 'Невъзможно е писането или създаването на изходяща папка за математическите операции',
+'math_notexvc' => 'Липсва изпълнимият файл на texvc. Моля, прегледайте math/README за информация относно конфигурирането.',
+'prefs-personal' => 'Потребителски данни',
+'prefs-rc' => 'Последни промени и мъничета',
+'prefs-misc' => 'Други настройки',
+'saveprefs' => 'Съхранение',
+'resetprefs' => 'Възстановяване на стандартните настройки',
+'oldpassword' => 'Стара парола',
+'newpassword' => 'Нова парола',
+'retypenew' => 'Нова парола повторно',
+'textboxsize' => 'Редактиране',
+'rows' => 'Редове',
+'columns' => 'Колони',
+'searchresultshead' => 'Търсене',
+'resultsperpage' => 'Резултати на страница',
+'contextlines' => 'Редове за резултат',
+'contextchars' => 'Знаци от контекста на ред',
+'stubthreshold' => 'Определяне като къси страници до',
+'recentchangescount' => 'Брой заглавия в последни промени',
+'savedprefs' => 'Вашите настройки бяха съхранени.',
+'timezonelegend' => 'Времева зона',
+'timezonetext' => '¹ Броят часове, с които Вашето местно време се различава от това на сървъра (UTC).',
+'localtime' => 'Местно време',
+'timezoneoffset' => 'Отместване¹',
+'servertime' => 'Време на сървъра',
+'guesstimezone' => 'Попълване чрез браузъра',
+'defaultns' => 'Търсене в тези именни пространства по подразбиране:',
+'default' => 'по подразбиране',
+'files' => 'Файлове',
+
+# User levels special page
+
+'userrights-lookup-user' => 'Управляване на потребителските групи',#Manage user groups
+'userrights-user-editname' => 'Въведете потребителско име:', #Enter a username:
+'editusergroup' => 'Редактиране на потребителските групи', #Edit User Groups
+
+# user groups editing
+'userrights-editusergroup' => 'Редактиране на потребителските групи',#Edit user groups
+'saveusergroups' => 'Съхранение на потребителските групи',#Save User Groups
+'userrights-groupsmember' => 'Член на:',
+'userrights-groupsavailable' => 'Групи на разположение:',
+'userrights-groupshelp' => 'Изберете групите, към които искате той да бъде прибавен или от които да бъде премахнат. Неизбраните групи няма да бъдат променени. Можете да отизберете група чрез <CTRL> + ляв бутон на мишката',
+
+# Recent changes
+#
+'changes' => 'промени',
+'recentchanges' => 'Последни промени',
+'recentchangestext' => 'Проследяване на последните промени в {{SITENAME}}.
+
+Легенда: <b>тек</b> = разлика на текущата версия,
+<b>ист</b> = история на версиите, <b>м</b>&nbsp;=&nbsp;малка промяна, <b class="newpage">Н</b>&nbsp;=&nbsp;новосъздадена страница',
+'rcnote' => 'Показани са последните <strong>$1</strong> промени през последните <strong>$2</strong> дни.',
+'rcnotefrom' => 'Дадени са промените от <b>$2</b> (до <b>$1</b> показани).',
+'rclistfrom' => 'Показване на промени, като се започва от $1.',
+'rclinks' => 'Показване на последните $1 промени през последните $2 дни<br />$3',
+'diff' => 'разл',
+'hist' => 'ист',
+'hide' => 'Скриване',
+'show' => 'Показване',
+'minoreditletter' => 'м',
+'newpageletter' => 'Н',
+'sectionlink' => '→',
+'number_of_watching_users_pageview' => '[$1 наблюдаващ(и) потребител(и)]',
+
+# Upload
+'upload' => 'Качване',
+'uploadbtn' => 'Качване',
+'reupload' => 'Повторно качване',
+'reuploaddesc' => 'Връщане към формуляра за качване.',
+'uploadnologin' => 'Не сте влезли',
+'uploadnologintext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да качвате файлове.',
+'upload_directory_read_only' => 'Сървърът няма достъп за писане до папката за качване „$1“.',
+'uploaderror' => 'Грешка при качване',
+'uploadtext' => "
+Използвайте долния формуляр, за да качвате файлове, които ще можете да използвате в страниците.
+В повечето браузъри ще видите бутон „Browse...“ (ако използвате преведен интерфейс, можете да видите „Избор на файл...“, „Избор...“ и др.), който ще отвори основния за вашата операционна система диалогов прозорец за избиране на файл.
+
+За да включите картинка (файл) в страница, използвайте една от следните препратки: '''<nowiki>[[{{ns:Image}}:картинка.jpg]]</nowiki>''' или '''<nowiki>[[{{ns:Image}}:картинка.png|алтернативен текст]]</nowiki>''' или '''<nowiki>[[{{ns:Media}}:звук.ogg]]</nowiki>''' за музикални файлове.
+
+За да прегледате съществуващите в базата от данни файлове, разгледайте [[Special:Imagelist|списъка с качените файлове]].
+Качванията и изтриванията се записват в [[Special:Log/upload|дневника на качванията]].",
+'uploadlog' => 'дневник на качванията',
+'uploadlogpage' => 'Дневник на качванията',
+'uploadlogpagetext' => 'Списък на последните качвания.',
+'filename' => 'Име на файл',
+'filedesc' => 'Описание',
+'fileuploadsummary' => 'Описание:',
+'filestatus' => 'Авторско право',
+'filesource' => 'Изходен код',
+'copyrightpage' => 'Project:Авторски права',
+'copyrightpagename' => 'авторските права в {{SITENAME}}',
+'uploadedfiles' => 'Качени файлове',
+'minlength' => 'Имената на файловете трябва да съдържат поне три знака.',
+'illegalfilename' => 'Името на файла „$1“ съдържа знаци, които не са позволени в заглавия на страници. Моля, преименувайте файла и се опитайте да го качите отново.',
+'badfilename' => 'Файлът беше преименуван на „$1“.',
+'badfiletype' => 'Файловият формат „.$1“ не се препоръчва за картинки.',
+'largefile' => 'Препоръчва се файловете да не надвишават $1 байта, размерът на този файл е $2 байта.',
+'largefileserver' => 'Файлът е по-голям от допустимия от сървъра размер.',
+'emptyfile' => 'Каченият от Вас файл е празен. Това може да е предизвикано от грешка в името на файла. Моля, уверете се дали наистина искате да го качите.',
+'fileexists' => 'Вече съществува файл с това име! Моля, прегледайте $1, ако не сте сигурни дали искате да го промените.',
+'successfulupload' => 'Качването беше успешно',
+'fileuploaded' => 'Файлът „$1“ беше успешно качен.
+Моля, последвайте препратката: ($2) към страницата за описание и въведете малко информация за файла – кога и от кого е създаден и всякаква друга информация, която може да имате за него. Ако това е картинка, можете да я вмъкнете в някоя страница по следния начин: <tt><nowiki>[[Картинка:$1|мини|Описание]]</nowiki></tt>',
+'uploadwarning' => 'Предупреждение при качване',
+'savefile' => 'Съхраняване на файл',
+'uploadedimage' => 'качена „[[$1]]“',
+'uploaddisabled' => 'Съжаляваме, качванията бяха спрени.',
+'uploadscripted' => 'Файлът съдържа HTML или скриптов код, който може да бъде погрешно интерпретиран от браузъра.',
+'uploadcorrupt' => 'Файлът е повреден или е с неправилно разширение. Моля, проверете го и го качете отново.',
+'uploadvirus' => 'Файлът съдържа вирус! Подробности: $1',
+'sourcefilename' => 'Първоначално име',
+'destfilename' => 'Целево име',
+
+'license' => 'Лицензиране',
+'nolicense' => 'Нищо не е избрано',
+
+# Image list
+
+'imagelist' => 'Списък на файловете',
+'imagelisttext' => 'Списък от $1 файла, сортирани $2.',
+'getimagelist' => 'донасяне на списъка с файлове',
+'ilsubmit' => 'Търсене',
+'showlast' => 'Показване на последните $1 файла, сортирани $2.',
+'byname' => 'по име',
+'bydate' => 'по дата',
+'bysize' => 'по размер',
+'imgdelete' => 'изтр',
+'imgdesc' => 'опис',
+'imglegend' => 'Легенда: (опис) = показване/редактиране на описанието на файла.',
+'imghistory' => 'История на файла',
+'revertimg' => 'връщ',
+'deleteimg' => 'изтр',
+'deleteimgcompletely' => 'Изтриване на всички версии на файла',
+'imghistlegend' => 'Легенда: (тек) = текущият файл, (изтр) = изтриване на съответната версия, (връщ) = възвръщане към съответната версия.
+<br /><i>Щракнете върху датата, за да видите файла, качен на тази дата</i>.',
+'imagelinks' => 'Препратки към файла',
+'linkstoimage' => 'Следните страници сочат към файла:',
+'nolinkstoimage' => 'Няма страници, сочещи към файла.',
+'sharedupload' => 'Този файл е споделен и може да бъде използван от други проекти.',
+'shareduploadwiki' => 'Моля, разгледайте $1 за по-нататъшна информация.',
+'shareduploadwiki-linktext' => 'описателната страница на файла',
+'noimage' => 'Не съществува файл с това име, можете $1.',
+'noimage-linktext' => 'да го качите',
+'uploadnewversion-linktext' => 'Качване на нова версия на файла',
+
+# Statistics
+#
+'statistics' => 'Статистика',
+'sitestats' => 'Страници',
+'userstats' => 'Потребители',
+'sitestatstext' => "Базата от данни съдържа '''$1''' страници.
+Това включва всички страници от всички именни пространства в {{SITENAME}} (''Основно'', Беседа, {{ns:Project}}, Потребител, Категория, ...). Измежду тях '''$2''' страници се смятат за действителни (изключват се пренасочванията и страниците, несъдържащи препратки).
+
+Имало е '''$4''' редакции на страници откакто уикито беше пуснато. Това прави средно по '''$5''' редакции на страница.",
+'userstatstext' => "Има '''$1''' регистрирани потребители, като '''$2''' от тях (или '''$4%''') са администратори (вижте $3).",
+
+# Maintenance Page
+#
+'disambiguations' => 'Пояснителни страници',
+'disambiguationspage' => 'Шаблон:Пояснение',
+'disambiguationstext' => 'Следните страници сочат към <i>пояснителна страница</i>. Вместо това те би трябвало да сочат към съответната тема.<br /> Страница се определя като „<i>пояснителна</i>“, ако към нея се сочи от $1.<br />Тук <i>не</i> са посочени препратки от други именни пространства.',
+'doubleredirects' => 'Двойни пренасочвания',
+'doubleredirectstext' => 'Всеки ред съдържа препратки към първото и второто пренасочване, както и първия ред на текста на второто пренасочване, който обикновено посочва „<i>истинската</i>“ целева страница, към която първото пренасочване би трябвало да сочи.',
+'brokenredirects' => 'Невалидни пренасочвания',
+'brokenredirectstext' => 'Следните пренасочващи страници сочат към несъществуващи страници.',
+
+
+# Miscellaneous special pages
+#
+'lonelypages' => 'Страници сираци',
+'uncategorizedpages' => 'Некатегоризирани страници',
+'uncategorizedcategories' => 'Некатегоризирани категории',
+'unusedcategories' => 'Неизползвани категории',
+'unusedimages' => 'Неизползвани файлове',
+'popularpages' => 'Известни страници',
+'nviews' => '$1 прегледа',
+'wantedpages' => 'Желани страници',
+'mostlinked' => 'Най-препращани страници',
+'nlinks' => '$1 препратки',
+'allpages' => 'Всички страници',
+'prefixindex' => 'Азбучен списък на представки',
+'randompage' => 'Случайна страница',
+'shortpages' => 'Кратки страници',
+'longpages' => 'Дълги страници',
+'deadendpages' => 'Задънени страници',
+'listusers' => 'Списък на потребителите',
+'specialpages' => 'Специални страници',
+'spheading' => 'Специални страници за всички потребители',
+'restrictedpheading' => 'Специални страници с ограничен достъп',
+'recentchangeslinked' => 'Свързани промени',
+'rclsub' => '(на страници, сочени от „$1“)',
+'newpages' => 'Нови страници',
+'ancientpages' => 'Стари страници',
+'intl' => 'Междуезикови препратки',
+'move' => 'Преместване',
+'movethispage' => 'Преместване на страницата',
+'unusedimagestext' => 'Моля, обърнете внимание на това, че други сайтове могат да сочат към картинката чрез пряк адрес и въпреки това тя може да се намира в списъка.',
+'unusedcategoriestext' => 'Следните категории съществуват, но никоя страница или категория не ги използва.',
+'booksources' => 'Източници на книги',
+'categoriespagetext' => 'В {{SITENAME}} съществуват следните категории.',
+'data' => 'Данни',
+'userrights' => 'Управление на потребителските права',
+'groups' => 'Потребителски групи',
+
+'booksourcetext' => 'Показани са препратки към други сайтове, които продават нови и използвани книги и могат да имат допълнителна информация за книгите, които търсите.',
+'isbn' => 'ISBN',
+'alphaindexline' => 'от $1 до $2',
+'version' => 'Версия',
+'log' => 'Дневници',
+'alllogstext' => 'Смесено показване на дневниците на качванията, изтриванията, защитата, блокиранията и бюрократите.
+Можете да ограничите прегледа, като изберете вид на дневника, потребителско име или определена страница.',
+
+# Special:Allpages
+'nextpage' => 'Следваща страница ($1)',
+'allpagesfrom' => 'Показване на страниците, като се започва от:',
+'allarticles' => 'Всички страници',
+'allinnamespace' => 'Всички страници (именно пространство $1)',
+'allnotinnamespace' => 'Всички страници (без именно пространство $1)',
+'allpagesprev' => 'Предишна',
+'allpagesnext' => 'Следваща',
+'allpagessubmit' => 'Отиване',
+
+# Email this user
+#
+'mailnologin' => 'Няма електронна поща',
+'mailnologintext' => 'Необходмимо е да [[Special:Userlogin|влезете]] и да посочите валидна електронна поща в [[Special:Preferences|настройките]] си, за да може да пращате писма на други потребители.',
+'emailuser' => 'Пращане писмо на потребителя',
+'emailpage' => 'Пращане писмо на потребител',
+'emailpagetext' => 'Ако потребителят е посочил валидна електронна поща в настройките си, чрез долния формуляр можете да му изпратите съобщение. Адресът, записан в настройките Ви, ще се появи в полето „От“ на изпратеното писмо, така че получателят ще е в състояние да Ви отговори.',
+'usermailererror' => 'Пощенският обект даде грешка:', # Mail object returned error:
+'defemailsubject' => 'Писмо от {{SITENAME}}',
+'noemailtitle' => 'Няма електронна поща',
+'noemailtext' => 'Потребителят не е посочил валидна електронна поща или е избрал да не получава писма от други потребители.',
+'emailfrom' => 'От',
+'emailto' => 'До',
+'emailsubject' => 'Относно',
+'emailmessage' => 'Съобщение',
+'emailsend' => 'Изпращане',
+'emailsent' => 'Писмото е изпратено',
+'emailsenttext' => 'Писмото Ви беше изпратено.',
+
+# Watchlist
+#
+'watchlist' => 'Моят списък за наблюдение',
+'nowatchlist' => 'Списъкът Ви за наблюдение е празен.',
+'watchnologin' => 'Не сте влезли',
+'watchnologintext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да променяте списъка си за наблюдение.',
+'addedwatch' => 'Добавено в списъка за наблюдение',
+'addedwatchtext' => "Страницата „'''$1'''“ беше добавена към [[Special:Watchlist|списъка Ви за наблюдение]].
+Нейните бъдещи промени, както и на съответната й дискусионна страница, ще се описват там, а тя ще се появява с '''удебелен шрифт''' в [[Special:Recentchanges|списъка на последните промени]], което ще направи по-лесно избирането й.
+
+Ако по-късно искате да премахнете страницата от списъка си за наблюдение, щракнете на „''Спиране на наблюдение''“.",
+'removedwatch' => 'Премахнато от списъка за наблюдение',
+'removedwatchtext' => 'Страницата „$1“ беше премахната от списъка Ви за наблюдение.',
+'watch' => 'Наблюдаване',
+'watchthispage' => 'Наблюдаване на страницата',
+'unwatch' => 'Спиране на наблюдение',
+'unwatchthispage' => 'Спиране на наблюдение',
+'notanarticle' => 'Не е страница',
+'watchnochange' => 'Никоя от наблюдаваните страници не е била редактирана в показаното време.',
+# TODO съобщението отново е съкратено, да се провери по-късно, може да е нечия грешка
+'watchdetails' => '* $1 наблюдавани страници (без дискусионни), $2 редактирани страници в избраното време
+* Метод на заявката: $3
+* [[Special:Watchlist/edit|Показване и редактиране на пълния списък]]',
+# TODO
+'wlheader-enotif' => '* Email notification is enabled.',
+'wlheader-showupdated' => "* Pages which have been changed since you last visited them are shown in '''bold'''",
+'watchmethod-recent' => 'проверка на последните промени за наблюдавани страници',
+'watchmethod-list' => 'проверка на наблюдаваните страници за скорошни редакции',
+'removechecked' => 'Премахване на избраните от списъка за наблюдение',
+'watchlistcontains' => 'Списъкът Ви за наблюдение съдържа $1 страници.',
+'watcheditlist' => 'В азбучен ред са показани наблюдаваните от Вас основни страници. Отметнете кутийките на страниците, които искате да премахнете от списъка Ви за наблюдение и натиснете бутона „Премахване на избраните“ (изтриването на основна страница предизвиква изтриването и на съответната й дискусионна страница и обратно).',
+'removingchecked' => 'Премахване на избраните от списъка за наблюдение...',
+'couldntremove' => 'Неуспех при премахването на „$1“...',
+'iteminvalidname' => 'Проблем с „$1“, грешно име...',
+'wlnote' => 'Показани са последните $1 промени през последните <b>$2</b> часа.',
+'wlshowlast' => 'Показване на последните $1 часа $2 дни $3',
+'wlsaved' => 'Това е съхранена версия на списъка Ви за наблюдение.',
+'wlhideshowown' => '$1 на моите редакции.',
+'wlhideshowbots' => '$1 на редакции на ботове.',
+
+'enotif_mailer' => '{{SITENAME}} Notification Mailer',
+'enotif_reset' => 'Отбелязване на всички страници като посетени',
+'enotif_newpagetext'=> 'Това е нова страница.',
+'changed' => 'променена',
+'created' => 'създадена',
+'enotif_subject' => '{{SITENAME}} page $PAGETITLE has been $CHANGEDORCREATED by $PAGEEDITOR',
+'enotif_lastvisited' => 'Прегледайте $1 за всички промени след последното ви посещение.',
+
+# Delete/protect/revert
+#
+'deletepage' => 'Изтриване на страница',
+'confirm' => 'Потвърждение',
+'excontent' => 'съдържанието беше: „$1“',
+'excontentauthor' => 'съдържанието беше: „$1“ (като единственият автор беше „$2“)',
+'exbeforeblank' => 'съдържанието преди изпразването беше: „$1“',
+'exblank' => 'страницата беше празна',
+'confirmdelete' => 'Потвърждение за изтриване',
+'deletesub' => '(Изтриване на „$1“)',
+'historywarning' => 'Внимание: Страницата, която ще изтриете, има история:',
+'confirmdeletetext' => 'На път сте безвъзвратно да изтриете страница или файл, заедно с цялата й (му) история, от базата от данни.
+Моля, потвърдете, че искате това, разбирате последствията и правите това в съответствие с нашата [[Project:Линия на поведение|линия на поведение]].',
+#'confirmcheck' => 'Да, наистина искам да я изтрия.', # не се ползва
+'actioncomplete' => 'Действието беше изпълнено',
+'deletedtext' => 'Страницата „$1“ беше изтрита. Вижте $2 за запис на последните изтривания.',
+'deletedarticle' => 'изтрита „[[$1]]“',
+'dellogpage' => 'Дневник на изтриванията',
+'dellogpagetext' => 'Списък на последните изтривания.',
+'deletionlog' => 'дневника на изтриванията',
+'reverted' => 'Възвръщане към предишна версия',
+'deletecomment' => 'Причина за изтриването',
+'imagereverted' => 'Възвръщането към предишна версия беше успешно.',
+'rollback' => 'Връщане назад на промените', #Roll back edits
+'rollback_short' => 'Връщане',
+'rollbacklink' => 'връщане', #rollback
+'rollbackfailed' => 'Връщането не сполучи', #Rollback failed
+'cantrollback' => 'Промяната не може да се извърши. Последният автор е единственият собственик на страницата.',
+'alreadyrolled' => 'Редакцията на [[$1]], направена от [[Потребител:$2|$2]] ([[Потребител беседа:$2|Беседа]]), не може да се върне назад. Някой друг вече е редактирал страницата или е върнал назад промените.
+
+Последната редакция е на [[Потребител:$3|$3]] ([[Потребител беседа:$3|Беседа]]).',
+# only shown if there is an edit comment
+'editcomment' => 'Коментарът на редакцията е бил: „<i>$1</i>“.',
+'revertpage' => 'Премахване на [[Special:Contributions/$2|редакции на $2]], възвръщане към последната версия на $1',
+# TODO
+'sessionfailure' => 'There seems to be a problem with your login session; this action has been canceled as a precaution against session hijacking. Please hit „back“ and reload the page you came from, then try again.',
+'protectlogpage' => 'Дневник на защитата',
+'protectlogtext' => 'Списък на защитите и техните сваляния за страницата.
+За повече информация вижте [[Project:Защитена страница]].',
+'protectedarticle' => 'защитена „[[$1]]“',
+'unprotectedarticle' => 'сваляне на защитата на „[[$1]]“',
+'protectsub' => '(Защитаване на „$1“)',
+'confirmprotecttext' => 'Наистина ли искате да защитите страницата?',
+'confirmprotect' => 'Потвърдете защитата',
+'protectmoveonly' => 'Защита само от премествания',
+'protectcomment' => 'Причина за защитата',
+'unprotectsub' => '(Сваляне на защитата на „$1“)',
+'confirmunprotecttext' => 'Наистина ли искате да свалите защитата на страницата?',
+'confirmunprotect' => 'Потвърдете свалянето на защитата',
+'unprotectcomment' => 'Причина за сваляне на защитата',
+
+# Undelete
+'undelete' => 'Преглед на изтрити страници',
+'undeletepage' => 'Преглед и възстановяване на изтрити страници',
+'viewdeletedpage' => 'Преглед на изтрити страници',
+'undeletepagetext' => 'Следните страници бяха изтрити, но се намират все още
+в архива и могат да бъдат възстановени. Архивът може да се почиства от време на време.',
+'undeletearticle' => 'Възстановяване на изтрита страница',
+'undeletehistorynoadmin' => 'Тази страница е била изтрита. В резюмето отдолу е посочена причината за това, заедно с информация за потребителите, редактирали страницата преди изтриването й. Конкретното съдържание на изтритите версии е достъпно само за администратори.',
+'undeleterevisions' => '$1 версии архивирани',
+'undeletehistory' => 'Ако възстановите страницата, всички версии ще бъдат върнати в историята.
+Ако след изтриването е създадена страница със същото име, възстановените версии ще се появят като по-ранна история, а текущата версия на страницата няма да бъде автоматично заменена.',
+'undeleterevision' => 'Изтрита версия на $1',
+'undeletebtn' => 'Възстановяване!',
+'undeletedarticle' => '„[[$1]]“ беше възстановена',
+'undeletedrevisions' => '$1 версии бяха възстановени',
+
+# Namespace form on various pages
+'namespace' => 'Именно пространство:',
+'invert' => 'Обръщане на избора',
+
+# Contributions
+#
+'contributions' => 'Приноси',
+'mycontris' => 'Моите приноси',
+'contribsub' => 'За $1',
+'nocontribs' => 'Не са намерени промени, отговарящи на критерия.',
+'ucnote' => 'Показани са последните <b>$1</b> промени, извършени от този потребител през последните <b>$2</b> дни.',
+'uclinks' => 'Показване на последните $1 промени; показване на последните $2 дни.',
+'uctop' => ' (последна)',
+'newbies' => 'новаци',
+
+# What links here
+#
+'whatlinkshere' => 'Какво сочи насам',
+'notargettitle' => 'Няма цел',
+'notargettext' => 'Не указахте целева страница или потребител, върху която/който да се изпълни действието.',
+'linklistsub' => '(Списък с препратки)',
+'linkshere' => 'Следните страници сочат насам:',
+'nolinkshere' => 'Няма страници, сочещи насам.',
+'isredirect' => 'пренасочваща страница',
+
+# Block/unblock IP
+#
+'blockip' => 'Блокиране на потребител',
+'blockiptext' => 'Използвайте долния формуляр, за да забраните правото на писане
+на определен IP-адрес или потребител.
+Това трябва да се направи само, за да се предотвратят прояви на вандализъм,
+и в съответствие с [[Project:Линия_на_поведение|линията на поведение]] на {{SITENAME}}.
+Посочете също и причина за блокирането (например, заглавия на страници, станали обект на вандализъм).
+
+Срокът за изтичане на блокирането се въвежда според установения формат на ГНУ, описан в [http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html ръководството], например: „1 hour“, „2 days“, „next Wednesday“, „1 January 2017“. Неограничено блокиране може да се зададе чрез „indefinite“ или „infinite“.',
+'ipaddress' => 'IP-адрес',
+'ipadressorusername' => 'IP-адрес или потребител',
+'ipbexpiry' => 'Срок',
+'ipbreason' => 'Причина',
+'ipbsubmit' => 'Блокиране на потребителя',
+'ipbother' => 'Друг срок',
+'ipboptions' => 'Два часа:2 hours,Един ден:1 day,Три дни:3 days,Една седмица:1 week,Две седмици:2 weeks,Един месец:1 month,Три месеца:3 months,Шест месеца:6 months,Една година:1 year,Докато свят светува:infinite',
+'ipbotheroption' => 'друг',
+'badipaddress' => 'Невалиден IP-адрес или грешно име на потребител',
+'blockipsuccesssub' => 'Блокирането беше успешно',
+'blockipsuccesstext' => '„[[{{ns:Special}}:Contributions/$1|$1]]“ беше блокиран.
+<br />Вижте [[{{ns:Special}}:Ipblocklist|списъка на блокираните IP-адреси]], за да прегледате всички блокирания.',
+'unblockip' => 'Отблокиране на потребител',
+'unblockiptext' => 'Използвайте долния формуляр, за да възстановите правото на писане на по-рано блокиран IP-адрес или потребител.',
+'ipusubmit' => 'Отблокиране на адреса',
+'ipblocklist' => 'Списък на блокирани IP-адреси и потребители',
+'blocklistline' => '$1, $2 е блокирал $3 ($4)',
+'infiniteblock' => 'неограничено',
+'expiringblock' => 'изтича на $1',
+'ipblocklistempty' => 'Списъкът на блокиранията е празен.',
+'blocklink' => 'блокиране',
+'unblocklink' => 'отблокиране',
+'contribslink' => 'приноси',
+'autoblocker' => 'Бяхте автоматично блокиран, тъй като неотдавна IP-адресът ви е бил ползван от текущо блокирания потребител „$1“. Причината за неговото блокиране е: „\'\'\'$2\'\'\'“.',
+'blocklogpage' => 'Дневник на блокиранията',
+'blocklogentry' => 'блокиране на „[[$1]]“ със срок на изтичане $2',
+'blocklogtext' => 'Това е дневник на блокиранията и отблокиранията, извършени от този потребител. Автоматично блокираните IP-адреси не са показани. Вижте [[Special:Ipblocklist|списъка на блокираните IP-адреси]] за текущото състояние на блокиранията.',
+'unblocklogentry' => 'отблокиране на „$1“',
+'range_block_disabled' => 'Възможността на администраторите да задават интервали при IP-адресите е изключена.',
+'ipb_expiry_invalid' => 'Невалиден срок на изтичане.',
+'ip_range_invalid' => 'Невалиден интервал за IP-адреси.',
+'proxyblocker' => 'Блокировач на проксита',
+'proxyblockreason' => 'Вашият IP-адрес беше блокиран, тъй като е отворено прокси. Моля, свържете се с Вашия доставчик на интернет и го информирайте за този сериозен проблем в сигурността.',
+'proxyblocksuccess' => 'Готово.',
+'sorbs' => 'SORBS DNSBL',
+'sorbsreason' => 'Вашият IP-адрес е записан като отворено прокси в [http://www.sorbs.net SORBS] DNSBL.',
+'sorbs_create_account_reason' => 'Вашият IP-адрес е записан като отворено прокси в [http://www.sorbs.net SORBS] DNSBL. Не можете да създадете сметка.',
+
+# Developer tools
+#
+'lockdb' => 'Заключване на базата от данни',
+'unlockdb' => 'Отключване на базата от данни',
+'lockdbtext' => 'Заключването на базата от данни ще попречи на всички потребители да редактират страници, да сменят своите настройки, да редактират своите списъци за наблюдение и на всички други техни действия, изискващи промени в базата от данни.
+Моля, потвърдете, че искате точно това и ще отключите базата от данни,
+когато привършите с работата по подръжката.',
+'unlockdbtext' => 'Отключването на базата от данни ще възстанови способността на потребителите да редактират страници, да сменят своите настройки, да редактират своите списъци за наблюдение и изпълнението на всички други действия, изискващи промени в базата от данни.
+Моля, потвърдете, че искате точно това.',
+'lockconfirm' => 'Да, наистина искам да заключа базата от данни.',
+'unlockconfirm' => 'Да, наистина искам да отключа базата от данни.',
+'lockbtn' => 'Заключване на базата от данни',
+'unlockbtn' => 'Отключване на базата от данни',
+'locknoconfirm' => 'Не сте отметнали кутийката за потвърждение.',
+'lockdbsuccesssub' => 'Заключването на базата от данни беше успешно',
+'unlockdbsuccesssub' => 'Отключването на базата от данни беше успешно',
+'lockdbsuccesstext' => 'Базата от данни на {{SITENAME}} беше заключена.
+<br />Не забравяйте да отключите базата от данни, когато привършите с работата по поддръжката.',
+'unlockdbsuccesstext' => 'Базата от данни на {{SITENAME}} беше отключена.',
+
+# Make sysop
+'makesysoptitle' => 'Превръщане на потребител в администратор',
+'makesysoptext' => 'Този формуляр се използва от бюрократи за превръщане на обикновени потребители в администратори.
+
+Въведете името на потребителя в полето и натиснете бутона, за да направите съответния потребител администратор',
+'makesysopname' => 'Име на потребителя:',
+'makesysopsubmit' => 'Превръщане на потребителя в администратор',
+'makesysopok' => '<b>Потребителят „$1“ беше направен администратор</b>.',
+'makesysopfail' => '<b>Потребителят „$1“ не беше направен администратор. (Правилно ли въведохте името?)</b>',
+'setbureaucratflag' => 'Вдигане на флага „бюрократ“',
+'rightslogtext' => 'Това е дневник на промените на потребителски права.',
+'rights' => 'Права:',
+'set_user_rights' => 'Даване на потребителски права',
+'user_rights_set' => '<b>Потребителските права на „$1“ са променени</b>',
+'set_rights_fail' => '<b>Потребителските права на „$1“ не бяха променени. (Правилно ли въведохте името?)</b>',
+'makesysop' => 'Превръщане на потребител в администратор',
+'already_sysop' => 'Този потребител беше вече администратор',
+'already_bureaucrat' => 'Този потребител беше вече бюрократ',
+
+# Move page
+#
+'movepage' => 'Преместване на страница',
+'movepagetext' => "Посредством долния формуляр можете да преименувате страница, премествайки цялата й история на новото име. Старото заглавие ще се превърне в пренасочваща страница.
+Препратките към старата страница няма да бъдат променени; затова проверете за двойни или невалидни пренасочвания.
+Вие сами би трябвало да се убедите в това, дали препратките продължават да сочат там, където се предполага.
+
+Страницата '''няма''' да бъде преместена, ако вече съществува страница с новото име, освен ако е празна или пренасочване и няма редакционна история.
+
+'''ВНИМАНИЕ!'''
+Това може да е голяма и неочаквана промяна за известна страница. Уверете се, че разбирате последствията, преди да продължите.",
+'movepagetalktext' => 'Съответната дискусионна страница, ако съществува, ще бъде автоматично преместена заедно с нея, \'\'\'освен ако:\'\'\'
+* не местите страницата от едно именно пространство в друго,
+* вече съществува непразна дискусионна страница с това име или
+* не сте отметнали долната кутийка.
+
+В тези случаи, ако желаете, ще е необходимо да преместите страницата ръчно.',
+'movearticle' => 'Преместване на страница',
+'movenologin' => 'Не сте влезли',
+'movenologintext' => 'Необходимо е да [[Special:Userlogin|влезете]], за да може да премествате страници.',
+'newtitle' => 'Към ново заглавие',
+'movepagebtn' => 'Преместване',
+'pagemovedsub' => 'Преместването беше успешно',
+'pagemovedtext' => 'Страницата „[[$1]]“ беше преместена под името „[[$2]]“.',
+'articleexists' => 'Вече съществува страница с това име или името, което сте избрали, е невалидно. Моля, изберете друго име.',
+'talkexists' => "'''Страницата беше успешно преместена, но без съответната дискусионна страница, защото под новото име има една съществуваща. Моля, обединете ги ръчно.'''",
+'movedto' => 'преместена като',
+'movetalk' => 'Преместване и на дискусионната страница, ако е приложимо.',
+'talkpagemoved' => 'Съответната дискусионна страница също беше преместена.',
+'talkpagenotmoved' => 'Съответната дискусионна страница <strong>не</strong> беше преместена.',
+'1movedto2' => '„$1“ преместена като „$2“',
+'1movedto2_redir' => '„$1“ преместена като „$2“ (върху пренасочване)',
+'movelogpage' => 'Дневник на преместванията',
+'movelogpagetext' => 'По-долу е показан списък на преместванията.',
+'movereason' => 'Причина',
+'revertmove' => 'връщане',
+'delete_and_move' => 'Изтриване и преместване',
+'delete_and_move_text' =>
+'== Наложително изтриване ==
+
+Целевата страница „[[$1]]“ вече съществува. Искате ли да я изтриете, за да освободите място за преместването?',
+'delete_and_move_reason' => 'Изтрита, за да се освободи място за преместване',
+'selfmove' => 'Страницата не може да бъде преместена, тъй като целевото име съвпада с първоначалното й заглавие.',
+'immobile_namespace' => 'Целевото заглавие е от специален тип. Не е възможно местенето на страници в това именно пространство.',
+
+# Export
+'export' => 'Изнасяне на страници',
+'exporttext' => "Тук можете да изнесете като XML текста и историята на една или повече страници. Получените данни можете да:
+* вмъкнете в друг сайт, използващ софтуера на МедияУики,
+* обработвате или
+* просто запазите за лично ползване.
+
+За да изнесете няколко страници, въвеждайте всяко ново заглавие на '''нов ред'''. След това изберете дали искате само текущата версия (заедно с информация за последната редакция) или всички версии (заедно с текущата) на страницата.
+
+Ако желаете само текущата версия, бихте могли да използвате препратка от вида [[Special:Export/България]] за страницата [[България]].",
+'exportcuronly' => 'Включване само на текущата версия, а не на цялата история',
+
+# Namespace 8 related
+
+'allmessages' => 'Системни съобщения',
+'allmessagesname' => 'Име',
+'allmessagesdefault' => 'Текст по подразбиране',
+'allmessagescurrent' => 'Текущ текст',
+'allmessagestext' => 'Това е списък на системните съобщения, намиращи се в именното пространство „МедияУики“',
+'allmessagesnotsupportedUI' => 'Текущо избраният език за интерфейса <b>$1</b> не се поддържа от <em>Специални:AllMessages</em> на сайта.',
+'allmessagesnotsupportedDB' => 'Възможността за използване на страници от именното пространство „МедияУики“ за генериране на интерфейсните съобщения е изключена (<code>LocalSettings.php: wgUseDatabaseMessages = false</code>).',
+# Thumbnails
+'thumbnail-more' => 'Увеличаване',
+'missingimage' => '<b>Липсваща картинка</b><br /><i>$1</i>',
+'filemissing' => 'Липсващ файл',
+
+# Special:Import
+'import' => 'Внасяне на страници',
+'importinterwiki' => 'Внасяне чрез Трансуики',
+'importtext' => 'Моля, изнесете файла от изходното уики, използвайки инструмента „Special:Export“, съхранете го на Вашия диск и го качете тук.',
+'importfailed' => 'Внасянето беше неуспешно: $1',
+'importnotext' => 'Празно',
+'importsuccess' => 'Внасянето беше успешно!',
+'importhistoryconflict' => 'Съществува версия от историята, която си противоречи с тази (възможно е страницата да е била вече внесена)',
+# TODO
+'importnosources' => 'No transwiki import sources have been defined and direct history uploads are disabled.',
+
+# Keyboard access keys for power users
+'accesskey-search' => 'f',
+'accesskey-minoredit' => 'i',
+'accesskey-save' => 's',
+'accesskey-preview' => 'p',
+'accesskey-diff' => 'v',
+'accesskey-compareselectedversions' => 'v',
+
+# tooltip help for the main actions
+'tooltip-search' => 'Претърсване на {{SITENAME}} [alt-f]',
+'tooltip-minoredit' => 'Отбелязване на промяната като малка [alt-i]',
+'tooltip-save' => 'Съхраняване на промените [alt-s]',
+'tooltip-preview' => 'Предварителен преглед, моля, използвайте го преди да съхраните! [alt-p]',
+'tooltip-diff' => 'Показване на направените от Вас промени по текста [alt-d]',
+'tooltip-compareselectedversions' => 'Показване на разликите между двете избрани версии на страницата [alt-v]',
+'tooltip-watch' => 'Добавяне на страницата към списъка Ви за наблюдение [alt-w]',
+
+# stylesheets
+'Monobook.css' => '/* чрез редактиране на този файл можете да промените облика Monobook */',
+#'Monobook.js' => '/* чрез редактиране на този файл можете да добавяте функции на Javascript за облика Monobook */',
+
+# TODO: превод
+# Metadata
+'nodublincore' => 'Dublin Core RDF metadata disabled for this server.',
+'nocreativecommons' => 'Creative Commons RDF metadata disabled for this server.',
+'notacceptable' => 'Сървърът не може да предостави данни във формат, който да се разпознава от клиента Ви.',
+
+# Attribution
+'anonymous' => 'Анонимен потребител(и) на {{SITENAME}}',
+'siteuser' => 'потребители на {{SITENAME}} $1',
+'lastmodifiedatby' => 'Последната промяна на страницата е извършена от $3 на $2, $1.',
+'and' => 'и',
+'othercontribs' => 'Основаващо се върху работа на $1.',
+'others' => 'други',
+'siteusers' => 'потребителите на {{SITENAME}} $1',
+'creditspage' => 'Библиография и източници',//'Page credits',
+'nocredits' => 'Няма въведени източници или библиография',//'There is no credits info available for this page.',
+
+# Spam protection
+'spamprotectiontitle' => 'Филтър за защита от спам',
+'spamprotectiontext' => 'Страницата, която искахте да съхраните, беше блокирана от филтъра против спам. Това обикновено е причинено от препратка към външен сайт.',
+'spamprotectionmatch' => 'Следният текст предизвика включването на филтъра: $1',
+'subcategorycount' => 'Тази категория има $1 подкатегории.',
+'categoryarticlecount' => 'Тази категория съдържа $1 страници.',
+'listingcontinuesabbrev' => ' продълж.',
+
+# Info page
+'infosubtitle' => 'Информация за страницата',
+'numedits' => 'Брой редакции (страница):',
+'numtalkedits' => 'Брой редакции (дискусионна страница):',
+'numwatchers' => 'Брой наблюдатели:',
+'numauthors' => 'Брой различни автори (страница):',
+'numtalkauthors' => 'Брой различни автори (дискусионна страница):',
+
+# Math
+'mw_math_png' => 'Използване винаги на PNG',
+'mw_math_simple' => 'HTML при опростен TeX, иначе PNG',
+'mw_math_html' => 'HTML по възможност, иначе PNG',
+'mw_math_source' => 'Оставяне като TeX (за текстови браузъри)',
+'mw_math_modern' => 'Препоръчително за нови браузъри',
+'mw_math_mathml' => 'MathML по възможност (експериментално)',
+
+# Patrolling
+'markaspatrolleddiff' => 'Отбелязване като проверена версия',//'Mark as patrolled',
+'markaspatrolledtext' => 'Отбелязване на версията като проверена',//'Mark this article as patrolled',
+'markedaspatrolled' => 'Проверена версия', //'Marked as patrolled',
+'markedaspatrolledtext' => 'Избраната версия беше отбелязана като проверена.',//'The selected revision has been marked as patrolled.',
+'rcpatroldisabled' => 'Патрулът е деактивиран', //'Recent Changes Patrol disabled',
+'rcpatroldisabledtext' => 'Патрулът на последните промени е деактивиран',//'The Recent Changes Patrol feature is currently disabled.',
+
+
+# Monobook.js: tooltips and access keys for monobook
+'Monobook.js' => '
+ /* чрез редактиране на този файл можете да промените някои неща на Javascript за облика Monobook */
+ /* tooltips and access keys */
+ var ta = new Object();
+ ta[\'pt-userpage\'] = new Array(\'.\',\'Вашата потребителска страница\');
+ ta[\'pt-anonuserpage\'] = new Array(\'.\',\'Потребителската страница за адреса, от който редактирате\');
+ ta[\'pt-mytalk\'] = new Array(\'n\',\'Вашата дискусионна страница\');
+ ta[\'pt-anontalk\'] = new Array(\'n\',\'Дискусия относно редакциите от този адрес\');
+ ta[\'pt-preferences\'] = new Array(\'\',\'Вашите настройки\');
+ ta[\'pt-watchlist\'] = new Array(\'l\',\'Списък на страници, чиито промени сте избрали да наблюдавате\');
+ ta[\'pt-mycontris\'] = new Array(\'y\',\'Списък на Вашите приноси\');
+ ta[\'pt-login\'] = new Array(\'o\',\'В момента не сте влезли. Насърчаваме Ви да влезете, въпреки че не е задължително.\');
+ ta[\'pt-anonlogin\'] = new Array(\'o\',\'Насърчаваме Ви да влезете, въпреки че не е задължително.\');
+ ta[\'pt-logout\'] = new Array(\'o\',\'Излизане от {{SITENAME}}\');
+ ta[\'ca-talk\'] = new Array(\'t\',\'Беседа относно страницата\');
+ ta[\'ca-edit\'] = new Array(\'e\',\'Можете да редактирате страницата. Моля, използвайте бутона за предварителен преглед преди да съхраните.\');
+ ta[\'ca-addsection\'] = new Array(\'+\',\'Добавяне на коментар към страницата\');
+ ta[\'ca-viewsource\'] = new Array(\'e\',\'Страницата е защитена. Можете да разгледате изходния й код.\');
+ ta[\'ca-history\'] = new Array(\'h\',\'Предишни версии на страницата\');
+ ta[\'ca-protect\'] = new Array(\'=\',\'Защитаване на страницата\');
+ ta[\'ca-delete\'] = new Array(\'d\',\'Изтриване на страницата\');
+ ta[\'ca-undelete\'] = new Array(\'d\',\'Възстановяване на изтрити редакции на страницата\');
+ ta[\'ca-move\'] = new Array(\'m\',\'Преместване на страницата\');
+ ta[\'ca-watch\'] = new Array(\'w\',\'Добавяне на страницата към списъка Ви за наблюдение\');
+ ta[\'ca-unwatch\'] = new Array(\'w\',\'Премахване на страницата от списъка Ви за наблюдение\');
+ ta[\'search\'] = new Array(\'f\',\'Претърсване на {{SITENAME}}\');
+ ta[\'p-logo\'] = new Array(\'\',\'Началната страница\');
+ ta[\'n-mainpage\'] = new Array(\'z\',\'Началната страница\');
+ ta[\'n-portal\'] = new Array(\'\',\'Информация за проекта\');
+ ta[\'n-currentevents\'] = new Array(\'\',\'Информация за текущите събития по света\');
+ ta[\'n-recentchanges\'] = new Array(\'r\',\'Списък на последните промени в {{SITENAME}}\');
+ ta[\'n-randompage\'] = new Array(\'x\',\'Случайна страница\');
+ ta[\'n-help\'] = new Array(\'\',\'Помощната страница\');
+ ta[\'n-sitesupport\'] = new Array(\'\',\'Подкрепете {{SITENAME}}\');
+ ta[\'t-whatlinkshere\'] = new Array(\'j\',\'Списък на всички страници, сочещи насам\');
+ ta[\'t-recentchangeslinked\'] = new Array(\'k\',\'Последните промени на страници, сочени от тази страница\');
+ ta[\'feed-rss\'] = new Array(\'\',\'RSS feed за страницата\');
+ ta[\'feed-atom\'] = new Array(\'\',\'Atom feed за страницата\');
+ ta[\'t-contributions\'] = new Array(\'\',\'Показване на приносите на потребителя\');
+ ta[\'t-emailuser\'] = new Array(\'\',\'Изпращане на писмо на потребителя\');
+ ta[\'t-upload\'] = new Array(\'u\',\'Качване на файлове\');
+ ta[\'t-specialpages\'] = new Array(\'q\',\'Списък на всички специални страници\');
+ ta[\'ca-nstab-main\'] = new Array(\'c\',\'Преглед на основната страница\');
+ ta[\'ca-nstab-user\'] = new Array(\'c\',\'Преглед на потребителската страница\');
+ ta[\'ca-nstab-media\'] = new Array(\'c\',\'Преглед на медийната страница\');
+ ta[\'ca-nstab-special\'] = new Array(\'\',\'Това е специална страница, която не може да се редактира.\');
+ ta[\'ca-nstab-project\'] = new Array(\'c\',\'Преглед на проектната страница\');
+ ta[\'ca-nstab-image\'] = new Array(\'c\',\'Преглед на страницата на файла\');
+ ta[\'ca-nstab-mediawiki\'] = new Array(\'c\',\'Преглед на системното съобщение\');
+ ta[\'ca-nstab-template\'] = new Array(\'c\',\'Преглед на шаблона\');
+ ta[\'ca-nstab-help\'] = new Array(\'c\',\'Преглед на помощната страница\');
+ ta[\'ca-nstab-category\'] = new Array(\'c\',\'Преглед на категорийната страница\');',
+
+# image deletion
+'deletedrevision' => 'Изтрита стара версия $1.',
+
+# browsing diffs
+'previousdiff' => '← Предишна разлика',
+'nextdiff' => 'Следваща разлика →',
+
+'imagemaxsize' => 'Ограничаване на картинките на описателните им страници до:',
+'thumbsize' => 'Размери на миникартинките:',
+'showbigimage' => 'Сваляне на версия с високо качество ($1x$2, $3 КБ)',
+'newimages' => 'Галерия на новите файлове',
+'showhidebots' => '($1 на ботове)',
+'noimages' => 'Няма нищо.',
+
+# short names for language variants used for language conversion links.
+# to disable showing a particular link, set it to 'disable', e.g.
+# 'variantname-zh-sg' => 'disable',
+'variantname-zh-cn' => 'cn',
+'variantname-zh-tw' => 'tw',
+'variantname-zh-hk' => 'hk',
+'variantname-zh-sg' => 'sg',
+'variantname-zh' => 'zh',
+
+# labels for User: and Title: on Special:Log pages
+'specialloguserlabel' => 'Потребител:',
+'speciallogtitlelabel' => 'Заглавие:',
+
+'passwordtooshort' => 'Паролата Ви е прекалено къса: трябва да съдържа поне $1 знака.',
+
+# Media Warning
+# TODO Превод
+'mediawarning' => '\'\'\'Внимание\'\'\': This file may contain malicious code, by executing it your system may be compromised.
+<hr />',
+
+'fileinfo' => '$1 КБ, MIME type: <code>$2</code>',
+
+# Metadata
+'metadata' => 'Метаданни',
+# TODO Превод
+# Exif tags
+'exif-imagewidth' =>'Ширина',
+'exif-imagelength' =>'Височина',
+'exif-artist' =>'Автор',
+
+
+# external editor support
+'edit-externally' => 'Редактиране на файла чрез външно приложение',
+'edit-externally-help' => 'За повече информация прегледайте [http://meta.wikimedia.org/wiki/Help:External_editors указанията за настройките].',
+
+# 'all' in various places, this might be different for inflected languages
+'recentchangesall' => 'всички',
+'imagelistall' => 'всички',
+'watchlistall1' => 'всички',
+'watchlistall2' => 'всички',
+'namespacesall' => 'всички',
+
+# TODO
+# E-mail address confirmation
+'confirmemail_invalid' => 'Грешен код за потвърждение. Вероятно кодът за потвърждение е остарял.',
+'confirmemail_success' => 'Адресът ви за електронна поща беше потвърден. Вече можете да влезете и да се наслаждавате на уикито.',
+'confirmemail_loggedin' => 'Адресът ви за електронна поща беше потвърден.',
+
+# Inputbox extension, may be useful in other contexts as well
+'tryexact' => 'Пълно и точно съвпадение',
+'searchfulltext' => 'Претърсване на целия текст',
+'createarticle' => 'Създаване на статия',
+
+# Trackbacks
+'trackbackbox' => '<div id="mw_trackbacks">
+Trackbacks for this article:<br />
+$1
+</div>',
+'trackbackremove' => ' ([$1 Изтриване])',
+#'trackbacklink' => 'Trackback',
+#'trackbackdeleteok' => 'The trackback was successfully deleted.',
+
+# delete conflict
+
+'deletedwhileediting' => 'Внимание: Страницата е била изтрита, откакто сте започнали да я редактирате!',
+'confirmrecreate' => 'Потребител [[Потребител:$1|$1]] ([[Потребител беседа:$1|беседа]]) е изтрил страницата, откакто сте започнали да я редактирате, давайки следното обяснение:
+: \'\'$2\'\'
+Моля, потвърдете, че наистина желаете да създадете страницата отново.',
+'recreate' => 'Ново създаване',
+'tooltip-recreate' => '',
+
+'unit-pixel' => 'px',
+);
+
+
+?>
diff --git a/languages/messages/MessagesBm.php b/languages/messages/MessagesBm.php
new file mode 100644
index 00000000..8dd53fe4
--- /dev/null
+++ b/languages/messages/MessagesBm.php
@@ -0,0 +1,9 @@
+<?php
+/** Bambara (Bamanankan)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'fr';
+?>
diff --git a/languages/messages/MessagesBn.php b/languages/messages/MessagesBn.php
new file mode 100644
index 00000000..7c4fdeeb
--- /dev/null
+++ b/languages/messages/MessagesBn.php
@@ -0,0 +1,133 @@
+<?php
+/** Bengali (বাংলা)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$namespaceNames = array(
+ NS_SPECIAL => 'বিশেষ',
+ NS_MAIN => '',
+ NS_TALK => 'আলাপ',
+ NS_USER => 'ব্যবহারকারী',
+ NS_USER_TALK => 'ব্যবহারকারী_আলাপ',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_আলাপ',
+ NS_IMAGE => 'চিত্র',
+ NS_IMAGE_TALK => 'চিত্র_আলাপ',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_আলাপ'
+);
+$datePreferences = false;
+$digitTransformTable = array(
+ '0' => '০',
+ '1' => '১',
+ '2' => '২',
+ '3' => '৩',
+ '4' => '৪',
+ '5' => '৫',
+ '6' => '৬',
+ '7' => '৭',
+ '8' => '৮',
+ '9' => '৯'
+);
+
+
+$messages = array(
+# Dates
+
+'sunday' => 'রবিবার',
+'monday' => 'সোমবার',
+'tuesday' => 'মঙ্গলবার',
+'wednesday' => 'বুধবার',
+'thursday' => 'বৃহস্পতিবার',
+'friday' => 'শুক্রবার',
+'saturday' => 'শনিবার',
+'january' => 'জানুয়ারী',
+'february' => 'ফেব্রুয়ারী',
+'march' => 'মার্চ',
+'april' => 'এপ্রিল',
+'may_long' => 'মে',
+'june' => 'জুন',
+'july' => 'জুলাই',
+'august' => 'আগস্ট',
+'september' => 'সেপ্টেম্বর',
+'october' => 'অক্টোবর',
+'november' => 'নভেম্বর',
+'december' => 'ডিসেম্বর',
+'jan' => 'জানু',
+'feb' => 'ফেব্রু',
+'mar' => 'মার্চ',
+'apr' => 'এপ্রিল',
+'may' => 'মে',
+'jun' => 'জুন',
+'jul' => 'জুলাই',
+'aug' => 'আগস্ট',
+'sep' => 'সেপ্টে',
+'oct' => 'অক্টো',
+'nov' => 'নভে',
+'dec' => 'ডিসে',
+
+# Bits of text used by many pages:
+#
+
+'mainpage' => 'প্রধান পাতা',
+'about' => 'বৃত্তান্ত',
+'aboutsite' => '{{SITENAME}}র বৃত্তান্ত', // TODO: grammar
+'aboutpage' => '{{ns:project}}:বৃত্তান্ত',
+'help' => 'সহায়িকা',
+'helppage' => '{{ns:project}}:সহায়িকা',
+'bugreports' => 'ত্রুটি বিবরণী',
+'bugreportspage' => '{{ns:project}}:ত্রুটি_বিবরণী',
+'faq' => 'প্রশ্নোত্তর',
+'faqpage' => '{{ns:project}}:প্রশ্নোত্তর',
+'edithelp' => 'সম্পাদনা সহায়িকা',
+'edithelppage' => '{{ns:project}}:কিভাবে_একটি_পৃষ্ঠা_সম্পাদনা_করবেন',
+'cancel' => 'বাতিল কর',
+'qbfind' => 'খঁুজে দেখ',
+'qbbrowse' => 'ঘুরে দেখ',
+'qbedit' => 'সম্পাদনা কর',
+'qbpageoptions' => 'এ পৃষ্ঠার বিকল্পসমূহ',
+'qbpageinfo' => 'পৃষ্ঠা-সংক্রান্ত তথ্য',
+'qbmyoptions' => 'আমার পছন্দ',
+'mypage' => 'আমার পাতা',
+'mytalk' => 'আমার কথাবার্তা',
+'currentevents' => 'সমসাময়িক ঘটনা',
+'errorpagetitle' => 'ভুল',
+'returnto' => 'ফিরে যাও $1.',
+'whatlinkshere' => 'যেসব পাতা থেকে এখানে সংযোগ আছে',
+'help' => 'সহায়িকা',
+'search' => 'খঁুজে দেখ',
+'searchbutton' => 'খঁুজে দেখ',
+'go' => 'চল',
+'searcharticle' => 'চল',
+'history' => 'এ পৃষ্ঠার ইতিহাস',
+'printableversion' => 'ছাপার যোগ্য সংস্করণ',
+'editthispage' => 'এই পৃষ্ঠাটি সম্পাদনা করুন',
+'deletethispage' => 'এই পৃষ্ঠাটি মুছে ফেলুন',
+'protectthispage' => 'এই পৃষ্ঠাটি সংরক্ষণ করুন',
+'unprotectthispage' => 'এই পৃষ্ঠার সংরক্ষণ ছেড়ে দিন',
+'newpage' => 'নতুন পাতা',
+'talkpage' => 'এই পৃষ্ঠা নিয়ে আলোচনা করুন',
+'articlepage' => 'নিবন্ধ দেখুন',
+'userpage' => 'ব্যাবহারকারীর পাতা দেখুন',
+'projectpage' => 'মেটা-পাতা দেখুন',
+'imagepage' => 'ছবির পাতা দেখুন',
+'viewtalkpage' => 'আলোচনা দেখুন',
+'otherlanguages' => 'অন্যান্য ভাষা',
+'redirectedfrom' => '($1 থেকে ঘুরে এসেছে)',
+'lastmodifiedat' => 'এ পৃষ্ঠায় শেষ পরিবর্তন হয়েছিল $2, $1.',
+'viewcount' => 'এ পৃষ্ঠা দেখা হয়েছে $1 বার।',
+'nbytes' => '$1 বাইট',
+'ok' => 'ঠিক আছে',
+'retrievedfrom' => '\'$1\' থেকে আনীত',
+'newmessageslink' => 'নতুন বার্তা',
+'editsection'=>'সম্পাদনা করুন',
+'editold'=>'সম্পাদনা করুন',
+'toc' => 'সূচীপত্র',
+'showtoc' => 'দেখাও',
+'hidetoc' => 'সরিয়ে রাখ',
+
+);
+
+
+?>
diff --git a/languages/messages/MessagesBo.php b/languages/messages/MessagesBo.php
new file mode 100644
index 00000000..ce8b4411
--- /dev/null
+++ b/languages/messages/MessagesBo.php
@@ -0,0 +1,20 @@
+<?php
+/** Tibetan (བོད་ཡིག)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$digitTransformTable = array(
+ '0' => '༠',
+ '1' => '༡',
+ '2' => '༢',
+ '3' => '༣',
+ '4' => '༤',
+ '5' => '༥',
+ '6' => '༦',
+ '7' => '༧',
+ '8' => '༨',
+ '9' => '༩'
+);
+?>
diff --git a/languages/messages/MessagesBpy.php b/languages/messages/MessagesBpy.php
new file mode 100644
index 00000000..37593649
--- /dev/null
+++ b/languages/messages/MessagesBpy.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Bishnupriya
+ * most speakers have Bengali as second language, use as default fallback
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+$fallback = 'bn';
+?>
diff --git a/languages/messages/MessagesBr.php b/languages/messages/MessagesBr.php
new file mode 100644
index 00000000..54c5b2f4
--- /dev/null
+++ b/languages/messages/MessagesBr.php
@@ -0,0 +1,1096 @@
+<?php
+
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Dibar',
+ NS_MAIN => '',
+ NS_TALK => 'Kaozeal',
+ NS_USER => 'Implijer',
+ NS_USER_TALK => 'Kaozeadenn_Implijer',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => 'Kaozeadenn_$1',
+ NS_IMAGE => 'Skeudenn',
+ NS_IMAGE_TALK => 'Kaozeadenn_Skeudenn',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'Kaozeadenn_MediaWiki',
+ NS_TEMPLATE => 'Patrom',
+ NS_TEMPLATE_TALK => 'Kaozeadenn_Patrom',
+ NS_HELP => 'Skoazell',
+ NS_HELP_TALK => 'Kaozeadenn_Skoazell',
+ NS_CATEGORY => 'Rummad',
+ NS_CATEGORY_TALK => 'Kaozeadenn_Rummad'
+);
+
+$quickbarSettings = array(
+ 'Hini ebet', 'Kleiz', 'Dehou', 'War-neuñv a-gleiz'
+);
+
+$skinNames = array(
+ 'standard' => 'Standard',
+ 'nostalgia' => 'Melkoni',
+ 'cologneblue' => 'Glaz Kologn',
+ 'smarty' => 'Paddington',
+ 'montparnasse' => 'Montparnasse',
+ 'davinci' => 'DaVinci',
+ 'mono' => 'Mono',
+ 'monobook' => 'MonoBook',
+ 'myskin' => 'MySkin'
+);
+
+
+
+$bookstoreList = array(
+ 'Amazon.fr' => 'http://www.amazon.fr/exec/obidos/ISBN=$1',
+ 'alapage.fr' => 'http://www.alapage.com/mx/?tp=F&type=101&l_isbn=$1&donnee_appel=ALASQ&devise=&',
+ 'fnac.com' => 'http://www3.fnac.com/advanced/book.do?isbn=$1',
+ 'chapitre.com' => 'http://www.chapitre.com/frame_rec.asp?isbn=$1',
+);
+
+$datePreferences = false;
+$defaultDateFormat = 'dmy';
+$dateFormats = array(
+ 'dmy time' => 'H:i',
+ 'dmy date' => 'j M Y',
+ 'dmy both' => 'j M Y "da" H:i',
+);
+
+$separatorTransformTable = array(',' => "\xc2\xa0", '.' => ',' );
+$linkTrail = "/^([a-zàâçéèêîôûäëïöüùÇÉÂÊÎÔÛÄËÏÖÜÀÈÙ]+)(.*)$/sDu";
+
+
+$messages = array(
+
+# User Toggles
+
+'tog-editwidth' => 'Digeriñ ar prenestr aozañ en e led brasañ',
+'tog-editondblclick' => 'Daouglikañ evit kemmañ ur bajenn (JavaScript)',
+'tog-editsection' => 'Kemmañ ur rann dre al liammoù [kemmañ]',
+'tog-editsectiononrightclick' => 'Kemmañ ur rann dre glikañ a-zehou<br /> war titl ar rann',
+'tog-fancysig' => 'Sinadurioù diliamm (hep liamm emgefre)',
+'tog-hideminor' => 'Kuzhat ar <i>C\'hemmoù nevez</i> dister',
+'tog-highlightbroken' => 'Lakaat e ruz al liammoù war-du<br /> an danvezioù n\'eus ket anezho',
+'tog-justify' => 'Rannbennadoù marzhekaet',
+'tog-minordefault' => 'Sellet ouzh ar c\'hemmoù degaset ganin<br /> evel kemmoù dister dre ziouer',
+'tog-nocache' => 'Diweredekaat krubuilh ar pajennoù',
+'tog-numberheadings' => 'Niverenniñ emgefre an titloù',
+'tog-previewonfirst' => 'Rakwelet tres ar bajenn kerkent hag an aozadenn gentañ',
+'tog-previewontop' => 'Rakwelet e vo tres ar bajenn<br /> a-us ar voest skridaozañ',
+'tog-rememberpassword' => 'Derc\'hel soñj eus ma ger-temen (toupin)',
+'tog-showtoc' => 'Diskouez an daolenn<br /> (evit ar pennadoù zo ouzhpenn 3 rann enno)',
+'tog-showtoolbar' => 'Diskouez ar varrenn gant ar meuzioù aozañ',
+'tog-usenewrc' => 'Kemmoù nevez gwellaet<br /> (gant merdeerioù zo hepken)',
+'tog-underline' => 'Liammoù islinennet',
+'tog-watchdefault' => 'Evezhiañ ar pennadoù savet pe kemmet ganin',
+
+
+# Dates
+
+'sunday' => 'Sul',
+'monday' => 'Lun',
+'tuesday' => 'Meurzh',
+'wednesday' => 'Merc\'her',
+'thursday' => 'Yaou',
+'friday' => 'Gwener',
+'saturday' => 'Sadorn',
+'january' => 'Genver',
+'february' => 'C\'hwevrer',
+'march' => 'Meurzh',
+'april' => 'Ebrel',
+'may_long' => 'Mae',
+'june' => 'Mezheven',
+'july' => 'Gouere',
+'august' => 'Eost',
+'september' => 'Gwengolo',
+'october' => 'Here',
+'november' => 'Du',
+'december' => 'Kerzu',
+'jan' => 'Gen',
+'feb' => 'C\'hwe',
+'mar' => 'Meu',
+'apr' => 'Ebr',
+'may' => 'Mae',
+'jun' => 'Mez',
+'jul' => 'Gou',
+'aug' => 'Eos',
+'sep' => 'Gwe',
+'oct' => 'Her',
+'nov' => 'Du',
+'dec' => 'Kzu',
+
+
+# Bits of text used by many pages:
+#
+'categories' => 'Rummadoù ar bajenn',
+'category_header' => 'Niver a bennadoù er rummad "$1"',
+'subcategories' => 'Isrummad',
+'uncategorizedcategories' => 'Rummadoù hep rummadoù',
+'uncategorizedpages' => 'Pajennoù hep rummad ebet',
+'subcategorycount' => '$1 isrummad zo d\'ar rummad-mañ.',
+
+'allarticles' => 'An holl bennadoù',
+'mainpage' => 'Degemer',
+'mainpagetext' => 'Meziant {{SITENAME}} staliet.',
+'portal' => 'Porched ar gumuniezh',
+'portal-url' => '{{ns:4}}:Degemer',
+'about' => 'Diwar-benn',
+'aboutsite' => 'Diwar-benn {{SITENAME}}',
+'aboutpage' => '{{ns:4}}:Diwar-benn',
+'article' => 'Pennad',
+'help' => 'Skoazell',
+'helppage' => '{{ns:4}}:Skoazell',
+'bugreports' => 'Teul an drein',
+'bugreportspage' => '{{ns:4}}:Teul an drein',
+'sitesupport' => 'Skoazellañ dre reiñ un dra bennak',
+'faq' => 'FAG',
+'faqpage' => '{{ns:4}}:FAG',
+'edithelp' => 'Skoazell',
+'edithelppage' => '{{ns:4}}:Penaos degas kemmoù en ur bajenn',
+'cancel' => 'Nullañ',
+'qbfind' => 'Klask',
+'qbbrowse' => 'Furchal',
+'qbedit' => 'Kemmañ',
+'qbpageoptions' => 'Pajenn an dibaboù',
+'qbpageinfo' => 'Pajenn gelaouiñ',
+'qbmyoptions' => 'Ma dibaboù',
+'qbspecialpages' => 'Pajennoù dibar',
+'moredotdotdot' => 'Ha muioc\'h c\'hoazh...',
+'mypage' => 'Ma zammig pajenn',
+'mytalk' => 'Ma c\'haozeadennoù',
+'anontalk' => 'Kaozeal gant ar chomlec\'h IP-mañ',
+'navigation' => 'Merdeiñ',
+'currentevents' => 'Keleier',
+'disclaimers' => 'Kemennoù',
+'disclaimerpage' => '{{ns:4}}:Kemenn hollek',
+'errorpagetitle' => 'Fazi',
+'returnto' => 'Distreiñ d\'ar bajenn $1.',
+'tagline' => 'Ur pennad tennet eus {{SITENAME}}, ar c\'helc\'hgeriadur digor.',
+'whatlinkshere' => 'Daveennoù d\'ar bajenn-mañ',
+'help' => 'Skoazell',
+'search' => 'Klask',
+'searchbutton' => 'Klask',
+'history' => 'Istor',
+'printableversion' => 'Stumm da voullañ',
+'edit' => 'Kemmañ',
+'editthispage' => 'Kemmañ ar bajenn-mañ',
+'delete' => 'Diverkañ',
+'deletethispage' => 'Diverkañ ar bajenn-mañ',
+'undelete_short' => 'Diziverkañ',
+'protect' => 'Gwareziñ',
+'protectthispage' => 'Gwareziñ ar bajenn-mañ',
+'unprotect' => 'Diwareziñ',
+'unprotectthispage' => 'Diwareziñ ar bajenn-mañ',
+'newpage' => 'Pajenn nevez',
+'talkpage' => 'Pajenn gaozeal',
+'specialpage' => 'Pajenn zibar',
+'personaltools' => 'Ostilhoù personel',
+'postcomment' => 'Ouzhpennañ e soñj',
+'articlepage' => 'Sellet ouzh ar pennad',
+'talk' => 'Kaozeadenn',
+'toolbox' => 'Boest ostilhoù',
+'userpage' => 'Pajenn implijer',
+'projectpage' => 'Pajenn meta',
+'imagepage' => 'Pajenn skeudenn',
+'viewtalkpage' => 'Pajenn gaozeal',
+'otherlanguages' => 'Yezhoù all',
+'redirectedfrom' => '(Adkaset eus $1)',
+'lastmodifiedat' => 'Kemmoù diwezhañ degaset d\'ar bajenn-mañ : $2, $1.',
+'viewcount' => 'Sellet ez eus bet ouzh ar bajenn-mañ $1 (g)wech.',
+'copyright' => 'Danvez a c\'haller implijout dindan $1.',
+'protectedpage' => 'Pajenn warezet',
+'nbytes' => '$1 eizhbit',
+'go' => 'Kas',
+'searcharticle' => 'Kas',
+'ok' => 'Mat eo',
+'history' => 'Istor ar bajenn',
+'history_short' => 'Istor',
+'retrievedfrom' => 'Adtapet diwar « $1 »',
+'editsection' => 'kemmañ',
+'editold' => 'kemmañ',
+'toc' => 'Taolenn',
+'showtoc' => 'diskouez',
+'hidetoc' => 'kuzhat',
+'thisisdeleted' => 'Diskouez pe diziverkañ $1 ?',
+'restorelink' => '1 c\'hemm diverket',
+'feedlinks' => 'Lusk:',
+
+# Short words for each namespace, by default used in the 'article' tab in monobook
+'nstab-main' => 'Pennad',
+'nstab-user' => 'Pajenn implijer',
+'nstab-media' => 'Media',
+'nstab-special' => 'Dibar',
+'nstab-project' => 'Diwar-benn',
+'nstab-image' => 'Skeudenn',
+'nstab-mediawiki' => 'Kemennadenn',
+'nstab-template' => 'Patrom',
+'nstab-help' => 'Skoazell',
+'nstab-category' => 'Rummad',
+
+# Main script and global functions
+#
+'nosuchaction' => 'Ober dianv',
+'nosuchactiontext' => 'N\'eo ket anavezet gant ar wiki an ober spisaet en Url.',
+'nosuchspecialpage' => 'N\'eus ket eus ar bajenn zibar-mañ',
+'nospecialpagetext' => 'Goulennet hoc\'h eus ur bajenn zibar n\'eo ket anavezet gant ar wiki.',
+
+# General errors
+#
+'error' => 'Fazi',
+'badaccess' => 'Fazi aotre',
+'databaseerror' => 'Fazi bank roadennoù',
+'dberrortext' => "Fazi ereadur er bank roadennoù. Setu ar goulenn bet pledet gantañ da ziwezhañ :
+<blockquote><tt>$1</tt></blockquote>
+adal an arc\'hwel \"<tt>$2</tt>\".
+Adkaset eo bet ar fazi \"<tt>$3: $4</tt>\" gant MySQL.",
+'dberrortextcl' => 'Ur fazi ereadur zo en ur goulenn graet ouzh ar bank roadennoù. Setu ar goulenn bet pledet gantañ da ziwezhañ :
+"$1"
+graet gant an arc\'hwel "$2"
+adkaset eo bet ar fazi "$3 : $4" gant MySQL.',
+'noconnect' => "Ho tigarez! Da-heul kudennoù teknikel, n'haller ket kevreañ ouzh ar bank roadennoù evit poent.", //"Dibosupl kevreañ ouzh ar bank roadennoù war $1",
+'nodb' => 'Dibosupl dibab ar bank roadennoù $1',
+'cachederror' => 'Un eilenn eus ar bajenn goulennet eo homañ; marteze n\'eo ket bet hizivaet',
+'readonly' => 'Hizivadurioù stanket war ar bank roadennoù',
+'enterlockreason' => 'Merkit perak eo stanket hag istimit pegeit e chomo evel-henn',
+'readonlytext' => "Stanket eo an ouzhpennadennoù hag an hizivadurioù war bank roadennoù {{SITENAME}}; moarvat peogwir emeur oc\h ober war-dro ar bank. Goude-se e vo plaen pep tra en-dro. Setu perak eo bet stanket ar bank gant ar merour :
+<p>$1",
+'missingarticle' => 'N\'eo ket bet ar bank roadennoù evit kavout testenn ur bajenn zo anezhi c\'hoazh gant an titl "$1".
+N\'eo ket ur fazi gant ar bank roadennoù, un draen gant ar wiki marteze a-walc\'h.
+Kasit, ni ho ped, keloù eus an draen-mañ d\'ur merour en ur verkañ mat dezhañ chomlec\'h ar bajenn e kaoz.',
+'internalerror' => 'Fazi diabarzh',
+'filecopyerror' => 'Dibosupl eilañ « $1 » war-du « $2 ».',
+'fileinfo' => '$1Ko, seurt MIME: <tt>$2</tt>',
+'filerenameerror' => 'Dibosupl da adenvel « $1 » e « $2 ».',
+'filedeleteerror' => 'Dibosupl da ziverkañ « $1 ».',
+'filenotfound' => 'N\'haller ket kavout ar restr "$1".',
+'unexpected' => 'Talvoudenn dic\'hortoz : "$1"="$2".',
+'formerror' => 'Fazi: Dibosupl eo kinnig ar furmskrid',
+'badarticleerror' => 'N\'haller ket seveniñ an ober-mañ war ar bajenn-mañ.',
+'cannotdelete' => "Dibosupl da ziverkañ ar bajenn pe ar skeudenn spisaet.",
+'badtitle' => 'Titl fall',
+'badtitletext' => 'Faziek pe c\'houllo eo titl ar bajenn goulennet; pe neuze eo faziek al liamm etreyezhel',
+'laggedslavemode' => 'Diwallit : marteze a-walc\'h n\'emañ ket ar c\'hemmoù diwezhañ war ar bajenn-mañ',
+'readonly_lag' => 'Stanket eo bet ar bank roadennoù ent emgefre p\'emañ an eilservijerioù oc\'h adpakañ o dale e-keñver ar pennservijer',
+'perfdisabled' => 'Ho tigarez! Diweredekaet eo bet an arc\'hwel-mañ evit poent rak gorrekaat a ra ar bank roadennoù kement ha ma n\'hall ket mui den implijout ar wiki.',
+'perfdisabledsub' => 'Setu aze un eilenn savete eus $1:',
+'viewsource' => 'Sellet ouzh tarzh an destenn',
+'protectedtext' => 'Stanket eo bet ar bajenn-mañ evit ma ne vo ket degaset kemmoù warni ken. Sellet ouzh [[{{ns:4}}:Pajenn warezet]] evit gwelet an abegoù a c\'hall bezañ.',
+'allmessagesnotsupportedDB' => 'N\'haller ket kaout Special:AllMessages rak diweredekaet eo bet wgUseDatabaseMessages.',
+'allmessagesnotsupportedUI' => 'Ne zegemer ket Special:AllMessages yezh hoc\'h etrefas (<b>$1</b>) war al lec\'hienn-mañ.',
+'wrong_wfQuery_params' => 'Arventennoù faziek war an urzhiad wfQuery()<br />
+Arc\'hwel : $1<br />
+Goulenn : $2',
+'versionrequired' => 'Rekis eo Stumm $1 MediaWiki',
+'versionrequiredtext' => 'Rekis eo stumm $1 MediaWiki evit implijout ar bajenn-mañ. Sellit ouzh [[Special:Version]]',
+
+
+# Login and logout pages
+#
+'logouttitle' => 'Dilugañ',
+'logouttext' => 'Diluget oc\'h bremañ.
+Gallout a rit kenderc\'hel da implijout {{SITENAME}} en un doare dizanv, pe en em lugañ en-dro gant un anv all mar fell deoc\'h.',
+
+'welcomecreation' => "<h2>Degemer mat, $1!</h2><p>Krouet eo bet ho kont implijer.
+Na zisoñjit ket da bersonelaat ho {{SITENAME}} en ur sellet ouzh pajenn ar Penndibaboù.",
+
+'loginpagetitle' => 'Ho tisklêriadenn',
+'yourname' => 'Hoc\'h anv implijer',
+'yourpassword' => 'Ho ker-tremen',
+'yourpasswordagain' => 'Skrivit ho ker-tremen en-dro',
+'remembermypassword' => 'Derc\'hel soñj eus ma ger-tremen (toupin)',
+'loginproblem' => '<b>Kudenn zisklêriañ.</b><br />Klaskit en-dro !',
+'alreadyloggedin' => '\'\'\'Implijer $1, disklêriet oc\'h dija!\'\'\'<br />',
+
+'login' => 'Disklêriañ',
+'loginprompt' => 'Ret eo deoc\'h bezañ gweredekaet an toupinoù evit bezañ luget ouzh {{SITENAME}}.',
+'userlogin' => 'Krouiñ ur gont pe en em lugañ',
+'logout' => 'Dilugañ',
+'userlogout' => 'Dilugañ',
+'notloggedin' => 'Diluget',
+'createaccount' => 'Krouiñ ur gont nevez',
+'createaccountmail' => 'dre bostel',
+'badretype' => 'N\'eo ket peurheñvel an eil ouzh egile an daou c\'her-tremen bet lakaet ganeoc\'h.',
+'userexists' => "Implijet eo dija an anv implijer lakaet ganeoc'h. Dibabit unan all mar plij.",
+'youremail' => 'Ma chomlec\'h elektronek',
+'yournick' => 'Sinadur evit ar c\'haozeadennoù (gant ~~~)',
+'yourrealname' => 'Hoc\'h anv gwir*',
+'prefs-help-realname' => '* <strong>Hoc\'h anv</strong> (diret): ma vez spisaet ganeoc\'h e vo implijet evit merkañ ho tegasadennoù.',
+'prefs-help-email' => '* <strong>Chomlec\'h postel</strong> (diret): gantañ e vo aes mont e darempred ganeoc\'h adal al lec\'hienn o terc\'hel kuzh ho chomlec\'h, hag adkas ur ger-tremen deoc\'h ma tichañsfe deoc\'h koll ho hini.',
+'loginerror' => 'Kudenn zisklêriañ',
+'nocookiesnew' => "krouet eo bet ar gont implijer met n'hoc'h ket luget. {{SITENAME}} a implij toupinoù evit al lugañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha d'en em lugañ en-dro.",
+'nocookieslogin' => "{{SITENAME}} a implij toupinoù evit al lugañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha d'en em lugañ en-dro.",
+'noname' => "N'hoc'h eus lakaet anv implijer ebet.",
+'loginsuccesstitle' => "Disklêriet oc'h.",
+'loginsuccess' => "Luget oc'h bremañ war {{SITENAME}} evel \"$1\".",
+'nosuchuser' => "N'eus ket eus an implijer \"$1\".
+Gwiriit eo bet skrivet mat an anv ganeoc\'h pe implijit ar furmskrid a-is a-benn krouiñ ur gont implijer nevez.",
+'nosuchusershort' => 'N\'eus perzhiad ebet gantañ an anv « $1 ». Gwiriit ar reizhskrivadur.',
+'wrongpassword' => 'Ger-tremen kamm. Klaskit en-dro.',
+'mailmypassword' => 'Kasit din ur ger-tremen nevez',
+'passwordremindertitle' => "Ho ker-tremen nevez war {{SITENAME}}",
+'passwordremindertext' => "Unan bennak (c'hwi moarvat) gant ar chomlec'h IP $1 en deus goulennet ma vo kaset deoc'h ur ger-tremen nevez evit monet war ar wiki.
+Ger-tremen an implijer \"$2\" zo bremañ \"$3\".
+Erbediñ a reomp deoc'h en em lugañ ha kemmañ ar ger-termen-mañ an abretañ ar gwellañ.",
+'noemail' => "N'eus bet enrollet chomlec'h elektronek ebet evit an implijer \"$1\".",
+'passwordsent' => "Kaset ez eus bet ur ger-tremen nevez da chomlec'h elektronek an implijer \"$1\".
+Trugarez deoc'h evit en em zisklêriañ kerkent ha ma vo bet resevet ganeoc'h.",
+'mailerror' => 'Fazi en ur gas ar postel : $1',
+'acct_creation_throttle_hit' => 'Ho tigarez, krouet ez eus bet $1 (c\'h)gont ganeoc\'h dija. N\'hallit ket krouiñ unan nevez.',
+
+# Edit page toolbar
+'bold_sample' => 'Testenn dev',
+'bold_tip' => 'Testenn dev',
+'italic_sample' => 'Testenn italek',
+'italic_tip' => 'Testenn italek',
+'link_sample' => 'Liamm titl',
+'link_tip' => 'Liamm diabarzh',
+'extlink_sample' => 'http://www.example.com liamm titl',
+'extlink_tip' => 'Liamm diavaez (na zisoñjit ket http://)',
+'headline_sample' => 'Testenn istitl',
+'headline_tip' => 'Istitl live 2',
+'math_sample' => 'Lakait ho formulenn amañ',
+'math_tip' => 'Formulenn jedoniel (LaTeX)',
+'nowiki_sample' => 'Lakait an destenn anfurmadet amañ',
+'nowiki_tip' => 'Na deuler pled ouzh eradur ar wiki',
+'image_sample' => 'Skouer.jpg',
+'image_tip' => 'Skeudenn enframmet',
+'media_sample' => 'Skouer.ogg',
+'media_tip' => 'Liamm restr media',
+'sig_tip' => 'Ho sinadur gant an deiziad',
+'hr_tip' => 'Liamm a-led (arabat implijout re)',
+
+# Edit pages
+#
+'summary' => 'Diverrañ&nbsp;',
+'subject' => 'Danvez/titl',
+'minoredit' => 'Kemm dister.',
+'watchthis' => 'Evezhiañ ar pennad-mañ',
+'savearticle' => 'Enrollañ',
+'preview' => 'Rakwelet',
+'showpreview' => 'Rakwelet',
+'blockedtitle' => 'Implijer stanket',
+"blockedtext" => "Stanket eo bet ho kont implijer pe ho chomlec'h IP gant $1 evit an abeg-mañ :<br />$2<p>Gallout a rit mont e darempred gant $1 pe gant unan eus ar [[{{ns:4}}:Merourien|verourien]] all evit eskemm ganto war se.",
+'whitelistedittitle' => 'Ret eo bezañ luget evit skridaozañ',
+'whitelistedittext' => 'Ret eo deoc\'h bezañ [[Special:Userlogin|luget]] evit gallout skridaozañ',
+'whitelistreadtitle' => 'Ret eo bezañ luget evit gallout lenn',
+'whitelistreadtext' => 'Ret eo bezañ [[Special:Userlogin|luget]] evit gallout lenn ar pennadoù',
+'whitelistacctitle' => 'N\'hoc\'h ket aotreet da grouiñ ur gont',
+'whitelistacctext' => 'A-benn gallout krouiñ ur gont war ar Wiki-mañ e rankit bezañ [[Special:Userlogin|luget]] ha kaout an aotreoù rekis', // Looxix
+'loginreqtitle' => 'Anv implijer rekis',
+'accmailtitle' => 'Ger-tremen kaset.',
+'accmailtext' => 'Kaset eo bet ger-tremen « $1 » da $2.',
+
+'newarticle' => '(Nevez)',
+'newarticletext' => 'Skrivit amañ testenn ho pennad.',
+'anontalkpagetext' => "---- ''Homañ eo ar bajenn gaozeal evit un implijer(ez) dianv n'eus ket c'hoazh krouet kont ebet pe na implij ket anezhi. Setu perak e rankomp ober gant ar [[chomlec'h IP]] niverel evit disklêriañ anezhañ/i. Gallout a ra ur chomlec'h a seurt-se bezañ rannet etre meur a implijer(ez). Ma'z oc'h un implijer(ez) dianv ha ma stadit ez eus bet kaset deoc'h kemennadennoù na sellont ket ouzhoc'h, gallout a rit [[Special:Userlogin|krouiñ ur gont pe en em lugañ]] kuit a vagañ muioc'h a gemmesk.",
+'noarticletext' => "(N'eus evit poent tamm skrid ebet war ar bajenn-mañ)",
+'clearyourcache' => "'''Notenn:''' Goude bezañ enrollet ho pajenn e rankit adkargañ anezhi a-ratozh evit gwelet ar c'hemmoù : '''Internet Explorer''' : ''ctrl-f5'', '''Mozilla / Firefox''' : ''ctrl-shift-r'', '''Safari''' : ''cmd-shift-r'', '''Konqueror''' : ''f5''.",
+'updated' => '(Hizivaet)',
+'note' => '<strong>Notenn :</strong>',
+'previewnote' => "Diwallit mat, n'eus eus an destenn-mañ nemet ur rakweladenn ha n'eo ket bet enrollet c'hoazh!",
+'previewconflict' => "Gant ar rakweladenn e teu testenn ar bajenn war wel evel ma vo pa vo bet enrollet.",
+'editing' => 'oc\'h aozañ $1',
+'editinguser' => 'oc\'h aozañ $1',
+'editingsection' => 'oc\'h aozañ $1 (rann)',
+'editingcomment' => 'oc\'h aozañ $1 (soñj)',
+'editconflict' => 'tabut kemmañ : $1',
+'explainconflict' => "<b>Enrollet eo bet ar bajenn-mañ war-lerc'h m'ho pefe kroget d'he c'hemmañ.
+E-krec'h an takad aozañ emañ an destenn evel m'emañ enrollet bremañ er bank roadennoù. Ho kemmoù deoc'h a zeu war wel en takad aozañ traoñ. Ret e vo deoc'h degas ho kemmoù d'an destenn zo evit poent. N'eus nemet an destenn zo en takad krec'h a vo saveteet.<br />",
+'yourtext' => 'Ho testenn',
+'storedversion' => 'Stumm enrollet',
+"editingold" => "<strong>Diwallit : o kemm ur stumm kozh eus ar bajenn-mañ emaoc'h. Mard enrollit bremañ e vo kollet an holl gemmoù bet graet abaoe ar stumm-se.</strong>",
+"yourdiff" => "Diforc'hioù",
+/*"copyrightwarning" => "Sellet e vez ouzh an holl degasadennoù graet war {{SITENAME}} evel degasadennoù a zouj da dermenoù ar GNU Free Documentation Licence, un aotre teulioù frank a wirioù (Sellet ouzh $1 evit gouzout hiroc'h). Mar ne fell ket deoc'h e vefe embannet ha skignet ho skridoù, arabat kas anezho. Heñveldra, trugarez da gemer perzh o tegas hepken skridoù savet ganeoc'h pe skridoù tennet eus ur vammen frank a wirioù. <b>NA IMPLIJIT KET LABOURIOÙ GANT GWIRIOÙ AOZER (COPYRIGHT) HEP KAOUT UN AOTRE A-RATOZH!</b>",*/
+"longpagewarning" => "<strong>KEMENN DIWALL: $1 ko eo hed ar bajenn-mañ;
+merdeerioù zo o deus poan da verañ ar pajennoù tro-dro pe en tu all da 32 ko pa vezont savet.
+Marteze e c'hallfec'h rannañ ar bajenn e rannoù bihanoc'h.</strong>",
+"readonlywarning" => "<strong>KEMENN DIWALL: stanket eo bet ar bajenn-mañ evit bezañ trezalc'het,
+n'oc'h ket evit enrollañ ho kemmoù diouzhtu eta. Gallout a rit eilañ an destenn en ur restr hag enrollañ anezhi diwezhatoc'hik.</strong>",
+"protectedpagewarning" => "<strong>KEMENN DIWALL: stanket eo bet ar bajenn-mañ.
+N'eus nemet an implijerien ganto ar statud a verourien a c'hall degas kemmoù enni. Bezit sur ec'h heuilhit an [[Project:Pajenn_warezet|erbedadennoù a denn d'ar pajennoù gwarezet]].<strong>",
+
+# History pages
+#
+'revhistory' => 'Stummoù kent',
+'nohistory' => "Ar bajenn-mañ n'he deus tamm istor ebet.",
+'revnotfound' => 'N\'eo ket bet kavet ar stumm-mañ',
+'revnotfoundtext' => "N'eo ket bet kavet stumm kent ar bajenn-mañ. Gwiriit an URL lakaet ganeoc'h evit mont d'ar bajenn-mañ.",
+
+'loadhist' => 'O kargañ istor ar bajenn',
+'currentrev' => 'Stumm a-vremañ pe stumm red',
+'revisionasof' => 'Stumm eus an $1',
+'cur' => 'red',
+'next' => 'goude',
+'last' => 'diwez',
+'orig' => 'kent',
+'histlegend' => "Alc'hwez : (brem) = diforc'hioù gant ar stumm a-vremañ,
+(diwez) = diforc'hioù gant ar stumm kent, K = kemm bihan",
+'selectnewerversionfordiff' => 'Dibab ur stumm nevesoc\'h',
+'selectolderversionfordiff' => 'Dibab ur stumm koshoc\'h',
+'previousdiff' => '← Diforc\'h kent',
+'previousrevision' => '← Stumm kent',
+'nextdiff' => 'Diforc\'h war-lerc\'h →',
+'nextrevision' => 'Stumm war-lerc\'h →',
+
+
+# Category pages
+#
+'categoriespagetext' => "War ar wiki emañ ar rummadoù da-heul :",
+'categoryarticlecount' => "$1 pennad zo er rummad-mañ.",
+
+
+# Diffs
+#
+'difference' => '(Diforc\'hioù etre ar stummoù)',
+'loadingrev' => 'o kargañ ar stumm kent evit keñveriañ',
+'lineno' => 'Linenn $1:',
+'editcurrent' => 'Kemmañ stumm red ar bajenn-mañ',
+
+
+# Search results
+#
+'searchresults' => 'Disoc\'h ar c\'hlask',
+'searchresulttext' => "Evit kaout muioc'h a ditouroù diwar-benn ar c'hlask e {{SITENAME}}, sellet ouzh [[Project:Klask|Klask e-barzh {{SITENAME}}]].",
+'searchsubtitle' => "Evit ar goulenn \"[[:$1]]\"",
+'searchsubtitleinvalid' => "Evit ar goulenn \"$1\"",
+'badquery' => 'Goulenn savet a-dreuz',
+'badquerytext' => "N'eus ket bet gallet plediñ gant ho koulenn.
+Klasket hoc'h eus, moarvat, ur ger dindan teir lizherenn, ar pezh n'hallomp ket ober evit c'hoazh. Gallet hoc'h eus ober, ivez, ur fazi ereadur evel \"pesked ha skantenn\".
+Klaskit gant ur goulenn all.",
+'matchtotals' => "Klotañ a ra ar goulenn \"$1\" gant $2 (d/z)titl
+pennad ha gant testenn $3 (b/f)pennad.",
+'noexactmatch' => "N'eus pajenn ebet ganti an titl-mañ, esaeañ gant ar c'hlask klok.",
+'titlematches' => "Klotadurioù gant an titloù",
+'notitlematches' => "N'emañ ar ger(ioù) goulennet e titl pennad ebet",
+'textmatches' => "Klotadurioù en testennoù",
+'notextmatches' => "N'emañ ar ger(ioù) goulennet e testenn pennad ebet",
+'prevn' => '$1 kent',
+'nextn' => '$1 war-lerc\'h',
+'viewprevnext' => 'Gwelet ($1) ($2) ($3).',
+'showingresults' => "Diskouez <b>$1</b> disoc'h adal an #<b>$2</b>.",
+'showingresultsnum' => "Diskouez <b>$3</b> disoc'h adal an #<b>$2</b>.",
+'nonefound' => "<strong>Notenn</strong>: alies eo liammet an diouer a zisoc'hoù ouzh an implij a vez graet eus termenoù klask re stank, evel \"da\" pe \"ha\",
+termenoù n'int ket menegeret, pe ouzh an implij a meur a dermen klask (en disoc'hoù ne gaver nemet ar pajennoù enno an holl c'herioù spisaet).",
+'powersearch' => "Klask",
+'powersearchtext' => "
+Klask en esaouennoù :<br />
+$1<br />
+$2 Lakaat ivez ar pajennoù adkas &nbsp; Klask $3 $9",
+'searchdisabled' => "<p>Diweredekaet eo bet an arc'hwel klask war an destenn a-bezh evit ur frapad rak ur samm re vras e oa evit ar servijer. Emichañs e vo tu d'e adlakaat pa vo ur servijer galloudusoc'h ganeomp. Da c'hortoz e c'hallit klask gant Google:</p>",
+"blanknamespace" => "(Principal)", // FIXME FvdP: troet eus "(Main)"
+
+# Preferences page
+#
+'preferences' => 'Penndibaboù',
+'prefsnologin' => 'Diluget',
+'prefsnologintext' => "ret eo deoc'h bezañ [[Special:Userlogin|luget]] evit kemm ho tibaboù implijer.",
+
+'prefsreset' => 'Adlakaet eo bet ar penndibaboù diouzh ar stumm bet enrollet.',
+'qbsettings' => 'Personelaat ar varrenn ostilhoù',
+'changepassword' => 'Kemmañ ar ger-tremen',
+'skin' => 'Gwiskadur',
+'math' => 'Tres ar jedoniezh',
+'dateformat' => 'Stumm an deiziad',
+'math_failure' => 'Fazi jedoniezh',
+'math_unknown_error' => 'fazi dianv',
+'math_unknown_function' => 'kevreizhenn jedoniel dianv',
+'math_lexing_error' => 'fazi ger',
+'math_syntax_error' => 'fazi ereadur',
+'math_image_error' => "C'hwitet eo bet ar gaozeadenn e PNG, gwiriit staliadur Latex, dvips, gs ha convert",
+'math_bad_tmpdir' => "N'hall ket krouiñ pe skrivañ er c'havlec'h da c'hortoz",
+'math_bad_output' => "N'hall ket krouiñ pe skrivañ er c'havlec'h ermaeziañ",
+'math_notexvc' => "N'hall ket an erounezeg 'texvc' bezañ kavet. Lennit math/README evit he c'hefluniañ.",
+'prefs-personal' => 'Titouroù personel',
+'prefs-rc' => 'Kemmoù diwezhañ ha diskouez ar rakweladurioù',
+'prefs-misc' => 'Penndibaboù liesseurt',
+'saveprefs' => 'Enrollañ ar penndibaboù',
+'resetprefs' => 'Adlakaat ar penndibaboù kent',
+'oldpassword' => 'Ger-tremen kozh',
+'newpassword' => 'Ger-temen nevez&nbsp;',
+'retypenew' => 'Kadarnaat ar ger-tremen nevez',
+'textboxsize' => 'Ment ar prenestr kemmañ',
+'rows' => 'Renkennadoù&nbsp;',
+'columns' => 'Bannoù',
+'searchresultshead' => 'Doare diskouez disoc\'hoù an enklaskoù',
+'resultsperpage' => 'Niver a respontoù dre bajenn&nbsp;',
+'contextlines' => 'Niver a linennoù dre respont',
+'contextchars' => 'Niver a arouezennoù kendestenn dre linenn',
+'stubthreshold' => 'Ment vihanañ ar pennadoù berr',
+'recentchangescount' => 'Niver a ditloù er c\'hemmoù diwezhañ',
+'savedprefs' => 'Enrollet eo bet ar penndibaboù.',
+'timezonelegend' => 'Takad eur',
+'timezonetext' => "Mar ne resisait ket al linkadur eur e vo graet gant eur Europa ar C'hornôg dre ziouer.",
+'localtime' => 'Eur lec\'hel',
+'timezoneoffset' => 'Linkadur eur',
+'servertime' => 'Eur ar servijer',
+'guesstimezone' => 'Ober gant talvoudenn ar merdeer',
+"defaultns" => "Klask en esaouennoù-mañ dre ziouer :",
+'yourlanguage' => "Yezh an etrefas&nbsp;",
+
+# Recent changes
+#
+"changes" => "Kemmoù",
+"recentchanges" => "Kemmoù diwezhañ",
+"recentchangestext" => "War ar bajenn-mañ e c'hallot heuliañ ar c'hemmoù diwezhañ c'hoarvezet war {{SITENAME}}.
+[[{{ns:4}}:Degemer|Degemer mat]] d'ar berzhidi nevez!
+Taolit ur sell war ar pajennoù-mañ&nbsp;: [[{{ns:4}}:FAG|foar ar goulennoù]],
+[[{{ns:4}}:Erbedadennoù ha reolennoù da heuliañ|erbedadennoù ha reolennoù da heuliañ]]
+(peurgetket [[{{ns:4}}:Reolennoù envel|reolennoù envel]],
+[[{{ns:4}}:Ur savboent neptu|ur savboent neptu]]),
+hag [[{{ns:4}}:Ar fazioù stankañ|ar fazioù stankañ]].
+
+Mar fell deoc'h e rafe berzh {{SITENAME}}, trugarez da chom hep degas ennañ dafar gwarezet gant [[{{ns:4}}:Copyright|gwirioù aozer (copyrights)]]. An atebegezh wiraouel a c'hallfe ober gaou d'ar raktres.",
+'rcnote' => "Setu aze an/ar <strong>$1</strong> (g/c'h)kemm diwezhañ bet c'hoarvezet e-pad an/ar <strong>$2</strong> deiz diwezhañ.",
+'rcnotefrom' => "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an/ar <strong>$2</strong> (<b>$1</b> d'ar muiañ).",
+'rclistfrom' => "Diskouez ar c'hemmoù diwezhañ abaoe an/ar $1.",
+'rclinks' => "Diskouez an/ar $1 (g/c'h)kemm diwezhañ c'hoarvezet e-pad an/ar $2 devezh diwezhañ; $3 kemmoù dister.", // Looxix
+'diff' => 'diforc\'h',
+'hist' => 'ist',
+'hide' => 'kuzhat',
+'show' => 'diskouez',
+'minoreditletter' => 'D',
+'newpageletter' => 'N',
+
+# Upload
+#
+'upload' => 'Eilañ war ar servijer',
+'uploadbtn' => 'Eilañ ur restr',
+'reupload' => 'Eilañ adarre',
+'reuploaddesc' => 'Distreiñ d\'ar furmskrid.',
+
+'uploadnologin' => 'diluget',
+'uploadnologintext' => "ret eo deoc'h bezañ [[Special:Userlogin|luget]]
+evit eilañ restroù war ar servijer.",
+'uploaderror' => "Fazi",
+'uploadtext' => "'''PAOUEZIT!''' A-raok eilañ ho restr war ar servijer,
+sellit ouzh ar [[Project:Reolennoù implijout ar skeudennoù|reolennoù implijout skeudennoù]] war {{SITENAME}} ha bezit sur e rit diouto.<br />
+Na zisoñjit ket leuniañ ar [[Project:Pajenn zeskrivañ ur skeudenn|bajenn zeskrivañ ur skeudenn]] pa vo war ar servijer.
+
+Evit gwelet ar skeudennoù bet karget war ar servijer c'hoazh pe evit klask en o zouez, kit da [[Special:Imagelist|roll ar skeudennoù]].
+Rollet eo an enporzhiadennoù hag an diverkadennoù war [[Project:Kazetenn_an_enporzhiadennoù|kazetenn an enporzhiadennoù]].
+
+Grit gant ar furmskrid a-is evit eilañ war ar servijer skeudennoù da vezañ implijet en ho pennadoù.
+War an darn vrasañ eus ar merdeerioù e welot ur bouton \"Browse...\" a zigor prenestr kendivizout boas ho reizhiad korvoiñ evit digeriñ restroù.
+Diuzit ur restr a zeuio hec'h anv war wel er vaezienn zo e-kichen ar bouton.
+Kadarnaat a rankit ober ivez, en ur askañ al log zo aze evit se, e touj eilenn ar restr-mañ d'ar gwirioù aozer.
+Klikit war ar bouton \"Kas\" a-benn echuiñ ganti.
+Mard eo gorrek ho kevreadenn e c'hall padout ur frapadig.
+
+Ar furmadoù erbedet zo JPEG evit al luc'hskeudennoù, PNG
+evit an tresadennoù hag ar skeudennoù all, hag OGG evit ar restroù son.
+Lakait anvioù deskrivañ fraezh d'ho restroù, kuit dezho da vezañ kammgemmesket.
+Evit enklozañ ar skeudenn en ur pennad, lakait er pennad-se ul liamm skrivet evel-henn :
+'''<nowiki>[[image:anv_ar_restr.jpg]]</nowiki>''' pe
+'''<nowiki>[[image:anv_ar_restr.png|testenn all]]</nowiki>''' pe
+'''<nowiki>[[media:anv_ar_restr.ogg]]</nowiki>''' evit ar sonioù.
+
+Na zisoñjit ket e c'hall bezañ degaset kemmoù er restroù eilet ganeoc'h, evel war kement pajenn zo eus {{SITENAME}}, ma soñj d'an implijidi all ez eo mat evit ar c'helc'hgeriadur. Mat eo deoc'h gouzout ivez e c'haller stankañ ouzhoc'h ar gwir da vont ouzh ar servijer ma ne implijit ket ar reizhiad evel m'eo dleet.",
+"uploadlog" => "log upload", // FIXME
+"uploadlogpage" => "Log_upload", // FIXME
+"uploadlogpagetext" => "Setu roll ar restroù diwezhañ bet eilet war ar servijer.
+An eur merket eo hini ar servijer (UTC).
+<ul>
+</ul>",
+'filename' => 'Anv&nbsp;',
+'filedesc' => 'Deskrivadur&nbsp;',
+'filestatus' => 'Statud ar gwirioù aozer',
+'filesource' => 'Mammenn',
+'copyrightpage' => "{{ns:4}}:Gwirioù aozer (Copyright)",
+'copyrightpagename' => "aotre {{SITENAME}}",
+'uploadedfiles' => "Restroù eilet",
+'minlength' => "Teir lizherenn da nebeutañ a rank bezañ lakaet da anvioù evit ar skeudennoù.",
+'illegalfilename' => 'Lakaet ez eus bet er restr « $1 » arouezennoù n\'int ket aotreet evit titl ur bajenn. Mar plij, adanvit ar restr hag adkasit anezhi.',
+'badfilename' => 'Anvet eo bet ar skeudenn « $1 ».',
+'badfiletype' => '« .$1 » n\'eo ket ur furmad erbedet evit ar restroù skeudenn.',
+'largefile' => '100Ko eo ar vent vrasañ erbedet evit ar restroù skeudenn.',
+'successfulupload' => 'Eiladenn kaset da benn vat',
+'fileuploaded' => "Eilet eo bet ar restr \"$1\" war ar servijer.
+Heuilhit al liamm-mañ : ($2) evit mont ouzh ar bajenn zeskrivañ ha reiñ titouroù diwar-benn ar restr, da skouer an orin anezhi, an deiz m'eo bet savet, an aozer anezhi, pe kement titour all a c'hall bezañ ganeoc'h.",
+'uploadwarning' => 'Diwallit!',
+'savefile' => 'Enrollañ ar restr',
+'uploadedimage' => '« [[$1]] » eilet war ar servijer',
+'uploaddisabled' => 'Ho tigarez, diweredekaet eo bet kas ar restr-mañ.',
+'uploadcorrupt' => "Brein eo ar restr-mañ, par eo he ment da netra pe fall eo an astenn anezhi.
+Gwiriit anezhi mar plij.",
+'fileexists' => "Ur restr all gant an anv-se zo c'hoazh. Trugarez da wiriañ $1. Ha sur oc'h da gaout c'hoant da gemmañ ar restr-mañ ?",
+'filemissing' => 'Restr ezvezant',
+
+
+# Image list
+#
+'imagelist' => 'Roll ar skeudennoù',
+'imagelisttext' => 'Setu ur roll $1 skeudenn rummet $2.',
+'getimagelist' => 'Oc\'h adtapout roll ar skeudennoù',
+'ilsubmit' => 'Klask',
+'showlast' => 'diskouez an/ar $1 skeudenn ziwezhañ rummet dre $2.',
+'byname' => 'dre o anv',
+'bydate' => 'dre an deiziad anezho',
+'bysize' => 'dre o ment',
+'imgdelete' => 'diverk',
+'imgdesc' => 'deskr',
+'imglegend' => "Alc'hwez: (deskr) = diskouez/kemmañ deskrivadur ar skeudenn.",
+'imghistory' => 'Istor ar skeudenn',
+'revertimg' => 'adlak',
+'deleteimg' => 'diverk',
+'deleteimgcompletely' => 'diverk',
+'imghistlegend' => "Alc'hwez: (brem) = setu ar skeudenn zo bremañ, (diverk) = diverkañ ar stumm kozh-mañ, (adlak) = adlakaat ar stumm kozh-mañ.
+<br /><i>Klikit war an deiziad evit gwelet ar skeudenn eilet d'an deiziad-se</i>.",
+'imagelinks' => 'Liammoù war-du ar skeudenn',
+'linkstoimage' => 'Ul liamm war-du ar skeudenn-mañ zo war ar pajennoù a-is :',
+'nolinkstoimage' => 'N\'eus liamm ebet war-du ar skeudenn-mañ war pajenn ebet.',
+'showbigimage' => 'Pellgargañ ur stumm uhel e bizhder ($1x$2, $3 Ko)',
+
+# Statistics
+
+'statistics' => 'Stadegoù',
+'sitestats' => 'Stadegoù al lec\'hienn',
+'userstats' => 'Stadegoù implijer',
+'sitestatstext' => '<b>$1</b> (b/f)pajenn zo er bank roadennoù evit poent.
+
+Er sifr-mañ emañ ar pajennoù "kaozeal", ar pajennoù a denn da {{SITENAME}}, ar pajennoù bihanañ ("stouvoù"), ar pajennoù adkas ha meur a seurt pajenn all n\'haller ket sellet outo evel pennadoù.
+Mar lakaer ar pajennoù-se er-maez e chom <b>$2</b> (b/f)pajenn zo moarvat gwir pennadoù.<p>
+<b>$3</b> (b/f)pajenn zo bet sellet outo ha <b>$4</b> (b/f)pajenn zo bet kemmet
+
+abaoe m\'eo bet hizivaet ar meziant (31 Here 2002).
+Ar pezh a ra ur geidenn a <b>$5</b> (g/c\'h)kemm dre bajenn ha <b>$6</b> selladenn evit ur c\'hemm.",
+"userstatstext" => "<b>$1</b> implijer enrollet zo.
+En o zouez, <b>$2</b> zo ganto ar statud merour (sellet ouzh $3).',
+
+
+# Maintenance Page
+#
+'disambiguations' => 'Pajennoù disheñvelaat',
+'disambiguationspage' => "{{ns:4}}:Liammoù_ouzh_ar_pajennoù_disheñvelaat",
+'disambiguationstext' => "Liammet eo ar pennadoù da-heul ouzh ur <i>bajenn zisheñvelaat</i>. Padal e tlefent bezañ liammet ouzh an danvez anezho.<br />Sellet e vez ouzh ur bajenn evel ouzh ur bajenn zisheñvelaat m'eo liammet adal $1.<br />ne vez ket kemeret e kont al liammoù adal <i>lec'hioù</i> all.",
+'doubleredirects' => "Adkasoù doubl",
+'doubleredirectstext' => "<b>Diwallit:</b> Gallout a ra bezañ \"pozitivoù faos\ er roll-mañ. D'ar mare-se eo moarvat peogwir ez eus testenn war bajenn an #REDIRECT kentañ ivez.<br />War bep linenn emañ al liammoù war-du pajenn an adkas 1{{añ}} hag en eil hag ivez linenn gentañ pajenn an eil adkas zo sañset reiñ ar pal \"gwirion\". War-du ar pal-se e tlefe liammañ an #REDIRECT kentañ.",
+'brokenredirects' => 'Adkasoù torret',
+'brokenredirectstext' => 'Kas a ra an adkasoù-mañ d\'ur bajenn n\'eus ket anezhi.',
+
+
+# Miscellaneous special pages
+#
+'lonelypages' => 'Pajennoù en o-unan',
+'unusedimages' => 'Skeudennoù en o-unan',
+'popularpages' => 'Pajennoù sellet ar muiañ',
+'nviews' => '$1 selladenn',
+'wantedpages' => 'Pajennoù goulennet ar muiañ',
+'nlinks' => '$1 daveenn',
+'allpages' => 'An holl bajennoù',
+'randompage' => 'Ur bajenn dre zegouezh',
+'shortpages' => 'Pennadoù berr',
+'longpages' => 'Pennadoù hir',
+'listusers' => 'Roll ar berzhidi',
+'specialpages' => 'Pajennoù dibar',
+'spheading' => 'Pajennoù dibar',
+'recentchangeslinked' => 'Heuliañ al liammoù',
+'rclsub' => "(eus ar pajennoù liammet ouzh \"$1\")",
+'newpages' => 'Pajennoù nevez',
+'ancientpages' => 'Pennadoù koshañ',
+'move' => 'adenvel',
+'movethispage' => 'Adenvel ar bajenn',
+'unusedimagestext' => "<p>Na zisoñjit e c'hall lec'hiennoù all, {{SITENAME}}où all, kaout ul liamm eeun war-du ar skeudenn-mañ hag e c'hall neuze ar skeudenn-mañ bezañ bet lakaet war ar roll-mañ tra m'emañ implijet e lec'h all.", // TODO: grammar
+'booksources' => "Oberennoù dave",
+'booksourcetext' => "Setu ur rollad liammoù etrezek lec'hiennoù all a werzh levrioù nevez pe eildorn a gavot enno, marteze, titouroù war an oberennoù a glaskit. N'eo ket stag {{SITENAME}} ouzh hini ebet eus ar c'hevredadoù-se, n'eo ket en sell e mod ebet da vrudañ anezho.",
+'alphaindexline' => '$1 da $2',
+'version' => 'Stumm',
+
+# All pages
+#
+'allinnamespace' => "An holl bajennoù (esaouenn $1)",
+'allpagesnext' => "War-lerc'h",
+'allpagesprev' => "Kent",
+'allpagessubmit' => "Kadarnaat",
+
+# Email this user
+#
+'mailnologin' => 'Chomlec\'h ebet',
+'mailnologintext' => 'Ret eo deoc\'h bezañ [[Special:Userlogin|luget]]
+ha bezañ merket ur chomlec\'h postel reizh en ho [[Special:Preferences|penndibaboù]]
+evit gallout kas ur postel d\'un implijer all.',
+'emailuser' => 'Kas ur postel d\'an implijer-mañ',
+'emailpage' => 'Postel implijer',
+'emailpagetext' => "M\'en deus an implijer-se merket ur chomlec\'h postel reizh en e benndibaboù e vo kaset ur postel dezhañ dre ar furmskrid a-is.
+E maezienn \"Kaser\" ho postel e vo merket ar chomlec'h postel resisaet ganeoc'h-c'hwi, d'ar resever da c'halloud respont deoc'h ma kar.",
+'noemailtitle' => 'Chomlec\'h elektronek ebet',
+'noemailtext' => "N'en deus ket an implijer-mañ resisaet chomlec'h postel reizh ebet pe dibabet en deus chom hep resev posteloù a-berzh an implijerien all.",
+
+'emailfrom' => 'Kaser',
+'emailto' => 'Resever',
+'emailsubject' => 'Danvez',
+'emailmessage' => 'Postel',
+'emailsend' => 'Kas',
+'emailsent' => 'Postel kaset',
+'emailsenttext' => 'Kaset eo bet ho postel.',
+'usermailererror' => 'Fazi postel :',
+'defemailsubject' => 'postel kaset eus {{SITENAME}}',
+
+# Watchlist
+#
+'watchlist' => 'Rollad evezhiañ',
+'nowatchlist' => "N'eus pennad ebet en ho rollad evezhiañ.",
+'watchnologin' => "Diluget",
+'watchnologintext' => "Ret eo deoc'h bezañ [[Special:Userlogin|luget]]
+evit kemmañ ho roll.",
+'addedwatch' => 'Ouzhpennet d\'ar roll',
+'addedwatchtext' => "<p>Ouzh ho <a href=\"{{localurl:Special:Watchlist}}\">rollad evezhiañ</a> eo bet ouzhpennet ar bajenn \"$1\".
+Kemmoù da zont ar bajenn-mañ ha re ar bajenn gaozeal stag outi a vo rollet amañ hag e teuio ar bajenn <b>e tev</b> er <a href=\"{{localurl:Special:Recentchanges}}\">roll kemmoù diwezhañ</a> evit bezañ gwelet aesoc'h ganeoc'h.</p>
+
+<p>Evit tennañ ar bajenn-mañ a-ziwar ho rollad evezhiañ. klikit war \"Paouez da evezhiañ\" er framm merdeiñ.</p>",
+'removedwatch' => "Lamet a-ziwar ar rollad evezhiañ",
+'removedwatchtext' => "Lamet eo bet ar bajenn « $1 » a-ziwar ho rollad evezhiañ.",
+'watch' => 'Evezhiañ',
+'watchthispage' => 'Evezhiañ ar bajenn-mañ',
+'unwatch' => 'paouez da evezhiañ',
+'unwatchthispage' => 'Paouez da evezhiañ',
+'notanarticle' => 'Pennad ebet',
+'watchnochange' => "Pajenn ebet eus ar re evezhiet ganeoc'h n'eo bet kemmet e-pad ar prantad spisaet",
+'watchdetails' => "Lakaet hoc'h eus $1 (b/f)pajenn dindan evezh, anez kontañ ar pajennoù kaozeal. [$4 Diskouez ha kemmañ ar roll klok].", // Looxix
+'watchmethod-recent' => "Gwiriañ ar c'hemmoù diwezhañ er pajennoù dindan evezh", // Looxix
+'watchmethod-list' => "Gwiriañ ar c'hemmoù diwezhañ evit ar pajennoù evezhiet", // Looxix
+'removechecked' => "Lemel ar pennadoù diuzet a-ziwar ar rollad evezhiañ",
+'watchlistcontains' => "$1 (b/f)pajenn zo en ho rollad evezhiañ",
+'watcheditlist' => "Setu aze ho rollad evezhiañ dre urzh al lizherenneg. Diuzit ar pajennoù hoc'h eus c'hoant da lemel a-ziwar ar roll ha klikit war ar bouton \"lemel a-ziwar ar rollad evezhiañ\" e traoñ ar skramm.",
+'removingchecked' => "Lamet eo ar pennadoù diuzet a-ziwar ho rollad evezhiañ...",
+'couldntremove' => "Dibosupl da lemel kuit ar pennad « $1 »...",
+'iteminvalidname' => "ur gudenn zo gant ar pennad « $1 » : n'eo ket mat e anv...",
+'wlnote' => "A-is emañ an/ar $1 (g/c'h)kemm diwezhañ abaoe an/ar <b>$2</b> eurvezh diwezhañ.", // Looxix
+'wlshowlast' => "diskouez an/ar $1 eurvezh $2 (z)devezh $3 diwezhañ",
+'wlsaved' => "Ne vez hizivaet ar rollad evezhiañ nemet ur wech bep eurvezh kuit da sammañ ar servijer betek re.",
+
+# Delete/protect/revert
+#
+'deletepage' => 'Diverkañ ur bajenn',
+'confirm' => 'Kadarnaat',
+'excontent' => "endalc'had '$1'",
+'exbeforeblank' => "A-raok diverkañ e oa an endalc'had : '$1'",
+'exblank' => 'pajenn c\'houllo',
+'confirmdelete' => 'Kadarnaat an diverkañ',
+'deletesub' => '(O tiverkañ "$1")',
+'historywarning' => 'Diwallit: War-nes diverkañ ur bajenn ganti un istor emaoc\'h :',
+'confirmdeletetext' => "War-nes diverkañ da vat ur bajenn pe ur skeudenn eus ar bank roadennoù emaoc'h. Diverket e vo ivez an holl stummoù kozh stag outi.
+Kadarnait, mar plij, eo mat an dra-se hoc'h eus c'hoant, e komprenit mat an heuliadoù, hag e rit se diouzh an [[{{ns:4}}:Erbedadennoù ha reolennoù da heuliañ|erbedadennoù ha reolennoù da heuliañ]].",
+'actioncomplete' => 'Diverkadenn kaset da benn',
+'deletedtext' => '"Diverket eo bet $1".
+Sellet ouzh $2 evit roll an diverkadennoù diwezhañ.',
+'deletedarticle' => 'o tiverkañ "$1"',
+'dellogpage' => 'Istor an diverkadennoù',
+'dellogpagetext' => 'Setu roll an diverkadennoù diwezhañ.
+Eur ar servijer (UTC) eo an eur merket.
+<ul>
+</ul>',
+'deletionlog' => 'istor an diverkadennoù',
+'reverted' => 'Adlakaat ar stumm kent',
+'deletecomment' => 'Abeg an diverkadenn',
+'imagereverted' => 'Adlakaet eo bet ar stumm kent.',
+'rollback' => 'disteuler ar c\'hemmoù',
+'rollback_short' => 'Disteuler',
+'rollbacklink' => 'disteuler',
+'rollbackfailed' => 'C\'hwitet eo bet an distaoladenn',
+'cantrollback' => "Dibosupl da zisteuler: an aozer diwezhañ eo an hini nemetañ da vezañ kemmet ar pennad-mañ",
+'alreadyrolled' => "Dibosupl eo disteuler ar c'hemm diwezhañ graet e [[$1]]
+gant [[User:$2|$2]] ([[User talk:$2|Talk]]); kemmet pe distaolet eo bet c'hoazh gant unan bennak all.
+
+Ar c'hemm diwezhañ a oa gant [[User:$3|$3]] ([[User talk:$3|Talk]]). ", //Looxix
+# only shown if there is an edit comment
+'editcomment' => "Diverradenn ar c'hemm a oa: \"<i>$1</i>\".", //Looxix
+'revertpage' => 'Adlakaat kemm diwezhañ $1',
+'protectlogpage' => 'Log_gwareziñ',
+'protectlogtext' => "Sellet ouzh ar [[{{ns:4}}:Pajenn warezet|c'huzulioù diwar-benn ar pajennoù gwarezet]].",
+'protectedarticle' => 'en/he deus gwarezet [[$1]]',
+'unprotectedarticle' => 'en/he deus diwarezet [[$1]]',
+
+'protectsub' => '(Stankañ "$1")',
+'confirmprotect' => 'Kadarnaat ar stankañ',
+'confirmprotecttext' => 'Ha mennet oc\'h da wareziñ ar bajenn-mañ ?',
+'protectcomment' => 'Abeg ar stankañ',
+
+'unprotectsub' => '(Distankañ "$1")',
+'confirmunprotecttext' => 'Ha mennet oc\'h da ziwareziñ ar bajenn-mañ?',
+'confirmunprotect' => 'Abeg an distankañ',
+'unprotectcomment' => 'Abeg an distankañ',
+'protectmoveonly' => 'Gwareziñ an adkasoù hepken',
+
+
+
+# Groups
+#
+'editusergroup' => 'Kemmañ ar strolladoù implijerien',
+
+# Special:Undelete
+#
+'undelete' => 'Diziverkañ ar bajenn ziverket',
+'undeletepage' => 'Gwelet ha diziverkañ ar bajenn ziverket',
+'undeletepagetext' => 'Diverket eo bet ar pajennoù-mañ, er pod-lastez emaint met er bank roadennoù emaint c\'hoazh ha gallout a reont bezañ diziverket eta.
+Ingal e c\'hall ar pod-lastez bezañ goullonderet.',
+
+'undeletearticle' => 'Diziverkañ ar pennadoù diverket',
+'undeleterevisions' => '$1 (g/c\'h)kemm diellaouet',
+'undeletehistory' => "Ma tiziverkit ar bajenn e vo diziverket an holl gemmoù bet degaset en hec'h istor.
+Ma'z eus bet krouet ur bajenn nevez dezhi an hevelep anv abaoe an diverkadenn, e teuio war wel ar c'hemmoù diziverket er rann istor a-raok, ha ne vo ket erlec'hiet ar stumm red ent emgefre.",
+"undeleterevision" => "Stumm diverket ($1)",
+'undeletebtn' => 'Diziverkañ!',
+'undeletedarticle' => "Diziverket\"$1\"",
+'undeletedrevisions' => "$1 stumm bet diziverket",
+
+# Contributions
+#
+'contributions' => 'Degasadennoù',
+'mycontris' => 'Ma degasadennnoù',
+'contribsub' => 'Evit $1',
+'nocontribs' => 'N\'eus bet kavet kemm ebet o klotañ gant an dezverkoù-se.',
+'ucnote' => "Setu an/ar <b>$1</b> (b/c'h)kemm diwezhañ bet graet gant an implijer-mañ e-pad an/ar <b>$2</b> devezh diwezhañ.",
+'uclinks' => 'diskouez an/ar $1 (g/c\'h)kemm diwezhañ; diskouez an/ar $2 devezh diwezhañ.',
+'uctop' => ' (diwezhañ)',
+
+# What links here
+#
+'whatlinkshere' => 'Pajennoù liammet',
+'notargettitle' => 'netra da gavout',
+'notargettext' => 'Merkit anv ur bajenn da gavout pe hini un implijer.',
+'linklistsub' => '(Roll al liammoù)',
+'linkshere' => 'Ar pajennoù a-is zo enno ul liamm a gas war-du ar bajenn-mañ:',
+'nolinkshere' => 'N\'eus pajenn ebet enni ul liamm war-du ar bajenn-mañ.',
+'isredirect' => 'pajenn adkas',
+
+# Block/unblock IP
+#
+'blockip' => 'Stankañ ouzh ur chomlec\'h IP',
+'blockiptext' => "Grit gant ar furmskrid a-is evit stankañ ar moned skrivañ ouzh ur chomlec'h IP bennak.
+Seurt diarbennoù n'hallont bezañ kemeret nemet evit mirout ouzh an taolioù gaou hag a-du gant an [[{{ns:4}}:Erbedadennoù ha reolennoù da heuliañ|erbedadennoù ha reolennoù da heuliañ]].
+Roit a-is an abeg resis (o verkañ, da skouer, roll ar pajennoù bet graet gaou outo).",
+'ipaddress' => 'Chomlec\'h IP',
+'ipbreason' => 'Abeg ar stankañ',
+'ipbsubmit' => 'Stankañ ouzh ar chomlec\'h-mañ',
+'badipaddress' => 'Kamm eo ar chomlec\'h IP.',
+'blockipsuccesssub' => 'Stankadenn deuet da benn vat',
+'blockipsuccesstext' => "Stanket ez eus bet ouzh chomlec'h IP \"$1\".
+<br />Gallout a rit sellet ouzh ar [[Special:Ipblocklist|bajenn-mañ]] evit gwelet roll ar chomlec'hioù IP stanket outo.",
+'unblockip' => "Distankañ ur chomlec'h IP",
+'unblockiptext' => 'Grit gant ar furmskrid a-is evit adsevel ar moned skrivañ ouzh ur chomlec\'h IP bet stanket a-gent.',
+'ipusubmit' => 'Distankañ ar chomlec\'h-mañ',
+'ipblocklist' => 'Roll ar chomlec\'hioù IP stanket outo',
+'blocklistline' => '$1, $2 en/he deus stanket $3',
+'blocklink' => 'stankañ',
+'unblocklink' => 'distankañ',
+'contribslink' => 'degasadenn',
+'autoblocker' => "Emstanket rak rannañ a rit ur chomlec'h IP gant \"$1\". Abeg : \"$2\".",
+'blocklogpage' => 'Log stankañ',
+'blocklogentry' => 'o stankañ « $1 »',
+'blocklogtext' => "Setu roud stankadennoù ha distankadennoù an implijerien. N'eo ket bet rollet ar chomlec'hioù IP bet stanket outo ent emgefre. Sellet ouzh [[Special:Ipblocklist|roll an implijerien stanket]] evit gwelet piv zo stanket e gwirionez.",
+'unblocklogentry' => 'o tistankañ "$1"',
+'ipb_expiry_invalid' => 'amzer termen direizh.',
+'ip_range_invalid' => "Stankañ IP direizh.",
+'proxyblocker' => 'Stanker proksi',
+'proxyblockreason' => "Stanket eo bet hoc'h IP rak ur proksi digor eo. Trugarez da gelaouiñ ho pourvezer moned ouzh ar Genrouedad pe ho skoazell deknikel eus ar gudenn surentez-mañ.",
+'proxyblocksuccess' => "Echu.",
+'ipbexpiry' => 'Pad ar stankadenn',
+
+# Developer tools
+#
+'lockdb' => 'Prennañ ar bank',
+'unlockdb' => 'Dibrennañ ar bank',
+'lockdbtext' => "Ma vez prennet ar bank roadennoù n'hallo ket mui implijer ebet kemmañ pajennoù, enrollañ e benndibaboù, kemmañ e rollad evezhiañ na seveniñ oberiadenn ebet a c'houlenn degas kemm pe gemm er bank roadennoù.
+Kadarnait, mar plij, eo se hoc'h eus c'hoant da ober hag e vo dibrennet ar bank ganeoc'h kerkent ha ma vo bet kaset da benn hoc'h oberiadenn drezalc'h.",
+'unlockdbtext' => "Dibrennañ ar bank a lakay adarre an holl implijerien e-tailh da gemmañ pajennoù, hizivaat o fenndibaboù hag o rollad evezhiañ ha seveniñ an holl oberiadennoù a c'houlenn ma vefe kemmet ar bank roadennoù.
+Kadarnait, mar plij, eo se hoc'h eus c'hoant da ober.",
+"lockconfirm" => "Ya, kadarnaat a ran e fell din prennañ ar bank roadennoù.",
+"unlockconfirm" => "Ya, kadarnaat a ran e fell din dibrennañ ar bank roadennoù.",
+
+'lockbtn' => 'Prennañ ar bank',
+'unlockbtn' => 'Dibrennañ ar bank',
+'locknoconfirm' => 'N\'eo ket bet asket al log kadarnaat ganeoc\'h.',
+'lockdbsuccesssub' => 'Bank prennet.',
+'unlockdbsuccesssub' => 'Bank dibrennet.',
+"lockdbsuccesstext" => "Prennet eo bank roadennnoù {{SITENAME}}.
+
+<br />Na zisoñjit ket e zibrennañ pa vo bet kaset da benn vat hoc'h oberiadenn drezalc'h.",
+'unlockdbsuccesstext' => 'Dibrennet eo bank roadennoù {{SITENAME}}.',
+
+# Special:Makesysop
+'makesysoptitle' => 'A ro ar gwirioù merañ.',
+'makesysoptext' => 'Graet e vez gant ar furmskrid-mañ gant ar Pennoù-bras a-benn reiñ ar gwirioù merañ.
+Lakait anv an implijer er voest ha pouezit war ar bouton evit reiñ ar gwirioù dezhañ/i.',
+'makesysopname' => 'Anv an implijer(ez):',
+'makesysopsubmit' => 'Reiñ ar gwirioù merañ d\'an implijer(ez)-mañ',
+'makesysopok' => "<b>An implijer(ez) \"$1\" zo bremañ merour(ez)</b>",
+'makesysopfail' => "<b>N'en/he deus ket gallet an implijer(ez) \"$1\" resev ar gwirioù merañ. (Ha skrivet hoc'h eus an anv evel m'eo dleet?)</b>",
+'rights' => 'Gwirioù:',
+'set_user_rights' => "A laka gwirioù an implijer(ez)",
+'user_rights_set' => "<b>Hizivaet eo gwirioù an implijer(ez) \"$1\"</b>",
+'setbureaucratflag' => "A ro ar gwirioù Penn-bras",
+'set_rights_fail' => "<b>N'eus ket bet gallet lakaat e plas gwirioù an implijer(ez) \"$1\". (Ha skrivet hoc'h eus an anv evel m'eo dleet?)</b>",
+'makesysop' => 'Reiñ ar gwirioù merañ d\'un implijer(ez)',
+
+
+# Spam
+#
+'spamprotectionmatch' => "Dihunet eo bet an detektour Spam: $1 gant an destenn-mañ",
+'spamprotectiontext' => "Pajenn warezet ent emgefre abalamour d'ar Spam",
+'spamprotectiontitle' => "Pajenn warezet ent emgefre abalamour d'ar Spam",
+
+# Patrolling
+#
+'markaspatrolleddiff' => 'Merkañ evel gwiriet',
+'markaspatrolledtext' => 'Merkañ ar pennad-mañ evel gwiriet',
+'markedaspatrolled' => 'Merkañ evel gwiriet',
+'markedaspatrolledtext' => 'Merket eo bet ar stumm diuzet evel gwiriet.',
+'rcpatroldisabledtext' => "Diweredekaet eo bet an arc'hwel evezhiañ ar c'hemmoù diwezhañ.",
+
+# Move page
+#
+'movepage' => 'Adenvel ur pennad',
+"movepagetext" => "Grit gant ar furmskrid a-is evit adenvel ur pennad hag adkas an holl stummoù kent anezhañ war-du an anv nevez.
+Dont a raio an titl kentañ da vezañ ur bajenn adkas war-du an titl nevez.
+Ne vo ket kemmet liammoù an titl kozh ha ne vo ket dilec'hiet ar bajenn gaozeal, ma'z eus anezhi.
+
+'''DIWALLIT!'''
+Gallout a ra kement-se bezañ ur c'hemm bras ha dic'hortoz evit ur pennad a vez sellet outi alies;
+bezit sur e komprenit mat an heuliadoù a-raok kenderc'hel ganti.",
+"movepagetalktext" => "Gant se e vo adanvet ent emgefre ar bajenn gaozeal stag, ma'z eus anezhi '''nemet ma:'''
+*ec'h adanvit ur bajenn war-du ul lec'h all,
+*ez eus ur bajenn gaozeal c'hoazh gant an anv nevez, pe
+*diweredekaet hoc'h eus ar bouton a-is.
+
+En degouezh-se e rankot adenvel pe gendeuziñ ar bajenn c'hwi hoc'h-unan ma karit.",
+
+'movearticle' => 'Dilec\'hiañ ar pennad',
+'movenologin' => 'Diluget',
+'movenologintext' => "Evit adenvel ur pennad e rankit bezañ [[Special:Userlogin|luget]] evel un implijer enrollet.",
+'newtitle' => "anv nevez",
+'movepagebtn' => "Adenvel ar pennad",
+'pagemovedsub' => "Dilec'hiadenn kaset da benn vat",
+'pagemovedtext' => "Adkaset eo bet ar pennad \"[[$1]]\" da \"[[$2]]\".",
+'articleexists' => "Ur pennad gantañ an anv-se zo dija pe n\'eo ket reizh an titl hoc\'h eus dibabet.
+Dibabit unan all mar plij.",
+'talkexists' => "Dilec'hiet mat eo bet ar bajenn hec'h-unan met chomet eo ar bajenn gaozeal rak unan all a oa dija gant an anv nevez-se. Kendeuzit anezho c'hwi hoc'h-unan mar plij.",
+'1movedto2_redir' => "$1 adkaset war-du $2 (adkas)",
+'movedto' => 'adanvet e',
+'movetalk' => 'Adenvel ivez ar bajenn "gaozeal", mar bez ret.',
+'talkpagemoved' => 'Dilec\'hiet eo bet ivez ar bajenn gaozeal stag.',
+'talkpagenotmoved' => '<strong>N\'eo ket bet</strong> dilec\'hiet ar bajenn gaozeal stag.',
+'1movedto2' => '$1 adkaset war-du $2',
+'movereason' => 'Abeg an adkas',
+
+
+# Export page
+'export' => 'Ezporzhiañ pajennoù',
+'exporttext' => "Gallout a rit ezporzhiañ en XML an destenn ha pennad istor ur bajenn pe ur strollad pajennoù; a-benn neuze e c'hall an disoc'h bezañ enporzhiet en ur wiki all a ya en-dro gant ar meziant MediaWiki, treuzfurmet pe enrollet da vezañ implijet diouzh ma karot.",
+'exportcuronly' => "Ezporzhiañ hepken ar stumm red hep an istor anezhañ",
+
+# Namespace 8 related
+
+'allmessages' => 'An holl gemennadennoù',
+'allmessagestext' => 'Setu roll an holl gemennadennoù a c\'haller kaout e bed MediaWiki',
+
+# Thumbnails
+
+'thumbnail-more' => 'Brasaat',
+'missingimage' => "<b>Skeudenn a vank</b><br /><i>$1</i>",
+
+# Special:Import
+'import' => 'Enporzhiañ pajennoù',
+'importfailed' => 'C\'hwitet eo an enporzhiadenn: $1',
+'importhistoryconflict' => 'Divankadennoù zo er pennad istor ha tabut zo gant se (marteze eo bet enporzhiet ar bajenn araozoc\'h)',
+'importnotext' => 'Goullo pe hep tamm testenn ebet',
+'importsuccess' => 'Deuet eo an enporzhiadenn da benn vat!',
+'importtext' => 'Ezporzhiit ur restr adal ar wiki orin en ur implij an arc\'hwel Special:Export, enrollit ar bajenn war ho pladenn ha degasit anezhi amañ.',
+
+# Keyboard access keys for power users
+# inherit
+
+# tooltip help for the main actions
+'tooltip-compareselectedversions' => 'Sellet ouzh an diforc\'hioù zo etre daou stumm diuzet ar bajenn-mañ. [alt-v]',
+'tooltip-minoredit' => 'Merkañ ar c\'hemm-mañ evel dister [alt-i]',
+'tooltip-preview' => 'Rakwelet ar c\'hemmoù; trugarez d\'ober gantañ a-raok enrollañ! [alt-p]',
+'tooltip-save' => 'Enrollañ ho kemmoù [alt-s]',
+'tooltip-search' => 'Klask er wiki-mañ',
+'tooltip-watch' => 'Ouzhpennañ ar bajenn-mañ ouzh ho rollad evezhiañ',
+
+# Metadata
+'nocreativecommons' => "N'eo ket gweredekaet ar roadennoù meta 'Creative Commons RDF' war ar servijer-mañ.",
+'nodublincore' => "Diweredekaet eo ar roadennoù meta 'Dublin Core RDF' war ar servijer-mañ.",
+'notacceptable' => "N'eo ket ar servijer wiki-mañ evit pourchas roadennoù eo gouest hoc'h arval da lenn.",
+
+# Attribution
+'anonymous' => 'Implijer(ez) dianv eus {{SITENAME}}',
+'siteuser' => 'Implijer(ez) $1 eus {{SITENAME}}',
+'lastmodifiedatby' => "Kemmet eo bet ar bajenn-mañ da ziwezhañ d'an/ar $2, $1 gant $3",
+'and' => 'ha(g)',
+'contributions' => 'diazezet war labour $1.',
+'siteusers' => 'Implijer(ez) $1 eus {{SITENAME}}',
+'creditspage' => 'Pajennoù kredoù',
+
+# confirmemail
+'confirmemail' => 'Kadarnaat ar postel',
+'confirmemail_text' => 'Rankout a ra ar wiki-mañ bezañ gwiriet ho chomlec\'h postel a-raok gallout implijout nep arc\'hwel postel. Implijit ar bouton a-is evit kas ur postel kadarnaat d\'ho chomlec\'h. Ul liamm ennañ ur c\'hod a vo er postel. Kargit al liamm-se en o merdeer evit kadarnaat ho chomlec\'h.',
+'confirmemail_send' => 'Kas ur c\'hod kadarnaat',
+'confirmemail_sent' => 'Postel kadarnaat kaset',
+'confirmemail_sendfailed' => 'Dibosupl kas ar postel kadarnaat. Gwiriit ho chomlec\'h.',
+'confirmemail_invalid' => 'Kod kadarnaat kamm. Marteze eo aet ar c\'hod d\'e dermen',
+'confirmemail_success' => 'Kadarnaet eo ho chomlec\'h postel. A-benn bremañ e c\'hallit en em lugañ hag ober ho mad eus ar wiki.',
+'confirmemail_loggedin' => 'Kadarnaet eo ho chomlec\'h bremañ',
+'confirmemail_error' => 'Ur gudenn zo bet e-ser enrollañ ho kadarnadenn',
+'confirmemail_subject' => '{{SITENAME}} email address confirmation',
+'confirmemail_body' => 'Unan bennak, c\'hwi moarvat, gant ar chomlec\'h postel $1 en deus enrollet ur gont "$2" gant ar chomlec\'h postel-mañ war lec\'hienn {{SITENAME}}.
+
+A-benn kadarnaat eo deoc\'h ar gont-se ha gweredekaat an arc\'hwelioù postelerezh war {{SITENAME}}, digorit, mar plij, al liamm a-is en ho merdeer :
+
+$3
+
+Ma n\'eo ket bet graet ganeoc\'h na zigorit ket al liamm. Mont a raio ar c\'hod-mañ d\'e dermen d\'an/ar $4.',
+
+
+# Math
+'mw_math_png' => "Produiñ atav ur skeudenn PNG",
+'mw_math_simple' => "HTML m'eo eeun-kenañ, a-hend-all ober gant PNG",
+'mw_math_html' => "HTML mar bez tu, a-hend-all PNG",
+'mw_math_source' => "Leuskel ar c'hod TeX orin",
+'mw_math_modern' => "Evit ar merdeerioù arnevez",
+'mw_math_mathml' => 'MathML',
+
+
+'usercssjsyoucanpreview' => "'''Tun:''' grit gant ar bouton '''Rakwelet''' evit testiñ ho follenn css/js nevez a-raok enrollañ anezhi.",
+'usercsspreview' => "'''Dalc'hit soñj emaoc'h o rakwelet ho follenn css deoc'h ha n'eo ket bet enrollet c'hoazh!'''",
+'userjspreview' => "'''Dalc'hit soñj emaoc'h o rakwelet pe o testiñ ho kod javascript deoc'h ha n'eo ket bet enrollet c'hoazh!'''",
+
+# EXIF
+'exif-imagewidth' => 'Led',
+'exif-imagelength' => 'Hed',
+'exif-compression' => 'Seurt gwaskadur',
+'exif-samplesperpixel' => 'Niver a standilhonoù',
+'exif-xresolution' => 'Pizhder led ar skeudenn',
+'exif-yresolution' => 'Pizhder hed ar skeudenn',
+'exif-jpeginterchangeformat' => 'Lec\'hiadur ar SOI JPEG',
+'exif-jpeginterchangeformatlength' => 'Ment ar roadennoù JPEG en eizhbitoù',
+'exif-transferfunction' => 'Arc\'hwel treuzkas',
+'exif-datetime' => 'Deiziad hag eur kemm restr',
+'exif-imagedescription' => 'Titl ar skeudenn',
+'exif-make' => 'Oberier ar benveg',
+'exif-model' => 'Doare ar benveg',
+'exif-software' => 'Meziant bet implijet',
+'exif-artist' => 'Aozer',
+'exif-copyright' => 'Perc\'henn ar gwirioù aozer (copyright)',
+'exif-exifversion' => 'Stumm exif',
+'exif-makernote' => 'Notennoù an oberier',
+'exif-relatedsoundfile' => 'Restr son stag',
+'exif-flash' => 'Flash',
+'exif-whitebalance' => 'Mentel ar gwennoù',
+'exif-contrast' => 'Dargemm',
+'exif-saturation' => 'Saturadur',
+'exif-compression-1' => 'Hep gwaskañ',
+'exif-orientation-1' => 'Normal',
+'exif-orientation-2' => 'Eilpennet a-hed',
+'exif-orientation-3' => 'Troet eus 180°',
+'exif-orientation-4' => 'Eilpennet a-serzh',
+'exif-orientation-5' => 'Troet eus 90° a-gleiz hag eilpennet a-serzh',
+'exif-orientation-6' => 'Troet eus 90° a-zehou',
+'exif-orientation-7' => 'Troet eus 90° a-zehou hag eilpennet a-serzh',
+'exif-orientation-8' => 'Troet eus 90° a-gleiz',
+'exif-componentsconfiguration-0' => 'n\'eus ket anezhi',
+
+
+// exifgps:
+
+);
+
+
+?>
diff --git a/languages/messages/MessagesBs.php b/languages/messages/MessagesBs.php
new file mode 100644
index 00000000..f642c28e
--- /dev/null
+++ b/languages/messages/MessagesBs.php
@@ -0,0 +1,1093 @@
+<?php
+
+$namespaceNames = array(
+ NS_MEDIA => 'Medija',
+ NS_SPECIAL => 'Posebno',
+ NS_MAIN => '',
+ NS_TALK => 'Razgovor',
+ NS_USER => 'Korisnik',
+ NS_USER_TALK => 'Razgovor_sa_korisnikom',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => 'Razgovor_{{grammar:instrumental|$1}}',
+ NS_IMAGE => 'Slika',
+ NS_IMAGE_TALK => 'Razgovor_o_slici',
+ NS_MEDIAWIKI => 'MedijaViki',
+ NS_MEDIAWIKI_TALK => 'Razgovor_o_MedijaVikiju',
+ NS_TEMPLATE => 'Šablon',
+ NS_TEMPLATE_TALK => 'Razgovor_o_šablonu',
+ NS_HELP => 'Pomoć',
+ NS_HELP_TALK => 'Razgovor_o_pomoći',
+ NS_CATEGORY => 'Kategorija',
+ NS_CATEGORY_TALK => 'Razgovor_o_kategoriji',
+);
+
+$quickbarSettings = array(
+ 'Nikakva', 'Pričvršćena lijevo', 'Pričvršćena desno', 'Plutajuća lijevo'
+);
+
+$skinNames = array(
+ 'Obična', 'Nostalgija', 'Kelnsko plavo', 'Pedington', 'Monparnas'
+);
+
+$magicWords = array(
+ # ID CASE SYNONYMS
+ 'redirect' => array( 0, '#Preusmjeri', '#redirect', '#preusmjeri', '#PREUSMJERI' ),
+ 'notoc' => array( 0, '__NOTOC__', '__BEZSADRŽAJA__' ),
+ 'forcetoc' => array( 0, '__FORCETOC__', '__FORSIRANISADRŽAJ__' ),
+ 'toc' => array( 0, '__TOC__', '__SADRŽAJ__' ),
+ 'noeditsection' => array( 0, '__NOEDITSECTION__', '__BEZ_IZMENA__', '__BEZIZMENA__' ),
+ 'start' => array( 0, '__START__', '__POČETAK__' ),
+ 'end' => array( 0, '__END__', '__KRAJ__' ),
+ 'currentmonth' => array( 1, 'CURRENTMONTH', 'TRENUTNIMJESEC' ),
+ 'currentmonthname' => array( 1, 'CURRENTMONTHNAME', 'TRENUTNIMJESECIME' ),
+ 'currentmonthnamegen' => array( 1, 'CURRENTMONTHNAMEGEN', 'TRENUTNIMJESECROD' ),
+ 'currentmonthabbrev' => array( 1, 'CURRENTMONTHABBREV', 'TRENUTNIMJESECSKR' ),
+ 'currentday' => array( 1, 'CURRENTDAY', 'TRENUTNIDAN' ),
+ 'currentdayname' => array( 1, 'CURRENTDAYNAME', 'TRENUTNIDANIME' ),
+ 'currentyear' => array( 1, 'CURRENTYEAR', 'TRENUTNAGODINA' ),
+ 'currenttime' => array( 1, 'CURRENTTIME', 'TRENUTNOVRIJEME' ),
+ 'numberofarticles' => array( 1, 'NUMBEROFARTICLES', 'BROJČLANAKA' ),
+ 'numberoffiles' => array( 1, 'NUMBEROFFILES', 'BROJDATOTEKA', 'BROJFAJLOVA' ),
+ 'pagename' => array( 1, 'PAGENAME', 'STRANICA' ),
+ 'pagenamee' => array( 1, 'PAGENAMEE', 'STRANICE' ),
+ 'namespace' => array( 1, 'NAMESPACE', 'IMENSKIPROSTOR' ),
+ 'namespacee' => array( 1, 'NAMESPACEE', 'IMENSKIPROSTORI' ),
+ 'fullpagename' => array( 1, 'FULLPAGENAME', 'PUNOIMESTRANE' ),
+ 'fullpagenamee' => array( 1, 'FULLPAGENAMEE', 'PUNOIMESTRANEE' ),
+ 'msg' => array( 0, 'MSG:', 'POR:' ),
+ 'subst' => array( 0, 'SUBST:', 'ZAMJENI:' ),
+ 'msgnw' => array( 0, 'MSGNW:', 'NVPOR:' ),
+ 'img_thumbnail' => array( 1, 'thumbnail', 'thumb', 'mini' ),
+ 'img_manualthumb' => array( 1, 'thumbnail=$1', 'thumb=$1', 'mini=$1' ),
+ 'img_right' => array( 1, 'right', 'desno', 'd' ),
+ 'img_left' => array( 1, 'left', 'lijevo', 'l' ),
+ 'img_none' => array( 1, 'none', 'n', 'bez' ),
+ 'img_width' => array( 1, '$1px', '$1piksel' , '$1p' ),
+ 'img_center' => array( 1, 'center', 'centre', 'centar', 'c' ),
+ 'img_framed' => array( 1, 'framed', 'enframed', 'frame', 'okvir', 'ram' ),
+ 'int' => array( 0, 'INT:', 'INT:' ),
+ 'sitename' => array( 1, 'SITENAME', 'IMESAJTA' ),
+ 'ns' => array( 0, 'NS:', 'IP:' ),
+ 'localurl' => array( 0, 'LOCALURL:', 'LOKALNAADRESA:' ),
+ 'localurle' => array( 0, 'LOCALURLE:', 'LOKALNEADRESE:' ),
+ 'server' => array( 0, 'SERVER', 'SERVER' ),
+ 'servername' => array( 0, 'SERVERNAME', 'IMESERVERA' ),
+ 'scriptpath' => array( 0, 'SCRIPTPATH', 'SKRIPTA' ),
+ 'grammar' => array( 0, 'GRAMMAR:', 'GRAMATIKA:' ),
+ 'notitleconvert' => array( 0, '__NOTITLECONVERT__', '__NOTC__', '__BEZTC__' ),
+ 'nocontentconvert' => array( 0, '__NOCONTENTCONVERT__', '__NOCC__', '__BEZCC__' ),
+ 'currentweek' => array( 1, 'CURRENTWEEK', 'TRENUTNASEDMICA' ),
+ 'currentdow' => array( 1, 'CURRENTDOW', 'TRENUTNIDOV' ),
+ 'revisionid' => array( 1, 'REVISIONID', 'IDREVIZIJE' ),
+ 'plural' => array( 0, 'PLURAL:', 'MNOŽINA:' ),
+ 'fullurl' => array( 0, 'FULLURL:', 'PUNURL:' ),
+ 'fullurle' => array( 0, 'FULLURLE:', 'PUNURLE:' ),
+ 'lcfirst' => array( 0, 'LCFIRST:', 'LCPRVI:' ),
+ 'ucfirst' => array( 0, 'UCFIRST:', 'UCPRVI:' ),
+ 'lc' => array( 0, 'LC:', 'LC:' ),
+ 'uc' => array( 0, 'UC:', 'UC:' ),
+);
+
+$fallback8bitEncoding = "iso-8859-2";
+$separatorTransformTable = array(',' => '.', '.' => ',' );
+$linkTrail = '/^([a-zćčžšđž]+)(.*)$/sDu';
+
+$messages = array(
+'1movedto2' => 'stranica [[$1]] premještena u stranicu [[$2]]',
+'1movedto2_redir' => 'stranica [[$1]] premještena u stranicu [[$2]] putem preusmjerenja',
+'Monobook.css' => '/*
+*/',
+'Monobook.js' => '
+/* tooltips and access keys */
+var ta = new Object();
+ta[\'pt-userpage\'] = new Array(\'.\',\'Moja korisnička stranica\');
+ta[\'pt-anonuserpage\'] = new Array(\'.\',\'Korisnička stranica za ip koju Vi uređujete kao\');
+ta[\'pt-mytalk\'] = new Array(\'n\',\'Moja stranica za razgovor\');
+ta[\'pt-anontalk\'] = new Array(\'n\',\'Razgovor o doprinosu sa ove IP adrese\');
+ta[\'pt-preferences\'] = new Array(\'\',\'Moja podešavanja\');
+ta[\'pt-watchlist\'] = new Array(\'l\',\'Spisak članaka koje pratite.\');
+ta[\'pt-mycontris\'] = new Array(\'y\',\'Spisak mog doprinosa\');
+ta[\'pt-login\'] = new Array(\'o\',\'Prijava nije obavezna, ali donosi mnogo koristi.\');
+ta[\'pt-anonlogin\'] = new Array(\'o\',\'Prijava nije obavezna, ali donosi mnogo koristi.\');
+ta[\'pt-logout\'] = new Array(\'o\',\'Odjava sa projekta {{SITENAME}}\');
+ta[\'ca-talk\'] = new Array(\'t\',\'Razgovor o sadržaju\');
+ta[\'ca-edit\'] = new Array(\'e\',\'Možete da uređujete ovaj članak. Molimo Vas, koristite dugme "Prikaži izgled" prije konačnog sačuvavanja vaših imjena.\');
+ta[\'ca-addsection\'] = new Array(\'+\',\'Dodajte svoj komentar.\');
+ta[\'ca-viewsource\'] = new Array(\'e\',\'Ovaj članak je zaključan. Možete ga samo vidjeti ili kopirati kod.\');
+ta[\'ca-history\'] = new Array(\'h\',\'Prethodne verzije ove stranice.\');
+ta[\'ca-protect\'] = new Array(\'=\',\'Zaštitite stranicu od budućih izmjena\');
+ta[\'ca-delete\'] = new Array(\'d\',\'Izbrišite ovu stranicu\');
+ta[\'ca-undelete\'] = new Array(\'d\',\'Vratite izmjene koje su načinjene prije brisanja stranice\');
+ta[\'ca-move\'] = new Array(\'m\',\'Pomjerite stranicu\');
+ta[\'ca-nomove\'] = new Array(\'\',\'Nemate dozvolu za pomjeranje ove stranice\');
+ta[\'ca-watch\'] = new Array(\'w\',\'Dodajte stranicu u listu praćnih članaka\');
+ta[\'ca-unwatch\'] = new Array(\'w\',\'Izbrišite stranicu sa liste praćnih članaka\');
+ta[\'search\'] = new Array(\'f\',\'Pretražite projekat {{SITENAME}}\');
+ta[\'p-logo\'] = new Array(\'\',\'Glavna stranica\');
+ta[\'n-mainpage\'] = new Array(\'z\',\'Posjetite glavnu stranicu\');
+ta[\'n-portal\'] = new Array(\'\',\'O projektu, kako Vi možete pomoći, i gdje da nađete potrebne stvari o projektu {{SITENAME}}\');
+ta[\'n-currentevents\'] = new Array(\'\',\'Podaci o onome na čemu se trenutno radi\');
+ta[\'n-recentchanges\'] = new Array(\'r\',\'Spisak nedavnih izmjena na projektu {{SITENAME}}.\');
+ta[\'n-randompage\'] = new Array(\'x\',\'Otvorite slučajan članak\');
+ta[\'n-help\'] = new Array(\'\',\'Naučite da uređujete projekat {{SITENAME}}.\');
+ta[\'n-sitesupport\'] = new Array(\'\',\'Podržite nas\');
+ta[\'t-whatlinkshere\'] = new Array(\'j\',\'Spisak svih članaka koji su povezani sa ovim\');
+ta[\'t-recentchangeslinked\'] = new Array(\'k\',\'Nedavne izmjene na stranicama koje su povezane sa ovom\');
+ta[\'feed-rss\'] = new Array(\'\',\'RSS za ovu stranicu\');
+ta[\'feed-atom\'] = new Array(\'\',\'Atom za ovu stranicu\');
+ta[\'t-contributions\'] = new Array(\'\',\'Pogledajte spisak doprinosa ovog korisnika\');
+ta[\'t-emailuser\'] = new Array(\'\',\'Pošaljite pismo ovom korisniku\');
+ta[\'t-upload\'] = new Array(\'u\',\'Pošaljite slike i medija fajlove\');
+ta[\'t-specialpages\'] = new Array(\'q\',\'Spisak svih posebih stranica\');
+ta[\'ca-nstab-main\'] = new Array(\'c\',\'Pogledajte sadržaj članka\');
+ta[\'ca-nstab-user\'] = new Array(\'c\',\'Pogledajte korisničku stranicu\');
+ta[\'ca-nstab-media\'] = new Array(\'c\',\'Pogledajte medija fajl\');
+ta[\'ca-nstab-special\'] = new Array(\'\',\'Ovo je specijalna stranica i zato je ne možete uređivati\');
+ta[\'ca-nstab-project\'] = new Array(\'a\',\'Pogledajte projekat stranicu\');
+ta[\'ca-nstab-image\'] = new Array(\'c\',\'Pogledajte stranicu slike\');
+ta[\'ca-nstab-mediawiki\'] = new Array(\'c\',\'Pogledajte sistemsku poruku\');
+ta[\'ca-nstab-template\'] = new Array(\'c\',\'Pogledajte šablon\');
+ta[\'ca-nstab-help\'] = new Array(\'c\',\'Pogledajte stranicu za pomoć\');
+ta[\'ca-nstab-category\'] = new Array(\'c\',\'Pogledajte stranicu kategorije\');',
+'about' => 'O...',
+'aboutpage' => '{{ns:4}}:O',
+'aboutsite' => 'O projektu {{SITENAME}}',
+'accmailtext' => 'Lozinka za nalog \'$1\' je poslata na adresu $2.',
+'accmailtitle' => 'Lozinka poslata.',
+'actioncomplete' => 'Akcija završena',
+'addedwatch' => 'Dodato u spisak praćenih članaka',
+'addedwatchtext' => 'Stranica "[[:$1]]" je dodata vašem [[{{ns:-1}}:Watchlist|spisku praćenih članaka]]. Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde, i stranica će biti <b>podebljana</b> u [[{{ns:-1}}:Recentchanges|spisku]] nedavnih izmjena da bi se lakše uočila.</p>
+<p>Ako kasnije želite da uklonite stranicu sa vašeg spiska praćenih članaka, kliknite na "prekini praćenje" na paleti.',
+'allmessages' => 'Sistemske poruke',
+'allmessagesnotsupportedDB' => '[[{{ns:-1}}:Allmessages|sistemske poruke]] nisu podržane zato što je <i>wgUseDatabaseMessages</i> isključen.',
+'allmessagesnotsupportedUI' => 'Vaš trenutni jezik interfejsa <b>$1</b> nije podržan u [[{{ns:-1}}:Allmessages|sistemskim porukama]] na ovoj viki.',
+'allmessagestext' => 'Ovo je spisak svih sistemskih poruka u {{ns:8}} imenskom prostoru.',
+'allpages' => 'Sve stranice',
+'alphaindexline' => '$1 u $2',
+'alreadyloggedin' => '<strong>Korisniče $1, već ste prijavljeni!</strong><br />',
+'alreadyrolled' => 'Ne može se vratiti poslednja izmjena [[$1]] od korisnika [[{{ns:2}}:$2|$2]] ([[{{ns:3}}:$2|razgovor]]); neko drugi je već izmjenio ili vratio članak. Poslednja izmjena od korisnika [[{{ns:2}}:$3|$3]] ([[{{ns:3}}:$3|razgovor]]).',
+'ancientpages' => 'Najstarije stranice',
+'and' => 'i',
+'anoneditwarning' => 'Niste prijavljeni. Vaša IP adresa će biti zapisana.',
+'anontalk' => 'Razgovor za ovu IP adresu',
+'anontalkpagetext' => '----\'\'Ovo je stranica za razgovor za anonimnog korisnika koji još nije napravio nalog ili ga ne koristi. Zbog toga moramo da koristimo brojčanu [[IP adresa|IP adresu]] kako bismo odentifikovali njega ili nju. Takvu adresu može dijeliti više korisnika. Ako ste anonimni korisnik i mislite da su vam upućene nebitne primjedbe, molimo Vas da [[{{ns:-1}}:Userlogin|napravite nalog ili se prijavite]] da biste izbjegli buduću zabunu sa ostalim anonimnim korisnicima.\'\'',
+'anonymous' => 'Anonimni korisnik od {{SITENAME}}',
+'apr' => 'apr',
+'april' => 'april',
+'article' => 'Članak',
+'articleexists' => 'Stranica pod tim imenom već postoji, ili je ime koje ste izabrali neispravno. Molimo Vas da izaberete drugo ime.',
+'articlepage' => 'Pogledaj članak',
+'aug' => 'avg',
+'august' => 'avgust',
+'autoblocker' => 'Automatski ste blokirani jer dijelite IP adresu sa "$1". Razlog za blokiranje je: "\'\'\'$2\'\'\'"',
+'badarticleerror' => 'Ova akcija ne može biti izvršena na ovoj stranici.',
+'badfilename' => 'Ime slike je promjenjeno u "$1".',
+'badfiletype' => '".$1" nije preporučeni format slike.',
+'badipaddress' => 'Pogrešna IP adresa',
+'badquery' => 'Loše oblikovan upit za pretragu',
+'badquerytext' => 'Nismo mogli da obradimo vaš upit. Ovo je vjerovatno zbog toga što ste pokušali da tražite riječ kraću od tri slova, što trenutno nije podržano. Takođe je moguće da ste pogrešno ukucali izraz, na primjer "riba ii krljušti". Molimo vas da pokušate nekim drugim upitom.',
+'badretype' => 'Lozinke koje ste unijeli se ne poklapaju.',
+'badtitle' => 'Loš naslov',
+'badtitletext' => 'Zahtjevani naslov stranice je bio neispravan, prazan ili neispravno povezan međujezički ili interviki naslov.',
+'blanknamespace' => '(Glavno)',
+'blockedtext' => 'Vaše korisničko ime ili IP adresa je blokirana od strane $1.
+Dati razlog je sledeći:<br />\'\'$2\'\'<p>Možete kontaktirati $1 ili nekog drugog [[{{ns:4}}:Administratori|administratora]] da biste razgovarili o blokadi.',
+'blockedtitle' => 'Korisnik je blokiran',
+'blockip' => 'Blokiraj korisnika',
+'blockipsuccesssub' => 'Blokiranje je uspjelo',
+'blockipsuccesstext' => '[[{{ns:-1}}:Contributions/$1|$1]] je blokiran.
+<br />Pogledajte [[{{ns:-1}}:Ipblocklist|IP spisak blokiranih korisnika]] za pregled blokiranja.',
+'blockiptext' => 'Upotrebite donji upitnik da biste uklonili prava pisanja sa određene IP adrese ili korisničkog imena. Ovo bi trebalo da bude urađeno samo da bi se spriječio vandalizam, i u skladu sa [[{{ns:4}}:Smjernice|smjernicama]]. Unesite konkretan razlog ispod (na primjer, navodeći koje stranice su vandalizovane).',
+'blocklink' => 'blokirajte',
+'blocklistline' => '$1, $2 blokirao korisnika $3 ($4)',
+'blocklogentry' => 'je blokirao "$1" sa vremenom isticanja blokade od $2',
+'blocklogtext' => 'Ovo je istorija blokiranja i deblokiranja korisnika. Automatsko blokirane IP adrese nisu uspisane ovde. Pogledajte [[{{ns:-1}}:Ipblocklist|blokirane IP adrese]] za spisak trenutnih zabrana i blokiranja.',
+'bold_sample' => 'Podebljan tekst',
+'bold_tip' => 'Podebljan tekst',
+'booksources' => 'Štampani izvori',
+'booksourcetext' => 'Ispod je spisak veza na druge sajtove koji
+prodaju nove i korišćene knjige, i takođe mogu imati daljnje informacije
+o knjigama koje tražite.
+{{SITENAME}} ne sarađuje ni se jednim od ovih preduzeća, i
+ovaj spisak ne treba da se shvati kao potvrda njihovog kvaliteta.',
+'brokenredirects' => 'Pokvarena preusmjerenja',
+'brokenredirectstext' => 'Sledeća preusmjerenja su povezana na nepostojeći članak:',
+'bugreports' => 'Prijavite grešku',
+'bugreportspage' => '{{ns:4}}:Prijave_grešaka',
+'bydate' => 'po datumu',
+'byname' => 'po imenu',
+'bysize' => 'po veličini',
+'cachederror' => 'Ovo je keširana kopija zahtjevane stranice, i možda nije najnovija.',
+'cancel' => 'Poništite',
+'cannotdelete' => 'Ne može se obrisati navedena stranica ili slika. (Moguće je da ju je neko drugi već obrisao.)',
+'cantrollback' => 'Ne može se vratiti izmjena; poslednji autor je ujedno i jedini.',
+'categories' => 'Kategorije',
+'categoriespagetext' => 'Sledeće kategorije već postoje u {{SITENAME}}',
+'category_header' => 'Članaka u kategoriji "$1"',
+'changepassword' => 'Promjeni lozinku',
+'changes' => 'izmjene',
+'columns' => 'Kolona',
+'compareselectedversions' => 'Uporedite označene verzije',
+'confirm' => 'Potvrdite',
+'confirmdelete' => 'Potvrdi brisanje',
+'confirmdeletetext' => 'Na putu ste da trajno obrišete stranicu
+ili sliku zajedno sa svom njenom istorijom iz baze.
+Molimo Vas da potvrdite da namjeravate da uradite ovo, da razumijete
+poslijedice, i da ovo radite u skladu sa
+[[{{ns:4}}:Pravila|pravilima]] {{SITENAME}}.',
+'confirmemail' => 'Potvrdite adresu e-pošte',
+'confirmemail_body' => 'Neko, vjerovatno Vi, je sa IP adrese $1 registrovao nalog "$2" sa ovom adresom e-pošte na {{SITENAME}}.
+
+Da potvrdite da ovaj nalog stvarno pripada vama i da aktivirate mogućnost e-pošte na {{SITENAME}}, otvorite ovu poveznicu u vašem brauzeru:
+
+$3
+
+Ako ovo niste vi, ne pratite poveznicu. Ovaj kod za potvrdu će isteći u $4.',
+'confirmemail_error' => 'Nešto je pošlo po zlu prilikom sačuvavanja vaše potvrde.',
+'confirmemail_invalid' => 'Netačan kod za potvrdu. Moguće je da je kod istekao.',
+'confirmemail_loggedin' => 'Adresa Vaše e-pošte je potvrđena.',
+'confirmemail_send' => 'Pošaljite kod za potvrdu',
+'confirmemail_sendfailed' => 'Pošta za potvrđivanje nije poslata. Provjerite adresu zbog nepravilnih karaktera.',
+'confirmemail_sent' => 'E-pošta za potvrđivanje poslata.',
+'confirmemail_subject' => '{{SITENAME}} adresa e-pošte za potvrđivanje',
+'confirmemail_success' => 'Adresa vaše e-pošte je potvrđena. Možete sad da se prijavite i uživate u viki.',
+'confirmemail_text' => 'Ova viki zahtjeva da potvrdite adresu Vaše e-pošte prije nego što koristite mogućnosti e-pošte. Aktivirajte dugme ispod kako bi ste poslali poštu za potvrdu na Vašu adresu. Pošta uključuje poveznicu koja sadrži kod; učitajte poveznicu u Vaš brauzer da bi ste potvrdili da je adresa Vaše e-pošte validna.',
+'confirmprotect' => 'Potvrdite zaštitu',
+'confirmprotecttext' => 'Da li zaista želite da zaštitite ovu stranicu?',
+'confirmrecreate' => 'Korisnik [[{{ns:2}}:$1|$1]] ([[{{ns:3}}:$1|razgovor]]) je obrisao ovaj članak pošto ste počeli uređivanje sa razlogom:
+: \'\'$2\'\'
+
+Molimo Vas da potvrdite da stvarno želite da ponovo napravite ovaj članak.',
+'confirmunprotect' => 'Potvrdite skidanje zaštite',
+'confirmunprotecttext' => 'Da li zaista želite da skinete zaštitu sa ove stranice?',
+'contextchars' => 'Karaktera konteksta po liniji:',
+'contextlines' => 'Linija po pogotku:',
+'contribslink' => 'doprinos',
+'contribsub' => 'Za $1',
+'contributions' => 'Doprinos korisnika',
+'copyright' => 'Svi sadržaji podliježu "$1" licenci.',
+'copyrightpage' => '{{ns:4}}:Autorska_prava',
+'copyrightpagename' => '{{SITENAME}} autorska prava',
+'copyrightwarning' => 'Za sve priloge poslate na projekat {{SITENAME}} smatramo da su objavljeni pod $2 (konsultujte $1 za detalje).
+Ukoliko ne želite da vaši članci budu podložni izmjenama i slobodnom rasturanju i objavljivanju,
+nemojte ih slati ovdje. Takođe, slanje članka podrazumijeva i vašu izjavu da ste ga napisali sami, ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.
+
+<strong>NEMOJTE SLATI RAD ZAŠTIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!</strong>',
+'couldntremove' => 'Ne može se ukloniti \'$1\'...',
+'createaccount' => 'Napravi nalog',
+'createaccountmail' => 'e-poštom',
+'cur' => 'tren',
+'currentevents' => 'Trenutni događaji',
+'currentrev' => 'Trenutna revizija',
+'databaseerror' => 'Greška u bazi',
+'dateformat' => 'Format datuma',
+'datedefault' => 'Nije bitno',
+'dberrortext' => 'Desila se sintaksna greška upita baze.
+Ovo je moguće zbog ilegalnog upita, ili moguće greške u softveru.
+Poslednji pokušani upit je bio: <blockquote><tt>$1</tt></blockquote>
+iz funkcije "<tt>$2</tt>".
+MySQL je vratio grešku "<tt>$3: $4</tt>".',
+'dberrortextcl' => 'Desila se sintaksna greška upita baze.
+Poslednji pokušani upit je bio:
+"$1"
+iz funkcije "$2".
+MySQL je vratio grešku "$3: $4".',
+'deadendpages' => 'Stranice bez internih veza',
+'dec' => 'dec',
+'december' => 'decembar',
+'defaultns' => 'Uobičajeno tražite u ovim imenskim prostorima:',
+'defemailsubject' => '{{SITENAME}} e-pošta',
+'delete' => 'Obrišite',
+'deletecomment' => 'Razlog za brisanje',
+'deletedarticle' => 'obrisan "[[$1]]"',
+'deletedtext' => 'Članak "$1" je obrisan.
+Pogledajte $2 za zapis o skorašnjim brisanjima.',
+'deleteimg' => 'obr',
+'deletepage' => 'Obrišite stranicu',
+'deletesub' => '(Briše se "$1")',
+'deletethispage' => 'Obriši ovu stranicu',
+'deletionlog' => 'istorija brisanja',
+'dellogpage' => 'istorija brisanja',
+'dellogpagetext' => 'Ispod je spisak najskorijih brisanja.',
+'diff' => 'razl',
+'difference' => '(Razlika između revizija)',
+'disambiguations' => 'Stranice za višeznačne odrednice',
+'disambiguationspage' => '{{ns:10}}:Višeznačna odrednica',
+'disambiguationstext' => 'Sledeći članci se povezuju sa <i>višeznačnom odrednicom</i>. Umjesto toga, oni bi trebali da se povezuju sa odgovarajućom temom.<br />Stranica se tretira kao višeznačna odrednica ako je povezana sa $1.<br />Poveznice iz ostalih imenskih prostora <i>nisu</i> navedene ovdje.',
+'disclaimerpage' => '{{ns:4}}:Uslovi korišćenja, pravne napomene i odricanje odgovornosti',
+'disclaimers' => 'Odricanje odgovornosti',
+'doubleredirects' => 'Dvostruka preusmjerenja',
+'doubleredirectstext' => 'Svaki red sadrži veze na prvo i drugo preusmjerenje, kao i na prvu liniju teksta drugog preusmjerenja, što obično daje "pravi" ciljni članak, na koji bi prvo preusmjerenje i trebalo da pokazuje.',
+'edit' => 'Uredite',
+'editcomment' => 'Komentar izmjene je: "<i>$1</i>".',
+'editconflict' => 'Sukobljenje izmjene: $1',
+'editcurrent' => 'Izmijenite trenutnu verziju ove stranice',
+'edithelp' => 'Pomoć pri uređivanju stranice',
+'edithelppage' => '{{ns:4}}:Uređivanje',
+'editing' => 'Uređujete $1',
+'editinguser' => 'Uređujete $1',
+'editingold' => '<strong>PAŽNJA: Vi mijenjate stariju
+reviziju ove stranice.
+Ako je snimite, sve promjene učinjene od ove revizije će biti izgubljene.</strong>',
+'editsection' => 'uredite',
+'editold' => 'uredite',
+'editthispage' => 'Uredite ovu stranicu',
+'emailfrom' => 'Od',
+'emailmessage' => 'Poruka',
+'emailpage' => 'Pošalji e-pismo korisniku',
+'emailpagetext' => 'Ako je ovaj korisnik unio ispravnu adresu e-pošte u
+cvoja korisnička podešavanja, upitnik ispod će poslati jednu poruku.
+Adresa e-pošte koju ste vi uneli u svoja korisnička podešavanja će se pojaviti
+kao "Od" adresa poruke, tako da će primalac moći da odgovori.',
+'emailsend' => 'Pošalji',
+'emailsent' => 'Poruka poslata',
+'emailsenttext' => 'Vaša poruka je poslata e-poštom.',
+'emailsubject' => 'Tema',
+'emailto' => 'Za',
+'emailuser' => 'Pošalji e-poštu ovom korisniku',
+'emptyfile' => 'Fajl koji ste poslali je prazan. Ovo je moguće zbog greške u imenu fajla. Molimo Vas da provjerite da li stvarno želite da pošaljete ovaj fajl.',
+'enotif_body' => 'Dragi $WATCHINGUSERNAME,
+
+{{SITENAME}} strana $PAGETITLE je bila $CHANGEDORCREATED $PAGEEDITDATE od strane $PAGEEDITOR,
+pogledajte {{fullurl:$PAGETITLE_RAWURL}} za trenutnu verziju.
+
+$NEWPAGE
+
+Rezime editora: $PAGESUMMARY $PAGEMINOREDIT
+
+Kontaktirajte editora:
+pošta {{fullurl:{{ns:-1}}:Emailuser|target=$PAGEEDITOR_RAWURL}}
+viki {{fullurl:User:$PAGEEDITOR_RAWURL}}
+
+Neće biti drugih obaviještenja u slučaju daljih izmjena ukoliko ne posjetite ovu stranu.
+Takođe možete da resetujete zastavice za obaviještenja za sve Vaše praćene stranice na vašem spisku praćenenih članaka.
+
+ Vaš prijateljski {{SITENAME}} sistem obaviještavanja
+
+--
+Da promjenite podešavanja vezana za spisak praćenenih članaka posjetite
+{{fullurl:{{ns:-1}}:Watchlist|edit=yes}}
+
+Fidbek i dalja pomoć:
+{{fullurl:{{ns:12}}:Sadržaj}}',
+'enotif_lastvisited' => 'Pogledajte {{fullurl:$PAGETITLE_RAWURL|diff=0&oldid=$OLDID}} za sve izmjene od vaše poslednje posjete.',
+'enotif_mailer' => '{{SITENAME}} obaviještenje o pošti',
+'enotif_newpagetext' => 'Ovo je novi članak.',
+'enotif_reset' => 'Označi sve strane kao posjećene',
+'enotif_subject' => '{{SITENAME}} strana $PAGETITLE je bila $CHANGEDORCREATED od strane $PAGEEDITOR',
+'enterlockreason' => 'Unesite razlog za zaključavanje, uključujući procijenu
+vremena otključavanja',
+'error' => 'Greška',
+'errorpagetitle' => 'Greška',
+'exbeforeblank' => 'sadržaj prije brisanja je bio: \'$1\'',
+'exblank' => 'stranica je bila prazna',
+'excontent' => 'sadržaj je bio: \'$1\'',
+'explainconflict' => 'Neko drugi je promjenio ovu stranicu otkad ste Vi počeli da je mjenjate.
+Gornje tekstualno polje sadrži tekst stranice koji trenutno postoji.
+Vaše izmjene su prikazane u donjem tekstu.
+Moraćete da unesete svoje promjene u postojeći tekst.
+<b>Samo</b> tekst u gornjem tekstualnom polju će biti snimljen kad
+pritisnete "Sačuvaj".<br />',
+'export' => 'Izvezite stranice',
+'exportcuronly' => 'Uključite samo trenutnu reviziju, ne cijelu istoriju',
+'exporttext' => 'Možete izvesti tekst i istoriju promjena određene stranice
+ili grupe stranice u XML formatu. Ovo onda može biti uvezeno u drugi viki koji koristi MedijaViki softver, transformisano, ili korišćeno za Vaše lične potrebe.',
+'extlink_sample' => 'http://www.adresa.com opis adrese',
+'extlink_tip' => 'Spoljašnja poveznica (zapamti prefiks http://)',
+'faqpage' => '{{ns:4}}:NPP',
+'feb' => 'feb',
+'february' => 'februar',
+'feedlinks' => 'Fid:',
+'filecopyerror' => 'Ne može se kopirati "$1" na "$2".',
+'filedeleteerror' => 'Ne može se izbrisati fajl "$1".',
+'filedesc' => 'Opis',
+'fileexists' => 'Fajl sa ovim imenom već postoji. Molimo Vas da provjerite $1 ako niste sigurni da li želite da ga promjenite.',
+'fileexists-forbidden' => 'Fajl sa ovim imenom već postoji; molimo Vas da se vratite i pošaljete ovaj fajl pod novim imenom. [[{{ns:6}}:$1|thumb|center|$1]]',
+'fileexists-shared-forbidden' => 'Fajl sa ovim imenom već postoji u zajedničkoj ostavi; molimo Vas da se vratite i pošaljete ovaj fajl pod novim imenom. [[{{ns:6}}:$1|thumb|center|$1]]',
+'fileinfo' => '$1KB, MIME tip: <code>$2</code>',
+'filemissing' => 'Nedostaje fajl',
+'filename' => 'Ime fajla',
+'filenotfound' => 'Ne može se naći fajl "$1".',
+'filerenameerror' => 'Ne može se promjeniti ime fajla "$1" to "$2".',
+'filesource' => 'Izvor',
+'filestatus' => 'Status autorskih prava',
+'fileuploaded' => 'Fajl "$1" je uspješno poslat.
+Molimo Vas da pratite ovu vezu: ($2) do stranice za opisivanje i unesite
+informacije o fajlu, kao odakle je, kad i ko ga
+je napravio, i bio šta drugo što znate o njemu.',
+'formerror' => 'Greška: ne može se poslati upitnik',
+'friday' => 'petak',
+'getimagelist' => 'pribavljam spisak slika',
+'go' => 'Idi',
+'searcharticle' => 'Idi',
+'gotaccount' => 'Imate nalog? $1.',
+'gotaccountlink' => 'Prijavi se',
+'guesstimezone' => 'Popuni iz brauzera',
+'headline_sample' => 'Naslov',
+'headline_tip' => 'Podnaslov',
+'help' => 'Pomoć',
+'helppage' => '{{ns:12}}:Sadržaj',
+'hide' => 'sakrij',
+'hidetoc' => 'sakrij',
+'hist' => 'ist',
+'histlegend' => 'Objašnjenje: (tren) = razlika sa trenutnom verziom,
+(posl) = razlika sa prethodnom verziom, M = mala izmjena',
+'history' => 'Istorija stranice',
+'history_short' => 'Istorija',
+'historywarning' => 'Pažnja: stranica koju želite da obrišete ima istoriju:',
+'hr_tip' => 'Horizontalna linija (koristite oskudno)',
+'ilsubmit' => 'Traži',
+'image_sample' => 'ime_slike.jpg',
+'image_tip' => 'Uklopljena slika',
+'imagelinks' => 'Upotreba slike',
+'imagelist' => 'Spisak slika',
+'imagelisttext' => 'Ispod je spisak $1 slika poređanih $2.',
+'imagepage' => 'Pogjedajte stranicu slike',
+'imagereverted' => 'Vraćanje na raniju verziju je uspješno.',
+'imgdelete' => 'obr',
+'imgdesc' => 'opis',
+'imghistlegend' => 'Objašnjenje: (tren) = ovo je trenutna slika, (obr) = obrišite
+ovu staru verziju, (vrt) = vrati na ovu staru verziju.
+<br /><i>Kliknite na datum da vidite sliku poslatu tog dana</i>.',
+'imghistory' => 'Istorija slike',
+'imglegend' => 'Objašnjenje: (opis) = prikaži/izmjeni opis slike.',
+'import' => 'Ivoz stranica',
+'importfailed' => 'Uvoz nije uspjeo: $1',
+'importhistoryconflict' => 'Postoji konfliktna istorija revizija',
+'importnotext' => 'Stranica je prazna, ili bez teksta',
+'importsuccess' => 'Uspješno ste uvezli stranicu!',
+'importtext' => 'Molimo Vas da izvezete fajl iz izvornog vikija koristeći [[{{ns:-1}}:Export|izvoz]], sačuvajte ga kod sebe i pošaljite ovde.',
+'internalerror' => 'Interna greška',
+'intl' => 'Međujezičke veze',
+'ip_range_invalid' => 'Netačan raspon IP adresa.',
+'ipaddress' => 'IP adresa/korisničko ime',
+'ipb_expiry_invalid' => 'Pogrešno vrijeme trajanja.',
+'ipbexpiry' => 'Trajanje',
+'ipblocklist' => 'Spisak blokiranih IP adresa i korisničkih imena',
+'ipbreason' => 'Razlog',
+'ipbsubmit' => 'Blokirajte ovog korisnika',
+'ipusubmit' => 'Deblokirajte ovog korisnika',
+'isredirect' => 'preusmjerivač',
+'italic_sample' => 'Kurzivan tekst',
+'italic_tip' => 'Kurzivan tekst',
+'iteminvalidname' => 'Problem sa \'$1\', neispravno ime...',
+'jan' => 'jan',
+'january' => 'januar',
+'jul' => 'jul',
+'july' => 'jul',
+'jun' => 'jun',
+'june' => 'jun',
+'largefile' => 'Preporučuje se da slike ne pređu veličinu od 100K.',
+'last' => 'posl',
+'lastmodifiedat' => 'Ova stranica je poslednji put izmijenjena $2, $1',
+'lastmodifiedatby' => 'Ovu stranicu je poslednji put promjenio $3, dana $3.',
+'lineno' => 'Linija $1:',
+'link_sample' => 'Naslov poveznice',
+'link_tip' => 'Unutrašnja poveznica',
+'linklistsub' => '(Spisak veza)',
+'linkshere' => 'Sledeće stranice su povezane ovdje:',
+'linkstoimage' => 'Sledeće stranice koriste ovu sliku:',
+'listusers' => 'Spisak korisnika',
+'loadhist' => 'Učitaje se istorija stranice',
+'loadingrev' => 'učitava se revizija za razliku',
+'localtime' => 'Lokalno vrijeme',
+'lockbtn' => 'Zaključajte bazu',
+'lockconfirm' => 'Da, zaista želim da zaključam bazu.',
+'lockdb' => 'Zaključajte bazu',
+'lockdbsuccesssub' => 'Baza je zaključana',
+'lockdbsuccesstext' => '{{SITENAME}} baza podataka je zaključana. <br /> Sjetite se da je otključate kad završite sa održavanjem.',
+'lockdbtext' => 'Zaključavanje baze će svim korisnicima ukinuti mogućnost izmjene stranica,
+promjene korisničkih podešavanja, izmjene praćenih članaka, i svega ostalog
+što zahtjeva promjene u bazi.
+Molimo Vas da potvrdite da je ovo zaista ono što namjeravate da uradite, i da ćete
+otkučati bazu kad završite posao oko njenog održavanja.',
+'locknoconfirm' => 'Niste potvrdili svoju namjeru.',
+'login' => 'Prijavi se',
+'loginerror' => 'Greška pri prijavljivanju',
+'loginpagetitle' => 'Prijavljivanje',
+'loginproblem' => '<b>Bilo je problema sa vašim prijavljivanjem.</b><br />Probajte ponovo!',
+'loginprompt' => 'Morate imati kolačiće (\'\'\'cookies\'\'\') omogućene da biste se prijavili na {{SITENAME}}.',
+'loginreqtitle' => 'Potrebno je [[{{ns:-1}}:Userlogin|prijavljivanje]]',
+'loginsuccess' => '\'\'\'Sad ste prijavljeni na {{SITENAME}} kao "$1".\'\'\'',
+'loginsuccesstitle' => 'Prijavljivanje uspješno',
+'logout' => 'Odjavite se',
+'logouttext' => '<strong>Sad ste odjavljeni.</strong><br />
+Možete nastaviti da koristite {{SITENAME}} anonimno, ili se ponovo prijaviti
+kao isti ili kao drugi korisnik. Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još uvijek prijavljeni, dok ne očistite keš svog brauzera.',
+'logouttitle' => 'Odjavite se',
+'lonelypages' => 'Siročići',
+'longpages' => 'Dugačke stranice',
+'longpagewarning' => '<strong>PAŽNJA: Ova stranica ima $1 kilobajta; niki
+brauzeri mogu imati problema kad uređujete stranice skoro ili veće od 32 kilobajta.
+Molimo Vas da razmotrite razbijanje stranice na manje dijelove.</strong>',
+'mailerror' => 'Greška pri slanju e-pošte: $1',
+'mailmypassword' => 'Pošalji mi moju lozinku',
+'mailnologin' => 'Nema adrese za slanje',
+'mailnologintext' => 'Morate biti [[Special:Userlogin|prijavljeni]]
+i imati ispravnu adresu e-pošte u vašim [[Special:Preferences|podešavanjima]]
+da biste slali e-poštu drugim korisnicima.',
+'mainpage' => 'Glavna stranica',
+'mainpagetext' => 'Viki softver is uspješno instaliran.',
+'makesysop' => 'Dodijeli administratorska prava korisniku',
+'makesysopfail' => '<b>Korisnik "$1" nije mogao dobiti administratorska prava. (Da li ste pravo unijeli ime?)</b>',
+'makesysopname' => 'Ime korisnika:',
+'makesysopok' => '<b>Korisnik "$1" je sad administrator</b>',
+'makesysopsubmit' => 'Dodajte ovom korisniku administratorska prava',
+'makesysoptext' => 'Ovaj formular se koristi sa strane birokrata da se obični korisnici pretvore u administratore. Unesite ime korisnika u kutiju i pritisnite dugme da bi korisnik postao administrator.',
+'makesysoptitle' => 'Pretvorite korisnika u administratora',
+'mar' => 'mar',
+'march' => 'mart',
+'markaspatrolleddiff' => 'Označi kao patrolirano',
+'markaspatrolledtext' => 'Označi ovaj članak kao patroliran',
+'markedaspatrolled' => 'Označeno kao patrolirano',
+'markedaspatrollederror' => 'Ne može se označiti kao patrolirano',
+'markedaspatrollederrortext' => 'Morate naglasiti reviziju koju treba označiti kao patroliranu.',
+'markedaspatrolledtext' => 'Izabrana revizija je označena kao patrolirana.',
+'matchtotals' => 'Upit "$1" je nađen u "$2" naslova članaka
+i tekst $3 članaka.',
+'math' => 'Prikazivanje matematike',
+'math_bad_output' => 'Ne može se napisati ili napraviti direktorijum za matematični izvještaj.',
+'math_bad_tmpdir' => 'Ne može se napisati ili napraviti privremeni matematični direktorijum',
+'math_failure' => 'Neuspjeh pri parsiranju',
+'math_image_error' => 'PNG konverzija neuspješna; provjerite tačnu instalaciju latex-a, dvips-a, gs-a i convert-a',
+'math_lexing_error' => 'riječnička greška',
+'math_notexvc' => 'Nedostaje izvršno texvc; molimo Vas da pogledate math/README da podesite.',
+'math_sample' => 'Unesite formulu ovdje',
+'math_syntax_error' => 'sintaksna greška',
+'math_tip' => 'Matematička formula (LaTeX)',
+'math_unknown_error' => 'nepoznata greška',
+'math_unknown_function' => 'nepoznata funkcija',
+'may' => 'maj',
+'media_sample' => 'ime_medija_fajla.ogg',
+'media_tip' => 'Putanja ka multimedijalnom fajlu',
+'mediawarning' => '\'\'\'Upozorenje\'\'\': Ovaj fajl sadrži loš kod, njegovim izvršavanjem možete da ugrozite Vaš sistem.
+<hr />',
+'metadata' => 'Metapodaci',
+'mimesearch' => 'MIME pretraga',
+'mimetype' => 'MIME tip:',
+'minlength' => 'Imena fajlova moraju imati bar tri slova.',
+'minoredit' => 'Ovo je mala izmjena',
+'missingarticle' => 'Baza nije mogla naći tekst stranice koji je trebala da nađe, nazvan "$1".
+
+Ovo je obično izazvano praćenjem zastarijelog "razl" ili veze ka istoriji
+stranice koja je obrisana.
+
+Ako ovo nije slučaj, možda ste pronašli grešku u softveru.
+Molimo Vas da prijaviti ovo jednom od [[{{ns:4}}:Administratori|administratora]], zajedno sa URL-om.',
+'missingimage' => '<b>Ovdje nedostaje slika</b><br /><i>$1</i>',
+'monday' => 'ponedeljak',
+'moredotdotdot' => 'Još...',
+'move' => 'Premjestite',
+'movearticle' => 'Premjestite stranicu',
+'movedto' => 'premještena na',
+'movenologin' => 'Niste prijavljeni',
+'movenologintext' => 'Morate biti registrovani korisnik i [[Special:Userlogin|prijavljeni]]
+da biste premjestili stranicu.',
+'movepage' => 'Premjestite stranicu',
+'movepagebtn' => 'premjestite stranicu',
+'movepagetalktext' => 'Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno \'\'\'osim:\'\'\'
+*Ako premještate stranicu preko imenskih prostora,
+*Neprazna stranica za razgovor već postoji pod novim imenom, ili
+*Odčekirajte donju kutiju.
+
+U tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.',
+'movepagetext' => 'Donji upitnik će preimenovati stranicu, premještajući svu
+njenu istoriju na novo ime.
+Stari naslov će postati preusmjerenje na novi naslov.
+Poveznice prema starom naslovu neće biti promijenjene; obavezno
+provjerite da li ima [[{{ns:-1}}:DoubleRedirects|dvostrukih]] ili [[{{ns:-1}}:BrokenRedirects|pokvarenih preusmjerenja]].
+Na vama je odgovornost da veze i dalje idu tamo gdje trebaju da idu.
+
+Obratite pažnju da stranica \'\'\'neće\'\'\' biti pomjerena ako već postoji
+stranica sa novim naslovom, osim ako je ona prazna ili preusmjerenje i nema
+istoriju promjena. Ovo znači da ne možete preimenovati stranicu na ono ime
+sa koga ste je preimenovali ako pogriješite, i ne možete prepisati
+postojeću stranicu.
+
+<b>PAŽNJA!</b>
+Ovo može biti drastična i neočekivana promjena za popularnu stranicu;
+molimo Vas da budete sigurni da razumijete poslijedice ovoga prije što
+nastavite.',
+'movetalk' => 'Premjestite "stranicu za razgovor" takođe, ako je moguće.',
+'movethispage' => 'Premjesti ovu stranicu',
+'mycontris' => 'Moj doprinos',
+'mypage' => 'Moja stranica',
+'mytalk' => 'Moj razgovor',
+'navigation' => 'Navigacija',
+'nbytes' => '$1 bajtova',
+'newarticle' => '(Novi)',
+'newarticletext' => '<div style="border: 1px solid #ccc; padding: 7px;">\'\'\'{{SITENAME}} nema stranicu {{PAGENAME}}.\'\'\'
+* Da započnete stranicu, koristite prostor ispod i kad završite, pritisnite "Sačuvaj". Vaše izmjene će odmah biti vidljive.
+* Ako ste novi na prjektu {{SITENAME}}, molimo Vas da pogledate [[{{ns:4}}:Pomoć|pomoćnu stranicu]], ili koristite [[{{ns:4}}:Igralište|igralište]] za eksperimentaciju.
+</div>',
+'newmessageslink' => 'novih poruka',
+'newpage' => 'Nova stranica',
+'newpages' => 'Nove stranice',
+'newpassword' => 'Nova lozinka:',
+'newtitle' => 'Novi naslov',
+'next' => 'sled',
+'nextn' => 'sledećih $1',
+'nlinks' => '$1 veza',
+'noarticletext' => '<div style="border: 1px solid #ccc; padding: 7px;">\'\'\'{{SITENAME}} još nema ovaj članak.\'\'\'
+* Da započnete članak, kliknite \'\'\'[{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} uredite ovu stranicu]\'\'\'.
+* [[{{ns:-1}}:Search/{{PAGENAME}}|Pretraži {{PAGENAME}}]] u ostalim člancima
+* [[{{ns:-1}}:Whatlinkshere/{{NAMESPACE}}:{{PAGENAME}}|Stranice koje su povezane za]] {{PAGENAME}} članak
+----
+* \'\'\'Ukoliko ste napravili ovaj članak u poslednjih nekoliko minuta i još se nije pojavio, postoji mogućnost da je server u zastoju zbog osvježavanja baze podataka.\'\'\' Molimo Vas da probate sa <span class="plainlinks">[{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=purge}} osvježavanjem]<span> ili sačekajte i provjerite kasnije ponovo prije ponovnog pravljenja članka.
+* Ako ste napravili članak pod ovim imenom ranije, moguće je da je bio izbrisan. Potražite \'\'\'{{FULLPAGENAME}}\'\'\' [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} u spisku brisanja]. Alternativno, provjerite [[{{ns:4}}:Zahtjevi za brisanje#{{PAGENAME}}|ovdje]].
+</div>',
+'noconnect' => 'Žao nam je! Viki ima neke tehničke poteškoće, i ne može da se poveže sa serverom baze. <br />',
+'nocontribs' => 'Nisu nađene promjene koje zadovoljavaju ove uslove.',
+'nocookieslogin' => '{{SITENAME}} koristi kolačiće (\'\'cookies\'\') da bi se korisnici prijavili. Vi ste onemogućili kolačiće na Vašem kompjuteru. Molimo Vas da ih omogućite i da pokušate ponovo sa prijavom.',
+'nocookiesnew' => 'Korisnički nalog je napravljen, ali niste prijavljeni. {{SITENAME}} koristi kolačiće (\'\'cookies\'\') da bi se korisnici prijavili. Vi ste onemogućili kolačiće na Vašem kompjuteru. molimo Vas da ih omogućite, a onda se prijavite sa svojim novim korisničkim imenom i lozinkom.',
+'nocreativecommons' => 'Creative Commons RDF metapodaci onemogućeni za ovaj server.',
+'nodb' => 'Ne mogu da izaberem bazu $1',
+'nodublincore' => 'Dublin Core RDF metapodaci onemogućeni za ovaj server.',
+'noemail' => 'Ne postoji adresa e-pošte za korisnika "$1".',
+'noemailtext' => 'Ovaj korisnik nije naveo ispravnu adresu e-pošte,
+ili je izabrao da ne prima e-poštu od drugih korisnika.',
+'noemailtitle' => 'Nema adrese e-pošte',
+'noexactmatch' => 'Nema stranice sa takvim imenom.
+
+Možete \'\'\'[[:$1|da napravite članak sa tim naslovom]]\'\'\' ili [[{{ns:4}}:Zahtjevani članci|da stavite zahtjev za ovaj članak]] ili [[{{ns:-1}}:Allpages/$1|potražite na drugim stranicama]].
+
+::*\'\'\'\'\'<u>Opomena: Nemojte da kopirate materijale za koje nemate dozvolu!</u>\'\'\'\'\'',
+'nohistory' => 'Ne postoji istorija izmjena za ovu stranicu.',
+'nolinkshere' => 'Ništa nije povezano ovdje.',
+'nolinkstoimage' => 'Nema stranica koje koriste ovu sliku.',
+'nologinlink' => 'Napravite nalog',
+'noname' => 'Niste izabrali ispravno korisničko ime.',
+'nonefound' => '\'\'\'Pažnja\'\'\': neuspješne pretrage su
+često izazvane traženjem čestih riječi kao "je" ili "od",
+koje nisu indeksirane, ili navođenjem više od jednog izraza za traženje (samo stranice
+koje sadrže sve izraze koji se traže će se pojaviti u rezultatima).',
+'nospecialpagetext' => 'Tražili ste posebnu stranicu, koju {{SITENAME}} softver nije prepoznao.',
+'nosuchaction' => 'Nema takve akcije',
+'nosuchactiontext' => 'Akcija navedena u URL-u nije
+prepoznata od strane {{SITENAME}} softvera.',
+'nosuchspecialpage' => 'Nema takve posebne stranice',
+'nosuchuser' => 'Ne postoji korisnik sa imenom "$1". Provjerite Vaše kucanje, ili upotrebite donji upitnik da napravite novi korisnički nalog.',
+'notacceptable' => 'Viki server ne može da pruži podatke u onom formatu koji Vaš klijent može da pročita.',
+'notanarticle' => 'Nije članak',
+'notargettext' => 'Niste naveli ciljnu stranicu ili korisnika
+na kome bi se izvela ova funkcija.',
+'notargettitle' => 'Nema cilja',
+'note' => '<strong>Pažnja:</strong>',
+'notextmatches' => 'Tekst članka ne odgovara',
+'notitlematches' => 'Naslov članka ne odgovara.',
+'notloggedin' => 'Niste prijavljeni',
+'nov' => 'nov',
+'november' => 'novembar',
+'nowatchlist' => 'Nemate ništa na svom spisku praćenih članaka.',
+'nowiki_sample' => 'Dodaj neformatirani tekst ovdje',
+'nowiki_tip' => 'Ignoriši viki formatiranje teksta',
+'nstab-category' => 'Kategorija',
+'nstab-help' => 'Pomoć',
+'nstab-image' => 'Slika',
+'nstab-main' => 'Članak',
+'nstab-media' => 'Medija',
+'nstab-mediawiki' => 'Poruka',
+'nstab-special' => 'Posebna',
+'nstab-template' => 'Šablon',
+'nstab-user' => 'Korisnička stranica',
+'nstab-project' => 'Članak',
+'nviews' => '$1 puta pogledano',
+'oct' => 'okt',
+'october' => 'oktobar',
+'ok' => 'da',
+'oldpassword' => 'Stara lozinka:',
+'orig' => 'orig',
+'othercontribs' => 'Bazirano na radu od strane korisnika $1.',
+'otherlanguages' => 'Ostali jezici',
+'pagemovedsub' => 'Premještanje uspjelo',
+'pagemovedtext' => 'Stranica "[[$1]]" premještena je na "[[$2]]".',
+'pagetitle' => '$1 - {{SITENAME}}',
+'passwordremindertext' => 'Neko (vjerovatno Vi, sa IP adrese $1)
+je zahtjevao da vam pošaljemo novu {{SITENAME}} lozinku za prijavljivanje na {{SERVERNAME}}.
+Lozinka za korisnika "$2" je sad "$3".
+Sad treba da se prijavite i promjenite lozinku.
+
+Ako je neko drugi napravio ovaj zahtjev ili ako ste se sjetili vaše lozinke i
+ne želite više da je promjenite, možete da ignorišete ovu poruku i da nastavite koristeći
+vašu staru lozinku.',
+'passwordremindertitle' => '{{SITENAME}} podsjetnik za lozinku',
+'passwordsent' => 'Nova lozinka je poslata na adresu e-pošte
+korisnika "$1".
+Molimo Vas da se prijavite pošto je primite.',
+'perfcached' => 'Sledeći podaci su keširani i možda neće biti u potpunosti ažurirani:',
+'perfdisabled' => 'Žao nam je! Ova mogućnost je privremeno onemogućena jer usporava bazu do te mjere da više niko ne može da koristi viki.',
+'perfdisabledsub' => 'Ovdje je sačuvana kopija $1:',
+'permalink' => 'Trajna veza',
+'personaltools' => 'Lični alati',
+'popularpages' => 'Popularne stranice',
+'portal' => 'Portal zajednice',
+'portal-url' => '{{ns:4}}:Portal_zajednice',
+'postcomment' => 'Pošaljite komentar',
+'powersearch' => 'Traži',
+'powersearchtext' => 'Pretraga u imenskim prostorima :<br />
+$1<br />
+$2 Izlistajte preusmjerenja &nbsp; Tražite $3 $9',
+'preferences' => 'Podešavanja',
+'prefs-help-email' => '* E-mail (optional): Enables others to contact you through your user or user_talk page without the need of revealing your identity.',
+'prefs-misc' => 'Ostala podešavanja',
+'prefs-personal' => 'Korisnički podaci',
+'prefs-rc' => 'Podešavanja nedavnih izmjena',
+'prefsnologin' => 'Niste prijavljeni',
+'prefsnologintext' => 'Morate biti [[{{ns:-1}}:Userlogin|prijavljeni]] da biste podešavali korisnička podešavanja.',
+'prefsreset' => 'Podešavanja su vraćena na prvotne vrijednosti.',
+'preview' => 'Pregled stranice',
+'previewconflict' => 'Ovaj pregled reflektuje tekst u gornjem polju
+kako će izgledati ako pritisnete "Sačuvaj članak".',
+'previewnote' => '<strong>Ovo je samo pregled; izmjene stranice nisu još sačuvane!</strong>',
+'prevn' => 'prethodnih $1',
+'print' => 'Štampa',
+'printableversion' => 'Verzija sa štampanje',
+'protect' => 'Zaštitite',
+'protect-default' => '(standardno)',
+'protect-level-autoconfirmed' => 'Blokiraj neregistrovane korisnike',
+'protect-level-sysop' => 'Samo administratori',
+'protect-text' => 'Ovdje možete gledati i izmjeniti level zaštite za stranicu <strong>$1</strong>.
+Budite sigurni da pratite [[{{ns:4}}:Zaštićena stranica|uputstva projekta]].',
+'protect-unchain' => 'Deblokirajte dozvole premještanja',
+'protect-viewtext' => 'Vaš nalog nema dozvolu da promjeni level zaštite stranica.
+Ovo su trenutna podešavanja za stranicu <strong>$1</strong>:',
+'protectcomment' => 'Razlog za zaštitu',
+'protectedarticle' => 'stranica "[[$1]]" je zaštićena',
+'protectedpage' => 'Zaštićena stranica',
+'protectedpagewarning' => '<strong>PAŽNJA: Ova stranica je zaključana tako da samo korisnici sa
+administratorkim privilegijama mogu da je mijenjaju. Uvjerite se da pratite [[{{ns:4}}:Pravila o zaštiti stranica|pravila o zaštiti stranica]]</strong>.',
+'protectedtext' => 'Ova stranica je zaključana i ne može se uređivati; moguće je da ima
+mnogo razloga za ovo, molimo Vas da pogledate [[{{ns:4}}:Zaštićena stranica]].
+
+Možete gledati i kopirati sadržaj ove stranice:',
+'protectlogpage' => 'Istorija zaključavanja',
+'protectlogtext' => 'Ispod je spisak zaštićenja stranice.
+Pogledajte [[{{ns:4}}:Zaštićena stranica]] za više informacija.',
+'protectsub' => '(Zaštićuje se "$1")',
+'protectthispage' => 'Zaštitite ovu stranicu',
+'proxyblocker' => 'Bloker proksija',
+'proxyblockreason' => 'Vaša IP adresa je blokirana jer je ona otvoreni proksi. Molimo vas da kontaktirate vašeg davatelja internetskih usluga (Internet Service Provider-a) ili tehničku podršku i obavijestite ih o ovom ozbiljnom sigurnosnom problemu.',
+'proxyblocksuccess' => 'Proksi uspješno blokiran.',
+'qbbrowse' => 'Prelistajte',
+'qbedit' => 'Izmjenite',
+'qbfind' => 'Pronađite',
+'qbmyoptions' => 'Moje opcije',
+'qbpageinfo' => 'Informacije o stranici',
+'qbpageoptions' => 'Opcije stranice',
+'qbsettings' => 'Podešavanja brze palete',
+'qbspecialpages' => 'Posebne stranice',
+'randompage' => 'Slučajna stranica',
+'range_block_disabled' => 'Administratorska mogućnost da blokira grupe je isključena.',
+'rclinks' => 'Prikaži najskorijih $1 izmjena u poslednjih $2 dana; $3',
+'rclistfrom' => 'Prikaži nove izmjene počev od $1',
+'rclsub' => '(na stranice povezane sa "$1")',
+'rcnote' => 'Ispod je najskorijih <strong>$1</strong> izmjena u poslednjih <strong>$2</strong> dana.',
+'rcnotefrom' => 'Ispod su izmjene od <b>$2</b> (do <b>$1</b> prikazano).',
+'rcshowhideanons' => '$1 anonimne korisnike',
+'rcshowhidebots' => '$1 botove',
+'rcshowhideliu' => '$1 prijavljene korisnike',
+'rcshowhidemine' => '$1 moje izmjene',
+'rcshowhideminor' => '$1 male izmjene',
+'rcshowhidepatr' => '$1 patrolirane izmjene',
+'readonly' => 'Baza je zaključana',
+'readonlytext' => 'Baza je trenutno zaključana za nove unose i ostale izmjene, vjerovatno zbog rutinskog održavanja, posle čega će biti vraćena u uobičajeno stanje.
+
+Administrator koji ju je zaključao je ponudio ovo objašnjenje: $1',
+'readonlywarning' => '<strong>PAŽNJA: Baza je zaključana zbog održavanja,
+tako da nećete moći da sačuvate svoje izmjene za sada. Možda želite da kopirate
+i nalijepite tekst u tekst editor i sačuvate ga za kasnije.</strong>',
+'recentchanges' => 'Nedavne izmjene',
+'recentchangesall' => 'sve',
+'recentchangescount' => 'Broj naslova u nedavnim izmjenama:',
+'recentchangeslinked' => 'Srodne izmjene',
+'recentchangestext' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
+'redirectedfrom' => '(Preusmjereno sa $1)',
+'remembermypassword' => 'Zapamti me',
+'removechecked' => 'Uklonite označene unose iz spiska praćenih članaka',
+'removedwatch' => 'Uklonjeno iz spiska praćenih članaka',
+'removedwatchtext' => 'Stranica "$1" je uklonjena iz vašeg spiska praćenih članaka.',
+'removingchecked' => 'Uklanjaju se ove stranice sa spiska praćenih članaka...',
+'resetprefs' => 'Vrati podešavanja',
+'restorelink' => '$1 izbrisanih izmjena',
+'resultsperpage' => 'Pogodaka po stranici:',
+'retrievedfrom' => 'Dobavljeno iz "$1"',
+'returnto' => 'Povratak na $1.',
+'retypenew' => 'Ukucajte ponovo novu lozinku:',
+'reupload' => 'Ponovo pošaljite',
+'reuploaddesc' => 'Vratite se na upitnik za slanje.',
+'reverted' => 'Vraćeno na prijašnju reviziju',
+'revertimg' => 'vrt',
+'revertmove' => 'vrati',
+'revertpage' => 'Vraćene izmjene $2 na poslednju izmjenu korisnika $1',
+'revhistory' => 'Istorija izmjena',
+'revisionasof' => 'Revizija od $1',
+'revnotfound' => 'Revizija nije pronađena',
+'revnotfoundtext' => 'Starija revizija ove stranice koju ste zatražili nije nađena.
+Molimo Vas da provjerite URL pomoću kojeg ste pristupili ovoj stranici.',
+'rights' => 'Prava:',
+'rollback' => 'Vrati izmjene',
+'rollback_short' => 'Vrati',
+'rollbackfailed' => 'Vraćanje nije uspjelo',
+'rollbacklink' => 'vrati',
+'rows' => 'Redova',
+'saturday' => 'subota',
+'savearticle' => 'Sačuvaj',
+'savedprefs' => 'Vaša podešavanja su sačuvana.',
+'savefile' => 'Sačuvaj fajl',
+'saveprefs' => 'Sačuvajte podešavanja',
+'search' => 'Pretraži',
+'searchbutton' => 'Pretraži',
+'searchdisabled' => '<p>Izvinjavamo se! Puno pretraga teksta je privremeno onemogućena. U međuvremenu, možete koristiti Google za pretragu. Indeks može biti stariji.',
+'searchsubtitle' => 'Tražili ste [[:$1]] [[Special:Allpages/$1|&#x5B;Sadržaj&#x5D;]]',
+'searchsubtitleinvalid' => 'Tražili ste $1 ',
+'searchresults' => 'Rezultati pretrage',
+'searchresultshead' => 'Podešavanja rezultata pretrage',
+'searchresulttext' => 'Za više informacija o pretraživanju {{SITENAME}}, pogledajte [[{{ns:4}}:Pretraga|Pretraga]].',
+'selectnewerversionfordiff' => 'Izaberite noviju verziju za upoređivanje',
+'selectolderversionfordiff' => 'Izaberite stariju verziju za upoređivanje',
+'selfmove' => 'Izvorni i ciljani naziv su isti; strana ne može da se premjesti preko same sebe.',
+'semiprotectedpagewarning' => '\'\'\'Pažnja:\'\'\' Ova stranica je zaključana tako da je samo registrovani korisnici mogu uređivati.',
+'sep' => 'sep',
+'september' => 'septembar',
+'servertime' => 'Vrijeme na serveru',
+'set_rights_fail' => '<b>Korisnička prava za $"1" nisu mogla da se podese. (Da li ste pravilno unijeli ime?)</b>',
+'set_user_rights' => 'Postavi prava korisnika',
+'setbureaucratflag' => 'Postavi prava birokrate',
+'shortpages' => 'Kratke stranice',
+'show' => 'pokaži',
+'showbigimage' => 'Prikaži sliku veće rezolucije ($1x$2, $3 Kb)',
+'showdiff' => 'Prikaži izmjene',
+'showhidebots' => '($1 botove)',
+'showingresults' => 'Prikazani su <b>$1</b> rezultata počev od <b>$2</b>.',
+'showingresultsnum' => 'Prikazani su <b>$3</b> rezultati počev od <b>$2</b>.',
+'showlast' => 'Prikaži poslednjih $1 slika sortiranih po $2.',
+'showpreview' => 'Prikaži izgled',
+'showtoc' => 'prikaži',
+'sig_tip' => 'Vaš potpis sa trenutnim vremenom',
+'sitestats' => 'Statistika sajta',
+'sitestatstext' => '<p style="font-size:125%;margin-bottom:0">{{SITENAME}} trenutno ima \'\'\'$2\'\'\' članaka.</p>
+<p style="margin-top:0">Ovaj broj isključuje preusmjerenja, stranice za razgovor, stranice sa opisom slike, korisničke stranice, šablone, stranice za pomoć, članke bez poveznica, i stranice o projektu {{SITENAME}}.</p>
+<p>
+Totalni broj stranica u bazi: \'\'\'$1\'\'\'.</p>
+<p>
+Bilo je \'\'\'$3\'\'\' pogleda stranica, i \'\'\'$4\'\'\' izmjena otkad je viki bio instaliran.
+To izađe u prosjeku oko \'\'\'$5\'\'\' izmjena po stranici, i \'\'\'$6\'\'\' pogleda po izmjeni.
+</p>',
+'sitesupport' => 'Donacije',
+'sitesupport-url' => '{{ns:4}}:Donacije',
+'siteuser' => '{{SITENAME}} korisnik $1',
+'siteusers' => '{{SITENAME}} korisnik (korisnici) $1',
+'skin' => 'Koža',
+'skinpreview' => '(Pregled)',
+'spamprotectionmatch' => 'Sledeći tekst je izazvao naš filter za neželjene poruke: $1',
+'spamprotectiontext' => 'Strana koju želite da sačuvate je blokirana od strane filtera za neželjene poruke. Ovo je vjerovatno izazvao vezom ka spoljašnjem sajtu.',
+'spamprotectiontitle' => 'Filter za zaštitu od neželjenih poruka',
+'speciallogtitlelabel' => 'Naslov:',
+'specialloguserlabel' => 'Korisnik:',
+'specialpage' => 'Posebna Stranica',
+'specialpages' => 'Posebne stranice',
+'spheading' => 'Posebne stranice za sve korisnike',
+'sqlhidden' => '(SQL pretraga sakrivena)',
+'statistics' => 'Statistike',
+'storedversion' => 'Uskladištena verzija',
+'stubthreshold' => 'Granica za prikazivanje klica',
+'subcategories' => 'Potkategorije',
+'subcategorycount' => '$1 potkategorija su u ovoj kategoriji.',
+'subject' => 'Tema/naslov',
+'successfulupload' => 'Uspješno slanje',
+'summary' => 'Sažetak',
+'sunday' => 'nedelja',
+'talk' => 'Razgovor',
+'talkexists' => 'Sama stranica je uspješno premještena, ali
+stranica za razgovor nije mogla biti premještena jer takva već postoji na novom naslovu. Molimo Vas da ih spojite ručno.',
+'talkpage' => 'Razgovor o stranici',
+'talkpagemoved' => 'Odgovarajuća stranica za razgovor je takođe premještena.',
+'talkpagenotmoved' => 'Odgovarajuća stranica za razgovor <strong>nije</strong> premještena.',
+'templatesused' => 'Šabloni koji su upotrebljeni na ovoj stranici:',
+'textboxsize' => 'Veličine tekstualnog polja',
+'textmatches' => 'Tekst stranice odgovara',
+'thisisdeleted' => 'Pogledaj ili vrati $1?',
+'thumbnail-more' => 'uvećajte',
+'thumbsize' => 'Veličina umanjenog prikaza:',
+'thursday' => 'četvrtak',
+'timezonelegend' => 'Vremenska zona',
+'timezoneoffset' => 'Odstupanje',
+'timezonetext' => 'Unesite broj sati za koji se Vaše lokalno vrijeme razlikuje od serverskog vremena (UTC).',
+'titlematches' => 'Naslov članka odgovara',
+'toc' => 'Sadržaj',
+'tog-autopatrol' => 'Označi moje izmjene kao patrolirane',
+'tog-enotifminoredits' => 'Pošalji mi e-poštu takođe za male izmjene stranica',
+'tog-enotifrevealaddr' => 'Otkrij adresu moje e-pošte u porukama obaviještenja',
+'tog-enotifusertalkpages' => 'Pošalji mi e-poštu kad se promijeni moja korisnička stranica za razgovor',
+'tog-enotifwatchlistpages' => 'Pošalji mi e-poštu kad se promijene stranice',
+'tog-hideminor' => 'Sakrij male izmjene u spisku nedavnih izmjena',
+'tog-highlightbroken' => 'Formatiraj pokvarene veze <a href="" class="new">ovako</a> (alternativa: ovako<a href="" class="internal">?</a>).',
+'tog-justify' => 'Uravnjaj pasuse',
+'tog-minordefault' => 'Označi sve izmjene malim isprva',
+'tog-nocache' => 'Onemogući keširanje stranica',
+'tog-numberheadings' => 'Automatski numeriši podnaslove',
+'tog-previewonfirst' => 'Prikaži izgled pri prvoj izmjeni',
+'tog-previewontop' => 'Prikaži pretpregled prije polja za izmjenu a ne posle',
+'tog-rememberpassword' => 'Zapamti lozinku kroz više seansi',
+'tog-showjumplinks' => 'Omogući "skoči na" poveznice',
+'tog-shownumberswatching' => 'Prikaži broj korisnika koji prate',
+'tog-showtoc' => 'Prikaži sadržaj<br />(u svim stranicama sa više od tri podnaslova)',
+'tog-showtoolbar' => 'Prikaži dugmiće za izmjene (JavaScript)',
+'tog-underline' => 'Podvuci veze:',
+'tog-usenewrc' => 'Poboljšan spisak nedavnih izmjena (JavaScript)',
+'tog-watchcreations' => 'Dodaj stranice koje ja napravim u moj spisak praćenih članaka',
+'tog-watchdefault' => 'Dodaj stranice koje uređujem u moj spisak praćenih članaka',
+'toolbox' => 'Posebne funkcije',
+'tooltip-compareselectedversions' => 'Pogledajte pazlike između dvije selektovane verzije ove stranice. [alt-v]',
+'tooltip-minoredit' => 'Naznačite da se radi o maloj izmjeni [alt-i]',
+'tooltip-preview' => 'Pregledajte Vaše izmjene; molimo Vas da koristite ovo prije nego što sačuvate stranicu! [alt-p]',
+'tooltip-save' => 'Sačuvajte Vaše izmjene [alt-s]',
+'tooltip-search' => 'Pretražite projekat {{SITENAME}} [alt-f]',
+'tooltip-watch' => 'Dodajte ovu stranicu na Vaš spisak praćenih članaka [alt-w]',
+'tuesday' => 'utorak',
+'uclinks' => 'Gledaj poslednjih $1 izmjena; gledaj poslednjih $2 dana.',
+'ucnote' => 'Ispod je poslednjih <b>$1</b> izmjena u poslednjih <b>$2</b> dana.',
+'uctop' => ' (vrh)',
+'uid' => 'Korisnički ID:',
+'unblockip' => 'Odblokiraj korisnika',
+'unblockiptext' => 'Upotrebite donji upitnik da bi ste vratili
+pravo pisanja ranije blokiranoj IP adresi
+ili korisničkom imenu.',
+'unblocklink' => 'deblokiraj',
+'unblocklogentry' => 'deblokiran $1',
+'uncategorizedcategories' => 'Nekategorisane kategorije',
+'uncategorizedpages' => 'Nekategorisane stranice',
+'undelete' => 'Pogledaj izbrisane stranice',
+'undelete_short' => 'Vrati $1 obrisanih izmjena',
+'undeletearticle' => 'Vrati izbrisani članak',
+'undeletebtn' => 'Vrati!',
+'undeletedarticle' => 'vraćeno "$1"',
+'undeletedrevisions' => '$1 revizija vraćeno',
+'undeletehistory' => 'Ako vratite stranicu, sve revizije će biti vraćene njenoj istoriji.
+Ako je nova stranica istog imena napravljena od brisanja, vraćene
+revizije će se pojaviti u ranijoj istoriji, a trenutna revizija sadašnje stranice
+neće biti automatski zamijenjena.',
+'undeletehistorynoadmin' => 'Ova stranica je izbrisana. Ispod se nalazi dio istorije brisanja i istorija revizija izbrisane stranice. Tekst izbrisane stranice je vidljiv samo korisnicima koji su administratori.',
+'undeletepage' => 'Pogledaj i vrati izbrisane stranice',
+'undeletepagetext' => 'Sledeće stranice su izbrisane ali su još uvijek u arhivi i
+mogu biti vraćene. Arhiva moše biti periodično čišćena.',
+'undeleterevision' => 'Izbrisana revizija od $1',
+'undeleterevisions' => '$1 revizija arhivirano',
+'underline-always' => 'Uvijek',
+'underline-default' => 'Po podešavanjima brauzera',
+'underline-never' => 'Nikad',
+'unexpected' => 'Neočekivana vrijednost: "$1"="$2".',
+'unlockbtn' => 'Otključaj bazu',
+'unlockconfirm' => 'Da, zaista želim da otključam bazu.',
+'unlockdb' => 'Otključaj bazu',
+'unlockdbsuccesssub' => 'Baza je otključana',
+'unlockdbsuccesstext' => '{{SITENAME}} baza podataka je otključana.',
+'unlockdbtext' => 'Otključavanje baze će svim korisnicima vratiti mogućnost
+izmjene stranica, promjene korisničkih stranica, izmjene spiska praćenih članaka,
+i svega ostalog što zahtjeva promjene u bazi.
+Molimo Vas da potvrdite da je ovo zaista ono što namijeravate da uradite.',
+'unprotect' => 'odštiti',
+'unprotectcomment' => 'Razlog za skidanje zaštite',
+'unprotectedarticle' => 'odštićena "$1"',
+'unprotectsub' => '(Skidanje zaštite "$1")',
+'unprotectthispage' => 'Odštiti ovu stranicu',
+'unusedcategories' => 'Nekorišćene kategorije',
+'unusedcategoriestext' => 'Sledeće strane kategorija postoje iako ih ni jedan drugi članak ili kategorija ne koriste.',
+'unusedimages' => 'Neupotrebljene slike',
+'unusedimagestext' => '<p>Obratite pažnju da se drugi veb sajtovi, kao što su drugi
+međunarodni Vikiji, mogu povezati na sliku direktnom
+URL-om, i tako mogu još uvijek biti prikazani ovdje uprkos
+aktivnoj upotrebi.</p>',
+'unwatch' => 'Ukinite praćenje',
+'unwatchthispage' => 'Ukinite praćenje',
+'updated' => '(Osvježeno)',
+'upload' => 'Postavi datoteku',
+'uploadbtn' => 'Postavi datoteku',
+'uploaddisabled' => 'Slanje fajlova je isključeno',
+'uploadedfiles' => 'Poslati fajlovi',
+'uploadedimage' => 'poslato "[[$1]]"',
+'uploaderror' => 'Greška pri slanju',
+'uploadlog' => 'log slanja',
+'uploadlogpage' => 'istorija slanja',
+'uploadlogpagetext' => 'Ispod je spisak najskorijih slanja.',
+'uploadnologin' => 'Niste prijavljeni',
+'uploadnologintext' => 'Morate biti [[{{ns:-1}}:Userlogin|prijavljeni]]
+da bi ste slali fajlove.',
+'uploadvirus' => 'Fajl sadrži virus! Detalji: $1',
+'uploadwarning' => 'Upozorenje pri slanju',
+'user_rights_set' => '<b>Prava za korisnika "$1" promjenjena</b>',
+'usercssjsyoucanpreview' => '<strong>Pažnja:</strong> Koristite \'Prikaži izgled\' dugme da testirate svoj novi CSS/JS prije nego što sačuvate.',
+'usercsspreview' => '\'\'\'Zapamtite ovo je samo izgled vašeg CSS-a, još uvijek nije sačuvan!\'\'\'',
+'userexists' => 'Korisničko ime koje ste unijeli je već u upotrebi. Molimo Vas da izaberete drugo ime.',
+'userjspreview' => '\'\'\'Zapamtite ovo je samo izgled vaše JavaScript-e, još uvijek nije sačuvan!\'\'\'',
+'userlogin' => 'Prijavite se / Registrujte se',
+'userlogout' => 'Odjavite se',
+'usermailererror' => 'Objekat pošte je vratio grešku:',
+'username' => 'Korisničko ime:',
+'userpage' => 'Pogledaj korisničku stranicu',
+'userstats' => 'Statistike korisnika',
+'userstatstext' => 'Postoji \'\'\'$1\'\'\' registrovanih korisnika, od kojih
+su \'\'\'$2\'\'\' (ili \'\'\'$4%\'\'\') administratori.',
+'version' => 'Verzija',
+'versionrequired' => 'Verzija $1 MedijaVikija je potrebna',
+'versionrequiredtext' => 'Verzija $1 MedijaVikija je potrebna da bi se koristila ova strana. Pogledajte [[{{ns:-1}}:Version|verziju]]',
+'viewcount' => 'Ovoj stranici je pristupljeno $1 puta.',
+'viewdeleted' => 'Pogledaj $1?',
+'viewdeletedpage' => 'Pogledaj izbrisane stranice',
+'viewprevnext' => 'Pogledaj ($1) ($2) ($3).',
+'views' => 'Pregledi',
+'viewsource' => 'pogledaj kod',
+'viewtalkpage' => 'Pogledaj raspravu',
+'wantedcategories' => 'Tražene kategorije',
+'wantedpages' => 'Tražene stranice',
+'watch' => 'Prati',
+'watchdetails' => '* $1 stranica praćeno ne računajući stranice za razgovor
+* [$4 prikaži i mijenjaj potpuni spisak]',
+'watcheditlist' => 'Ovdje je abecedni spisak stranica koje
+pratite. Označite stranice koje želite da uklonite sa svog spiska i kliknite na dugme \'ukloni izabrane\' na dnu ekrana.',
+'watchlist' => 'Praćeni članci',
+'watchlistcontains' => 'Vaš spisak praćenih članaka sadrži $1 stranica.',
+'watchmethod-list' => 'provjerava se da li ima nedavnih izmjena u praćenim stranicama',
+'watchmethod-recent' => 'provjerava se da li ima praćenih stranica u nedavnim izmjenama',
+'watchnochange' => 'Ništa što pratite nije promjenjeno u prikazanom vremenu.',
+'watchnologin' => 'Niste prijavljeni',
+'watchnologintext' => 'Morate biti [[{{ns:-1}}:Userlogin|prijavljeni]] da bi ste mijenjali spisak praćenih članaka.',
+'watchthis' => 'Prati ovaj članak',
+'watchthispage' => 'Prati ovu stranicu',
+'wednesday' => 'srijeda',
+'welcomecreation' => '<h2>Dobro došli, $1!</h2><p>Vaš nalog je napravljen.
+Ne zaboravite da prilagodite sebi svoja podešavanja.',
+'whatlinkshere' => 'Šta je povezano ovdje',
+'whitelistacctext' => 'Da bi vam bilo dozvoljeno da napravite naloge na ovom Vikiju, morate da se [[{{ns:-1}}:Userlogin|prijavite]] i imate odgovarajuća ovlašćenja.',
+'whitelistacctitle' => 'Nije vam dozvoljeno da napravite nalog',
+'whitelistedittext' => 'Morate da se [[{{ns:-1}}:Userlogin|prijavite]] da bi ste uređivali stranice.',
+'whitelistedittitle' => 'Obavezno je prijavljivanje za uređivanje',
+'whitelistreadtext' => 'Morate da se [[{{ns:-1}}:Userlogin|prijavite]] da bi ste čitali članke.',
+'whitelistreadtitle' => 'Obavezno je prijavljivanje za čitanje',
+'projectpage' => 'Pogledaj stranu o ovoj strani',
+'wlheader-enotif' => '* Obavještavanje e-poštom je omogućeno.',
+'wlheader-showupdated' => '* Stranice koje su izmjenjene od kad ste ih poslednji put posjetili su prikazane \'\'\'podebljanim slovima\'\'\'',
+'wlhideshowbots' => '$1 izmjena botova.',
+'wlhideshowown' => '$1 moje izmjene.',
+'wlnote' => 'Ispod je najskorijih $1 izmjena, načinjenih u posljednjih <b>$2</b> sati.',
+'wlsaved' => 'Ovo je sačuvana verzija vašeg spiska praćenih članaka.',
+'wlshowlast' => 'Prikaži poslednjih $1 sati $2 dana $3',
+'wrong_wfQuery_params' => 'Netačni parametri za wfQuery()<br />
+Funkcija: $1<br />
+Pretraga: $2',
+'wrongpassword' => 'Unijeli ste neispravnu lozinku. Molimo Vas da pokušate ponovo.',
+'wrongpasswordempty' => 'Lozinka je bila prazna. Molimo Vas da pokušate ponovo.',
+'youhavenewmessages' => 'Imate $1 ($2).',
+'yourdiff' => 'Razlike',
+'yourdomainname' => 'Vaš domen',
+'youremail' => 'E-pošta *',
+'yourname' => 'Korisničko ime',
+'yournick' => 'Nadimak (za potpise):',
+'yourpassword' => 'Lozinka',
+'yourpasswordagain' => 'Ponovite lozinku',
+'yourrealname' => 'Vaše pravo ime *',
+'yourtext' => 'Vaš tekst',
+);
+
+
+?>
diff --git a/languages/messages/MessagesCa.php b/languages/messages/MessagesCa.php
new file mode 100644
index 00000000..f20f4174
--- /dev/null
+++ b/languages/messages/MessagesCa.php
@@ -0,0 +1,1247 @@
+<?php
+$quickbarSettings = array(
+ "Cap", "Fixa a la dreta", "Fixa a l'esquerra", "Surant a l'esquerra"
+);
+$skinNames = array(
+ 'standard' => "Estàndard",
+ 'nostalgia' => "Nostàlgia",
+ 'cologneblue' => "Colònia blava",
+);
+
+$bookstoreList = array(
+ 'Catàleg Col·lectiu de les Universitats de Catalunya' => 'http://ccuc.cbuc.es/cgi-bin/vtls.web.gateway?searchtype=control+numcard&searcharg=$1',
+ 'Totselsllibres.com' => 'http://www.totselsllibres.com/tel/publi/busquedaAvanzadaLibros.do?ISBN=$1',
+ 'inherit' => true,
+);
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Especial',
+ NS_MAIN => '',
+ NS_TALK => 'Discussió',
+ NS_USER => 'Usuari',
+ NS_USER_TALK => 'Usuari_Discussió',
+ # NS_PROJECT set by $wgMetaNamespace
+ NS_PROJECT_TALK => '$1_Discussió',
+ NS_IMAGE => 'Imatge',
+ NS_IMAGE_TALK => 'Imatge_Discussió',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_Discussió',
+ NS_TEMPLATE => 'Plantilla',
+ NS_TEMPLATE_TALK => 'Plantilla_Discussió',
+ NS_HELP => 'Ajuda',
+ NS_HELP_TALK => 'Ajuda_Discussió',
+ NS_CATEGORY => 'Categoria',
+ NS_CATEGORY_TALK => 'Categoria_Discussió'
+);
+
+$separatorTransformTable = array(',' => '.', '.' => ',' );
+
+$dateFormats = array(
+ 'mdy time' => 'H:i',
+ 'mdy date' => 'M j, Y',
+ 'mdy both' => 'H:i, M j, Y',
+
+ 'dmy time' => 'H:i',
+ 'dmy date' => 'j M Y',
+ 'dmy both' => 'H:i, j M Y',
+
+ 'ymd time' => 'H:i',
+ 'ymd date' => 'Y M j',
+ 'ymd both' => 'H:i, Y M j',
+);
+
+$linkTrail = '/^([a-zàèéíòóúç·ïü\']+)(.*)$/sDu';
+
+$messages = array(
+'tog-underline' => 'Subratlla els enllaços:',
+'tog-highlightbroken' => 'Formata els enllaços trencats <a href="" class="new">d\'aquesta manera</a> (altrament, es faria d\'aquesta altra manera<a href="" class="internal">?</a>).',
+'tog-justify' => 'Alineació justificada dels paràgrafs',
+'tog-hideminor' => 'Amaga les edicions menors en la pàgina de canvis recents',
+'tog-extendwatchlist' => 'Desplega la llista de seguiment per a mostrar tots els canvis afectats',
+'tog-usenewrc' => 'Presentació millorada dels canvis recents (cal JavaScript)',
+'tog-numberheadings' => 'Enumera automàticament els encapçalaments',
+'tog-showtoolbar' => 'Mostra la barra d\'eines d\'edició (cal JavaScript)',
+'tog-editondblclick' => 'Inicia l\'edició de la pàgina en pitjar-hi dues vegades (cal JavaScript)',
+'tog-editsection' => 'Activa l\'edició per seccions mitjançant enllaç específic corresponent',
+'tog-editsectiononrightclick'=> 'Activa l\'edició per seccions en pitjar sobre l\'encapçalament amb el botó dret del ratolí (cal JavaScript)',
+'tog-showtoc' => 'Mostrar l\'índex de continguts a les pàgines amb més de 3 seccions',
+'tog-rememberpassword' => 'Recorda la contrasenya entre sessions',
+'tog-editwidth' => 'Amplia al màxim la caixa d\'edició',
+'tog-watchcreations' => 'Vigila els articles que he creat',
+'tog-watchdefault' => 'Vigila els articles que he editat',
+'tog-minordefault' => 'Marca totes les contribucions com a edicions menors per defecte',
+'tog-previewontop' => 'Mostra una vista prèvia de l\'article davant del panell d\'edicions',
+'tog-previewonfirst' => 'Mostra una visualització prèvia de l\'article en la primera edició',
+'tog-nocache' => 'Desactiva la memòria cau per als articles',
+'tog-enotifwatchlistpages'=> 'Notifica\'m per correu electrònic els canvis en les pàgines que vigili',
+'tog-enotifusertalkpages'=> 'Notifica per corr-el quan hi han modificacions a la pàgina de discussió del meu compte d\'usuari',
+'tog-enotifminoredits' => 'Notifica per corr-el també en casos d\'edicions menors',
+'tog-enotifrevealaddr' => 'Mostra l\'adreça del meu corr-el en els missatges d\'avís per corr-el',
+'tog-shownumberswatching'=> 'Mostra el nombre d\'usuaris que vigilen l\'article',
+'tog-fancysig' => 'Signatures planes (sense enllaç automàtic)',
+'tog-externaleditor' => 'Recorre a un editor extern per omissió',
+'tog-externaldiff' => 'Recorre a un altre visualitzador de canvis per defecte',
+'tog-showjumplinks' => 'Activa els enllaços de dreceres d\'accessibilitat',
+'tog-uselivepreview' => 'Activa la previsualització automàtica (cal JavaScript) (experimental)',
+'tog-autopatrol' => 'Marca com a vigilades les pàgines que modifiqui',
+'tog-forceeditsummary' => 'Avisa\'m quan el camp de sumari és en blanc',
+'tog-watchlisthideown' => 'Amaga el que he contribuït de la llista de seguiment',
+'tog-watchlisthidebots' => 'Amaga de la llista de seguiment les edicions fetes per usuaris bots',
+'underline-always' => 'Sempre',
+'underline-never' => 'Mai',
+'underline-default' => 'Configuració per defecte del navegador',
+'skinpreview' => '(prova)',
+'sunday' => 'diumenge',
+'monday' => 'dilluns',
+'tuesday' => 'dimarts',
+'wednesday' => 'dimecres',
+'thursday' => 'dijous',
+'friday' => 'divendres',
+'saturday' => 'dissabte',
+'january' => 'gener',
+'february' => 'febrer',
+'march' => 'març',
+'april' => 'abril',
+'may_long' => 'maig',
+'june' => 'juny',
+'july' => 'juliol',
+'august' => 'agost',
+'september' => 'setembre',
+'october' => 'octubre',
+'november' => 'novembre',
+'december' => 'desembre',
+'jan' => 'gen',
+'feb' => 'febr',
+'mar' => 'març',
+'apr' => 'abr',
+'may' => 'maig',
+'jun' => 'juny',
+'jul' => 'jul',
+'aug' => 'ag',
+'sep' => 'set',
+'oct' => 'oct',
+'nov' => 'nov',
+'dec' => 'des',
+'categories' => '{{PLURAL:$1|Categoria|Categories}}',
+'category_header' => 'Articles a la categoria «$1»',
+'subcategories' => 'Subcategories',
+'mainpage' => 'Pàgina principal',
+'mainpagetext' => '<big>\'\'\'El programari del MediaWiki s\'hi ha instal·lat correctament.\'\'\'</big>',
+'mainpagedocfooter' => 'Consulteu la [http://meta.wikimedia.org/wiki/Help:Contents Guia d\'Usuari] per a més informació sobre com utilitzar el programa wiki.
+
+== Per a començar ==
+
+* [http://www.mediawiki.org/wiki/Help:Configuration_settings Llista de característiques configurables]
+* [http://www.mediawiki.org/wiki/Help:FAQ PMF del MediaWiki]
+* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu (\'\'listserv\'\') per a anuncis del MediaWiki]',
+'portal' => 'Portal comunitari',
+'portal-url' => 'Project:Portal',
+'about' => 'Quant a',
+'aboutsite' => 'Quant al projecte de {{SITENAME}}',
+'aboutpage' => 'Project:Quant a',
+'article' => 'Contingut de la pàgina',
+'help' => 'Ajuda',
+'helppage' => 'Help:Índex',
+'bugreports' => 'Informes d\'errors del programari',
+'bugreportspage' => 'Project:Informes d\'errors',
+'sitesupport' => 'Donacions',
+'sitesupport-url' => 'Wikimedia:Donatius',
+'faq' => 'PMF',
+'faqpage' => 'Project:PMF',
+'edithelp' => 'Ajuda per a editar-n\'hi',
+'newwindow' => '(obre en una nova finestra)',
+'edithelppage' => 'Help:Com s\'edita una pàgina',
+'cancel' => 'Anul·la',
+'qbfind' => 'Cerca',
+'qbbrowse' => 'Navega',
+'qbedit' => 'Edita',
+'qbpageoptions' => 'Opcions de pàgina',
+'qbpageinfo' => 'Informació de pàgina',
+'qbmyoptions' => 'Pàgines pròpies',
+'qbspecialpages' => 'Pàgines especials',
+'moredotdotdot' => 'Més...',
+'mypage' => 'Pàgina personal',
+'mytalk' => 'Discussió',
+'anontalk' => 'Contacta amb l\'anònim que fa servir aquesta IP',
+'navigation' => 'Navegació',
+'metadata_help' => 'Metadades (vegeu [[Project:Metadata]] per a més informació):',
+'currentevents' => 'Actualitat',
+'currentevents-url' => 'Project:Actualitat',
+'disclaimers' => 'Avís general',
+'disclaimerpage' => 'Project:Avís general',
+'privacy' => 'Política de privadesa',
+'privacypage' => 'Project:Política de privadesa',
+'errorpagetitle' => 'Error',
+'returnto' => 'Torna cap a $1.',
+'tagline' => 'De {{SITENAME}}',
+'search' => 'Cerca',
+'searchbutton' => 'Cerca',
+'go' => 'Vés-hi',
+'searcharticle' => 'Vés-hi',
+'history' => 'Historial de canvis',
+'history_short' => 'Historial',
+'updatedmarker' => 'actualitzat des de la darrera visita',
+'info_short' => 'Informació',
+'printableversion' => 'Versió per a impressora',
+'permalink' => 'Enllaç permanent',
+'print' => 'Envia aquesta pàgina a la cua d\'impressió',
+'edit' => 'Edita',
+'editthispage' => 'Edita la pàgina',
+'delete' => 'Elimina',
+'deletethispage' => 'Elimina la pàgina',
+'undelete_short' => 'Recupera {{PLURAL:$1|la pàgina eliminada|$1 modificacions de la pàgina eliminada}}',
+'protect' => 'Protecció',
+'protectthispage' => 'Protecció de la pàgina',
+'unprotect' => 'Desprotecció',
+'unprotectthispage' => 'Desprotecció de la pàgina',
+'newpage' => 'Pàgina nova',
+'talkpage' => 'Discussió de la pàgina',
+'specialpage' => 'Pàgina especial',
+'personaltools' => 'Eines de l\'usuari',
+'postcomment' => 'Envia un comentari',
+'articlepage' => 'Mostra la pàgina',
+'talk' => 'Discussió',
+'views' => 'Vistes',
+'toolbox' => 'Eines',
+'userpage' => 'Mostra la pàgina d\'usuari',
+'projectpage' => 'Mostra la pàgina del projecte',
+'imagepage' => 'Mostra la pàgina de la imatge',
+'viewtalkpage' => 'Mostra la discussió',
+'otherlanguages' => 'En altres llengües',
+'redirectedfrom' => '(S\'ha redirigit des de $1)',
+'autoredircomment' => 'S\'està redirigint a [[$1]]',
+'redirectpagesub' => 'Pàgina de redireccionament',
+'lastmodifiedat' => 'Darrera modificació de la pàgina: $2, $1.',
+'viewcount' => 'Aquesta pàgina ha estat visitada {{plural:$1|una vegada|$1 vegades}}.',
+'copyright' => 'El contingut és disponible sota els termes d\'una llicència $1',
+'protectedpage' => 'Pàgina protegida',
+'jumpto' => 'Dreceres ràpides:',
+'jumptonavigation' => 'navegació',
+'jumptosearch' => 'cerca',
+'badaccess' => 'Error de permisos',
+'versionrequired' => 'Cal la versió $1 del MediaWiki',
+'versionrequiredtext' => 'Cal la versió $1 del MediaWiki per a utilitzar aquesta pàgina. Vegeu [[Special:Version]]',
+'ok' => 'D\'acord',
+'pagetitle' => '$1 - {{SITENAME}}',
+'retrievedfrom' => 'Obtingut de "$1"',
+'youhavenewmessages' => 'Teniu $1 ($2).',
+'newmessageslink' => 'nous missatges',
+'newmessagesdifflink' => 'darrers canvis',
+'editsection' => 'edita',
+'editold' => 'edita',
+'editsectionhint' => 'Edita la secció: $1',
+'toc' => 'Contingut',
+'showtoc' => 'desplega',
+'hidetoc' => 'amaga',
+'thisisdeleted' => 'Voleu mostrar o restaurar $1?',
+'viewdeleted' => 'Voleu mostrar $1?',
+'restorelink' => '{{PLURAL:$1|una versió esborrada|$1 versions esborrades}}',
+'feedlinks' => 'Sindicament:',
+'feed-invalid' => 'La subscripció no és vàlida pel tipus de sindicament.',
+'nstab-main' => 'Article',
+'nstab-user' => 'Pàgina d\'usuari',
+'nstab-media' => 'Pàgina de mitjans',
+'nstab-special' => 'Pàgina especial',
+'nstab-project' => 'Pàgina del projecte',
+'nstab-image' => 'Fitxer',
+'nstab-mediawiki' => 'Missatge',
+'nstab-template' => 'Plantilla',
+'nstab-help' => 'Ajuda',
+'nstab-category' => 'Categoria',
+'nosuchaction' => 'No es reconeix aquesta operació',
+'nosuchactiontext' => 'El programari wiki que fa servir {{SITENAME}} no reconeix l\'operació especificada per l\'adreça URL',
+'nosuchspecialpage' => 'No es troba la pàgina especial que busqueu',
+'nospecialpagetext' => 'La pàgina especial que demaneu no és vàlida. Vegeu la llista de pàgines especials en [[Special:Specialpages]].',
+'error' => 'Error',
+'databaseerror' => 'S\'ha produït un error en la base de dades',
+'dberrortext' => 'S\'ha produït un error de sintaxi en una consulta a la base de dades.
+Açò podria indicar un error en el programari.
+La darrera consulta que s\'ha intentat fer ha estat:
+<blockquote><tt>$1</tt></blockquote>
+des de la funció «<tt>$2</tt>».
+L\'error de retorn de MySQL ha estat «<tt>$3: $4</tt>».',
+'dberrortextcl' => 'S\'ha produït un error de sintaxi en una consulta a la base de dades.
+La darrera consulta que s\'ha intentat fer ha estat:
+<blockquote><tt>$1</tt></blockquote>
+des de la funció «<tt>$2</tt>».
+L\'error de retorn de MySQL ha estat «<tt>$3: $4</tt>».',
+'noconnect' => 'Al programari wiki hi ha algun problema tècnic, i no s\'ha pogut contactar amb el servidor de la base de dades. <br />
+$1',
+'nodb' => 'No s\'ha pogut seleccionar la base de dades $1',
+'cachederror' => 'Tot seguit és una còpia provinent de la memòria cau de la pàgina que hi heu demanat i, per això, podria no estar actualitzada.',
+'laggedslavemode' => 'Avís: La pàgina podria mancar de modificacions recents.',
+'readonly' => 'La base de dades es troba blocada',
+'enterlockreason' => 'Escrigueu un motiu pel blocatge, així com una estimació de quan tindrà lloc el desblocatge',
+'readonlytext' => 'La base de dades està temporalment blocada segurament per tasques de manteniment, després de les quals es tornarà a la normalitat.
+
+L\'administrador que l\'ha blocada ha donat aquesta explicació: $1',
+'missingarticle' => 'La base de dades no ha trobat el text d\'una
+pàgina que hauria d\'haver trobat, anomenada "$1".
+Això acostuma a passar a quan se segueix un enllaç a una pàgina que ha estat eliminada.
+
+Si aquest no és el cas, probablement es tracta d\'un error en el programari.
+Informeu-ne si us plau a un administrador, fent-ne arribar l\'adreça URL.',
+'readonly_lag' => 'S\'ha blocada la base de dades automàticament per a la sincronització dels servidors',
+'internalerror' => 'Fallida interna',
+'filecopyerror' => 'No s\'ha pogut copiar el fitxer "$1" com "$2".',
+'filerenameerror' => 'No s\'ha pogut reanomenar el fitxer "$1" com "$2".',
+'filedeleteerror' => 'No s\'ha pogut esborrar el fitxer "$1".',
+'filenotfound' => 'No s\'ha pogut trobar el fitxer "$1".',
+'unexpected' => 'S\'ha trobat un valor imprevist: "$1"="$2".',
+'formerror' => 'Error: no s\'ha pogut enviar les dades del formulari',
+'badarticleerror' => 'Aquesta operació no es pot dur a terme en aquesta pàgina',
+'cannotdelete' => 'No s\'ha pogut esborrar la pàgina o el fitxer especificat, o potser ja ha estat esborrat per algú altre.',
+'badtitle' => 'El títol no és correcte',
+'badtitletext' => 'El títol de la pàgina que heu demanada no és correcte, és en blanc o és un enllaç inter-lingüístic trencat. Podria haver-hi algun caràcter no permés per al seu ús en els títols.',
+'perfdisabled' => 'S\'ha desactivat temporalment aquesta funcionalitat perquè sobrecarrega la base de dades fins al punt d\'inutilitzar el programari wiki.',
+'perfdisabledsub' => 'Això és una còpia desada de $1:',
+'perfcached' => 'Tot seguit es mostren les dades que es troben a la memòria cau, i podria no tenir els darrers canvis del dia:',
+'perfcachedts' => 'Tot seguit es mostra les dades que es troben a la memòria cau, la darrera actualització de la qual fou el $1.',
+'wrong_wfQuery_params' => 'Paràmetres incorrectes per a wfQuery()<br />
+Funció: $1<br />
+Consulta: $2',
+'viewsource' => 'Mostra la font',
+'viewsourcefor' => 'per a $1',
+'protectedtext' => 'Aquesta pàgina ha estat protegida per a evitar modificacions; per a assabentar-se dels motius que han dut a aquesta decissió, si us plau, vegeu [[Project:Protecció de pàgines]].
+
+Mentrestant, podeu veure i copiar el contingut de la pàgina:',
+'protectedinterface' => 'Aquesta pàgina conté cadenes de text per a la interfície del programari, i és protegida per a previndre\'n abusos.',
+'editinginterface' => '\'\'\'Avís:\'\'\' Esteu editant una pàgina que conté cadenes de text per a la interfície d\'aquest programari. Tingueu en compte que els canvis que es fan a aquesta pàgina afecten a l\'aparença de la interfície d\'usuari per a tots els usuaris.',
+'sqlhidden' => '(consulta SQL oculta)',
+'logouttitle' => 'Fi de la sessió',
+'logouttext' => '<strong>Heu finalitzat la vostra sessió.</strong><br />
+Podeu continuar utilitzant {{SITENAME}} de forma anònima, o podeu iniciar una sessió una altra vegada amb el mateix o un altre usuari. Tingueu en compte que algunes pàgines poden continuar mostrant-se com si encara estiguéssiu en una sessió, fins que buideu la memòria cau del vostre navegador.',
+'welcomecreation' => '== Us donem la benvinguda, $1! ==
+
+S\'ha creat el vostre compte. No oblideu de canviar les vostres preferències.',
+'loginpagetitle' => 'Inici de sessió',
+'yourname' => 'Nom d\'usuari',
+'yourpassword' => 'Contrasenya',
+'yourpasswordagain' => 'Escriviu una altra vegada la contrasenya',
+'remembermypassword' => 'Recorda la contrasenya entre sessions.',
+'yourdomainname' => 'El vostre domini',
+'externaldberror' => 'Hi ha hagut una fallida en el servidor d\'autenticació externa de la base de dades i no teniu permís per a actualitzar el vostre compte d\'accès extern.',
+'loginproblem' => '<strong>S\'ha produït un problema en iniciar la sessió.</strong><br />Proveu-ho de nou!',
+'alreadyloggedin' => '<strong>Benvingut, usuari $1!</strong><br />',
+'login' => 'Inici de sessió',
+'loginprompt' => 'Heu de tenir les galetes activades per a poder-vos registar.',
+'userlogin' => 'Inicia una sessió / crea un compte',
+'logout' => 'Finalitza la sessió',
+'userlogout' => 'Finalitza la sessió',
+'notloggedin' => 'No us heu identificat',
+'nologin' => 'No teniu un compte? $1.',
+'nologinlink' => 'Crea un compte',
+'createaccount' => 'Crea un nou compte',
+'gotaccount' => 'Ja teniu un compte? $1.',
+'gotaccountlink' => 'Inicia una sessió',
+'createaccountmail' => 'per correu electrònic',
+'badretype' => 'Les contrasenyes que heu introduït no coincideixen.',
+'userexists' => 'El nom que heu entrat ja és en ús. Escolliu-ne un de diferent.',
+'youremail' => 'Adreça electrònica *',
+'username' => 'Nom d\'usuari:',
+'uid' => 'Identificador d\'usuari:',
+'yourrealname' => 'Nom real *',
+'yourlanguage' => 'Llengua:',
+'yourvariant' => 'Variant lingüística',
+'yournick' => 'Àlies (nom que es mostrarà):',
+'badsig' => 'La signatura que heu inserit no és vàlida; verifiqueu les etiquetes HTML que heu emprat.',
+'email' => 'Adreça electrònica',
+'prefs-help-email-enotif'=> 'Si n\'heu habilitat les opcions, l\'adreça també s\'utilitzarà per a enviar-vos notificacions per correu electrònic.',
+'prefs-help-realname' => '* Nom real (opcional): si escolliu donar aquesta informació serà utilitzada per a donar-vos l\'atribució de la vostra feina.',
+'loginerror' => 'Error d\'inici de sessió',
+'prefs-help-email' => '* Adreça electrònica (opcional): Permet als altres usuaris enviar-vos missatges de correu electrònic a través de la vostra pàgina d\'usuari o de discussió, sense que així calgui revelar la vostra identitat.',
+'nocookiesnew' => 'S\'ha creat el compte d\'usuari, però no esteu enregistrat. El projecte {{SITENAME}} usa galetes per enregistrar els usuaris. Si us plau activeu-les, per a poder enregistrar-vos amb el vostre nom d\'usuari i la clau.',
+'nocookieslogin' => 'El programari {{SITENAME}} utilitza galetes per enregistrar usuaris. Teniu les galetes desactivades. Activeu-les i torneu a provar.',
+'noname' => 'No heu especificat un nom vàlid d\'usuari.',
+'loginsuccesstitle' => 'S\'ha iniciat la sessió amb èxit',
+'loginsuccess' => 'Heu iniciat la sessió a {{SITENAME}} com a "$1".',
+'nosuchuser' => 'No hi ha cap usuari anomenat "$1".
+Reviseu-ne l\'ortografia, o creeu un nou compte d\'usuari.',
+'nosuchusershort' => 'No hi ha cap usuari anomenat "$1". Comproveu que ho hàgiu escrit correctament.',
+'nouserspecified' => 'Heu d\'especificar un nom d\'usuari.',
+'wrongpassword' => 'La contrasenya que heu introduït és incorrecta. Torneu-ho a provar.',
+'wrongpasswordempty' => 'La contrasenya que s\'ha introduït era en blanc. Torneu-ho a provar.',
+'mailmypassword' => 'Envia\'m una nova contrasenya per correu electrònic',
+'passwordremindertitle' => 'Recordatori de la contrasenya del projecte {{SITENAME}}',
+'passwordremindertext' => 'Algú (vós mateix segurament, des de l\'adreça l\'IP $1) ha sol·licitat que us enviéssim una nova contrasenya per a iniciar la sessió al projecte {{SITENAME}} ($4).
+La contrasenya per a l\'usuari «$2» és ara «$3».
+Ara hauríeu d\'iniciar la sessió i canviar la vostra contrasenya.
+
+Si algú altre hagués fet aquesta sol·licitud o si ja haguéssiu recordat la vostra contrasenya i
+no volguéssiu canviar-la, ignoreu aquest missatge i continueu utilitzant
+la vostra antiga contrasenya.',
+'noemail' => 'No hi ha cap adreça electrònica registrada de l\'usuari "$1".',
+'passwordsent' => 'S\'ha enviat una nova contrasenya a l\'adreça electrònica registrada per "$1".
+Inicieu una sessió després que la rebeu.',
+'eauthentsent' => 'S\'ha enviat un correu electrònic a l\'adreça especificada. Abans no s\'envïi cap altre correu electrònic a aquesta adreça, cal verificar que és realment vostra. Per tant, cal que seguiu les instruccions presents en el correu electrònic que se us ha enviat.',
+'mailerror' => 'S\'ha produït un error en enviar el missatge: $1',
+'acct_creation_throttle_hit'=> 'Ho sentim, no és permés de tenir-hi més de $1 comptes d\'usuari per persona.',
+'emailauthenticated' => 'S\'ha autenticat la vostra adreça electrònica a $1.',
+'emailnotauthenticated' => 'La vostra adreça de correu electrònic encara no està autentificada. No rebrà correu electrònic provinent de cap les següents funcionalitats.',
+'noemailprefs' => 'Especifiqueu una adreça electrònica per a activar aquestes característiques.',
+'emailconfirmlink' => 'Confirmeu la vostra adreça electrònica',
+'invalidemailaddress' => 'No es pot acceptar l\'adreça electrònica perquè sembla que té un format no vàlid.
+Introduïu una adreça amb un format adequat o bé buideu el camp.',
+'accountcreated' => 'S\'ha creat el compte',
+'accountcreatedtext' => 'S\'ha creat el compte d\'usuari de $1.',
+'bold_sample' => 'Text en negreta',
+'bold_tip' => 'Text en negreta',
+'italic_sample' => 'Text en cursiva',
+'italic_tip' => 'Text en cursiva',
+'link_sample' => 'Títol de l\'enllaç',
+'link_tip' => 'Enllaç intern',
+'extlink_sample' => 'http://www.exemple.cat títol de l\'enllaç',
+'extlink_tip' => 'Enllaç extern (recordeu el prefix http://)',
+'headline_sample' => 'Text per a l\'encapçalament',
+'headline_tip' => 'Encapçalat de secció de 2n nivell',
+'math_sample' => 'Inseriu una fórmula ací',
+'math_tip' => 'Fórmula matemàtica (LaTeX)',
+'nowiki_sample' => 'Inseriu ací text no formatat',
+'nowiki_tip' => 'Ignora la formatació wiki',
+'image_sample' => 'Exemple.jpg',
+'image_tip' => 'Imatge annexada',
+'media_sample' => 'Exemple.ogg',
+'media_tip' => 'Enllaç cap al fitxer multimèdia',
+'sig_tip' => 'La vostra signatura amb marca horària',
+'hr_tip' => 'Línia horitzontal (useu-lo moderadament)',
+'summary' => 'Resum',
+'subject' => 'Tema/capçalera',
+'minoredit' => 'Aquesta és una edició menor.',
+'watchthis' => 'Vigila aquest article.',
+'savearticle' => 'Desa la pàgina',
+'preview' => 'Vista prèvia',
+'showpreview' => 'Mostra una vista prèvia',
+'showlivepreview' => 'Vista ràpida',
+'showdiff' => 'Mostra els canvis',
+'anoneditwarning' => '\'\'\'Atenció:\'\'\' No esteu registrats amb un nom d\'usuari. Es desarà la vostra adreça IP en l\'historial de la pàgina.',
+'missingsummary' => '\'\'\'Recordatori\'\'\': Heu deixat en blanc el sumari d\'edició. Si torneu a clicar el botó de desar, l\'edició es desarà sense sumari.',
+'missingcommenttext' => 'Introduïu un comentari a continuació.',
+'blockedtitle' => 'L\'usuari està blocat',
+'blockedtext' => 'El vostre nom d\'usuari o adreça IP ha estat blocada per $1.
+El motiu és:<br />$2<p>Podeu contactar $1 o un dels [[Project:Administrators|administradors]] per a discutir el blocatge.
+
+Tingueu un compte que no podeu fer servir la característica «envia un missatge electrònic a l\'usuari» a menys que tingueu una adreça de correu vàlida registrada a les vostres [[Special:Preferences|preferències d\'usuari]].
+
+La vostra adreça IP és $3. Si us plau, incloeu aquesta adreça en totes les consultes que feu.',
+'blockedoriginalsource' => 'La font de \'\'\'$1\'\'\' es mostra a sota:',
+'blockededitsource' => 'El text de les vostres edicions a \'\'\'$1\'\'\' es mostra a continuació:',
+'whitelistedittitle' => 'Cal iniciar una sessió per a poder editar',
+'whitelistedittext' => 'Heu de $1 per editar pàgines.',
+'whitelistreadtitle' => 'Heu d\'iniciar una sessió per a llegir-ho',
+'whitelistreadtext' => 'Heu d\'[[Special:Userlogin|indentificar-vos]] per llegir les pàgines.',
+'whitelistacctitle' => 'No teniu permisos per a crear un compte',
+'whitelistacctext' => 'Per estar autoritzat a crear comptes en aquesta Viqui heu d\'[[Special:Userlogin|identificar-vos]] i tenir els permisos apropiats.',
+'confirmedittitle' => 'Cal una confirmació de l\'adreça electrònica per a poder editar',
+'confirmedittext' => 'Heu de confirmar la vostra adreça electrònica abans de poder editar pàgines. Definiu i valideu la vostra adreça electrònica a través de les vostres [[Special:Preferences|preferències d\'usuari]].',
+'loginreqtitle' => 'Cal que inicieu una sessió',
+'loginreqlink' => 'inicia una sessió',
+'loginreqpagetext' => 'Heu de ser $1 per a visualitzar altres pàgines.',
+'accmailtitle' => 'S\'ha enviat una contrasenya.',
+'accmailtext' => 'S\'ha enviat a $2 la contrasenya per a «$1».',
+'newarticle' => '(Nou)',
+'newarticletext' => 'Heu seguit un enllaç a una pàgina que encara no existeix.
+Per a crear-la comenceu a escriure en l\'espai d\'abaix
+(vegeu l\'[[Project:Ajuda|ajuda]] per a més informació).
+Si sou ací per error simplement cliqueu el botó "enrere" del vostre navegador.',
+'anontalkpagetext' => '----\'\'Aquesta és la pàgina de discussió d\'un usuari anònim que encara no ha creat un compte o que no usa el seu nom registrat. Per tant hem d\'emprar la seva adreça IP numèrica per identificar-lo. Una adreça IP pot ser compartida per molts usuaris. Si sou un usuari anònim i trobau que us han adreçat comentaris inoportuns, si us plau, [[Special:Userlogin|creeu-vos un compte]] per evitar futures confusions amb altres usuaris anònims.\'\'',
+'noarticletext' => 'En aquest moment no hi ha text en aquesta pàgina. Podeu [[Special:Search/{{PAGENAME}}|cercar-ne el títol]] en altres pàgines o [{{fullurl:{{FULLPAGENAME}}|action=edit}} començar a escriure-hi].',
+'clearyourcache' => '\'\'\'Nota:\'\'\' Després de desar, heu de posar al dia la memòria cau del vostre navegador per veure els canvis. \'\'\'Mozilla / Firefox / Safari:\'\'\' Premeu \'\'Shift\'\' mentre cliqueu \'\'Actualitza\'\' (Reload), o premeu \'\'Ctrl+Shift+R\'\' (\'\'Cmd+Shift+R\'\' en un Mac Apple); \'\'\'Internet Explorer:\'\'\' premeu \'\'Ctrl\'\' mentre cliqueu \'\'Actualitza\'\' (Refresh), o premeu \'\'Ctrl+F5\'\'; \'\'\'Konqueror:\'\'\': simplement cliqueu el botó \'\'Recarregar\'\' (Reload), o premeu \'\'F5\'\'; \'\'\'Opera\'\'\' haureu d\'esborrar completament la vostra memòria cau (caché) a \'\'Tools→Preferences\'\'.',
+'updated' => '(Actualitzat)',
+'note' => '<strong>Nota:</strong>',
+'previewnote' => '<strong>Adoneu-vos que això només és una vista prèvia, els canvis dels quals encara no s\'han alçat!</strong>',
+'previewconflict' => 'Aquesta previsualització reflexa el text a l\'ària
+d\'edició superior tal i com apareixerà si escolliu gravar.',
+'importing' => 'S\'està important $1',
+'editing' => 'S\'està editant $1',
+'editinguser' => 'S\'està editant $1',
+'editingsection' => 'S\'està editant $1 (secció)',
+'editingcomment' => 'S\'està editant $1 (comentari)',
+'editconflict' => 'Conflicte d\'edició: $1',
+'explainconflict' => 'Algú més ha canviat aquesta pàgina des que l\'heu editada.
+L\'ària de text superior conté el text de la pàgina com existeix actualment. Els vostres canvis es mostren a l\'ària de text inferior.
+Haureu d\'incorporar els vostres canvis en el text existent.
+<b>Sólo</b> el text a l\'ària de text superior serà gravat quan premeu
+ "Desa pàgina".<br />',
+'yourtext' => 'El vostre text',
+'storedversion' => 'Versió emmagatzemada',
+'nonunicodebrowser' => '<strong>ALERTA: El vostre navegador no és compatible amb unicode, si us plau canvieu-lo abans d\'editar articles.</strong>',
+'editingold' => '<strong>ATENCIÓ:Esteu editant una versió antiga d\'aquesta pàgina.
+Si la graveu, els canvis fets des d\'eixa revisió es perdran.</strong>',
+'yourdiff' => 'Diferències',
+'copyrightwarning2' => 'Si us plau, tingueu-se en consideració que totes les contribucions per al projecte de {{SITENAME}} són considerades com a publicades sota els termes de la Llicència de Documentació Lliure GNU (vegeu més detalls en $1). Si no desitgeu la modificació i distribució lliure dels vostres escrits sense el vostre consentiment, no els poseu ací. A més a més, en enviar-hi el vostre escrit, doneu fe en què tot és sota la vostra autoria, o copiats des de fonts en el domini públic o semblants.',
+'longpagewarning' => '<strong>ATENCIÓ: Aquesta pàgina fa $1 kB; hi ha navegadors que poden presentar problemes editant pàgines que s\'acostin o sobrepassin els 32 kB. Intenteu, si és possible, dividir la pàgina en seccions més petites.</strong>',
+'longpageerror' => '<strong>ERROR: El text que heu introduït és de $1 kB i sobrepassa el màxim permès de $2 kB. Per tant, no es desarà.</strong>',
+'readonlywarning' => '<strong>ADVERTÈNCIA: La base de dades està tancada per manteniment
+i no podeu desar les vostres contribucions en aquests moments. podeu retallar i enganxar el codi
+en un fitxer de text i desar-lo més tard.</strong>',
+'protectedpagewarning' => '<strong>ATENCIÓ: Aquesta pàgina està blocada i només pot ser editada per usuaris [[Project:Administradors|administradors]].</strong>',
+'semiprotectedpagewarning'=> '\'\'\'Atenció:\'\'\' Aquesta pàgina està blocada i només pot ser editada per usuaris registrats.',
+'templatesused' => 'Aquesta pàgina fa servir les següents plantilles:',
+'nocreatetitle' => 'S\'ha limitat la creació de pàgines',
+'nocreatetext' => 'Està restringida la possibilitat de crear noves pàgines.
+Podeu editar les planes ja existents o bé [[Special:Userlogin|entrar en un compte d\'usuari]].',
+'revhistory' => 'Historial de revisions',
+'nohistory' => 'No hi ha un historial de revisions per a aquesta pàgina.',
+'revnotfound' => 'Revisió no trobada',
+'revnotfoundtext' => 'No s\'ha pogut trobar la revisió antiga de la pàgina que demanàveu.
+Reviseu l\'URL que heu emprat per a accedir-hi.',
+'loadhist' => 'Recuperant la història de la pàgina',
+'currentrev' => 'Revisió actual',
+'revisionasof' => 'Revisió de $1',
+'old-revision-navigation'=> 'Revisió de $1; $5<br />($6) $3 | $4 ($7) $2',
+'previousrevision' => '←Versió anterior',
+'nextrevision' => 'Versió posterior→',
+'currentrevisionlink' => 'Versió actual',
+'cur' => 'act',
+'next' => 'seg',
+'last' => 'prev',
+'histlegend' => 'Simbologia: (act) = diferència amb la versió actual,
+(prev) = diferència amb la versió prèvia, m = edició menor',
+'deletedrev' => '[suprimit]',
+'histfirst' => 'El primer',
+'histlast' => 'El darrer',
+'rev-deleted-comment' => '(s\'ha suprimit el comentari)',
+'rev-deleted-user' => '(s\'ha suprimit el nom d\'usuari)',
+'rev-delundel' => 'mostra/amaga',
+'history-feed-title' => 'Historial de revisió',
+'history-feed-description'=> 'Historial de revisió per a aquesta pàgina del wiki',
+'history-feed-item-nocomment'=> '$1 a $2',
+'revdelete-selected' => 'Revisió seleccionada de [[:$1]]',
+'revdelete-legend' => 'Defineix restriccions en la revisió:',
+'revdelete-hide-text' => 'Amaga el text de revisió',
+'revdelete-hide-comment'=> 'Amaga el comentari de l\'edició',
+'revdelete-hide-user' => 'Amaga el nom d\'usuari o la IP de l\'editor',
+'revdelete-hide-restricted'=> 'Aplica aquestes restriccions als administradors com també als altres',
+'revdelete-log' => 'Comentari del registre:',
+'revdelete-submit' => 'Aplica a la revisió seleccionada',
+'difference' => '(Diferència entre revisions)',
+'loadingrev' => 'recuperant revisió per a diff',
+'lineno' => 'Línia $1:',
+'editcurrent' => 'Edita la versió actual d\'aquesta pàgina',
+'selectnewerversionfordiff'=> 'Selecciona una nova versió per a comparar',
+'selectolderversionfordiff'=> 'Selecciona una versió més antiga per a comparar',
+'compareselectedversions'=> 'Compara les versions seleccionades',
+'searchresults' => 'Resultats de la cerca',
+'searchresulttext' => 'Per a més informació de les cerques del projecte {{SITENAME}}, aneu a [[Project:Cerca|Cerca al projecte {{SITENAME}}]].',
+'searchsubtitle' => 'Heu cercat \'\'\'[[:$1]]\'\'\'',
+'searchsubtitleinvalid' => 'Per consulta "$1"',
+'badquery' => 'Consulta de recerca formulada de manera incorrecta',
+'badquerytext' => 'No s\'ha pogut processar la recerca.
+El motiu és probablement per què heu intentat cercar una paraula de menys de tres lletres, la qual cosa encara no és possible.
+També pot ser que hàgiu comès un error en lletrejar el terme.
+Torneu-ho a provar amb una altra recerca.',
+'matchtotals' => 'La consulta "$1" ha coincidit amb $2 títols d\'articles
+i el text de $3 articles.',
+'noexactmatch' => '\'\'\'No hi ha cap pàgina anomenada «$1».\'\'\' Si voleu, podeu ajudar [[:$1|creant-la]].',
+'titlematches' => 'Coincidències de títol d\'article',
+'notitlematches' => 'No hi ha coincidències de títol d\'article',
+'textmatches' => 'Coincidències de text d\'article',
+'notextmatches' => 'No hi ha coincidències de text d\'article',
+'prevn' => '$1 anteriors',
+'nextn' => '$1 següents',
+'viewprevnext' => 'Vés a ($1) ($2) ($3).',
+'showingresults' => 'S\'està mostrant a sota <b>$1</b> resultats començant per #<b>$2</b>.',
+'nonefound' => '<strong>Nota</strong>: les recerques sense èxit són causades tot sovint
+per recerques de paraules comunes com "la" o "de",
+que no es troben a l\'índex, o per especificar més d\'una paraula a cercar (només les pàgines
+que contenen tots els termes d\'una recerca apareixeran en el resultat).',
+'powersearch' => 'Cerca',
+'powersearchtext' => '
+Cerca en espais de nom :<br />
+$1<br />
+$2 Llista redireccions Cerca $3 $9',
+'searchdisabled' => 'La cerca dins el projecte {{SITENAME}} està desactivat. Mentrestant podeu cercar a través de Google, però tingueu en compte que la seva base de dades no estarà actualitzada.',
+'blanknamespace' => '(Portada)',
+'preferences' => 'Preferències',
+'prefsnologin' => 'No heu iniciat una sessió',
+'prefsnologintext' => 'Heu d\'haver [[Special:Userlogin|entrat]] per seleccionar preferències d\'usuari.',
+'prefsreset' => 'Les preferències han estat respostes des d\'emmagatzematge.',
+'qbsettings' => 'Preferències de "Quickbar"',
+'changepassword' => 'Canvia la contrasenya',
+'skin' => 'Aparença',
+'math' => 'Com es mostren les fòrmules',
+'dateformat' => 'Format de la data',
+'datedefault' => 'Cap preferència',
+'datetime' => 'Data i hora',
+'math_failure' => 'No s\'ha pogut entendre',
+'math_unknown_error' => 'error desconegut',
+'math_unknown_function' => 'funció desconeguda',
+'math_lexing_error' => 'error de lèxic',
+'math_syntax_error' => 'error de sintaxi',
+'prefs-personal' => 'Perfil d\'usuari',
+'prefs-rc' => 'Canvis recents',
+'saveprefs' => 'Desa les preferències',
+'resetprefs' => 'Torna a preferències per defecte',
+'oldpassword' => 'Contrasenya antiga',
+'newpassword' => 'Contrasenya nova',
+'retypenew' => 'Reescriviu la nova contrasenya',
+'textboxsize' => 'Dimensions de la caixa de text',
+'rows' => 'Files',
+'columns' => 'Columnes',
+'searchresultshead' => 'Preferències de la cerca',
+'resultsperpage' => 'Resultats a mostrar per pàgina',
+'contextlines' => 'Línies a mostrar per resultat',
+'contextchars' => 'Caràcters de context per línia',
+'stubthreshold' => 'Llindar d\'article mínim',
+'recentchangescount' => 'Nombre de títols en canvis recents',
+'savedprefs' => 'Les vostres preferències han estat desades.',
+'timezonelegend' => 'Fus horari',
+'timezonetext' => 'Entreu el número d\'hores de diferència entre la vostra hora local
+i l\'hora del servidor (UTC).',
+'localtime' => 'Hora local',
+'timezoneoffset' => 'Diferència',
+'servertime' => 'Hora del servidor',
+'allowemail' => 'Habilita el correu electrònic des d\'altres usuaris',
+'default' => 'per defecte',
+'files' => 'Fitxers',
+'userrights-lookup-user'=> 'Gestiona els grups d\'usuari',
+'userrights-user-editname'=> 'Introduïu un nom d\'usuari:',
+'editusergroup' => 'Edita els grups d\'usuaris',
+'userrights-editusergroup'=> 'Edita els grups d\'usuaris',
+'userrights-groupsmember'=> 'Membre de:',
+'userrights-groupsavailable'=> 'Grups disponibles:',
+'group' => 'Grup:',
+'group-sysop' => 'Administradors',
+'group-bureaucrat' => 'Buròcrates',
+'group-all' => '(tots)',
+'group-bot-member' => 'Bot',
+'group-sysop-member' => 'Administrador',
+'group-bureaucrat-member'=> 'Buròcrata',
+'grouppage-bot' => 'Project:Bots',
+'grouppage-sysop' => 'Project:Administradors',
+'grouppage-bureaucrat' => 'Project:Buròcrates',
+'changes' => 'canvis',
+'recentchanges' => 'Canvis recents',
+'recentchangestext' => 'Seguiu els canvis recents del projecte {{SITENAME}} en aquesta pàgina.',
+'rcnote' => 'A continuació hi ha els darrers <strong>$1</strong> canvis en els darrers <strong>$2</strong> dies, com de $3.',
+'rcnotefrom' => 'A sota hi ha els canvis des de <b>$2</b> (es mostren fins <b>$1</b>).',
+'rclistfrom' => 'Mostra els canvis nous des de $1',
+'rcshowhideminor' => '$1 edicions menors',
+'rcshowhidebots' => '$1 bots',
+'rcshowhideliu' => '$1 usuaris identificats',
+'rcshowhideanons' => '$1 usuaris anònims',
+'rcshowhidepatr' => '$1 edicions patrullades',
+'rcshowhidemine' => '$1 edicions pròpies',
+'rclinks' => 'Mostra els darrers $1 canvis en els darrers $2 dies<br />$3',
+'diff' => 'dif',
+'hist' => 'hist',
+'hide' => 'amaga',
+'show' => 'mostra',
+'minoreditletter' => 'm',
+'newpageletter' => 'N',
+'sectionlink' => '→',
+'number_of_watching_users_pageview'=> '[Usuaris que vigilen aquesta pàgina: $1]',
+'rc_categories' => 'Limita a les categories (separades amb "|")',
+'rc_categories_any' => 'Qualsevol',
+'upload' => 'Carrega',
+'uploadbtn' => 'Carrega un arxiu',
+'reupload' => 'Carrega de nou',
+'reuploaddesc' => 'Torna al formulari per apujar.',
+'uploadnologin' => 'No heu iniciat una sessió',
+'uploadnologintext' => 'Heu d\'[[Special:Userlogin|iniciar una sessió]]
+per a penjar-hi fitxers.',
+'upload_directory_read_only'=> 'El servidor web no pot escriure el directori de càrrega ($1)',
+'uploaderror' => 'S\'ha produït un error en l\'intent de carregar',
+'uploadtext' => 'Per a visualitzar o cercar imatges que s\'hagin apujat anteriorment, aneu a la [[Special:Imagelist|llista de fitxers carregats]].
+Les càrregues i les supressions es registren en el [[Project:Registre de càrregues|registre de càrregues]].
+
+Consulteu també la [[Project:Política d\'ús d\'imatges|política d\'ús d\'imatges]].
+
+Empreu la forma de sota per a carregar nous fitxers d\'imatges per a il·lustrar els articles.
+Amb la majoria de navegadors, veureu un botó «Navega...», que
+farà aparèixer la selecció de fitxers estàndard en el vostre sistema operatiu.
+Quan trieu un fitxer, el nom d\'aqueix fitxer apareixerà en el camp de text
+al costat del botó.
+També heu d\'activar la casella afirmant que no esteu violant cap dret d\'autor en carregar el fitxer.
+Cliqueu el botó «Carrega» per a completar la càrrega.
+Això pot trigar una estona si teniu una connexió lenta a Internet.
+
+Els formats preferits són el JPEG, per a imatges fotogràfiques, el PNG,
+per a dibuixos i imatges d\'icones, i OGG per a sons.
+Seria convenient que donéssiu noms descriptius als fitxers per a evitar així confusions.
+Per a incloure una imatge en un article, feu un enllaç de la forma
+* \'\'\'<nowiki>[[</nowiki>{{ns:Image}}<nowiki>:Fitxer.jpg]]</nowiki>
+* \'\'\'<nowiki>[[</nowiki>{{ns:Image}}<nowiki>:Fitxer.png|alt text]]</nowiki>
+o per a sons
+* \'\'\'<nowiki>[[</nowiki>{{ns:Media}}<nowiki>:Fitxer.ogg]]</nowiki>\'\'\'
+
+Tingueu en compte, que de la mateixa manera com passa amb les pàgines de la {{SITENAME}}, hom pot
+editar-hi o suprimir-hi els fitxers que hi heu carregat si pensen que és recomanable per al projecte. També se us pot blocar, impedint-vos doncs carregar fitxers si feu un abús del sistema.',
+'uploadlog' => 'registre de càrregues',
+'uploadlogpage' => 'Registre de càrregues',
+'uploadlogpagetext' => 'A sota hi ha un llistat dels fitxers que s\'han apujat més recentment.
+Totes les hores són les del servidor (UTC).',
+'filename' => 'Nom de fitxer',
+'filedesc' => 'Sumari',
+'fileuploadsummary' => 'Resum:',
+'filesource' => 'Font',
+'copyrightpage' => 'Project:Copyrights',
+'uploadedfiles' => 'Arxius carregats',
+'ignorewarning' => 'Ignora qualsevol avís i desa el fitxer igualment.',
+'ignorewarnings' => 'Ignora qualsevol avís',
+'minlength' => 'Els noms de les imatges han de tenir un mínim de tres lletres.',
+'badfilename' => 'El nom de la imatge s\'ha canviat a "$1".',
+'badfiletype' => '".$1" no és un format recomanat d\'imatge.',
+'successfulupload' => 'El fitxer s\'ha carregat amb èxit',
+'fileuploaded' => 'L\'arxiu "$1" s\'ha carregat amb èxit.
+Seguiu aquest enllaç si us plau: ($2) a la pàgina de descripció i empleneu
+la informació necesàir sobre l\'arxiu, tal com la procedència, la data de creació
+i l\'autor, i qualsevol altra cosa que pugueu saber al respecte.',
+'uploadwarning' => 'Advertència de càrrega d\'arxiu',
+'savefile' => 'Desa el fitxer',
+'uploadedimage' => '"[[$1]]" carregat.',
+'uploadvirus' => 'El fitxer conté un virus! Detalls: $1',
+'destfilename' => 'Nom del fitxer de destinació',
+'license' => 'Llicència',
+'nolicense' => 'No s\'ha seleccionat cap',
+'imagelist' => 'Llistat d\'imatges',
+'imagelisttext' => 'Llista {{plural:$1|d\'un arxiu|de \'\'\'$1\'\'\' arxius ordenats $2}}.',
+'getimagelist' => ' obtenint el llistat d\'imatges',
+'ilsubmit' => 'Cerca',
+'showlast' => 'Mostra les darreres $1 imatges ordenades $2.',
+'byname' => 'per nom',
+'bydate' => 'per data',
+'bysize' => 'per mida',
+'imgdelete' => 'edi',
+'imglegend' => 'Simbologia: (edi) = mostra/edita la descripció de la imatge.',
+'imghistory' => 'Història de la imatge',
+'deleteimg' => 'esb',
+'deleteimgcompletely' => 'Esborra totes les versions d\'aquest arxiu',
+'imghistlegend' => 'Simbologia: (act) = aquesta és la imatge actual, (esb) = esborra
+aquesta versió antiga, (rev) = reverteix a aquesta versió antiga.
+<br /><i>Cliqueu sobre la data per veure la imatge carregada en aquesta data</i>.',
+'imagelinks' => 'Enllaços a la imatge',
+'linkstoimage' => 'Les següents pàgines enllacen a aquesta imatge:',
+'nolinkstoimage' => 'No hi ha pàgines que enllacin aquesta imatge.',
+'sharedupload' => 'Aquest fitxer està compartit i pot ser emprat per altres projectes.',
+'noimage' => 'No existeix cap fitxer amb aquest nom, però podeu $1.',
+'noimage-linktext' => 'Carrega',
+'uploadnewversion-linktext'=> 'Carrega una nova versió d\'aquest arxiu',
+'mimesearch' => 'Cercar per MIME',
+'download' => 'descarrega',
+'unwatchedpages' => 'Pàgines desateses',
+'listredirects' => 'Llista de redireccions',
+'unusedtemplates' => 'Plantilles no usades',
+'unusedtemplatestext' => 'Aquesta pàgina mostra les pàgines en l\'espai de noms de plantilles, que no estan incloses en cap altra pàgina. Recordeu de comprovar les pàgines que hi enllacen abans d\'esborrar-les.',
+'unusedtemplateswlh' => 'altres enllaços',
+'randomredirect' => 'Redirecció a l\'atzar',
+'statistics' => 'Estadístiques',
+'sitestats' => 'Estadístiques del lloc',
+'userstats' => 'Estadístiques d\'usuari',
+'sitestatstext' => 'Hi ha un total de \'\'\'$1\'\'\' pàgines en la base de dades.
+Això inclou pàgines de discussió, pàgines sobre el projecte {{SITENAME}}, pàgines mínimes,
+redireccions, i altres que probablement no es poden classificar com a articles.
+Excloent-les, hi ha \'\'\'$2\'\'\' pàgines que probablement són articles legítims.
+
+S\'han penjat \'\'\'$8\'\'\' fitxers.
+
+Hi ha hagut un total de \'\'\'$3\'\'\' visites a pàgines, i \'\'\'$4\'\'\' edicions de pàgina
+des que el programari s\'ha configurat.
+Això resulta en un promig de \'\'\'$5\'\'\' edicions per pàgina,
+i \'\'\'$6\'\'\' visites per edició.
+
+La mida de la [http://meta.wikimedia.org/wiki/Help:Job_queue cua de treballs] és \'\'\'$7\'\'\'.',
+'userstatstext' => 'Hi ha \'\'\'$1\'\'\' usuaris registrats, dels quals
+\'\'\'$2\'\'\' (o \'\'\'$4%\'\'\') són administradors (vegeu $3).',
+'disambiguations' => 'Pàgines de desambiguació',
+'disambiguationspage' => 'Template:Desambiguació',
+'disambiguationstext' => 'Els següents articles enllacen a una<i>pàgina de desambiguació</i>. Haurien d\'enllaçar al tema apropiat.
+
+<br />Una pàgina és considerada una pàgina de desambiguació si és enllaçada des de $1.<br />Enllaços des d\'altres espais de nom (Com Viquipè
+
+dia: o usuari:) <i>no</i> són llistats ací.',
+'doubleredirects' => 'Redireccions Dobles',
+'doubleredirectstext' => '<b>Atenció:</b> aquest llistat pot contenir falsos positius. Això normalment significa que hi ha text
+
+addicional amb enllaços sota el primer #REDIRECT.<br />
+Cada fila conté enllaços al segon i tercer redireccionament, així com la primera línia del
+
+segon redireccionament, la qual cosa dóna normalment l\'article "real", al que el primer redireccionamet hauria d\'apuntar.',
+'brokenredirects' => 'Redireccions trencades',
+'nbytes' => '$1 {{PLURAL:$1|octet|octets}}',
+'ncategories' => '$1 {{PLURAL:$1|categoria|categories}}',
+'nlinks' => '$1 {{PLURAL:$1|enllaç|enllaços}}',
+'nmembers' => '$1 {{PLURAL:$1|membre|membres}}',
+'nrevisions' => '$1 {{PLURAL:$1|revisió|revisions}}',
+'nviews' => '$1 {{PLURAL:$1|visita|visites}}',
+'lonelypages' => 'Pàgines orfes',
+'uncategorizedpages' => 'Pàgines sense categoria',
+'uncategorizedcategories'=> 'Categories sense categoria',
+'uncategorizedimages' => 'Imatges sense categoria',
+'unusedcategories' => 'Categories sense articles',
+'unusedimages' => 'Imatges sense ús',
+'popularpages' => 'Pàgines populars',
+'wantedcategories' => 'Categories demanades',
+'wantedpages' => 'Pàgines demanades',
+'allpages' => 'Totes les pàgines',
+'prefixindex' => 'Cercar per prefix',
+'randompage' => 'Pàgina a l\'atzar',
+'shortpages' => 'Pàgines curtes',
+'longpages' => 'Pàgines llargues',
+'listusers' => 'Llistat d\'usuaris',
+'specialpages' => 'Pàgines especials',
+'spheading' => 'Pàgines especials',
+'recentchangeslinked' => 'Seguiment d\'enllaços',
+'rclsub' => '(a pàgines enllaçades des de "$1")',
+'newpages' => 'Pàgines noves',
+'move' => 'Reanomena',
+'movethispage' => 'Trasllada la pàgina',
+'unusedimagestext' => '<p>Noteu que altres llocs web poden enllaçar una imatge amb un URL directe i estar llistada aquí tot i estar en ús actiu.</p>',
+'booksources' => 'Fonts de llibres',
+'groups' => 'Grups d\'usuaris',
+'booksourcetext' => 'A continuació hi ha un llistat d\'enllaços a altres llocs que venen llibres nous i de segona mà, i que poden contenir informació addicional sobre els llibres que esteu cercant.
+El projecte {{SITENAME}} no està afiliat amb cap d\'aquests negocis, i aquest llistat no ha de ser considerat com propaganda.',
+'version' => 'Versió',
+'nextpage' => 'Següent pàgina ($1)',
+'allarticles' => 'Tots els articles',
+'allpagesprev' => 'Anterior',
+'allpagesnext' => 'Següent',
+'allpagesprefix' => 'Mostra les pàgines amb prefix:',
+'mailnologin' => 'No enviïs l\'adreça',
+'mailnologintext' => 'Heu d\'haver [[Special:Userlogin|entrat]]
+i tenir una adreça electrònica vàlida en les vostres [[Special:Preferences|preferències]]
+per enviar un correu electrònic a altres usuaris.',
+'emailuser' => 'Envia un missatge de correu electrònic a aquest usuari',
+'emailpage' => 'Correu electrònic a usuari',
+'emailpagetext' => 'Si aquest usuari ha entrat una adreça electrònica vàlida en les vostres preferències d\'usuari, el següent formulari
+
+serveix per enviar-li un missatge.
+L\'adreça electrònica que heu entrat en les vostres preferències d\'usuari apareixerà en el remitent, de manera que el destinatari pugui
+
+respondre.',
+'noemailtitle' => 'No hi ha cap adreça electrònica',
+'noemailtext' => 'Aquest usuari no ha especificat una adreça electrònica vàlida, o ha escollit no rebre correu electrònic d\'altres usuaris
+
+.',
+'emailfrom' => 'De',
+'emailto' => 'Per',
+'emailsubject' => 'Assumpte',
+'emailmessage' => 'Missatge',
+'emailsend' => 'Envia',
+'emailsent' => 'Correu electrònic enviat',
+'emailsenttext' => 'El vostre correu electrònic ha estat enviat.',
+'watchlist' => 'Llista de seguiment',
+'nowatchlist' => 'No teniu cap element en el vostre llistat de seguiment.',
+'watchnologin' => 'No heu iniciat sessió',
+'watchnologintext' => 'Heu d\'[[Special:Userlogin|entrar]]
+per modificar el vostre llistat de seguiment.',
+'addedwatch' => 'S\'ha afegit la pàgina a la llista de seguiment',
+'addedwatchtext' => 'S\'ha afegit la pàgina "$1" a la vostra <a href="{{localurle:Especial:Watchlist}}">llista de seguiment</a>.
+
+Els canvis futurs que tindran lloc en aquesta pàgina i la seua corresponent discussió s\'avisaran a la vostra <a href="{{localurle:Especial:Watchlist}}">llista de seguiment</a>, resaltant-se també <b>en negreta</b> en la <a href="{{localurle:Especial:Recentchanges}}">llista de canvis recents</a> per adonar-se\'n més fàcilment.</p>
+
+<p>Si voleu deixar de vigilar la pàgina, cliqueu sobre l\'enllaç de "Desatén" a la barra lateral.',
+'removedwatch' => 'S\'ha extret del llistat de seguiment',
+'removedwatchtext' => 'S\'ha tret la pàgina "[[:$1]]" de la vostra llista de seguiment.',
+'watch' => 'Vigila',
+'watchthispage' => 'Vigila aquesta pàgina',
+'unwatch' => 'Desatén',
+'unwatchthispage' => 'Desatén',
+'notanarticle' => 'No és un article',
+'wldone' => 'Fet.',
+'changed' => 'modificat',
+'enotif_body' => 'Benvolgut $WATCHINGUSERNAME,
+
+La pàgina $PAGETITLE del projecte {{SITENAME}} ha estat $CHANGEDORCREATED el dia $PAGEEDITDATE per $PAGEEDITOR, vegeu $PAGETITLE_URL per la versió actual.
+
+$NEWPAGE
+
+Resum ofert per l\'editor: $PAGESUMMARY $PAGEMINOREDIT
+
+Contacteu amb l\'editor:
+correu: $PAGEEDITOR_EMAIL
+pàgina d\'usuari: $PAGEEDITOR_WIKI
+
+No rebreu més notificacions de futurs canvis si no visiteu la pàgina. També podeu canviar el mode de notificació de les pàgines que vigileu en la vostra llista de seguiment.
+
+ El servei de notificació del projecte {{SITENAME}}
+
+--
+Per a canviar les opcions de la vostra llista de seguiment aneu a:
+{{fullurl:Special:Watchlist/edit}}
+
+Suggeriments i ajuda:
+{{fullurl:Help:Contents}}',
+'deletepage' => 'Esborra aquesta pàgina',
+'confirm' => 'Confirma',
+'exblank' => 'la pàgina estava en blanc',
+'confirmdelete' => 'Confirma l\'esborrat',
+'deletesub' => '(Esborrant "$1")',
+'confirmdeletetext' => 'Esteu a punt d\'esborrar una pàgina o imatge
+de forma permanent, així com tota la seva història de la base de dades.
+Confirmeu que realment ho voleu fer, que enteneu les
+conseqüències, i que el que esteu fent està d\'acord amb [[Project:Polítiques]].',
+'actioncomplete' => 'S\'ha realitzat l\'acció de manera satisfactòria.',
+'deletedtext' => '"$1" ha estat esborrat.
+Mostra $2 per a un registre dels esborrats més recents.',
+'deletedarticle' => 'esborrat "$1"',
+'dellogpage' => 'Registre_d\'esborrats',
+'dellogpagetext' => 'A sota hi ha un llistat dels esborrats més recents.
+Tots els temps es mostren en l\'hora del servidor (UTC).
+<ul>
+</ul>',
+'deletionlog' => 'Registre d\'esborrats',
+'reverted' => 'Invertit amb una revisió anterior',
+'deletecomment' => 'Motiu per a ser esborrat',
+'imagereverted' => 'S\'ha revertit amb èxit a una versió anterior.',
+'rollback' => 'Reverteix edicions',
+'rollbacklink' => 'Reverteix',
+'cantrollback' => 'No s\'ha pogut revertir les edicions; el darrer col·laborador és l\'únic autor d\'aquest article.',
+'revertpage' => 'Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]); s\'ha recuperat la darrera versió de [[User:$1|$1]]',
+'confirmprotecttext' => 'Voleu realment protegir aquesta pàgina?',
+'confirmprotect' => 'Confirmeu la protecció',
+'restriction-edit' => 'Edita',
+'undelete' => 'Restaura una pàgina esborrada',
+'undeletepage' => 'Mostra i restaura pàgines esborrades',
+'undeletepagetext' => 'Les següents pàgines han estat esborrades però encara són a l\'arxiu i poden ser restaurades. L\'arxiu pot ser netejat
+
+periòdicament.',
+'undeletearticle' => 'Restaura l\'article esborrat',
+'undeleterevisions' => '$1 revisions arxivades',
+'undeletehistory' => 'Si restaureu una pàgina, totes les revisions seran restaurades a la història.
+Si una nova pàgina amb el mateix nom ha estat creada des de l\'esborrat, les versions restaurades apareixeran com a història anterior, i la
+
+revisió actual del la pàgina "viva" no serà substituïda automàticament.',
+'undeleterevision' => 'Revisió esborrada al $1',
+'undeletebtn' => 'Restaura!',
+'undeletedarticle' => 'restaurat "$1"',
+'undeletedrevisions' => '$1 revisions restaurades',
+'namespace' => 'Espai de noms:',
+'contributions' => 'Contribucions de l\'usuari',
+'mycontris' => 'Contribucions',
+'contribsub' => 'Per $1',
+'nocontribs' => 'No s\'ha trobat canvis que encaixessin amb aquests criteris.',
+'ucnote' => 'A sota hi ha els darrers <b>$1</b> canvis d\'aquest usuari en els darrers <b>$2</b> dies.',
+'uclinks' => 'Mostra els darrers $1 canvis; mostra els darrers $2 dies.',
+'uctop' => ' (actual)',
+'newbies' => 'novells',
+'sp-newimages-showfrom' => 'Mostra imatges des de $1',
+'sp-contributions-newer'=> '$1 anteriors',
+'sp-contributions-older'=> '$1 següents',
+'sp-contributions-newbies-sub'=> 'Per a novells',
+'whatlinkshere' => 'El que enllaça ací',
+'notargettitle' => 'No hi ha pàgina en blanc',
+'notargettext' => 'No heu especificat a quina pàgina dur a terme aquesta funció.',
+'linklistsub' => '(Llista d\'enllaços)',
+'linkshere' => 'Les següents pàgines enllacen ací:',
+'nolinkshere' => 'Ací no enllaça cap pàgina.',
+'isredirect' => 'pàgina redirigida',
+'istemplate' => 'inclosa',
+'blockip' => 'Bloca l\'usuari',
+'blockiptext' => 'Empreu el següent formulari per blocar l\'accés
+d\'escriptura des d\'una adreça IP específica o des d\'un usuari determinat.
+això només s\'hauria de fer per prevenir el vandalisme, i
+d\'acord amb la [[Project:Política|política del projecte]].
+Empleneu el diàleg de sota amb un motiu específic (per exemple, citant
+quines pàgines en concret estan sent vandalitzades).',
+'ipaddress' => 'Adreça IP',
+'ipadressorusername' => 'Adreça IP o nom de l\'usuari',
+'ipbexpiry' => 'Caducitat',
+'ipbreason' => 'Motiu',
+'ipbsubmit' => 'Bloca aquesta adreça',
+'ipbother' => 'Un altre termini',
+'ipboptions' => '2 hores:2 hours,1 dia:1 day,3 dies:3 days,1 setmana:1 week,2 setmanes:2 weeks,1 mes:1 month,3 mesos:3 months,6 mesos:6 months,1 any:1 year,infinit:infinite',
+'ipbotheroption' => 'un altre',
+'badipaddress' => 'L\'adreça IP no té el format correcte.',
+'blockipsuccesssub' => 'S\'ha blocat amb èxit',
+'blockipsuccesstext' => 'L\'usuari "[[Special:Contributions/$1|$1]]" ha estat blocat.
+<br />Vegeu la [[Special:Ipblocklist|llista d\'IP blocades]] per revisar els bloquejos.',
+'unblockip' => 'Desbloca l\'usuari',
+'unblockiptext' => 'Empreu el següent formulari per restaurar
+l\'accés a l\'escriptura a una adreça IP o un usuari prèviament blocat.',
+'ipusubmit' => 'Desbloca aquesta adreça',
+'unblocked' => 'S\'ha desblocat l\'usuari [[User:$1|$1]]',
+'ipblocklist' => 'Llista d\'adreces IP i noms d\'usuaris blocats',
+'blocklistline' => '$1, $2 bloca $3 ($4)',
+'infiniteblock' => 'infinit',
+'expiringblock' => 'venç el $1',
+'ipblocklistempty' => 'La llista està buida.',
+'blocklink' => 'bloca',
+'unblocklink' => 'desbloca',
+'contribslink' => 'contribucions',
+'autoblocker' => 'Heu estat blocat perquè compartiu adreça IP amb "$1". Motiu: "$2"',
+'blocklogpage' => 'Registre de blocatges',
+'blocklogentry' => 's\'ha blocat "[[$1]]" per a un període de $2',
+'blocklogtext' => 'Això és una relació d\'accions de blocatge i desblocatge. Les adreces IP blocades automàticament no apareixen. Vegeu la [[Special:Ipblocklist|llista d\'usuaris actualment blocats]].',
+'unblocklogentry' => 'desblocat $1',
+'range_block_disabled' => 'La facultat dels administradors per crear blocatges de rang està desactivada.',
+'ipb_expiry_invalid' => 'Data d\'acabament no vàlida.',
+'ip_range_invalid' => 'Rang d\'IP no vàlid.',
+'proxyblockreason' => 'La vostra adreça IP ha estat blocada perquè és un proxy obert. Si us plau contactau el vostre proveïdor d\'Internet o servei tècnic i informau-los d\'aquest seriós problema de seguretat.',
+'proxyblocksuccess' => 'Fet.',
+'lockdb' => 'Bloca la base de dades',
+'unlockdb' => 'Desbloca la base de dades',
+'lockdbtext' => 'Blocant la base de dades s\'anul·larà la capacitat de tots els
+usuaris d\'editar pàgines, canviar les preferències, editar els llistats de seguiments, i
+altres canvis que requereixen canvis en la base de dades.
+Confirmeu que això és el que intenteu fer, i sobretot no us oblideu
+de desblocar la base de dades quan acabeu el manteniment.',
+'unlockdbtext' => 'Desblocant la base de dades es restaurarà l\'habilitat de tots
+els usuaris d\'editar pàgines, canviar les preferències, editar els llistats de seguiment, i
+altres accions que requereixen canvis en la base de dades.
+Confirmeu que això és el que voleu fer.',
+'lockconfirm' => 'Sí, realment vull blocar la base de dades.',
+'unlockconfirm' => 'Sí, realment vull desblocar la base dades.',
+'lockbtn' => 'Bloca la base de dades',
+'unlockbtn' => 'Desbloca la base de dades',
+'locknoconfirm' => 'No heu respost al diàleg de confirmació.',
+'lockdbsuccesssub' => 'S\'ha blocat la base de dades',
+'unlockdbsuccesssub' => 'S\'ha eliminat el blocatge de la base de dades',
+'lockdbsuccesstext' => 'S\'ha blocat la base de dades del projecte {{SITENAME}}.
+<br />Recordeu-vos de treure el blocatge quan hàgiu acabat el manteniment.',
+'unlockdbsuccesstext' => 'S\'ha desblocat la base de dades del projecte {{SITENAME}}.',
+'makesysoptitle' => 'Converteix en administrador',
+'makesysoptext' => 'Aquest formulari serveix per a que els buròcrates puguin convertir un usuari en administrador.
+Escrigueu el nom de l\'usuari i premeu el botó per acceptar-ho.',
+'makesysopname' => 'Nom de l\'usuari:',
+'makesysopsubmit' => 'Converteix aquest usuari en administrador',
+'makesysopok' => '<b>L\'usuari "$1" és un administrador a partir d\'ara</b>',
+'rights' => 'Permisos:',
+'already_sysop' => 'Aquest usuari ja és un administrador',
+'rightsnone' => '(cap)',
+'movepage' => 'Reanomena la pàgina',
+'movepagetext' => 'Emprant el següent formulari reanomenareu una pàgina,
+movent tota la seva història al nou nom.
+El títol anterior es convertirà en un redireccionament al nou títol.
+Els enllaços a l\'antic títol de la pàgina no es canviaran. Assegureu-vos-en de verificar que no deixeu redireccions
+
+dobles o trencades.
+Sou el responsable de fer que els enllaços segueixin apuntant on se suposa que ho facin.
+
+Noteu que la pàgina \'\'\'no\'\'\' serà traslladada si ja existeix una pàgina amb el títol nou, a no ser que sigui una pàgina buida o un
+
+\'\'redireccionament\'\' sense història.
+Això significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina
+
+existent.
+
+<b>ADVERTÈNCIA!</b>
+Això pot ser un canvi dràstic i inesperat per una pàgina popular;
+assegureu-vos-en d\'entendre les conseqüències que comporta
+abans de seguir endavant.',
+'movepagetalktext' => 'La pàgina de discussió associada, si existeix, serà traslladada automàticament \'\'\'a menys que:\'\'\'
+*Ja existeixi una pàgina de discussió no buida amb el nom nou, o
+*Hàgiu desseleccionat l\'opció de sota.
+
+En aquests casos, haureu de traslladar o fusionar la pàgina manualment si ho desitgeu.',
+'movearticle' => 'Reanomena la pàgina',
+'movenologin' => 'No sou a dins d\'una sessió',
+'movenologintext' => 'Heu de ser un usuari registrat i estar [[Special:Userlogin|dintre d\'una sessió]]
+per reanomenar una pàgina.',
+'newtitle' => 'A títol nou',
+'movepagebtn' => 'Reanomena la pàgina',
+'pagemovedsub' => 'Reanomenament amb èxit',
+'pagemovedtext' => 'Pàgina "[[$1]]" reanomenada a "[[$2]]".',
+'articleexists' => 'Ja existeix una pàgina amb aquest nom, o el nom que heu
+escollit no és vàlid.
+Escolliu un altre nom, si us plau.',
+'talkexists' => 'S\'ha reanomenat la pàgina amb èxit, però la pàgina de discussió no s\'ha pogut moure car ja no existeix en el títol nou.
+
+Incorporeu-les manualment, si us plau.',
+'movedto' => 'reanomenat a',
+'movetalk' => 'Reanomena també la pàgina de discussió si és aplicable.',
+'talkpagemoved' => 'També ha estat reanomenada la pàgina de discussió corresponent.',
+'talkpagenotmoved' => 'La pàgina de discussió corresponent <strong>no</strong> ha estat reanomenada.',
+'1movedto2' => '[[$1]] mogut a [[$2]]',
+'1movedto2_redir' => '[[$1]] mogut a [[$2]] per redirecció',
+'movelogpage' => 'Registre de reanomenaments',
+'movereason' => 'Motiu',
+'revertmove' => 'revertir',
+'delete_and_move' => 'Esborra i trasllada',
+'delete_and_move_text' => '==Cal esborrar==
+
+L\'article de destí, "[[$1]]", ja existeix. Voleu esborrar-lo per fer lloc per al trasllat?',
+'delete_and_move_confirm'=> 'Sí, esborra la pàgina',
+'export-submit' => 'Exporta',
+'allmessages' => 'Tots els missatges del sistema',
+'allmessagesname' => 'Etiqueta',
+'allmessagesdefault' => 'Text per defecte',
+'allmessagescurrent' => 'Text actual',
+'allmessagestext' => 'Tot seguit hi és una llista dels missatges del sistema que es troben a l\'espai de noms de \'\'MediaWiki\'\'.',
+'allmessagesnotsupportedUI'=> 'La llengua de la vostra interfície actual, <strong>$1</strong>, no es troba implementada en els Special:Allmessages d\'aquest lloc.',
+'allmessagesfilter' => 'Cerca etiqueta de missatge:',
+'allmessagesmodified' => 'Mostra només missatges modificats',
+'import' => 'Importa les pàgines',
+'importfailed' => 'La importació ha fallat: $1',
+'importsuccess' => 'S\'ha importat amb èxit!',
+'importnofile' => 'No s\'ha apujat cap fitxer d\'importació.',
+'accesskey-search' => 'f',
+'accesskey-minoredit' => 'i',
+'accesskey-save' => 's',
+'accesskey-preview' => 'p',
+'accesskey-diff' => 'v',
+'accesskey-compareselectedversions'=> 'v',
+'accesskey-watch' => 'w',
+'tooltip-search' => 'Cerca en el projecte {{SITENAME}} [alt-f]',
+'tooltip-minoredit' => 'Marca-ho com una edició menor [alt-i]',
+'tooltip-save' => 'Desa els vostres canvis [alt-s]',
+'tooltip-diff' => 'Mostra quins canvis heu fet al text. [alt-v]',
+'Common.css' => '/* Editeu aquest fitxer per personalitzar totes les aparences per al lloc sencer */',
+'Monobook.css' => '/* Editeu aquest fitxer per personalitzar l\'aparença del