summaryrefslogtreecommitdiff
path: root/languages
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2011-12-03 13:29:22 +0100
committerPierre Schmitz <pierre@archlinux.de>2011-12-03 13:29:22 +0100
commitca32f08966f1b51fcb19460f0996bb0c4048e6fe (patch)
treeec04cc15b867bc21eedca904cea9af0254531a11 /languages
parenta22fbfc60f36f5f7ee10d5ae6fe347340c2ee67c (diff)
Update to MediaWiki 1.18.0
* also update ArchLinux skin to chagnes in MonoBook * Use only css to hide our menu bar when printing
Diffstat (limited to 'languages')
-rw-r--r--languages/Language.php957
-rw-r--r--languages/LanguageConverter.php218
-rw-r--r--languages/Names.php28
-rw-r--r--languages/classes/LanguageAm.php5
-rw-r--r--languages/classes/LanguageAr.php12
-rw-r--r--languages/classes/LanguageAz.php5
-rw-r--r--languages/classes/LanguageBe.php8
-rw-r--r--languages/classes/LanguageBe_tarask.php32
-rw-r--r--languages/classes/LanguageBg.php4
-rw-r--r--languages/classes/LanguageBh.php5
-rw-r--r--languages/classes/LanguageBs.php12
-rw-r--r--languages/classes/LanguageCs.php15
-rw-r--r--languages/classes/LanguageCu.php16
-rw-r--r--languages/classes/LanguageCy.php8
-rw-r--r--languages/classes/LanguageDsb.php16
-rw-r--r--languages/classes/LanguageEo.php14
-rw-r--r--languages/classes/LanguageEt.php4
-rw-r--r--languages/classes/LanguageFi.php15
-rw-r--r--languages/classes/LanguageFr.php5
-rw-r--r--languages/classes/LanguageGa.php16
-rw-r--r--languages/classes/LanguageGan.php47
-rw-r--r--languages/classes/LanguageGd.php27
-rw-r--r--languages/classes/LanguageGv.php5
-rw-r--r--languages/classes/LanguageHe.php2
-rw-r--r--languages/classes/LanguageHi.php5
-rw-r--r--languages/classes/LanguageHr.php7
-rw-r--r--languages/classes/LanguageHsb.php16
-rw-r--r--languages/classes/LanguageHu.php6
-rw-r--r--languages/classes/LanguageHy.php24
-rw-r--r--languages/classes/LanguageIu.deps.php8
-rw-r--r--languages/classes/LanguageIu.php224
-rw-r--r--languages/classes/LanguageJa.php14
-rw-r--r--languages/classes/LanguageKaa.php35
-rw-r--r--languages/classes/LanguageKk.php75
-rw-r--r--languages/classes/LanguageKk_cyrl.php25
-rw-r--r--languages/classes/LanguageKm.php5
-rw-r--r--languages/classes/LanguageKsh.php144
-rw-r--r--languages/classes/LanguageKu.php25
-rw-r--r--languages/classes/LanguageKu_ku.php4
-rw-r--r--languages/classes/LanguageLa.php5
-rw-r--r--languages/classes/LanguageLn.php6
-rw-r--r--languages/classes/LanguageLt.php7
-rw-r--r--languages/classes/LanguageLv.php2
-rw-r--r--languages/classes/LanguageMg.php5
-rw-r--r--languages/classes/LanguageMk.php5
-rw-r--r--languages/classes/LanguageMl.php6
-rw-r--r--languages/classes/LanguageMo.php6
-rw-r--r--languages/classes/LanguageMt.php6
-rw-r--r--languages/classes/LanguageMy.php5
-rw-r--r--languages/classes/LanguageNso.php5
-rw-r--r--languages/classes/LanguageOs.php87
-rw-r--r--languages/classes/LanguagePl.php10
-rw-r--r--languages/classes/LanguageQqx.php15
-rw-r--r--languages/classes/LanguageRo.php6
-rw-r--r--languages/classes/LanguageRu.php23
-rw-r--r--languages/classes/LanguageSe.php6
-rw-r--r--languages/classes/LanguageSgs.php (renamed from languages/classes/LanguageBat_smg.php)7
-rw-r--r--languages/classes/LanguageSh.php8
-rw-r--r--languages/classes/LanguageSk.php6
-rw-r--r--languages/classes/LanguageSl.php11
-rw-r--r--languages/classes/LanguageSma.php12
-rw-r--r--languages/classes/LanguageSr.php58
-rw-r--r--languages/classes/LanguageSr_ec.php6
-rw-r--r--languages/classes/LanguageSr_el.php6
-rw-r--r--languages/classes/LanguageTi.php5
-rw-r--r--languages/classes/LanguageTl.php5
-rw-r--r--languages/classes/LanguageTr.php23
-rw-r--r--languages/classes/LanguageTyv.php2
-rw-r--r--languages/classes/LanguageUk.php24
-rw-r--r--languages/classes/LanguageWa.php32
-rw-r--r--languages/classes/LanguageYue.php13
-rw-r--r--languages/classes/LanguageZh.php39
-rw-r--r--languages/classes/LanguageZh_hans.php14
-rw-r--r--languages/messages/MessagesAb.php14
-rw-r--r--languages/messages/MessagesAce.php174
-rw-r--r--languages/messages/MessagesAf.php693
-rw-r--r--languages/messages/MessagesAln.php64
-rw-r--r--languages/messages/MessagesAm.php160
-rw-r--r--languages/messages/MessagesAn.php365
-rw-r--r--languages/messages/MessagesAng.php55
-rw-r--r--languages/messages/MessagesAnp.php743
-rw-r--r--languages/messages/MessagesAr.php877
-rw-r--r--languages/messages/MessagesArc.php107
-rw-r--r--languages/messages/MessagesArn.php183
-rw-r--r--languages/messages/MessagesAry.php335
-rw-r--r--languages/messages/MessagesArz.php309
-rw-r--r--languages/messages/MessagesAs.php547
-rw-r--r--languages/messages/MessagesAst.php645
-rw-r--r--languages/messages/MessagesAv.php3
-rw-r--r--languages/messages/MessagesAvk.php236
-rw-r--r--languages/messages/MessagesAy.php1
-rw-r--r--languages/messages/MessagesAz.php432
-rw-r--r--languages/messages/MessagesBa.php233
-rw-r--r--languages/messages/MessagesBar.php645
-rw-r--r--languages/messages/MessagesBcc.php310
-rw-r--r--languages/messages/MessagesBcl.php108
-rw-r--r--languages/messages/MessagesBe.php270
-rw-r--r--languages/messages/MessagesBe_tarask.php636
-rw-r--r--languages/messages/MessagesBg.php609
-rw-r--r--languages/messages/MessagesBh.php735
-rw-r--r--languages/messages/MessagesBho.php739
-rw-r--r--languages/messages/MessagesBi.php8
-rw-r--r--languages/messages/MessagesBjn.php392
-rw-r--r--languages/messages/MessagesBm.php1
-rw-r--r--languages/messages/MessagesBn.php595
-rw-r--r--languages/messages/MessagesBo.php39
-rw-r--r--languages/messages/MessagesBpy.php113
-rw-r--r--languages/messages/MessagesBqi.php31
-rw-r--r--languages/messages/MessagesBr.php664
-rw-r--r--languages/messages/MessagesBrh.php650
-rw-r--r--languages/messages/MessagesBs.php697
-rw-r--r--languages/messages/MessagesBug.php5
-rw-r--r--languages/messages/MessagesCa.php687
-rw-r--r--languages/messages/MessagesCdo.php27
-rw-r--r--languages/messages/MessagesCe.php75
-rw-r--r--languages/messages/MessagesCeb.php74
-rw-r--r--languages/messages/MessagesCh.php36
-rw-r--r--languages/messages/MessagesCkb.php339
-rw-r--r--languages/messages/MessagesCo.php12
-rw-r--r--languages/messages/MessagesCps.php40
-rw-r--r--languages/messages/MessagesCrh_cyrl.php204
-rw-r--r--languages/messages/MessagesCrh_latn.php202
-rw-r--r--languages/messages/MessagesCs.php696
-rw-r--r--languages/messages/MessagesCsb.php71
-rw-r--r--languages/messages/MessagesCu.php41
-rw-r--r--languages/messages/MessagesCv.php40
-rw-r--r--languages/messages/MessagesCy.php548
-rw-r--r--languages/messages/MessagesDa.php677
-rw-r--r--languages/messages/MessagesDe.php794
-rw-r--r--languages/messages/MessagesDe_ch.php24
-rw-r--r--languages/messages/MessagesDe_formal.php88
-rw-r--r--languages/messages/MessagesDiq.php227
-rw-r--r--languages/messages/MessagesDsb.php763
-rw-r--r--languages/messages/MessagesDtp.php1413
-rw-r--r--languages/messages/MessagesDv.php33
-rw-r--r--languages/messages/MessagesDz.php31
-rw-r--r--languages/messages/MessagesEe.php11
-rw-r--r--languages/messages/MessagesEl.php672
-rw-r--r--languages/messages/MessagesEml.php2
-rw-r--r--languages/messages/MessagesEn.php866
-rw-r--r--languages/messages/MessagesEn_gb.php11
-rw-r--r--languages/messages/MessagesEo.php698
-rw-r--r--languages/messages/MessagesEs.php774
-rw-r--r--languages/messages/MessagesEt.php649
-rw-r--r--languages/messages/MessagesEu.php478
-rw-r--r--languages/messages/MessagesExt.php117
-rw-r--r--languages/messages/MessagesFa.php722
-rw-r--r--languages/messages/MessagesFi.php771
-rw-r--r--languages/messages/MessagesFo.php641
-rw-r--r--languages/messages/MessagesFr.php683
-rw-r--r--languages/messages/MessagesFrc.php20
-rw-r--r--languages/messages/MessagesFrp.php746
-rw-r--r--languages/messages/MessagesFrr.php131
-rw-r--r--languages/messages/MessagesFur.php193
-rw-r--r--languages/messages/MessagesFy.php298
-rw-r--r--languages/messages/MessagesGa.php116
-rw-r--r--languages/messages/MessagesGag.php122
-rw-r--r--languages/messages/MessagesGan_hans.php145
-rw-r--r--languages/messages/MessagesGan_hant.php195
-rw-r--r--languages/messages/MessagesGd.php122
-rw-r--r--languages/messages/MessagesGl.php968
-rw-r--r--languages/messages/MessagesGn.php3
-rw-r--r--languages/messages/MessagesGot.php11
-rw-r--r--languages/messages/MessagesGrc.php246
-rw-r--r--languages/messages/MessagesGsw.php677
-rw-r--r--languages/messages/MessagesGu.php394
-rw-r--r--languages/messages/MessagesGv.php122
-rw-r--r--languages/messages/MessagesHa.php37
-rw-r--r--languages/messages/MessagesHak.php105
-rw-r--r--languages/messages/MessagesHaw.php47
-rw-r--r--languages/messages/MessagesHe.php779
-rw-r--r--languages/messages/MessagesHi.php255
-rw-r--r--languages/messages/MessagesHif_latn.php211
-rw-r--r--languages/messages/MessagesHil.php116
-rw-r--r--languages/messages/MessagesHr.php693
-rw-r--r--languages/messages/MessagesHsb.php702
-rw-r--r--languages/messages/MessagesHt.php207
-rw-r--r--languages/messages/MessagesHu.php842
-rw-r--r--languages/messages/MessagesHy.php241
-rw-r--r--languages/messages/MessagesIa.php718
-rw-r--r--languages/messages/MessagesId.php718
-rw-r--r--languages/messages/MessagesIe.php267
-rw-r--r--languages/messages/MessagesIg.php89
-rw-r--r--languages/messages/MessagesIke_cans.php9
-rw-r--r--languages/messages/MessagesIke_latn.php9
-rw-r--r--languages/messages/MessagesIlo.php595
-rw-r--r--languages/messages/MessagesInh.php65
-rw-r--r--languages/messages/MessagesIo.php153
-rw-r--r--languages/messages/MessagesIs.php2007
-rw-r--r--languages/messages/MessagesIt.php703
-rw-r--r--languages/messages/MessagesJa.php849
-rw-r--r--languages/messages/MessagesJam.php1114
-rw-r--r--languages/messages/MessagesJut.php35
-rw-r--r--languages/messages/MessagesJv.php172
-rw-r--r--languages/messages/MessagesKa.php549
-rw-r--r--languages/messages/MessagesKaa.php175
-rw-r--r--languages/messages/MessagesKab.php75
-rw-r--r--languages/messages/MessagesKbd_cyrl.php56
-rw-r--r--languages/messages/MessagesKhw.php1083
-rw-r--r--languages/messages/MessagesKiu.php97
-rw-r--r--languages/messages/MessagesKk_arab.php292
-rw-r--r--languages/messages/MessagesKk_cyrl.php316
-rw-r--r--languages/messages/MessagesKk_latn.php295
-rw-r--r--languages/messages/MessagesKl.php10
-rw-r--r--languages/messages/MessagesKm.php844
-rw-r--r--languages/messages/MessagesKn.php180
-rw-r--r--languages/messages/MessagesKo.php716
-rw-r--r--languages/messages/MessagesKoi.php39
-rw-r--r--languages/messages/MessagesKrc.php212
-rw-r--r--languages/messages/MessagesKri.php1
-rw-r--r--languages/messages/MessagesKrj.php1
-rw-r--r--languages/messages/MessagesKs.php18
-rw-r--r--languages/messages/MessagesKs_arab.php75
-rw-r--r--languages/messages/MessagesKs_deva.php33
-rw-r--r--languages/messages/MessagesKsh.php785
-rw-r--r--languages/messages/MessagesKu_latn.php250
-rw-r--r--languages/messages/MessagesKw.php73
-rw-r--r--languages/messages/MessagesKy.php12
-rw-r--r--languages/messages/MessagesLa.php397
-rw-r--r--languages/messages/MessagesLad.php225
-rw-r--r--languages/messages/MessagesLb.php696
-rw-r--r--languages/messages/MessagesLez.php160
-rw-r--r--languages/messages/MessagesLfn.php44
-rw-r--r--languages/messages/MessagesLg.php78
-rw-r--r--languages/messages/MessagesLi.php659
-rw-r--r--languages/messages/MessagesLij.php773
-rw-r--r--languages/messages/MessagesLiv.php783
-rw-r--r--languages/messages/MessagesLmo.php101
-rw-r--r--languages/messages/MessagesLn.php14
-rw-r--r--languages/messages/MessagesLo.php105
-rw-r--r--languages/messages/MessagesLoz.php48
-rw-r--r--languages/messages/MessagesLt.php661
-rw-r--r--languages/messages/MessagesLtg.php46
-rw-r--r--languages/messages/MessagesLv.php459
-rw-r--r--languages/messages/MessagesLzh.php185
-rw-r--r--languages/messages/MessagesLzz.php39
-rw-r--r--languages/messages/MessagesMai.php459
-rw-r--r--languages/messages/MessagesMap_bms.php24
-rw-r--r--languages/messages/MessagesMdf.php310
-rw-r--r--languages/messages/MessagesMg.php323
-rw-r--r--languages/messages/MessagesMhr.php103
-rw-r--r--languages/messages/MessagesMin.php113
-rw-r--r--languages/messages/MessagesMk.php841
-rw-r--r--languages/messages/MessagesMl.php717
-rw-r--r--languages/messages/MessagesMn.php166
-rw-r--r--languages/messages/MessagesMo.php17
-rw-r--r--languages/messages/MessagesMr.php541
-rw-r--r--languages/messages/MessagesMrj.php27
-rw-r--r--languages/messages/MessagesMs.php865
-rw-r--r--languages/messages/MessagesMt.php646
-rw-r--r--languages/messages/MessagesMwl.php45
-rw-r--r--languages/messages/MessagesMy.php242
-rw-r--r--languages/messages/MessagesMyv.php254
-rw-r--r--languages/messages/MessagesMzn.php18
-rw-r--r--languages/messages/MessagesNah.php103
-rw-r--r--languages/messages/MessagesNan.php727
-rw-r--r--languages/messages/MessagesNap.php15
-rw-r--r--languages/messages/MessagesNds.php312
-rw-r--r--languages/messages/MessagesNds_nl.php721
-rw-r--r--languages/messages/MessagesNe.php499
-rw-r--r--languages/messages/MessagesNew.php2
-rw-r--r--languages/messages/MessagesNiu.php3
-rw-r--r--languages/messages/MessagesNl.php788
-rw-r--r--languages/messages/MessagesNl_informal.php38
-rw-r--r--languages/messages/MessagesNn.php517
-rw-r--r--languages/messages/MessagesNo.php772
-rw-r--r--languages/messages/MessagesNov.php8
-rw-r--r--languages/messages/MessagesNso.php70
-rw-r--r--languages/messages/MessagesNv.php2
-rw-r--r--languages/messages/MessagesOc.php366
-rw-r--r--languages/messages/MessagesOr.php478
-rw-r--r--languages/messages/MessagesOs.php68
-rw-r--r--languages/messages/MessagesPa.php203
-rw-r--r--languages/messages/MessagesPag.php9
-rw-r--r--languages/messages/MessagesPam.php114
-rw-r--r--languages/messages/MessagesPap.php11
-rw-r--r--languages/messages/MessagesPcd.php37
-rw-r--r--languages/messages/MessagesPdc.php158
-rw-r--r--languages/messages/MessagesPdt.php25
-rw-r--r--languages/messages/MessagesPfl.php35
-rw-r--r--languages/messages/MessagesPi.php19
-rw-r--r--languages/messages/MessagesPl.php697
-rw-r--r--languages/messages/MessagesPms.php601
-rw-r--r--languages/messages/MessagesPnb.php477
-rw-r--r--languages/messages/MessagesPnt.php54
-rw-r--r--languages/messages/MessagesPrg.php716
-rw-r--r--languages/messages/MessagesPs.php298
-rw-r--r--languages/messages/MessagesPt.php689
-rw-r--r--languages/messages/MessagesPt_br.php737
-rw-r--r--languages/messages/MessagesQqq.php741
-rw-r--r--languages/messages/MessagesQu.php624
-rw-r--r--languages/messages/MessagesQug.php761
-rw-r--r--languages/messages/MessagesRgn.php29
-rw-r--r--languages/messages/MessagesRif.php39
-rw-r--r--languages/messages/MessagesRm.php392
-rw-r--r--languages/messages/MessagesRmy.php21
-rw-r--r--languages/messages/MessagesRo.php712
-rw-r--r--languages/messages/MessagesRoa_rup.php217
-rw-r--r--languages/messages/MessagesRoa_tara.php553
-rw-r--r--languages/messages/MessagesRu.php604
-rw-r--r--languages/messages/MessagesRue.php575
-rw-r--r--languages/messages/MessagesRup.php224
-rw-r--r--languages/messages/MessagesRuq_cyrl.php2
-rw-r--r--languages/messages/MessagesRuq_latn.php2
-rw-r--r--languages/messages/MessagesSa.php380
-rw-r--r--languages/messages/MessagesSah.php552
-rw-r--r--languages/messages/MessagesSc.php66
-rw-r--r--languages/messages/MessagesScn.php291
-rw-r--r--languages/messages/MessagesSco.php83
-rw-r--r--languages/messages/MessagesSd.php140
-rw-r--r--languages/messages/MessagesSdc.php230
-rw-r--r--languages/messages/MessagesSe.php89
-rw-r--r--languages/messages/MessagesSei.php32
-rw-r--r--languages/messages/MessagesSg.php63
-rw-r--r--languages/messages/MessagesSgs.php89
-rw-r--r--languages/messages/MessagesSh.php813
-rw-r--r--languages/messages/MessagesShi.php62
-rw-r--r--languages/messages/MessagesSi.php617
-rw-r--r--languages/messages/MessagesSk.php708
-rw-r--r--languages/messages/MessagesSl.php677
-rw-r--r--languages/messages/MessagesSli.php291
-rw-r--r--languages/messages/MessagesSm.php6
-rw-r--r--languages/messages/MessagesSma.php76
-rw-r--r--languages/messages/MessagesSo.php172
-rw-r--r--languages/messages/MessagesSq.php618
-rw-r--r--languages/messages/MessagesSr.php2
-rw-r--r--languages/messages/MessagesSr_ec.php964
-rw-r--r--languages/messages/MessagesSr_el.php579
-rw-r--r--languages/messages/MessagesSrn.php143
-rw-r--r--languages/messages/MessagesSs.php3
-rw-r--r--languages/messages/MessagesSt.php6
-rw-r--r--languages/messages/MessagesStq.php320
-rw-r--r--languages/messages/MessagesSu.php400
-rw-r--r--languages/messages/MessagesSv.php690
-rw-r--r--languages/messages/MessagesSw.php441
-rw-r--r--languages/messages/MessagesSzl.php397
-rw-r--r--languages/messages/MessagesTa.php268
-rw-r--r--languages/messages/MessagesTcy.php114
-rw-r--r--languages/messages/MessagesTe.php578
-rw-r--r--languages/messages/MessagesTet.php109
-rw-r--r--languages/messages/MessagesTg_cyrl.php174
-rw-r--r--languages/messages/MessagesTg_latn.php159
-rw-r--r--languages/messages/MessagesTh.php413
-rw-r--r--languages/messages/MessagesTk.php182
-rw-r--r--languages/messages/MessagesTl.php621
-rw-r--r--languages/messages/MessagesTo.php51
-rw-r--r--languages/messages/MessagesTp.php12
-rw-r--r--languages/messages/MessagesTpi.php36
-rw-r--r--languages/messages/MessagesTr.php649
-rw-r--r--languages/messages/MessagesTs.php68
-rw-r--r--languages/messages/MessagesTt_cyrl.php290
-rw-r--r--languages/messages/MessagesTt_latn.php105
-rw-r--r--languages/messages/MessagesTyv.php20
-rw-r--r--languages/messages/MessagesUdm.php3
-rw-r--r--languages/messages/MessagesUg_arab.php511
-rw-r--r--languages/messages/MessagesUg_latn.php71
-rw-r--r--languages/messages/MessagesUk.php662
-rw-r--r--languages/messages/MessagesUr.php138
-rw-r--r--languages/messages/MessagesUz.php67
-rw-r--r--languages/messages/MessagesVec.php328
-rw-r--r--languages/messages/MessagesVep.php220
-rw-r--r--languages/messages/MessagesVi.php773
-rw-r--r--languages/messages/MessagesVls.php1
-rw-r--r--languages/messages/MessagesVmf.php64
-rw-r--r--languages/messages/MessagesVo.php278
-rw-r--r--languages/messages/MessagesVot.php27
-rw-r--r--languages/messages/MessagesVro.php122
-rw-r--r--languages/messages/MessagesWa.php85
-rw-r--r--languages/messages/MessagesWar.php75
-rw-r--r--languages/messages/MessagesWo.php125
-rw-r--r--languages/messages/MessagesWuu.php59
-rw-r--r--languages/messages/MessagesXal.php54
-rw-r--r--languages/messages/MessagesXmf.php43
-rw-r--r--languages/messages/MessagesYi.php414
-rw-r--r--languages/messages/MessagesYo.php359
-rw-r--r--languages/messages/MessagesYue.php463
-rw-r--r--languages/messages/MessagesZea.php38
-rw-r--r--languages/messages/MessagesZh.php119
-rw-r--r--languages/messages/MessagesZh_hans.php762
-rw-r--r--languages/messages/MessagesZh_hant.php698
-rw-r--r--languages/messages/MessagesZh_hk.php10
-rw-r--r--languages/messages/MessagesZh_tw.php76
-rw-r--r--languages/messages/MessagesZu.php9
383 files changed, 62997 insertions, 37218 deletions
diff --git a/languages/Language.php b/languages/Language.php
index fee5aec3..ac921403 100644
--- a/languages/Language.php
+++ b/languages/Language.php
@@ -19,14 +19,6 @@ if ( !defined( 'MEDIAWIKI' ) ) {
global $wgLanguageNames;
require_once( dirname( __FILE__ ) . '/Names.php' );
-global $wgInputEncoding, $wgOutputEncoding;
-
-/**
- * These are always UTF-8, they exist only for backwards compatibility
- */
-$wgInputEncoding = 'UTF-8';
-$wgOutputEncoding = 'UTF-8';
-
if ( function_exists( 'mb_strtoupper' ) ) {
mb_internal_encoding( 'UTF-8' );
}
@@ -73,7 +65,11 @@ class Language {
*/
var $transformData = array();
+ /**
+ * @var LocalisationCache
+ */
static public $dataCache;
+
static public $mLangObjCache = array();
static public $mWeekdayMsgs = array(
@@ -132,6 +128,8 @@ class Language {
/**
* Get a cached language object for a given language code
+ * @param $code String
+ * @return Language
*/
static function factory( $code ) {
if ( !isset( self::$mLangObjCache[$code] ) ) {
@@ -146,28 +144,40 @@ class Language {
/**
* Create a language object for a given language code
+ * @param $code String
+ * @return Language
*/
protected static function newFromCode( $code ) {
global $IP;
static $recursionLevel = 0;
// Protect against path traversal below
- if ( !Language::isValidCode( $code )
- || strcspn( $code, "/\\\000" ) !== strlen( $code ) )
+ if ( !Language::isValidCode( $code )
+ || strcspn( $code, ":/\\\000" ) !== strlen( $code ) )
{
throw new MWException( "Invalid language code \"$code\"" );
}
+ if ( !Language::isValidBuiltInCode( $code ) ) {
+ // It's not possible to customise this code with class files, so
+ // just return a Language object. This is to support uselang= hacks.
+ $lang = new Language;
+ $lang->setCode( $code );
+ return $lang;
+ }
+
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 ( !defined( 'MW_COMPILED' ) ) {
+ // 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" );
+ }
}
}
@@ -175,7 +185,7 @@ class Language {
throw new MWException( "Language fallback loop detected when creating class $class\n" );
}
- if ( !class_exists( $class ) ) {
+ if ( !MWInit::classExists( $class ) ) {
$fallback = Language::getFallbackFor( $code );
++$recursionLevel;
$lang = Language::newFromCode( $fallback );
@@ -188,15 +198,37 @@ class Language {
}
/**
- * Returns true if a language code string is of a valid form, whether or
- * not it exists.
+ * Returns true if a language code string is of a valid form, whether or
+ * not it exists. This includes codes which are used solely for
+ * customisation via the MediaWiki namespace.
+ *
+ * @param $code string
+ *
+ * @return bool
*/
public static function isValidCode( $code ) {
- return strcspn( $code, "/\\\000" ) === strlen( $code );
+ return
+ strcspn( $code, ":/\\\000" ) === strlen( $code )
+ && !preg_match( Title::getTitleInvalidRegex(), $code );
+ }
+
+ /**
+ * Returns true if a language code is of a valid form for the purposes of
+ * internal customisation of MediaWiki, via Messages*.php.
+ *
+ * @param $code string
+ *
+ * @since 1.18
+ * @return bool
+ */
+ public static function isValidBuiltInCode( $code ) {
+ return preg_match( '/^[a-z0-9-]*$/i', $code );
}
/**
* Get the LocalisationCache instance
+ *
+ * @return LocalisationCache
*/
public static function getLocalisationCache() {
if ( is_null( self::$dataCache ) ) {
@@ -234,14 +266,8 @@ class Language {
function initContLang() { }
/**
- * @deprecated Use User::getDefaultOptions()
- * @return array
+ * @return array|bool
*/
- function getDefaultUserOptions() {
- wfDeprecated( __METHOD__ );
- return User::getDefaultOptions();
- }
-
function getFallbackLanguageCode() {
if ( $this->mCode === 'en' ) {
return false;
@@ -278,7 +304,7 @@ class Language {
$this->namespaceNames[NS_PROJECT_TALK] =
$this->fixVariableInNamespace( $talk );
}
-
+
# Sometimes a language will be localised but not actually exist on this wiki.
foreach( $this->namespaceNames as $key => $text ) {
if ( !isset( $validNamespaces[$key] ) ) {
@@ -329,6 +355,8 @@ class Language {
* getNsText() except with '_' changed to ' ', useful for
* producing output.
*
+ * @param $index string
+ *
* @return array
*/
function getFormattedNsText( $index ) {
@@ -337,6 +365,42 @@ class Language {
}
/**
+ * Returns gender-dependent namespace alias if available.
+ * @param $index Int: namespace index
+ * @param $gender String: gender key (male, female... )
+ * @return String
+ * @since 1.18
+ */
+ function getGenderNsText( $index, $gender ) {
+ global $wgExtraGenderNamespaces;
+
+ $ns = $wgExtraGenderNamespaces + self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+ return isset( $ns[$index][$gender] ) ? $ns[$index][$gender] : $this->getNsText( $index );
+ }
+
+ /**
+ * Whether this language makes distinguishes genders for example in
+ * namespaces.
+ * @return bool
+ * @since 1.18
+ */
+ function needsGenderDistinction() {
+ global $wgExtraGenderNamespaces, $wgExtraNamespaces;
+ if ( count( $wgExtraGenderNamespaces ) > 0 ) {
+ // $wgExtraGenderNamespaces overrides everything
+ return true;
+ } elseif( isset( $wgExtraNamespaces[NS_USER] ) && isset( $wgExtraNamespaces[NS_USER_TALK] ) ) {
+ /// @todo There may be other gender namespace than NS_USER & NS_USER_TALK in the future
+ // $wgExtraNamespaces overrides any gender aliases specified in i18n files
+ return false;
+ } else {
+ // Check what is in i18n files
+ $aliases = self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+ return count( $aliases ) > 0;
+ }
+ }
+
+ /**
* Get a namespace key by value, case insensitive.
* Only matches namespace names for the current language, not the
* canonical ones defined in Namespace.php.
@@ -350,6 +414,9 @@ class Language {
return isset( $ids[$lctext] ) ? $ids[$lctext] : false;
}
+ /**
+ * @return array
+ */
function getNamespaceAliases() {
if ( is_null( $this->namespaceAliases ) ) {
$aliases = self::$dataCache->getItem( $this->mCode, 'namespaceAliases' );
@@ -364,11 +431,23 @@ class Language {
}
}
}
+
+ global $wgExtraGenderNamespaces;
+ $genders = $wgExtraGenderNamespaces + (array)self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+ foreach ( $genders as $index => $forms ) {
+ foreach ( $forms as $alias ) {
+ $aliases[$alias] = $index;
+ }
+ }
+
$this->namespaceAliases = $aliases;
}
return $this->namespaceAliases;
}
+ /**
+ * @return array
+ */
function getNamespaceIds() {
if ( is_null( $this->mNamespaceIds ) ) {
global $wgNamespaceAliases;
@@ -419,6 +498,10 @@ class Language {
return $this->getMessageFromDB( "variantname-$code" );
}
+ /**
+ * @param $name string
+ * @return string
+ */
function specialPage( $name ) {
$aliases = $this->getSpecialPageAliases();
if ( isset( $aliases[$name][0] ) ) {
@@ -427,28 +510,37 @@ class Language {
return $this->getNsText( NS_SPECIAL ) . ':' . $name;
}
+ /**
+ * @return array
+ */
function getQuickbarSettings() {
return array(
$this->getMessage( 'qbsettings-none' ),
$this->getMessage( 'qbsettings-fixedleft' ),
$this->getMessage( 'qbsettings-fixedright' ),
$this->getMessage( 'qbsettings-floatingleft' ),
- $this->getMessage( 'qbsettings-floatingright' )
+ $this->getMessage( 'qbsettings-floatingright' ),
+ $this->getMessage( 'qbsettings-directionality' )
);
}
- function getMathNames() {
- return self::$dataCache->getItem( $this->mCode, 'mathNames' );
- }
-
+ /**
+ * @return array
+ */
function getDatePreferences() {
return self::$dataCache->getItem( $this->mCode, 'datePreferences' );
}
+ /**
+ * @return array
+ */
function getDateFormats() {
return self::$dataCache->getItem( $this->mCode, 'dateFormats' );
}
+ /**
+ * @return array|string
+ */
function getDefaultDateFormat() {
$df = self::$dataCache->getItem( $this->mCode, 'defaultDateFormat' );
if ( $df === 'dmy or mdy' ) {
@@ -459,22 +551,32 @@ class Language {
}
}
+ /**
+ * @return array
+ */
function getDatePreferenceMigrationMap() {
return self::$dataCache->getItem( $this->mCode, 'datePreferenceMigrationMap' );
}
+ /**
+ * @param $image
+ * @return array|null
+ */
function getImageFile( $image ) {
return self::$dataCache->getSubitem( $this->mCode, 'imageFiles', $image );
}
- function getDefaultUserOptionOverrides() {
- return self::$dataCache->getItem( $this->mCode, 'defaultUserOptionOverrides' );
- }
-
+ /**
+ * @return array
+ */
function getExtraUserToggles() {
return self::$dataCache->getItem( $this->mCode, 'extraUserToggles' );
}
+ /**
+ * @param $tog
+ * @return string
+ */
function getUserToggle( $tog ) {
return $this->getMessageFromDB( "tog-$tog" );
}
@@ -482,10 +584,20 @@ class Language {
/**
* Get language names, indexed by code.
* If $customisedOnly is true, only returns codes with a messages file
+ *
+ * @param $customisedOnly bool
+ *
+ * @return array
*/
public static function getLanguageNames( $customisedOnly = false ) {
- global $wgLanguageNames, $wgExtraLanguageNames;
- $allNames = $wgExtraLanguageNames + $wgLanguageNames;
+ global $wgExtraLanguageNames;
+ static $coreLanguageNames;
+
+ if ( $coreLanguageNames === null ) {
+ include( MWInit::compiledPath( 'languages/Names.php' ) );
+ }
+
+ $allNames = $wgExtraLanguageNames + $coreLanguageNames;
if ( !$customisedOnly ) {
return $allNames;
}
@@ -504,6 +616,25 @@ class Language {
}
/**
+ * Get translated language names. This is done on best effort and
+ * by default this is exactly the same as Language::getLanguageNames.
+ * The CLDR extension provides translated names.
+ * @param $code String Language code.
+ * @return Array language code => language name
+ * @since 1.18.0
+ */
+ public static function getTranslatedLanguageNames( $code ) {
+ $names = array();
+ wfRunHooks( 'LanguageGetTranslatedLanguageNames', array( &$names, $code ) );
+
+ foreach ( self::getLanguageNames() as $code => $name ) {
+ if ( !isset( $names[$code] ) ) $names[$code] = $name;
+ }
+
+ return $names;
+ }
+
+ /**
* Get a message from the MediaWiki namespace.
*
* @param $msg String: message name
@@ -513,6 +644,10 @@ class Language {
return wfMsgExt( $msg, array( 'parsemag', 'language' => $this ) );
}
+ /**
+ * @param $code string
+ * @return string
+ */
function getLanguageName( $code ) {
$names = self::getLanguageNames();
if ( !array_key_exists( $code, $names ) ) {
@@ -521,38 +656,96 @@ class Language {
return $names[$code];
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getMonthName( $key ) {
return $this->getMessageFromDB( self::$mMonthMsgs[$key - 1] );
}
+ /**
+ * @return array
+ */
+ function getMonthNamesArray() {
+ $monthNames = array( '' );
+ for ( $i=1; $i < 13; $i++ ) {
+ $monthNames[] = $this->getMonthName( $i );
+ }
+ return $monthNames;
+ }
+
+ /**
+ * @param $key string
+ * @return string
+ */
function getMonthNameGen( $key ) {
return $this->getMessageFromDB( self::$mMonthGenMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getMonthAbbreviation( $key ) {
return $this->getMessageFromDB( self::$mMonthAbbrevMsgs[$key - 1] );
}
+ /**
+ * @return array
+ */
+ function getMonthAbbreviationsArray() {
+ $monthNames = array( '' );
+ for ( $i=1; $i < 13; $i++ ) {
+ $monthNames[] = $this->getMonthAbbreviation( $i );
+ }
+ return $monthNames;
+ }
+
+ /**
+ * @param $key string
+ * @return string
+ */
function getWeekdayName( $key ) {
return $this->getMessageFromDB( self::$mWeekdayMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getWeekdayAbbreviation( $key ) {
return $this->getMessageFromDB( self::$mWeekdayAbbrevMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getIranianCalendarMonthName( $key ) {
return $this->getMessageFromDB( self::$mIranianCalendarMonthMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getHebrewCalendarMonthName( $key ) {
return $this->getMessageFromDB( self::$mHebrewCalendarMonthMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getHebrewCalendarMonthNameGen( $key ) {
return $this->getMessageFromDB( self::$mHebrewCalendarMonthGenMsgs[$key - 1] );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function getHijriCalendarMonthName( $key ) {
return $this->getMessageFromDB( self::$mHijriCalendarMonthMsgs[$key - 1] );
}
@@ -575,9 +768,12 @@ class Language {
$data = explode( '|', $tz, 3 );
if ( $data[0] == 'ZoneInfo' ) {
- if ( function_exists( 'timezone_open' ) && @timezone_open( $data[2] ) !== false ) {
+ wfSuppressWarnings();
+ $userTZ = timezone_open( $data[2] );
+ wfRestoreWarnings();
+ if ( $userTZ !== false ) {
$date = date_create( $ts, timezone_open( 'UTC' ) );
- date_timezone_set( $date, timezone_open( $data[2] ) );
+ date_timezone_set( $date, $userTZ );
$date = date_format( $date, 'YmdHis' );
return $date;
}
@@ -591,7 +787,7 @@ class Language {
if ( isset( $wgLocalTZoffset ) ) {
$minDiff = $wgLocalTZoffset;
}
- } else if ( $data[0] == 'Offset' ) {
+ } elseif ( $data[0] == 'Offset' ) {
$minDiff = intval( $data[1] );
} else {
$data = explode( ':', $tz );
@@ -688,6 +884,8 @@ class Language {
* YYYYMMDDHHMMSS
* 01234567890123
* @todo handling of "o" format character for Iranian, Hebrew, Hijri & Thai?
+ *
+ * @return string
*/
function sprintfDate( $format, $ts ) {
$s = '';
@@ -1000,6 +1198,7 @@ class Language {
private static $GREG_DAYS = array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
private static $IRANIAN_DAYS = array( 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 );
+
/**
* Algorithm by Roozbeh Pournader and Mohammad Toossi to convert
* Gregorian dates to Iranian dates. Originally written in C, it
@@ -1007,6 +1206,10 @@ class Language {
* License. Conversion to PHP was performed by Niklas Laxström.
*
* Link: http://www.farsiweb.info/jalali/jalali.c
+ *
+ * @param $ts string
+ *
+ * @return string
*/
private static function tsToIranian( $ts ) {
$gy = substr( $ts, 0, 4 ) -1600;
@@ -1062,6 +1265,10 @@ class Language {
* Based on a PHP-Nuke block by Sharjeel which is released under GNU/GPL license
*
* @link http://phpnuke.org/modules.php?name=News&file=article&sid=8234&mode=thread&order=0&thold=0
+ *
+ * @param $ts string
+ *
+ * @return string
*/
private static function tsToHijri( $ts ) {
$year = substr( $ts, 0, 4 );
@@ -1109,6 +1316,10 @@ class Language {
*
* The months are counted from Tishrei = 1. In a leap year, Adar I is 13
* and Adar II is 14. In a non-leap year, Adar is 6.
+ *
+ * @param $ts string
+ *
+ * @return string
*/
private static function tsToHebrew( $ts ) {
# Parse date
@@ -1246,6 +1457,10 @@ class Language {
* This calculates the Hebrew year start, as days since 1 September.
* Based on Carl Friedrich Gauss algorithm for finding Easter date.
* Used for Hebrew date.
+ *
+ * @param $year int
+ *
+ * @return string
*/
private static function hebrewYearStart( $year ) {
$a = intval( ( 12 * ( $year - 1 ) + 17 ) % 19 );
@@ -1263,9 +1478,9 @@ class Language {
$c = intval( ( $Mar + 3 * ( $year - 1 ) + 5 * $b + 5 ) % 7 );
if ( $c == 0 && $a > 11 && $m >= 0.89772376543210 ) {
$Mar++;
- } else if ( $c == 1 && $a > 6 && $m >= 0.63287037037037 ) {
+ } elseif ( $c == 1 && $a > 6 && $m >= 0.63287037037037 ) {
$Mar += 2;
- } else if ( $c == 2 || $c == 4 || $c == 6 ) {
+ } elseif ( $c == 2 || $c == 4 || $c == 6 ) {
$Mar++;
}
@@ -1295,12 +1510,12 @@ class Language {
# Add 543 years to the Gregorian calendar
# Months and days are identical
$gy_offset = $gy + 543;
- } else if ( ( !strcmp( $cName, 'minguo' ) ) || !strcmp( $cName, 'juche' ) ) {
+ } elseif ( ( !strcmp( $cName, 'minguo' ) ) || !strcmp( $cName, 'juche' ) ) {
# Minguo dates
# Deduct 1911 years from the Gregorian calendar
# Months and days are identical
$gy_offset = $gy - 1911;
- } else if ( !strcmp( $cName, 'tenno' ) ) {
+ } elseif ( !strcmp( $cName, 'tenno' ) ) {
# Nengō dates up to Meiji period
# Deduct years from the Gregorian calendar
# depending on the nengo periods
@@ -1313,7 +1528,7 @@ class Language {
$gy_offset = '元';
}
$gy_offset = '明治' . $gy_offset;
- } else if (
+ } elseif (
( ( $gy == 1912 ) && ( $gm == 7 ) && ( $gd == 31 ) ) ||
( ( $gy == 1912 ) && ( $gm >= 8 ) ) ||
( ( $gy > 1912 ) && ( $gy < 1926 ) ) ||
@@ -1328,7 +1543,7 @@ class Language {
$gy_offset = '元';
}
$gy_offset = '大正' . $gy_offset;
- } else if (
+ } elseif (
( ( $gy == 1926 ) && ( $gm == 12 ) && ( $gd >= 26 ) ) ||
( ( $gy > 1926 ) && ( $gy < 1989 ) ) ||
( ( $gy == 1989 ) && ( $gm == 1 ) && ( $gd < 8 ) )
@@ -1359,6 +1574,10 @@ class Language {
/**
* Roman number formatting up to 3000
+ *
+ * @param $num int
+ *
+ * @return string
*/
static function romanNumeral( $num ) {
static $table = array(
@@ -1383,8 +1602,12 @@ class Language {
return $s;
}
- /**
+ /**
* Hebrew Gematria number formatting up to 9999
+ *
+ * @param $num int
+ *
+ * @return string
*/
static function hebrewNumeral( $num ) {
static $table = array(
@@ -1482,8 +1705,10 @@ class Language {
/**
* Get a format string for a given type and preference
- * @param $type May be date, time or both
- * @param $pref The format name as it appears in Messages*.php
+ * @param $type string May be date, time or both
+ * @param $pref string The format name as it appears in Messages*.php
+ *
+ * @return string
*/
function getDateFormatString( $type, $pref ) {
if ( !isset( $this->dateFormatStrings[$type][$pref] ) ) {
@@ -1508,7 +1733,7 @@ class Language {
* @param $adj Bool: whether to adjust the time output according to the
* user configured offset ($timecorrection)
* @param $format Mixed: true to use user's date format preference
- * @param $timecorrection String: the time offset as returned by
+ * @param $timecorrection String|bool the time offset as returned by
* validateTimeZone() in Special:Preferences
* @return string
*/
@@ -1527,7 +1752,7 @@ class Language {
* @param $adj Bool: whether to adjust the time output according to the
* user configured offset ($timecorrection)
* @param $format Mixed: true to use user's date format preference
- * @param $timecorrection String: the time offset as returned by
+ * @param $timecorrection String|bool the time offset as returned by
* validateTimeZone() in Special:Preferences
* @return string
*/
@@ -1547,7 +1772,7 @@ class Language {
* user configured offset ($timecorrection)
* @param $format Mixed: what format to return, if it's false output the
* default one (default true)
- * @param $timecorrection String: the time offset as returned by
+ * @param $timecorrection String|bool the time offset as returned by
* validateTimeZone() in Special:Preferences
* @return string
*/
@@ -1560,24 +1785,27 @@ class Language {
return $this->sprintfDate( $df, $ts );
}
+ /**
+ * @param $key string
+ * @return array|null
+ */
function getMessage( $key ) {
- // Don't change getPreferredVariant() to getCode() / mCode, because:
-
- // 1. Some language like Chinese has multiple variant languages. Only
- // getPreferredVariant() (in LanguageConverter) could return a
- // sub-language which would be more suitable for the user.
- // 2. To languages without multiple variants, getPreferredVariant()
- // (in FakeConverter) functions exactly same as getCode() / mCode,
- // it won't break anything.
-
- // The same below.
- return self::$dataCache->getSubitem( $this->getPreferredVariant(), 'messages', $key );
+ return self::$dataCache->getSubitem( $this->mCode, 'messages', $key );
}
+ /**
+ * @return array
+ */
function getAllMessages() {
- return self::$dataCache->getItem( $this->getPreferredVariant(), 'messages' );
+ return self::$dataCache->getItem( $this->mCode, 'messages' );
}
+ /**
+ * @param $in
+ * @param $out
+ * @param $string
+ * @return string
+ */
function iconv( $in, $out, $string ) {
# This is a wrapper for iconv in all languages except esperanto,
# which does some nasty x-conversions beforehand
@@ -1593,28 +1821,53 @@ class Language {
}
// callback functions for uc(), lc(), ucwords(), ucwordbreaks()
+
+ /**
+ * @param $matches array
+ * @return mixed|string
+ */
function ucwordbreaksCallbackAscii( $matches ) {
return $this->ucfirst( $matches[1] );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function ucwordbreaksCallbackMB( $matches ) {
return mb_strtoupper( $matches[0] );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function ucCallback( $matches ) {
list( $wikiUpperChars ) = self::getCaseMaps();
return strtr( $matches[1], $wikiUpperChars );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function lcCallback( $matches ) {
list( , $wikiLowerChars ) = self::getCaseMaps();
return strtr( $matches[1], $wikiLowerChars );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function ucwordsCallbackMB( $matches ) {
return mb_strtoupper( $matches[0] );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function ucwordsCallbackWiki( $matches ) {
list( $wikiUpperChars ) = self::getCaseMaps();
return strtr( $matches[0], $wikiUpperChars );
@@ -1622,6 +1875,10 @@ class Language {
/**
* Make a string's first character uppercase
+ *
+ * @param $str string
+ *
+ * @return string
*/
function ucfirst( $str ) {
$o = ord( $str );
@@ -1637,6 +1894,11 @@ class Language {
/**
* Convert a string to uppercase
+ *
+ * @param $str string
+ * @param $first bool
+ *
+ * @return string
*/
function uc( $str, $first = false ) {
if ( function_exists( 'mb_strtoupper' ) ) {
@@ -1663,6 +1925,10 @@ class Language {
}
}
+ /**
+ * @param $str string
+ * @return mixed|string
+ */
function lcfirst( $str ) {
$o = ord( $str );
if ( !$o ) {
@@ -1677,6 +1943,11 @@ class Language {
}
}
+ /**
+ * @param $str string
+ * @param $first bool
+ * @return mixed|string
+ */
function lc( $str, $first = false ) {
if ( function_exists( 'mb_strtolower' ) ) {
if ( $first ) {
@@ -1702,10 +1973,18 @@ class Language {
}
}
+ /**
+ * @param $str string
+ * @return bool
+ */
function isMultibyte( $str ) {
return (bool)preg_match( '/[\x80-\xff]/', $str );
}
+ /**
+ * @param $str string
+ * @return mixed|string
+ */
function ucwords( $str ) {
if ( $this->isMultibyte( $str ) ) {
$str = $this->lc( $str );
@@ -1732,7 +2011,12 @@ class Language {
}
}
- # capitalize words at word breaks
+ /**
+ * capitalize words at word breaks
+ *
+ * @param $str string
+ * @return mixed
+ */
function ucwordbreaks( $str ) {
if ( $this->isMultibyte( $str ) ) {
$str = $this->lc( $str );
@@ -1775,11 +2059,19 @@ class Language {
* Do *not* perform any other normalisation in this function. If a caller
* uses this function when it should be using a more general normalisation
* function, then fix the caller.
+ *
+ * @param $s string
+ *
+ * @return string
*/
function caseFold( $s ) {
return $this->uc( $s );
}
+ /**
+ * @param $s string
+ * @return string
+ */
function checkTitleEncoding( $s ) {
if ( is_array( $s ) ) {
wfDebugDieBacktrace( 'Given array to checkTitleEncoding.' );
@@ -1791,7 +2083,7 @@ class Language {
}
$isutf8 = preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' .
- '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s );
+ '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s );
if ( $isutf8 ) {
return $s;
}
@@ -1799,6 +2091,9 @@ class Language {
return $this->iconv( $this->fallback8bitEncoding(), 'utf-8', $s );
}
+ /**
+ * @return array
+ */
function fallback8bitEncoding() {
return self::$dataCache->getItem( $this->mCode, 'fallback8bitEncoding' );
}
@@ -1808,6 +2103,8 @@ class Language {
* Some languages such as Chinese don't conventionally do this,
* which requires special handling when breaking up words for
* searching etc.
+ *
+ * @return bool
*/
function hasWordBreaks() {
return true;
@@ -1838,6 +2135,10 @@ class Language {
/**
* convert double-width roman characters to single-width.
* range: ff00-ff5f ~= 0020-007f
+ *
+ * @param $string string
+ *
+ * @return string
*/
protected static function convertDoubleWidth( $string ) {
static $full = null;
@@ -1854,12 +2155,21 @@ class Language {
return $string;
}
+ /**
+ * @param $string string
+ * @param $pattern string
+ * @return string
+ */
protected static function insertSpace( $string, $pattern ) {
$string = preg_replace( $pattern, " $1 ", $string );
$string = preg_replace( '/ +/', ' ', $string );
return $string;
}
+ /**
+ * @param $termsArray array
+ * @return array
+ */
function convertForSearchResult( $termsArray ) {
# some languages, e.g. Chinese, need to do a conversion
# in order for search results to be displayed correctly
@@ -1931,13 +2241,14 @@ class Language {
# an override to the defaults can be set here on startup.
}
+ /**
+ * @param $s string
+ * @return string
+ */
function recodeForEdit( $s ) {
# For some languages we'll want to explicitly specify
# which characters make it into the edit box raw
# or are converted in some way or another.
- # Note that if wgOutputEncoding is different from
- # wgInputEncoding, this text will be further converted
- # to wgOutputEncoding.
global $wgEditEncoding;
if ( $wgEditEncoding == '' || $wgEditEncoding == 'UTF-8' ) {
return $s;
@@ -1946,6 +2257,10 @@ class Language {
}
}
+ /**
+ * @param $s string
+ * @return string
+ */
function recodeInput( $s ) {
# Take the previous into account.
global $wgEditEncoding;
@@ -1967,6 +2282,10 @@ class Language {
* to the modern Unicode equivalent.
*
* This is language-specific for performance reasons only.
+ *
+ * @param $s string
+ *
+ * @return string
*/
function normalize( $s ) {
global $wgAllUnicodeFixes;
@@ -1986,6 +2305,11 @@ class Language {
*
* The data is cached in process memory. This will go faster if you have the
* FastStringSearch extension.
+ *
+ * @param $file string
+ * @param $string string
+ *
+ * @return string
*/
function transformUsingPairFile( $file, $string ) {
if ( !isset( $this->transformData[$file] ) ) {
@@ -2042,12 +2366,19 @@ class Language {
/**
* A hidden direction mark (LRM or RLM), depending on the language direction
*
+ * @param $opposite Boolean Get the direction mark opposite to your language
* @return string
*/
- function getDirMark() {
- return $this->isRTL() ? "\xE2\x80\x8F" : "\xE2\x80\x8E";
+ function getDirMark( $opposite = false ) {
+ $rtl = "\xE2\x80\x8F";
+ $ltr = "\xE2\x80\x8E";
+ if( $opposite ) { return $this->isRTL() ? $ltr : $rtl; }
+ return $this->isRTL() ? $rtl : $ltr;
}
+ /**
+ * @return array
+ */
function capitalizeAllNouns() {
return self::$dataCache->getItem( $this->mCode, 'capitalizeAllNouns' );
}
@@ -2070,18 +2401,31 @@ class Language {
return self::$dataCache->getItem( $this->mCode, 'linkPrefixExtension' );
}
+ /**
+ * @return array
+ */
function getMagicWords() {
return self::$dataCache->getItem( $this->mCode, 'magicWords' );
}
- # Fill a MagicWord object with data from here
- function getMagic( $mw ) {
- if ( !$this->mMagicHookDone ) {
- $this->mMagicHookDone = true;
- wfProfileIn( 'LanguageGetMagic' );
- wfRunHooks( 'LanguageGetMagic', array( &$this->mMagicExtensions, $this->getCode() ) );
- wfProfileOut( 'LanguageGetMagic' );
+ protected function doMagicHook() {
+ if ( $this->mMagicHookDone ) {
+ return;
}
+ $this->mMagicHookDone = true;
+ wfProfileIn( 'LanguageGetMagic' );
+ wfRunHooks( 'LanguageGetMagic', array( &$this->mMagicExtensions, $this->getCode() ) );
+ wfProfileOut( 'LanguageGetMagic' );
+ }
+
+ /**
+ * Fill a MagicWord object with data from here
+ *
+ * @param $mw
+ */
+ function getMagic( $mw ) {
+ $this->doMagicHook();
+
if ( isset( $this->mMagicExtensions[$mw->mId] ) ) {
$rawEntry = $this->mMagicExtensions[$mw->mId];
} else {
@@ -2094,7 +2438,7 @@ class Language {
}
if ( !is_array( $rawEntry ) ) {
- error_log( "\"$rawEntry\" is not a valid magic thingie for \"$mw->mId\"" );
+ error_log( "\"$rawEntry\" is not a valid magic word for \"$mw->mId\"" );
} else {
$mw->mCaseSensitive = $rawEntry[0];
$mw->mSynonyms = array_slice( $rawEntry, 1 );
@@ -2103,6 +2447,8 @@ class Language {
/**
* Add magic words to the extension array
+ *
+ * @param $newWords array
*/
function addMagicWordsByLang( $newWords ) {
$code = $this->getCode();
@@ -2193,6 +2539,10 @@ class Language {
return $number;
}
+ /**
+ * @param $number string
+ * @return string
+ */
function parseFormattedNumber( $number ) {
$s = $this->digitTransformTable();
if ( $s ) {
@@ -2218,10 +2568,16 @@ class Language {
return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
}
+ /**
+ * @return array
+ */
function digitTransformTable() {
return self::$dataCache->getItem( $this->mCode, 'digitTransformTable' );
}
+ /**
+ * @return array
+ */
function separatorTransformTable() {
return self::$dataCache->getItem( $this->mCode, 'separatorTransformTable' );
}
@@ -2243,7 +2599,7 @@ class Language {
for ( $i = $m; $i >= 0; $i-- ) {
if ( $i == $m ) {
$s = $l[$i];
- } else if ( $i == $m - 1 ) {
+ } elseif ( $i == $m - 1 ) {
$s = $l[$i] . $this->getMessageFromDB( 'and' ) . $this->getMessageFromDB( 'word-separator' ) . $s;
} else {
$s = $l[$i] . $this->getMessageFromDB( 'comma-separator' ) . $s;
@@ -2311,32 +2667,45 @@ class Language {
* If $length is negative, the string will be truncated from the beginning
*
* @param $string String to truncate
- * @param $length Int: maximum length (excluding ellipses)
+ * @param $length Int: maximum length (including ellipses)
* @param $ellipsis String to append to the truncated text
+ * @param $adjustLength Boolean: Subtract length of ellipsis from $length.
+ * $adjustLength was introduced in 1.18, before that behaved as if false.
* @return string
*/
- function truncate( $string, $length, $ellipsis = '...' ) {
+ function truncate( $string, $length, $ellipsis = '...', $adjustLength = true ) {
# Use the localized ellipsis character
if ( $ellipsis == '...' ) {
$ellipsis = wfMsgExt( 'ellipsis', array( 'escapenoentities', 'language' => $this ) );
}
# Check if there is no need to truncate
if ( $length == 0 ) {
- return $ellipsis;
+ return $ellipsis; // convention
} elseif ( strlen( $string ) <= abs( $length ) ) {
- return $string;
+ return $string; // no need to truncate
}
$stringOriginal = $string;
- if ( $length > 0 ) {
- $string = substr( $string, 0, $length ); // xyz...
- $string = $this->removeBadCharLast( $string );
- $string = $string . $ellipsis;
+ # If ellipsis length is >= $length then we can't apply $adjustLength
+ if ( $adjustLength && strlen( $ellipsis ) >= abs( $length ) ) {
+ $string = $ellipsis; // this can be slightly unexpected
+ # Otherwise, truncate and add ellipsis...
} else {
- $string = substr( $string, $length ); // ...xyz
- $string = $this->removeBadCharFirst( $string );
- $string = $ellipsis . $string;
+ $eLength = $adjustLength ? strlen( $ellipsis ) : 0;
+ if ( $length > 0 ) {
+ $length -= $eLength;
+ $string = substr( $string, 0, $length ); // xyz...
+ $string = $this->removeBadCharLast( $string );
+ $string = $string . $ellipsis;
+ } else {
+ $length += $eLength;
+ $string = substr( $string, $length ); // ...xyz
+ $string = $this->removeBadCharFirst( $string );
+ $string = $ellipsis . $string;
+ }
}
- # Do not truncate if the ellipsis makes the string longer/equal (bug 22181)
+ # Do not truncate if the ellipsis makes the string longer/equal (bug 22181).
+ # This check is *not* redundant if $adjustLength, due to the single case where
+ # LEN($ellipsis) > ABS($limit arg); $stringOriginal could be shorter than $string.
if ( strlen( $string ) < strlen( $stringOriginal ) ) {
return $string;
} else {
@@ -2352,17 +2721,19 @@ class Language {
* @return string
*/
protected function removeBadCharLast( $string ) {
- $char = ord( $string[strlen( $string ) - 1] );
- $m = array();
- 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];
+ if ( $string != '' ) {
+ $char = ord( $string[strlen( $string ) - 1] );
+ $m = array();
+ 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;
}
@@ -2375,49 +2746,77 @@ class Language {
* @return string
*/
protected function removeBadCharFirst( $string ) {
- $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 );
+ if ( $string != '' ) {
+ $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 $string;
}
- /*
+ /**
* Truncate a string of valid HTML to a specified length in bytes,
* appending an optional string (e.g. for ellipses), and return valid HTML
*
* This is only intended for styled/linked text, such as HTML with
- * tags like <span> and <a>, were the tags are self-contained (valid HTML)
+ * tags like <span> and <a>, were the tags are self-contained (valid HTML).
+ * Also, this will not detect things like "display:none" CSS.
*
- * Note: tries to fix broken HTML with MWTidy
+ * Note: since 1.18 you do not need to leave extra room in $length for ellipses.
*
* @param string $text HTML string to truncate
- * @param int $length (zero/positive) Maximum length (excluding ellipses)
+ * @param int $length (zero/positive) Maximum length (including ellipses)
* @param string $ellipsis String to append to the truncated text
- * @returns string
+ * @return string
*/
function truncateHtml( $text, $length, $ellipsis = '...' ) {
# Use the localized ellipsis character
if ( $ellipsis == '...' ) {
$ellipsis = wfMsgExt( 'ellipsis', array( 'escapenoentities', 'language' => $this ) );
}
- # Check if there is no need to truncate
+ # Check if there is clearly no need to truncate
if ( $length <= 0 ) {
- return $ellipsis; // no text shown, nothing to format
+ return $ellipsis; // no text shown, nothing to format (convention)
} elseif ( strlen( $text ) <= $length ) {
- return $text; // string short enough even *with* HTML
+ return $text; // string short enough even *with* HTML (short-circuit)
}
- $text = MWTidy::tidy( $text ); // fix tags
- $displayLen = 0; // innerHTML legth so far
+
+ $dispLen = 0; // innerHTML legth so far
$testingEllipsis = false; // checking if ellipses will make string longer/equal?
$tagType = 0; // 0-open, 1-close
$bracketState = 0; // 1-tag start, 2-tag name, 0-neither
$entityState = 0; // 0-not entity, 1-entity
- $tag = $ret = '';
+ $tag = $ret = ''; // accumulated tag name, accumulated result string
$openTags = array(); // open tag stack
+ $maybeState = null; // possible truncation state
+
$textLen = strlen( $text );
- for ( $pos = 0; $pos < $textLen; ++$pos ) {
+ $neLength = max( 0, $length - strlen( $ellipsis ) ); // non-ellipsis len if truncated
+ for ( $pos = 0; true; ++$pos ) {
+ # Consider truncation once the display length has reached the maximim.
+ # We check if $dispLen > 0 to grab tags for the $neLength = 0 case.
+ # Check that we're not in the middle of a bracket/entity...
+ if ( $dispLen && $dispLen >= $neLength && $bracketState == 0 && !$entityState ) {
+ if ( !$testingEllipsis ) {
+ $testingEllipsis = true;
+ # Save where we are; we will truncate here unless there turn out to
+ # be so few remaining characters that truncation is not necessary.
+ if ( !$maybeState ) { // already saved? ($neLength = 0 case)
+ $maybeState = array( $ret, $openTags ); // save state
+ }
+ } elseif ( $dispLen > $length && $dispLen > strlen( $ellipsis ) ) {
+ # String in fact does need truncation, the truncation point was OK.
+ list( $ret, $openTags ) = $maybeState; // reload state
+ $ret = $this->removeBadCharLast( $ret ); // multi-byte char fix
+ $ret .= $ellipsis; // add ellipsis
+ break;
+ }
+ }
+ if ( $pos >= $textLen ) break; // extra iteration just for above checks
+
+ # Read the next char...
$ch = $text[$pos];
$lastCh = $pos ? $text[$pos - 1] : '';
$ret .= $ch; // add to result string
@@ -2448,41 +2847,26 @@ class Language {
if ( $entityState ) {
if ( $ch == ';' ) {
$entityState = 0;
- $displayLen++; // entity is one displayed char
+ $dispLen++; // entity is one displayed char
}
} else {
+ if ( $neLength == 0 && !$maybeState ) {
+ // Save state without $ch. We want to *hit* the first
+ // display char (to get tags) but not *use* it if truncating.
+ $maybeState = array( substr( $ret, 0, -1 ), $openTags );
+ }
if ( $ch == '&' ) {
$entityState = 1; // entity found, (e.g. "&#160;")
} else {
- $displayLen++; // this char is displayed
- // Add on the other display text after this...
- $skipped = $this->truncate_skip(
- $ret, $text, "<>&", $pos + 1, $length - $displayLen );
- $displayLen += $skipped;
+ $dispLen++; // this char is displayed
+ // Add the next $max display text chars after this in one swoop...
+ $max = ( $testingEllipsis ? $length : $neLength ) - $dispLen;
+ $skipped = $this->truncate_skip( $ret, $text, "<>&", $pos + 1, $max );
+ $dispLen += $skipped;
$pos += $skipped;
}
}
}
- # Consider truncation once the display length has reached the maximim.
- # Double-check that we're not in the middle of a bracket/entity...
- if ( $displayLen >= $length && $bracketState == 0 && $entityState == 0 ) {
- if ( !$testingEllipsis ) {
- $testingEllipsis = true;
- # Save where we are; we will truncate here unless
- # the ellipsis actually makes the string longer.
- $pOpenTags = $openTags; // save state
- $pRet = $ret; // save state
- } elseif ( $displayLen > ( $length + strlen( $ellipsis ) ) ) {
- # Ellipsis won't make string longer/equal, the truncation point was OK.
- $openTags = $pOpenTags; // reload state
- $ret = $this->removeBadCharLast( $pRet ); // reload state, multi-byte char fix
- $ret .= $ellipsis; // add ellipsis
- break;
- }
- }
- }
- if ( $displayLen == 0 ) {
- return ''; // no text shown, nothing to format
}
// Close the last tag if left unclosed by bad HTML
$this->truncate_endBracket( $tag, $text[$textLen - 1], $tagType, $openTags );
@@ -2492,9 +2876,23 @@ class Language {
return $ret;
}
- // truncateHtml() helper function
- // like strcspn() but adds the skipped chars to $ret
- private function truncate_skip( &$ret, $text, $search, $start, $len = -1 ) {
+ /**
+ * truncateHtml() helper function
+ * like strcspn() but adds the skipped chars to $ret
+ *
+ * @param $ret
+ * @param $text
+ * @param $search
+ * @param $start
+ * @param $len
+ * @return int
+ */
+ private function truncate_skip( &$ret, $text, $search, $start, $len = null ) {
+ if ( $len === null ) {
+ $len = -1; // -1 means "no limit" for strcspn
+ } elseif ( $len < 0 ) {
+ $len = 0; // sanity
+ }
$skipCount = 0;
if ( $start < strlen( $text ) ) {
$skipCount = strcspn( $text, $search, $start, $len );
@@ -2503,7 +2901,7 @@ class Language {
return $skipCount;
}
- /*
+ /**
* truncateHtml() helper function
* (a) push or pop $tag from $openTags as needed
* (b) clear $tag value
@@ -2517,7 +2915,7 @@ class Language {
if ( $tag != '' ) {
if ( $tagType == 0 && $lastCh != '/' ) {
$openTags[] = $tag; // tag opened (didn't close itself)
- } else if ( $tagType == 1 ) {
+ } elseif ( $tagType == 1 ) {
if ( $openTags && $tag == $openTags[count( $openTags ) - 1] ) {
array_pop( $openTags ); // tag closed
}
@@ -2549,6 +2947,11 @@ class Language {
* but only in (some) interface messages; otherwise default gender is used.
* If second or third parameter are not specified, masculine is used.
* These details may be overriden per language.
+ *
+ * @param $gender string
+ * @param $forms array
+ *
+ * @return string
*/
function gender( $gender, $forms ) {
if ( !count( $forms ) ) {
@@ -2590,7 +2993,7 @@ class Language {
/**
* Checks that convertPlural was given an array and pads it to requested
- * amound of forms by copying the last one.
+ * amount of forms by copying the last one.
*
* @param $count Integer: How many forms should there be at least
* @param $forms Array of forms given to convertPlural
@@ -2604,28 +3007,36 @@ class Language {
}
/**
- * For translating of expiry times
- * @param $str String: the validated block time in English
- * @return Somehow translated block time
+ * @todo Maybe translate block durations. Note that this function is somewhat misnamed: it
+ * deals with translating the *duration* ("1 week", "4 days", etc), not the expiry time
+ * (which is an absolute timestamp). Please note: do NOT add this blindly, as it is used
+ * on old expiry lengths recorded in log entries. You'd need to provide the start date to
+ * match up with it.
+ *
+ * @param $str String: the validated block duration in English
+ * @return Somehow translated block duration
* @see LanguageFi.php for example implementation
*/
function translateBlockExpiry( $str ) {
- $scBlockExpiryOptions = $this->getMessageFromDB( 'ipboptions' );
-
- if ( $scBlockExpiryOptions == '-' ) {
- return $str;
- }
-
- foreach ( explode( ',', $scBlockExpiryOptions ) as $option ) {
- if ( strpos( $option, ':' ) === false ) {
- continue;
- }
- list( $show, $value ) = explode( ':', $option );
+ $duration = SpecialBlock::getSuggestedDurations( $this );
+ foreach( $duration as $show => $value ){
if ( strcmp( $str, $value ) == 0 ) {
return htmlspecialchars( trim( $show ) );
}
}
+ // Since usually only infinite or indefinite is only on list, so try
+ // equivalents if still here.
+ $indefs = array( 'infinite', 'infinity', 'indefinite' );
+ if ( in_array( $str, $indefs ) ) {
+ foreach( $indefs as $val ) {
+ $show = array_search( $val, $duration, true );
+ if ( $show !== false ) {
+ return htmlspecialchars( trim( $show ) );
+ }
+ }
+ }
+ // If all else fails, return the original string.
return $str;
}
@@ -2650,27 +3061,52 @@ class Language {
return $text;
}
- # convert text to all supported variants
+ /**
+ * convert text to all supported variants
+ *
+ * @param $text string
+ * @return array
+ */
function autoConvertToAllVariants( $text ) {
return $this->mConverter->autoConvertToAllVariants( $text );
}
- # convert text to different variants of a language.
+ /**
+ * convert text to different variants of a language.
+ *
+ * @param $text string
+ * @return string
+ */
function convert( $text ) {
return $this->mConverter->convert( $text );
}
- # Convert a Title object to a string in the preferred variant
+
+ /**
+ * Convert a Title object to a string in the preferred variant
+ *
+ * @param $title Title
+ * @return string
+ */
function convertTitle( $title ) {
return $this->mConverter->convertTitle( $title );
}
- # Check if this is a language with variants
+ /**
+ * Check if this is a language with variants
+ *
+ * @return bool
+ */
function hasVariants() {
return sizeof( $this->getVariants() ) > 1;
}
- # Put custom tags (e.g. -{ }-) around math to prevent conversion
+ /**
+ * Put custom tags (e.g. -{ }-) around math to prevent conversion
+ *
+ * @param $text string
+ * @return string
+ */
function armourMath( $text ) {
return $this->mConverter->armourMath( $text );
}
@@ -2686,12 +3122,16 @@ class Language {
return htmlspecialchars( $this->convert( $text, $isTitle ) );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function convertCategoryKey( $key ) {
return $this->mConverter->convertCategoryKey( $key );
}
/**
- * Get the list of variants supported by this langauge
+ * Get the list of variants supported by this language
* see sample implementation in LanguageZh.php
*
* @return array an array of language codes
@@ -2700,14 +3140,23 @@ class Language {
return $this->mConverter->getVariants();
}
+ /**
+ * @return string
+ */
function getPreferredVariant() {
return $this->mConverter->getPreferredVariant();
}
-
+
+ /**
+ * @return string
+ */
function getDefaultVariant() {
return $this->mConverter->getDefaultVariant();
}
-
+
+ /**
+ * @return string
+ */
function getURLVariant() {
return $this->mConverter->getURLVariant();
}
@@ -2733,7 +3182,11 @@ class Language {
* into an array of all possible variants of the text:
* 'variant' => text in that variant
*
- * @deprecated Use autoConvertToAllVariants()
+ * @deprecated since 1.17 Use autoConvertToAllVariants()
+ *
+ * @param $text string
+ *
+ * @return string
*/
function convertLinkToAllVariants( $text ) {
return $this->mConverter->convertLinkToAllVariants( $text );
@@ -2765,7 +3218,7 @@ class Language {
* various functions in the Parser
*
* @param $text String: text to be tagged for no conversion
- * @param $noParse
+ * @param $noParse bool
* @return string the tagged text
*/
function markNoConversion( $text, $noParse = false ) {
@@ -2782,17 +3235,25 @@ class Language {
return self::$dataCache->getItem( $this->mCode, 'linkTrail' );
}
+ /**
+ * @return Language
+ */
function getLangObj() {
return $this;
}
/**
* Get the RFC 3066 code for this language object
+ *
+ * @return string
*/
function getCode() {
return $this->mCode;
}
+ /**
+ * @param $code string
+ */
function setCode( $code ) {
$this->mCode = $code;
}
@@ -2806,12 +3267,12 @@ class Language {
*/
static function getFileName( $prefix = 'Language', $code, $suffix = '.php' ) {
// Protect against path traversal
- if ( !Language::isValidCode( $code )
- || strcspn( $code, "/\\\000" ) !== strlen( $code ) )
+ if ( !Language::isValidCode( $code )
+ || strcspn( $code, ":/\\\000" ) !== strlen( $code ) )
{
throw new MWException( "Invalid language code \"$code\"" );
}
-
+
return $prefix . str_replace( '-', '_', ucfirst( $code ) ) . $suffix;
}
@@ -2820,7 +3281,7 @@ class Language {
* @param $filename string $prefix . $languageCode . $suffix
* @param $prefix string Prefix before the language code
* @param $suffix string Suffix after the language code
- * @return Language code, or false if $prefix or $suffix isn't found
+ * @return string Language code, or false if $prefix or $suffix isn't found
*/
static function getCodeFromFileName( $filename, $prefix = 'Language', $suffix = '.php' ) {
$m = null;
@@ -2832,11 +3293,19 @@ class Language {
return str_replace( '_', '-', strtolower( $m[1] ) );
}
+ /**
+ * @param $code string
+ * @return string
+ */
static function getMessagesFileName( $code ) {
global $IP;
return self::getFileName( "$IP/languages/messages/Messages", $code, '.php' );
}
+ /**
+ * @param $code string
+ * @return string
+ */
static function getClassFileName( $code ) {
global $IP;
return self::getFileName( "$IP/languages/classes/Language", $code, '.php' );
@@ -2844,6 +3313,10 @@ class Language {
/**
* Get the fallback for a given language
+ *
+ * @param $code string
+ *
+ * @return false|string
*/
static function getFallbackFor( $code ) {
if ( $code === 'en' ) {
@@ -2857,6 +3330,10 @@ class Language {
/**
* Get all messages for a given language
* WARNING: this may take a long time
+ *
+ * @param $code string
+ *
+ * @return array
*/
static function getMessagesFor( $code ) {
return self::getLocalisationCache()->getItem( $code, 'messages' );
@@ -2864,11 +3341,20 @@ class Language {
/**
* Get a message for a given language
+ *
+ * @param $key string
+ * @param $code string
+ *
+ * @return string
*/
static function getMessageFor( $key, $code ) {
return self::getLocalisationCache()->getSubitem( $code, 'messages', $key );
}
+ /**
+ * @param $talk
+ * @return mixed
+ */
function fixVariableInNamespace( $talk ) {
if ( strpos( $talk, '$1' ) === false ) {
return $talk;
@@ -2886,10 +3372,18 @@ class Language {
return str_replace( ' ', '_', $talk );
}
+ /**
+ * @param $m string
+ * @return string
+ */
function replaceGrammarInNamespace( $m ) {
return $this->convertGrammar( trim( $m[2] ), trim( $m[1] ) );
}
+ /**
+ * @throws MWException
+ * @return array
+ */
static function getCaseMaps() {
static $wikiUpperChars, $wikiLowerChars;
if ( isset( $wikiUpperChars ) ) {
@@ -2902,16 +3396,53 @@ class Language {
throw new MWException(
"Utf8Case.ser is missing, please run \"make\" in the serialized directory\n" );
}
- extract( $arr );
+ $wikiUpperChars = $arr['wikiUpperChars'];
+ $wikiLowerChars = $arr['wikiLowerChars'];
wfProfileOut( __METHOD__ );
return array( $wikiUpperChars, $wikiLowerChars );
}
- function formatTimePeriod( $seconds ) {
+ /**
+ * Decode an expiry (block, protection, etc) which has come from the DB
+ *
+ * @param $expiry String: Database expiry String
+ * @param $format Bool|Int true to process using language functions, or TS_ constant
+ * to return the expiry in a given timestamp
+ * @return String
+ */
+ public function formatExpiry( $expiry, $format = true ) {
+ static $infinity, $infinityMsg;
+ if( $infinity === null ){
+ $infinityMsg = wfMessage( 'infiniteblock' );
+ $infinity = wfGetDB( DB_SLAVE )->getInfinity();
+ }
+
+ if ( $expiry == '' || $expiry == $infinity ) {
+ return $format === true
+ ? $infinityMsg
+ : $infinity;
+ } else {
+ return $format === true
+ ? $this->timeanddate( $expiry, /* User preference timezone */ true )
+ : wfTimestamp( $format, $expiry );
+ }
+ }
+
+ /**
+ * @todo Document
+ * @param $seconds int|float
+ * @param $format String Optional, one of ("avoidseconds","avoidminutes"):
+ * "avoidseconds" - don't mention seconds if $seconds >= 1 hour
+ * "avoidminutes" - don't mention seconds/minutes if $seconds > 48 hours
+ * @return string
+ */
+ function formatTimePeriod( $seconds, $format = false ) {
if ( round( $seconds * 10 ) < 100 ) {
- return $this->formatNum( sprintf( "%.1f", round( $seconds * 10 ) / 10 ) ) . $this->getMessageFromDB( 'seconds-abbrev' );
+ $s = $this->formatNum( sprintf( "%.1f", round( $seconds * 10 ) / 10 ) );
+ $s .= $this->getMessageFromDB( 'seconds-abbrev' );
} elseif ( round( $seconds ) < 60 ) {
- return $this->formatNum( round( $seconds ) ) . $this->getMessageFromDB( 'seconds-abbrev' );
+ $s = $this->formatNum( round( $seconds ) );
+ $s .= $this->getMessageFromDB( 'seconds-abbrev' );
} elseif ( round( $seconds ) < 3600 ) {
$minutes = floor( $seconds / 60 );
$secondsPart = round( fmod( $seconds, 60 ) );
@@ -2919,9 +3450,10 @@ class Language {
$secondsPart = 0;
$minutes++;
}
- return $this->formatNum( $minutes ) . $this->getMessageFromDB( 'minutes-abbrev' ) . ' ' .
- $this->formatNum( $secondsPart ) . $this->getMessageFromDB( 'seconds-abbrev' );
- } else {
+ $s = $this->formatNum( $minutes ) . $this->getMessageFromDB( 'minutes-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatNum( $secondsPart ) . $this->getMessageFromDB( 'seconds-abbrev' );
+ } elseif ( round( $seconds ) <= 2*86400 ) {
$hours = floor( $seconds / 3600 );
$minutes = floor( ( $seconds - $hours * 3600 ) / 60 );
$secondsPart = round( $seconds - $hours * 3600 - $minutes * 60 );
@@ -2933,12 +3465,53 @@ class Language {
$minutes = 0;
$hours++;
}
- return $this->formatNum( $hours ) . $this->getMessageFromDB( 'hours-abbrev' ) . ' ' .
- $this->formatNum( $minutes ) . $this->getMessageFromDB( 'minutes-abbrev' ) . ' ' .
- $this->formatNum( $secondsPart ) . $this->getMessageFromDB( 'seconds-abbrev' );
+ $s = $this->formatNum( $hours ) . $this->getMessageFromDB( 'hours-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatNum( $minutes ) . $this->getMessageFromDB( 'minutes-abbrev' );
+ if ( !in_array( $format, array( 'avoidseconds', 'avoidminutes' ) ) ) {
+ $s .= ' ' . $this->formatNum( $secondsPart ) .
+ $this->getMessageFromDB( 'seconds-abbrev' );
+ }
+ } else {
+ $days = floor( $seconds / 86400 );
+ if ( $format === 'avoidminutes' ) {
+ $hours = round( ( $seconds - $days * 86400 ) / 3600 );
+ if ( $hours == 24 ) {
+ $hours = 0;
+ $days++;
+ }
+ $s = $this->formatNum( $days ) . $this->getMessageFromDB( 'days-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatNum( $hours ) . $this->getMessageFromDB( 'hours-abbrev' );
+ } elseif ( $format === 'avoidseconds' ) {
+ $hours = floor( ( $seconds - $days * 86400 ) / 3600 );
+ $minutes = round( ( $seconds - $days * 86400 - $hours * 3600 ) / 60 );
+ if ( $minutes == 60 ) {
+ $minutes = 0;
+ $hours++;
+ }
+ if ( $hours == 24 ) {
+ $hours = 0;
+ $days++;
+ }
+ $s = $this->formatNum( $days ) . $this->getMessageFromDB( 'days-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatNum( $hours ) . $this->getMessageFromDB( 'hours-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatNum( $minutes ) . $this->getMessageFromDB( 'minutes-abbrev' );
+ } else {
+ $s = $this->formatNum( $days ) . $this->getMessageFromDB( 'days-abbrev' );
+ $s .= ' ';
+ $s .= $this->formatTimePeriod( $seconds - $days * 86400, $format );
+ }
}
+ return $s;
}
+ /**
+ * @param $bps int
+ * @return string
+ */
function formatBitrate( $bps ) {
$units = array( 'bps', 'kbps', 'Mbps', 'Gbps' );
if ( $bps <= 0 ) {
@@ -2989,6 +3562,8 @@ class Language {
/**
* Get the conversion rule title, if any.
+ *
+ * @return string
*/
function getConvRuleTitle() {
return $this->mConverter->getConvRuleTitle();
diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php
index f5b5492d..ba89be74 100644
--- a/languages/LanguageConverter.php
+++ b/languages/LanguageConverter.php
@@ -35,7 +35,12 @@ class LanguageConverter {
var $mTables;
// 'bidirectional' 'unidirectional' 'disable' for each variant
var $mManualLevel;
+
+ /**
+ * @var String: memcached key name
+ */
var $mCacheKey;
+
var $mLangObj;
var $mFlags;
var $mDescCodeSep = ':', $mDescVarSep = ';';
@@ -52,24 +57,22 @@ class LanguageConverter {
/**
* Constructor
*
- * @param $langobj The Language Object
+ * @param $langobj Language: the Language Object
* @param $maincode String: the main language code of this language
* @param $variants Array: the supported variants of this language
* @param $variantfallbacks Array: the fallback language of each variant
* @param $flags Array: defining the custom strings that maps to the flags
* @param $manualLevel Array: limit for supported variants
*/
- public function __construct( $langobj, $maincode,
- $variants = array(),
- $variantfallbacks = array(),
- $flags = array(),
+ public function __construct( $langobj, $maincode, $variants = array(),
+ $variantfallbacks = array(), $flags = array(),
$manualLevel = array() ) {
- global $wgDisabledVariants, $wgLanguageNames;
+ global $wgDisabledVariants;
$this->mLangObj = $langobj;
$this->mMainLanguageCode = $maincode;
$this->mVariants = array_diff( $variants, $wgDisabledVariants );
$this->mVariantFallbacks = $variantfallbacks;
- $this->mVariantNames = $wgLanguageNames;
+ $this->mVariantNames = Language::getLanguageNames();
$this->mCacheKey = wfMemcKey( 'conversiontables', $maincode );
$defaultflags = array(
// 'S' show converted text
@@ -82,7 +85,7 @@ class LanguageConverter {
'D' => 'D', // convert description (subclass implement)
'-' => '-', // remove convert (not implement)
'H' => 'H', // add rule for convert code
- // (but no display in placed code )
+ // (but no display in placed code)
'N' => 'N' // current variant name
);
$this->mFlags = array_merge( $defaultflags, $flags );
@@ -143,9 +146,7 @@ class LanguageConverter {
if ( $wgUser->isLoggedIn() && !$req ) {
$req = $this->getUserVariant();
- }
-
- elseif ( !$req ) {
+ } elseif ( !$req ) {
$req = $this->getHeaderVariant();
}
@@ -189,8 +190,7 @@ class LanguageConverter {
* @return Mixed: returns the variant if it is valid, null otherwise
*/
protected function validateVariant( $variant = null ) {
- if ( $variant !== null &&
- in_array( $variant, $this->mVariants ) ) {
+ if ( $variant !== null && in_array( $variant, $this->mVariants ) ) {
return $variant;
}
return null;
@@ -227,17 +227,18 @@ class LanguageConverter {
global $wgUser;
// memoizing this function wreaks havoc on parserTest.php
- /* if ( $this->mUserVariant ) { */
- /* return $this->mUserVariant; */
- /* } */
+ /*
+ if ( $this->mUserVariant ) {
+ return $this->mUserVariant;
+ }
+ */
- // get language variant preference from logged in users
+ // Get language variant preference from logged in users
// Don't call this on stub objects because that causes infinite
// recursion during initialisation
if ( $wgUser->isLoggedIn() ) {
$ret = $wgUser->getOption( 'variant' );
- }
- else {
+ } else {
// figure out user lang without constructing wgLang to avoid
// infinite recursion
$ret = $wgUser->getOption( 'language' );
@@ -259,13 +260,13 @@ class LanguageConverter {
}
// see if some supported language variant is set in the
- // http header.
+ // HTTP header.
$languages = array_keys( $wgRequest->getAcceptLang() );
if ( empty( $languages ) ) {
return null;
}
- $fallback_languages = array();
+ $fallbackLanguages = array();
foreach ( $languages as $language ) {
$this->mHeaderVariant = $this->validateVariant( $language );
if ( $this->mHeaderVariant ) {
@@ -277,17 +278,16 @@ class LanguageConverter {
// them later.
$fallbacks = $this->getVariantFallbacks( $language );
if ( is_string( $fallbacks ) ) {
- $fallback_languages[] = $fallbacks;
+ $fallbackLanguages[] = $fallbacks;
} elseif ( is_array( $fallbacks ) ) {
- $fallback_languages =
- array_merge( $fallback_languages,
- $fallbacks );
+ $fallbackLanguages =
+ array_merge( $fallbackLanguages, $fallbacks );
}
}
if ( !$this->mHeaderVariant ) {
// process fallback languages now
- $fallback_languages = array_unique( $fallback_languages );
+ $fallback_languages = array_unique( $fallbackLanguages );
foreach ( $fallback_languages as $language ) {
$this->mHeaderVariant = $this->validateVariant( $language );
if ( $this->mHeaderVariant ) {
@@ -305,9 +305,9 @@ class LanguageConverter {
* If you want to parse rules, try to use convert() or
* convertTo().
*
- * @param $text String: the text to be converted
- * @param $toVariant String: the target language code
- * @return String: the converted text
+ * @param $text String the text to be converted
+ * @param $toVariant bool|string the target language code
+ * @return String the converted text
*/
public function autoConvert( $text, $toVariant = false ) {
wfProfileIn( __METHOD__ );
@@ -323,9 +323,9 @@ class LanguageConverter {
}
/* we convert everything except:
- 1. html markups (anything between < and >)
- 2. html entities
- 3. place holders created by the parser
+ 1. HTML markups (anything between < and >)
+ 2. HTML entities
+ 3. placeholders created by the parser
*/
global $wgParser;
if ( isset( $wgParser ) && $wgParser->UniqPrefix() != '' ) {
@@ -334,7 +334,7 @@ class LanguageConverter {
$marker = '';
}
- // this one is needed when the text is inside an html markup
+ // this one is needed when the text is inside an HTML markup
$htmlfix = '|<[^>]+$|^[^<>]*>';
// disable convert to variants between <code></code> tags
@@ -353,6 +353,8 @@ class LanguageConverter {
// Guard against delimiter nulls in the input
$text = str_replace( "\000", '', $text );
+ $markupMatches = null;
+ $elementMatches = null;
while ( $startPos < strlen( $text ) ) {
if ( preg_match( $reg, $text, $markupMatches, PREG_OFFSET_CAPTURE, $startPos ) ) {
$elementPos = $markupMatches[0][1];
@@ -370,7 +372,7 @@ class LanguageConverter {
// Translate any alt or title attributes inside the matched element
if ( $element !== '' && preg_match( '/^(<[^>\s]*)\s([^>]*)(.*)$/', $element,
- $elementMatches ) )
+ $elementMatches ) )
{
$attrs = Sanitizer::decodeTagAttributes( $elementMatches[2] );
$changed = false;
@@ -466,7 +468,7 @@ class LanguageConverter {
*
* @param $text String: the text to be converted
* @return Array: variant => converted text
- * @deprecated Use autoConvertToAllVariants() instead
+ * @deprecated since 1.17 Use autoConvertToAllVariants() instead
*/
public function convertLinkToAllVariants( $text ) {
return $this->autoConvertToAllVariants( $text );
@@ -475,7 +477,7 @@ class LanguageConverter {
/**
* Apply manual conversion rules.
*
- * @param $convRule Object: Object of ConverterRule
+ * @param $convRule ConverterRule Object of ConverterRule
*/
protected function applyManualConv( $convRule ) {
// Use syntax -{T|zh-cn:TitleCN; zh-tw:TitleTw}- to custom
@@ -515,8 +517,8 @@ class LanguageConverter {
* Auto convert a Title object to a readable string in the
* preferred variant.
*
- *@param $title Object: a object of Title
- *@return String: converted title text
+ * @param $title Title a object of Title
+ * @return String: converted title text
*/
public function convertTitle( $title ) {
$variant = $this->getPreferredVariant();
@@ -525,9 +527,9 @@ class LanguageConverter {
$text = '';
} else {
// first let's check if a message has given us a converted name
- $nsConvKey = 'conversion-ns' . $index;
- if ( !wfEmptyMsg( $nsConvKey ) ) {
- $text = wfMsgForContentNoTrans( $nsConvKey );
+ $nsConvMsg = wfMessage( 'conversion-ns' . $index )->inContentLanguage();
+ if ( $nsConvMsg->exists() ) {
+ $text = $nsConvMsg->plain();
} else {
// the message does not exist, try retrieve it from the current
// variant's namespace names.
@@ -569,7 +571,9 @@ class LanguageConverter {
*/
public function convertTo( $text, $variant ) {
global $wgDisableLangConversion;
- if ( $wgDisableLangConversion ) return $text;
+ if ( $wgDisableLangConversion ) {
+ return $text;
+ }
return $this->recursiveConvertTopLevel( $text, $variant );
}
@@ -614,7 +618,9 @@ class LanguageConverter {
*
* @param $text String: text to be converted
* @param $variant String: the target variant code
+ * @param $startPos int
* @param $depth Integer: depth of recursion
+ *
* @return String: converted text
*/
protected function recursiveConvertRule( $text, $variant, &$startPos, $depth = 0 ) {
@@ -685,10 +691,9 @@ class LanguageConverter {
}
/**
- * If a language supports multiple variants, it is
- * possible that non-existing link in one variant
- * actually exists in another variant. This function
- * tries to find it. See e.g. LanguageZh.php
+ * If a language supports multiple variants, it is possible that
+ * non-existing link in one variant actually exists in another variant.
+ * This function tries to find it. See e.g. LanguageZh.php
*
* @param $link String: the name of the link
* @param $nt Mixed: the title object of the link
@@ -759,10 +764,12 @@ class LanguageConverter {
/**
* Returns language specific hash options.
+ *
+ * @return string
*/
public function getExtraHashOptions() {
$variant = $this->getPreferredVariant();
- return '!' . $variant ;
+ return '!' . $variant;
}
/**
@@ -773,14 +780,15 @@ class LanguageConverter {
*/
function loadDefaultTables() {
$name = get_class( $this );
- wfDie( "Must implement loadDefaultTables() method in class $name" );
+ throw new MWException( "Must implement loadDefaultTables() method in class $name" );
}
/**
* Load conversion tables either from the cache or the disk.
* @private
+ * @param $fromCache Boolean: load from memcached? Defaults to true.
*/
- function loadTables( $fromcache = true ) {
+ function loadTables( $fromCache = true ) {
if ( $this->mTablesLoaded ) {
return;
}
@@ -788,7 +796,7 @@ class LanguageConverter {
wfProfileIn( __METHOD__ );
$this->mTablesLoaded = true;
$this->mTables = false;
- if ( $fromcache ) {
+ if ( $fromCache ) {
wfProfileIn( __METHOD__ . '-cache' );
$this->mTables = $wgMemc->get( $this->mCacheKey );
wfProfileOut( __METHOD__ . '-cache' );
@@ -797,8 +805,8 @@ class LanguageConverter {
|| !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) {
wfProfileIn( __METHOD__ . '-recache' );
// not in cache, or we need a fresh reload.
- // we will first load the default tables
- // then update them using things in MediaWiki:Zhconversiontable/*
+ // We will first load the default tables
+ // then update them using things in MediaWiki:Conversiontable/*
$this->loadDefaultTables();
foreach ( $this->mVariants as $var ) {
$cached = $this->parseCachedTable( $var );
@@ -815,8 +823,7 @@ class LanguageConverter {
}
/**
- * Hook for post processig after conversion tables are loaded.
- *
+ * Hook for post processing after conversion tables are loaded.
*/
function postLoadTables() { }
@@ -833,7 +840,6 @@ class LanguageConverter {
$this->loadTables( false );
}
-
/**
* Parse the conversion table stored in the cache.
*
@@ -844,18 +850,18 @@ class LanguageConverter {
* ...
* }-
*
- * To make the tables more manageable, subpages are allowed
- * and will be parsed recursively if $recursive == true.
+ * To make the tables more manageable, subpages are allowed
+ * and will be parsed recursively if $recursive == true.
*
+ * @param $code String: language code
+ * @param $subpage String: subpage name
+ * @param $recursive Boolean: parse subpages recursively? Defaults to true.
+ *
+ * @return array
*/
function parseCachedTable( $code, $subpage = '', $recursive = true ) {
- global $wgMessageCache;
static $parsed = array();
- if ( !is_object( $wgMessageCache ) ) {
- return array();
- }
-
$key = 'Conversiontable/' . $code;
if ( $subpage ) {
$key .= '/' . $subpage;
@@ -865,15 +871,17 @@ class LanguageConverter {
}
if ( strpos( $code, '/' ) === false ) {
- $txt = $wgMessageCache->get( 'Conversiontable', true, $code );
+ $txt = MessageCache::singleton()->get( 'Conversiontable', true, $code );
if ( $txt === false ) {
- # FIXME: this method doesn't seem to be expecting
+ # @todo FIXME: This method doesn't seem to be expecting
# this possible outcome...
$txt = '&lt;Conversiontable&gt;';
}
} else {
- $title = Title::makeTitleSafe( NS_MEDIAWIKI,
- "Conversiontable/$code" );
+ $title = Title::makeTitleSafe(
+ NS_MEDIAWIKI,
+ "Conversiontable/$code"
+ );
if ( $title && $title->exists() ) {
$article = new Article( $title );
$txt = $article->getContents();
@@ -883,7 +891,7 @@ class LanguageConverter {
}
// get all subpage links of the form
- // [[MediaWiki:conversiontable/zh-xx/...|...]]
+ // [[MediaWiki:Conversiontable/zh-xx/...|...]]
$linkhead = $this->mLangObj->getNsText( NS_MEDIAWIKI ) .
':Conversiontable';
$subs = StringUtils::explode( '[[', $txt );
@@ -922,8 +930,9 @@ class LanguageConverter {
$table = StringUtils::explode( ';', $stripped );
foreach ( $table as $t ) {
$m = explode( '=>', $t, 3 );
- if ( count( $m ) != 2 )
+ if ( count( $m ) != 2 ) {
continue;
+ }
// trim any trailling comments starting with '//'
$tt = explode( '//', $m[1], 2 );
$ret[trim( $m[0] )] = trim( $tt[0] );
@@ -952,7 +961,7 @@ class LanguageConverter {
* various functions in the Parser.
*
* @param $text String: text to be tagged for no conversion
- * @param $noParse Unused (?)
+ * @param $noParse Boolean: unused
* @return String: the tagged text
*/
public function markNoConversion( $text, $noParse = false ) {
@@ -968,6 +977,10 @@ class LanguageConverter {
/**
* Convert the sorting key for category links. This should make different
* keys that are variants of each other map to the same key.
+ *
+ * @param $key string
+ *
+ * @return string
*/
function convertCategoryKey( $key ) {
return $key;
@@ -975,11 +988,22 @@ class LanguageConverter {
/**
* Hook to refresh the cache of conversion tables when
- * MediaWiki:conversiontable* is updated.
+ * MediaWiki:Conversiontable* is updated.
* @private
+ *
+ * @param $article Article object
+ * @param $user Object: User object for the current user
+ * @param $text String: article text (?)
+ * @param $summary String: edit summary of the edit
+ * @param $isMinor Boolean: was the edit marked as minor?
+ * @param $isWatch Boolean: did the user watch this page or not?
+ * @param $section Unused
+ * @param $flags Bitfield
+ * @param $revision Object: new Revision object or null
+ * @return Boolean: true
*/
- function OnArticleSaveComplete( $article, $user, $text, $summary, $isminor,
- $iswatch, $section, $flags, $revision ) {
+ function OnArticleSaveComplete( $article, $user, $text, $summary, $isMinor,
+ $isWatch, $section, $flags, $revision ) {
$titleobj = $article->getTitle();
if ( $titleobj->getNamespace() == NS_MEDIAWIKI ) {
$title = $titleobj->getDBkey();
@@ -996,7 +1020,11 @@ class LanguageConverter {
/**
* Armour rendered math against conversion.
- * Escape special chars in parsed math text.(in most cases are img elements)
+ * Escape special chars in parsed math text. (in most cases are img elements)
+ *
+ * @param $text String: text to armour against conversion
+ * @return String: armoured text where { and } have been converted to
+ * &#123; and &#125;
*/
public function armourMath( $text ) {
// convert '-{' and '}-' to '-&#123;' and '&#125;-' to prevent
@@ -1197,6 +1225,8 @@ class ConverterRule {
/**
* @private
+ *
+ * @return string
*/
function getRulesDesc() {
$codesep = $this->mConverter->mDescCodeSep;
@@ -1217,6 +1247,10 @@ class ConverterRule {
/**
* Parse rules conversion.
* @private
+ *
+ * @param $variant
+ *
+ * @return string
*/
function getRuleConvertedStr( $variant ) {
$bidtable = $this->mBidtable;
@@ -1298,7 +1332,7 @@ class ConverterRule {
}
$vmarked[] = $v;
}
- /*for unidirectional array fill to convert tables */
+ /* for unidirectional array fill to convert tables */
if ( ( $manLevel[$v] == 'bidirectional' || $manLevel[$v] == 'unidirectional' )
&& isset( $unidtable[$v] ) )
{
@@ -1313,9 +1347,9 @@ class ConverterRule {
/**
* Parse rules and flags.
- * @public
+ * @param $variant String: variant language code
*/
- function parse( $variant = NULL ) {
+ public function parse( $variant = null ) {
if ( !$variant ) {
$variant = $this->mConverter->getPreferredVariant();
}
@@ -1418,58 +1452,58 @@ class ConverterRule {
}
/**
- * @public
+ * @todo FIXME: code this function :)
*/
- function hasRules() {
+ public function hasRules() {
// TODO:
}
/**
* Get display text on markup -{...}-
- * @public
+ * @return string
*/
- function getDisplay() {
+ public function getDisplay() {
return $this->mRuleDisplay;
}
/**
* Get converted title.
- * @public
+ * @return string
*/
- function getTitle() {
+ public function getTitle() {
return $this->mRuleTitle;
}
/**
* Return how deal with conversion rules.
- * @public
+ * @return string
*/
- function getRulesAction() {
+ public function getRulesAction() {
return $this->mRulesAction;
}
/**
- * Get conversion table. ( bidirectional and unidirectional
- * conversion table )
- * @public
+ * Get conversion table. (bidirectional and unidirectional
+ * conversion table)
+ * @return array
*/
- function getConvTable() {
+ public function getConvTable() {
return $this->mConvTable;
}
/**
* Get conversion rules string.
- * @public
+ * @return string
*/
- function getRules() {
+ public function getRules() {
return $this->mRules;
}
/**
* Get conversion flags.
- * @public
+ * @return array
*/
- function getFlags() {
+ public function getFlags() {
return $this->mFlags;
}
}
diff --git a/languages/Names.php b/languages/Names.php
index 742cb06a..adf758f7 100644
--- a/languages/Names.php
+++ b/languages/Names.php
@@ -5,7 +5,7 @@
*
* @ingroup Language
*/
-/* private */ $wgLanguageNames = array(
+/* private */ $coreLanguageNames = array(
'aa' => 'Qafár af', # Afar
'ab' => 'Аҧсуа', # Abkhaz, should possibly add ' бысжѡа'
'ace' => 'Acèh', # Aceh
@@ -16,6 +16,7 @@
'am' => 'አማርኛ', # Amharic
'an' => 'Aragonés', # Aragonese
'ang' => 'Ænglisc', # Old English (Bug 23283)
+ 'anp' => 'अङ्गिका', # Angika
'ar' => 'العربية', # Arabic
'arc' => 'ܐܪܡܝܐ', # Aramaic
'arn' => 'Mapudungun', # Mapuche, Mapudungu, Araucanian (Araucano)
@@ -36,7 +37,8 @@
'be-tarask' => "\xE2\x80\xAAБеларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography
'be-x-old' => "\xE2\x80\xAAБеларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography; compat link
'bg' => 'Български', # Bulgarian
- 'bh' => 'भोजपुरी', # Bhojpuri
+ 'bh' => 'भोजपुरी', # Bihari marco language. Falls back to Bhojpuri (bho).
+ 'bho' => 'भोजपुरी', # Bhojpuri
'bi' => 'Bislama', # Bislama
'bjn' => 'Bahasa Banjar', # Banjarese
'bm' => 'Bamanankan', # Bambara
@@ -45,6 +47,7 @@
'bpy' => 'ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী', # Bishnupriya Manipuri
'bqi' => 'بختياري', # Bakthiari
'br' => 'Brezhoneg', # Breton
+ 'brh' => 'Bráhuí', # Brahui
'bs' => 'Bosanski', # Bosnian
'bug' => 'ᨅᨔ ᨕᨘᨁᨗ', # Bugis
'bxr' => 'Буряад', # Buryat (Russia)
@@ -76,6 +79,7 @@
'de-formal' => "\xE2\x80\xAADeutsch (Sie-Form)\xE2\x80\xAC", # German - formal address ("Sie")
'diq' => 'Zazaki', # Zazaki
'dsb' => 'Dolnoserbski', # Lower Sorbian
+ 'dtp' => 'Dusun Bundu-liwan', # Central Dusun
'dv' => 'ދިވެހިބަސް', # Dhivehi
'dz' => 'ཇོང་ཁ', # Bhutani
'ee' => 'Eʋegbe', # Éwé
@@ -144,15 +148,17 @@
'it' => 'Italiano', # Italian
'iu' => 'ᐃᓄᒃᑎᑐᑦ/inuktitut', # Inuktitut (macro language - do no localise, see ike/ikt - falls back to ike-cans)
'ja' => '日本語', # Japanese
+ 'jam' => 'Patois', # Jamaican Creole English
'jbo' => 'Lojban', # Lojban
'jut' => 'Jysk', # Jutish / Jutlandic
'jv' => 'Basa Jawa', # Javanese
'ka' => 'ქართული', # Georgian
'kaa' => 'Qaraqalpaqsha', # Karakalpak
'kab' => 'Taqbaylit', # Kabyle
- 'kbd' => 'Къэбэрдеибзэ / Qabardjajəbza', # Kabardian (multiple scripts - defaults to Cyrillic)
- 'kbd-cyrl' => 'къэбэрдеибзэ', # Kabardian (Cyrillic)
+ 'kbd' => 'Адыгэбзэ', # Kabardian
+ 'kbd-cyrl' => 'Адыгэбзэ', # Kabardian (Cyrillic)
'kg' => 'Kongo', # Kongo, (FIXME!) should probaly be KiKongo or KiKoongo
+ 'khw' => 'کھوار', # Khowar
'ki' => 'Gĩkũyũ', # Gikuyu
'kiu' => 'Kırmancki', # Kirmanjki
'kj' => 'Kwanyama', # Kwanyama
@@ -173,7 +179,9 @@
'krc' => 'Къарачай-Малкъар', # Karachay-Balkar
'kri' => 'Krio', # Krio
'krj' => 'Kinaray-a', # Kinaray-a
- 'ks' => 'कश्मीरी - (كشميري)', # Kashmiri
+ 'ks' => 'कश्मीरी - (كشميري)', # Kashmiri (multiple scripts - defaults to Perso-Arabic)
+ 'ks-arab' => 'كشميري', # Kashmiri (Perso-Arabic script)
+ 'ks-deva' => 'कश्मीरी', # Kashmiri (Devanagari script)
'ksh' => 'Ripoarisch', # Ripuarian
'ku' => 'Kurdî', # Kurdish (multiple scripts - defaults to Latin)
'ku-latn' => "\xE2\x80\xAAKurdî (latînî)\xE2\x80\xAC", # Northern Kurdish (Latin script)
@@ -189,7 +197,8 @@
'lfn' => 'Lingua Franca Nova', # Lingua Franca Nova
'lg' => 'Luganda', # Ganda
'li' => 'Limburgs', # Limburgian
- 'lij' => 'Líguru', # Ligurian
+ 'lij' => 'Ligure', # Ligurian
+ 'liv' => 'Līvõ kēļ', # Livonian
'lmo' => 'Lumbaart', # Lombard
'ln' => 'Lingála', # Lingala
'lo' => 'ລາວ',# Laotian
@@ -262,17 +271,19 @@
'ps' => 'پښتو', # Pashto, Northern/Paktu/Pakhtu/Pakhtoo/Afghan/Pakhto/Pashtu/Pushto/Yusufzai Pashto
'pt' => 'Português', # Portuguese
'pt-br' => 'Português do Brasil', # Brazilian Portuguese
- 'qu' => 'Runa Simi', # Quechua
+ 'qu' => 'Runa Simi', # Southern Quechua
+ 'qug' => 'Runa shimi', # Kichwa/Northern Quechua (one of the codes it covers; temporarily used until Kichwa has its own)
'rgn' => 'Rumagnôl', # Romagnol
'rif' => 'Tarifit', # Tarifit
'rm' => 'Rumantsch', # Raeto-Romance
'rmy' => 'Romani', # Vlax Romany
'rn' => 'Kirundi', # Rundi/Kirundi/Urundi
'ro' => 'Română', # Romanian
- 'roa-rup' => 'Armãneashce', # Aromanian
+ 'roa-rup' => 'Armãneashce', # Aromanian (deprecated code, 'rup' exists in ISO 693-3)
'roa-tara' => 'Tarandíne', # Tarantino
'ru' => 'Русский', # Russian
'rue' => 'Русиньскый', # Rusyn
+ 'rup' => 'Armãneashce', # Aromanian
'ruq' => 'Vlăheşte', # Megleno-Romanian (multiple scripts - defaults to Latin)
'ruq-cyrl' => 'Влахесте', # Megleno-Romanian (Cyrillic script)
# 'ruq-grek' => 'Βλαεστε', # Megleno-Romanian (Greek script)
@@ -326,7 +337,6 @@
'tn' => 'Setswana', # Setswana
'to' => 'lea faka-Tonga', # Tonga (Tonga Islands)
'tokipona' => 'Toki Pona', # Toki Pona
- 'tp' => 'Toki Pona (deprecated:tokipona)', # Toki Pona - non-standard language code
'tpi' => 'Tok Pisin', # Tok Pisin
'tr' => 'Türkçe', # Turkish
'ts' => 'Xitsonga', # Tsonga
diff --git a/languages/classes/LanguageAm.php b/languages/classes/LanguageAm.php
index 77374d3c..29ae9c11 100644
--- a/languages/classes/LanguageAm.php
+++ b/languages/classes/LanguageAm.php
@@ -7,6 +7,11 @@
class LanguageAm extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageAr.php b/languages/classes/LanguageAr.php
index 77c46025..95e76392 100644
--- a/languages/classes/LanguageAr.php
+++ b/languages/classes/LanguageAr.php
@@ -6,6 +6,12 @@
* @author Niklas Laxström
*/
class LanguageAr extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 6 );
@@ -30,8 +36,12 @@ class LanguageAr extends Language {
* Temporary hack for bug 9413: replace Arabic presentation forms with their
* standard equivalents.
*
- * FIXME: This is language-specific for now only to avoid the negative
+ * @todo FIXME: This is language-specific for now only to avoid the negative
* performance impact of enabling it for all languages.
+ *
+ * @param $s string
+ *
+ * @return string
*/
function normalize( $s ) {
global $wgFixArabicUnicode;
diff --git a/languages/classes/LanguageAz.php b/languages/classes/LanguageAz.php
index 13c50547..947e6560 100644
--- a/languages/classes/LanguageAz.php
+++ b/languages/classes/LanguageAz.php
@@ -4,6 +4,11 @@
* @ingroup Language
*/
class LanguageAz extends Language {
+
+ /**
+ * @param $string string
+ * @return mixed|string
+ */
function ucfirst ( $string ) {
if ( $string[0] == 'i' ) {
return 'İ' . substr( $string, 1 );
diff --git a/languages/classes/LanguageBe.php b/languages/classes/LanguageBe.php
index 0b147333..bb0ba9e8 100644
--- a/languages/classes/LanguageBe.php
+++ b/languages/classes/LanguageBe.php
@@ -14,9 +14,15 @@
class LanguageBe extends Language {
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
- // FIXME: CLDR defines 4 plural forms instead of 3
+ // @todo FIXME: CLDR defines 4 plural forms instead of 3
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageBe_tarask.php b/languages/classes/LanguageBe_tarask.php
index b29d8770..25c3f700 100644
--- a/languages/classes/LanguageBe_tarask.php
+++ b/languages/classes/LanguageBe_tarask.php
@@ -11,20 +11,26 @@
class LanguageBe_tarask extends Language {
/**
- * Plural form transformations
- *
- * $wordform1 - singular form (for 1, 21, 31, 41...)
- * $wordform2 - plural form (for 2, 3, 4, 22, 23, 24, 32, 33, 34...)
- * $wordform3 - plural form (for 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26...)
- */
+ * Plural form transformations
+ *
+ * $wordform1 - singular form (for 1, 21, 31, 41...)
+ * $wordform2 - plural form (for 2, 3, 4, 22, 23, 24, 32, 33, 34...)
+ * $wordform3 - plural form (for 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26...)
+ */
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
// if no number with word, then use $form[0] for singular and $form[1] for plural or zero
if ( count( $forms ) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
- // FIXME: CLDR defines 4 plural forms instead of 3
+ // @todo FIXME: CLDR defines 4 plural forms instead of 3
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
$forms = $this->preConvertPlural( $forms, 3 );
@@ -41,11 +47,15 @@ class LanguageBe_tarask extends Language {
}
}
- /*
+ /**
* The Belarusian language uses apostrophe sign,
* but the characters used for this could be both U+0027 and U+2019.
* This function unifies apostrophe sign in search index values
* to enable seach using both apostrophe signs.
+ *
+ * @param $string string
+ *
+ * @return string
*/
function normalizeForSearch( $string ) {
wfProfileIn( __METHOD__ );
@@ -62,9 +72,13 @@ class LanguageBe_tarask extends Language {
return $s;
}
- /*
+ /**
* Four-digit number should be without group commas (spaces)
* So "1 234 567", "12 345" but "1234"
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( preg_match( '/^-?\d{1,4}(\.\d*)?$/', $_ ) ) {
diff --git a/languages/classes/LanguageBg.php b/languages/classes/LanguageBg.php
index d6d34090..9ccb9a85 100644
--- a/languages/classes/LanguageBg.php
+++ b/languages/classes/LanguageBg.php
@@ -8,6 +8,10 @@ class LanguageBg extends Language {
/**
* ISO number formatting: 123 456 789,99.
* Avoid tripple grouping by numbers with whole part up to 4 digits.
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
diff --git a/languages/classes/LanguageBh.php b/languages/classes/LanguageBh.php
index 3272e2f3..46e4418c 100644
--- a/languages/classes/LanguageBh.php
+++ b/languages/classes/LanguageBh.php
@@ -7,6 +7,11 @@
class LanguageBh extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageBs.php b/languages/classes/LanguageBs.php
index 6432109d..c501b35a 100644
--- a/languages/classes/LanguageBs.php
+++ b/languages/classes/LanguageBs.php
@@ -6,11 +6,16 @@
*/
class LanguageBs extends Language {
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
- // FIXME: CLDR defines 4 plural forms instead of 3. Plural for decimals is missing.
+ // @todo FIXME: CLDR defines 4 plural forms instead of 3. Plural for decimals is missing.
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) {
return $forms[2];
@@ -29,6 +34,11 @@ class LanguageBs extends Language {
# Invoked with {{GRAMMAR:case|word}}
/**
* Cases: genitiv, dativ, akuzativ, vokativ, instrumental, lokativ
+ *
+ * @param $word string
+ * @param $case string
+ *
+ * @return string
*/
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
diff --git a/languages/classes/LanguageCs.php b/languages/classes/LanguageCs.php
index 935aed4e..f50a7e70 100644
--- a/languages/classes/LanguageCs.php
+++ b/languages/classes/LanguageCs.php
@@ -6,11 +6,16 @@
*/
class LanguageCs extends Language {
- # Plural transformations
- # Invoked by putting
- # {{plural:count|form1|form2-4|form0,5+}} for two forms plurals
- # {{plural:count|form1|form0,2+}} for single form plurals
- # in a message
+ /**
+ * Plural transformations
+ * Invoked by putting
+ * {{plural:count|form1|form2-4|form0,5+}} for two forms plurals
+ * {{plural:count|form1|form0,2+}} for single form plurals
+ * in a message
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageCu.php b/languages/classes/LanguageCu.php
index 1aecbca5..af42d2c2 100644
--- a/languages/classes/LanguageCu.php
+++ b/languages/classes/LanguageCu.php
@@ -5,8 +5,15 @@
* @ingroup Language
*/
class LanguageCu extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{grammar:case|word}}
+
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['сu'][$case][$word] ) ) {
@@ -34,6 +41,11 @@ class LanguageCu extends Language {
return $word;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 4 );
diff --git a/languages/classes/LanguageCy.php b/languages/classes/LanguageCy.php
index d7727de2..a3a28689 100644
--- a/languages/classes/LanguageCy.php
+++ b/languages/classes/LanguageCy.php
@@ -6,10 +6,16 @@
* @author Niklas Laxström
*/
class LanguageCy extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
- // FIXME: CLDR defines 4 plural forms; very different, actually.
+ // @todo FIXME: CLDR defines 4 plural forms; very different, actually.
// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#cy
$forms = $this->preConvertPlural( $forms, 6 );
$count = abs( $count );
diff --git a/languages/classes/LanguageDsb.php b/languages/classes/LanguageDsb.php
index 1c97c8ad..1fae25cf 100644
--- a/languages/classes/LanguageDsb.php
+++ b/languages/classes/LanguageDsb.php
@@ -6,9 +6,14 @@
*/
class LanguageDsb extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{GRAMMAR:case|word}}
-
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['dsb'][$case][$word] ) ) {
@@ -26,6 +31,11 @@ class LanguageDsb extends Language {
return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 4 );
diff --git a/languages/classes/LanguageEo.php b/languages/classes/LanguageEo.php
index 7ec447e7..af058a3e 100644
--- a/languages/classes/LanguageEo.php
+++ b/languages/classes/LanguageEo.php
@@ -42,7 +42,7 @@ class LanguageEo extends Language {
return preg_replace_callback (
'/([cghjsu]x?)((?:xx)*)(?!x)/i',
array( $this, 'strrtxuCallback' ), $string );
- } else if ( strcasecmp( $in, 'UTF-8' ) == 0 && strcasecmp( $out, 'x' ) == 0 ) {
+ } elseif ( strcasecmp( $in, 'UTF-8' ) == 0 && strcasecmp( $out, 'x' ) == 0 ) {
# Double Xs only if they follow cxapelutaj literoj.
return preg_replace_callback(
'/((?:[cghjsu]|\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]|\xc5[\x9c\x9d\xac\xad])x*)/i',
@@ -51,6 +51,10 @@ class LanguageEo extends Language {
return parent::iconv( $in, $out, $string );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function strrtuxCallback( $matches ) {
static $ux = array (
'x' => 'xx' , 'X' => 'Xx' ,
@@ -64,6 +68,10 @@ class LanguageEo extends Language {
return strtr( $matches[1], $ux );
}
+ /**
+ * @param $matches array
+ * @return string
+ */
function strrtxuCallback( $matches ) {
static $xu = array (
'xx' => 'x' , 'xX' => 'x' ,
@@ -84,6 +92,10 @@ class LanguageEo extends Language {
return strtr( $matches[1], $xu ) . strtr( $matches[2], $xu );
}
+ /**
+ * @param $s string
+ * @return string
+ */
function checkTitleEncoding( $s ) {
# Check for X-system backwards-compatibility URLs
$ishigh = preg_match( '/[\x80-\xff]/', $s );
diff --git a/languages/classes/LanguageEt.php b/languages/classes/LanguageEt.php
index 226c2d73..b469dec9 100644
--- a/languages/classes/LanguageEt.php
+++ b/languages/classes/LanguageEt.php
@@ -8,6 +8,10 @@
class LanguageEt extends Language {
/**
* Avoid grouping whole numbers between 0 to 9999
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
diff --git a/languages/classes/LanguageFi.php b/languages/classes/LanguageFi.php
index e3d922c4..7156b65a 100644
--- a/languages/classes/LanguageFi.php
+++ b/languages/classes/LanguageFi.php
@@ -8,8 +8,14 @@
*/
class LanguageFi extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{GRAMMAR:case|word}}
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['fi'][$case][$word] ) ) {
@@ -55,6 +61,11 @@ class LanguageFi extends Language {
return $word;
}
+ /**
+ * @param $str string
+ * @param $forContent bool
+ * @return string
+ */
function translateBlockExpiry( $str, $forContent = false ) {
/*
'ago', 'now', 'today', 'this', 'next',
diff --git a/languages/classes/LanguageFr.php b/languages/classes/LanguageFr.php
index dec1204c..3e7c970d 100644
--- a/languages/classes/LanguageFr.php
+++ b/languages/classes/LanguageFr.php
@@ -7,6 +7,11 @@
class LanguageFr extends Language {
/**
* Use singular form for zero (see bug 7309)
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageGa.php b/languages/classes/LanguageGa.php
index a55e5f30..43050e16 100644
--- a/languages/classes/LanguageGa.php
+++ b/languages/classes/LanguageGa.php
@@ -5,8 +5,15 @@
* @ingroup Language
*/
class LanguageGa extends Language {
- # Convert day names
- # Invoked with {{GRAMMAR:transformation|word}}
+
+ /**
+ * Convert day names
+ * Invoked with {{GRAMMAR:transformation|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['ga'][$case][$word] ) ) {
@@ -35,6 +42,11 @@ class LanguageGa extends Language {
return $word;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageGan.php b/languages/classes/LanguageGan.php
index da5e1d22..99b4c29e 100644
--- a/languages/classes/LanguageGan.php
+++ b/languages/classes/LanguageGan.php
@@ -8,6 +8,14 @@ require_once( dirname( __FILE__ ) . '/LanguageZh.php' );
*/
class GanConverter extends LanguageConverter {
+ /**
+ * @param $langobj Language
+ * @param $maincode string
+ * @param $variants array
+ * @param $variantfallbacks array
+ * @param $flags array
+ * @param $manualLevel array
+ */
function __construct( $langobj, $maincode,
$variants = array(),
$variantfallbacks = array(),
@@ -37,14 +45,24 @@ class GanConverter extends LanguageConverter {
);
}
- /* there shouldn't be any latin text in Chinese conversion, so no need
- to mark anything.
- $noParse is there for compatibility with LanguageConvert::markNoConversion
+ /**
+ * there shouldn't be any latin text in Chinese conversion, so no need
+ * to mark anything.
+ * $noParse is there for compatibility with LanguageConvert::markNoConversion
+ *
+ * @param $text string
+ * @param $noParse bool
+ *
+ * @return string
*/
function markNoConversion( $text, $noParse = false ) {
return $text;
}
+ /**
+ * @param $key string
+ * @return String
+ */
function convertCategoryKey( $key ) {
return $this->autoConvert( $key, 'gan' );
}
@@ -80,25 +98,44 @@ class LanguageGan extends LanguageZh {
$wgHooks['ArticleSaveComplete'][] = $this->mConverter;
}
- # this should give much better diff info
+ /**
+ * this should give much better diff info
+ *
+ * @param $text string
+ * @return string
+ */
function segmentForDiff( $text ) {
return preg_replace(
"/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
"' ' .\"$1\"", $text );
}
+ /**
+ * @param $text string
+ * @return string
+ */
function unsegmentForDiff( $text ) {
return preg_replace(
"/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
"\"$1\"", $text );
}
- // word segmentation
+ /**
+ * word segmentation
+ *
+ * @param $string string
+ * @param $autoVariant string
+ * @return String
+ */
function normalizeForSearch( $string, $autoVariant = 'gan-hans' ) {
// LanguageZh::normalizeForSearch
return parent::normalizeForSearch( $string, $autoVariant );
}
+ /**
+ * @param $termsArray array
+ * @return array
+ */
function convertForSearchResult( $termsArray ) {
$terms = implode( '|', $termsArray );
$terms = self::convertDoubleWidth( $terms );
diff --git a/languages/classes/LanguageGd.php b/languages/classes/LanguageGd.php
index 1b1b278e..5fe3d058 100644
--- a/languages/classes/LanguageGd.php
+++ b/languages/classes/LanguageGd.php
@@ -4,32 +4,43 @@
* @ingroup Language
*
* @author Raimond Spekking
+ * @author Niklas Laxström
*/
class LanguageGd extends Language {
/**
* Plural form transformations
- * Based on this discussion: http://translatewiki.net/w/i.php?title=Portal_talk:Gd&oldid=1094065#%C3%80ireamhan
+ * Based on this discussion: http://translatewiki.net/wiki/Thread:Support/New_plural_rules_for_Scots_Gaelic_(gd)
*
- * $forms[0] - singular form (for 1)
- * $forms[1] - dual form (for 2)
- * $forms[2] - plural form 1 (for 3-10)
- * $forms[3] - plural form 2 (for >= 11)
+ * $forms[0] - 1
+ * $forms[1] - 2
+ * $forms[2] - 11
+ * $forms[3] - 12
+ * $forms[4] - 3-10, 13-19
+ * $forms[5] - 0, 20, rest
*
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
- $forms = $this->preConvertPlural( $forms, 4 );
+ $forms = $this->preConvertPlural( $forms, 6 );
$count = abs( $count );
if ( $count === 1 ) {
return $forms[0];
} elseif ( $count === 2 ) {
return $forms[1];
- } elseif ( $count >= 3 && $count <= 10 ) {
+ } elseif ( $count === 11 ) {
return $forms[2];
- } else {
+ } elseif ( $count === 12 ) {
return $forms[3];
+ } elseif ( ($count >= 3 && $count <= 10) || ($count >= 13 && $count <= 19) ) {
+ return $forms[4];
+ } else {
+ return $forms[5];
}
}
}
diff --git a/languages/classes/LanguageGv.php b/languages/classes/LanguageGv.php
index 6e25e21c..4defffda 100644
--- a/languages/classes/LanguageGv.php
+++ b/languages/classes/LanguageGv.php
@@ -8,6 +8,11 @@
*/
class LanguageGv extends Language {
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageHe.php b/languages/classes/LanguageHe.php
index 95beca79..e65feee9 100644
--- a/languages/classes/LanguageHe.php
+++ b/languages/classes/LanguageHe.php
@@ -17,6 +17,8 @@ class LanguageHe extends Language {
*
* @param $word String: the word to convert
* @param $case String: the case
+ *
+ * @return string
*/
public function convertGrammar( $word, $case ) {
global $wgGrammarForms;
diff --git a/languages/classes/LanguageHi.php b/languages/classes/LanguageHi.php
index fc9d0de8..53a0fc18 100644
--- a/languages/classes/LanguageHi.php
+++ b/languages/classes/LanguageHi.php
@@ -7,6 +7,11 @@
class LanguageHi extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageHr.php b/languages/classes/LanguageHr.php
index 888029be..e18c8d3a 100644
--- a/languages/classes/LanguageHr.php
+++ b/languages/classes/LanguageHr.php
@@ -6,9 +6,14 @@
class LanguageHr extends Language {
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
- // FIXME: CLDR defines 4 plural forms instead of 3. Plural for for decimals is missing.
+ // @todo FIXME: CLDR defines 4 plural forms instead of 3. Plural for for decimals is missing.
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageHsb.php b/languages/classes/LanguageHsb.php
index 1b83f5ab..1b67aa0d 100644
--- a/languages/classes/LanguageHsb.php
+++ b/languages/classes/LanguageHsb.php
@@ -6,9 +6,14 @@
class LanguageHsb extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{GRAMMAR:case|word}}
-
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['hsb'][$case][$word] ) ) {
@@ -27,6 +32,11 @@ class LanguageHsb extends Language {
return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 4 );
diff --git a/languages/classes/LanguageHu.php b/languages/classes/LanguageHu.php
index 44ce330c..f82bab2f 100644
--- a/languages/classes/LanguageHu.php
+++ b/languages/classes/LanguageHu.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageHu extends Language {
+
+ /**
+ * @param $word string
+ * @param $case
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms[$this->getCode()][$case][$word] ) ) {
diff --git a/languages/classes/LanguageHy.php b/languages/classes/LanguageHy.php
index 527a55f5..c14106c8 100644
--- a/languages/classes/LanguageHy.php
+++ b/languages/classes/LanguageHy.php
@@ -6,8 +6,15 @@
* @author Ruben Vardanyan (Me@RubenVardanyan.com)
*/
class LanguageHy extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{grammar:case|word}}
+
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['hy'][$case][$word] ) ) {
@@ -48,6 +55,12 @@ class LanguageHy extends Language {
return $word;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 2 );
@@ -55,10 +68,13 @@ class LanguageHy extends Language {
return ( abs( $count ) <= 1 ) ? $forms[0] : $forms[1];
}
- /*
+ /**
* Armenian numeric format is "12 345,67" but "1234,56"
+ *
+ * @param $_ string
+ *
+ * @return string
*/
-
function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
diff --git a/languages/classes/LanguageIu.deps.php b/languages/classes/LanguageIu.deps.php
new file mode 100644
index 00000000..3b78d875
--- /dev/null
+++ b/languages/classes/LanguageIu.deps.php
@@ -0,0 +1,8 @@
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageIu.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__).'/../LanguageConverter.php' );
diff --git a/languages/classes/LanguageIu.php b/languages/classes/LanguageIu.php
new file mode 100644
index 00000000..c6221dee
--- /dev/null
+++ b/languages/classes/LanguageIu.php
@@ -0,0 +1,224 @@
+<?php
+/**
+ * @addtogroup Language
+ */
+
+/*
+* Conversion script between Latin and Syllabics for Inuktitut.
+* - Syllabics -> lowercase Latin
+* - lowercase/uppercase Latin -> Syllabics
+*
+*
+* Based on:
+* - http://commons.wikimedia.org/wiki/Image:Inuktitut.png
+* - LanguageSr.php
+*
+* @ingroup Language
+*/
+require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
+
+/**
+ *
+ */
+class IuConverter extends LanguageConverter {
+ var $mToLatin = array(
+ 'ᐦ' => 'h', 'ᐃ' => 'i', 'ᐄ' => 'ii', 'ᐅ' => 'u', 'ᐆ' => 'uu', 'ᐊ' => 'a', 'ᐋ' => 'aa',
+ 'ᑉ' => 'p', 'ᐱ' => 'pi', 'ᐲ' => 'pii', 'ᐳ' => 'pu', 'ᐴ' => 'puu', 'ᐸ' => 'pa', 'ᐹ' => 'paa',
+ 'ᑦ' => 't', 'ᑎ' => 'ti', 'ᑏ' => 'tii', 'ᑐ' => 'tu', 'ᑑ' => 'tuu', 'ᑕ' => 'ta', 'ᑖ' => 'taa',
+ 'ᒃ' => 'k', 'ᑭ' => 'ki', 'ᑮ' => 'kii', 'ᑯ' => 'ku', 'ᑰ' => 'kuu', 'ᑲ' => 'ka', 'ᑳ' => 'kaa',
+ 'ᖅᒃ' => 'qq', 'ᖅᑭ' => 'qqi', 'ᖅᑮ' => 'qqii', 'ᖅᑯ' => 'qqu', 'ᖅᑰ' => 'ᖅqquu', 'ᖅᑲ' => 'qqa', 'ᖅᑳ' => 'qqaa',
+ 'ᒡ' => 'g', 'ᒋ' => 'gi', 'ᒌ' => 'gii', 'ᒍ' => 'gu', 'ᒎ' => 'guu', 'ᒐ' => 'ga', 'ᒑ' => 'gaa',
+ 'ᒻ' => 'm', 'ᒥ' => 'mi', 'ᒦ' => 'mii', 'ᒧ' => 'mu', 'ᒨ' => 'muu', 'ᒪ' => 'ma', 'ᒫ' => 'maa',
+ 'ᓐ' => 'n', 'ᓂ' => 'ni', 'ᓃ' => 'nii', 'ᓄ' => 'nu', 'ᓅ' => 'nuu', 'ᓇ' => 'na', 'ᓈ' => 'naa',
+ 'ᔅ' => 's', 'ᓯ' => 'si', 'ᓰ' => 'sii', 'ᓱ' => 'su', 'ᓲ' => 'suu', 'ᓴ' => 'sa', 'ᓵ' => 'saa',
+ 'ᓪ' => 'l', 'ᓕ' => 'li', 'ᓖ' => 'lii', 'ᓗ' => 'lu', 'ᓘ' => 'luu', 'ᓚ' => 'la', 'ᓛ' => 'laa',
+ 'ᔾ' => 'j', 'ᔨ' => 'ji', 'ᔩ' => 'jii', 'ᔪ' => 'ju', 'ᔫ' => 'juu', 'ᔭ' => 'ja', 'ᔮ' => 'jaa',
+ 'ᕝ' => 'v', 'ᕕ' => 'vi', 'ᕖ' => 'vii', 'ᕗ' => 'vu', 'ᕘ' => 'vuu', 'ᕙ' => 'va', 'ᕚ' => 'vaa',
+ 'ᕐ' => 'r', 'ᕆ' => 'ri', 'ᕇ' => 'rii', 'ᕈ' => 'ru', 'ᕉ' => 'ruu', 'ᕋ' => 'ra', 'ᕌ' => 'raa',
+ 'ᖅ' => 'q', 'ᕿ' => 'qi', 'ᖀ' => 'qii', 'ᖁ' => 'qu', 'ᖂ' => 'quu', 'ᖃ' => 'qa', 'ᖄ' => 'qaa',
+ 'ᖕ' => 'ng', 'ᖏ' => 'ngi', 'ᖐ' => 'ngii', 'ᖑ' => 'ngu', 'ᖒ' => 'nguu', 'ᖓ' => 'nga', 'ᖔ' => 'ngaa',
+ 'ᖖ' => 'nng', 'ᙱ' => 'nngi', 'ᙲ' => 'nngii', 'ᙳ' => 'nngu', 'ᙴ' => 'nnguu', 'ᙵ' => 'nnga', 'ᙶ' => 'nngaa',
+ 'ᖦ' => 'ɫ', 'ᖠ' => 'ɫi', 'ᖡ' => 'ɫii', 'ᖢ' => 'ɫu', 'ᖣ' => 'ɫuu', 'ᖤ' => 'ɫa', 'ᖥ' => 'ɫaa',
+ );
+
+ var $mUpperToLowerCaseLatin = array(
+ 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e',
+ 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j',
+ 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o',
+ 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't',
+ 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y',
+ 'Z' => 'z',
+ );
+
+ var $mToSyllabics = array(
+ 'h' => 'ᐦ', 'i' => 'ᐃ', 'ii' => 'ᐄ', 'u' => 'ᐅ', 'uu' => 'ᐆ', 'a' => 'ᐊ', 'aa' => 'ᐋ',
+ 'p' => 'ᑉ', 'pi' => 'ᐱ', 'pii' => 'ᐲ', 'pu' => 'ᐳ', 'puu' => 'ᐴ', 'pa' => 'ᐸ', 'paa' => 'ᐹ',
+ 't' => 'ᑦ', 'ti' => 'ᑎ', 'tii' => 'ᑏ', 'tu' => 'ᑐ', 'tuu' => 'ᑑ', 'ta' => 'ᑕ', 'taa' => 'ᑖ',
+ 'k' => 'ᒃ', 'ki' => 'ᑭ', 'kii' => 'ᑮ', 'ku' => 'ᑯ', 'kuu' => 'ᑰ', 'ka' => 'ᑲ', 'kaa' => 'ᑳ',
+ 'g' => 'ᒡ', 'gi' => 'ᒋ', 'gii' => 'ᒌ', 'gu' => 'ᒍ', 'guu' => 'ᒎ', 'ga' => 'ᒐ', 'gaa' => 'ᒑ',
+ 'm' => 'ᒻ', 'mi' => 'ᒥ', 'mii' => 'ᒦ', 'mu' => 'ᒧ', 'muu' => 'ᒨ', 'ma' => 'ᒪ', 'maa' => 'ᒫ',
+ 'n' => 'ᓐ', 'ni' => 'ᓂ', 'nii' => 'ᓃ', 'nu' => 'ᓄ', 'nuu' => 'ᓅ', 'na' => 'ᓇ', 'naa' => 'ᓈ',
+ 's' => 'ᔅ', 'si' => 'ᓯ', 'sii' => 'ᓰ', 'su' => 'ᓱ', 'suu' => 'ᓲ', 'sa' => 'ᓴ', 'saa' => 'ᓵ',
+ 'l' => 'ᓪ', 'li' => 'ᓕ', 'lii' => 'ᓖ', 'lu' => 'ᓗ', 'luu' => 'ᓘ', 'la' => 'ᓚ', 'laa' => 'ᓛ',
+ 'j' => 'ᔾ', 'ji' => 'ᔨ', 'jii' => 'ᔩ', 'ju' => 'ᔪ', 'juu' => 'ᔫ', 'ja' => 'ᔭ', 'jaa' => 'ᔮ',
+ 'v' => 'ᕝ', 'vi' => 'ᕕ', 'vii' => 'ᕖ', 'vu' => 'ᕗ', 'vuu' => 'ᕘ', 'va' => 'ᕙ', 'vaa' => 'ᕚ',
+ 'r' => 'ᕐ', 'ri' => 'ᕆ', 'rii' => 'ᕇ', 'ru' => 'ᕈ', 'ruu' => 'ᕉ', 'ra' => 'ᕋ', 'raa' => 'ᕌ',
+ 'qq' => 'ᖅᒃ', 'qqi' => 'ᖅᑭ', 'qqii' => 'ᖅᑮ', 'qqu' => 'ᖅᑯ', 'qquu' => 'ᖅᑰ', 'qqa' => 'ᖅᑲ', 'qqaa' => 'ᖅᑳ',
+ 'q' => 'ᖅ', 'qi' => 'ᕿ', 'qii' => 'ᖀ', 'qu' => 'ᖁ', 'quu' => 'ᖂ', 'qa' => 'ᖃ', 'qaa' => 'ᖄ',
+ 'ng' => 'ᖕ', 'ngi' => 'ᖏ', 'ngii' => 'ᖐ', 'ngu' => 'ᖑ', 'nguu' => 'ᖒ', 'nga' => 'ᖓ', 'ngaa' => 'ᖔ',
+ 'nng' => 'ᖖ', 'nngi' => 'ᙱ', 'nngii' => 'ᙲ', 'nngu' => 'ᙳ', 'nnguu' => 'ᙴ', 'nnga' => 'ᙵ', 'nngaa' => 'ᙶ',
+ 'ɫ' => 'ᖦ', 'ɫi' => 'ᖠ', 'ɫii' => 'ᖡ', 'ɫu' => 'ᖢ', 'ɫuu' => 'ᖣ', 'ɫa' => 'ᖤ', 'ɫaa' => 'ᖥ',
+ );
+
+ function loadDefaultTables() {
+ $this->mTables = array(
+ 'lowercase' => new ReplacementArray( $this->mUpperToLowerCaseLatin ),
+ 'ike-cans' => new ReplacementArray( $this->mToSyllabics ),
+ 'ike-latn' => new ReplacementArray( $this->mToLatin ),
+ 'iu' => new ReplacementArray()
+ );
+ }
+
+ /**
+ * rules should be defined as -{Syllabic | Latin-} -or-
+ * -{code:text | code:text | ...}-
+ * update: delete all rule parsing because it's not used
+ * currently, and just produces a couple of bugs
+ *
+ * @param $rule string
+ * @param $flags array
+ * @return array
+ */
+ function parseManualRule( $rule, $flags = array() ) {
+ if ( in_array( 'T', $flags ) ) {
+ return parent::parseManualRule( $rule, $flags );
+ }
+
+ $carray = array();
+ // otherwise ignore all formatting
+ foreach ( $this->mVariants as $v ) {
+ $carray[$v] = $rule;
+ }
+
+ return $carray;
+ }
+
+ /**
+ * Do not convert content on talk pages
+ *
+ * @param $text string
+ * @param $parser Parser
+ * @return string
+ */
+ function parserConvert( $text, &$parser ) {
+ if ( is_object( $parser->getTitle() ) && $parser->getTitle()->isTalkPage() )
+ $this->mDoContentConvert = false;
+ else
+ $this->mDoContentConvert = true;
+
+ return parent::parserConvert( $text, $parser );
+ }
+
+ /**
+ * A function wrapper:
+ * - if there is no selected variant, leave the link
+ * names as they were
+ * - do not try to find variants for usernames
+ *
+ * @param $link string
+ * @param $nt Title
+ * @param $ignoreOtherCond bool
+ */
+ function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) {
+ // check for user namespace
+ if ( is_object( $nt ) ) {
+ $ns = $nt->getNamespace();
+ if ( $ns == NS_USER || $ns == NS_USER_TALK )
+ return;
+ }
+
+ $oldlink = $link;
+ parent::findVariantLink( $link, $nt, $ignoreOtherCond );
+ 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
+ *
+ * @param $text string
+ * @param $noParse bool
+ *
+ * @return string
+ */
+ 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)
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
+ */
+ function autoConvert( $text, $toVariant = false ) {
+ global $wgTitle;
+ if ( is_object( $wgTitle ) && $wgTitle->getNameSpace() == NS_FILE ) {
+ $imagename = $wgTitle->getNsText();
+ if ( preg_match( "/^$imagename:/", $text ) ) return $text;
+ }
+ return parent::autoConvert( $text, $toVariant );
+ }
+
+ /**
+ * It translates text into variant
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
+ */
+ function translate( $text, $toVariant ) {
+ // If $text is empty or only includes spaces, do nothing
+ // Otherwise translate it
+ if ( trim( $text ) ) {
+ $this->loadTables();
+ // To syllabics, first translate uppercase to lowercase Latin
+ if($toVariant == 'ike-cans') {
+ $text = $this->mTables['lowercase']->replace( $text );
+ }
+ $text = $this->mTables[$toVariant]->replace( $text );
+ }
+ return $text;
+ }
+}
+
+/**
+ * Inuktitut
+ *
+ * @ingroup Language
+ */
+class LanguageIu extends Language {
+ function __construct() {
+ global $wgHooks;
+
+ parent::__construct();
+
+ $variants = array( 'iu', 'ike-cans', 'ike-latn' );
+ $variantfallbacks = array(
+ 'iu' => 'ike-cans',
+ 'ike-cans' => 'iu',
+ 'ike-latn' => 'iu',
+ );
+
+ $flags = array();
+ $this->mConverter = new IuConverter( $this, 'iu', $variants, $variantfallbacks, $flags );
+ $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
+ }
+}
diff --git a/languages/classes/LanguageJa.php b/languages/classes/LanguageJa.php
index c5a992d5..510a3976 100644
--- a/languages/classes/LanguageJa.php
+++ b/languages/classes/LanguageJa.php
@@ -6,6 +6,11 @@
* @ingroup Language
*/
class LanguageJa extends Language {
+
+ /**
+ * @param $string string
+ * @return string
+ */
function segmentByWord( $string ) {
// Strip known punctuation ?
// $s = preg_replace( '/\xe3\x80[\x80-\xbf]/', '', $s ); # U3000-303f
@@ -23,8 +28,13 @@ class LanguageJa extends Language {
return $s;
}
- # Italic is not appropriate for Japanese script
- # Unfortunately most browsers do not recognise this, and render <em> as italic
+ /**
+ * Italic is not appropriate for Japanese script
+ * Unfortunately most browsers do not recognise this, and render <em> as italic
+ *
+ * @param $text string
+ * @return string
+ */
function emphasize( $text ) {
return $text;
}
diff --git a/languages/classes/LanguageKaa.php b/languages/classes/LanguageKaa.php
index 4c6710ed..a40fb7ae 100644
--- a/languages/classes/LanguageKaa.php
+++ b/languages/classes/LanguageKaa.php
@@ -10,6 +10,11 @@ class LanguageKaa extends Language {
# Invoked with {{GRAMMAR:case|word}}
/**
* Cases: genitive, dative, accusative, locative, ablative, comitative + possessive forms
+ *
+ * @param $word string
+ * @param $case string
+ *
+ * @return string
*/
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
@@ -19,35 +24,43 @@ class LanguageKaa extends Language {
/* Full code of function convertGrammar() is in development. Updates coming soon. */
return $word;
}
- /*
+
+ /**
* It fixes issue with ucfirst for transforming 'i' to 'İ'
*
+ * @param $string string
+ *
+ * @return string
*/
function ucfirst ( $string ) {
- if ( $string[0] == 'i' ) {
- $string = 'İ' . substr( $string, 1 );
+ if ( substr( $string, 0, 1 ) === 'i' ) {
+ return 'İ' . substr( $string, 1 );
} else {
- $string = parent::ucfirst( $string );
+ return parent::ucfirst( $string );
}
- return $string;
-
}
- /*
+ /**
* It fixes issue with lcfirst for transforming 'I' to 'ı'
*
+ * @param $string string
+ *
+ * @return string
*/
function lcfirst ( $string ) {
- if ( $string[0] == 'I' ) {
- $string = 'ı' . substr( $string, 1 );
+ if ( substr( $string, 0, 1 ) === 'I' ) {
+ return 'ı' . substr( $string, 1 );
} else {
- $string = parent::lcfirst( $string );
+ return parent::lcfirst( $string );
}
- return $string;
}
/**
* Avoid grouping whole numbers between 0 to 9999
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
diff --git a/languages/classes/LanguageKk.php b/languages/classes/LanguageKk.php
index e3caacc8..953a3f97 100644
--- a/languages/classes/LanguageKk.php
+++ b/languages/classes/LanguageKk.php
@@ -18,6 +18,15 @@ define( 'H_HAMZA', 'ٴ' ); # U+0674 ARABIC LETTER HIGH HAMZA
*/
class KkConverter extends LanguageConverter {
+ protected $mCyrl2Latn, $mLatn2Cyrl, $mCyLa2Arab;
+
+ /**
+ * @param $langobj Language
+ * @param $maincode string
+ * @param $variants array
+ * @param $variantfallbacks array
+ * @param $flags array
+ */
function __construct( $langobj, $maincode,
$variants = array(),
$variantfallbacks = array(),
@@ -190,16 +199,23 @@ class KkConverter extends LanguageConverter {
);
}
- /* 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
- */
+ /**
+ * 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
+ *
+ * @param $rule string
+ * @param $flags array
+ * @return array
+ */
function parseManualRule( $rule, $flags = array() ) {
if ( in_array( 'T', $flags ) ) {
return parent::parseManualRule( $rule, $flags );
}
+ $carray = array();
// otherwise ignore all formatting
foreach ( $this->mVariants as $v ) {
$carray[$v] = $rule;
@@ -208,11 +224,15 @@ class KkConverter extends LanguageConverter {
return $carray;
}
- /*
+ /**
* A function wrapper:
* - if there is no selected variant, leave the link
* names as they were
* - do not try to find variants for usernames
+ *
+ * @param $link string
+ * @param $nt Title
+ * @param bool $ignoreOtherCond
*/
function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) {
// check for user namespace
@@ -228,9 +248,14 @@ class KkConverter extends LanguageConverter {
$link = $oldlink;
}
- /*
+ /**
* An ugly function wrapper for parsing Image titles
* (to prevent image name conversion)
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
*/
function autoConvert( $text, $toVariant = false ) {
global $wgTitle;
@@ -243,6 +268,11 @@ class KkConverter extends LanguageConverter {
/**
* It translates text into variant
+ *
+ * @param $text string
+ * @param $toVariant string
+ *
+ * @return string
*/
function translate( $text, $toVariant ) {
global $wgLanguageCode;
@@ -282,6 +312,11 @@ class KkConverter extends LanguageConverter {
return $ret;
}
+ /**
+ * @param $text string
+ * @param $toVariant string
+ * @return mixed|string
+ */
function regsConverter( $text, $toVariant ) {
if ( $text == '' ) {
return $text;
@@ -334,9 +369,14 @@ class KkConverter extends LanguageConverter {
}
}
- /*
+ /**
* We want our external link captions to be converted in variants,
* so we return the original text instead -{$text}-, except for URLs
+ *
+ * @param $text string
+ * @param $noParse string|bool
+ *
+ * @return string
*/
function markNoConversion( $text, $noParse = false ) {
if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) )
@@ -344,6 +384,10 @@ class KkConverter extends LanguageConverter {
return $text;
}
+ /**
+ * @param $key string
+ * @return String
+ */
function convertCategoryKey( $key ) {
return $this->autoConvert( $key, 'kk' );
}
@@ -392,9 +436,12 @@ class LanguageKk extends LanguageKk_cyrl {
}
}
- /*
+ /**
* It fixes issue with ucfirst for transforming 'i' to 'İ'
*
+ * @param $string string
+ *
+ * @return string
*/
function ucfirst ( $string ) {
$variant = $this->getPreferredVariant();
@@ -406,9 +453,12 @@ class LanguageKk extends LanguageKk_cyrl {
return $string;
}
- /*
+ /**
* It fixes issue with lcfirst for transforming 'I' to 'ı'
*
+ * @param $string string
+ *
+ * @return string
*/
function lcfirst ( $string ) {
$variant = $this->getPreferredVariant();
@@ -420,6 +470,11 @@ class LanguageKk extends LanguageKk_cyrl {
return $string;
}
+ /**
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
wfProfileIn( __METHOD__ );
diff --git a/languages/classes/LanguageKk_cyrl.php b/languages/classes/LanguageKk_cyrl.php
index 78febae1..ba84bf93 100644
--- a/languages/classes/LanguageKk_cyrl.php
+++ b/languages/classes/LanguageKk_cyrl.php
@@ -10,8 +10,12 @@ class LanguageKk_cyrl extends Language {
# Invoked with {{GRAMMAR:case|word}}
/**
* Cases: genitive, dative, accusative, locative, ablative, comitative + possessive forms
+ *
+ * @param $word string
+ * @param $case stirng
+ *
+ * @return string
*/
-
function convertGrammarKk_cyrl( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['kk-kz'][$case][$word] ) ) {
@@ -232,6 +236,11 @@ class LanguageKk_cyrl extends Language {
return $word;
}
+ /**
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammarKk_latn( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['kk-tr'][$case][$word] ) ) {
@@ -452,6 +461,11 @@ class LanguageKk_cyrl extends Language {
return $word;
}
+ /**
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammarKk_arab( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['kk-cn'][$case][$word] ) ) {
@@ -672,6 +686,11 @@ class LanguageKk_cyrl extends Language {
return $word;
}
+ /**
+ * @param $word string
+ * @param $allVowels array
+ * @return array
+ */
function lastLetter( $word, $allVowels ) {
$lastLetter = array();
@@ -708,6 +727,10 @@ class LanguageKk_cyrl extends Language {
/**
* Avoid grouping whole numbers between 0 to 9999
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
diff --git a/languages/classes/LanguageKm.php b/languages/classes/LanguageKm.php
index 128152f7..105e6ed3 100644
--- a/languages/classes/LanguageKm.php
+++ b/languages/classes/LanguageKm.php
@@ -6,6 +6,11 @@
* @author Niklas Laxström
*/
class LanguageKm extends Language {
+
+ /**
+ * @param $_ string
+ * @return string
+ */
function commafy( $_ ) {
/* NO-op for Khmer. Cannot use
* $separatorTransformTable = array( ',' => '' )
diff --git a/languages/classes/LanguageKsh.php b/languages/classes/LanguageKsh.php
index 6d70b896..dc37656c 100644
--- a/languages/classes/LanguageKsh.php
+++ b/languages/classes/LanguageKsh.php
@@ -20,6 +20,7 @@ class LanguageKsh extends Language {
'wikia' => 'f',
'translatewiki.net' => 'n',
);
+
/**
* Convert from the nominative form of a noun to other cases.
* Invoked with {{GRAMMAR:case|word}} inside messages.
@@ -39,7 +40,7 @@ class LanguageKsh extends Language {
* Betoont focussed or stressed article
* -omitted- unstressed or unfocussed article
*
- * Possible values for for the type of genitive are:
+ * Possible values for the type of genitive are:
* Sing, Iehr prepositioned genitive = possessive dative
* Vun, Fon, -omitted- postpositioned genitive
* = preposition "vun" with dative
@@ -61,114 +62,94 @@ class LanguageKsh extends Language {
* Contents of the leftmost table column can be copied and pasted as
* "case" values.
*
+ * @param $word String
+ * @param $case String
+ *
+ * @return string
*/
- function convertGrammar( $word, $case )
- {
- $lord = strtolower($word);
+ function convertGrammar( $word, $case ) {
+ $lord = strtolower( $word );
$gender = 'm'; // Nuutnaarel // default
- if ( preg_match ( '/wiki$/', $lord ) )
- {
+ if ( preg_match ( '/wiki$/', $lord ) ) {
$gender = 'n'; // Dat xyz-wiki
}
- if ( isset( self::$familygender[$lord] ) )
- {
- $gender = (self::$familygender[$lord]);
+ if ( isset( self::$familygender[$lord] ) ) {
+ $gender = self::$familygender[$lord];
}
- $case = (' '.strtolower($case));
- if ( preg_match( '/ [is]/', $case ) )
- {
+ $case = ' ' . strtolower( $case );
+ if ( preg_match( '/ [is]/', $case ) ) {
# däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe
# dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe
# däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing
# dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing
$word = ( preg_match( '/ b/', $case )
- ? ($gender=='f'
- ? 'dä'
- : 'däm'
- )
- : ($gender=='f'
- ? 'de'
- : 'dem'
- )
- ).
- ' '.$word.' '.
- ( $gender=='f'
- ? 'ier'
- : 'sing'
- ).
- ( preg_match( '/ m/', $case )
- ? 'e'
- : ''
+ ? ( $gender=='f' ? 'dä' : 'däm' )
+ : ( $gender=='f' ? 'de' : 'dem' )
+ ) . ' ' . $word . ' ' .
+ ( $gender=='f' ? 'ier' : 'sing' ) .
+ ( preg_match( '/ m/', $case ) ? 'e' : ''
);
- }
- elseif ( preg_match( '/ e/', $case ) )
- {
+ } elseif ( preg_match( '/ e/', $case ) ) {
# en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch
# em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch
- if ( preg_match( '/ b/', $case ) )
- {
- $word = ('en '.($gender=='f'?'dä':'däm').' '.$word);
- }
- else
- {
- $word = (($gender=='f'?'en de':'em').' '.$word);
+ if ( preg_match( '/ b/', $case ) ) {
+ $word = 'en '.( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word;
+ } else {
+ $word = ( $gender == 'f' ? 'en de' : 'em' ) . ' ' . $word;
}
- }
- elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) )
- {
+ } elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) ) {
# vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch
# vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch
- if ( preg_match( '/ b/', $case ) )
- {
- $word = ('vun '.($gender=='f'?'dä':'däm').' '.$word);
- }
- else
- {
- $word = (($gender=='f'?'vun de':'vum').' '.$word);
+ if ( preg_match( '/ b/', $case ) ) {
+ $word = 'vun ' . ( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word;
+ } else {
+ $word = ( $gender== 'f' ? 'vun de' : 'vum' ) . ' ' . $word;
}
- }
- elseif ( preg_match( '/ [3d]/', $case ) )
- {
+ } elseif ( preg_match( '/ [3d]/', $case ) ) {
# dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch
# dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch
- if ( preg_match( '/ b/', $case ) )
- {
- $word = (($gender=='f'?'dää':'dämm').' '.$word);
- }
- else
- {
- $word = (($gender=='f'?'de':'dem').' '.$word);
+ if ( preg_match( '/ b/', $case ) ) {
+ $word = ( $gender == 'f' ? 'dää' : 'dämm' ) .' ' . $word;
+ } else {
+ $word = ( $gender == 'f' ? 'de' : 'dem' ) . ' ' . $word;
}
- }
- else
- {
+ } else {
# dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch
# der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch
- if ( preg_match( '/ b/', $case ) )
- {
- switch ( $gender )
- {
- case 'm' : $lord = 'dä' ; break ;
- case 'f' : $lord = 'di' ; break ;
- default : $lord = 'dat' ; break ;
+ if ( preg_match( '/ b/', $case ) ) {
+ switch ( $gender ) {
+ case 'm':
+ $lord = 'dä';
+ break ;
+ case 'f':
+ $lord = 'di';
+ break;
+ default:
+ $lord = 'dat';
}
- }
- else
- {
- switch ( $gender )
- {
- case 'm' : $lord = 'der' ; break ;
- case 'f' : $lord = 'de' ; break ;
- default : $lord = 'et' ; break ;
+ } else {
+ switch ( $gender ) {
+ case 'm':
+ $lord = 'der';
+ break;
+ case 'f':
+ $lord = 'de';
+ break;
+ default:
+ $lord = 'et';
}
}
- $word = ($lord.' '.$word);
+ $word = $lord.' '.$word;
}
- return($word);
+ return $word;
}
/**
* Avoid grouping whole numbers between 0 to 9999
+ *
+ * @param $_ string
+ *
+ * @return string
*/
public function commafy( $_ ) {
if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
@@ -180,6 +161,11 @@ class LanguageKsh extends Language {
/**
* Handle cases of (1, other, 0) or (1, other)
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageKu.php b/languages/classes/LanguageKu.php
index 1cc4f017..92bca095 100644
--- a/languages/classes/LanguageKu.php
+++ b/languages/classes/LanguageKu.php
@@ -132,11 +132,15 @@ class KuConverter extends LanguageConverter {
);
}
- /*
+ /**
* A function wrapper:
* - if there is no selected variant, leave the link
* names as they were
* - do not try to find variants for usernames
+ *
+ * @param $link string
+ * @param $nt Title
+ * @param $ignoreOtherCond bool
*/
function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) {
// check for user namespace
@@ -152,9 +156,14 @@ class KuConverter extends LanguageConverter {
$link = $oldlink;
}
- /*
+ /**
* We want our external link captions to be converted in variants,
* so we return the original text instead -{$text}-, except for URLs
+ *
+ * @param $text string
+ * @param $noParse bool
+ *
+ * @return string
*/
function markNoConversion( $text, $noParse = false ) {
if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) )
@@ -162,9 +171,14 @@ class KuConverter extends LanguageConverter {
return $text;
}
- /*
+ /**
* An ugly function wrapper for parsing Image titles
* (to prevent image name conversion)
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
*/
function autoConvert( $text, $toVariant = false ) {
global $wgTitle;
@@ -178,6 +192,11 @@ class KuConverter extends LanguageConverter {
/**
* It translates text into variant, specials:
* - ommiting roman numbers
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
*/
function translate( $text, $toVariant ) {
/* From Kazakh interface, maybe we need it later
diff --git a/languages/classes/LanguageKu_ku.php b/languages/classes/LanguageKu_ku.php
index a9ec64e6..e4332928 100644
--- a/languages/classes/LanguageKu_ku.php
+++ b/languages/classes/LanguageKu_ku.php
@@ -8,6 +8,10 @@ class LanguageKu_ku extends Language {
/**
* Avoid grouping whole numbers between 0 to 9999
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
diff --git a/languages/classes/LanguageLa.php b/languages/classes/LanguageLa.php
index 81fc30cf..657ac6e4 100644
--- a/languages/classes/LanguageLa.php
+++ b/languages/classes/LanguageLa.php
@@ -12,6 +12,11 @@ class LanguageLa extends Language {
* Rules are far from complete.
*
* Cases: genitive, accusative, ablative
+ *
+ * @param $word string
+ * @param $case string
+ *
+ * @return string
*/
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
diff --git a/languages/classes/LanguageLn.php b/languages/classes/LanguageLn.php
index 11d276d8..b96cf619 100644
--- a/languages/classes/LanguageLn.php
+++ b/languages/classes/LanguageLn.php
@@ -8,7 +8,11 @@ class LanguageLn extends Language {
/**
* Use singular form for zero
* http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ln
-
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageLt.php b/languages/classes/LanguageLt.php
index 4291e797..09cacae0 100644
--- a/languages/classes/LanguageLt.php
+++ b/languages/classes/LanguageLt.php
@@ -10,6 +10,13 @@ class LanguageLt extends Language {
2 - trys (3) lapai
3 - penkiolika (15) lapų
*/
+
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageLv.php b/languages/classes/LanguageLv.php
index fea2d21f..8a78303c 100644
--- a/languages/classes/LanguageLv.php
+++ b/languages/classes/LanguageLv.php
@@ -22,7 +22,7 @@ class LanguageLv extends Language {
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
- // FIXME: CLDR defines 3 plural forms instead of 2. Form for 0 is missing.
+ // @todo FIXME: CLDR defines 3 plural forms instead of 2. Form for 0 is missing.
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#lv
$forms = $this->preConvertPlural( $forms, 2 );
diff --git a/languages/classes/LanguageMg.php b/languages/classes/LanguageMg.php
index 54ef408f..111dda35 100644
--- a/languages/classes/LanguageMg.php
+++ b/languages/classes/LanguageMg.php
@@ -7,6 +7,11 @@
class LanguageMg extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageMk.php b/languages/classes/LanguageMk.php
index 9dc8a560..4ae7f412 100644
--- a/languages/classes/LanguageMk.php
+++ b/languages/classes/LanguageMk.php
@@ -8,6 +8,11 @@ class LanguageMk extends Language {
/**
* Plural forms per
* http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#mk
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageMl.php b/languages/classes/LanguageMl.php
index 3cd30eb2..aeca3621 100644
--- a/languages/classes/LanguageMl.php
+++ b/languages/classes/LanguageMl.php
@@ -13,8 +13,12 @@ class LanguageMl extends Language {
* bug 9413. Also fixes miscellaneous problems due to mishandling of ZWJ,
* e.g. bug 11162.
*
- * FIXME: This is language-specific for now only to avoid the negative
+ * @todo FIXME: This is language-specific for now only to avoid the negative
* performance impact of enabling it for all languages.
+ *
+ * @param $s string
+ *
+ * @return string
*/
function normalize( $s ) {
global $wgFixMalayalamUnicode;
diff --git a/languages/classes/LanguageMo.php b/languages/classes/LanguageMo.php
index beeb04f8..5d78a502 100644
--- a/languages/classes/LanguageMo.php
+++ b/languages/classes/LanguageMo.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageMo extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
// Plural rules per
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#mo
diff --git a/languages/classes/LanguageMt.php b/languages/classes/LanguageMt.php
index fb271bf6..ef143da5 100644
--- a/languages/classes/LanguageMt.php
+++ b/languages/classes/LanguageMt.php
@@ -8,6 +8,12 @@
*/
class LanguageMt extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageMy.php b/languages/classes/LanguageMy.php
index 4fa5b05e..b12e4585 100644
--- a/languages/classes/LanguageMy.php
+++ b/languages/classes/LanguageMy.php
@@ -7,6 +7,11 @@
* @author Niklas Laxström, 2008
*/
class LanguageMy extends Language {
+
+ /**
+ * @param $_ string
+ * @return string
+ */
function commafy( $_ ) {
/* NO-op. Cannot use
* $separatorTransformTable = array( ',' => '' )
diff --git a/languages/classes/LanguageNso.php b/languages/classes/LanguageNso.php
index 9ff89039..40263320 100644
--- a/languages/classes/LanguageNso.php
+++ b/languages/classes/LanguageNso.php
@@ -7,6 +7,11 @@
class LanguageNso extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageOs.php b/languages/classes/LanguageOs.php
new file mode 100644
index 00000000..f3b5d8a4
--- /dev/null
+++ b/languages/classes/LanguageOs.php
@@ -0,0 +1,87 @@
+<?php
+
+/** Ossetian (Ирон)
+ *
+ * @author Soslan Khubulov
+ *
+ * @ingroup Language
+ */
+class LanguageOs extends Language {
+
+ /**
+ * Convert from the nominative form of a noun to other cases
+ * Invoked with {{grammar:case|word}}
+ *
+ * Depending on word there are four different ways of converting to other cases.
+ * 1) Word consist of not cyrillic letters or is an abbreviation.
+ * Then result word is: word + hyphen + case ending.
+ *
+ * 2) Word consist of cyrillic letters.
+ * 2.1) Word is in plural.
+ * Then result word is: word - last letter + case ending. Ending of allative case here is 'æм'.
+ *
+ * 2.2) Word is in singular.
+ * 2.2.1) Word ends on consonant.
+ * Then result word is: word + case ending.
+ *
+ * 2.2.2) Word ends on vowel.
+ * Then result word is: word + 'й' + case ending for cases != allative or comitative
+ * and word + case ending for allative or comitative. Ending of allative case here is 'æ'.
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset( $wgGrammarForms['os'][$case][$word] ) ) {
+ return $wgGrammarForms['os'][$case][$word];
+ }
+ # Ending for allative case
+ $end_allative = 'мæ';
+ # Variable for 'j' beetwen vowels
+ $jot = '';
+ # Variable for "-" for not Ossetic words
+ $hyphen = '';
+ # Variable for ending
+ $ending = '';
+
+
+ # CHecking if the $word is in plural form
+ if ( preg_match( '/тæ$/u', $word ) ) {
+ $word = mb_substr( $word, 0, -1 );
+ $end_allative = 'æм';
+ }
+ # Works if $word is in singular form.
+ # Checking if $word ends on one of the vowels: е, ё, и, о, ы, э, ю, я.
+ elseif ( preg_match( "/[аæеёиоыэюя]$/u", $word ) ) {
+ $jot = 'й';
+ }
+ # Checking if $word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic.
+ # Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы.
+ elseif ( preg_match( "/у$/u", $word ) ) {
+ if ( !preg_match( "/[аæеёиоыэюя]$/u", mb_substr( $word, -2, 1 ) ) )
+ $jot = 'й';
+ } elseif ( !preg_match( "/[бвгджзйклмнопрстфхцчшщьъ]$/u", $word ) ) {
+ $hyphen = '-';
+ }
+
+ switch ( $case ) {
+ case 'genitive': $ending = $hyphen . $jot . 'ы'; break;
+ case 'dative': $ending = $hyphen . $jot . 'æн'; break;
+ case 'allative': $ending = $hyphen . $end_allative; break;
+ case 'ablative':
+ if ( $jot == 'й' ) {
+ $ending = $hyphen . $jot . 'æ'; break;
+ }
+ else {
+ $ending = $hyphen . $jot . 'æй'; break;
+ }
+ case 'inessive': break;
+ case 'superessive': $ending = $hyphen . $jot . 'ыл'; break;
+ case 'equative': $ending = $hyphen . $jot . 'ау'; break;
+ case 'comitative': $ending = $hyphen . 'имæ'; break;
+ }
+ return $word . $ending;
+ }
+}
diff --git a/languages/classes/LanguagePl.php b/languages/classes/LanguagePl.php
index 40477f42..59c8d5c2 100644
--- a/languages/classes/LanguagePl.php
+++ b/languages/classes/LanguagePl.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguagePl extends Language {
+
+ /**
+ * @param $count string
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
@@ -22,6 +28,10 @@ class LanguagePl extends Language {
}
}
+ /**
+ * @param $_ string
+ * @return string
+ */
function commafy( $_ ) {
if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) {
return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
diff --git a/languages/classes/LanguageQqx.php b/languages/classes/LanguageQqx.php
new file mode 100644
index 00000000..88d38f59
--- /dev/null
+++ b/languages/classes/LanguageQqx.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * For all translated messages, this returns the name of the message bracketed.
+ * This does not affect untranslated messages.
+ *
+ * NOTE: It returns a valid title, because there are some poorly written
+ * extentions that assume the contents of some messages are valid.
+ *
+ * @ingroup Language
+ */
+class LanguageQqx extends Language {
+ function getMessage( $key ) {
+ return "($key)";
+ }
+}
diff --git a/languages/classes/LanguageRo.php b/languages/classes/LanguageRo.php
index 89edce11..9cfd8b57 100644
--- a/languages/classes/LanguageRo.php
+++ b/languages/classes/LanguageRo.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageRo extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
// Plural rules per
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ro
diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php
index 8f027048..e16761ad 100644
--- a/languages/classes/LanguageRu.php
+++ b/languages/classes/LanguageRu.php
@@ -7,8 +7,15 @@
* @ingroup Language
*/
class LanguageRu extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{grammar:case|word}}
+
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['ru'][$case][$word] ) ) {
@@ -67,16 +74,18 @@ class LanguageRu extends Language {
* "Сделано $1 {{PLURAL:$1|изменение|изменения|изменений}}"
* message without number
* "Действие не может быть выполнено по {{PLURAL:$1|следующей причине|следующим причинам}}:"
+ * @param $count int
+ * @param $forms array
*
+ * @return string
*/
-
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
// if no number with word, then use $form[0] for singular and $form[1] for plural or zero
if ( count( $forms ) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
- // FIXME: CLDR defines 4 plural forms. Form with decimals missing.
+ // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing.
// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ru
$forms = $this->preConvertPlural( $forms, 3 );
@@ -93,10 +102,14 @@ class LanguageRu extends Language {
}
}
- /*
+ /**
* Four-digit number should be without group commas (spaces)
* See manual of style at http://ru.wikipedia.org/wiki/Википедия:Оформление_статей
* So "1 234 567", "12 345" but "1234"
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( preg_match( '/^-?\d{1,4}(\.\d*)?$/', $_ ) ) {
diff --git a/languages/classes/LanguageSe.php b/languages/classes/LanguageSe.php
index 3011bc7f..a66957f0 100644
--- a/languages/classes/LanguageSe.php
+++ b/languages/classes/LanguageSe.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageSe extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageBat_smg.php b/languages/classes/LanguageSgs.php
index 5b6c92a6..8c10182d 100644
--- a/languages/classes/LanguageBat_smg.php
+++ b/languages/classes/LanguageSgs.php
@@ -5,8 +5,13 @@
*
* @author Niklas Laxström
*/
-class LanguageBat_smg extends Language {
+class LanguageSgs extends Language {
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 4 );
diff --git a/languages/classes/LanguageSh.php b/languages/classes/LanguageSh.php
index e62d7ba3..139ad0b6 100644
--- a/languages/classes/LanguageSh.php
+++ b/languages/classes/LanguageSh.php
@@ -5,13 +5,19 @@
* @ingroup Language
*/
class LanguageSh extends Language {
+
+ /**
+ * @param $count string
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
// if no number with word, then use $form[0] for singular and $form[1] for plural or zero
if ( count( $forms ) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
- // FIXME: CLDR defines 4 plural forms. Form with decimals missing.
+ // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing.
// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#sh
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageSk.php b/languages/classes/LanguageSk.php
index ea74d1ba..eac25f4f 100644
--- a/languages/classes/LanguageSk.php
+++ b/languages/classes/LanguageSk.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageSk extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageSl.php b/languages/classes/LanguageSl.php
index 09138ea5..3e2ca90e 100644
--- a/languages/classes/LanguageSl.php
+++ b/languages/classes/LanguageSl.php
@@ -9,6 +9,11 @@ class LanguageSl extends Language {
# Invoked with {{GRAMMAR:case|word}}
/**
* Cases: rodilnik, dajalnik, tožilnik, mestnik, orodnik
+ *
+ * @param $word string
+ * @param $case string
+ *
+ * @return string
*/
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
@@ -26,6 +31,12 @@ class LanguageSl extends Language {
return $word; # this will return the original value for 'imenovalnik' (nominativ) and all undefined case values
}
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 5 );
diff --git a/languages/classes/LanguageSma.php b/languages/classes/LanguageSma.php
index a04c77da..72ca98a1 100644
--- a/languages/classes/LanguageSma.php
+++ b/languages/classes/LanguageSma.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageSma extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
@@ -12,11 +18,11 @@ class LanguageSma extends Language {
$forms = $this->preConvertPlural( $forms, 3 );
if ( $count == 1 ) {
- $index = 1;
+ $index = 0;
} elseif ( $count == 2 ) {
- $index = 2;
+ $index = 1;
} else {
- $index = 3;
+ $index = 2;
}
return $forms[$index];
}
diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php
index 35c90102..b26a2543 100644
--- a/languages/classes/LanguageSr.php
+++ b/languages/classes/LanguageSr.php
@@ -58,16 +58,23 @@ class SrConverter extends LanguageConverter {
);
}
- /* 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
- */
+ /**
+ * 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
+ *
+ * @param $rule string
+ * @param $flags array
+ * @return array
+ */
function parseManualRule( $rule, $flags = array() ) {
if ( in_array( 'T', $flags ) ) {
return parent::parseManualRule( $rule, $flags );
}
+ $carray = array();
// otherwise ignore all formatting
foreach ( $this->mVariants as $v ) {
$carray[$v] = $rule;
@@ -76,11 +83,15 @@ class SrConverter extends LanguageConverter {
return $carray;
}
- /*
+ /**
* A function wrapper:
* - if there is no selected variant, leave the link
* names as they were
* - do not try to find variants for usernames
+ *
+ * @param $link string
+ * @param $nt Title
+ * @param $ignoreOtherCond bool
*/
function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) {
// check for user namespace
@@ -96,9 +107,14 @@ class SrConverter extends LanguageConverter {
$link = $oldlink;
}
- /*
+ /**
* We want our external link captions to be converted in variants,
* so we return the original text instead -{$text}-, except for URLs
+ *
+ * @param $text string
+ * @param $noParse bool
+ *
+ * @return string
*/
function markNoConversion( $text, $noParse = false ) {
if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) )
@@ -106,9 +122,14 @@ class SrConverter extends LanguageConverter {
return $text;
}
- /*
+ /**
* An ugly function wrapper for parsing Image titles
* (to prevent image name conversion)
+ *
+ * @param $text string
+ * @param $toVariant bool
+ *
+ * @return string
*/
function autoConvert( $text, $toVariant = false ) {
global $wgTitle;
@@ -122,6 +143,11 @@ class SrConverter extends LanguageConverter {
/**
* It translates text into variant, specials:
* - ommiting roman numbers
+ *
+ * @param $text string
+ * @param $toVariant string
+ *
+ * @return string
*/
function translate( $text, $toVariant ) {
$breaks = '[^\w\x80-\xff]';
@@ -175,13 +201,23 @@ class LanguageSr extends LanguageSr_ec {
$wgHooks['ArticleSaveComplete'][] = $this->mConverter;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
- if ( !count( $forms ) ) { return ''; }
+ if ( !count( $forms ) ) {
+ return '';
+ }
// if no number with word, then use $form[0] for singular and $form[1] for plural or zero
- if ( count( $forms ) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
+ if ( count( $forms ) === 2 ) {
+ return $count == 1 ? $forms[0] : $forms[1];
+ }
- // FIXME: CLDR defines 4 plural forms. Form with decimals missing.
+ // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing.
// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ru
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageSr_ec.php b/languages/classes/LanguageSr_ec.php
index ed447e5e..572a5f3b 100644
--- a/languages/classes/LanguageSr_ec.php
+++ b/languages/classes/LanguageSr_ec.php
@@ -6,6 +6,12 @@
* @ingroup Language
*/
class LanguageSr_ec extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageSr_el.php b/languages/classes/LanguageSr_el.php
index d43772af..3a1f6a6d 100644
--- a/languages/classes/LanguageSr_el.php
+++ b/languages/classes/LanguageSr_el.php
@@ -6,6 +6,12 @@
* @ingroup Language
*/
class LanguageSr_el extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
diff --git a/languages/classes/LanguageTi.php b/languages/classes/LanguageTi.php
index e37116b1..46a776bf 100644
--- a/languages/classes/LanguageTi.php
+++ b/languages/classes/LanguageTi.php
@@ -7,6 +7,11 @@
class LanguageTi extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageTl.php b/languages/classes/LanguageTl.php
index 4495ddcc..f976bed1 100644
--- a/languages/classes/LanguageTl.php
+++ b/languages/classes/LanguageTl.php
@@ -7,6 +7,11 @@
class LanguageTl extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
diff --git a/languages/classes/LanguageTr.php b/languages/classes/LanguageTr.php
index 245b5b06..cbc1b7e4 100644
--- a/languages/classes/LanguageTr.php
+++ b/languages/classes/LanguageTr.php
@@ -3,9 +3,19 @@
/**
* Turkish (Türkçe)
*
+ * Turkish has two different i, one with a dot and another without a dot. They
+ * are totally different letters in this language, so we have to override the
+ * ucfirst and lcfirst methods.
+ * See http://en.wikipedia.org/wiki/Dotted_and_dotless_I
+ * and @bug 28040
* @ingroup Language
*/
class LanguageTr extends Language {
+
+ /**
+ * @param $string string
+ * @return string
+ */
function ucfirst ( $string ) {
if ( !empty( $string ) && $string[0] == 'i' ) {
return 'İ' . substr( $string, 1 );
@@ -13,4 +23,17 @@ class LanguageTr extends Language {
return parent::ucfirst( $string );
}
}
+
+ /**
+ * @param $string string
+ * @return mixed|string
+ */
+ function lcfirst ( $string ) {
+ if ( !empty( $string ) && $string[0] == 'I' ) {
+ return 'ı' . substr( $string, 1 );
+ } else {
+ return parent::lcfirst( $string );
+ }
+ }
+
}
diff --git a/languages/classes/LanguageTyv.php b/languages/classes/LanguageTyv.php
index 9e5b6453..8bca11b2 100644
--- a/languages/classes/LanguageTyv.php
+++ b/languages/classes/LanguageTyv.php
@@ -28,7 +28,7 @@ class LanguageTyv extends Language {
$roundFrontVowels = array( "ө", "ү", "ö", "ü" );
$unroundBackVowels = array( "а", "ы", "я", "a", "y" );
$roundBackVowels = array( "ё", "о", "у", "ю", "o", "u" );
- $voicedPhonemes = array( "д", "б", "з", "ж", "г", "d", "b", "z", "g" );
+ //$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" );
diff --git a/languages/classes/LanguageUk.php b/languages/classes/LanguageUk.php
index 6c0cf8da..206c5aa3 100644
--- a/languages/classes/LanguageUk.php
+++ b/languages/classes/LanguageUk.php
@@ -5,8 +5,15 @@
* @ingroup Language
*/
class LanguageUk extends Language {
- # Convert from the nominative form of a noun to some other case
- # Invoked with {{grammar:case|word}}
+
+ /**
+ * Convert from the nominative form of a noun to some other case
+ * Invoked with {{grammar:case|word}}
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
if ( isset( $wgGrammarForms['uk'][$case][$word] ) ) {
@@ -56,13 +63,18 @@ class LanguageUk extends Language {
return $word;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
// if no number with word, then use $form[0] for singular and $form[1] for plural or zero
if ( count( $forms ) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
- // FIXME: CLDR defines 4 plural forms. Form for decimals is missing/
+ // @todo FIXME: CLDR defines 4 plural forms. Form for decimals is missing/
// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#uk
$forms = $this->preConvertPlural( $forms, 3 );
@@ -79,8 +91,12 @@ class LanguageUk extends Language {
}
}
- /*
+ /**
* Ukrainian numeric format is "12 345,67" but "1234,56"
+ *
+ * @param $_ string
+ *
+ * @return string
*/
function commafy( $_ ) {
if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) {
diff --git a/languages/classes/LanguageWa.php b/languages/classes/LanguageWa.php
index 0cb439d0..4a186638 100644
--- a/languages/classes/LanguageWa.php
+++ b/languages/classes/LanguageWa.php
@@ -11,6 +11,11 @@
class LanguageWa extends Language {
/**
* Use singular form for zero
+ *
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
*/
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
@@ -19,11 +24,17 @@ class LanguageWa extends Language {
return ( $count <= 1 ) ? $forms[0] : $forms[1];
}
- ## #
- ## # 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
- ## #
+ /**
+ * 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
+ *
+ * @param $ts string
+ * @param $adj bool
+ * @param $format bool
+ * @param $tc bool
+ * @return string
+ */
function date( $ts, $adj = false, $format = true, $tc = false ) {
$ts = wfTimestamp( TS_MW, $ts );
if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); }
@@ -51,10 +62,10 @@ class LanguageWa extends Language {
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 ) {
+ } elseif ( $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 ) {
+ } elseif ( $m == 4 || $m == 8 || $m == 10 ) {
$d = ( 0 + $n ) . " d' " . $this->getMonthName( $m ) .
" " . substr( $ts, 0, 4 );
} else {
@@ -64,6 +75,13 @@ class LanguageWa extends Language {
return $d;
}
+ /**
+ * @param $ts string
+ * @param $adj bool
+ * @param $format bool
+ * @param $tc bool
+ * @return string
+ */
function timeanddate( $ts, $adj = false, $format = true, $tc = false ) {
if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); }
$datePreference = $this->dateFormat( $format );
diff --git a/languages/classes/LanguageYue.php b/languages/classes/LanguageYue.php
index aff3d29e..5492529e 100644
--- a/languages/classes/LanguageYue.php
+++ b/languages/classes/LanguageYue.php
@@ -5,6 +5,10 @@
* @ingroup Language
*/
class LanguageYue extends Language {
+
+ /**
+ * @return bool
+ */
function hasWordBreaks() {
return false;
}
@@ -12,7 +16,10 @@ class LanguageYue extends Language {
/**
* Eventually this should be a word segmentation;
* for now just treat each character as a word.
- * @todo Fixme: only do this for Han characters...
+ * @todo FIXME: Only do this for Han characters...
+ *
+ * @param $string string
+ * @return string
*/
function segmentByWord( $string ) {
$reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/";
@@ -20,6 +27,10 @@ class LanguageYue extends Language {
return $s;
}
+ /**
+ * @param $string
+ * @return string
+ */
function normalizeForSearch( $string ) {
wfProfileIn( __METHOD__ );
diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php
index 0055a33b..d69929de 100644
--- a/languages/classes/LanguageZh.php
+++ b/languages/classes/LanguageZh.php
@@ -8,6 +8,14 @@ require_once( dirname( __FILE__ ) . '/LanguageZh_hans.php' );
*/
class ZhConverter extends LanguageConverter {
+ /**
+ * @param $langobj Language
+ * @param $maincode string
+ * @param $variants array
+ * @param $variantfallbacks array
+ * @param $flags array
+ * @param $manualLevel array
+ */
function __construct( $langobj, $maincode,
$variants = array(),
$variantfallbacks = array(),
@@ -58,14 +66,24 @@ class ZhConverter extends LanguageConverter {
$this->mTables['zh-tw']->merge( $this->mTables['zh-hant'] );
}
- /* there shouldn't be any latin text in Chinese conversion, so no need
- to mark anything.
- $noParse is there for compatibility with LanguageConvert::markNoConversion
+ /**
+ * there shouldn't be any latin text in Chinese conversion, so no need
+ * to mark anything.
+ * $noParse is there for compatibility with LanguageConvert::markNoConversion
+ *
+ * @param $text string
+ * @param $noParse bool
+ *
+ * @return string
*/
function markNoConversion( $text, $noParse = false ) {
return $text;
}
+ /**
+ * @param $key string
+ * @return String
+ */
function convertCategoryKey( $key ) {
return $this->autoConvert( $key, 'zh' );
}
@@ -110,13 +128,22 @@ class LanguageZh extends LanguageZh_hans {
$wgHooks['ArticleSaveComplete'][] = $this->mConverter;
}
- # this should give much better diff info
+ /**
+ * this should give much better diff info
+ *
+ * @param $text string
+ * @return string
+ */
function segmentForDiff( $text ) {
return preg_replace(
"/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
"' ' .\"$1\"", $text );
}
+ /**
+ * @param $text string
+ * @return string
+ */
function unsegmentForDiff( $text ) {
return preg_replace(
"/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
@@ -145,6 +172,10 @@ class LanguageZh extends LanguageZh_hans {
}
+ /**
+ * @param $termsArray array
+ * @return array
+ */
function convertForSearchResult( $termsArray ) {
$terms = implode( '|', $termsArray );
$terms = self::convertDoubleWidth( $terms );
diff --git a/languages/classes/LanguageZh_hans.php b/languages/classes/LanguageZh_hans.php
index a65162bc..671a16e7 100644
--- a/languages/classes/LanguageZh_hans.php
+++ b/languages/classes/LanguageZh_hans.php
@@ -6,6 +6,10 @@
* @ingroup Language
*/
class LanguageZh_hans extends Language {
+
+ /**
+ * @return bool
+ */
function hasWordBreaks() {
return false;
}
@@ -13,7 +17,11 @@ class LanguageZh_hans extends Language {
/**
* Eventually this should be a word segmentation;
* for now just treat each character as a word.
- * @todo Fixme: only do this for Han characters...
+ * @todo FIXME: Only do this for Han characters...
+ *
+ * @param $string string
+ *
+ * @return string
*/
function segmentByWord( $string ) {
$reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/";
@@ -21,6 +29,10 @@ class LanguageZh_hans extends Language {
return $s;
}
+ /**
+ * @param $s
+ * @return string
+ */
function normalizeForSearch( $s ) {
wfProfileIn( __METHOD__ );
diff --git a/languages/messages/MessagesAb.php b/languages/messages/MessagesAb.php
index efb0c01a..1fd2c9c7 100644
--- a/languages/messages/MessagesAb.php
+++ b/languages/messages/MessagesAb.php
@@ -57,17 +57,17 @@ $namespaceAliases = array(
);
$specialPageAliases = array(
- 'Recentchanges' => array( 'АрҽеираҾыцқәа' ),
- 'Upload' => array( 'Аҭагалара' ),
- 'Newimages' => array( 'АфаилқәаҾыц' ),
- 'Randompage' => array( 'Машәырлатәи' ),
- 'Newpages' => array( 'АдаҟьақәаҾыц' ),
- 'Specialpages' => array( 'ЦастәиАдаҟьақәа' ),
'Categories' => array( 'Акатегориақәа' ),
+ 'Mycontributions' => array( 'Архиарақәа' ),
'Mypage' => array( 'Садаҟьа' ),
'Mytalk' => array( 'Сахцәажәара' ),
- 'Mycontributions' => array( 'Архиарақәа' ),
+ 'Newimages' => array( 'АфаилқәаҾыц' ),
+ 'Newpages' => array( 'АдаҟьақәаҾыц' ),
+ 'Randompage' => array( 'Машәырлатәи' ),
+ 'Recentchanges' => array( 'АрҽеираҾыцқәа' ),
'Search' => array( 'Аҧшаара' ),
+ 'Specialpages' => array( 'ЦастәиАдаҟьақәа' ),
+ 'Upload' => array( 'Аҭагалара' ),
);
$magicWords = array(
diff --git a/languages/messages/MessagesAce.php b/languages/messages/MessagesAce.php
index 5467eeee..a3209216 100644
--- a/languages/messages/MessagesAce.php
+++ b/languages/messages/MessagesAce.php
@@ -63,94 +63,94 @@ $namespaceAliases = array(
);
$specialPageAliases = array(
- 'DoubleRedirects' => array( 'Peuninah_ganda' ),
+ 'Activeusers' => array( 'Ureueng_nguy_udep' ),
+ 'Allmessages' => array( 'MandumPeusan' ),
+ 'Allpages' => array( 'Dapeuta_on' ),
+ 'Ancientpages' => array( 'Teunuleh_trep' ),
+ 'Blankpage' => array( 'On_soh' ),
+ 'Block' => array( 'Theun_ureueng_nguy' ),
+ 'Blockme' => array( 'Theun_lon' ),
+ 'Booksources' => array( 'Ne_kitab' ),
'BrokenRedirects' => array( 'Peuninah_reuloh' ),
- 'Disambiguations' => array( 'Hana_jeulaih' ),
- 'Userlogin' => array( 'Tamong_log' ),
- 'Userlogout' => array( 'Teubiet_log' ),
+ 'Categories' => array( 'Dapeuta_kawan' ),
+ 'ChangePassword' => array( 'Gantoe_lageuem_rahsia' ),
+ 'Confirmemail' => array( 'Peunyo_surat-e' ),
+ 'Contributions' => array( 'Peuneugot_ureueng_nguy' ),
'CreateAccount' => array( 'Peugot_nan' ),
- 'Preferences' => array( 'Geunalak' ),
- 'Watchlist' => array( 'Dapeuta_kalon' ),
- 'Recentchanges' => array( 'Neuubah_baro' ),
- 'Upload' => array( 'Pasoe' ),
+ 'Deadendpages' => array( 'On_mate' ),
+ 'DeletedContributions' => array( 'Peuneugot_nyang_geusampoh' ),
+ 'Disambiguations' => array( 'Hana_jeulaih' ),
+ 'DoubleRedirects' => array( 'Peuninah_ganda' ),
+ 'Emailuser' => array( 'Surat-e_ureueng_nguy' ),
+ 'Export' => array( 'Peuteubiet' ),
+ 'Fewestrevisions' => array( 'Neuubah_paleng_dit' ),
+ 'FileDuplicateSearch' => array( 'Mita_beureukaih_saban' ),
+ 'Filepath' => array( 'Neuduek_beureukaih' ),
+ 'Import' => array( 'Peutamong' ),
+ 'Invalidateemail' => array( 'Peubateue_peusah_surat-e' ),
+ 'BlockList' => array( 'Dapeuta_neutheun' ),
+ 'LinkSearch' => array( 'Mita_hubong' ),
+ 'Listadmins' => array( 'Dapeuta_ureueng_uroh' ),
+ 'Listbots' => array( 'Dapeuta_bot' ),
'Listfiles' => array( 'Dapeuta_beureukaih' ),
- 'Newimages' => array( 'Beureukaih_baro' ),
- 'Listusers' => array( 'Dapeuta_ureueng_nguy' ),
'Listgrouprights' => array( 'Dapeuta_khut_(hak)_kawan' ),
- 'Statistics' => array( 'Keunira' ),
- 'Randompage' => array( 'On_beurangkari' ),
+ 'Listredirects' => array( 'Dapeuta_peuninah' ),
+ 'Listusers' => array( 'Dapeuta_ureueng_nguy' ),
+ 'Lockdb' => array( 'Gunci_basis_data' ),
+ 'Log' => array( 'Ceunatat' ),
'Lonelypages' => array( 'On_hana_soe_po' ),
- 'Uncategorizedpages' => array( 'On_hana_roh_lam_kawan' ),
- 'Uncategorizedcategories' => array( 'Kawan_hana_roh_lam_kawan' ),
- 'Uncategorizedimages' => array( 'Beureukaih_hana_roh_lam_kawan' ),
- 'Uncategorizedtemplates' => array( 'Templat_hana_roh_lam_kawan' ),
- 'Unusedcategories' => array( 'Kawan_soh' ),
- 'Unusedimages' => array( 'Beureukaih_hana_teunguy' ),
- 'Wantedpages' => array( 'On_nyang_geuh\'eut' ),
- 'Wantedcategories' => array( 'Kawan_nyang_geuh\'eut' ),
- 'Wantedfiles' => array( 'Beureukaih_nyang_geuh\'eut' ),
- 'Wantedtemplates' => array( 'Templat_nyang_geuh\'eut' ),
+ 'Longpages' => array( 'On_panyang' ),
+ 'MergeHistory' => array( 'Riwayat_peusapat' ),
+ 'MIMEsearch' => array( 'Mita_MIME' ),
+ 'Mostcategories' => array( 'Kawan_paleng_le' ),
+ 'Mostimages' => array( 'Beureukaih_nyang_paleng_le_geunguy' ),
'Mostlinked' => array( 'On_nyang_paleng_le_geunguy' ),
'Mostlinkedcategories' => array( 'Kawan_nyang_paleng_le_geunguy' ),
'Mostlinkedtemplates' => array( 'Templat_nyang_paleng_le_geunguy' ),
- 'Mostimages' => array( 'Beureukaih_nyang_paleng_le_geunguy' ),
- 'Mostcategories' => array( 'Kawan_paleng_le' ),
'Mostrevisions' => array( 'Neuubah_paleng_le' ),
- 'Fewestrevisions' => array( 'Neuubah_paleng_dit' ),
- 'Shortpages' => array( 'On_paneuek' ),
- 'Longpages' => array( 'On_panyang' ),
+ 'Movepage' => array( 'Peupinah_on' ),
+ 'Mycontributions' => array( 'Atra_lon_peugot' ),
+ 'Mypage' => array( 'On_lon' ),
+ 'Mytalk' => array( 'Peugah_haba_lon' ),
+ 'Newimages' => array( 'Beureukaih_baro' ),
'Newpages' => array( 'On_baro' ),
- 'Ancientpages' => array( 'Teunuleh_trep' ),
- 'Deadendpages' => array( 'On_mate' ),
+ 'Popularpages' => array( 'On_meuceuhu' ),
+ 'Preferences' => array( 'Geunalak' ),
+ 'Prefixindex' => array( 'Dapeuta_neuaway' ),
'Protectedpages' => array( 'On_nyang_geupeulindong' ),
'Protectedtitles' => array( 'Nan_nyang_geupeulindong' ),
- 'Allpages' => array( 'Dapeuta_on' ),
- 'Prefixindex' => array( 'Dapeuta_neuaway' ),
- 'Ipblocklist' => array( 'Dapeuta_neutheun' ),
- 'Specialpages' => array( 'On_khusoih' ),
- 'Contributions' => array( 'Peuneugot_ureueng_nguy' ),
- 'Emailuser' => array( 'Surat-e_ureueng_nguy' ),
- 'Confirmemail' => array( 'Peunyo_surat-e' ),
- 'Whatlinkshere' => array( 'Hubong_gisa' ),
+ 'Randompage' => array( 'On_beurangkari' ),
+ 'Randomredirect' => array( 'Peuninah_beurangkari' ),
+ 'Recentchanges' => array( 'Neuubah_baro' ),
'Recentchangeslinked' => array( 'Neuubah_meuhubong' ),
- 'Movepage' => array( 'Peupinah_on' ),
- 'Blockme' => array( 'Theun_lon' ),
- 'Booksources' => array( 'Ne_kitab' ),
- 'Categories' => array( 'Dapeuta_kawan' ),
- 'Export' => array( 'Peuteubiet' ),
- 'Version' => array( 'Seunalen' ),
- 'Allmessages' => array( 'MandumPeusan' ),
- 'Log' => array( 'Ceunatat' ),
- 'Blockip' => array( 'Theun_ureueng_nguy' ),
+ 'Revisiondelete' => array( 'Sampoh_peugot_ulang' ),
+ 'Search' => array( 'Mita' ),
+ 'Shortpages' => array( 'On_paneuek' ),
+ 'Specialpages' => array( 'On_khusoih' ),
+ 'Statistics' => array( 'Keunira' ),
+ 'Tags' => array( 'Tag' ),
+ 'Uncategorizedcategories' => array( 'Kawan_hana_roh_lam_kawan' ),
+ 'Uncategorizedimages' => array( 'Beureukaih_hana_roh_lam_kawan' ),
+ 'Uncategorizedpages' => array( 'On_hana_roh_lam_kawan' ),
+ 'Uncategorizedtemplates' => array( 'Templat_hana_roh_lam_kawan' ),
'Undelete' => array( 'Peubateue_sampoh' ),
- 'Import' => array( 'Peutamong' ),
- 'Lockdb' => array( 'Gunci_basis_data' ),
'Unlockdb' => array( 'Peuhah_gunci_basis_data' ),
- 'Userrights' => array( 'Khut_(hak)_ureueng_nguy' ),
- 'MIMEsearch' => array( 'Mita_MIME' ),
- 'FileDuplicateSearch' => array( 'Mita_beureukaih_saban' ),
- 'Unwatchedpages' => array( 'On_hana_soe_kalon' ),
- 'Listredirects' => array( 'Dapeuta_peuninah' ),
- 'Revisiondelete' => array( 'Sampoh_peugot_ulang' ),
+ 'Unusedcategories' => array( 'Kawan_soh' ),
+ 'Unusedimages' => array( 'Beureukaih_hana_teunguy' ),
'Unusedtemplates' => array( 'Templat_hana_soe_nguy' ),
- 'Randomredirect' => array( 'Peuninah_beurangkari' ),
- 'Mypage' => array( 'On_lon' ),
- 'Mytalk' => array( 'Peugah_haba_lon' ),
- 'Mycontributions' => array( 'Atra_lon_peugot' ),
- 'Listadmins' => array( 'Dapeuta_ureueng_uroh' ),
- 'Listbots' => array( 'Dapeuta_bot' ),
- 'Popularpages' => array( 'On_meuceuhu' ),
- 'Search' => array( 'Mita' ),
- 'Resetpass' => array( 'Gantoe_lageuem_rahsia' ),
+ 'Unwatchedpages' => array( 'On_hana_soe_kalon' ),
+ 'Upload' => array( 'Pasoe' ),
+ 'Userlogin' => array( 'Tamong_log' ),
+ 'Userlogout' => array( 'Teubiet_log' ),
+ 'Userrights' => array( 'Khut_(hak)_ureueng_nguy' ),
+ 'Version' => array( 'Seunalen' ),
+ 'Wantedcategories' => array( 'Kawan_nyang_geuh\'eut' ),
+ 'Wantedfiles' => array( 'Beureukaih_nyang_geuh\'eut' ),
+ 'Wantedpages' => array( 'On_nyang_geuh\'eut' ),
+ 'Wantedtemplates' => array( 'Templat_nyang_geuh\'eut' ),
+ 'Watchlist' => array( 'Dapeuta_kalon' ),
+ 'Whatlinkshere' => array( 'Hubong_gisa' ),
'Withoutinterwiki' => array( 'Hana_interwiki' ),
- 'MergeHistory' => array( 'Riwayat_peusapat' ),
- 'Filepath' => array( 'Neuduek_beureukaih' ),
- 'Invalidateemail' => array( 'Peubateue_peusah_surat-e' ),
- 'Blankpage' => array( 'On_soh' ),
- 'LinkSearch' => array( 'Mita_hubong' ),
- 'DeletedContributions' => array( 'Peuneugot_nyang_geusampoh' ),
- 'Tags' => array( 'Tag' ),
- 'Activeusers' => array( 'Ureueng_nguy_udep' ),
);
$messages = array(
@@ -313,7 +313,6 @@ $messages = array(
'searcharticle' => 'Jak u',
'history' => 'Atra u likot',
'history_short' => 'Atra u likôt',
-'info_short' => 'Haba',
'printableversion' => 'Seunalén citak',
'permalink' => 'Hubông teutap',
'print' => 'Rakam',
@@ -440,7 +439,7 @@ Nan Droeneuh ka teupeugot. Neuato laju [[Special:Preferences|peue nyang neugalak
'nosuchuser' => 'Hana ureuëng nguy ngön nan "$1".
Nan ureuëng nguy jipeubida harah rayek.
Tulông neuparéksa keulayi neuija Droëneuh, atawa [[Special:UserLogin/signup|neudapeuta barô]].',
-'nosuchusershort' => 'Hana ureuëng nguy ngön nan "<nowiki>$1</nowiki>".
+'nosuchusershort' => 'Hana ureuëng nguy ngön nan "$1".
Préksa keulayi neu’ija Droëneuh.',
'nouserspecified' => 'Neupasoë nan Droëneuh.',
'wrongpassword' => 'Lageuëm nyang neupasoë salah. Neuci lom.',
@@ -456,7 +455,7 @@ Droëneuh geupeusaran keu neutamong sigra, lheuëh nyan neugantoë lageuëm rahs
'eauthentsent' => 'Saboh surat èlèktronik keu peunyoë ka geukirém u alamat surat èlèktronik Droëneuh. Droëneuh beuneuseutöt préntah lam surat nyan keu neupeunyoë meunyo alamat nyan nakeuh beutôy atra Droëneuh. {{SITENAME}} h‘an geupeuudép surat Droëneuh meunyo langkah nyoë hana neupeulaku lom.',
'loginlanguagelabel' => 'Bahsa: $1',
-# Password reset dialog
+# Change password dialog
'retypenew' => 'Pasoë teuma lageuëm barô:',
# Edit page toolbar
@@ -470,8 +469,6 @@ Droëneuh geupeusaran keu neutamong sigra, lheuëh nyan neugantoë lageuëm rahs
'extlink_tip' => 'Hubông luwa (bèk tuwoë bôh http:// bak away)',
'headline_sample' => 'Naseukah nan',
'headline_tip' => 'Aneuk beunagi tingkat 1',
-'math_sample' => 'Pasoë rumuh nyoë pat',
-'math_tip' => 'Rumuh matematik (LaTeX)',
'nowiki_sample' => 'Bèk format naseukah nyoë',
'nowiki_tip' => 'Bèk seutot beuntuk wiki',
'image_tip' => 'Pasoë beureukah',
@@ -778,9 +775,7 @@ Meunyo neupasoë, euntreuk nan Droëneuh nyan geupeuleumah mangat jitupeuë soë
# Watchlist
'watchlist' => 'Dapeuta keunalön lôn',
'mywatchlist' => 'Keunalön',
-'addedwatch' => 'Ka geupeutamah u dapeuta kalön',
'addedwatchtext' => "Ôn \"[[:\$1]]\" ka geupeutamah u [[Special:Watchlist|dapeuta keunalön]] Droëneuh. Neu’ubah-neu’ubah bak masa u keuë bak ôn nyan ngön bak ôn peugah habajih, euntreuk leumah nyoë pat. Ôn nyan euntreuk geupeuleumah ''teubay'' bak [[Special:RecentChanges|dapeuta neu’ubah paléng barô]] mangat leubèh mudah leumah.",
-'removedwatch' => 'Ka geusampôh nibak dapeuta keunalön',
'removedwatchtext' => 'Ôn "[[:$1]]" ka geusampôh nibak [[Special:Watchlist|dapeuta keunalön]] Droëneuh.',
'watch' => 'Kalön',
'watchthispage' => 'Kalön ôn nyoë',
@@ -798,7 +793,7 @@ Meunyo neupasoë, euntreuk nan Droëneuh nyan geupeuleumah mangat jitupeuë soë
'historywarning' => 'Ingat: Ôn nyang hawa neusampôh na riwayat:',
'confirmdeletetext' => 'Droëneuh neuk neusampôh ôn atawa beureukah nyoë keu sabé. Meunan cit ban mandum riwayatjih nibak basis data. Neupeupaseuti meunyo Droëneuh cit keubiët meung neusampôh, neutupeuë ban mandum akébatjih, ngön peuë nyang neupeulaku nyoë nakeuh meunurôt [[{{MediaWiki:Policy-url}}|kebijakan{{SITENAME}}]].',
'actioncomplete' => 'Seuleusoë',
-'deletedtext' => '"<nowiki>$1</nowiki>" ka geusampôh. Eu $2 keu log paléng barô bak ôn nyang ka geusampôh.',
+'deletedtext' => '"$1" ka geusampôh. Eu $2 keu log paléng barô bak ôn nyang ka geusampôh.',
'deletedarticle' => 'sampôh "[[$1]]"',
'dellogpage' => 'Log seunampoh',
'deletecomment' => 'Choë:',
@@ -817,7 +812,7 @@ Meunyo neupasoë, euntreuk nan Droëneuh nyan geupeuleumah mangat jitupeuë soë
'protectexpiry' => 'Maté tanggay:',
'protect_expiry_invalid' => 'Watèë maté tanggay hana sah.',
'protect_expiry_old' => 'Watèë maté tanggay nakeuh bak masa u likôt.',
-'protect-text' => "Droëneuh jeuët neu’eu atawa neugantoë tingkat lindông keu ôn '''<nowiki>$1</nowiki>''' nyoë pat.",
+'protect-text' => "Droëneuh jeuët neu’eu atawa neugantoë tingkat lindông keu ôn '''$1''' nyoë pat.",
'protect-locked-access' => "Nan dapeuta Droëneuh hana hak keu jak gantoë tingkat lindông ôn. Nyoë pat nakeuh konfigurasi atra jinoë keu ôn '''$1''':",
'protect-cascadeon' => 'Ôn nyoë teungöh geulindông kareuna geupeuseureuta lam {{PLURAL:$1|ôn|ôn-ôn}} nyoë nyang ka geulindông ngön peuniléh lindông meuturôt geupeuudép.
Droëneuh jeuët neugantoë tingkat lindông keu ôn nyoë, tapi nyan hana peungarôh keu lindông meuturôt.',
@@ -995,11 +990,10 @@ Hubông teutap keu revisi ôn nyoë',
'nextdiff' => 'Geunantoë lheuëh nyan →',
# Media information
-'file-info-size' => '$1 × $2 piksel, rayek beureukah: $3, MIME jeunèh: $4',
-'file-nohires' => '<small>Hana resolusi nyang leubèh manyang.</small>',
-'svg-long-desc' => 'Beureukah SVG, nominal $1 x $2 piksel, rayek beureukah: $3',
-'show-big-image' => 'Resolusi peunoh',
-'show-big-image-thumb' => '<small>Rayek atra nyoë: $1 x $2 piksel</small>',
+'file-info-size' => '$1 × $2 piksel, rayek beureukah: $3, MIME jeunèh: $4',
+'file-nohires' => '<small>Hana resolusi nyang leubèh manyang.</small>',
+'svg-long-desc' => 'Beureukah SVG, nominal $1 x $2 piksel, rayek beureukah: $3',
+'show-big-image' => 'Resolusi peunoh',
# Special:NewFiles
'newimages' => 'Beureukah barô',
@@ -1023,11 +1017,17 @@ Hubông-hubông lheuëh nyan bak baréh nyang saban geukira sibagoë keucuali, n
* exposuretime
* fnumber
* isospeedratings
-* focallength',
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
# External editor support
'edit-externally' => 'Andam beureukah nyoë ngön aplikasi luwa',
-'edit-externally-help' => '(Ngiëng [http://meta.wikimedia.org/wiki/Help:External_editors arah atô] keu beurita leubèh lanjôt)',
+'edit-externally-help' => '(Ngiëng [//meta.wikimedia.org/wiki/Help:External_editors arah atô] keu beurita leubèh lanjôt)',
# 'all' in various places, this might be different for inflected languages
'watchlistall2' => 'ban dum',
diff --git a/languages/messages/MessagesAf.php b/languages/messages/MessagesAf.php
index 3631d8e7..d7b4777d 100644
--- a/languages/messages/MessagesAf.php
+++ b/languages/messages/MessagesAf.php
@@ -18,6 +18,7 @@
* @author Reedy
* @author SPQRobin
* @author Spacebirdy
+ * @author Xethron
*/
$namespaceNames = array(
@@ -107,102 +108,102 @@ $magicWords = array(
);
$specialPageAliases = array(
- 'DoubleRedirects' => array( 'Dubbele_aansture', 'Dubbeleaansture' ),
+ 'Activeusers' => array( 'AktieweGebruikers' ),
+ 'Allmessages' => array( 'Stelselboodskappe', 'Alle_stelselboodskappe', 'Allestelselboodskappe', 'Boodskappe' ),
+ 'Allpages' => array( 'Alle_bladsye', 'Allebladsye' ),
+ 'Ancientpages' => array( 'OuBladsye' ),
+ 'Blankpage' => array( 'SkoonBladsy' ),
+ 'Block' => array( 'BlokIP' ),
+ 'Blockme' => array( 'BlokMy' ),
+ 'Booksources' => array( 'Boekbronne' ),
'BrokenRedirects' => array( 'Stukkende_aansture', 'Stukkendeaansture' ),
- 'Disambiguations' => array( 'Dubbelsinnig' ),
- 'Userlogin' => array( 'Teken_in', 'Tekenin' ),
- 'Userlogout' => array( 'Teken_uit', 'Tekenuit' ),
+ 'Categories' => array( 'Kategorieë' ),
+ 'ChangePassword' => array( 'HerstelWagwoord' ),
+ 'Confirmemail' => array( 'Bevestig_e-posadres', 'Bevestige-posadres', 'Bevestig_eposadres', 'Bevestigeposadres' ),
+ 'Contributions' => array( 'Bydraes', 'Gebruikersbydraes' ),
'CreateAccount' => array( 'SkepRekening', 'MaakGebruiker' ),
- 'Preferences' => array( 'Voorkeure' ),
- 'Watchlist' => array( 'Dophoulys' ),
- 'Recentchanges' => array( 'Onlangse_wysigings', 'Onlangsewysigings' ),
- 'Upload' => array( 'Laai', 'Oplaai' ),
+ 'Deadendpages' => array( 'DoodloopBladsye' ),
+ 'DeletedContributions' => array( 'GeskrapteBydraes' ),
+ 'Disambiguations' => array( 'Dubbelsinnig' ),
+ 'DoubleRedirects' => array( 'Dubbele_aansture', 'Dubbeleaansture' ),
+ 'Emailuser' => array( 'Stuur_e-pos', 'Stuure-pos', 'Stuur_epos', 'Stuurepos' ),
+ 'Export' => array( 'Eksporteer' ),
+ 'Fewestrevisions' => array( 'MinsteWysigings' ),
+ 'FileDuplicateSearch' => array( 'LerDuplikaatSoek' ),
+ 'Filepath' => array( 'Lêerpad' ),
+ 'Import' => array( 'Importeer' ),
+ 'Invalidateemail' => array( 'OngeldigeEpos' ),
+ 'BlockList' => array( 'IPBlokLys' ),
+ 'LinkSearch' => array( 'SkakelSoektog' ),
+ 'Listadmins' => array( 'LysAdministrateurs' ),
+ 'Listbots' => array( 'LysRobotte' ),
'Listfiles' => array( 'Beeldelys', 'Prentelys', 'Lêerslys' ),
- 'Newimages' => array( 'Nuwe_beelde', 'Nuwebeelde', 'Nuwe_lêers', 'Nuwelêers' ),
- 'Listusers' => array( 'Gebruikerslys', 'Lysgebruikers' ),
'Listgrouprights' => array( 'LysGroepRegte' ),
- 'Statistics' => array( 'Statistiek' ),
- 'Randompage' => array( 'Lukraak', 'Lukrakebladsy' ),
+ 'Listredirects' => array( 'LysAansture' ),
+ 'Listusers' => array( 'Gebruikerslys', 'Lysgebruikers' ),
+ 'Lockdb' => array( 'SluitDB' ),
+ 'Log' => array( 'Logboek', 'Logboeke' ),
'Lonelypages' => array( 'EensaamBladsye' ),
- 'Uncategorizedpages' => array( 'OngekategoriseerdeBladsye' ),
- 'Uncategorizedcategories' => array( 'OngekategoriseerdeKategorieë' ),
- 'Uncategorizedimages' => array( 'OngekategoriseerdeBeelde' ),
- 'Uncategorizedtemplates' => array( 'OngekategoriseerdeSjablone' ),
- 'Unusedcategories' => array( 'OngebruikdeKategorieë' ),
- 'Unusedimages' => array( 'OngebruikdeBeelde' ),
- 'Wantedpages' => array( 'GesoekdeBladsye', 'GebreekteSkakels' ),
- 'Wantedcategories' => array( 'GesoekteKategorieë' ),
- 'Wantedfiles' => array( 'GesoekteLêers' ),
- 'Wantedtemplates' => array( 'GesoekteSjablone' ),
+ 'Longpages' => array( 'LangBladsye' ),
+ 'MergeHistory' => array( 'VersmeltGeskiedenis' ),
+ 'MIMEsearch' => array( 'MIME-soek', 'MIMEsoek', 'MIME_soek' ),
+ 'Mostcategories' => array( 'MeesteKategorieë' ),
+ 'Mostimages' => array( 'MeesteBeelde' ),
'Mostlinked' => array( 'MeeteGeskakel' ),
'Mostlinkedcategories' => array( 'MeesGeskakeldeKategorieë' ),
'Mostlinkedtemplates' => array( 'MeesGeskakeldeSjablone' ),
- 'Mostimages' => array( 'MeesteBeelde' ),
- 'Mostcategories' => array( 'MeesteKategorieë' ),
'Mostrevisions' => array( 'MeesteWysigings' ),
- 'Fewestrevisions' => array( 'MinsteWysigings' ),
- 'Shortpages' => array( 'KortBladsye' ),
- 'Longpages' => array( 'LangBladsye' ),
+ 'Movepage' => array( 'Skuif_bladsy', 'Skuifbladsy' ),
+ 'Mycontributions' => array( 'Mybydrae' ),
+ 'Mypage' => array( 'MyBladsy' ),
+ 'Mytalk' => array( 'Mybespreking', 'Mybesprekings' ),
+ 'Newimages' => array( 'Nuwe_beelde', 'Nuwebeelde', 'Nuwe_lêers', 'Nuwelêers' ),
'Newpages' => array( 'Nuwe_bladsye', 'Nuwebladsye' ),
- 'Ancientpages' => array( 'OuBladsye' ),
- 'Deadendpages' => array( 'DoodloopBladsye' ),
+ 'Popularpages' => array( 'PopulêreBladsye' ),
+ 'Preferences' => array( 'Voorkeure' ),
+ 'Prefixindex' => array( 'VoorvoegselIndeks' ),
'Protectedpages' => array( 'BeskermdeBladsye' ),
'Protectedtitles' => array( 'BeskermdeTitels' ),
- 'Allpages' => array( 'Alle_bladsye', 'Allebladsye' ),
- 'Prefixindex' => array( 'VoorvoegselIndeks' ),
- 'Ipblocklist' => array( 'IPBlokLys' ),
- 'Unblock' => array( 'Deblokkeer' ),
- 'Specialpages' => array( 'Spesiale_bladsye', 'Spesialebladsye' ),
- 'Contributions' => array( 'Bydraes', 'Gebruikersbydraes' ),
- 'Emailuser' => array( 'Stuur_e-pos', 'Stuure-pos', 'Stuur_epos', 'Stuurepos' ),
- 'Confirmemail' => array( 'Bevestig_e-posadres', 'Bevestige-posadres', 'Bevestig_eposadres', 'Bevestigeposadres' ),
- 'Whatlinkshere' => array( 'Skakels_hierheen', 'Skakelshierheen' ),
+ 'Randompage' => array( 'Lukraak', 'Lukrakebladsy' ),
+ 'Randomredirect' => array( 'Lukrake_aanstuur', 'Lukrakeaanstuur' ),
+ 'Recentchanges' => array( 'Onlangse_wysigings', 'Onlangsewysigings' ),
'Recentchangeslinked' => array( 'OnlangseVeranderingsMetSkakels', 'VerwanteVeranderings' ),
- 'Movepage' => array( 'Skuif_bladsy', 'Skuifbladsy' ),
- 'Blockme' => array( 'BlokMy' ),
- 'Booksources' => array( 'Boekbronne' ),
- 'Categories' => array( 'Kategorieë' ),
- 'Export' => array( 'Eksporteer' ),
- 'Version' => array( 'Weergawe' ),
- 'Allmessages' => array( 'Stelselboodskappe', 'Alle_stelselboodskappe', 'Allestelselboodskappe', 'Boodskappe' ),
- 'Log' => array( 'Logboek', 'Logboeke' ),
- 'Blockip' => array( 'BlokIP' ),
+ 'Revisiondelete' => array( 'WeergaweSkrap' ),
+ 'Search' => array( 'Soek' ),
+ 'Shortpages' => array( 'KortBladsye' ),
+ 'Specialpages' => array( 'Spesiale_bladsye', 'Spesialebladsye' ),
+ 'Statistics' => array( 'Statistiek' ),
+ 'Tags' => array( 'Etikette' ),
+ 'Unblock' => array( 'Deblokkeer' ),
+ 'Uncategorizedcategories' => array( 'OngekategoriseerdeKategorieë' ),
+ 'Uncategorizedimages' => array( 'OngekategoriseerdeBeelde' ),
+ 'Uncategorizedpages' => array( 'OngekategoriseerdeBladsye' ),
+ 'Uncategorizedtemplates' => array( 'OngekategoriseerdeSjablone' ),
'Undelete' => array( 'Ontskrap' ),
- 'Import' => array( 'Importeer' ),
- 'Lockdb' => array( 'SluitDB' ),
'Unlockdb' => array( 'OntsluitDB' ),
- 'Userrights' => array( 'GebruikersRegte' ),
- 'MIMEsearch' => array( 'MIME-soek', 'MIMEsoek', 'MIME_soek' ),
- 'FileDuplicateSearch' => array( 'LerDuplikaatSoek' ),
- 'Unwatchedpages' => array( 'NieDopgehoudeBladsye' ),
- 'Listredirects' => array( 'LysAansture' ),
- 'Revisiondelete' => array( 'WeergaweSkrap' ),
+ 'Unusedcategories' => array( 'OngebruikdeKategorieë' ),
+ 'Unusedimages' => array( 'OngebruikdeBeelde' ),
'Unusedtemplates' => array( 'OngebruikteSjablone' ),
- 'Randomredirect' => array( 'Lukrake_aanstuur', 'Lukrakeaanstuur' ),
- 'Mypage' => array( 'MyBladsy' ),
- 'Mytalk' => array( 'Mybespreking', 'Mybesprekings' ),
- 'Mycontributions' => array( 'Mybydrae' ),
- 'Listadmins' => array( 'LysAdministrateurs' ),
- 'Listbots' => array( 'LysRobotte' ),
- 'Popularpages' => array( 'PopulêreBladsye' ),
- 'Search' => array( 'Soek' ),
- 'Resetpass' => array( 'HerstelWagwoord' ),
+ 'Unwatchedpages' => array( 'NieDopgehoudeBladsye' ),
+ 'Upload' => array( 'Laai', 'Oplaai' ),
+ 'Userlogin' => array( 'Teken_in', 'Tekenin' ),
+ 'Userlogout' => array( 'Teken_uit', 'Tekenuit' ),
+ 'Userrights' => array( 'GebruikersRegte' ),
+ 'Version' => array( 'Weergawe' ),
+ 'Wantedcategories' => array( 'GesoekteKategorieë' ),
+ 'Wantedfiles' => array( 'GesoekteLêers' ),
+ 'Wantedpages' => array( 'GesoekdeBladsye', 'GebreekteSkakels' ),
+ 'Wantedtemplates' => array( 'GesoekteSjablone' ),
+ 'Watchlist' => array( 'Dophoulys' ),
+ 'Whatlinkshere' => array( 'Skakels_hierheen', 'Skakelshierheen' ),
'Withoutinterwiki' => array( 'Sonder_taalskakels', 'Sondertaalskakels' ),
- 'MergeHistory' => array( 'VersmeltGeskiedenis' ),
- 'Filepath' => array( 'Lêerpad' ),
- 'Invalidateemail' => array( 'OngeldigeEpos' ),
- 'Blankpage' => array( 'SkoonBladsy' ),
- 'LinkSearch' => array( 'SkakelSoektog' ),
- 'DeletedContributions' => array( 'GeskrapteBydraes' ),
- 'Tags' => array( 'Etikette' ),
- 'Activeusers' => array( 'AktieweGebruikers' ),
);
# 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";
+$linkTrail = "/^([a-z]+)(.*)$/sD";
$messages = array(
# User preference toggles
@@ -236,7 +237,7 @@ $messages = array(
'tog-shownumberswatching' => 'Wys die aantal gebruikers wat dophou',
'tog-oldsig' => 'Bestaande handtekening:',
'tog-fancysig' => 'Hanteer handtekening as wikiteks (sonder outomatiese skakels)',
-'tog-externaleditor' => "Gebruik outomaties 'n eksterne redigeringsprogram (net vir kundiges - benodig spesiale verstellings op u rekenaar. [http://www.mediawiki.org/wiki/Manual:External_editors Meer inligting.])",
+'tog-externaleditor' => "Gebruik outomaties 'n eksterne redigeringsprogram (net vir kundiges - benodig spesiale verstellings op u rekenaar. [//www.mediawiki.org/wiki/Manual:External_editors Meer inligting.])",
'tog-externaldiff' => "Gebruik outomaties 'n eksterne vergelykingsprogram (net vir kundiges - benodig spesiale verstellings op u rekenaar)",
'tog-showjumplinks' => 'Wys "spring na"-skakels vir toeganklikheid',
'tog-uselivepreview' => 'Gebruik lewendige voorskou (JavaScript) (eksperimenteel)',
@@ -332,14 +333,7 @@ $messages = array(
'listingcontinuesabbrev' => 'vervolg',
'index-category' => 'Geïndekseerde bladsye',
'noindex-category' => 'Ongeïndekseerde bladsye',
-
-'mainpagetext' => "'''MediaWiki is suksesvol geïnstalleer.'''",
-'mainpagedocfooter' => "Konsulteer '''[http://meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.
-
-== Hoe om te Begin ==
-* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]",
+'broken-file-category' => 'Bladsye met gebreekte lêer skakels',
'about' => 'Aangaande',
'article' => 'Inhoudbladsy',
@@ -391,10 +385,10 @@ $messages = array(
'history' => 'Ouer weergawes',
'history_short' => 'Geskiedenis',
'updatedmarker' => 'opgedateer sedert my laaste besoek',
-'info_short' => 'Inligting',
'printableversion' => 'Drukbare weergawe',
'permalink' => 'Permanente skakel',
'print' => 'Druk',
+'view' => 'Wys',
'edit' => 'Wysig',
'create' => 'Skep',
'editthispage' => 'Wysig hierdie bladsy',
@@ -402,6 +396,7 @@ $messages = array(
'delete' => 'Skrap',
'deletethispage' => 'Skrap die bladsy',
'undelete_short' => 'Herstel {{PLURAL:$1|een wysiging|$1 wysigings}}',
+'viewdeleted_short' => 'Wys {{PLURAL:$1|een geskrapte wysiging|$1 geskrapte wysigings}}',
'protect' => 'Beskerm',
'protect_change' => 'wysig',
'protectthispage' => 'Beskerm hierdie bladsy',
@@ -485,6 +480,8 @@ $1",
'toc' => 'Inhoud',
'showtoc' => 'wys',
'hidetoc' => 'versteek',
+'collapsible-collapse' => 'Vou toe',
+'collapsible-expand' => 'Vou oop',
'thisisdeleted' => 'Wys of herstel $1?',
'viewdeleted' => 'Bekyk $1?',
'restorelink' => '{{PLURAL:$1|die geskrapte wysiging|$1 geskrapte wysigings}}',
@@ -496,6 +493,8 @@ $1",
'page-rss-feed' => '"$1" RSS-voer',
'page-atom-feed' => '"$1" Atom-voer',
'red-link-title' => '$1 (bladsy bestaan nie)',
+'sort-descending' => 'Sorteer aflopend',
+'sort-ascending' => 'Sorteer oplopend',
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'Bladsy',
@@ -583,11 +582,12 @@ Probeer asseblief weer oor 'n paar minute.",
'protectedpagetext' => 'Hierdie bladsy is beskerm om redigering te verhoed.',
'viewsourcetext' => 'U mag die bronteks van hierdie bladsy lees en kopieer:',
'protectedinterface' => 'Hierdie bladsy verskaf teks vir die koppelvlak van die sagteware, en is beskerm om misbruik te voorkom.',
-'editinginterface' => "'''Waarskuwing:''' U is besig om 'n bladsy te redigeer wat koppelvlakinligting aan die programmatuur voorsien. Wysigings aan hierdie bladsy sal die voorkoms van die gebruikerskoppelvlak vir ander gebruikers beïnvloed. Vir vertalings, oorweeg om eerder [http://translatewiki.net/wiki/Main_Page?setlang=af translatewiki.net] (die vertalingsprojek vir MediaWiki) te gebruik.",
+'editinginterface' => "'''Waarskuwing:''' U is besig om 'n bladsy te redigeer wat koppelvlakinligting aan die programmatuur voorsien. Wysigings aan hierdie bladsy sal die voorkoms van die gebruikerskoppelvlak vir ander gebruikers beïnvloed. Vir vertalings, oorweeg om eerder [//translatewiki.net/wiki/Main_Page?setlang=af translatewiki.net] (die vertalingsprojek vir MediaWiki) te gebruik.",
'sqlhidden' => '(SQL navraag versteek)',
'cascadeprotected' => 'Hierdie bladsy is beskerm teen redigering omdat dit ingesluit is in die volgende {{PLURAL:$1|bladsy|bladsye}} wat beskerm is met die "kaskade" opsie aangeskakel: $2',
'namespaceprotected' => "U het nie toestemming om bladsye in die '''$1'''-naamruimte te wysig nie.",
-'customcssjsprotected' => "U het nie toestemming om hierdie bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
+'customcssprotected' => "U het nie toestemming om hierdie CSS-bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
+'customjsprotected' => "U het nie toestemming om hierdie JavaScript-bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
'ns-specialprotected' => 'Spesiale bladsye kan nie geredigeer word nie.',
'titleprotected' => "Hierdie titel is beskerm teen skepping deur [[User:$1|$1]].
Die rede gegee is ''$2''.",
@@ -625,6 +625,7 @@ moenie vergeet om u [[Special:Preferences|persoonlike voorkeure vir {{SITENAME}}
'createaccount' => 'Skep nuwe rekening',
'gotaccount' => "Het u reeds 'n rekening? '''$1'''.",
'gotaccountlink' => 'Teken in',
+'userlogin-resetlink' => 'U aanmeld besonderhede vergeet?',
'createaccountmail' => 'deur e-pos',
'createaccountreason' => 'Rede:',
'badretype' => 'Die ingetikte wagwoorde is nie dieselfde nie.',
@@ -637,13 +638,15 @@ Kies asseblief 'n ander naam.",
U rekenaar laat tans nie koekies toe nie.
Stel u rekenaar om dit te aanvaar, dan kan u met u nuwe naam en wagwoord inteken.',
'nocookieslogin' => '{{SITENAME}} gebruik koekies vir die aanteken van gebruikers, maar u blaaier laat dit nie toe nie. Skakel dit asseblief aan en probeer weer.',
+'nocookiesfornew' => 'Die gebruiker is nie geskep nie omdat die oorsprong nie bevestig kon word nie.
+Maak seker dat u koekies aangeskakel het, herlaai die bladsy en probeer dan weer.',
'noname' => 'Ongeldige gebruikersnaam.',
'loginsuccesstitle' => 'Suksesvolle intekening',
'loginsuccess' => 'U is nou by {{SITENAME}} as "$1" ingeteken.',
'nosuchuser' => 'Die gebruiker "$1" bestaan nie.
Gebruikersname is gevoelig vir hoofletters.
Maak seker dit is reg gespel of [[Special:UserLogin/signup|skep \'n nuwe rekening]].',
-'nosuchusershort' => 'Daar is geen gebruikersnaam "<nowiki>$1</nowiki>" nie. Maak seker dit is reg gespel.',
+'nosuchusershort' => 'Daar is geen gebruikersnaam "$1" nie. Maak seker dit is reg gespel.',
'nouserspecified' => "U moet 'n gebruikersnaam spesifiseer.",
'login-userblocked' => 'Hierdie gebruiker is geblokkeer.
Intekening word verbied.',
@@ -685,16 +688,18 @@ Indien hierdie rekening foutief geskep is, kan u hierdie boodskap ignoreer.',
'usernamehasherror' => "'n Gebruikersnaam mag nie 'n hekkie-karakter (#) in hê nie",
'login-throttled' => "U het al te veel kere met 'n ongeldige wagwoord probeer aanteken.
Wag asseblief alvorens u weer probeer.",
+'login-abort-generic' => 'U is nie aangemeld nie. Die prosedure is gestaak.',
'loginlanguagelabel' => 'Taal: $1',
'suspicious-userlogout' => "U versoek om af te teken is geïgnoreer omdat dit lyk asof dit deur 'n gebreekte webleser of instaanbediener gestuur is.",
# E-mail sending
'php-mail-error-unknown' => 'Onbekende fout in PHP se mail()-funksie',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'Verander wagwoord',
'resetpass_announce' => "U het aangeteken met 'n tydelike e-poskode.
Om voort te gaan moet u 'n nuwe wagwoord hier kies:",
+'resetpass_text' => '<!-- Voeg teks hier by -->',
'resetpass_header' => 'Verander wagwoord',
'oldpassword' => 'Ou wagwoord',
'newpassword' => 'Nuwe wagwoord',
@@ -709,6 +714,34 @@ Om voort te gaan moet u 'n nuwe wagwoord hier kies:",
U het moontlik reeds u wagwoord gewysig of 'n nuwe tydelike wagwoord aangevra.",
'resetpass-temp-password' => 'Tydelike wagwoord:',
+# Special:PasswordReset
+'passwordreset' => 'Wagwoord herstel',
+'passwordreset-text' => "Voltooi hierdie vorm om 'n e-pos herinnering van jou rekening besonderhede te ontvang.",
+'passwordreset-legend' => 'Kry nuwe wagwoord',
+'passwordreset-disabled' => 'Die herskik van U wagwoord is gedeaktiveer op hierdie wiki.',
+'passwordreset-pretext' => '{{PLURAL:$1| | Voer een van die onderstaande velde in}}',
+'passwordreset-username' => 'Gebruiker:',
+'passwordreset-domain' => 'Domein:',
+'passwordreset-email' => 'E-posadres:',
+'passwordreset-emailtitle' => 'Gebruiker se details op {{site name}}',
+'passwordreset-emailtext-ip' => 'Iemand, waarskynlik u vanaf die IP-adres $1, het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.
+Die volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:
+
+$2
+
+{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.
+Meld asseblief nou aan en wysig u wagwoord. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.',
+'passwordreset-emailtext-user' => 'Gebruiker $1 op die webtuiste {{SITENAME}} het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.
+Die volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:
+
+$2
+
+{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.
+Meld asseblief aan en verander u wagwoord nou. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.',
+'passwordreset-emailelement' => 'Gebruikersnaam: $1
+Tydelike wagwoord: $2',
+'passwordreset-emailsent' => "'n E-pos ter herhindering is gestuur.",
+
# Edit page toolbar
'bold_sample' => 'Vetgedrukte teks',
'bold_tip' => 'Vetdruk',
@@ -720,8 +753,6 @@ U het moontlik reeds u wagwoord gewysig of 'n nuwe tydelike wagwoord aangevra.",
'extlink_tip' => 'Eksterne skakel (onthou http:// vooraan)',
'headline_sample' => 'Opskrif',
'headline_tip' => 'Vlak 2-opskrif',
-'math_sample' => 'Plaas formule hier',
-'math_tip' => 'Wiskundige formule (LaTeX)',
'nowiki_sample' => 'Plaas ongeformatteerde teks hier',
'nowiki_tip' => 'Ignoreer wiki-formattering',
'image_sample' => 'Voorbeeld.jpg',
@@ -805,7 +836,7 @@ U kan [[Special:Search/{{PAGENAME}}|vir die bladsytitel in ander bladsye soek]],
of [{{fullurl:{{FULLPAGENAME}}|action=edit}} hierdie bladsy wysig]</span>.',
'noarticletext-nopermission' => 'Daar is tans geen teks in hierdie bladsy nie. U kan vir die bladsytitel [[Special:Search/{{PAGENAME}}|in ander bladsye soek]] of
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]</span>.',
-'userpage-userdoesnotexist' => 'U is besig om \'n gebruikersblad wat nie bestaan nie te wysig (gebruiker "$1"). Maak asseblief seker of u die bladsy wil skep/ wysig.',
+'userpage-userdoesnotexist' => 'U is besig om \'n gebruikersblad wat nie bestaan nie te wysig (gebruiker "<nowiki>$1</nowiki>"). Maak asseblief seker of u die bladsy wil skep/ wysig.',
'userpage-userdoesnotexist-view' => 'Die gebruiker "$1" is nie geregistreer nie.',
'blocked-notice-logextract' => 'Hierdie gebruiker is tans geblokkeer.
Die laaste inskrywing in die blokkeerlogboek word hieronder vertoon:',
@@ -840,6 +871,7 @@ Probeer asseblief weer. As dit steeds nie werk nie, probeer om [[Special:UserLog
'token_suffix_mismatch' => "'''U wysiging is geweier omdat u webblaaier leestekens in die wysigingsveld verkeerdelik geïnterpreteer het.
Die bewerking is geweier om verminking van die bladsy se teks te voorkom.
Dit gebeur soms as 'n webgebaseerde instaandiens (proxy) gebruik word wat foute bevat.",
+'edit_form_incomplete' => "'''Dele van die vorm het nie die bediener bereik nie. Kyk of alles reg lyk en probeer weer.'''",
'editing' => 'Besig om $1 te wysig',
'editingsection' => 'Besig om $1 (onderafdeling) te wysig',
'editingcomment' => 'Besig om $1 te wysig (nuwe opskrif)',
@@ -1185,12 +1217,13 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
'searchdisabled' => '{{SITENAME}} se soekfunksie is tans afgeskakel ter wille van werkverrigting. Gebruik gerus intussen Google of Yahoo! Let daarop dat hulle indekse van die {{SITENAME}}-inhoud verouderd mag wees.',
# Quickbar
-'qbsettings' => 'Snelbalkvoorkeure',
-'qbsettings-none' => 'Geen',
-'qbsettings-fixedleft' => 'Links vas.',
-'qbsettings-fixedright' => 'Regs vas.',
-'qbsettings-floatingleft' => 'Dryf links.',
-'qbsettings-floatingright' => 'Dryf regs.',
+'qbsettings' => 'Snelbalkvoorkeure',
+'qbsettings-none' => 'Geen',
+'qbsettings-fixedleft' => 'Links vas.',
+'qbsettings-fixedright' => 'Regs vas.',
+'qbsettings-floatingleft' => 'Dryf links.',
+'qbsettings-floatingright' => 'Dryf regs.',
+'qbsettings-directionality' => 'Vas, afhanklik van die skryfrigting van u taal',
# Preferences page
'preferences' => 'Voorkeure',
@@ -1201,9 +1234,10 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
'changepassword' => 'Verander wagwoord',
'prefs-skin' => 'Omslag',
'skin-preview' => 'Voorskou',
-'prefs-math' => 'Wiskunde',
'datedefault' => 'Geen voorkeur',
+'prefs-beta' => 'Beta-funksies',
'prefs-datetime' => 'Datum en tyd',
+'prefs-labs' => 'Labs-funksies',
'prefs-personal' => 'Gebruikersdata',
'prefs-rc' => 'Onlangse wysigings',
'prefs-watchlist' => 'Dophoulys',
@@ -1225,8 +1259,6 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
'columns' => 'Kolomme',
'searchresultshead' => 'Soekresultate',
'resultsperpage' => 'Aantal resultate om te wys',
-'contextlines' => 'Aantal lyne per resultaat',
-'contextchars' => 'Karakters konteks per lyn',
'stub-threshold' => 'Drempel vir merk as <a href="#" class="stub">saadjie</a> (grepe):',
'stub-threshold-disabled' => 'Afgeskakel',
'recentchangesdays' => 'Aantal dae wat in onlangse wysigings vertoon word:',
@@ -1239,7 +1271,7 @@ Hier volg 'n lukraak gegenereerde waarde wat u kan gebruik: $1",
'savedprefs' => 'U voorkeure is gestoor.',
'timezonelegend' => 'Tydsone:',
'localtime' => 'Plaaslike tyd:',
-'timezoneuseserverdefault' => 'Bedienerverstek',
+'timezoneuseserverdefault' => 'Gebruik wiki se verstekwaarde ($1)',
'timezoneuseoffset' => 'Ander (spesifiseer tydsverskil)',
'timezoneoffset' => 'Tydsverskil¹:',
'servertime' => 'Bedienertyd:',
@@ -1274,6 +1306,7 @@ Die aksie kan nie ongedaan gemaak word nie.',
'prefs-registration' => 'Registrasiedatum:',
'yourrealname' => 'Regte naam:',
'yourlanguage' => 'Taal:',
+'yourvariant' => 'Taalvariant vir inhoud:',
'yournick' => 'Bynaam (vir handtekening)',
'prefs-help-signature' => 'Kommentaar op besprekingsbladsye moet met "<nowiki>~~~~</nowiki>" onderteken word.
Die tildes word in u handtekening omgeskakel en die datum en tyd word insluit.',
@@ -1288,8 +1321,8 @@ Dit mag nie meer as $1 {{PLURAL:$1|karakter|karakters}} bevat nie.',
Die inligting is vir ander gebruikers sigbaar.',
'email' => 'E-pos',
'prefs-help-realname' => 'Regte naam (opsioneel): as u hierdie verskaf, kan dit gebruik word om erkenning vir u werk te gee.',
-'prefs-help-email' => 'E-posadres is opsioneel, maar maak dit moontlik om u wagwoord aan u te pos sou u dit vergeet.
-U kan ook besluit om e-pos te ontvang as ander gebruikers u gebruikers- of besprekingsblad wysig sonder om u identiteit te verraai.',
+'prefs-help-email' => 'E-posadres is opsioneel, maar is nodig om u wagwoord aan u te stuur sou u dit vergeet.',
+'prefs-help-email-others' => 'U kan ook kies om ander toe te laat om u deur u gebruikers- en besprekingsbladsy te kontak sonder om u identiteit te openbaar.',
'prefs-help-email-required' => 'E-pos adres word benodig.',
'prefs-info' => 'Basiese inligting',
'prefs-i18n' => 'Taalinstellings',
@@ -1414,15 +1447,15 @@ U kan ook besluit om e-pos te ontvang as ander gebruikers u gebruikers- of bespr
'right-userrights' => 'Wysig alle gebruiker regte',
'right-userrights-interwiki' => 'Wysig gebruikersregte van gebruikers op ander wikis',
'right-siteadmin' => 'Sluit en ontsluit die datbasis',
-'right-reset-passwords' => 'Herstel ander gebruikers se wagwoorde',
'right-override-export-depth' => "Eksporteer bladsye insluitend geskakelde bladsye tot 'n diepte van 5",
'right-sendemail' => 'Stuur e-pos aan ander gebruikers',
# User rights log
-'rightslog' => 'Gebruikersregtelogboek',
-'rightslogtext' => 'Hier onder is die logboek van gebruikersregte wat verander is.',
-'rightslogentry' => 'wysig gebruikersregte vir $1 van $2 na $3',
-'rightsnone' => '(geen)',
+'rightslog' => 'Gebruikersregtelogboek',
+'rightslogtext' => 'Hier onder is die logboek van gebruikersregte wat verander is.',
+'rightslogentry' => 'wysig gebruikersregte vir $1 van $2 na $3',
+'rightslogentry-autopromote' => 'was outomaties bevorder van $2 na $3',
+'rightsnone' => '(geen)',
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'lees die bladsy',
@@ -1552,13 +1585,13 @@ Om die lêer in 'n artikel te gebruik, plaas 'n skakel in een van die volgende f
'minlength1' => 'Prentname moet ten minste een letter lank wees.',
'illegalfilename' => 'Die lêernaam "$1" bevat karakters wat nie toegelaat word in bladsytitels nie. Verander asseblief die naam en probeer die lêer weer laai.',
'badfilename' => 'Prentnaam is verander na "$1".',
-'filetype-mime-mismatch' => 'Lêer-uitbreiding stem nie met die MIME-tipe ooreen nie.',
+'filetype-mime-mismatch' => 'Lêer-uitbreiding ".$1" stem nie met die MIME-tipe van die lêer ($2) ooreen nie.',
'filetype-badmime' => 'Lêers met MIME-tipe "$1" word nie toegelaat nie.',
'filetype-bad-ie-mime' => 'Die lêer kan nie opgelaai word nie omdat Internet Explorer dit sal identifiseer as "$1", \'n nie toegelate lêertipe wat moontlik skadelik is.',
'filetype-unwanted-type' => "'''\".\$1\"''' is 'n ongewenste lêertipe.
Aanbevole {{PLURAL:\$3|lêertipe|lêertipes}} is \$2.",
-'filetype-banned-type' => "'''\".\$1\"''' is nie 'n toegelate lêertipe nie.
-Toelaatbare {{PLURAL:\$3|lêertipes|lêertipes}} is \$2.",
+'filetype-banned-type' => 'Die {{PLURAL:$4|lêertipe|lêertipes}} word \'\'\'".$1"\'\'\' nie toegelaat nie.
+Toelaatbare {{PLURAL:$3|lêertipes|lêertipes}} is $2.',
'filetype-missing' => 'Die lêer het geen uitbreiding (soos ".jpg").',
'empty-file' => 'Die lêer wat u probeer oplaai is leeg.',
'file-too-large' => 'Die lêer wat u probeer oplaai is te groot.',
@@ -1575,6 +1608,7 @@ Toelaatbare {{PLURAL:\$3|lêertipes|lêertipes}} is \$2.",
die lêer is $2.',
'largefileserver' => 'Hierdie lêer is groter as wat die bediener se opstelling toelaat.',
'emptyfile' => "Die lêer wat u probeer oplaai het blyk leeg te wees. Dit mag wees omdat u 'n tikfout in die lêernaam gemaak het. Gaan asseblief na en probeer weer.",
+'windows-nonascii-filename' => 'Hierdie wiki ondersteun nie lêername met spesiale karakters nie.',
'fileexists' => "'n Lêer met die naam bestaan reeds, kyk na '''<tt>[[:$1]]</tt>''' as u nie seker is dat u dit wil wysig nie.
[[$1|thumb]]",
'filepageexists' => "Die beskrywingsbladsy vir hierdie lêer bestaan reeds by '''<tt>[[:$1]]</tt>''', maar daar is nie 'n lêer met hierdie naam nie.
@@ -1615,6 +1649,8 @@ Dit word aanbeveel dat u die lêer se skrapgeskiedenis besigtig voor u poog om d
Kyk na die "file_uploads"-instelling.',
'uploadscripted' => "Hierdie lêer bevat HTML- en scriptkode wat verkeerdelik deur 'n webblaaier geïnterpreteer kan word.",
'uploadvirus' => "Hierdie lêer bevat 'n virus! Inligting: $1",
+'uploadjava' => "Die lêer is 'n ZIP wat 'n Java .class-lêer bevat.
+Die oplaai van Java-lêers word nie toegelaat nie, omdat dit sekuriteit kan omseil.",
'upload-source' => 'Bronlêer',
'sourcefilename' => 'Bronlêernaam:',
'sourceurl' => 'Bron-URL:',
@@ -1625,10 +1661,6 @@ Kyk na die "file_uploads"-instelling.',
'watchthisupload' => 'Hou die lêer dop',
'filewasdeleted' => "'n Lêer met hierdie naam is al voorheen opgelaai en daarna geskrap.
Kyk asseblief na die $1 voor u aangaan om dit weer op te laai.",
-'upload-wasdeleted' => "'''Waarskuwing: U is besig om 'n lêer op te laai wat voorheen verwyder is.'''
-
-Dink twee keer na of dit wel gepas is om die lêer hier op te laai.
-Die verwyderingsinligting van die lêer word vir u gemak hier herhaal:",
'filename-bad-prefix' => "Die naam van die lêer wat u besig is om op te laai begin met '''\"\$1\"''', wat 'n nie-beskrywende term is, gewoonlik outomaties toegedien deur digitale kameras.
Kies asseblief 'n meer beskrywende naam vir die lêer.",
'upload-success-subj' => 'Laai suksesvol',
@@ -1654,12 +1686,29 @@ As daar steeds probleme is, kontak 'n [[Special:ListUsers/sysop|administrateur]]
'upload-unknown-size' => 'Onbekende grootte',
'upload-http-error' => "'n HTTP-fout het voorgekom: $1",
+# ZipDirectoryReader
+'zip-file-open-error' => "'n Fout het voorgekom met die opening van die lêer vir ZIP toetsing.",
+'zip-wrong-format' => "Die gespesifiseerde lêer was nie 'n zip-lêer nie.",
+'zip-bad' => 'Die ZIP-lêer is korrup of andersins onleesbaar.
+Dit kan nie behoorlik vir sekuriteit nagegaan word nie.',
+'zip-unsupported' => "Die is 'n ZIP-lêer wat funksies gebruik wat nie deur MediaWiki ondersteun word nie.
+Dit kan nie behoorlik vir sekuriteit nagegaan word nie.",
+
+# Special:UploadStash
+'uploadstash' => 'Verborge oplaaie',
+'uploadstash-summary' => 'Die bladsy wys lêers wat opgelaai is (of tans opgelaai word), maar nog nie op die wiki gepubliseer is nie. Hierdie lêers is slegs vir die gebruikers wat hulle opgelaai het sigbaar.',
+'uploadstash-clear' => 'Gooi verborge lêers weg',
+'uploadstash-nofiles' => 'U het geen verborge lêers nie.',
+'uploadstash-badtoken' => 'Uitvoering van die aksie het misluk, moontlik omdat u "editing credentials" verstryk het. Probeer asseblief weer.',
+'uploadstash-errclear' => 'Die skoonmaak van lêers het misluk.',
+'uploadstash-refresh' => 'Verfris die lys van lêers',
+
# img_auth script messages
'img-auth-accessdenied' => 'Toegang geweier',
'img-auth-nopathinfo' => 'PATH_INFO word vermis.
U bediener is nie ingestel om hierdie inligting deur te stuur nie.
Miskien gebruik dit CGI, waartydens img_auth nie ondersteun word nie.
-Sien http://www.mediawiki.org/wiki/Manual:Image_Authorization vir meer inligting.',
+[//www.mediawiki.org/wiki/Manual:Image_Authorization Sien regte vir beelde] vir meer inligting.',
'img-auth-notindir' => 'Die aangevraagde pad is nie die ingestelde oplaaigids nie.',
'img-auth-badtitle' => 'Dit was nie moontlik om \'n geldige bladsynaam van "$1" te maak nie.',
'img-auth-nologinnWL' => 'U is nie aangeteken en "$1" is nie op die witlys nie.',
@@ -1731,14 +1780,14 @@ Kliek op die opskrifte om die tabel te hersorteer.',
'filehist-filesize' => 'Lêergrootte',
'filehist-comment' => 'Opmerking',
'filehist-missing' => 'Die lêer kon nie gevind word nie',
-'imagelinks' => 'Lêerskakels',
+'imagelinks' => 'Lêergebruik',
'linkstoimage' => 'Die volgende {{PLURAL:$1|bladsy|$1 bladsye}} gebruik hierdie prent:',
'linkstoimage-more' => "Daar is meer as $1 {{PLURAL:$1|skakel|skakels}} na hierdie lêer.
Die volgende lys vertoon slegs die eerste {{PLURAL:$1|skakel|$1 skakels}} wat na die lêer verwys.
'n [[Special:WhatLinksHere/$2|Volledige lys]] is ook beskikbaar.",
'nolinkstoimage' => 'Daar is geen bladsye wat hierdie prent gebruik nie.',
'morelinkstoimage' => 'Wys [[Special:WhatLinksHere/$1|meer skakels]] na die lêer.',
-'redirectstofile' => "Die volgende {{PLURAL:$1|lêer is 'n aanstuur|$1 lêers is aansture}} na die lêer:",
+'linkstoimage-redirect' => '$1 (lêeraanstuur) $2',
'duplicatesoffile' => "Die volgende {{PLURAL:$1|lêer is 'n duplikaat|$1 lêers is duplikate}} van die lêer ([[Special:FileDuplicateSearch/$2|meer details]]):",
'sharedupload' => 'Die lêer kom vanaf $1 en mag moontlik ook op ander projekte gebruik word.',
'sharedupload-desc-there' => 'Hierdie lêer kom vanaf $1 en kan ook in ander projekte gebruik word.
@@ -1826,18 +1875,19 @@ Die beskrywing op die [$2 lêer se inligtingsblad] word hieronder weergegee.',
'statistics-users-active-desc' => "Gebruikers wat in die afgelope {{PLURAL:$1|dag|$1 dae}} 'n handeling uitgevoer het",
'statistics-mostpopular' => 'Mees bekykte bladsye',
-'disambiguations' => 'Bladsye wat onduidelikhede opklaar',
+'disambiguations' => 'Bladsye wat na dubbelsinnigheidsbladsye skakel',
'disambiguationspage' => 'Template:Dubbelsinnig',
'disambiguations-text' => "Die volgende bladsye skakel na '''dubbelsinnigheidsbladsye'''.
Die bladsye moet gewysig word om eerder direk na die regte onderwerpe te skakel.<br />
'n Bladsy word beskou as 'n dubbelsinnigheidsbladsy as dit 'n sjabloon bevat wat geskakel is vanaf [[MediaWiki:Disambiguationspage]]",
-'doubleredirects' => 'Dubbele aansture',
-'doubleredirectstext' => 'Hierdie lys bevat bladsye wat aansture na ander aanstuurblaaie is.
+'doubleredirects' => 'Dubbele aansture',
+'doubleredirectstext' => 'Hierdie lys bevat bladsye wat aansture na ander aanstuurblaaie is.
Elke ry bevat skakels na die eerste en die tweede aanstuur, asook die eerste reël van van die tweede aanstuur se teks, wat gewoonlik die "regte" teiken-bladsy gee waarna die eerste aanstuur behoort te wys.
<del>Doodgekrapte reëls</del> dui aan dat die probleem reeds opgelos is.',
-'double-redirect-fixed-move' => "[[$1]] was geskuif en is nou 'n deurverwysing na [[$2]].",
-'double-redirect-fixer' => 'Aanstuur hersteller',
+'double-redirect-fixed-move' => "[[$1]] was geskuif en is nou 'n deurverwysing na [[$2]].",
+'double-redirect-fixed-maintenance' => 'Maak dubbele aanstuur vanaf [[$1]] na [[$2]] reg.',
+'double-redirect-fixer' => 'Aanstuur hersteller',
'brokenredirects' => 'Stukkende aansture',
'brokenredirectstext' => 'Die volgende aansture skakel na bladsye wat nie bestaan nie.',
@@ -1915,6 +1965,7 @@ Dit is dus moontlik dat 'n lêer hier gelys word terwyl dit tog in gebruik is.",
'pager-newer-n' => '{{PLURAL:$1|nuwer 1|nuwer $1}}',
'pager-older-n' => '{{PLURAL:$1|ouer 1|ouer $1}}',
'suppress' => 'Toesig',
+'querypage-disabled' => 'Hierdie spesiale bladsy is afgeskakel om werkverrigting te verbeter (bediener is oorlaai).',
# Book sources
'booksources' => 'Boekbronne',
@@ -1966,7 +2017,7 @@ Sie ook [[Special:WantedCategories|nie-bestaande kategorieë met verwysings]].',
'sp-deletedcontributions-contribs' => 'bydraes',
# Special:LinkSearch
-'linksearch' => 'Eksterne skakels',
+'linksearch' => 'Eksterne skakels soek',
'linksearch-pat' => 'Soekpatroon:',
'linksearch-ns' => 'Naamruimte:',
'linksearch-ok' => 'Soek',
@@ -2031,6 +2082,10 @@ Daar kan [[{{MediaWiki:Listgrouprights-helppage}}|extra inligting]] oor individu
'noemailtext' => "Hierdie gebruiker het nie 'n geldige e-posadres gespesifiseer nie.",
'nowikiemailtitle' => 'Geen E-pos toegelaat nie',
'nowikiemailtext' => 'Hierdie gebruiker wil geen e-pos van andere gebruikers ontvang nie.',
+'emailnotarget' => 'Nie-bestaande of ongeldige gebruikernaam vir ontvanger.',
+'emailtarget' => 'Verskaf ontvanger se gebruikersnaam',
+'emailusername' => 'Gebruikernaam:',
+'emailusernamesubmit' => 'Dien in',
'email-legend' => "Stuur 'n E-pos na 'n ander gebruiker van {{SITENAME}}",
'emailfrom' => 'Van:',
'emailto' => 'Aan:',
@@ -2056,11 +2111,11 @@ Daar kan [[{{MediaWiki:Listgrouprights-helppage}}|extra inligting]] oor individu
'watchnologin' => 'Nie ingeteken nie',
'watchnologintext' => 'U moet [[Special:UserLogin|ingeteken]]
wees om u dophoulys te verander.',
-'addedwatch' => 'Bygevoeg tot dophoulys',
+'addwatch' => 'Voeg by dophoulys',
'addedwatchtext' => "Die bladsy \"[[:\$1]]\" is by u [[Special:Watchlist|dophoulys]] bygevoeg. Toekomstige wysigings aan hierdie bladsy en sy verwante besprekingsblad sal op [[Special:Watchlist|u dophoulys]] gelys word en sal in '''vetdruk''' in die [[Special:RecentChanges|lys van onlangse wysigings]] vertoon word, sodat u dit makliker kan raaksien.
As u die bladsy later van u dophoulys wil verwyder, kliek \"verwyder van dophoulys\" in die kieslys bo-aan die bladsy.",
-'removedwatch' => 'Afgehaal van dophoulys',
+'removewatch' => 'Verwyder van dophoulys',
'removedwatchtext' => 'Die bladsy "[[:$1]]" is van [[Special:Watchlist|u dophoulys]] afgehaal.',
'watch' => 'Hou dop',
'watchthispage' => 'Hou hierdie bladsy dop',
@@ -2081,8 +2136,9 @@ As u die bladsy later van u dophoulys wil verwyder, kliek \"verwyder van dophoul
'watchlist-options' => 'Opsies vir dophoulys',
# Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Plaas op dophoulys...',
-'unwatching' => 'Verwyder van dophoulys...',
+'watching' => 'Plaas op dophoulys...',
+'unwatching' => 'Verwyder van dophoulys...',
+'watcherrortext' => '\'n Fout het voorgekom met die wysiging van u dophoulys-instelling vir "$1".',
'enotif_mailer' => '{{SITENAME}} E-pos kennisgewings',
'enotif_reset' => 'Merk alle bladsye as besoek',
@@ -2109,17 +2165,20 @@ Wiki: $PAGEEDITOR_WIKI
Tensy u hierdie bladsy besoek, sal u geen verdere kennisgewings ontvang nie.
U kan ook die waarskuwingsvlag op u dophoulys verstel.
- Groete van {{SITENAME}} se waarskuwingssisteem.
+Groete van {{SITENAME}} se waarskuwingssisteem.
--
+U kan u e-posvoorkeure stel by:
+{{canonicalurl:{{#special:Preferences}}}}
+
U kan u dophoulys wysig by:
-{{fullurl:{{#special:Watchlist}}/edit}}
+{{canonicalurl:{{#special:EditWatchlist}}}}
Om die bladsy vanaf u dophoulys te verwyder, besoek:
$UNWATCHURL
Terugvoer en verdere bystand:
-{{fullurl:{{MediaWiki:Helppage}}}}',
+{{canonicalurl:{{MediaWiki:Helppage}}}}',
# Delete
'deletepage' => 'Skrap bladsy',
@@ -2135,7 +2194,7 @@ Terugvoer en verdere bystand:
Bevestig asseblief dat u dit wil doen, dat u die gevolge verstaan en dat u dit doen in ooreenstemming met die [[{{MediaWiki:Policy-url}}]].",
'actioncomplete' => 'Aksie uitgevoer',
'actionfailed' => 'Aksie het gefaal',
-'deletedtext' => '"<nowiki>$1</nowiki>" is geskrap.
+'deletedtext' => '"$1" is geskrap.
Kyk na $2 vir \'n rekord van onlangse skrappings.',
'deletedarticle' => '"[[$1]]" geskrap',
'suppressedarticle' => 'het "[[$1]]" verberg',
@@ -2194,7 +2253,7 @@ Sien die [[Special:ProtectedPages|lys van beveiligde bladsye]] vir alle bladsye
'protect_expiry_invalid' => 'Vervaltyd is ongeldig.',
'protect_expiry_old' => 'Vervaltyd is in die verlede.',
'protect-unchain-permissions' => 'Ontsluit verdere beskermingsopsies',
-'protect-text' => "U kan die veiligheidsvlak vir blad '''<nowiki>$1</nowiki>''' hier bekyk of verander.",
+'protect-text' => "U kan die veiligheidsvlak vir blad '''$1''' hier bekyk of verander.",
'protect-locked-blocked' => "U kan nie beskermingsvlakke verander terwyl u geblok is nie.
Hier volg die huidige oprigtings vir die bladsy '''$1''':",
'protect-locked-dblock' => "Die beskermingsvlak kan nie tans gewysig word nie omdat die databasis gesluit is.
@@ -2247,9 +2306,8 @@ Hier is die huidige verstellings vir bladsy '''$1''':",
'viewdeletedpage' => 'Bekyk geskrapte bladsye',
'undeletepagetext' => 'Die volgende {{PLURAL:$1|bladsy|$1 bladsye}} is geskrap, maar is nog in die argief en kan teruggeplaas word. Die argief van geskrapte blaaie kan periodiek skoongemaak word.',
'undelete-fieldset-title' => 'Plaas weergawes terug',
-'undeleteextrahelp' => "Om die hele bladsy, inklusief alle vroeër weergawes, terug te plaas: laat alle blokkies gedeselekteer en kliek op '''''Plaas terug'''''.
-Om slegs bepaalde weergawes terug te sit: kies die weergawes om terug te plaas en kliek op '''''Plaas terug'''''.
-As u op '''''Herinstel''''' kliek word die kommentaarveld leeggemaak en word alle weergawes gedeselekteer.",
+'undeleteextrahelp' => "Om die hele bladsy, inklusief alle vroeër weergawes, terug te plaas: laat alle blokkies gedeselekteer en kliek op '''''{{int:undeletebtn}}'''''.
+Om slegs bepaalde weergawes terug te sit: kies die weergawes om terug te plaas en kliek op '''''{{int:undeletebtn}}'''''.",
'undeleterevisions' => '$1 {{PLURAL:$1|weergawe|weergawes}} in argief',
'undeletehistory' => "As u 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.",
@@ -2294,9 +2352,12 @@ $1',
'undelete-show-file-submit' => 'Ja',
# Namespace form on various pages
-'namespace' => 'Naamruimte:',
-'invert' => 'Omgekeerde seleksie',
-'blanknamespace' => '(Hoof)',
+'namespace' => 'Naamruimte:',
+'invert' => 'Omgekeerde seleksie',
+'tooltip-invert' => 'Merk die boks om bladsye in die gekose naamruimte (en die gepaardgaande naamruimtes as gekies) te versteek',
+'namespace_association' => 'Gekoppelde naamruimte',
+'tooltip-namespace_association' => 'Merk die boks om die besprekings- en onderwerpnaamruimte die by die geselekteerde naamruimte in te sluit',
+'blanknamespace' => '(Hoof)',
# Contributions
'contributions' => 'Gebruikersbydraes',
@@ -2345,13 +2406,15 @@ Die laaste inskrywing uit die blokkeerlogboek word hier ter inligting weergegee:
'whatlinkshere-filters' => 'Filters',
# Block/unblock
+'autoblockid' => 'Outomatiese blokkade #$1',
+'block' => 'Blok gebruiker',
+'unblock' => 'Deblokkeer gebruiker',
'blockip' => 'Blokkeer gebruiker',
'blockip-title' => 'Blokkeer gebruiker',
'blockip-legend' => 'Blokkeer gebruiker of 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 [[{{MediaWiki:Policy-url}}|{{SITENAME}}-beleid]].
Vul 'n spesifieke rede hier onder in (haal byvoorbeeld spesifieke bladsye wat gevandaliseer is, aan).",
-'ipaddress' => 'IP-adres:',
'ipadressorusername' => 'IP-adres of gebruikersnaam:',
'ipbexpiry' => 'Duur:',
'ipbreason' => 'Rede:',
@@ -2364,7 +2427,7 @@ Vul 'n spesifieke rede hier onder in (haal byvoorbeeld spesifieke bladsye wat ge
** Intimiderende gedrag (teistering)
** Misbruik van veelvuldige rekeninge
** Onaanvaarbare gebruikersnaam',
-'ipbanononly' => 'Blokkeer slegs anonieme gebruikers',
+'ipb-hardblock' => 'Voorkom dat aangetekende gebruikers vanaf die IP-adres kan wysig',
'ipbcreateaccount' => 'Blokkeer registrasie van gebruikers',
'ipbemailban' => 'Verbied gebruiker om e-pos te stuur',
'ipbenableautoblock' => 'Outomaties die IP-adresse van die gebruiker blokkeer',
@@ -2375,12 +2438,15 @@ Vul 'n spesifieke rede hier onder in (haal byvoorbeeld spesifieke bladsye wat ge
'ipbotherreason' => 'Ander/ekstra rede:',
'ipbhidename' => 'Verberg gebruiker van wysigings en lyste',
'ipbwatchuser' => 'Hou die gebruiker se bladsy en besprekingsbladsy dop.',
-'ipballowusertalk' => 'Laat gebruiker toe om sy eie besprekingsblad tydens die blokkade te wysig',
+'ipb-disableusertalk' => 'Voorkom dat die gebruiker tydens die blokkade sy eie besprekingsblad kan wysig',
'ipb-change-block' => 'Herblokkeer die gebruiker met hierdie instellings',
+'ipb-confirm' => 'Bevestig blokkade',
'badipaddress' => 'Die IP-adres is nie in die regte formaat nie.',
'blockipsuccesssub' => 'Blokkering het geslaag',
'blockipsuccesstext' => "[[Special:Contributions/$1|$1]] is geblokkeer.<br />
Sien die [[Special:IPBlockList|IP-bloklys]] vir 'n oorsig van blokkerings.",
+'ipb-blockingself' => 'U is besig om uself te blokkeer! Is u seker u wil dit doen?',
+'ipb-confirmhideuser' => 'U staan op die punt om \'n "versteekte gebruiker" te blokkeer. Dit sal die gebruiker se naam vanaf alle lyste en logboeke onderdruk. Is u seker u wil om dit te doen?',
'ipb-edit-dropdown' => 'Werk lys van redes by',
'ipb-unblock-addr' => 'Deblokkeer $1',
'ipb-unblock' => "Deblokkeer 'n gebruiker of IP-adres",
@@ -2390,17 +2456,23 @@ Sien die [[Special:IPBlockList|IP-bloklys]] vir 'n oorsig van blokkerings.",
'unblockiptext' => "Gebruik die vorm hier onder om skryftoegang te herstel vir 'n voorheen geblokkeerde IP-adres.",
'ipusubmit' => 'Hef blokkade op',
'unblocked' => 'Blokkade van [[User:$1|$1]] is opgehef',
+'unblocked-range' => '$1 is gedeblokkeer',
'unblocked-id' => 'Blokkade $1 is opgehef',
+'blocklist' => 'Geblokkeerde gebruikers',
'ipblocklist' => 'Geblokkeerde IP-adresse en gebruikers',
'ipblocklist-legend' => "Soek 'n geblokkeerde gebruiker",
-'ipblocklist-username' => 'Gebruikersnaam of IP adres:',
-'ipblocklist-sh-userblocks' => 'gebruikersblokkades $1',
-'ipblocklist-sh-tempblocks' => 'tydelike blokkades $1',
-'ipblocklist-sh-addressblocks' => 'enkel IP-blokkades $1',
+'blocklist-userblocks' => 'Versteek geblokkeerde gebruikers',
+'blocklist-tempblocks' => 'Versteek tydelike blokkades',
+'blocklist-addressblocks' => 'Versteek blokkades met een IP-adres',
+'blocklist-timestamp' => 'Tydstip',
+'blocklist-target' => 'Doel',
+'blocklist-expiry' => 'Verval',
+'blocklist-by' => 'Geblokkeer deur',
+'blocklist-params' => 'Blokkadeparameters',
+'blocklist-reason' => 'Rede',
'ipblocklist-submit' => 'Soek',
'ipblocklist-localblock' => 'Lokale blokkade',
'ipblocklist-otherblocks' => 'Ander {{PLURAL:$1|blokkade|blokkades}}',
-'blocklistline' => '$1, $2 het $3 geblok ($4)',
'infiniteblock' => 'vir altyd',
'expiringblock' => 'verval op $1 om $2',
'anononlyblock' => 'anoniem-alleen',
@@ -2423,7 +2495,7 @@ Die verbergingslogboek word hieronder ter verwysing weergegee:',
'blocklogentry' => '"[[$1]]" is vir \'n periode van $2 $3 geblok',
'reblock-logentry' => 'het die instellings vir die blokkade vir [[$1]] gewysig. Dit verval nou op $2 om $3',
'blocklogtext' => "Hier is 'n lys van onlangse blokkeer en deblokkeer aksies. Outomaties geblokkeerde IP-adresse word nie vertoon nie.
-Sien die [[Special:IPBlockList|IP-bloklys]] vir geblokkeerde adresse.",
+Sien die [[Special:BlockList|IP-bloklys]] vir geblokkeerde adresse.",
'unblocklogentry' => 'blokkade van $1 is opgehef:',
'block-log-flags-anononly' => 'anonieme gebruikers alleenlik',
'block-log-flags-nocreate' => 'registrasie van gebruikers geblokkeer',
@@ -2437,10 +2509,10 @@ Sien die [[Special:IPBlockList|IP-bloklys]] vir geblokkeerde adresse.",
'ipb_expiry_temp' => 'Blokkades vir versteekte gebruikers moet permanent wees.',
'ipb_hide_invalid' => 'Dit is nie moontlik om hierdie gebruiker te verberg nie; miskien het hy al te veel wysigings gemaak.',
'ipb_already_blocked' => '"$1" is reeds geblok',
-'ipb-needreblock' => '== Hierdie gebruiker is reeds geblokkeer ==
-$1 is al geblokkeer.
+'ipb-needreblock' => '$1 is al geblokkeer.
Wil u die instellings wysig?',
'ipb-otherblocks-header' => 'Ander {{PLURAL:$1|blokkade|blokkades}}',
+'unblock-hideuser' => 'U kan nie die gebruiker deblokkeer nie, omdat die gebruikersnaam versteek is.',
'ipb_cant_unblock' => 'Fout: Blokkade-ID $1 kan nie gevind word nie.
Die blokkade is moontlik reeds opgehef.',
'ipb_blocked_as_range' => "Fout: die IP-adres $1 is nie direk geblokkeer nie en die blokkade kan nie opgehef word nie.
@@ -2482,6 +2554,7 @@ Bevestig asseblief dat dit is wat u wil doen.',
'lockfilenotwritable' => 'Kan nie na die databasis se sperlêer (lock file) skryf nie.
Om die databasis te ontsluit moet u skyfregte aan die lêer op die webbediener toeken.',
'databasenotlocked' => 'Die databasis is nie gesluit nie.',
+'lockedbyandtime' => '(deur $1 om $3 op $2)',
# Move page
'move-page' => 'Skuif "$1"',
@@ -2601,7 +2674,7 @@ In die laatste geval kan u ook \'n verwysing gebruik, byvoorbeeld [[{{#Special:E
'allmessagesdefault' => 'Verstekteks',
'allmessagescurrent' => 'Huidige teks',
'allmessagestext' => "Hier is 'n lys boodskappe wat in die ''MediaWiki''-naamspasie beskikbaar is.
-Gaan na [http://www.mediawiki.org/wiki/Localisation MediaWiki-lokalisasie] en [http://translatewiki.net translatewiki.net] as u wil help om MediaWiki te vertaal.",
+Gaan na [//www.mediawiki.org/wiki/Localisation MediaWiki-lokalisasie] en [//translatewiki.net translatewiki.net] as u wil help om MediaWiki te vertaal.",
'allmessagesnotsupportedDB' => "Daar is geen ondersteuning vir '''{{ns:special}}:Allmessages''' omdat '''\$wgUseDatabaseMessages''' uitgeskakel is.",
'allmessages-filter-legend' => 'Filter',
'allmessages-filter' => 'Filtreer op staat van verandering:',
@@ -2746,9 +2819,7 @@ U kan daar \'n wysigingsopsomming byvoeg.',
'common.css' => '/** Gemeenskaplike CSS vir alle omslae */',
# Metadata
-'nodublincore' => 'Dublin Core RDF-metadata is afgeskakel op hierdie bediener.',
-'nocreativecommons' => 'Creative Commons RDF-metadata is afgeskakel op hierdie bediener.',
-'notacceptable' => "Die wikibediener kan nie data in 'n formaat wat jou kliënt kan lees verskaf nie.",
+'notacceptable' => "Die wikibediener kan nie data in 'n formaat wat jou kliënt kan lees verskaf nie.",
# Attribution
'anonymous' => 'Anonieme {{PLURAL:$1|gebruiker|gebruikers}} van {{SITENAME}}',
@@ -2772,39 +2843,23 @@ Hierdie situasie was waarskynlik deur 'n skakel na 'n eksterne webtuiste op ons
'spam_blanking' => "Alle weergawes met 'n skakel na $1 word verwyder",
# Info page
-'infosubtitle' => 'Inligting vir bladsy',
-'numedits' => 'Aantal wysigings (bladsy): $1',
-'numtalkedits' => 'Aantal wysigings (besprekingsblad): $1',
-'numwatchers' => 'Aantal dophouers: $1',
-'numauthors' => 'Aantal outeurs (bladsy): $1',
-'numtalkauthors' => 'Aantal outeurs (besprekingsblad): $1',
+'pageinfo-title' => 'Inligting oor "$1"',
+'pageinfo-header-edits' => 'Wysigings',
+'pageinfo-header-watchlist' => 'Dophoulys',
+'pageinfo-header-views' => 'Kere gewys',
+'pageinfo-subjectpage' => 'Bladsy',
+'pageinfo-talkpage' => 'Besprekingsblad',
+'pageinfo-watchers' => 'Aantal dophouers',
+'pageinfo-edits' => 'Aantal wysigings',
+'pageinfo-authors' => 'Aantal verskillende outeurs',
+'pageinfo-views' => 'Aantal kere gewys',
+'pageinfo-viewsperedit' => 'Kere gewys per wysiging',
# Skin names
'skinname-standard' => 'Standaard',
'skinname-nostalgia' => 'Nostalgie',
'skinname-cologneblue' => 'Keulen blou',
-# Math options
-'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 teksblaaiers).',
-'mw_math_modern' => 'Moderne blaaiers.',
-'mw_math_mathml' => 'MathML',
-
-# Math errors
-'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',
-'math_image_error' => 'PNG-omskakeling het gefaal.
-Kontroleer of LaTeX en dvipng (of dvips + gs + convert) korrek geïnstalleer is.',
-'math_bad_tmpdir' => 'Die gids vir tydelike lêers vir wiskundige formules bestaan nie of kan nie geskep word nie',
-'math_bad_output' => 'Die gids vir lêers met wiskundige formules bestaan nie of kan nie geskep word nie',
-'math_notexvc' => 'Kan nie die texvc program vind nie;
-stel asseblief op volgens die beskrywing in math/README.',
-
# Patrolling
'markaspatrolleddiff' => 'Merk as gekontroleerd',
'markaspatrolledtext' => 'Merk hierdie bladsy as gekontroleerd',
@@ -2840,21 +2895,24 @@ $1',
'nextdiff' => 'Nuwer wysiging →',
# Media information
-'mediawarning' => "'''Waarskuwing''': hierdie lêertipe bevat moontlik programkode wat u stelsel skade kan berokken.",
-'imagemaxsize' => "Beperk beeldgrootte tot:<br />''(vir lêerbeskrywingsbladsye)''",
-'thumbsize' => 'Grootte van duimnaelskets:',
-'widthheightpage' => '$1×$2, $3 {{PLURAL:$3|bladsy|bladsye}}',
-'file-info' => 'lêergrootte: $1, MIME-tipe: $2',
-'file-info-size' => '$1 × $2 pixels, lêergrootte: $3, MIME type: $4',
-'file-nohires' => '<small>Geen hoër resolusie is beskikbaar nie.</small>',
-'svg-long-desc' => 'SVG-lêer, nominaal $1 × $2 pixels, lêergrootte: $3',
-'show-big-image' => 'Volle resolusie',
-'show-big-image-thumb' => '<small>Grootte van hierdie voorskou: $1 × $2 pixels</small>',
-'file-info-gif-looped' => 'herhalend',
-'file-info-gif-frames' => '$1 {{PLURAL:$1|raam|rame}}',
-'file-info-png-looped' => 'herhalend',
-'file-info-png-repeat' => '$1 {{PLURAL:$1|keer|kere}} gespeel',
-'file-info-png-frames' => '$1 {{PLURAL:$1|raam|rame}}',
+'mediawarning' => "'''Waarskuwing''': hierdie lêertipe bevat moontlik programkode wat u stelsel skade kan berokken.",
+'imagemaxsize' => "Beperk beeldgrootte tot:<br />''(vir lêerbeskrywingsbladsye)''",
+'thumbsize' => 'Grootte van duimnaelskets:',
+'widthheightpage' => '$1×$2, $3 {{PLURAL:$3|bladsy|bladsye}}',
+'file-info' => 'lêergrootte: $1, MIME-tipe: $2',
+'file-info-size' => '$1 × $2 pixels, lêergrootte: $3, MIME type: $4',
+'file-info-size-pages' => '$1 × $2 pikels, lêergrootte: $3, MIME-tipe: $4, $5 {{PLURAL:$5|bladsy|bladsye}}',
+'file-nohires' => '<small>Geen hoër resolusie is beskikbaar nie.</small>',
+'svg-long-desc' => 'SVG-lêer, nominaal $1 × $2 pixels, lêergrootte: $3',
+'show-big-image' => 'Volle resolusie',
+'show-big-image-preview' => '<small>Grootte van hierdie voorskou: $1.</small>',
+'show-big-image-other' => '<small>Ander resolusies: $1.</small>',
+'show-big-image-size' => '$1 × $2 piksels',
+'file-info-gif-looped' => 'herhalend',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|raam|rame}}',
+'file-info-png-looped' => 'herhalend',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|keer|kere}} gespeel',
+'file-info-png-frames' => '$1 {{PLURAL:$1|raam|rame}}',
# Special:NewFiles
'newimages' => 'Gallery van nuwe beelde',
@@ -2881,7 +2939,7 @@ Enige opeenvolgende skakels op dieselfde lyn word as uitsonderings beskou, bv. b
As die lêer verander is, mag sekere inligting nie meer ooreenkom met die van die gewysigde lêer nie.",
'metadata-expand' => 'Wys uitgebreide gegewens',
'metadata-collapse' => 'Steek uitgebreide gegewens weg',
-'metadata-fields' => 'Die EXIF-metadatavelde wat in die boodskap gelys is sal op die beeld se bladsy ingesluit word as die metadatabel ingevou is.
+'metadata-fields' => "Die velde in die boodskap word ook gewys op 'n beeldbladsy as die metadatatabel toegevou is.
Ander velde sal versteek wees.
* make
* model
@@ -2889,7 +2947,13 @@ Ander velde sal versteek wees.
* exposuretime
* fnumber
* isospeedratings
-* focallength',
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude",
# EXIF tags
'exif-imagewidth' => 'Breedte',
@@ -2904,13 +2968,11 @@ Ander velde sal versteek wees.
'exif-ycbcrpositioning' => 'Y- en C-posisionering',
'exif-xresolution' => 'Horisontale resolusie',
'exif-yresolution' => 'Vertikale resolusie',
-'exif-resolutionunit' => 'Eenheid X en Y resolusie',
'exif-stripoffsets' => 'Ligging van beeldgegewens',
'exif-rowsperstrip' => 'Rye per strook',
'exif-stripbytecounts' => 'Grepe per gekompakteerde strook',
'exif-jpeginterchangeformat' => 'Afstand na JPEG SOI',
'exif-jpeginterchangeformatlength' => 'Grepe van JPEG-gegewens',
-'exif-transferfunction' => 'Oordragfunksie',
'exif-whitepoint' => 'Witpuntchromasiteit',
'exif-primarychromaticities' => 'Chromasiteit van primêre kleure',
'exif-ycbcrcoefficients' => 'Transformasiematriks-koëffisiënte vir die kleurruimte',
@@ -2929,7 +2991,6 @@ Ander velde sal versteek wees.
'exif-compressedbitsperpixel' => 'Beeldkompressiemetode',
'exif-pixelydimension' => 'Beeldwydte',
'exif-pixelxdimension' => 'Beeldhoogte',
-'exif-makernote' => 'Notas van vervaardiger',
'exif-usercomment' => 'Opmerkings',
'exif-relatedsoundfile' => 'Verwante klanklêer',
'exif-datetimeoriginal' => 'Gegewens opgestel op',
@@ -2943,7 +3004,6 @@ Ander velde sal versteek wees.
'exif-exposureprogram' => 'Beligtingsprogram',
'exif-spectralsensitivity' => 'Spektrale gevoeligheid',
'exif-isospeedratings' => 'ISO/ASA-waarde',
-'exif-oecf' => 'Opto-elektroniese konversiefaktor',
'exif-shutterspeedvalue' => 'Sluitersnelheid in APEX',
'exif-aperturevalue' => 'Diafragma in APEX',
'exif-brightnessvalue' => 'Helderheid in APEX',
@@ -2956,7 +3016,6 @@ Ander velde sal versteek wees.
'exif-focallength' => 'Brandpuntsafstand',
'exif-subjectarea' => 'Objekruimte',
'exif-flashenergy' => 'Flitssterkte',
-'exif-spatialfrequencyresponse' => 'Ruimtelike frekwensiereaksie',
'exif-focalplanexresolution' => 'Brandpuntsvlak-X-resolusie',
'exif-focalplaneyresolution' => 'Brandpuntsvlak-Y-resolusie',
'exif-focalplaneresolutionunit' => 'Eenheid CCD-resolusie',
@@ -2965,7 +3024,6 @@ Ander velde sal versteek wees.
'exif-sensingmethod' => 'Meetmetode',
'exif-filesource' => 'Lêerbron',
'exif-scenetype' => 'Soort toneel',
-'exif-cfapattern' => 'CFA-patroon',
'exif-customrendered' => 'Aangepaste beeldverwerking',
'exif-exposuremode' => 'Beligtingsinstelling',
'exif-whitebalance' => 'Witbalans',
@@ -3010,10 +3068,79 @@ Ander velde sal versteek wees.
'exif-gpsareainformation' => 'Naam van GPS-gebied',
'exif-gpsdatestamp' => 'GPS-datum',
'exif-gpsdifferential' => 'Differensiële GPS-korreksie',
+'exif-jpegfilecomment' => 'Opmerking in JPEG-lêer',
+'exif-keywords' => 'Sleutelwoorde',
+'exif-worldregioncreated' => 'Wêreldstreek waar die foto geneem is',
+'exif-countrycreated' => 'Land waar die foto geneem is',
+'exif-countrycodecreated' => 'Kode van land waar die foto geneem is',
+'exif-provinceorstatecreated' => 'Provinsie of staat waar die foto geneem is',
+'exif-citycreated' => 'Stad waar die foto geneem is',
+'exif-sublocationcreated' => 'Voorstad van die stad waar die beeld geneem is',
+'exif-worldregiondest' => 'Wêrelddeel getoon',
+'exif-countrydest' => 'Land getoon',
+'exif-countrycodedest' => 'Kode vir die land getoon',
+'exif-provinceorstatedest' => 'Provinsie of staat getoon',
+'exif-citydest' => 'Stad getoon',
+'exif-sublocationdest' => 'Deel van stad getoon',
'exif-objectname' => 'Kort titel',
+'exif-specialinstructions' => 'Spesiale instruksies',
+'exif-headline' => 'Opskrif',
+'exif-credit' => 'Krediet/Verskaffer',
+'exif-source' => 'Bron',
+'exif-editstatus' => 'Redaksionele status van beeld',
+'exif-urgency' => 'Dringendheid',
+'exif-fixtureidentifier' => 'Groepsnaam',
+'exif-locationdest' => 'Plek uitgebeeld',
+'exif-locationdestcode' => 'Kode van die uitgebeelde ligging',
+'exif-objectcycle' => 'Tyd van die dag waarvoor die media bedoel is',
+'exif-contact' => 'Kontak inligting',
+'exif-writer' => 'Skrywer',
+'exif-languagecode' => 'Taal',
+'exif-iimversion' => 'IIM-weergawe',
+'exif-iimcategory' => 'Kategorie',
+'exif-iimsupplementalcategory' => 'Aanvullende kategorieë',
+'exif-datetimeexpires' => 'Moenie gebruik na',
+'exif-datetimereleased' => 'Vrygestel op',
+'exif-originaltransmissionref' => 'Oorspronklike transmissie-liggingskode',
+'exif-identifier' => 'Id',
+'exif-lens' => 'Lens gebruik',
+'exif-serialnumber' => 'Reeksnommer van die kamera',
+'exif-cameraownername' => 'Eienaar van kamera',
+'exif-label' => 'Etiket',
+'exif-datetimemetadata' => 'Datum waarop metadata laas verander is',
+'exif-nickname' => 'Informele naam van die beeld',
+'exif-rating' => 'Waardering (uit 5)',
+'exif-rightscertificate' => 'Regtebeheersertifikaat',
+'exif-copyrighted' => 'Outeursregstus:',
+'exif-copyrightowner' => 'Kopiereghouer',
+'exif-usageterms' => 'Gebruiksvoorwaardes',
+'exif-webstatement' => 'Aanlyn outeursregteverklaring',
+'exif-originaldocumentid' => 'Unieke ID van die oorspronklike dokument',
+'exif-licenseurl' => 'URL vir kopiereg-lisensie',
+'exif-morepermissionsurl' => 'Alternatiewe lisensie-inligting',
+'exif-attributionurl' => 'Gebruik die volgende skakel as die werk hergebruik word',
+'exif-preferredattributionname' => 'Krediteer die volgende persone as die werk hergebruik word',
+'exif-pngfilecomment' => 'Opmerking in PNG-lêer',
+'exif-disclaimer' => 'Voorbehoud',
+'exif-contentwarning' => 'Waarskuwing oor inhoud',
+'exif-giffilecomment' => 'Opmerking in GIF-lêer',
+'exif-intellectualgenre' => 'Tipe item',
+'exif-subjectnewscode' => 'Onderwerpkode',
+'exif-scenecode' => 'IPTC toneelkode',
+'exif-event' => 'Gebeurtenis uitgebeeld',
+'exif-organisationinimage' => 'Organisasie uitgebeeld',
+'exif-personinimage' => 'Persoon uitgebeeld',
+'exif-originalimageheight' => 'Hoogte van beeld voor dit besny is',
+'exif-originalimagewidth' => 'Wydte van beeld voor dit besny is',
# EXIF attributes
'exif-compression-1' => 'Ongekompakteerd',
+'exif-compression-2' => 'CCITT Groep 3 1-dimensionale aangepaste "Huffman run length"-kodering',
+'exif-compression-3' => 'CCITT Groep 3 fakskodering',
+'exif-compression-4' => 'CCITT Groep 4 fakskodering',
+
+'exif-copyrighted-true' => 'Onder kopiereg',
+'exif-copyrighted-false' => 'Publieke Domein',
'exif-unknowndate' => 'Datum onbekend',
@@ -3029,6 +3156,8 @@ Ander velde sal versteek wees.
'exif-planarconfiguration-1' => 'chunky dataformaat',
'exif-planarconfiguration-2' => 'planar dataformat',
+'exif-colorspace-65535' => 'Nie gekalibreer',
+
'exif-componentsconfiguration-0' => 'bestaan nie',
'exif-exposureprogram-0' => 'Nie bepaal',
@@ -3142,6 +3271,10 @@ Ander velde sal versteek wees.
'exif-gpslongitude-e' => 'Oosterlengte',
'exif-gpslongitude-w' => 'Westerlengte',
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|meter|meter}} bo seespieël',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|meter|meter}} onder seespieël',
+
'exif-gpsstatus-a' => 'Besig met meting',
'exif-gpsstatus-v' => 'Meetinteroperabiliteit',
@@ -3153,21 +3286,73 @@ Ander velde sal versteek wees.
'exif-gpsspeed-m' => 'Myl per huur',
'exif-gpsspeed-n' => 'Knope',
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Kilometers',
+'exif-gpsdestdistance-m' => 'Myle',
+'exif-gpsdestdistance-n' => 'Seemyle',
+
+'exif-gpsdop-excellent' => 'Uitstekend ($1)',
+'exif-gpsdop-good' => 'Goed ($1)',
+'exif-gpsdop-moderate' => 'Gemiddeld ($1)',
+'exif-gpsdop-fair' => 'Redelik ($1)',
+'exif-gpsdop-poor' => 'Sleg ($1)',
+
+'exif-objectcycle-a' => 'Slegs oggend',
+'exif-objectcycle-p' => 'Slegs aand',
+'exif-objectcycle-b' => 'Beide môre en die aand',
+
# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
'exif-gpsdirection-t' => 'Regte rigting',
'exif-gpsdirection-m' => 'Magnetiese rigting',
+'exif-ycbcrpositioning-1' => 'Gesentreerd',
+'exif-ycbcrpositioning-2' => 'Val saam',
+
+'exif-dc-contributor' => 'Medewerkers',
+'exif-dc-coverage' => 'Ruimtelike of temporale omvang van die media',
+'exif-dc-date' => 'Datum(s)',
+'exif-dc-publisher' => 'Uitgewer',
+'exif-dc-relation' => 'Verwante media',
+'exif-dc-rights' => 'Regte',
+'exif-dc-source' => 'Bronmedia',
+'exif-dc-type' => 'Mediatipe',
+
+'exif-rating-rejected' => 'Afgewys',
+
+'exif-isospeedratings-overflow' => 'Groter as 65535',
+
+'exif-iimcategory-ace' => 'Kuns, kultuur en vermaak',
+'exif-iimcategory-clj' => 'Misdaad en die reg',
+'exif-iimcategory-dis' => 'Rampe en ongelukke',
+'exif-iimcategory-fin' => 'Ekonomie en besigheid',
+'exif-iimcategory-edu' => 'Onderwys',
+'exif-iimcategory-evn' => 'Omgewing',
+'exif-iimcategory-hth' => 'Gesondheid',
+'exif-iimcategory-hum' => 'Menslike belang',
+'exif-iimcategory-lab' => 'Arbeid',
+'exif-iimcategory-lif' => 'Leefstyl en ontspanning',
+'exif-iimcategory-pol' => 'Politiek',
+'exif-iimcategory-rel' => 'Godsdiens en geloof',
+'exif-iimcategory-sci' => 'Wetenskap en tegnologie',
+'exif-iimcategory-soi' => 'Sosiale kwessies',
+'exif-iimcategory-spo' => 'Sport',
+'exif-iimcategory-war' => 'Oorlog, konflik en onrus',
+'exif-iimcategory-wea' => 'Weer',
+
+'exif-urgency-normal' => 'Normaal ($1)',
+'exif-urgency-low' => 'Laag ( $1 )',
+'exif-urgency-high' => 'Hoog ($1)',
+'exif-urgency-other' => 'Gebruiker-gedefinieerde prioriteit ($1)',
+
# External editor support
'edit-externally' => "Wysig hierdie lêer met 'n eksterne program",
-'edit-externally-help' => '(Sien [http://www.mediawiki.org/wiki/Manual:External_editors instruksies] vir meer inligting)',
+'edit-externally-help' => '(Sien [//www.mediawiki.org/wiki/Manual:External_editors instruksies] vir meer inligting)',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'alles',
-'imagelistall' => 'alle',
-'watchlistall2' => 'alles',
-'namespacesall' => 'alle',
-'monthsall' => 'alle',
-'limitall' => 'alle',
+'watchlistall2' => 'alles',
+'namespacesall' => 'alle',
+'monthsall' => 'alle',
+'limitall' => 'alle',
# E-mail address confirmation
'confirmemail' => 'Bevestig e-posadres',
@@ -3241,16 +3426,24 @@ $1',
'trackbackdeleteok' => 'Die verwysende bladsy is suksesvol verwyder.',
# Delete conflict
-'deletedwhileediting' => "'''Let op''': die bladsy is verwyder terwyl u besig was om dit te wysig!",
-'confirmrecreate' => "Gebruiker [[User:$1|$1]] ([[User talk:$1|bespreek]]) het hierdie blad uitgevee ná u begin redigeer het met rede: : ''$2''
+'deletedwhileediting' => "'''Let op''': die bladsy is verwyder terwyl u besig was om dit te wysig!",
+'confirmrecreate' => "Gebruiker [[User:$1|$1]] ([[User talk:$1|bespreek]]) het hierdie blad uitgevee ná u begin redigeer het met rede: : ''$2''
Bevestig asseblief dat u regtig hierdie blad oor wil skep.",
-'recreate' => 'Herskep',
+'confirmrecreate-noreason' => 'Gebruiker [[User:$1|$1]] ([[User talk:$1|bespreking]]) het die bladsy geskrap nadat u dit begin wysig het.
+Bevestig dat u die bladsy wil herskep.',
+'recreate' => 'Herskep',
# action=purge
'confirm_purge_button' => 'OK',
'confirm-purge-top' => 'Verwyder die kas van hierdie blad?',
'confirm-purge-bottom' => "Die opruiming van die kas sorg daarvoor dat die mees onlangse weergawe van 'n bladsy vertoon word.",
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-watch-top' => 'Voeg hierdie bladsy by u dophoulys?',
+'confirm-unwatch-button' => 'OK',
+'confirm-unwatch-top' => 'Verwyder hierdie bladsy van u dophoulys?',
+
# Multipage image navigation
'imgmultipageprev' => '← vorige bladsy',
'imgmultipagenext' => 'volgende bladsy →',
@@ -3300,7 +3493,7 @@ Probeer normale voorskou.',
'watchlistedit-normal-legend' => 'Verwyder titels van dophoulys',
'watchlistedit-normal-explain' => 'Die bladsye in u dophoulys word hier onder vertoon.
Selekteer die titels wat verwyder moet word en kliek op {{int:Watchlistedit-normal-submit}}" onder aan die bladsy.
-Alternatiewelik kan u die [[Special:Watchlist/raw|bronkode wysig]].',
+Alternatiewelik kan u die [[Special:EditWatchlist/raw|bronkode wysig]].',
'watchlistedit-normal-submit' => 'Verwyder Titels',
'watchlistedit-normal-done' => 'Daar is {{PLURAL:$1|1 bladsy|$1 bladsye}} van u dophoulys verwyder:',
'watchlistedit-raw-title' => 'Wysig u dophoulys se bronkode',
@@ -3308,7 +3501,7 @@ Alternatiewelik kan u die [[Special:Watchlist/raw|bronkode wysig]].',
'watchlistedit-raw-explain' => 'Die bladsye in u dophoulys word hier onder vertoon.
U kan die lys wysig deur titels by te sit of te verwyder (een bladsy per lyn).
As u klaar is, klik op "{{int:Watchlistedit-raw-submit}}" onder aan die bladsy.
-U kan ook die [[Special:Watchlist/edit|standaard opdaterigskerm gebruik]].',
+U kan ook die [[Special:EditWatchlist|standaard opdaterigskerm gebruik]].',
'watchlistedit-raw-titles' => 'Titels:',
'watchlistedit-raw-submit' => 'Opdateer dophoulys',
'watchlistedit-raw-done' => 'U dophoulys is opgedateer.',
@@ -3325,33 +3518,33 @@ U kan ook die [[Special:Watchlist/edit|standaard opdaterigskerm gebruik]].',
'duplicate-defaultsort' => 'Waarskuwing: Die standaardsortering "$2" kry voorrang voor die sortering "$1".',
# Special:Version
-'version' => 'Weergawe',
-'version-extensions' => 'Uitbreidings geïnstalleer',
-'version-specialpages' => 'Spesiale bladsye',
-'version-parserhooks' => 'Ontlederhoeke',
-'version-variables' => 'Veranderlikes',
-'version-skins' => 'Omslae',
-'version-other' => 'Ander',
-'version-mediahandlers' => 'Mediaverwerkers',
-'version-hooks' => 'Hoeke',
-'version-extension-functions' => 'Uitbreidingsfunksies',
-'version-parser-extensiontags' => 'Ontleder-uitbreidingsetikette',
-'version-parser-function-hooks' => 'Ontleder-funksiehoeke',
-'version-skin-extension-functions' => 'Omslag-uitbreidingsfunksies',
-'version-hook-name' => 'Hoek naam',
-'version-hook-subscribedby' => 'Gebruik deur',
-'version-version' => '(Weergawe $1)',
-'version-license' => 'Lisensie',
-'version-poweredby-credits' => "Hierdie wiki word aangedryf deur '''[http://www.mediawiki.org/ MediaWiki]''', kopiereg © 2001-$1 $2.",
-'version-poweredby-others' => 'andere',
-'version-license-info' => 'MediaWiki is vrye sagteware, u kan MediaWiki versprei en/of wysig onder die voorwaardes van die "GNU Algemene Publieke Lisensie", soos deur die "Free Software Foundation" gepubliseer; óf weergawe 2 van die lisensie, of (as u wil) enige latere weergawe daarvan.
+'version' => 'Weergawe',
+'version-extensions' => 'Uitbreidings geïnstalleer',
+'version-specialpages' => 'Spesiale bladsye',
+'version-parserhooks' => 'Ontlederhoeke',
+'version-variables' => 'Veranderlikes',
+'version-antispam' => 'Spam-voorkoming',
+'version-skins' => 'Omslae',
+'version-other' => 'Ander',
+'version-mediahandlers' => 'Mediaverwerkers',
+'version-hooks' => 'Hoeke',
+'version-extension-functions' => 'Uitbreidingsfunksies',
+'version-parser-extensiontags' => 'Ontleder-uitbreidingsetikette',
+'version-parser-function-hooks' => 'Ontleder-funksiehoeke',
+'version-hook-name' => 'Hoek naam',
+'version-hook-subscribedby' => 'Gebruik deur',
+'version-version' => '(Weergawe $1)',
+'version-license' => 'Lisensie',
+'version-poweredby-credits' => "Hierdie wiki word aangedryf deur '''[//www.mediawiki.org/ MediaWiki]''', kopiereg © 2001-$1 $2.",
+'version-poweredby-others' => 'andere',
+'version-license-info' => 'MediaWiki is vrye sagteware, u kan MediaWiki versprei en/of wysig onder die voorwaardes van die "GNU Algemene Publieke Lisensie", soos deur die "Free Software Foundation" gepubliseer; óf weergawe 2 van die lisensie, of (as u wil) enige latere weergawe daarvan.
MediaWiki word versprei met die hoop dat dit nuttig sal wees, maar SONDER ENIGE WAARBORGE, selfs sonder geïmpliseerde waarborg van VERHANDELBAARHEID of GESKIKTHEID VIR \'N SPESIFIEKE DOEL. Verwys na die "GNU Algemene Publieke Lisensie" vir meer besonderhede.
-Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van die "GNU Algemene Publieke Lisensie"] ontvang het, indien nie, skryf aan die "Free Software Foundation, Inc", 51 Franklin-straat, Vyfde Vloer, Boston, MA 02110-1301, Verenigde State van Amerika of [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html lees dit hier aanlyn].',
-'version-software' => 'Geïnstalleerde sagteware',
-'version-software-product' => 'Produk',
-'version-software-version' => 'Weergawe',
+Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van die "GNU Algemene Publieke Lisensie"] ontvang het, indien nie, skryf aan die "Free Software Foundation, Inc", 51 Franklin-straat, Vyfde Vloer, Boston, MA 02110-1301, Verenigde State van Amerika of [//www.gnu.org/licenses/old-licenses/gpl-2.0.html lees dit hier aanlyn].',
+'version-software' => 'Geïnstalleerde sagteware',
+'version-software-product' => 'Produk',
+'version-software-version' => 'Weergawe',
# Special:FilePath
'filepath' => 'Lêerpad',
@@ -3361,22 +3554,22 @@ Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van
Beelde word in hulle volle resolusie gewys. Ander lêertipes word direk met hulle MIME-geskakelde programme geopen.",
# Special:FileDuplicateSearch
-'fileduplicatesearch' => 'Soek duplikaat lêers',
-'fileduplicatesearch-summary' => 'Soek na duplikaat lêers volgends hul hashwaardes.
-
-Verskaf die lêernaam sonder die "{{ns:file}}:" voorvoegsel.',
-'fileduplicatesearch-legend' => "Soek vir 'n duplikaat",
-'fileduplicatesearch-filename' => 'Lêernaam:',
-'fileduplicatesearch-submit' => 'Soek',
-'fileduplicatesearch-info' => '$1 × $2 pixels<br />Lêergrootte: $3<br />MIME-tipe: $4',
-'fileduplicatesearch-result-1' => 'Die lêer "$1" het geen identiese duplikate nie.',
-'fileduplicatesearch-result-n' => 'Die lêer "$1" het {{PLURAL:$2|een identiese duplikaat|$2 identiese duplikate}}.',
+'fileduplicatesearch' => 'Soek duplikaat lêers',
+'fileduplicatesearch-summary' => 'Soek na duplikaat lêers volgends hul hashwaardes.',
+'fileduplicatesearch-legend' => "Soek vir 'n duplikaat",
+'fileduplicatesearch-filename' => 'Lêernaam:',
+'fileduplicatesearch-submit' => 'Soek',
+'fileduplicatesearch-info' => '$1 × $2 pixels<br />Lêergrootte: $3<br />MIME-tipe: $4',
+'fileduplicatesearch-result-1' => 'Die lêer "$1" het geen identiese duplikate nie.',
+'fileduplicatesearch-result-n' => 'Die lêer "$1" het {{PLURAL:$2|een identiese duplikaat|$2 identiese duplikate}}.',
+'fileduplicatesearch-noresults' => 'Daar is nie \'n lêer met die naam "$1" nie.',
# Special:SpecialPages
'specialpages' => 'Spesiale bladsye',
'specialpages-note' => '----
* Normale spesiale bladsye.
-* <strong class="mw-specialpagerestricted">Beperkte spesiale bladsye.</strong>',
+* <span class="mw-specialpagerestricted">Spesiale bladsye met beperkte toegang.</span>
+* <span class="mw-specialpagecached">Spesiale bladsye met gegewens uit die kas (kan verouderd wees).</span>',
'specialpages-group-maintenance' => 'Onderhoud verslae',
'specialpages-group-other' => 'Ander spesiale bladsye',
'specialpages-group-login' => 'Inteken / aansluit',
diff --git a/languages/messages/MessagesAln.php b/languages/messages/MessagesAln.php
index 1aa670cf..14467551 100644
--- a/languages/messages/MessagesAln.php
+++ b/languages/messages/MessagesAln.php
@@ -49,8 +49,8 @@ $specialPageAliases = array(
);
$magicWords = array(
- 'currentmonth' => array( '1', 'MUEJIAKTUAL', 'MUEJIAKTUAL2', 'MUAJIMOMENTAL', 'CURRENTMONTH', 'CURRENTMONTH2' ),
- 'currentmonth1' => array( '1', 'MUEJIAKTUAL1', 'CURRENTMONTH1' ),
+ 'currentmonth' => array( '1', 'MUEJIAKTUAL', 'MUEJIAKTUAL2', 'MUAJIMOMENTAL', 'MUAJIMOMENTAL2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+ 'currentmonth1' => array( '1', 'MUEJIAKTUAL1', 'MUAJIMOMENTAL1', 'CURRENTMONTH1' ),
'currentmonthname' => array( '1', 'EMNIMUEJITAKTUAL', 'EMRIIMUAJITMOMENTAL', 'CURRENTMONTHNAME' ),
'currenttime' => array( '1', 'KOHATASH', 'KOHATANI', 'CURRENTTIME' ),
'currenthour' => array( '1', 'ORATASH', 'ORATANI', 'CURRENTHOUR' ),
@@ -192,16 +192,6 @@ $messages = array(
'index-category' => 'Faqe e indeksume',
'noindex-category' => 'Faqe e paindeksume',
-'mainpagetext' => "'''MediaWiki software u instalue me sukses.'''",
-'mainpagedocfooter' => 'Për mâ shumë informata rreth përdorimit të softwareit wiki, ju lutem shikoni [http://meta.wikimedia.org/wiki/Help:Contents dokumentacionin].
-
-
-== Për fillim ==
-
-* [http://www.mediawiki.org/wiki/Help:Configuration_settings Konfigurimi i MediaWikit]
-* [http://www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWikit]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWikit]',
-
'about' => 'Rreth',
'article' => 'Artikulli',
'newwindow' => '(çelet në nji dritare të re)',
@@ -252,7 +242,6 @@ $messages = array(
'history' => 'Historiku i faqes',
'history_short' => 'Të përparshmet',
'updatedmarker' => 'ndryshue nga vizita jeme e fundit',
-'info_short' => 'Informacion',
'printableversion' => 'Version për shtyp',
'permalink' => 'Vegëz e përhershme',
'print' => 'Shtyp',
@@ -443,12 +432,11 @@ Ju lutemi provoni prap mbas disa minutave.',
'protectedinterface' => 'Kjo faqe përmban tekst të interfaceit të softwareit dhe âsht e mbrojtun për me pengue keqpërdorimin.',
'editinginterface' => "'''Kujdes:''' Po redaktoni nji faqe që përdoret për me ofrue tekst të interfaceit të softwareit.
Ndryshimet në këtë faqe do të prekin pamjen e interfaceit për të gjithë përdoruesit tjerë.
-Për përkthim, konsideroni ju lutem përdorimin e [http://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e MediaWiki për përshtatje gjuhësore.",
+Për përkthim, konsideroni ju lutem përdorimin e [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e MediaWiki për përshtatje gjuhësore.",
'sqlhidden' => '(Kërkesa SQL e msheftë)',
'cascadeprotected' => 'Kjo faqe âsht e mbrojtun prej redaktimit, për shkak se âsht e përfshime në {{PLURAL:$1|faqen, e cila âsht e mbrojtun|faqet, të cilat janë të mbrojtuna}} me opcionin "zinxhir" të zgjedhun:
$2',
'namespaceprotected' => "Nuk keni tagër me redaktue faqe në hapësinën '''$1'''.",
-'customcssjsprotected' => 'Nuk keni tagër me redaktue këtë faqe, sepse përmban përcaktime personale të nji përdoruesi tjetër.',
'ns-specialprotected' => 'Faqet speciale nuk mujnë me u redaktue.',
'titleprotected' => 'Ky titull âsht i mbrojtun për krijim prej përdoruesit [[User:$1|$1]].
Arsyeja e dhânë âsht "\'\'$2\'\'".',
@@ -506,7 +494,7 @@ Të lutem aktivizoji dhe provo prap.',
'nosuchuser' => 'Nuk ka përdorues me emnin "$1".
Emnat janë senzitiv në madhësi të germës.
Kontrollo drejtshkrimin ose [[Special:UserLogin/signup|krijo llogari]].',
-'nosuchusershort' => 'Nuk ka përdorues me emnin "<nowiki>$1</nowiki>".
+'nosuchusershort' => 'Nuk ka përdorues me emnin "$1".
Kontrollo drejtshkrimin.',
'nouserspecified' => 'Duhesh me dhânë nji nofkë.',
'login-userblocked' => 'Ky përdorues është bllokuar. Identifikohu nuk lejohet',
@@ -559,7 +547,7 @@ Ju lutemi pritni pak për me provue prap.',
'loginlanguagelabel' => 'Gjuha: $1',
'suspicious-userlogout' => 'Kërkesa juaj për të shkëputet u mohua sepse duket sikur është dërguar nga një shfletues të thyer ose caching proxy',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'Ndrysho fjalëkalimin',
'resetpass_announce' => 'Jeni kyçë me nji kod të përkohshëm të dërguem me email.
Për me krye kyçjen, specifikoni fjalëkalimin e ri këtu:',
@@ -578,6 +566,10 @@ Për me krye kyçjen, specifikoni fjalëkalimin e ri këtu:',
Ndoshta tashmâ e keni ndryshue fjalëkalimin me sukses, apo keni kërkue nji fjalëkalim të përkohshëm.',
'resetpass-temp-password' => 'Fjalëkalimi i përkohshëm:',
+# Special:PasswordReset
+'passwordreset' => 'reset Fjalëkalimi',
+'passwordreset-username' => 'Emri i përdoruesit:',
+
# Edit page toolbar
'bold_sample' => 'Tekst i trashë',
'bold_tip' => 'Tekst i nximë',
@@ -589,8 +581,6 @@ Ndoshta tashmâ e keni ndryshue fjalëkalimin me sukses, apo keni kërkue nji fj
'extlink_tip' => 'Vegëz e jashtme (mos e harro prefiksin http://)',
'headline_sample' => 'Teksti i kryetitullit',
'headline_tip' => 'Kryetitull i nivelit 2',
-'math_sample' => 'Vendos formulën këtu',
-'math_tip' => 'Formulë matematikore (LaTeX)',
'nowiki_sample' => 'Vendos tekst të paformatueshëm këtu',
'nowiki_tip' => 'Shpërfille formatimin wiki',
'image_sample' => 'Shembull.jpg',
@@ -677,7 +667,7 @@ Nëse jeni përdorues anonim dhe keni përshtypjen se po ju drejtohen komente jo
Ju mundeni [[Special:Search/{{PAGENAME}}|me kërkue këtë titull]] në faqe tjera,
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} me kërkue në regjistrat tematikisht të afërm],
apo [{{fullurl:{{FULLPAGENAME}}|action=edit}} me redaktue këtë faqe]</span>.',
-'userpage-userdoesnotexist' => 'Llogaria e përdoruesit "$1" nuk âsht regjistrue.
+'userpage-userdoesnotexist' => 'Llogaria e përdoruesit "<nowiki>$1</nowiki>" nuk âsht regjistrue.
Ju lutemi kontrolloni nëse doni me krijue/redaktue këtë faqe.',
'clearyourcache' => "'''Shenim - Mbas ruejtjes, ka mundësi që duheni me shmângë memorizimin në cache për me i pâ ndryshimet.'''
'''Mozilla / Firefox / Safari:''' mbani ''Shift'' tue klikue në ''Reload'', ose trusni ''Ctrl-F5'' ose ''Ctrl-R'' (''Command-R'' në Mac);
@@ -995,9 +985,10 @@ Vini re se indeksat e tyne të përmbajtjes së {{SITENAME}} munden me qenë të
'changepassword' => 'Ndërrimi i fjalëkalimit',
'prefs-skin' => 'Doka',
'skin-preview' => 'Parapâmja',
-'prefs-math' => 'Formulë',
'datedefault' => "S'ka parapëlqim",
+'prefs-beta' => 'karakteristika Beta',
'prefs-datetime' => 'Data dhe ora',
+'prefs-labs' => 'Laboratorë karakteristika',
'prefs-personal' => 'Profili i përdoruesit',
'prefs-rc' => 'Ndryshimet e freskëta',
'prefs-watchlist' => 'Lista e mbikëqyrjeve',
@@ -1018,8 +1009,6 @@ Vini re se indeksat e tyne të përmbajtjes së {{SITENAME}} munden me qenë të
'columns' => 'Kolona:',
'searchresultshead' => 'Kërkimi',
'resultsperpage' => 'Gjetje për faqe:',
-'contextlines' => 'Rreshta për gjetje:',
-'contextchars' => 'Konteksti për rresht:',
'stub-threshold' => 'Pragu për formatimin e <a href="#" class="stub">vegzave të cungueme</a> në (byte):',
'recentchangesdays' => 'Numri i ditëve për me i tregue te ndryshimet e freskëta:',
'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|ditë|ditë}})',
@@ -1316,10 +1305,8 @@ Faqet në [[Special:Watchlist|listën tuej të mbikëqyrjes]] janë '''të theks
# Watchlist
'watchlist' => 'Mbikëqyrjet e mija',
'mywatchlist' => 'Lista mbikqyrëse',
-'addedwatch' => 'U shtu te lista mbikqyrëse',
'addedwatchtext' => "Faqja \"[[:\$1]]\" iu shtue [[Special:Watchlist|listës suej të mbikëqyrjes]].
Ndryshimet e ardhshme të kësaj faqeje dhe të faqes gjegjëse të diskutimit kanë me u listue këte, dhe faqja do të tregohet '''e theksueme''' në [[Special:RecentChanges|listën e ndryshimeve të fundit]] për me râ në sy.",
-'removedwatch' => 'U hjek nga lista mibkqyrëse',
'removedwatchtext' => 'Faqja "[[:$1]]" âsht hjekë prej [[Special:Watchlist|listës së mbikëqyrjes]].',
'watch' => 'Mbikqyre',
'watchthispage' => 'Mbikëqyr këtë faqe',
@@ -1337,7 +1324,7 @@ Ndryshimet e ardhshme të kësaj faqeje dhe të faqes gjegjëse të diskutimit k
'confirmdeletetext' => 'Jeni tue fshi nji faqe bashkë me krejt historikun e saj.
Ju lutemi konfirmoni që kjo âsht ajo që deshtët me bâ, që i keni të njoftuna konsekuencat, dhe që këtë jeni tue e bâ në përputhje me [[{{MediaWiki:Policy-url}}|politikat]].',
'actioncomplete' => 'Veprimi u kry',
-'deletedtext' => '"<nowiki>$1</nowiki>" âsht fshi.
+'deletedtext' => '"$1" âsht fshi.
Shih $2 për regjistrin e fshimjeve të fundit.',
'deletedarticle' => 'grisi "[[$1]]"',
'dellogpage' => 'Regjistri i fshimjeve',
@@ -1357,7 +1344,7 @@ Shih $2 për regjistrin e fshimjeve të fundit.',
'protectexpiry' => 'Afáti',
'protect_expiry_invalid' => 'Data e skadimit asht e pasaktë.',
'protect_expiry_old' => 'Data e skadimit asht në kohën kalueme.',
-'protect-text' => "Këtu muneni me shiku dhe me ndryshu nivelin e mbrojtjes për faqen '''<nowiki>$1</nowiki>'''.",
+'protect-text' => "Këtu muneni me shiku dhe me ndryshu nivelin e mbrojtjes për faqen '''$1'''.",
'protect-locked-access' => "Llogaria juej nuk ka privilegjet e nevojitme për me ndryshu nivelin e mbrojtjes. Kufizimet e kësaj faqe janë '''$1''':",
'protect-cascadeon' => 'Kjo faqe aktualisht âsht e mbrojtun sepse përfshihet në {{PLURAL:$1|faqen që ka|faqet, të cilat kanë}} mbrojtje të përfshimjes.
Mundeni me ndryshue nivelin e mbrojtjes për këtë faqe, por kjo nuk ka me prekë mbrojtjen e përfshimjes.',
@@ -1568,9 +1555,7 @@ Lejon dhânien e arsyes në përmbledhje.',
'vector.js' => '/* Çdo JavaScript këtu ka me u ngarkue për shfrytëzuesit që përdorin dukjen Vector */',
# Metadata
-'nodublincore' => 'Dublin Core RDF metadata nuk janë aktivizue në këtë server.',
-'nocreativecommons' => 'Creative Commons RDF metadata nuk janë aktivizue në këtë server.',
-'notacceptable' => 'Serveri i wikit nuk mundet me i ofrue të dhânat në formatin që kish mujtë me i lexue klienti juej.',
+'notacceptable' => 'Serveri i wikit nuk mundet me i ofrue të dhânat në formatin që kish mujtë me i lexue klienti juej.',
# Attribution
'anonymous' => '{{PLURAL:$1|Përdorues|Përdorues}} anonim të {{SITENAME}}',
@@ -1586,11 +1571,10 @@ Lejon dhânien e arsyes në përmbledhje.',
'nextdiff' => 'Redaktim ma i ri →',
# Media information
-'file-info-size' => '$1 × $2 pixela, madhësia e skedës: $3, tipi MIME: $4',
-'file-nohires' => '<small>Rezolucioni i plotë.</small>',
-'svg-long-desc' => 'skeda SVG, $1 × $2 pixela, madhësia: $3',
-'show-big-image' => 'Rezolucion i plotë',
-'show-big-image-thumb' => '<small>Madhësia e parapâmjes: $1 × $2 pixela</small>',
+'file-info-size' => '$1 × $2 pixela, madhësia e skedës: $3, tipi MIME: $4',
+'file-nohires' => '<small>Rezolucioni i plotë.</small>',
+'svg-long-desc' => 'skeda SVG, $1 × $2 pixela, madhësia: $3',
+'show-big-image' => 'Rezolucion i plotë',
# Bad image list
'bad_image_list' => 'Formati asht si vijon:
@@ -1625,11 +1609,17 @@ Tjerat kanë me mbetë të mshefuna.
* exposuretime
* fnumber
* isospeedratings
-* focallength',
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
# External editor support
'edit-externally' => 'Ndryshoni kët figurë/skedë me një mjet të jashtëm',
-'edit-externally-help' => '(Shih [http://www.mediawiki.org/wiki/Manual:External_editors udhëzimet e instalimit] për mâ shumë informata)',
+'edit-externally-help' => '(Shih [//www.mediawiki.org/wiki/Manual:External_editors udhëzimet e instalimit] për mâ shumë informata)',
# 'all' in various places, this might be different for inflected languages
'watchlistall2' => 'krejt',
diff --git a/languages/messages/MessagesAm.php b/languages/messages/MessagesAm.php
index b914623e..fbdedd28 100644
--- a/languages/messages/MessagesAm.php
+++ b/languages/messages/MessagesAm.php
@@ -41,9 +41,9 @@ $namespaceAliases = array(
);
$specialPageAliases = array(
- 'Shortpages' => array( 'አጫጭር_ገጾች' ),
'Longpages' => array( 'ረጃጅም_ገጾች' ),
'Newpages' => array( 'አዳዲስ_ገጾች' ),
+ 'Shortpages' => array( 'አጫጭር_ገጾች' ),
);
$messages = array(
@@ -165,15 +165,7 @@ $messages = array(
'category-file-count-limited' => 'በዚሁ መደብ ውስጥ {{PLURAL:$1|የሚከተለው ፋይል አለ|የሚከተሉት $1 ፋይሎች አሉ}}።',
'listingcontinuesabbrev' => '(ተቀጥሏል)',
'index-category' => ' ማውጫው ላይ የተመዘገብ ገጾች',
-
-'mainpagetext' => "'''MediaWiki በትክክል ማስገባቱ ተከናወነ።'''",
-'mainpagedocfooter' => "ስለ ዊኪ ሶፍትዌር ጥቅም ለመረዳት፣ [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] ያንብቡ።
-
-== ለመጀመር ==
-
-* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]",
+'broken-file-category' => 'የማይኖሩ ፋይሎች ያሉባቸው ገጾች',
'about' => 'ስለ',
'article' => 'መጣጥፍ',
@@ -207,7 +199,7 @@ $messages = array(
'vector-view-create' => 'አዲስ ፍጠር',
'vector-view-edit' => 'አርም',
'vector-view-history' => ' ታሪኩን አሳይ',
-'vector-view-view' => ' የተነበበ',
+'vector-view-view' => 'ለማንበብ',
'vector-view-viewsource' => 'ጥሬ ኮድ ለመመልከት',
'errorpagetitle' => 'ስህተት',
@@ -221,7 +213,6 @@ $messages = array(
'history' => 'የገጽ ታሪክ',
'history_short' => 'ታሪክ',
'updatedmarker' => 'ከመጨረሻው ጉብኝቴ በኋላ የተሻሻለ',
-'info_short' => 'መረጃ',
'printableversion' => 'ለህትመት የተዘጋጀ',
'permalink' => 'ቋሚ መያያዣ',
'print' => 'ይታተም',
@@ -291,7 +282,7 @@ $1',
'badaccess' => 'ያልተፈቀደ - አይቻልም',
'badaccess-group0' => 'የጠየቁት አድራጎት እንዲፈጸም ፈቃድ የለዎም።',
-'badaccess-groups' => ' ጥያቂዎት ለሚተሉት ተጥቃሚዎች የተገደበ ነው {{PLURAL:$2|ማህበር|ከማህበራት ላንዱ}}: $1.',
+'badaccess-groups' => 'የጠየቁት አድራጎት ለ$1 {{PLURAL:$2|ማዕረግ ላላቸው|ማዕረጎች ላሏቸው}} አባላት ብቻ ይፈቀዳል።',
'versionrequired' => 'የMediaWiki ዝርያ $1 ያስፈልጋል።',
'versionrequiredtext' => 'ይህንን ገጽ ለመጠቀም የMediaWiki ዝርያ $1 ያስፈልጋል። [[Special:Version|የዝርያውን ገጽ]] ይዩ።',
@@ -384,12 +375,11 @@ $1',
'protectedpagetext' => 'ይኸው ገጽ እንዳይታረም ተጠብቋል።',
'viewsourcetext' => 'የዚህን ገጽ ምንጭ ማየትና መቅዳት ይችላሉ።',
'protectedinterface' => 'ይህ ገጽ ለስልቱ ገጽታ ጽሑፍን ያቀርባል፣፡ ስለዚህ እንዳይበላሽ ተጠብቋል።',
-'editinginterface' => "'''ማስጠንቀቂያ፦''' ይህ ገጽ ለድረገጹ መልክ ጽሕፈት ይሰጣል። በዊኪ ሁሉ ላይ መላውን የድረገጽ መልክ በቀላል ለማስተርጎም [http://translatewiki.net/wiki/Main_Page?setlang=am translatewiki.net] ይጎብኙ።",
+'editinginterface' => "'''ማስጠንቀቂያ፦''' ይህ ገጽ ለድረገጹ መልክ ጽሕፈት ይሰጣል። በዊኪ ሁሉ ላይ መላውን የድረገጽ መልክ በቀላል ለማስተርጎም [//translatewiki.net/wiki/Main_Page?setlang=am translatewiki.net] ይጎብኙ።",
'sqlhidden' => '(የመደበኛ-የመጠይቅ-ቋንቋ (SQL) ጥያቄ ተደበቀ)',
'cascadeprotected' => "'''ማስጠንቀቂያ፦''' ይህ አርእስት ሊፈጠር ወይም ሊቀየር አይቻልም። ምክንያቱም ወደ {{PLURAL:$1|ተከታተለው አርዕስት|ተከታተሉት አርእስቶች}} ተጨምሯል።
$2",
'namespaceprotected' => "በ'''$1''' ክፍለ-ዊኪ ያሉትን ገጾች ለማዘጋጀት ፈቃድ የለዎም።",
-'customcssjsprotected' => 'ይህ ገጽ የሌላ ተጠቃሚ ምርጫዎች ስላሉበት እሱን ለማዘጋጀት ፈቃድ የለዎም።',
'ns-specialprotected' => 'ልዩ ገጾችን ማረም አይፈቀድም።',
'titleprotected' => "ይህ አርዕስት እንዳይፈጠር በ[[User:$1|$1]] ተጠብቋል። የተሰጠው ምክንያት ''$2'' ነው።",
@@ -432,7 +422,7 @@ $2",
'loginsuccesstitle' => 'መግባትዎ ተከናወነ!',
'loginsuccess' => 'እንደ «$1» ሆነው አሁን {{SITENAME}}ን ገብተዋል።',
'nosuchuser' => '«$1» የሚል ብዕር ስም አልተገኘም። አጻጻፉን ይመልከቱ ወይም አዲስ ብዕር ስም ያውጡ።',
-'nosuchusershort' => '«<nowiki>$1</nowiki>» የሚል ብዕር ስም አልተገኘም። አጻጻፉን ይመልከቱ።',
+'nosuchusershort' => '«$1» የሚል ብዕር ስም አልተገኘም። አጻጻፉን ይመልከቱ።',
'nouserspecified' => 'አንድ ብዕር ስም መጠቆም ያስፈልጋል።',
'wrongpassword' => 'የተሰጠው መግቢያ ቃል ልክ አልነበረም። ዳግመኛ ይሞክሩ።',
'wrongpasswordempty' => 'ምንም መግቢያ ቃል አልተሰጠም። ዳግመኛ ይሞክሩ።',
@@ -465,7 +455,7 @@ $2",
እባክዎ እንደገና ሳይሞክሩ ለጥቂት ደቂቃ ይቆዩ።',
'loginlanguagelabel' => 'ቋምቋ፦ $1',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'የአባል መግቢያ ቃል ለመቀየር',
'resetpass_announce' => 'በኢ-ሜል በተላከ ጊዜያዊ ኮድ ገብተዋል። መግባትዎን ለመጨርስ፣ አዲስ መግቢያ ቃል እዚህ መምረጥ አለብዎ።',
'resetpass_header' => 'መግቢያ ቃል ለመቀየር',
@@ -493,8 +483,6 @@ $2",
'extlink_tip' => "የውጭ መያያዣ ለመፍጠር (በ'http://' የሚቀደም)",
'headline_sample' => 'ንዑስ ክፍል',
'headline_tip' => 'የንዑስ-ክፍል አርዕስት ለመፍጠር',
-'math_sample' => 'የሒሳብ ቀመር በዚህ ይግባ',
-'math_tip' => 'የሒሳብ ቀመር (LaTeX) ለመጨመር',
'nowiki_sample' => 'በዚህ ውስጥ የሚከተት ሁሉ የዊኪ-ሥርአተ ቋንቋን ቸል ይላል',
'nowiki_tip' => 'የዊኪ-ሥርአተ ቋንቋን ቸል ለማድረግ',
'image_tip' => 'የስዕል መያያዣ ለመፍጠር',
@@ -560,7 +548,7 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
ወደዚህ በስሕተት ከሆነ የመጡት፣ የቃኝውን «Back» ቁልፍ ይጫኑ።',
'anontalkpagetext' => "----''ይኸው ገጽ ገና ያልገባ ወይም ብዕር ስም የሌለው ተጠቃሚ ውይይት ገጽ ነው። መታወቂያው በ[[ቁጥር አድራሻ]] እንዲሆን ያስፈልጋል። አንዳንዴ ግን አንድ የቁጥር አድራሻ በሁለት ወይም በብዙ ተጠቃሚዎች የጋራ ሊሆን ይችላል። ስለዚህ ለርስዎ የማይገባ ውይይት እንዳይደርስልዎ፣ [[Special:UserLogin|«መግቢያ»]] በመጫን የብዕር ስም ለማውጣት ይችላሉ።''",
'noarticletext' => 'በአሁኑ ወቅት በዚህ ገጽ ላይ ጽሑፍ የለም፤ ነገር ግን በሌሎች ገጾች ላይ [[Special:Search/{{PAGENAME}}|ይህን አርዕስት መፈለግ]]፣ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ከርዕሱ ጋር የተዛመዱ መዝገቦችን መፈልግ]፣ ወይም [{{fullurl:{{FULLPAGENAME}}|action=edit}} አዲስ ገፅ ሊያዘጋጁ] ይችላሉ</span>።',
-'userpage-userdoesnotexist' => 'የብዕር ስም «$1» አልተመዘገበም። እባክዎ ይህን ገጽ ለመፍጠር/ ለማስተካከል የፈለጉ እንደ ሆነ ያረጋግጡ።',
+'userpage-userdoesnotexist' => 'የብዕር ስም «<nowiki>$1</nowiki>» አልተመዘገበም። እባክዎ ይህን ገጽ ለመፍጠር/ ለማስተካከል የፈለጉ እንደ ሆነ ያረጋግጡ።',
'usercssyoucanpreview' => "'''ምክር፦''' ሳይቆጠብ አዲስ CSSዎን ለመሞከር 'ቅድመ እይታ' የሚለውን ይጫኑ።",
'userjsyoucanpreview' => "'''ምክር፦''' ሳይቆጠብ አዲስ JSዎን ለመሞከር 'ቅድመ እይታ' የሚለውን ይጫኑ።",
'usercsspreview' => "'''ማስታወሻ፦ CSS-ዎን ለሙከራ ብቻ እያዩ ነው፤ ገና አልተቆጠበም!'''",
@@ -796,7 +784,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
'changepassword' => 'መግቢያ ቃልዎን ለመቀየር',
'prefs-skin' => 'የድህረ-ገጽ መልክ',
'skin-preview' => 'ቅድመ-ዕይታ',
-'prefs-math' => 'የሂሳብ መልክ',
'datedefault' => 'ግድ የለኝም',
'prefs-datetime' => 'ዘመንና ሰዓት',
'prefs-personal' => 'ያባል ዶሴ',
@@ -817,8 +804,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
'columns' => 'ስንት ዓምዶችስ?',
'searchresultshead' => 'ፍለጋ',
'resultsperpage' => 'ስንት ውጤቶች በየገጹ?',
-'contextlines' => 'ስንት መስመሮች በየውጤቱ?',
-'contextchars' => 'ስንት ፊደላት በየመስመሩ?',
'recentchangesdays' => 'በቅርቡ ለውጦች ዝርዝር ስንት ቀን ይታይ?',
'recentchangesdays-max' => '(እስከ $1 {{PLURAL:$1|ቀን|ቀን}} ድረስ)',
'recentchangescount' => 'በዝርዝርዎ ላይ ስንት ለውጥ ይታይ? (እስከ 500)',
@@ -1072,9 +1057,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
'destfilename' => 'የፋይሉ አዲስ ስም፦',
'watchthisupload' => 'ይህንን ገጽ ለመከታተል',
'filewasdeleted' => 'በዚሁ ስም ያለው ፋይል ከዚህ በፊት ተልኮ እንደገና ጠፍቷል። ዳግመኛ ሳይልኩት $1 ማመልከት ያሻላል።',
-'upload-wasdeleted' => "'''ማስጠንቀቂያ፦ ቀድሞ የተደለዘ ፋይል እየላኩ ነው።'''
-
-ይህን ፋይል መላክ የሚገባ መሆኑን ይቆጠሩ። የፋይሉ ማጥፋት መዝገብ ከዚህ ታች ይታያል፦",
'filename-bad-prefix' => "የሚልኩት ፋይል ስም በ'''«$1»''' ይጀመራል፤ ይህ ብዙ ጊዜ በቁጥራዊ ካሜራ የተወሰነ ገላጭ ያልሆነ ስም ይሆናል። እባክዎ ለፋይልዎ ገላጭ የሆነ ስም ይምረጡ።",
'upload-success-subj' => 'መላኩ ተከናወነ',
@@ -1131,7 +1113,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
'linkstoimage' => '{{PLURAL:$1|የሚከተለው ገጽ ወደዚሁ ፋይል ተያይዟል|የሚከተሉ $1 ገጾች ወደዚሁ ፋይል ተያይዘዋል}}፦',
'nolinkstoimage' => 'ወዲህ ፋይል የተያያዘ ገጽ የለም።',
'morelinkstoimage' => 'ለዚህ ፋይል [[Special:WhatLinksHere/$1|ተጨማሪ መያያዣዎችን]] ለማየት።',
-'redirectstofile' => 'ለዚህ ፋይል {{PLURAL:$1|የሚከተለው ፋይል መምሪያ መንገድ አለ|የሚከተሉት $1 ፋይሎች መምሪያ መንገዶች አሉ}}፦',
'duplicatesoffile' => '{{PLURAL:$1|የሚከተለው ፋይል የዚህ ፋይል ቅጂ ነው|የሚከተሉት $1 ፋይሎች የዚሁ ፋይል ቅጂዎች ናቸው}}፦',
'sharedupload' => 'ይህ ፋይል ከጋራ ምንጭ ($1) የተቀሰመ ነው። በማንኛውም ዊኪ ላይ ሊጠቅም ይቻላል።',
'uploadnewversion-linktext' => 'ለዚሁ ፋይል አዲስ ዕትም ለመላክ',
@@ -1372,11 +1353,9 @@ Also see [[Special:WantedCategories|wanted categories]].',
'watchlistanontext' => 'የሚከታተሉት ገጾች ዝርዝርዎን ለመመልከት ወይም ለማስተካከል እባክዎ $1።',
'watchnologin' => 'ገና አልገቡም',
'watchnologintext' => 'የሚከታተሏቸውን ገጾች ዝርዝር ለመቀየር [[Special:UserLogin|መግባት]] ይኖርብዎታል።',
-'addedwatch' => 'ወደሚከታተሉት ገጾች ተጨመረ',
'addedwatchtext' => "ገጹ «$1» [[Special:Watchlist|ለሚከታተሉት ገጾች]] ተጨምሯል። ወደፊት ይህ ገጽ ወይም የውይይቱ ገጽ ሲቀየር፣ በዚያ ዝርዝር ላይ ይታያል። በተጨማሪም [[Special:RecentChanges|«በቅርብ ጊዜ በተለወጡ» ገጾች]] ዝርዝር፣ በቀላሉ እንዲታይ በ'''ጉልህ ፊደላት''' ተጽፎ ይገኛል።
በኋላ ጊዜ ገጹን ከሚከታተሉት ገጾች ለማስወግድ የፈለጉ እንደሆነ፣ በጫፉ ዳርቻ «አለመከታተል» የሚለውን ይጫኑ።",
-'removedwatch' => 'ከሚከታተሉት ገጾች ተወገደ',
'removedwatchtext' => 'ይህ ገፅ "[[:$1]]" ከ [[Special:Watchlist|your watchlist]] ተወግዷል።',
'watch' => 'ለመከታተል',
'watchthispage' => 'ይህንን ገጽ ለመከታተል',
@@ -1427,10 +1406,10 @@ $NEWPAGE
ከክብር ጋር፣ የ{{SITENAME}} ኢሜል-ማስታወቂያ መርሃግብር።
--
-የሚከታተሉት ገጾች ዝርዝር ለመቀየር፣ {{fullurl:{{#special:Watchlist}}/edit}} ይጎበኙ።
+የሚከታተሉት ገጾች ዝርዝር ለመቀየር፣ {{canonicalurl:{{#special:EditWatchlist}}}} ይጎበኙ።
በተጨማሪ ለመረዳት፦
-{{fullurl:{{MediaWiki:Helppage}}}}',
+{{canonicalurl:{{MediaWiki:Helppage}}}}',
# Delete
'deletepage' => 'ገጹ ይጥፋ',
@@ -1445,7 +1424,7 @@ $NEWPAGE
'confirmdeletetext' => 'ይህን ገጽ ከነ ሙሉ የለውጥ ታሪኩ ሊያጠፉት ነው።
እባክዎን ይህን የሚያደርጉት አስበውበት፣ በ[[{{MediaWiki:Policy-url}}|መተዳደሪያ ደንብም]] መሰረት መሆኑን ያረጋግጡ።',
'actioncomplete' => 'ተፈጽሟል',
-'deletedtext' => '«<nowiki>$1</nowiki>» ጠፍቷል።
+'deletedtext' => '«$1» ጠፍቷል።
(የጠፉትን ገጾች ሁሉ ለመመልከት $2 ይዩ።)',
'deletedarticle' => '«[[$1]]» አጠፋ',
@@ -1490,7 +1469,7 @@ $NEWPAGE
'protectexpiry' => 'የሚያልቅበት ግዜ፦',
'protect_expiry_invalid' => "የተሰጠው 'የሚያልቅበት ጊዜ' ልክ አይደለም።",
'protect_expiry_old' => "የተሰጠው 'የሚያልቅበት ጊዜ' ባለፈው ግዜ ነበር።",
-'protect-text' => "እዚህ ለገጹ «'''<nowiki>$1</nowiki>'''» የመቆለፍ ደረጃ መመልከት ወይም መቀይር ይችላሉ።",
+'protect-text' => "እዚህ ለገጹ «'''$1'''» የመቆለፍ ደረጃ መመልከት ወይም መቀይር ይችላሉ።",
'protect-locked-blocked' => "ማገጃ እያለብዎት የመቆለፍ ደረጃ ለመቀየር አይችሉም። ለገጹ '''$1''' የአሁኑኑ ደረጃ እንዲህ ነው፦",
'protect-locked-dblock' => "መረጃ-ቤቱ እራሱ አሁን ስለሚቆለፍ፣ የገጽ መቆለፍ ደረጃ ሊቀየር አይችልም። ለገጹ '''$1''' የአሁኑኑ ደረጃ እንዲህ ነው፦",
'protect-locked-access' => "እርስዎ ገጽ የመቆለፍ ወይም የመፍታት ፈቃድ የለዎም።<br />አሁኑ የዚሁ ገጽ መቆለፍ ደረጃ እንዲህ ነው፦ '''$1''':",
@@ -1609,7 +1588,6 @@ $1',
'blockip' => 'ተጠቃሚውን ለማገድ',
'blockip-legend' => 'ተጠቃሚ ለማገድ',
'blockiptext' => 'ከዚህ ታች ያለው ማመልከቻ በአንድ ቁጥር አድርሻ ወይም ብዕር ስም ላይ ማገጃ (ማዕቀብ) ለመጣል ይጠቀማል። ይህ በ[[{{MediaWiki:Policy-url}}|መርመርያዎቻችን]] መሠረት ተንኮል ወይም ጉዳት ለመከልከል ብቻ እንዲደረግ ይገባል። ከዚህ ታች የተለየ ምክንያት (ለምሣሌ የተጎዳው ገጽ በማጠቆም) ይጻፉ።',
-'ipaddress' => 'የቁ. አድራሻ፦',
'ipadressorusername' => 'የቁ. አድራሻ ወይም የብዕር ስም፦',
'ipbexpiry' => 'የሚያልቅበት፦',
'ipbreason' => 'ምክንያቱ፦',
@@ -1622,7 +1600,6 @@ $1',
** ዛቻ ማብዛት
** በአድራሻዎች ብዛት መተንኮል
** የማይገባ ብዕር ስም",
-'ipbanononly' => 'በቁ.# የሚታወቅ ተጠቃሚ ብቻ ለመከልከል',
'ipbcreateaccount' => 'ብዕር ስም እንዳያውጣ ለመከልከል',
'ipbemailban' => 'ተጠቃሚው ኢ-ሜል ከመላክ ይከለከል',
'ipbenableautoblock' => 'በተጠቃሚው መጨረሻ ቁ.# እና ካሁን ወዲያ በሚጠቀመው አድራሻ ላይ ማገጃ ይጣል።',
@@ -1647,9 +1624,7 @@ $1',
'unblocked-id' => 'ማገጃ $1 ተነሣ',
'ipblocklist' => 'የድህረ ገፅ መለያዎችንና (IP addresses) እና የተጠቃሚዎችን የብዕር ስም አግድ።',
'ipblocklist-legend' => 'አንድ የታገደውን ተጠቃሚ ለመፈለግ፦',
-'ipblocklist-username' => 'ይህ ብዕር ስም ወይም የቁጥር አድራሻ #፡',
'ipblocklist-submit' => 'ይፈለግ',
-'blocklistline' => '$1 (እ.ኤ.አ.)፦ $2 በ$3 ላይ ማገጃ ጣለ ($4)',
'infiniteblock' => 'መቸም ይማያልቅ',
'expiringblock' => 'በ$1 $2 እ.ኤ.አ. ያልቃል',
'anononlyblock' => 'ያልገቡት የቁ.# ብቻ',
@@ -1665,7 +1640,7 @@ $1',
'contribslink' => 'አስተዋጽኦች',
'blocklogpage' => 'የማገጃ መዝገብ',
'blocklogentry' => 'እስከ $2 ድረስ [[$1]] አገዳ $3',
-'blocklogtext' => 'ይህ መዝገብ ተጠቃሚዎች መቸም ሲታገዱ ወይም ማገጃ ሲነሣ የሚዘረዝር ነው። ለአሁኑ የታገዱት ሰዎች [[Special:IPBlockList|በአሁኑ ማገጃዎች ዝርዝር]] ይታያሉ።',
+'blocklogtext' => 'ይህ መዝገብ ተጠቃሚዎች መቸም ሲታገዱ ወይም ማገጃ ሲነሣ የሚዘረዝር ነው። ለአሁኑ የታገዱት ሰዎች [[Special:BlockList|በአሁኑ ማገጃዎች ዝርዝር]] ይታያሉ።',
'unblocklogentry' => 'የ$1 ማገጃ አነሣ',
'block-log-flags-anononly' => 'ያልገቡት የቁ. አድራሻዎች ብቻ',
'block-log-flags-nocreate' => 'አዲስ ብዕር ስም ከማውጣት ተከለከለ',
@@ -1674,8 +1649,7 @@ $1',
'block-log-flags-nousertalk' => 'የገዛ ውይይት ገጹን ማዘጋጀት አይችልም',
'ipb_expiry_invalid' => 'የሚያልቅበት ግዜ አይሆንም።',
'ipb_already_blocked' => '«$1» ገና ከዚህ በፊት ታግዶ ነው።',
-'ipb-needreblock' => '== ገና ታግዷል ==
-$1 አሁን ገና ታግዷል። ዝርዝሩን ማስተካከል ፈለጉ?',
+'ipb-needreblock' => '$1 አሁን ገና ታግዷል። ዝርዝሩን ማስተካከል ፈለጉ?',
'blockme' => 'ልታገድ',
'proxyblocker-disabled' => 'ይህ ተግባር እንደማይሠራ ተደርጓል።',
'proxyblocksuccess' => 'ተደርጓል።',
@@ -1776,7 +1750,7 @@ $1 አሁን ገና ታግዷል። ዝርዝሩን ማስተካከል ፈለጉ
'allmessagesdefault' => 'የቆየው ጽሕፈት',
'allmessagescurrent' => 'ያሁኑ ጽሕፈት',
'allmessagestext' => 'በ«MediaWiki» ክፍለ-ዊኪ ያሉት የድረገጽ መልክ መልእክቶች ሙሉ ዝርዝር ይህ ነው።
-Please visit [http://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and [http://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.',
+Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.',
'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages''' ስለ ተዘጋ '''{{ns:special}}:Allmessages''' ሊጠቀም አይችልም።",
# Thumbnails
@@ -1874,10 +1848,6 @@ Please visit [http://www.mediawiki.org/wiki/Localisation MediaWiki Localisation]
'tooltip-rollback' => 'ROLLBACK የመጨረሻውን አዛጋጅ ለውጦች በፍጥነት ይገልበጣል።',
'tooltip-undo' => '"መልስ" ይህን ቅድመ እይታ ወደ ቀድሞው የእርማት ቦታው መልስ። ማጠቃለያው ላይ ምክንያታችንን ለማስገባት ይፈቅድልናል።',
-# Metadata
-'nodublincore' => 'Dublin Core RDF metadata ለዚህ ሰርቨር እንደማይሠራ ተደርጓል።',
-'nocreativecommons' => 'Creative Commons RDF metadata ለዚህ ሰርቨር እንደማይሠራ ተደርጓል።',
-
# Attribution
'anonymous' => 'የ{{SITENAME}} ቁ. አድራሻ ተጠቃሚ(ዎች)',
'siteuser' => '{{SITENAME}} ተጠቃሚ $1',
@@ -1890,29 +1860,6 @@ Please visit [http://www.mediawiki.org/wiki/Localisation MediaWiki Localisation]
'spambot_username' => 'MediaWiki የስፓም ማፅዳት',
'spam_reverting' => 'ወደ $1 የሚወስድ መያያዣ ወደሌለበት መጨረሻ ዕትም መለሰው',
-# Info page
-'infosubtitle' => 'መረጃ ለገጹ',
-'numedits' => 'የእትሞች ቁጥር (ገጽ)፦ $1',
-'numtalkedits' => 'የእትሞች ቁጥር (የውይይት ገጽ)፦ $1',
-'numwatchers' => 'የሚከታተሉት ተጠቃሚዎች ቁጥር፦ $1',
-'numauthors' => 'የተለዩ አቅራቢዎች ቁጥር (ገጽ)፦ $1',
-'numtalkauthors' => 'የተለዩ አቅራቢዎች ቁጥር (የውይይት ገጽ)፦ $1',
-
-# Math options
-'mw_math_png' => 'ሁልጊዜ እንደ PNG',
-'mw_math_simple' => 'HTML ቀላል ከሆነ አለዚያ PNG',
-'mw_math_html' => 'HTML ከተቻለ አለዚያ PNG',
-'mw_math_modern' => 'ለዘመናዊ ብራውዘር የተሻለ',
-'mw_math_mathml' => 'MathML ከተቻለ (የሙከራ)',
-
-# Math errors
-'math_failure' => 'ዘርዛሪው ተሳነው',
-'math_unknown_error' => 'የማይታወቅ ስኅተት',
-'math_unknown_function' => 'የማይታወቅ ተግባር',
-'math_lexing_error' => 'የlexing ስህተት',
-'math_syntax_error' => 'የሰዋሰው ስህተት',
-'math_bad_output' => 'ወደ math ውጤት ዶሴ መጻፍ ወይም መፍጠር አይቻልም',
-
# Patrolling
'markaspatrolleddiff' => 'የተሳለፈ ሆኖ ማመልከት',
'markaspatrolledtext' => 'ይህን ገጽ የተመለከተ ሆኖ ለማሳለፍ',
@@ -1944,15 +1891,14 @@ $1',
'nextdiff' => 'የሚቀጥለው ለውጥ →',
# Media information
-'imagemaxsize' => 'በፋይል መግለጫ ገጽ ላይ የስዕል መጠን ወሰን ቢበዛ፦',
-'thumbsize' => 'የናሙና መጠን፦',
-'widthheightpage' => '$1 በ$2፣ $3 ገጾች',
-'file-info' => 'የፋይል መጠን፦ $1፣ የMIME አይነት፦ $2',
-'file-info-size' => '$1 × $2 ፒክስል፤ መጠን፦ $3፤ የMIME ዓይነት፦ $4',
-'file-nohires' => '<small>ከዚህ በላይ ማጉላት አይቻልም።</small>',
-'svg-long-desc' => 'የSVG ፋይል፡ በተግባር $1 × $2 ፒክስል፤ መጠን፦ $3',
-'show-big-image' => 'በሙሉ ጒልህነት ለመመልከት',
-'show-big-image-thumb' => '<small>የዚህ ናሙና ቅጂ ክልል፦ $1 × $2 ፒክሰል</small>',
+'imagemaxsize' => 'በፋይል መግለጫ ገጽ ላይ የስዕል መጠን ወሰን ቢበዛ፦',
+'thumbsize' => 'የናሙና መጠን፦',
+'widthheightpage' => '$1 በ$2፣ $3 ገጾች',
+'file-info' => 'የፋይል መጠን፦ $1፣ የMIME አይነት፦ $2',
+'file-info-size' => '$1 × $2 ፒክስል፤ መጠን፦ $3፤ የMIME ዓይነት፦ $4',
+'file-nohires' => '<small>ከዚህ በላይ ማጉላት አይቻልም።</small>',
+'svg-long-desc' => 'የSVG ፋይል፡ በተግባር $1 × $2 ፒክስል፤ መጠን፦ $3',
+'show-big-image' => 'በሙሉ ጒልህነት ለመመልከት',
# Special:NewFiles
'newimages' => 'የአዳዲስ ሥዕሎች ማሳያ አዳራሽ',
@@ -1980,7 +1926,13 @@ $1',
* exposuretime
* fnumber
* isospeedratings
-* focallength",
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude",
# EXIF tags
'exif-imagewidth' => 'ስፋት',
@@ -1993,12 +1945,10 @@ $1',
'exif-ycbcrpositioning' => 'የY ና C አቀማመጥ',
'exif-xresolution' => 'አድማሳዊ ማጉላት',
'exif-yresolution' => 'ቁም ማጉላት',
-'exif-resolutionunit' => 'የX ና Y ማጉላት መስፈርያ',
'exif-stripoffsets' => 'የስዕል መረጃ ሥፍራ',
'exif-rowsperstrip' => 'የተርታዎች ቁጥር በየቁራጩ',
'exif-stripbytecounts' => 'byte በየተጨመቀ ቁራጩ',
'exif-jpeginterchangeformatlength' => 'የJPEG መረጃ byte',
-'exif-transferfunction' => 'የማሻገር ተግባር',
'exif-datetime' => 'ፋይሉ የተቀየረበት ቀንና ሰዓት',
'exif-imagedescription' => 'የስዕል አርዕስት',
'exif-make' => 'የካሜራው ሠሪ ድርጅት',
@@ -2012,7 +1962,6 @@ $1',
'exif-compressedbitsperpixel' => 'የስዕል መጨመቅ ዘዴ',
'exif-pixelydimension' => 'እውነተኛ የስዕል ስፋት',
'exif-pixelxdimension' => 'እውነተኛ የስዕል ቁመት',
-'exif-makernote' => 'የሠሪው ማሳሰቢያዎች',
'exif-usercomment' => 'የተጠቃሚው ማጠቃለያ',
'exif-relatedsoundfile' => 'የተዛመደ የድምጽ ፋይል',
'exif-datetimeoriginal' => 'መረጃው የተፈጠረበት ቀንና ሰዓት',
@@ -2185,14 +2134,12 @@ $1',
# External editor support
'edit-externally' => 'ይህንን ፋይል በአፍአዊ ሶፍትዌር ለማዘጋጀት',
-'edit-externally-help' => '(ለተጨማሪ መረጃ ይህን ገፅ ተመልከቱ [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions])',
+'edit-externally-help' => '(ለተጨማሪ መረጃ ይህን ገፅ ተመልከቱ [//www.mediawiki.org/wiki/Manual:External_editors setup instructions])',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'ሁሉ',
-'imagelistall' => 'ሁሉ',
-'watchlistall2' => 'ሁሉ',
-'namespacesall' => 'ሁሉ (all)',
-'monthsall' => 'ሁሉ',
+'watchlistall2' => 'ሁሉ',
+'namespacesall' => 'ሁሉ (all)',
+'monthsall' => 'ሁሉ',
# E-mail address confirmation
'confirmemail' => 'ኢ-ሜልዎን ለማረጋገጥ',
@@ -2280,12 +2227,12 @@ $3
አንዳንድ ገጽ ከዚህ ዝርዝር ለማስወግድ ያሠቡ እንደሆነ፣ በሳጥኑ ውስጥ ምልክት አድርገው በስተግርጌ በሚገኘው «ማስወግጃ» የሚለውን ተጭነው ከዚህ ዝርዝር ሊያስወግዷቸው ይቻላል። (ይህን በማድረግዎ ከገጹ ጋር የሚገናኘው ውይይት ገጽ ድግሞ ከዝርዝርዎ ይጠፋል።)
-ከዚህ ዘዴ ሌላ [[Special:Watchlist/raw|ጥሬውን ኮድ መቅዳት ወይም ማዘጋጀት]] ይቻላል።',
+ከዚህ ዘዴ ሌላ [[Special:EditWatchlist/raw|ጥሬውን ኮድ መቅዳት ወይም ማዘጋጀት]] ይቻላል።',
'watchlistedit-normal-submit' => 'ማስወገጃ',
'watchlistedit-normal-done' => 'ከዝርዝርዎ {{PLURAL:$1|1 አርዕስት ተወግዷል|$1 አርእስቶች ተወግደዋል}}፦',
'watchlistedit-raw-title' => 'የዝርዝሩ ጥሬ ኮድ',
'watchlistedit-raw-legend' => 'የዝርዝሩን ጥሬ ኮድ ለማዘጋጀት...',
-'watchlistedit-raw-explain' => 'በተከታተሉት ገጾች ዝርዝር ላይ ያሉት አርእስቶች ሁሉ ከዚህ ታች ይታያሉ። በየመስመሩ አንድ አርእስት እንደሚኖር፣ ይህን ዝርዝር ለማዘጋጀት ይችላሉ። አዘጋጅተውት ከጨረሱ በኋላ በስተግርጌ «ዝርዝሩን ለማሳደስ» የሚለውን ይጫኑ። አለበለዚያ ቢሻልዎት፣ የተለመደውን ዘዴ ([[Special:Watchlist/edit|«ዝርዝሩን ለማስተካከል»]]) ይጠቀሙ።',
+'watchlistedit-raw-explain' => 'በተከታተሉት ገጾች ዝርዝር ላይ ያሉት አርእስቶች ሁሉ ከዚህ ታች ይታያሉ። በየመስመሩ አንድ አርእስት እንደሚኖር፣ ይህን ዝርዝር ለማዘጋጀት ይችላሉ። አዘጋጅተውት ከጨረሱ በኋላ በስተግርጌ «ዝርዝሩን ለማሳደስ» የሚለውን ይጫኑ። አለበለዚያ ቢሻልዎት፣ የተለመደውን ዘዴ ([[Special:EditWatchlist|«ዝርዝሩን ለማስተካከል»]]) ይጠቀሙ።',
'watchlistedit-raw-titles' => 'የተከታተሉት አርእስቶች፦',
'watchlistedit-raw-submit' => 'ዝርዝሩን ለማሳደስ',
'watchlistedit-raw-done' => 'ዝርዝርዎ ታድሷል።',
@@ -2301,24 +2248,23 @@ $3
'unknown_extension_tag' => 'ያልታወቀ የቅጥያ ምልክት «$1»',
# Special:Version
-'version' => 'ዝርያ',
-'version-extensions' => 'የተሳኩ ቅጥያዎች',
-'version-specialpages' => 'ልዩ ገጾች',
-'version-parserhooks' => 'የዘርዛሪ ሜንጦዎች',
-'version-variables' => 'ተለዋጮች',
-'version-other' => 'ሌላ',
-'version-hooks' => 'ሜንጦዎች',
-'version-extension-functions' => 'የቅጥያ ሥራዎች',
-'version-parser-extensiontags' => 'የዝርዛሪ ቅጥያ ምልክቶች',
-'version-parser-function-hooks' => 'የዘርዛሪ ተግባር ሜጦዎች',
-'version-skin-extension-functions' => 'የመልክ ቅጥያ ተግባሮች',
-'version-hook-name' => 'የሜንጦ ስም',
-'version-hook-subscribedby' => 'የተጨመረበት',
-'version-version' => '(ዝርያ $1)',
-'version-license' => 'ፈቃድ',
-'version-software' => 'የተሳካ ሶፍትዌር',
-'version-software-product' => 'ሶፍትዌር',
-'version-software-version' => 'ዝርያ',
+'version' => 'ዝርያ',
+'version-extensions' => 'የተሳኩ ቅጥያዎች',
+'version-specialpages' => 'ልዩ ገጾች',
+'version-parserhooks' => 'የዘርዛሪ ሜንጦዎች',
+'version-variables' => 'ተለዋጮች',
+'version-other' => 'ሌላ',
+'version-hooks' => 'ሜንጦዎች',
+'version-extension-functions' => 'የቅጥያ ሥራዎች',
+'version-parser-extensiontags' => 'የዝርዛሪ ቅጥያ ምልክቶች',
+'version-parser-function-hooks' => 'የዘርዛሪ ተግባር ሜጦዎች',
+'version-hook-name' => 'የሜንጦ ስም',
+'version-hook-subscribedby' => 'የተጨመረበት',
+'version-version' => '(ዝርያ $1)',
+'version-license' => 'ፈቃድ',
+'version-software' => 'የተሳካ ሶፍትዌር',
+'version-software-product' => 'ሶፍትዌር',
+'version-software-version' => 'ዝርያ',
# Special:FilePath
'filepath' => 'የፋይል መንገድ',
diff --git a/languages/messages/MessagesAn.php b/languages/messages/MessagesAn.php
index 80d8108c..3f598985 100644
--- a/languages/messages/MessagesAn.php
+++ b/languages/messages/MessagesAn.php
@@ -21,7 +21,7 @@ $fallback = 'es';
$namespaceNames = array(
NS_MEDIA => 'Media',
- NS_SPECIAL => 'Espezial',
+ NS_SPECIAL => 'Especial',
NS_TALK => 'Descusión',
NS_USER => 'Usuario',
NS_USER_TALK => 'Descusión_usuario',
@@ -38,6 +38,10 @@ $namespaceNames = array(
NS_CATEGORY_TALK => 'Descusión_categoría',
);
+$namespaceAliases = array(
+ 'Espezial' => NS_SPECIAL,
+);
+
$magicWords = array(
'redirect' => array( '0', '#ENDRECERA', '#REENDRECERA', '#REDIRECCIÓN', '#REDIRECCION', '#REDIRECT' ),
'namespace' => array( '1', 'ESPACIODENOMBRES', 'ESPACIODENOMBRE', 'NAMESPACE' ),
@@ -48,78 +52,78 @@ $magicWords = array(
'displaytitle' => array( '1', 'TÍTOL', 'MOSTRARTÍTULO', 'MOSTRARTITULO', 'DISPLAYTITLE' ),
'currentversion' => array( '1', 'BERSIÓNAUTUAL', 'BERSIONAUTUAL', 'REVISIÓNACTUAL', 'VERSIONACTUAL', 'VERSIÓNACTUAL', 'CURRENTVERSION' ),
'language' => array( '0', '#LUENGA:', '#IDIOMA:', '#LANGUAGE:' ),
- 'special' => array( '0', 'espezial', 'especial', 'special' ),
+ 'special' => array( '0', 'especial', 'espezial', 'special' ),
);
$specialPageAliases = array(
- 'DoubleRedirects' => array( 'Endreceras_doples', 'Reendrezeras_dobles', 'Dobles_reendrezeras', 'Endrezeras_dobles', 'Dobles_endrezeras' ),
+ 'Allmessages' => array( 'Totz_os_mensaches', 'Toz_os_mensaches' ),
+ 'Allpages' => array( 'Todas_as_pachinas' ),
+ 'Ancientpages' => array( 'Pachinas_mas_viellas', 'Pachinas_mas_antigas', 'Pachinas_más_biellas', 'Pachinas_biellas', 'Pachinas_antigas' ),
+ 'Block' => array( 'Bloqueyar' ),
+ 'Blockme' => array( 'Bloqueya-me' ),
+ 'Booksources' => array( 'Fuents_de_libros' ),
'BrokenRedirects' => array( 'Endreceras_trencatas', 'Endreceras_trencadas', 'Reendrezeras_trencatas', 'Endrezeras_trencatas', 'Reendrezeras_crebatas', 'Endrezeras_crebatas', 'Endrezeras_trencadas', 'Endrezeras_crebadas' ),
- 'Disambiguations' => array( 'Desambigacions', 'Desambigazions', 'Pachinas_de_desambigazión' ),
- 'Userlogin' => array( 'Encetar_sesión', 'Enzetar_sesión', 'Dentrar' ),
- 'Userlogout' => array( 'Salir', 'Rematar_sesión' ),
+ 'Categories' => array( 'Categorías' ),
+ 'ChangePassword' => array( 'Cambiar_contrasenya' ),
+ 'Confirmemail' => array( 'Confirmar_e-mail' ),
+ 'Contributions' => array( 'Contrebucions', 'Contrebuzions' ),
'CreateAccount' => array( 'Creyar_cuenta' ),
- 'Preferences' => array( 'Preferencias' ),
- 'Watchlist' => array( 'Lista_de_seguimiento' ),
- 'Recentchanges' => array( 'Zaguers_cambeos', 'Cambeos_recients' ),
- 'Upload' => array( 'Cargar', 'Puyar' ),
+ 'Deadendpages' => array( 'Pachinas_sin_salida', 'Pachinas_sin_de_salida' ),
+ 'Disambiguations' => array( 'Desambigacions', 'Desambigazions', 'Pachinas_de_desambigazión' ),
+ 'DoubleRedirects' => array( 'Endreceras_doples', 'Reendrezeras_dobles', 'Dobles_reendrezeras', 'Endrezeras_dobles', 'Dobles_endrezeras' ),
+ 'Emailuser' => array( 'Ninvía_mensache', 'Nimbía_mensache' ),
+ 'Export' => array( 'Exportar' ),
+ 'Fewestrevisions' => array( 'Pachinas_con_menos_edicions', 'Pachinas_con_menos_edizions', 'Pachinas_menos_editatas', 'Pachinas_con_menos_bersions' ),
+ 'Import' => array( 'Importar' ),
+ 'BlockList' => array( 'Lista_d\'IPs_bloqueyatas', 'Lista_d\'IPs_bloquiatas', 'Lista_d\'adrezas_IP_bloqueyatas', 'Lista_d\'adrezas_IP_bloquiatas' ),
+ 'Listadmins' => array( 'Lista_d\'almenistradors' ),
+ 'Listbots' => array( 'Lista_de_botz', 'Lista_de_bots' ),
'Listfiles' => array( 'Lista_de_fichers', 'Lista_d\'imáchens', 'Lista_d\'imachens' ),
- 'Newimages' => array( 'Nuevos_fichers', 'Nuevas_imáchens', 'Nuevas_imachens', 'Nuebas_imachens' ),
- 'Listusers' => array( 'Lista_d\'usuarios' ),
'Listgrouprights' => array( 'ListaDreitosGrupos' ),
- 'Statistics' => array( 'Estatisticas', 'Estadisticas' ),
- 'Randompage' => array( 'Pachina_a_l\'azar', 'Pachina_aleatoria', 'Pachina_aliatoria' ),
+ 'Listusers' => array( 'Lista_d\'usuarios' ),
+ 'Log' => array( 'Rechistro', 'Rechistros' ),
'Lonelypages' => array( 'Pachinas_popiellas' ),
- 'Uncategorizedpages' => array( 'Pachinas_sin_categorizar', 'Pachinas_sin_categorías' ),
+ 'Longpages' => array( 'Pachinas_mas_largas' ),
+ 'Mostcategories' => array( 'Pachinas_con_mas_categorías' ),
+ 'Mostimages' => array( 'Fichers_mas_emplegatos', 'Imáchens_mas_emplegatas', 'Imachens_más_emplegatas' ),
+ 'Mostlinked' => array( 'Pachinas_mas_enlazatas', 'Pachinas_mas_vinculatas' ),
+ 'Mostlinkedcategories' => array( 'Categorías_mas_emplegatas', 'Categorías_más_enlazatas', 'Categorías_más_binculatas' ),
+ 'Mostlinkedtemplates' => array( 'Plantillas_mas_emplegatas', 'Plantillas_mas_enlazatas', 'Plantillas_más_binculatas' ),
+ 'Mostrevisions' => array( 'Pachinas_con_más_edicions', 'Pachinas_con_más_edizions', 'Pachinas_más_editatas', 'Pachinas_con_más_bersions' ),
+ 'Movepage' => array( 'TresladarPachina', 'Renombrar_pachina', 'Mober_pachina', 'Tresladar_pachina' ),
+ 'Mycontributions' => array( 'As_mías_contrebucions', 'As_mías_contrebuzions' ),
+ 'Mypage' => array( 'A_mía_pachina', 'A_mía_pachina_d\'usuario' ),
+ 'Mytalk' => array( 'A_mía_descusión', 'A_mía_pachina_de_descusión' ),
+ 'Newimages' => array( 'Nuevos_fichers', 'Nuevas_imáchens', 'Nuevas_imachens', 'Nuebas_imachens' ),
+ 'Newpages' => array( 'Pachinas_nuevas', 'Pachinas_recients', 'Pachinas_nuebas', 'Pachinas_más_nuebas', 'Pachinas_más_rezients', 'Pachinas_rezients' ),
+ 'Popularpages' => array( 'Pachinas_populars', 'Pachinas_más_populars' ),
+ 'Preferences' => array( 'Preferencias' ),
+ 'Prefixindex' => array( 'Pachinas_por_prefixo', 'Mirar_por_prefixo' ),
+ 'Protectedpages' => array( 'Pachinas_protechitas', 'Pachinas_protechidas' ),
+ 'Protectedtitles' => array( 'Títols_protechitos', 'Títols_protexitos', 'Títols_protechius' ),
+ 'Randompage' => array( 'Pachina_a_l\'azar', 'Pachina_aleatoria', 'Pachina_aliatoria' ),
+ 'Recentchanges' => array( 'Zaguers_cambeos', 'Cambeos_recients' ),
+ 'Search' => array( 'Mirar' ),
+ 'Shortpages' => array( 'Pachinas_más_curtas' ),
+ 'Specialpages' => array( 'Pachinas_especials', 'Pachinas_espezials' ),
+ 'Statistics' => array( 'Estatisticas', 'Estadisticas' ),
'Uncategorizedcategories' => array( 'Categorías_sin_categorizar._Categorías_sin_categorías' ),
'Uncategorizedimages' => array( 'Fichers_sin_categorizar', 'Fichers_sin_categorías', 'Imáchens_sin_categorías', 'Imachens_sin_categorizar', 'Imáchens_sin_categorizar' ),
+ 'Uncategorizedpages' => array( 'Pachinas_sin_categorizar', 'Pachinas_sin_categorías' ),
'Uncategorizedtemplates' => array( 'Plantillas_sin_categorizar._Plantillas_sin_categorías' ),
+ 'Undelete' => array( 'Restaurar' ),
'Unusedcategories' => array( 'Categorías_no_emplegatas', 'Categorías_sin_emplegar' ),
'Unusedimages' => array( 'Fichers_no_emplegatos', 'Fichers_sin_emplegar', 'Imáchens_no_emplegatas', 'Imáchens_sin_emplegar' ),
- 'Wantedpages' => array( 'Pachinas_requiestas', 'Pachinas_demandatas', 'Binclos_crebatos', 'Binclos_trencatos' ),
+ 'Unwatchedpages' => array( 'Pachinas_no_cosiratas', 'Pachinas_sin_cosirar' ),
+ 'Upload' => array( 'Cargar', 'Puyar' ),
+ 'Userlogin' => array( 'Encetar_sesión', 'Enzetar_sesión', 'Dentrar' ),
+ 'Userlogout' => array( 'Salir', 'Rematar_sesión' ),
+ 'Version' => array( 'Versión', 'Bersión' ),
'Wantedcategories' => array( 'Categorías_requiestas', 'Categorías_demandatas' ),
'Wantedfiles' => array( 'Fichers_requiestos', 'Fichers_demandaus', 'Archibos_requiestos', 'Archibos_demandatos' ),
+ 'Wantedpages' => array( 'Pachinas_requiestas', 'Pachinas_demandatas', 'Binclos_crebatos', 'Binclos_trencatos' ),
'Wantedtemplates' => array( 'Plantillas_requiestas', 'Plantillas_demandatas' ),
- 'Mostlinked' => array( 'Pachinas_más_enlazatas', 'Pachinas_más_vinculatas' ),
- 'Mostlinkedcategories' => array( 'Categorías_más_emplegatas', 'Categorías_más_enlazatas', 'Categorías_más_binculatas' ),
- 'Mostlinkedtemplates' => array( 'Plantillas_más_emplegatas', 'Plantillas_más_enlazatas', 'Plantillas_más_binculatas' ),
- 'Mostimages' => array( 'Fichers_más_emplegatos', 'Imáchens_más_emplegatas', 'Imachens_más_emplegatas' ),
- 'Mostcategories' => array( 'Pachinas_con_más_categorías' ),
- 'Mostrevisions' => array( 'Pachinas_con_más_edicions', 'Pachinas_con_más_edizions', 'Pachinas_más_editatas', 'Pachinas_con_más_bersions' ),
- 'Fewestrevisions' => array( 'Pachinas_con_menos_edicions', 'Pachinas_con_menos_edizions', 'Pachinas_menos_editatas', 'Pachinas_con_menos_bersions' ),
- 'Shortpages' => array( 'Pachinas_más_curtas' ),
- 'Longpages' => array( 'Pachinas_más_largas' ),
- 'Newpages' => array( 'Pachinas_nuevas', 'Pachinas_recients', 'Pachinas_nuebas', 'Pachinas_más_nuebas', 'Pachinas_más_rezients', 'Pachinas_rezients' ),
- 'Ancientpages' => array( 'Pachinas_más_viellas', 'Pachinas_más_antigas', 'Pachinas_más_biellas', 'Pachinas_biellas', 'Pachinas_antigas' ),
- 'Deadendpages' => array( 'Pachinas_sin_salida', 'Pachinas_sin_de_salida' ),
- 'Protectedpages' => array( 'Pachinas_protechitas', 'Pachinas_protechidas' ),
- 'Protectedtitles' => array( 'Títols_protechitos', 'Títols_protexitos', 'Títols_protechius' ),
- 'Allpages' => array( 'Todas_as_pachinas' ),
- 'Prefixindex' => array( 'Pachinas_por_prefixo', 'Mirar_por_prefixo' ),
- 'Ipblocklist' => array( 'Lista_d\'IPs_bloqueyatas', 'Lista_d\'IPs_bloquiatas', 'Lista_d\'adrezas_IP_bloqueyatas', 'Lista_d\'adrezas_IP_bloquiatas' ),
- 'Specialpages' => array( 'Pachinas_especials', 'Pachinas_espezials' ),
- 'Contributions' => array( 'Contrebucions', 'Contrebuzions' ),
- 'Emailuser' => array( 'Ninvía_mensache', 'Nimbía_mensache' ),
- 'Confirmemail' => array( 'Confirmar_e-mail' ),
- 'Movepage' => array( 'TresladarPachina', 'Renombrar_pachina', 'Mober_pachina', 'Tresladar_pachina' ),
- 'Blockme' => array( 'Bloqueya-me' ),
- 'Booksources' => array( 'Fuents_de_libros' ),
- 'Categories' => array( 'Categorías' ),
- 'Export' => array( 'Exportar' ),
- 'Version' => array( 'Versión', 'Bersión' ),
- 'Allmessages' => array( 'Totz_os_mensaches', 'Toz_os_mensaches' ),
- 'Log' => array( 'Rechistro', 'Rechistros' ),
- 'Blockip' => array( 'Bloqueyar' ),
- 'Undelete' => array( 'Restaurar' ),
- 'Import' => array( 'Importar' ),
- 'Unwatchedpages' => array( 'Pachinas_no_cosiratas', 'Pachinas_sin_cosirar' ),
- 'Mypage' => array( 'A_mía_pachina', 'A_mía_pachina_d\'usuario' ),
- 'Mytalk' => array( 'A_mía_descusión', 'A_mía_pachina_de_descusión' ),
- 'Mycontributions' => array( 'As_mías_contrebucions', 'As_mías_contrebuzions' ),
- 'Listadmins' => array( 'Lista_d\'almenistradors' ),
- 'Listbots' => array( 'Lista_de_botz', 'Lista_de_bots' ),
- 'Popularpages' => array( 'Pachinas_populars', 'Pachinas_más_populars' ),
- 'Search' => array( 'Mirar' ),
- 'Resetpass' => array( 'Cambiar_contrasenya' ),
+ 'Watchlist' => array( 'Lista_de_seguimiento' ),
);
$messages = array(
@@ -154,8 +158,8 @@ $messages = array(
'tog-shownumberswatching' => "Amostrar o numero d'usuarios que cosiran un articlo",
'tog-oldsig' => "Vista previa d'a sinyadura:",
'tog-fancysig' => 'Tratar as sinyaduras como wikitexto (sin de vinclo automatico)',
-'tog-externaleditor' => "Fer servir l'editor externo por defecto (nomás ta espiertos, cal que faiga achustes especials en o suyo ordenador. [http://www.mediawiki.org/wiki/Manual:External_editors Mas información.])",
-'tog-externaldiff' => 'Fer servir o visualizador de diferencias externo por defecto (nomás ta expertos, cal que faiga achustes especials en o suyo ordenador. [http://www.mediawiki.org/wiki/Manual:External_editors Mas información.])',
+'tog-externaleditor' => "Fer servir l'editor externo por defecto (nomás ta espiertos, cal que faiga achustes especials en o suyo ordenador. [//www.mediawiki.org/wiki/Manual:External_editors Mas información.])",
+'tog-externaldiff' => 'Fer servir o visualizador de diferencias externo por defecto (nomás ta expertos, cal que faiga achustes especials en o suyo ordenador. [//www.mediawiki.org/wiki/Manual:External_editors Mas información.])',
'tog-showjumplinks' => 'Activar vinclos d\'accesibilidat "blincar enta"',
'tog-uselivepreview' => 'Activar previsualización automatica (cal JavaScript) (Esperimental)',
'tog-forceeditsummary' => 'Avisar-me quan o campo de resumen siga buedo.',
@@ -251,15 +255,7 @@ $messages = array(
'listingcontinuesabbrev' => 'cont.',
'index-category' => 'Pachinas indexadas',
'noindex-category' => 'Pachinas sin indexar',
-
-'mainpagetext' => "'''O programa MediaWiki s'ha instalato correctament.'''",
-'mainpagedocfooter' => "Consulta a [http://meta.wikimedia.org/wiki/Help:Contents Guía d'usuario] ta mirar información sobre cómo usar o software wiki.
-
-== Ta prencipiar ==
-
-* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de caracteristicas confegurables]
-* [http://www.mediawiki.org/wiki/Manual:FAQ Preguntas cutianas sobre MediaWiki (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correu sobre ta anuncios de MediaWiki]",
+'broken-file-category' => 'Pachinas con vinclos a fichero trencaus',
'about' => 'Información sobre',
'article' => 'Articlo',
@@ -311,10 +307,10 @@ $messages = array(
'history' => "Historial d'a pachina",
'history_short' => 'Historial',
'updatedmarker' => 'esviellato dende a zaguera vesita',
-'info_short' => 'Información',
'printableversion' => 'Versión ta imprentar',
'permalink' => 'Vinclo permanent',
'print' => 'Imprentar',
+'view' => 'Veyer',
'edit' => 'Editar',
'create' => 'Creyar',
'editthispage' => 'Editar ista pachina',
@@ -322,6 +318,7 @@ $messages = array(
'delete' => 'Borrar',
'deletethispage' => 'Borrar ista pachina',
'undelete_short' => 'Restaurar {{PLURAL:$1|una edición|$1 edicions}}',
+'viewdeleted_short' => 'Veyer {{PLURAL:$1|una edición borrata|$1 edicions borratas}}',
'protect' => 'Protecher',
'protect_change' => 'cambiar',
'protectthispage' => 'Protecher ista pachina',
@@ -405,6 +402,8 @@ $1",
'toc' => 'Contenius',
'showtoc' => 'amostrar',
'hidetoc' => 'amagar',
+'collapsible-collapse' => 'Replegar',
+'collapsible-expand' => 'Ixamplar',
'thisisdeleted' => 'Quiere amostrar u restaurar $1?',
'viewdeleted' => 'Quiere amostrar $1?',
'restorelink' => '{{PLURAL:$1|una edición borrata|$1 edicions borratas}}',
@@ -416,6 +415,8 @@ $1",
'page-rss-feed' => 'Canal RSS "$1"',
'page-atom-feed' => 'Canal Atom "$1"',
'red-link-title' => '$1 (a pachina encara no existe)',
+'sort-descending' => 'Ordena en orden descendent',
+'sort-ascending' => 'Ordena en orden ascendent',
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'Pachina',
@@ -497,11 +498,12 @@ Consulta: $2',
'protectedpagetext' => 'Ista pachina ha estato protechita ta aprevenir a suya edición.',
'viewsourcetext' => "Puede veyer y copiar o codigo fuent d'ista pachina:",
'protectedinterface' => "Ista pachina furne o texto d'a interfaz ta o software. Ye protechita ta privar o vandalismo. Si creye que bi ha bella error, contacte con un administrador.",
-'editinginterface' => "'''Pare cuenta:''' Ye editando una pachina emplegata ta furnir o texto d'a interfaz de {{SITENAME}}. Os cambeos en ista pachina tendrán efecto en l'aparencia d'a interfaz ta os atros usuarios. Ta fer traduccions d'a interfaz, puede considerar fer servir [http://translatewiki.net/wiki/Main_Page?setlang=an translatewiki.net], o prochecto de localización de MediaWiki.",
+'editinginterface' => "'''Pare cuenta:''' Ye editando una pachina emplegata ta furnir o texto d'a interfaz de {{SITENAME}}. Os cambeos en ista pachina tendrán efecto en l'aparencia d'a interfaz ta os atros usuarios. Ta fer traduccions d'a interfaz, puede considerar fer servir [//translatewiki.net/wiki/Main_Page?setlang=an translatewiki.net], o prochecto de localización de MediaWiki.",
'sqlhidden' => '(Consulta SQL amagata)',
'cascadeprotected' => 'Ista pachina ye protechita y no se puede editar porque ye incluyita en {{PLURAL:$1|a siguient pachina|as siguients pachinas}}, que son protechitas con a opción de "cascada": $2',
'namespaceprotected' => "No tiene premiso ta editar as pachinas d'o espacio de nombres '''$1'''.",
-'customcssjsprotected' => "No tiene premiso ta editar ista pachina porque contiene a confeguración presonal d'atro usuario.",
+'customcssprotected' => 'No tiene permisos ta editar a pachina CSS porque contién parametros personal de belatro usuario.',
+'customjsprotected' => 'No tien permisos ta editar a pachina JavaScript porque contién os parametros personas de belatro usuario.',
'ns-specialprotected' => "No ye posible editar as pachinas d'o espacio de nombres {{ns:special}}.",
'titleprotected' => "Iste títol no puede creyar-se porque ye estato protechito por [[User:$1|$1]].
A razón data ye ''$2''.",
@@ -538,6 +540,7 @@ No xublide de presonalizar [[Special:Preferences|as suyas preferencias en {{SITE
'createaccount' => 'Creyar una nueva cuenta',
'gotaccount' => "Tiene ya una cuenta? '''$1'''.",
'gotaccountlink' => 'Identificar-se y encetar sesión',
+'userlogin-resetlink' => "Ha xublidau os suyos datos d'acceso?",
'createaccountmail' => 'por correu electronico',
'createaccountreason' => 'Razón:',
'badretype' => 'As contrasenyas que ha escrito no son iguals.',
@@ -547,13 +550,14 @@ Por favor, meta-ne uno diferent.",
'createaccounterror' => "No s'ha puesto creyar a cuenta: $1",
'nocookiesnew' => "A cuenta d'usuario s'ha creyata, pero encara no ye indentificato. {{SITENAME}} fa servir <em>cookies</em> ta identificar a os usuario rechistratos, pero pareix que las tiene desactivatas. Por favor, active-las e identifique-se con o suyo nombre d'usuario y contrasenya.",
'nocookieslogin' => "{{SITENAME}} fa servir <em>cookies</em> ta la identificación d'usuarios. Tiene as <em>cookies</em> desactivatas en o suyo navegador. Por favor, active-las y prebe d'identificar-se de nuevas.",
+'nocookiesfornew' => "No se puet creyar a cuenta d'usuario, porque no hemos puesto confimar o suyo orichen. Asegure-se que tien as galletas (cookies) activatas, dimpués cargue de nuevas ista pachina y torne a intentar-lo.",
'noname' => "No ha escrito un nombre d'usuario correcto.",
'loginsuccesstitle' => "S'ha identificato correctament",
'loginsuccess' => 'Ha encetato una sesión en {{SITENAME}} como "$1".',
'nosuchuser' => 'No bi ha garra usuario clamato "$1".
Os nombres d\'usuario son sensibles a las mayusclas.
Comprebe si ha escrito bien o nombre u [[Special:UserLogin/signup|creye una nueva cuenta d\'usuario]].',
-'nosuchusershort' => 'No bi ha garra usuario con o nombre "<nowiki>$1</nowiki>". Comprebe si o nombre ye bien escrito.',
+'nosuchusershort' => 'No bi ha garra usuario con o nombre "$1". Comprebe si o nombre ye bien escrito.',
'nouserspecified' => "Ha d'escribir un nombre d'usuario.",
'login-userblocked' => "Iste usuario ye bloqueyau. No se permite l'inicio de sesión.",
'wrongpassword' => 'A contrasenya indicata no ye correcta. Prebe unatra vegada.',
@@ -591,13 +595,14 @@ Por ixo, no se pueden creyar más cuentas por agora dende ixa adreza IP.",
Si a cuenta s\'ha creyato por error, simplament ignore iste mensache.',
'usernamehasherror' => "O nombre d'usuario no puet contener simbolos hash",
'login-throttled' => 'Ha feito masiaus intentos ta encetar una sesión. Por favor, aspere antes de prebar de fer-lo unatra vegada.',
+'login-abort-generic' => "A dentrada a la cuenta d'usuario ha fallato - Cancelato",
'loginlanguagelabel' => 'Idioma: $1',
'suspicious-userlogout' => "S'ha denegau a suya demanda de zarrar a sesión ya que pareix que la ninvió un navegador defectuoso u bell proxy amagau.",
# E-mail sending
'php-mail-error-unknown' => 'Error desconoixito en a función mail() de PHP',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'Cambiar a contrasenya',
'resetpass_announce' => 'Ha encetato una sesión con una contrasenya temporal que se le ninvió por correu. Por favor, escriba aquí una nueva contrasenya:',
'resetpass_text' => '<!-- Adiba aquí o testo -->',
@@ -615,6 +620,29 @@ Si a cuenta s\'ha creyato por error, simplament ignore iste mensache.',
Talment ya ha cambiato a suya contrasenya u ha demandato una nueva contrasenya temporal.',
'resetpass-temp-password' => 'Contrasenya temporal:',
+# Special:PasswordReset
+'passwordreset' => 'Restablir a parola de paso',
+'passwordreset-text' => "Completar ista forma ta recibir un recordatorio por correu con os detalles d'a suya cuenta.",
+'passwordreset-legend' => 'Restablir a parola de paso',
+'passwordreset-disabled' => "S'ha desactivau o restablimiento de parolas de paso en ista wiki.",
+'passwordreset-pretext' => "{{PLURAL:$1||Introduzca uno d'os siguients datos}}",
+'passwordreset-username' => "Nombre d'usuario:",
+'passwordreset-email' => 'Adreza de correu electronico:',
+'passwordreset-emailtitle' => "Detalles d'a cuenta en {{SITENAME}}",
+'passwordreset-emailtext-ip' => "Belún (probablement vusté, dende l'adreza IP $1) ha demandau un recordatorio d'a información d'a suya cuenta en {{SITENAME}} ($4). {{PLURAL:$3|A cuenta d'usuario siguient ye asociata|As cuentas d'usuario siguients son asociatas}} a ista adreza de correu-e:
+
+$2
+
+{{PLURAL:$3|Ista parola de paso temporal circumducirá|Istas parolas de paso temporals circumducirán}} en {{PLURAL:$5|un día|$5 días}}. Habría de connectar-se agora y trigar una nueva parola de paso. Si ista demanda no dimana de vusté, u ya se'n ha acordau d'a suya parolas de paso inicial y ya no deseya modificar-la, puet ignorar iste mensache y continar emplegando a suya viella parola de paso.",
+'passwordreset-emailtext-user' => "L'usuario $1 en {{SITENAME}} ha demandau un recordatorio d'a información d'a suya cuenta en {{SITENAME}} ($4). {{PLURAL:$3|A cuenta d'usuario siguient ye asociata|As cuentas d'usuario siguients son asociatas}} a ista adreza de correu-e:
+
+$2
+
+{{PLURAL:$3|Ista parola de paso temporal circumducirá|Istas parolas de paso temporals circumducirán}} en {{PLURAL:$5|un día|$5 días}}. Habría de connectar-se agora y trigar una nueva parola de paso. Si ista demanda no dimana de vusté, u ya se'n ha acordau d'a suya parolas de paso inicial y ya no deseya modificar-la, puet ignorar iste mensache y continar emplegando a suya viella parola de paso.",
+'passwordreset-emailelement' => 'Nombre de usuario: $1
+Parola de paso temporal: $2',
+'passwordreset-emailsent' => "S'ha ninviau un recordatorio por correu-e.",
+
# Edit page toolbar
'bold_sample' => 'Texto en negreta',
'bold_tip' => 'Texto en negreta',
@@ -626,8 +654,6 @@ Talment ya ha cambiato a suya contrasenya u ha demandato una nueva contrasenya t
'extlink_tip' => 'Vinclo externo (recuerde o prefixo http://)',
'headline_sample' => 'Texto de subtítol',
'headline_tip' => 'Soztítol de livel 2',
-'math_sample' => 'Escriba aquí a formula',
-'math_tip' => 'Formula matematica (LaTeX)',
'nowiki_sample' => 'Escriba aquí texto sin formateyar',
'nowiki_tip' => 'Ignorar o formato wiki',
'image_sample' => 'Exemplo.jpg',
@@ -708,7 +734,7 @@ Si vusté ye un usuario anonimo y creye que l'han escrito comentarios no relevan
'noarticletext-nopermission' => 'Por l\'inte no i hai garra texto en ista pachina.
Puet [[Special:Search/{{PAGENAME}}|mirar iste títol]] en atras páginas,
u bien <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mirar en os rechistros relacionatos]</span>.',
-'userpage-userdoesnotexist' => 'A cuenta d\'usuario "$1" no ye rechistrada. Piense si quiere creyar u editar ista pachina.',
+'userpage-userdoesnotexist' => 'A cuenta d\'usuario "<nowiki>$1</nowiki>" no ye rechistrada. Piense si quiere creyar u editar ista pachina.',
'userpage-userdoesnotexist-view' => 'A cuenta d\'usuario "$1" no ye rechistrada.',
'blocked-notice-logextract' => "Ista cuenta d'usuario ye actualment bloqueyata.
A zaguera dentrada d'o rechistro de bloqueyos s'amuestra contino:",
@@ -739,6 +765,7 @@ A zaguera dentrada d'o rechistro de bloqueyos s'amuestra contino:",
'''Si ye mirando d'editar lechitimament, por favor, prebe una atra vegada. Si encara no funcionase alavez, prebe de [[Special:UserLogout|zarrar a sesión]] y dentrar-ie identificando-se de nuevas.'''",
'token_suffix_mismatch' => "'''S'ha refusato a suya edición porque o suyo client ha esbarafundiato os carácters de puntuación en o editor. A edición s'ha refusata ta privar a corrompición d'a pachina de texto. Isto gosa escaixer quan se fa servir un servicio de proxy defectuoso alazetato en a web.'''",
+'edit_form_incomplete' => "'''Bellas partes d'o formulario de modificación no han plegato en o servidor, verifique que as suyas modificacions son intactas y mire de fer-lo de nuevas.'''",
'editing' => 'Editando $1',
'editingsection' => 'Editando $1 (sección)',
'editingcomment' => 'Editando $1 (nueva sección)',
@@ -1071,12 +1098,13 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
'searchdisabled' => 'A busca en {{SITENAME}} ye temporalment desactivata. Entremistanto, puede mirar en {{SITENAME}} fendo servir buscadors externos, pero pare cuenta que os suyos endices de {{SITENAME}} puede no estar esviellatos.',
# Quickbar
-'qbsettings' => 'Preferencias de "Quickbar"',
-'qbsettings-none' => 'Garra',
-'qbsettings-fixedleft' => 'Fixa a la zurda',
-'qbsettings-fixedright' => 'Fixa a la dreita',
-'qbsettings-floatingleft' => 'Flotant a la zurda',
-'qbsettings-floatingright' => 'Flotant a la dreita',
+'qbsettings' => 'Preferencias de "Quickbar"',
+'qbsettings-none' => 'Garra',
+'qbsettings-fixedleft' => 'Fixa a la zurda',
+'qbsettings-fixedright' => 'Fixa a la dreita',
+'qbsettings-floatingleft' => 'Flotant a la zurda',
+'qbsettings-floatingright' => 'Flotant a la dreita',
+'qbsettings-directionality' => "Fixato, pendendo en a direccionalidat d'o suyo script y o suyo luengache",
# Preferences page
'preferences' => 'Preferencias',
@@ -1087,9 +1115,10 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
'changepassword' => 'Cambiar a contrasenya',
'prefs-skin' => 'Aparencia',
'skin-preview' => 'Fer una prebatina',
-'prefs-math' => 'Esprisions matematicas',
'datedefault' => 'Sin de preferencias',
+'prefs-beta' => 'Caracteristicas beta',
'prefs-datetime' => 'Calendata y hora',
+'prefs-labs' => 'Caracteristicas experimentals',
'prefs-personal' => 'Datos presonals',
'prefs-rc' => 'Zaguers cambeos',
'prefs-watchlist' => 'Lista de seguimiento',
@@ -1111,8 +1140,6 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
'columns' => 'Columnas:',
'searchresultshead' => 'Mirar',
'resultsperpage' => "Resultaus que s'amostrarán por pachina:",
-'contextlines' => "Linias de contexto que s'amostrarán por resultau",
-'contextchars' => 'Carácters de contexto por linia',
'stub-threshold' => 'Branquil superior ta o formateyo de <a href="#" class="stub">vinclos ta borradors</a> (en bytes):',
'stub-threshold-disabled' => 'Desactivato',
'recentchangesdays' => "Días que s'amostrarán en ''zaguers cambeos'':",
@@ -1125,7 +1152,7 @@ Contino se i amuestra una calu chenerata de traza aleatoria que puede fer servir
'savedprefs' => "S'han alzato as suyas preferencias.",
'timezonelegend' => 'Fuso horario:',
'localtime' => 'Hora local:',
-'timezoneuseserverdefault' => "Usar a zona d'o servidor",
+'timezoneuseserverdefault' => "Usar a zona d'o servidor ($1)",
'timezoneuseoffset' => 'Atra (especifica a esferencia)',
'timezoneoffset' => 'Esferencia¹:',
'servertime' => 'A hora en o servidor ye:',
@@ -1173,7 +1200,8 @@ Habría de tener menos de $1 {{PLURAL:$1|carácter|carácters}}.',
'prefs-help-gender' => 'Opcional: Emplegada ta corrección de chenero por o software. Ista información será publica.',
'email' => 'Adreza de correu-e',
'prefs-help-realname' => "* Nombre reyal (opcional): si esliche escribir-lo, se ferá servir ta l'atribución d'a suya faina.",
-'prefs-help-email' => "L'adreza de correu-e ye opcional, pero ye precisa ta que le ninviemos una nueva contrasenya si nunc la xublidase. Tamién puede fer que atros usuarios puedan contactar con vusté dende a suya pachina d'usuario u de descusión d'usuario sin haber de revelar a suya identidat.",
+'prefs-help-email' => "L'adreza de correu-e ye opcional, pero ye precisa ta que le ninviemos una nueva contrasenya si nunca la xublidase.",
+'prefs-help-email-others' => "Tamién puet esleir deixar que atros usuarios contacten con vusté por correu-e a traviés d'a pachina personal de discusión, sin necesidat de desveilar a suya identidat.",
'prefs-help-email-required' => 'Cal una adreza de correu-e.',
'prefs-info' => 'Información basica',
'prefs-i18n' => 'Internacionalización',
@@ -1298,15 +1326,15 @@ Habría de tener menos de $1 {{PLURAL:$1|carácter|carácters}}.',
'right-userrights' => "Editar totz os dreitos d'usuario",
'right-userrights-interwiki' => "Editar os dreitos d'usuario d'os usuarios d'atros wikis",
'right-siteadmin' => 'Trancar y destrancar a base de datos',
-'right-reset-passwords' => "Reiniciar a contrasenya d'atros usuarios",
'right-override-export-depth' => 'Exporta pachinas que incluigan as enlazadas dica un fundaria de 5',
'right-sendemail' => 'Ninviar un correu electronico a atros usuarios',
# User rights log
-'rightslog' => "Rechistro de cambios en os dreitos d'os usuarios",
-'rightslogtext' => "Iste ye un rechistro d'os cambios en os dreitos d'os usuarios",
-'rightslogentry' => "ha cambiato os dreitos d'usuario de $1: de $2 a $3",
-'rightsnone' => '(garra)',
+'rightslog' => "Rechistro de cambios en os dreitos d'os usuarios",
+'rightslogtext' => "Iste ye un rechistro d'os cambios en os dreitos d'os usuarios",
+'rightslogentry' => "ha cambiato os dreitos d'usuario de $1: de $2 a $3",
+'rightslogentry-autopromote' => "S'ha promovito automaticament dende $2 ta $3",
+'rightsnone' => '(garra)',
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'leyer ista pachina',
@@ -1426,11 +1454,11 @@ Ta incluyir un fichero en una pachina, emplegue un vinclo d'una d'istas trazas
'minlength1' => 'Os nombres de fichero han de tener a lo menos una letra.',
'illegalfilename' => "O nombre de fichero «$1» tiene carácters no premititos en títols de pachinas. Por favor, cambee o nombre d'o fichero y mire de tornar a cargarlo.",
'badfilename' => 'O nombre d\'a imachen s\'ha cambiato por "$1".',
-'filetype-mime-mismatch' => "A extensión d'o fichero no coincide con o suyo tipo MIME.",
+'filetype-mime-mismatch' => 'A extensión ".$1" no coincide con o tipo MIME detectato en o fichero ($2).',
'filetype-badmime' => 'No se premite cargar fichers de tipo MIME "$1".',
'filetype-bad-ie-mime' => 'No puet cargar iste fichero porque o Internet Explorer lo consideraría como "$1", que ye un tipo de fichero no premitito y potencialment perigloso.',
'filetype-unwanted-type' => "Os '''\".\$1\"''' son un tipo de fichero no deseyato. Se prefieren os fichers {{PLURAL:\$3|de tipo|d'os tipos}} \$2.",
-'filetype-banned-type' => "No se premiten os fichers de tipo '''\".\$1\"'''. {{PLURAL:\$3|O tipo premitito ye|Os tipos premititos son}} \$2.",
+'filetype-banned-type' => "{{PLURAL:$4|Os fichers de tipo «'''.$1'''»|Os fichers d'os tipos '''$1'''}} no se permiten. {{PLURAL:$3|Nomás s'admeten os fichers d'o tipo|Nomás s'admeten os fichers d'os tipos}} $2.",
'filetype-missing' => 'O fichero no tiene garra estensión (como ".jpg").',
'empty-file' => 'O fichero que ninvió yera buedo.',
'file-too-large' => 'O fichero que ninvió ye masiau gran.',
@@ -1488,9 +1516,6 @@ Si encara quiere cargar ixe fichero, torne y faiga servir un nuevo nombre. [[Fil
'upload-options' => 'Opcions de carga',
'watchthisupload' => 'Cosirar iste fichero',
'filewasdeleted' => 'Una fichero con iste mesmo nombre ya se cargó denantes y estió borrato dimpués. Habría de comprebar $1 antes de tornar a cargar-lo una atra vegada.',
-'upload-wasdeleted' => "'''Pare cuenta: Ye cargando un fichero que ya estió borrato d'antes más.'''
-
-Habría de repensar si ye apropiato continar con a carga d'iste fichero. Aquí tiene o rechistro de borrau d'iste fichero ta que pueda comprebar a razón que se dio ta borrar-lo:",
'filename-bad-prefix' => "O nombre d'o fichero que ye cargando prencipia por '''\"\$1\"''', que ye un nombre no descriptivo que gosa clabar automaticament as camaras dichitals. Por favor, trigue un nombre más descriptivo ta iste fichero.",
'filename-prefix-blacklist' => ' #<!-- dixe ista linia esautament igual como ye --> <pre>
# A sintacsis ye asinas:
@@ -1525,6 +1550,9 @@ $1',
'upload-unknown-size' => 'Grandaria desconoixid',
'upload-http-error' => 'Ha ocorriu una error HTTP: $1',
+# ZipDirectoryReader
+'zip-file-open-error' => "S'ha trobato una error en ubrir o ficherto ta fer-ie comprebacions ZIP.",
+
# img_auth script messages
'img-auth-accessdenied' => 'Acceso refusau',
'img-auth-nopathinfo' => 'Falta PATH_INFO.
@@ -1606,7 +1634,6 @@ A lista siguient nomás amuestra {{PLURAL:$1|a primer pachina con vinclos|as pri
Tamién puetz consultar a [[Special:WhatLinksHere/$2|lista completa]].',
'nolinkstoimage' => 'Garra pachina tiene un vinclo ta ista imachen.',
'morelinkstoimage' => 'Amostrar [[Special:WhatLinksHere/$1|más vinclos]] ta iste fichero.',
-'redirectstofile' => '{{PLURAL:$1|O siguient fichero reendreza|Os siguients $1 fichers reendrezan}} enta iste fichero:',
'duplicatesoffile' => "{{PLURAL:$1|O siguient fichero ye un duplicato|Os siguients $1 fichers son duplicatos}} d'iste fichero ([[Special:FileDuplicateSearch/$2|más detalles]]):",
'sharedupload' => 'Iste fichero provién de $1 y talment siga emplegato en atros prochectos.',
'sharedupload-desc-there' => "Iste fichero ye de $1 y puet estar emplegau por atros prochectos.
@@ -1920,9 +1947,7 @@ L\'adreza de correu-e que endicó en as suyas [[Special:Preferences|preferencias
'watchlistanontext' => "Ha de $1 ta veyer u editar as dentradas d'a suya lista de seguimiento.",
'watchnologin' => 'No ha encetato a sesión',
'watchnologintext' => "Ha d'estar [[Special:UserLogin|identificato]] ta poder cambiar a suya lista de seguimiento.",
-'addedwatch' => 'Adhibiu a la suya lista de seguimiento',
'addedwatchtext' => "A pachina «[[:\$1]]» s'ha adhibito t'a suya [[Special:Watchlist|lista de seguimiento]]. Os cambios esdevenideros en ista pachina y en a suya pachina de descusión asociata s'indicarán astí, y a pachina amanixerá '''en negreta''' en a [[Special:RecentChanges|lista de cambios recients]] ta que se veiga millor. <p>Si nunca quiere borrar a pachina d'a suya lista de seguimiento, punche \"Deixar de cosirar\" en o menú.",
-'removedwatch' => "Borrata d'a lista de seguimiento",
'removedwatchtext' => 'A pachina "[[:$1]]" s\'ha sacau d\'a suya [[Special:Watchlist|lista de seguimiento]].',
'watch' => 'Cosirar',
'watchthispage' => 'Cosirar ista pachina',
@@ -1976,13 +2001,13 @@ O sistema de notificación de {{SITENAME}}.
--
Ta cambiar as opcions d\'a suya lista de seguimiento, punche:
-{{fullurl:{{#special:Watchlist}}/edit}}
+{{canonicalurl:{{#special:EditWatchlist}}}}
Ta borrar ista pachina d\'a suya lista de seguimiento, punche:
$UNWATCHURL
Ta obtenir más información y aduya:
-{{fullurl:{{MediaWiki:Helppage}}}}',
+{{canonicalurl:{{MediaWiki:Helppage}}}}',
# Delete
'deletepage' => 'Borrar ista pachina',
@@ -1998,7 +2023,7 @@ Ta obtenir más información y aduya:
Por favor, confirme que reyalment ye mirando de fer ixo, que entiende as conseqüencias, y que lo fa d'alcuerdo con as [[{{MediaWiki:Policy-url}}|politicas]] d'o wiki.",
'actioncomplete' => 'Acción rematada',
'actionfailed' => "L'acción ha feito fallita",
-'deletedtext' => 'S\'ha borrau "<nowiki>$1</nowiki>".
+'deletedtext' => 'S\'ha borrau "$1".
Se veiga en $2 un rechistro d\'os borraus recients.',
'deletedarticle' => 'ha borrato "[[$1]]"',
'suppressedarticle' => 's\'ha supreso "[[$1]]"',
@@ -2052,7 +2077,7 @@ Torne t'a pachina anterior, recargue a pachina y torne a prebar alavez.",
'protect_expiry_invalid' => 'O tiempo de circumducción ye incorrecto.',
'protect_expiry_old' => 'O tiempo de circumducción ye una calendata ya pasata.',
'protect-unchain-permissions' => 'Desbloqueyar opcions de protección abanzatas',
-'protect-text' => "Puetz veyer y cambiar o livel e protección d'a pachina '''<nowiki>$1</nowiki>'''.",
+'protect-text' => "Puetz veyer y cambiar o livel e protección d'a pachina '''$1'''.",
'protect-locked-blocked' => "No puede cambiar os livels de protección mientres ye bloqueyato. Contino se i amuestran as opcions actuals d'a pachina '''$1''':",
'protect-locked-dblock' => "Os livels de protección no se pueden cambiar por un bloqueyo activo d'a base de datos.
Contino se i amuestran as opcions actuals d'a pachina '''$1''':",
@@ -2203,7 +2228,6 @@ Isto habría de fer-se nomás ta privar vandalismos, y d'alcuerdo con
as [[{{MediaWiki:Policy-url}}|politicas]].
Escriba a razón especifica ta o bloqueyo (por exemplo, quaternando
as pachinas que s'han vandalizato).",
-'ipaddress' => 'Adreza IP',
'ipadressorusername' => "Adreza IP u nombre d'usuario",
'ipbexpiry' => 'Circumducción:',
'ipbreason' => 'Razón:',
@@ -2216,7 +2240,6 @@ as pachinas que s'han vandalizato).",
** Portar-se de traza intimidatoria u violenta / atosegar
** Abusar de multiples cuentas
** Nombre d'usuario inacceptable",
-'ipbanononly' => 'Bloqueyar nomás os usuarios anonimos',
'ipbcreateaccount' => "Aprevenir a creyación de cuentas d'usuario.",
'ipbemailban' => 'Privar que os usuarios ninvíen correus electronicos',
'ipbenableautoblock' => "bloqueyar automaticament l'adreza IP emplegata por iste usuario, y qualsiquier IP posterior dende a que prebe d'editar",
@@ -2227,7 +2250,6 @@ as pachinas que s'han vandalizato).",
'ipbotherreason' => 'Razons diferens u adicionals',
'ipbhidename' => "Amagar o nombre d'usuario en edicions y listas",
'ipbwatchuser' => "Cosirar as pachinas d'usuario y de descusión d'iste usuario",
-'ipballowusertalk' => 'Premitir que iste usuario edite a suya pachina de descusión en o tiempo que ye bloqueyato',
'ipb-change-block' => "Rebloqueyear a l'usuario con istas condicions",
'badipaddress' => "L'adreza IP no ye conforme.",
'blockipsuccesssub' => "O bloqueyo s'ha feito correctament",
@@ -2244,14 +2266,9 @@ as pachinas que s'han vandalizato).",
'unblocked-id' => "S'ha sacato o bloqueyo $1",
'ipblocklist' => 'Usuarios bloqueyatos',
'ipblocklist-legend' => 'Mirar un usuario bloqueyato',
-'ipblocklist-username' => "Nombre d'usuario u adreza IP:",
-'ipblocklist-sh-userblocks' => '$1 bloqueyos de cuentas',
-'ipblocklist-sh-tempblocks' => '$1 bloqueyos temporals',
-'ipblocklist-sh-addressblocks' => "$1 bloqueyos d'adrezas IP individuals",
'ipblocklist-submit' => 'Mirar',
'ipblocklist-localblock' => 'Bloqueyo local',
'ipblocklist-otherblocks' => '{{PLURAL:$1|Atro bloqueyo|Atros bloqueyos}}',
-'blocklistline' => '$1, $2 ha bloqueyato a $3 ($4)',
'infiniteblock' => 'infinito',
'expiringblock' => 'circumduz o $1 a las $2',
'anononlyblock' => 'nomás anon.',
@@ -2273,7 +2290,7 @@ Ta más detalles, debaixo s'amuestro o rechistro de bloqueyos:",
Ta más detalles, debaixo s'amuestra o rechistro de supresions:",
'blocklogentry' => "S'ha bloqueyato a [[$1]] con una durada de $2 $3",
'reblock-logentry' => 'cambiato o bloqueyo de [[$1]] con circumducción o $3 a las $2',
-'blocklogtext' => "Isto ye un rechistro de bloqueyos y desbloqueyos d'usuarios. As adrezas bloqueyatas automaticament no amaneixen aquí. Mire-se a [[Special:IPBlockList|lista d'adrezas IP bloqueyatas]] ta veyer a lista actual de vedas y bloqueyos.",
+'blocklogtext' => "Isto ye un rechistro de bloqueyos y desbloqueyos d'usuarios. As adrezas bloqueyatas automaticament no amaneixen aquí. Mire-se a [[Special:BlockList|lista d'adrezas IP bloqueyatas]] ta veyer a lista actual de vedas y bloqueyos.",
'unblocklogentry' => 'ha desbloqueyato a "$1"',
'block-log-flags-anononly' => 'nomás os usuarios anonimos',
'block-log-flags-nocreate' => "s'ha desactivato a creyación de cuentas",
@@ -2287,8 +2304,7 @@ Ta más detalles, debaixo s'amuestra o rechistro de supresions:",
'ipb_expiry_temp' => "Os bloqueyos con nombre d'usuario amagato habría d'estar ta cutio.",
'ipb_hide_invalid' => "No s'ha puesto eliminar a cuenta; talment tiene masiadas edicions.",
'ipb_already_blocked' => '"$1" ya yera bloqueyato',
-'ipb-needreblock' => "== Ya ye bloqueyato ==
-$1 ya ye bloqueyato. Quiere cambiar as condicions d'o bloqueyo?",
+'ipb-needreblock' => "$1 ya ye bloqueyato. Quiere cambiar as condicions d'o bloqueyo?",
'ipb-otherblocks-header' => '{{PLURAL:$1|Atro bloqueyo|Atros bloqueyos}}',
'ipb_cant_unblock' => "'''Error''': no s'ha trobato o ID de bloqueyo $1. Talment sía ya desbloqueyato.",
'ipb_blocked_as_range' => "Error: L'adreza IP $1 no s'ha bloqueyato dreitament y por ixo no se puede desbloqueyar. Manimenos, ye bloqueyata por estar parte d'o rango $2, que sí puede desbloqueyar-se de conchunta.",
@@ -2323,6 +2339,7 @@ Alcuerde-se-ne d'[[Special:UnlockDB|destrancar a base de datos]] dimpués de rem
'unlockdbsuccesstext' => "S'ha destrancato a base de datos de {{SITENAME}}.",
'lockfilenotwritable' => "O rechistro de trancamientos d'a base de datos no tiene premiso d'escritura. Ta trancar u destrancar a base de datos, iste fichero ha de tener premisos d'escritura en o servidor web.",
'databasenotlocked' => 'A base de datos no ye trancata.',
+'lockedbyandtime' => '(por $1 o $2 a las $3)',
# Move page
'move-page' => 'Tresladar $1',
@@ -2430,7 +2447,7 @@ En iste zaguer caso tamién puede usar un vinclo, por eixemplo [[{{#Special:Expo
'allmessagesdefault' => 'texto por defecto',
'allmessagescurrent' => 'texto actual',
'allmessagestext' => "Ista ye una lista de totz os mensaches disponibles en o espacio de nombres MediaWiki.
-Vesite por favor [http://www.mediawiki.org/wiki/Localisation a pachina sobre localización de MediaWiki] y [http://translatewiki.net translatewiki.net] si deseya contrebuyir t'a localización cheneral de MediaWiki.",
+Vesite por favor [//www.mediawiki.org/wiki/Localisation a pachina sobre localización de MediaWiki] y [//translatewiki.net translatewiki.net] si deseya contrebuyir t'a localización cheneral de MediaWiki.",
'allmessagesnotsupportedDB' => 'Ista pachina no ye disponible porque wgUseDatabaseMessages ye desactivato.',
'allmessages-filter-legend' => 'Filtro',
'allmessages-filter' => 'Filtrar por estau de personalización:',
@@ -2568,9 +2585,7 @@ Puede veyer-ne, manimenos, o codigo fuent.',
'tooltip-summary' => 'Escribir un breu resumen',
# Metadata
-'nodublincore' => 'Metadatos Dublin Core RDF desactivatos en iste servidor.',
-'nocreativecommons' => 'Metadatos Creative Commons RDF desactivatos en iste servidor.',
-'notacceptable' => 'O servidor wiki no puede ufrir os datos en un formato que o suyo client (navegador) pueda leyer.',
+'notacceptable' => 'O servidor wiki no puede ufrir os datos en un formato que o suyo client (navegador) pueda leyer.',
# Attribution
'anonymous' => '{{PLURAL:$1|Usuario anónimo|Usuarios anónimos}} de {{SITENAME}}',
@@ -2593,12 +2608,8 @@ Puede veyer-ne, manimenos, o codigo fuent.',
'spam_blanking' => 'Todas as versions teneban vinclos ta $1, se deixa en blanco',
# Info page
-'infosubtitle' => "Información d'a pachina",
-'numedits' => "Numero d'edicions (articlo): $1",
-'numtalkedits' => "Numero d'edicions (pachina de descusión): $1",
-'numwatchers' => "Número d'usuario cosirando: $1",
-'numauthors' => "Numero d'autors (articlo): $1",
-'numtalkauthors' => "Numero d'autors (pachina de descusión): $1",
+'pageinfo-subjectpage' => 'Pachina',
+'pageinfo-talkpage' => 'Pachina de descusión',
# Skin names
'skinname-standard' => 'Clasica (Classic)',
@@ -2607,26 +2618,6 @@ Puede veyer-ne, manimenos, o codigo fuent.',
'skinname-myskin' => 'A mía aparenzia (MySkin)',
'skinname-simple' => 'Simpla (Simple)',
-# Math options
-'mw_math_png' => 'Producir siempre PNG',
-'mw_math_simple' => "HTML si ye muit simple, si no'n ye, PNG",
-'mw_math_html' => "HTML si ye posible, si no'n ye, PNG",
-'mw_math_source' => 'Deixar como TeX (ta navegadores en formato texto)',
-'mw_math_modern' => 'Recomendato ta navegadors modernos',
-'mw_math_mathml' => 'MathML si ye posible (esperimental)',
-
-# Math errors
-'math_failure' => 'Error en o codigo',
-'math_unknown_error' => 'error esconoxita',
-'math_unknown_function' => 'función esconoxita',
-'math_lexing_error' => 'error de lexico',
-'math_syntax_error' => 'error de sintaxi',
-'math_image_error' => 'A conversión enta PNG ha tenito errors;
-comprebe si latex, dvips, gs y convert son bien instalatos.',
-'math_bad_tmpdir' => "No s'ha puesto escribir u creyar o directorio temporal d'esprisions matematicas",
-'math_bad_output' => "No s'ha puesto escribir u creyar o directorio de salida d'esprisions matematicas",
-'math_notexvc' => "No s'ha trobato o fichero executable ''texvc''. Por favor, leiga <em>math/README</em> ta confegurar-lo correctament.",
-
# Patrolling
'markaspatrolleddiff' => 'Sinyalar como ya controlato',
'markaspatrolledtext' => 'Sinyalar iste articlo como controlato',
@@ -2672,7 +2663,6 @@ En executar-lo, podría meter en un contornillo a seguridat d'o suyo sistema.",
'file-nohires' => '<small>No bi ha garra versión con resolución más gran.</small>',
'svg-long-desc' => 'fichero SVG, nominalment $1 × $2 píxels, grandaria: $3',
'show-big-image' => 'Imachen en a maxima resolución',
-'show-big-image-thumb' => "<small>Grandaria d'ista anvista previa: $1 × $2 píxels</small>",
'file-info-gif-looped' => 'embuclau',
'file-info-gif-frames' => '$1 {{PLURAL:$1|imachen|imáchens}}',
'file-info-png-looped' => 'embuclau',
@@ -2701,14 +2691,21 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'metadata-help' => 'Iste fichero contiene información adicional, probablement adhibida dende a camara dichital, o escáner u o programa emplegato ta creyar-lo u dichitalizar-lo. Si o fichero ha estato modificato dende o suyo estau orichinal, bells detalles podrían no refleixar de tot o fichero modificato.',
'metadata-expand' => 'Amostrar información detallata',
'metadata-collapse' => 'Amagar a información detallata',
-'metadata-fields' => "Os campos de metadatos EXIF que amaneixen en iste mensache s'amostrarán en a pachina de descripción d'a imachen, mesmo si a tabla ye plegata. Bi ha atros campos que remanirán amagatos por defecto.
+'metadata-fields' => "Els camps de metadades de la imatge llistats en aquest missatge s'inclouran en la pàgina de descripció de la imatge fins i tot quan la taula estigui plegada. La resta estaran ocults però es podran desplegar.
+Os campos de metadatos d'a imachen que amaneixen en iste mensache s'amostrarán en a pachina de descripción d'a imachen, mesmo si a tabla ye plegata. A resta de campos remanirán amagatos pero se podrán desplegar.
* make
* model
* datetimeoriginal
* exposuretime
* fnumber
* isospeedratings
-* focallength",
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude",
# EXIF tags
'exif-imagewidth' => 'Amplaria',
@@ -2723,13 +2720,11 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-ycbcrpositioning' => 'Posición de Y y C',
'exif-xresolution' => 'Resolución horizontal',
'exif-yresolution' => 'Resolución vertical',
-'exif-resolutionunit' => "Unidatz d'as resolucions en X e Y",
'exif-stripoffsets' => "Localización d'os datos d'a imachen",
'exif-rowsperstrip' => 'Numero de ringleras por faixa',
'exif-stripbytecounts' => 'Bytes por faixa comprimita',
'exif-jpeginterchangeformat' => "Offset d'o JPEG SOI",
'exif-jpeginterchangeformatlength' => 'Bytes de datos JPEG',
-'exif-transferfunction' => 'Función de transferencia',
'exif-whitepoint' => "Coordinatas cromaticas d'o punto blanco",
'exif-primarychromaticities' => "Coordinatas cromaticas d'as colors primarias",
'exif-ycbcrcoefficients' => "Coeficients d'a matriz de transformación d'o espacio de colors",
@@ -2748,7 +2743,6 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-compressedbitsperpixel' => "Modo de compresión d'a imachen",
'exif-pixelydimension' => "Amplaria conforme d'a imachen",
'exif-pixelxdimension' => "Altaria conforme d'a imachen",
-'exif-makernote' => "Notas d'o fabriquero",
'exif-usercomment' => "Comentarios de l'usuario",
'exif-relatedsoundfile' => "Fichero d'audio relacionato",
'exif-datetimeoriginal' => "Calendata y hora de cheneración d'os datos",
@@ -2762,7 +2756,6 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-exposureprogram' => "Programa d'exposición",
'exif-spectralsensitivity' => 'Sensibilidat espectral',
'exif-isospeedratings' => 'Sensibilidat ISO',
-'exif-oecf' => 'Factor de conversión optoelectronica',
'exif-shutterspeedvalue' => "Velocidat de l'obturador",
'exif-aperturevalue' => 'Obredura',
'exif-brightnessvalue' => 'Brilor',
@@ -2775,7 +2768,6 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-focallength' => "Longaria d'o lente focal",
'exif-subjectarea' => "Aria d'o sucheto",
'exif-flashenergy' => "Enerchía d'o flash",
-'exif-spatialfrequencyresponse' => 'Respuesta en freqüencia espacial',
'exif-focalplanexresolution' => 'Resolución en o plano focal X',
'exif-focalplaneyresolution' => 'Resolución en o plano focal Y',
'exif-focalplaneresolutionunit' => "Unidatz d'a resolución en o plano focal",
@@ -2784,7 +2776,6 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-sensingmethod' => 'Metodo de sensache',
'exif-filesource' => "Fuent d'o fichero",
'exif-scenetype' => "Mena d'escena",
-'exif-cfapattern' => 'Patrón CFA',
'exif-customrendered' => "Procesau d'imachen presonalizato",
'exif-exposuremode' => "Modo d'exposición",
'exif-whitebalance' => 'Balance de blancos',
@@ -2829,6 +2820,7 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
'exif-gpsareainformation' => "Nombre d'aria GPS",
'exif-gpsdatestamp' => 'Calendata GPS',
'exif-gpsdifferential' => 'Corrección diferencial de GPS',
+'exif-urgency' => 'Urchencia',
# EXIF attributes
'exif-compression-1' => 'Sin de compresión',
@@ -2975,15 +2967,13 @@ Nomás se consideran os elementos de lista (ringleras que escomienzan por *). O
# External editor support
'edit-externally' => 'Editar iste fichero fendo servir una aplicación externa',
-'edit-externally-help' => '(Ta más información, leiga as [http://www.mediawiki.org/wiki/Manual:External_editors instruccions de configuración])',
+'edit-externally-help' => '(Ta más información, leiga as [//www.mediawiki.org/wiki/Manual:External_editors instruccions de configuración])',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'totz',
-'imagelistall' => 'todas',
-'watchlistall2' => 'totz',
-'namespacesall' => 'totz',
-'monthsall' => 'totz',
-'limitall' => 'Totz',
+'watchlistall2' => 'totz',
+'namespacesall' => 'totz',
+'monthsall' => 'totz',
+'limitall' => 'Totz',
# E-mail address confirmation
'confirmemail' => 'Confirmar adreza de correu-e',
@@ -3094,14 +3084,14 @@ Prebe con a previsualización normal.",
'watchlistedit-normal-legend' => "Borrar títols d'a lista de seguimiento",
'watchlistedit-normal-explain' => "Contino s'amuestran os títols de pachinas d'a suya lista de seguimiento.
Ta sacar-ne una pachina, marque o quatrón que ye a o canto d'o suyo títol, y punche con o ratet en \"{{int:Watchlistedit-normal-submit}}\".
-Tamién puede [[Special:Watchlist/raw|editar dreitament a lista]].",
+Tamién puede [[Special:EditWatchlist/raw|editar dreitament a lista]].",
'watchlistedit-normal-submit' => 'Borrar pachinas',
'watchlistedit-normal-done' => "{{PLURAL:$1|S'ha borrato 1 pachina|s'han borrato $1 pachinas}} d'a suya lista de seguimiento:",
'watchlistedit-raw-title' => 'Editar a lista de seguimiento en formato texto',
'watchlistedit-raw-legend' => 'Editar a lista de seguimiento en formato texto',
'watchlistedit-raw-explain' => "Contino s'amuestran os títols d'as pachinas d'a suya lista de seguimiento. Puede editar ista lista adhibiendo u borrando líneas d'a lista; una pachina por linia.
Quan remate, punche \"{{int:Watchlistedit-raw-submit}}\".
-Tamién puede fer servir o [[Special:Watchlist/edit|editor estándar]].",
+Tamién puede fer servir o [[Special:EditWatchlist|editor estándar]].",
'watchlistedit-raw-titles' => 'Pachinas:',
'watchlistedit-raw-submit' => 'Esviellar lista de seguimiento',
'watchlistedit-raw-done' => "S'ha esviellato a suya lista de seguimiento.",
@@ -3118,32 +3108,31 @@ Tamién puede fer servir o [[Special:Watchlist/edit|editor estándar]].",
'duplicate-defaultsort' => "Pare cuenta: A clau d'ordenación por defecto «$2» anula l'anterior clau d'ordenación por defecto «$1».",
# Special:Version
-'version' => 'Versión',
-'version-extensions' => 'Estensions instalatas',
-'version-specialpages' => 'Pachinas especials',
-'version-parserhooks' => "Grifios d'o parser (parser hooks)",
-'version-variables' => 'Variables',
-'version-other' => 'Atros',
-'version-mediahandlers' => 'Maneyador de fichers multimedia',
-'version-hooks' => 'Grifios (Hooks)',
-'version-extension-functions' => "Funcions d'a estensión",
-'version-parser-extensiontags' => "Etiquetas d'estensión d'o parseyador",
-'version-parser-function-hooks' => "Grifios d'as funcions d'o parseyador",
-'version-skin-extension-functions' => "Funcions d'estensión de l'aparencia (Skin)",
-'version-hook-name' => "Nombre d'o grifio",
-'version-hook-subscribedby' => 'Suscrito por',
-'version-version' => '(Versión $1)',
-'version-license' => 'Licencia',
-'version-poweredby-credits' => "Iste wiki funciona gracias a '''[http://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
-'version-poweredby-others' => 'atros',
-'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior.
+'version' => 'Versión',
+'version-extensions' => 'Estensions instalatas',
+'version-specialpages' => 'Pachinas especials',
+'version-parserhooks' => "Grifios d'o parser (parser hooks)",
+'version-variables' => 'Variables',
+'version-other' => 'Atros',
+'version-mediahandlers' => 'Maneyador de fichers multimedia',
+'version-hooks' => 'Grifios (Hooks)',
+'version-extension-functions' => "Funcions d'a estensión",
+'version-parser-extensiontags' => "Etiquetas d'estensión d'o parseyador",
+'version-parser-function-hooks' => "Grifios d'as funcions d'o parseyador",
+'version-hook-name' => "Nombre d'o grifio",
+'version-hook-subscribedby' => 'Suscrito por',
+'version-version' => '(Versión $1)',
+'version-license' => 'Licencia',
+'version-poweredby-credits' => "Iste wiki funciona gracias a '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
+'version-poweredby-others' => 'atros',
+'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior.
MediaWiki se distribuye con l'asperanza d'estar d'utilidat, pero SIN GARRA GUARANCIA; nian a guarancia implicita de COMERCIALIZACIÓN u ADEQUACIÓN TA UNA FINALIDAT DETERMINADA. En trobará más detalles en a Licencia Publica General GNU.
-Con iste programa ha d'haber recibiu [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia d'a Licencia Publica Cheneral GNU]; si no ye asinas, endrece-se a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA u bien [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html la leiga en linia].",
-'version-software' => 'Software instalato',
-'version-software-product' => 'Producto',
-'version-software-version' => 'Versión',
+Con iste programa ha d'haber recibiu [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia d'a Licencia Publica Cheneral GNU]; si no ye asinas, endrece-se a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA u bien [//www.gnu.org/licenses/old-licenses/gpl-2.0.html la leiga en linia].",
+'version-software' => 'Software instalato',
+'version-software-product' => 'Producto',
+'version-software-version' => 'Versión',
# Special:FilePath
'filepath' => "Camín d'o fichero",
@@ -3154,9 +3143,7 @@ As imachens s'amuestran en resolución completa, a resta de fichers fan encetar
# Special:FileDuplicateSearch
'fileduplicatesearch' => 'Mirar fichers duplicatos',
-'fileduplicatesearch-summary' => 'Mirar archivos duplicatos basatos en a suya valura hash.
-
-Escriba o nombre d\'o fichero sin o prefixo "{{ns:file}}:".',
+'fileduplicatesearch-summary' => 'Mirar archivos duplicatos basatos en a suya valura hash.',
'fileduplicatesearch-legend' => 'Mirar duplicatos',
'fileduplicatesearch-filename' => "Nombre d'o fichero:",
'fileduplicatesearch-submit' => 'Mirar',
diff --git a/languages/messages/MessagesAng.php b/languages/messages/MessagesAng.php
index 2e7331ec..e73777b4 100644
--- a/languages/messages/MessagesAng.php
+++ b/languages/messages/MessagesAng.php
@@ -159,14 +159,6 @@ $messages = array(
'index-category' => 'Ȝebēacniende trametas',
'noindex-category' => 'Unȝebēacniende trametas',
-'mainpagetext' => "'''MediaǷiki hafaþ ȝeƿorden spēdiȝe inseted.'''",
-'mainpagedocfooter' => 'Þeahta þone [http://meta.wikimedia.org/wiki/Help:Contents Brūcenda Lǣdend] on helpe mid þǣre nytte of ƿikisōftƿare.
-
-== Beȝinnunȝ ==
-* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Onfæstnunȝa ȝesetednessa ȝetæl]
-* [http://www.mediawiki.org/wiki/Manual:FAQ Ȝetæl oft ascodra ascunȝa ymb MediaǷiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ǣrendunȝȝetæl nīƿra MediaǷiki forþsendnessa]',
-
'about' => 'Ymbe',
'article' => 'Innunȝsīde',
'newwindow' => '(openaþ in nīƿum ēaȝþyrelum)',
@@ -217,7 +209,6 @@ $messages = array(
'history' => 'Sīdan stǣr',
'history_short' => 'Stǣr',
'updatedmarker' => 'nīƿod æfter ic cōm hider ǣror',
-'info_short' => 'Cȳþþu',
'printableversion' => 'Ūtmǣlendlicu fadunȝ',
'permalink' => 'Fæst hlenċe',
'print' => 'Ūtmǣl',
@@ -406,14 +397,14 @@ Bidde þē, lǣt hīe tō twyrcenne, and þǣræfter inmelda þurh þīnne nīwa
'nosuchuser' => 'Þǣr nis nān brūcere þe hæfþ þone naman "$1".
Stafena micelnesse sind hefige and ānlica on brūcendnamum.
Scēawa þīne wrītunge eft, oþþe brūc þā cartan þe is hērunder tō [[Special:UserLogin/signup|settene nīwne brūcendreccend]].',
-'nosuchusershort' => 'Þǣr is nān brūcend mid þǣm naman "<nowiki>$1</nowiki>". Edscēawa on þīne wrītunge.',
+'nosuchusershort' => 'Þǣr is nān brūcend mid þǣm naman "$1". Edscēawa on þīne wrītunge.',
'passwordtooshort' => 'Gelēafword sculon habban læst {{PLURAL:$1|1 stafan|$1 stafan}}.',
'mailmypassword' => 'Nīƿe þafungƿord bȳ e-mail sendan',
'acct_creation_throttle_hit' => 'Hwæt, þu hæfst gēo geseted {{PLURAL:$1|1 hordcleofan|$1 -}}. Þu ne canst settan ǣnige māran.',
'accountcreated' => 'Hordcleofan ȝescapen',
'loginlanguagelabel' => 'Sprǣċ: $1',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'Þafungƿord hƿeorfan',
'oldpassword' => 'Eald þafungƿord:',
'newpassword' => 'Nīƿu þafungƿord:',
@@ -432,8 +423,6 @@ Scēawa þīne wrītunge eft, oþþe brūc þā cartan þe is hērunder tō [[Sp
'extlink_tip' => 'Ūtanƿeard hlenċe (ȝemune http:// foredǣl)',
'headline_sample' => 'Hēafodlīnan traht',
'headline_tip' => 'Emnet 2 hēafodlīn',
-'math_sample' => 'Ƿiċunge hēr ēacian',
-'math_tip' => 'Rīmcræftisc ƿiċung (LaTeX)',
'nowiki_sample' => 'Unȝeƿorhtne traht hēr stellan',
'nowiki_tip' => 'Ƿiki ȝeƿeorc forȝietan',
'image_sample' => 'Bisen.jpg',
@@ -608,7 +597,6 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
'prefsnologin' => 'Ne inȝemelded',
'prefs-skin' => 'Scynn',
'skin-preview' => 'Forescēaƿian',
-'prefs-math' => 'Rīmcræft',
'prefs-datetime' => 'Tælmearc and tīd',
'prefs-rc' => 'Nīƿe hƿearfas',
'prefs-watchlist' => 'Ƿæccȝetalu',
@@ -617,7 +605,6 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
'columns' => 'Sȳla:',
'searchresultshead' => 'Sōcnfintan',
'resultsperpage' => 'Tōhīgunga tō īewenne for tramete',
-'contextlines' => 'Līnan tō īewenne in tōhīgunge',
'recentchangescount' => 'Hū mæniȝ ādihtas to scēaƿenne ȝeþēaƿe:',
'savedprefs' => 'Þīna foreberunga ƿurdon ȝespared.',
'timezonelegend' => 'Tīdstell',
@@ -757,7 +744,6 @@ Cnæpp on sƿeorhēafde hƿeorfþ þā endebyrdnessa.',
'linkstoimage' => 'Þā folgendan {{PLURAL:$1|sīde hæfþ hlenċe|sīdan habbaþ hlenċan}} for þissum fīle:',
'nolinkstoimage' => 'Þǣr sind nāne trametas þe bindaþ tō þissum biliðe.',
'morelinkstoimage' => '[[Special:WhatLinksHere/$1|Mā hlenċan]] sēon tō þissum fīle.',
-'redirectstofile' => '{{PLURAL:$1|Þēos fīl edlǣdeþ|$1 Þās fīlan hēr edlǣdaþ}} tō þissum fīle:',
'duplicatesoffile' => '{{PLURAL:$1|Sēo folgende fīl is ȝelīċnes|Þā folgende fīlan sind ȝelīċnessa}} þisses fīles (sēo [[Special:FileDuplicateSearch/$2|mā ȝeƿitnesse hērymb]]):',
'sharedupload' => 'Þēos fīl is fram $1 and man mæȝ hīe brūcan on ōðrum ƿeorcum.',
'uploadnewversion-linktext' => 'Nīƿe fadunge þisse fīlan forþsendan',
@@ -887,8 +873,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
# Watchlist
'watchlist' => 'Mīnu ƿæcceȝetalu',
'mywatchlist' => 'Mīnu ƿæcceȝetalu',
-'addedwatch' => 'To ƿæcceȝetale ēacod',
-'removedwatch' => 'Fornōm fram ƿæccȝetale',
'removedwatchtext' => 'Sēo sīde "[[:$1]]" ƿæs fram [[Special:Watchlist|þīnre ƿæccȝetale]] fornōm.',
'watch' => 'Ƿæccan',
'watchthispage' => 'Þās sīdan ƿæccan',
@@ -943,7 +927,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
'protectexpiry' => 'Endaþ:',
'protect_expiry_invalid' => 'Endende tīde is unriht.',
'protect_expiry_old' => 'Endende tīde is in ȝēara dagum.',
-'protect-text' => "Þū meaht þæt beorges emnet sēon and hƿeorfan hēr for þǣre sīdan '''<nowiki>$1</nowiki>'''.",
+'protect-text' => "Þū meaht þæt beorges emnet sēon and hƿeorfan hēr for þǣre sīdan '''$1'''.",
'protect-default' => 'Eall brūcendas þafian',
'protect-fallback' => '"$1" þafunge ābiddan',
'protect-level-autoconfirmed' => 'Nīƿe and unbōcen brūcendas fortȳnan',
@@ -1143,14 +1127,6 @@ Bidde cēos ōðerne naman.',
'others' => 'ōðru',
'anonusers' => '{{SITENAME}} {{PLURAL:$2|uncūþ brūcend|uncūðe brūcendas}} $1',
-# Info page
-'numedits' => 'Hū mæniȝ ādihtas (sīde): $1',
-'numtalkedits' => 'Hū mæniȝ ādihtas (ȝespreċsīde): $1',
-'numwatchers' => 'Hū mæniȝ ƿæcceras: $1',
-
-# Math errors
-'math_unknown_error' => 'uncūþ ƿōh',
-
# Patrol log
'patrol-log-auto' => '(selffremmende)',
'patrol-log-diff' => 'nīƿung $1',
@@ -1160,13 +1136,12 @@ Bidde cēos ōðerne naman.',
'nextdiff' => 'Nīƿra ādiht',
# Media information
-'imagemaxsize' => 'Settan biliðu on biliþgemearcungtrametum tō:',
-'thumbsize' => 'Þumannæglmicelnes:',
-'file-info-size' => '$1 × $2 pixels, fīlmiċelu: $3, MIMEcynn: $4',
-'file-nohires' => '<small>Þǣr nis nǣniȝ mā miċelu.</small>',
-'svg-long-desc' => 'SVG fīl, rihte $1 × $2 pixels, fīlmiċelu: $3',
-'show-big-image' => 'Fulmiċelu',
-'show-big-image-thumb' => '<small>Þēos forescēaƿe miċelu: $1 × $2 pixels</small>',
+'imagemaxsize' => 'Settan biliðu on biliþgemearcungtrametum tō:',
+'thumbsize' => 'Þumannæglmicelnes:',
+'file-info-size' => '$1 × $2 pixels, fīlmiċelu: $3, MIMEcynn: $4',
+'file-nohires' => '<small>Þǣr nis nǣniȝ mā miċelu.</small>',
+'svg-long-desc' => 'SVG fīl, rihte $1 × $2 pixels, fīlmiċelu: $3',
+'show-big-image' => 'Fulmiċelu',
# Special:NewFiles
'imagelisttext' => 'Under is getalu $1 biliða gedæfted $2.',
@@ -1244,15 +1219,13 @@ Bidde cēos ōðerne naman.',
'exif-gpsdirection-t' => 'Sōþ rihtung',
# External editor support
-'edit-externally-help' => '(Þā [http://www.mediawiki.org/wiki/Manual:External_editors ȝearƿunga tyhtas] sēon for mā cȳþþe)',
+'edit-externally-help' => '(Þā [//www.mediawiki.org/wiki/Manual:External_editors ȝearƿunga tyhtas] sēon for mā cȳþþe)',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'eall',
-'imagelistall' => 'eall',
-'watchlistall2' => 'eall',
-'namespacesall' => 'eall',
-'monthsall' => 'eall',
-'limitall' => 'eall',
+'watchlistall2' => 'eall',
+'namespacesall' => 'eall',
+'monthsall' => 'eall',
+'limitall' => 'eall',
# E-mail address confirmation
'confirmemail_body' => 'Hwilchwega, gewēne þu of IP stōwe $1, hæfþ in namanbēc gestt ǣnne hordcleofan
diff --git a/languages/messages/MessagesAnp.php b/languages/messages/MessagesAnp.php
new file mode 100644
index 00000000..11a4dbb4
--- /dev/null
+++ b/languages/messages/MessagesAnp.php
@@ -0,0 +1,743 @@
+<?php
+/** Angika (अङ्गिका)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Angpradesh
+ * @author Vinitutpal
+ */
+
+$fallback = 'hi';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => ' कड़ी अधोरेखित करना:',
+'tog-highlightbroken' => 'टूटलॊ कड़ी सीनी <a href="" class="new">इ तरह दर्शाबॊ</a> (या फिर: इ तरह दर्शाबॊ<a href="" class="internal">?</a>).',
+'tog-justify' => 'परिच्छेद समान करॊ',
+'tog-hideminor' => 'हाल के बदलाव सॆं छोटॊ बदलाव छुपाबॊ',
+'tog-hidepatrolled' => 'निगरानी मॆं करलॊ गेलॊ संपादनॊ कॆ हाल के बदलावॊ मॆं नै देखाबॊ',
+'tog-newpageshidepatrolled' => 'निगरानी वाला पन्ना कॆ नया पन्ने वाला सूची मॆं नै देखाबॊ',
+'tog-extendwatchlist' => 'ध्यान सूची मॆं सब्भे बदलाव दर्शाबॊ, सिर्फ हाले के नै',
+'tog-usenewrc' => 'हाल मॆं होलॊ वर्धित बदलाव (जावास्क्रीप्ट के जरूरत छै)',
+'tog-numberheadings' => 'शीर्षक स्वयं-क्रमांकित करॊ',
+'tog-showtoolbar' => 'एडिट टूलबार दर्शाबॊ (जावास्क्रीप्ट)',
+'tog-editondblclick' => 'दू-बार क्लीक करी कॆ पन्ना संपादित करॊ (जावास्क्रीप्ट)',
+'tog-editsection' => '[संपादित करॊ] कड़ी द्वारा विभाग संपादन करै के अनुमती दहॊ',
+'tog-editsectiononrightclick' => 'विभाग शीर्षक पर दायाँ क्लीक करीकॆ संपादन करै के अनुमती दॆ (जावास्क्रीप्ट)',
+'tog-showtoc' => 'अनुक्रम दर्शाबॊ (जोन पन्ना पर तीन सॆं ज्यादा विभाग छै)',
+'tog-rememberpassword' => 'इ कंप्यूटर पर हमरॊ लॉग-इन सूचना याद रखॊ (अधिकतम $1 {{PLURAL:$1|दिन|दिन}} लेली)',
+'tog-watchcreations' => 'हमरॊ तैयार करलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै',
+'tog-watchdefault' => 'हमरॊ संपादित करलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै',
+'tog-watchmoves' => 'हमरॊ हटैलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै',
+'tog-watchdeletion' => 'हमरॊ हटैलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै',
+'tog-previewontop' => 'एडिट बॉक्स के उपर झलक दिखाबॊ',
+'tog-previewonfirst' => 'पहलॊ सम्पादन पर पूर्वावलोकन देखॊ',
+'tog-nocache' => 'ब्राउजर पन्ना केचिंग अक्षम करॊ',
+'tog-enotifwatchlistpages' => 'हमरॊ ध्यानसूची मॆं दर्ज़ पन्ना बदलला के बाद हमरा इ-मेल करॊ',
+'tog-enotifusertalkpages' => 'हमरॊ सदस्य वार्ता पृष्ठ पर बदलाव होला सॆं हमरा इ-मेल करॊ',
+'tog-enotifminoredits' => 'तनी-मनी बदलावॊ लेली भी हमरा इ-मेल भेजॊ',
+
+'underline-never' => 'कहियो नै',
+
+# Dates
+'sunday' => 'रविवार',
+'monday' => 'सोमवार',
+'tuesday' => 'मंगलवार',
+'wednesday' => 'बुधवार',
+'thursday' => 'गुरुवार',
+'friday' => 'शुक्रवार',
+'saturday' => 'शनिचर',
+'january' => 'जनवरी',
+'february' => 'फ़रवरी',
+'march' => 'मार्च',
+'april' => 'अप्रैल',
+'may_long' => 'मई',
+'june' => 'जून',
+'july' => 'जुलाई',
+'august' => 'अगस्त',
+'september' => 'सितंबर',
+'october' => 'अक्तूबर',
+'november' => 'नवंबर',
+'december' => 'दिसंबर',
+'january-gen' => 'जनवरी',
+'february-gen' => 'फरवरी',
+'march-gen' => 'मार्च',
+'april-gen' => 'अप्रैल',
+'may-gen' => 'मई',
+'june-gen' => 'जून',
+'july-gen' => 'जुलाई',
+'august-gen' => 'अगस्त',
+'september-gen' => 'सितंबर',
+'october-gen' => 'अक्टूबर',
+'november-gen' => 'नव्हंबर',
+'december-gen' => 'दिसंबर',
+'jan' => 'जन.',
+'feb' => 'फर.',
+'mar' => 'मार्च',
+'apr' => 'अप्रै.',
+'may' => 'मई',
+'jun' => 'जून',
+'jul' => 'जुला.',
+'aug' => 'अग.',
+'sep' => 'सितं.',
+'oct' => 'अक्तू.',
+'nov' => 'नवं.',
+'dec' => 'दिसं.',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|श्रेणी|श्रेणी}}',
+'category_header' => '"$1" श्रेणी में लेख',
+'subcategories' => 'उपविभाग',
+'hidden-categories' => '{{PLURAL:$1|छुपैलॊ श्रेणी|छुपैलॊ श्रेणी सीनी}}',
+'category-subcat-count' => '{{PLURAL:$2|इ श्रेणी मॆं सिर्फ निम्नलिखित उपश्रेणी छै|इ श्रेणी मॆं निम्नलिखित {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणी सीनी}} छै, कुल उपश्रेणी सीनी $2}}',
+'category-article-count' => '{{PLURAL:$2|इ श्रेणी मॆं सिर्फ निम्नलिखित लेख छै.|इ श्रेणी मॆं निम्नलिखित {{PLURAL:$1|लेख छै |$1 लेख सीनी छै.}}, कुल लेख $2 }}',
+'listingcontinuesabbrev' => 'आगे.',
+
+'newwindow' => '(नया विंडो मॆं खुलै छै)',
+'cancel' => 'निरस्त',
+'mytalk' => 'हमरॊ बात',
+'navigation' => 'भ्रमण',
+
+# Cologne Blue skin
+'qbfind' => 'खोजॊ',
+
+'errorpagetitle' => 'त्रुटि',
+'returnto' => 'लौटॊ $1.',
+'tagline' => '{{SITENAME}} केरॊ बारे मॆं',
+'help' => 'सहायता',
+'search' => 'खोजॊ',
+'searchbutton' => 'खोज',
+'searcharticle' => 'जा',
+'history' => 'पन्ना के इतिहास',
+'history_short' => 'इतिहास',
+'printableversion' => 'छापै योग्य उद्धरण',
+'permalink' => 'स्थायी कड़ी',
+'edit' => 'संपादन',
+'create' => 'सृजन करॊ',
+'editthispage' => 'ई पन्ना के सम्पादन करॊ',
+'delete' => 'हटाबॊ',
+'protect' => 'सुरक्षित करॊ',
+'protect_change' => 'बदलॊ',
+'newpage' => 'नया पन्ना',
+'talkpage' => 'इ पन्ना पर चर्चा करॊ',
+'talkpagelinktext' => 'वार्ता',
+'personaltools' => 'वैयक्तिक औज़ार',
+'talk' => 'चर्चा',
+'views' => 'दर्शाव',
+'toolbox' => 'साधनपेटी',
+'otherlanguages' => 'इतर भाषा',
+'redirectedfrom' => '($1 सॆं भेजनॊ गेलॊ)',
+'redirectpagesub' => 'पुन: निर्देशित पन्ना',
+'lastmodifiedat' => '$1 के $2 पर इ पन्ना पर अन्तिम बार परिवर्तन भेलै.',
+'jumpto' => 'हिन्नॆ जा:',
+'jumptonavigation' => 'भ्रमण करॊ',
+'jumptosearch' => 'खोजै लॆ चलॊ',
+
+# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
+'aboutsite' => '{{SITENAME}} केरॊ बारे मॆं',
+'aboutpage' => 'Project:परिचय',
+'copyright' => 'सामग्री $1 के तहत उपलब्ध छै.',
+'copyrightpage' => '{{ns:project}}:सर्वाधिकार',
+'disclaimers' => 'अस्वीकरण',
+'disclaimerpage' => 'Project:साधारण अस्वीकरण',
+'edithelp' => 'संपादन मॆं सहायता',
+'edithelppage' => 'Help:संपादन',
+'helppage' => 'Help:सहायता',
+'mainpage' => 'मुख्य पृष्ठ',
+'privacy' => 'गोपनीयता नीति',
+'privacypage' => 'Project:गोपनीयता नीति',
+
+'badaccess' => 'अनुमति त्रुटि',
+
+'retrievedfrom' => '"$1" सॆं लेलॊ गेलॊ',
+'youhavenewmessages' => 'तोरा लेली छै $1 ($2)',
+'newmessageslink' => 'नया संदेश',
+'newmessagesdifflink' => 'पिछला बदलाव',
+'editsection' => 'संपादन',
+'editold' => 'संपादन',
+'editlink' => 'संपादन',
+'viewsourcelink' => 'स्रोत देखॊ.',
+'editsectionhint' => 'विभाग संपादन: $1',
+'toc' => 'विषय सूची',
+'showtoc' => 'देखाबॊ',
+'hidetoc' => 'छुपाबॊ',
+'site-rss-feed' => '$1 केरॊ आरएसएस फ़ीड',
+'site-atom-feed' => '$1 केरॊ अणु फ़ीड',
+'page-rss-feed' => '$1 केरॊ आरएसएस फ़ीड',
+'page-atom-feed' => '"$1" अणु फ़ीड',
+'red-link-title' => '$1 (पृष्ठ मौजूद नै छै)',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'पन्ना',
+'nstab-user' => 'सदस्य पन्ना',
+'nstab-special' => 'खास पन्ना',
+'nstab-project' => 'परियोजना पृष्ठ',
+'nstab-image' => 'फाईल',
+'nstab-template' => 'टेम्प्लेट',
+'nstab-category' => 'श्रेणी',
+
+# General errors
+'missing-article' => 'आँकड़ाकोष मॆं $2 के अंदर कहीं भी "$1" नै मिललै.
+
+आमतौर पर मिटैलॊ जाय चुकलॊ पन्ना के इतिहास कड़ी के इस्तेमाल करला पर ऐसनॊ होय छै.
+
+अगर ऐसनॊ नै छै, तॆ शायद आपनॆ तंत्रांश केरॊ त्रुटि खोजी लेनॆ छियॊ.
+कृपया पता समेत [[Special:ListUsers/sysop|administrator]] कॆ ऐकरॊ ब्यौरा दहॊ.',
+'missingarticle-rev' => '(आवृत्ती#: $1)',
+'badtitletext' => 'आपनॆ द्वारा आग्रहत लेख केरॊ शीर्षक अयोग्य, ख़ाली या गलती सॆं जुडलॊ आंतर-भाषिय या आंतर-विकि शीर्षक छेकै . एकरा मॆ एक या एक सॆं ज्यादा ऐनहॊ कॅरेक्टर छै जे शीर्षक मॆं इस्तेमाल नै करलॊ जाबॆ सकॆ छै.',
+'viewsource' => 'स्रोत देखॊ',
+
+# Login and logout pages
+'yourname' => 'सदस्यनाम:',
+'yourpassword' => 'कूटशब्द :',
+'remembermypassword' => 'इ कंप्यूटर पर हमरॊ लॉग-इन सूचना याद रखॊ (अधिकतम $1 {{PLURAL:$1|दिन|दिन}} लेली)',
+'login' => 'लॉग इन',
+'nav-login-createaccount' => 'सत्रारंभ / खाता खोलॊ',
+'userlogin' => 'लॉग इन / खाता बनाबॊ',
+'logout' => ' सत्रांत (लॉग आउट)',
+'userlogout' => 'सत्रांत (लॉग आउट)',
+'nologinlink' => 'एगो खाता बनाबॊ',
+'mailmypassword' => 'इमेल द्वारा नया कूटशब्द भेजॊ',
+
+# Edit page toolbar
+'bold_sample' => 'मोटा पाठ',
+'bold_tip' => 'मोटे अक्षर',
+'italic_sample' => 'तिरछा अक्षर',
+'italic_tip' => 'तिरछा अक्षर',
+'link_sample' => 'कड़ी शीर्षक',
+'link_tip' => 'आंतरिक कड़ी',
+'extlink_sample' => 'http://www.example.com कड़ी शीर्षक',
+'extlink_tip' => 'बाहरी कड़ी (उपसर्ग http:// जरूर लगाबॊ)',
+'headline_sample' => 'शीर्षक',
+'headline_tip' => 'द्वितीय-स्तर शीर्षक',
+'nowiki_sample' => 'अप्रारूपित सामग्री यहाँ डालॊ',
+'nowiki_tip' => 'विकि प्रारूपण नज़रंदाज़ करॊ',
+'image_tip' => 'संलग्न संचिका',
+'media_tip' => 'फाईल लिंक',
+'sig_tip' => 'आपनॆ के हस्ताक्षर व समय',
+'hr_tip' => 'हॉरिझॉंटल लाईन (कम इस्तेमाल करॊ)',
+
+# Edit pages
+'summary' => 'सारांश:',
+'subject' => 'विषय/शीर्षक',
+'minoredit' => 'इ एगॊ छोटा परिवर्तन छेकै',
+'watchthis' => 'इ पन्ना ध्यानसूची में डालॊ',
+'savearticle' => 'पन्ना सँजोवॊ',
+'preview' => 'पूर्वावलोकन',
+'showpreview' => 'पूर्वावलोकन देखाबॊ',
+'showdiff' => 'बदलाव देखाबॊ',
+'anoneditwarning' => "'''सावधान:''' आपनॆ लॉग-इन नै करनॆ छियै. इ पृष्ठ के संपादन इतिहास मॆं आपनॆ के आइ.पी. पता अंकित करलॊ जैतै.",
+'summary-preview' => 'सारांश पूर्वावलोकन:',
+'newarticle' => '(नया)',
+'newarticletext' => 'आपनॆ जे लेख चाहै छियै वू अखनी तलक लिखलॊ नै गेलॊ छै. इ लेख लिखै लेली नीचे टाइप करॊ. सहायता लेली [[{{MediaWiki:Helppage}}|ऐन्जां]] क्लीक करॊ.
+
+जों आपनॆ यहां पर गलती सॆं आबी गेलॊ छियै तॆ आपनॊ ब्राउज़र कॆ बॅक (back) पर क्लीक करॊ.',
+'noarticletext' => '
+Hindi (hi)फ़िलहाल इस पन्ने पर कोई सामग्री नहीं है।
+आपनॆ अन्य पन्ना मॆं [[Special:Search/{{PAGENAME}}|इ सामग्री के खोज]] करॆ सकॆ छियै,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित चिट्ठा मॆं खोज करॆ सकै छियै],
+या [{{fullurl:{{FULLPAGENAME}}|action=edit}} इ पन्ना कॆ संपादित करॆ सकॆ छियै]</span>.',
+'previewnote' => "'''याद रखॊ, इ केवल एगॊ झलक छेकै आरू अभी तलक सुरक्षित नै करलॊ गेलॊ छै!'''",
+'editing' => '$1 केरॊ सम्पादन चली रहलॊ छै.',
+'editingsection' => '$1 सम्पादन (अनुभाग)',
+'copyrightwarning' => "कृपया ध्यान दहॊ कि {{SITENAME}} कॆ करलॊ गेलॊ सब्भॆ योगदान $2 के शर्तों के तहत होतै (अधिक जानकारी लेली $1 देखॊ)।
+अगर आप योगदान कॆ लगातार बदलतॆं आरू पुनः वितरित होतॆं नै देखॆ सकॆ छियै तॆ यहाँ योगदान नै करॊ. <br />
+आपनॆ इ भी प्रमाणित करी रहलॊ छियै कि इ आपनॆ खुद लिखनॆ छियै या जनार्पीत या कोनो अन्य मुक्त स्रोत सॆं प्रतिलिपित करलॊ गेलॊ छै. '''सर्वाधिकारयुक्त लेखॊ कॆ, बिना अनुमति के, यहाँ नै डालॊ!'''",
+'templatesused' => ' {{PLURAL:$1|Template|Templates}} इ पृष्ठ पर प्रयुक्त साँचा:',
+'templatesusedpreview' => '{{PLURAL:$1|Template|Templates}} इ झलक मॆ प्रयुक्त साँचा:',
+'template-protected' => '(सुरक्षित)',
+'template-semiprotected' => '(अर्ध-सुरक्षीत)',
+'hiddencategories' => 'इ लेख निम्नलिखित {{PLURAL:$1|1 छुपैलॊ श्रेणी मॆ|$1 छुपैलॊ श्रेणी मॆ}} छै:',
+'permissionserrorstext-withaction' => 'आपनॆकॆ $2 केरॊ अनुमति नै छै, निम्नलिखित {{PLURAL:$1|कारण लेली|कारणॊ लेली}}:',
+
+# History pages
+'viewpagelogs' => 'इ पन्ना के लॉग देखॊ',
+'currentrev-asof' => '$1 केरॊ समय के संस्करण',
+'revisionasof' => '$1 केरॊ संस्करण',
+'previousrevision' => 'पुरानॊ संशोधन',
+'nextrevision' => 'नया संशोधन →',
+'currentrevisionlink' => 'हाल के संशोधन',
+'cur' => 'चालू',
+'last' => 'पिछला',
+'histlegend' => 'फर्क चयन: फर्क देखै लेली पुराना अवतरणॊ के आगे देलॊ गेलॊ रेडियो बॉक्सपर क्लीक करॊ तथा एन्टर करॊ अथवा नीचॆं देलॊ बटन पर क्लीक करॊ<br />
+लिजेंड: (चालू) = सद्य अवतरण के बीच मॆ फर्क,
+(आखिरी) = पिछला अवतरण के बीच मॆं फर्क, छो = छोटा बदलाव',
+'history-fieldset-title' => 'इतिहास के विचरण करॊ',
+'histfirst' => 'बहुत पहिले के',
+'histlast' => 'एकदम हाल के',
+
+# Revision deletion
+'rev-delundel' => 'दिखाबॊ/छुपाबॊ',
+'revdel-restore' => 'दृश्यता बदलॊ',
+
+# Merge log
+'revertmerge' => 'अलग करॊ',
+
+# Diffs
+'history-title' => '"$1" के अवतरण इतिहास',
+'difference' => '(संस्करणॊ मॆ अंतर)',
+'lineno' => 'पंक्ति $1:',
+'compareselectedversions' => 'च़यन करलॊ अवतरणों मॆं फर्क देखियै',
+'editundo' => 'पूर्ववत करॊ',
+
+# Search results
+'searchresults' => 'खोज परिणाम',
+'searchresults-title' => '"$1" लेली खोज परिणाम',
+'searchresulttext' => '{{SITENAME}} मॆं खोज करै लेली सहायता खातिर [[{{MediaWiki:Helppage}}|{{int:help}}]] देखॊ.',
+'searchsubtitle' => '\'\'\'[[:$1]]\'\'\' खातिर आपनॆ करलॊ गेलॊ खोज ([[Special:Prefixindex/$1| "$1" सॆं शुरु होय वाला सब पन्ना]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|all pages that link to "$1"]])',
+'searchsubtitleinvalid' => "तोरॊ खोज '''$1''' के परिणाम",
+'notitlematches' => 'पन्ना केरॊ शीर्षक मेल नै खाय छै.',
+'notextmatches' => 'कोनो पन्ना मॆं इ सामग्री नै मिललै.',
+'prevn' => 'पिछला {{PLURAL:$1|$1}}',
+'nextn' => 'अगला {{PLURAL:$1|$1}}',
+'viewprevnext' => 'देख़ॊ ($1 {{int:pipe-separator}} $2) ($3)',
+'search-result-size' => '$1 ({{PLURAL:$2|1 शब्द|$2 शब्द}})',
+'search-redirect' => '($1 कॆ अनुप्रेषित)',
+'search-section' => '(विभाग $1)',
+'search-suggest' => 'की आपनॆ के मतलब $1 छै ?',
+'search-interwiki-caption' => 'अन्य प्रकल्प',
+'search-interwiki-default' => '$1 के रिज़ल्ट:',
+'search-interwiki-more' => '(आरू)',
+'search-mwsuggest-enabled' => 'सुझाव सहित',
+'search-mwsuggest-disabled' => 'कोनो सुझाव नै',
+'nonefound' => "'''सूचना''': मूलतः कुछ ही नामस्थानॊ मॆं खोजलॊ जाय छै. अगर आपने कॆ सब नामस्थानॊ मॆं खोजना छै तॆ खोजशब्दॊ के पहले ''all:'' लगायकॆ खोजै के कोशिश करॊ या फिर कोनो नामस्थान के नाम लिखॊ.",
+'powersearch' => 'उन्नत खोज',
+'powersearch-legend' => 'उन्नत खोज',
+'powersearch-ns' => 'नामस्थानॊ मॆ खोजॊ:',
+'powersearch-redir' => 'अनुप्रेषितॊ के सूची दर्शाबॊ.',
+'powersearch-field' => 'लेली खोजॊ',
+
+# Preferences page
+'preferences' => 'वरीयता',
+'mypreferences' => 'हमरॊ वरीयता',
+
+# Groups
+'group-sysop' => 'प्रचालक',
+
+'grouppage-sysop' => '{{ns:project}}:प्रचालक',
+
+# User rights log
+'rightslog' => 'सदस्य अधिकार सूची',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => ' ई पन्ना के सम्पादन करॊ',
+
+# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|बदलाव|बदलाव}}',
+'recentchanges' => 'हाल मॆं होलॊ बदलाव',
+'recentchanges-legend' => 'हाल केरॊ परिवर्तन संबंधी विकल्प',
+'recentchanges-feed-description' => 'इ फ़ीड मॆ होय वाला विकि पर हाल मॆ होलॊ बदलाव देखियै.',
+'rcnote' => "$5, $4 के पहले के {{PLURAL:$2|'''१''' दिन|'''$2''' दिनों}} मॆं {{PLURAL:$1|होलॊ '''१''' बदलाव इ प्रकार छै.| होलॊ '''$1''' बदलाव इ प्रकार छै}}",
+'rclistfrom' => '$1 सॆं नया बदलाव देखलाबॊ',
+'rcshowhideminor' => 'छोटॊ बदलाव $1',
+'rcshowhidebots' => 'बोट सीनी $1',
+'rcshowhideliu' => 'लॉग्ड इन सदस्यॊ के बदलाव $1',
+'rcshowhideanons' => 'अनामक सदस्यॊ के बदलाव $1',
+'rcshowhidemine' => 'हमरॊ बदलाव $1',
+'rclinks' => 'पिछला $2 दिना मॆं होलॊ $1 बदलाव देखियै.<br />$3',
+'diff' => 'अंतर',
+'hist' => 'इतिहास',
+'hide' => 'छुपाबॊ',
+'show' => 'देखाबॊ',
+'minoreditletter' => ' छो.',
+'newpageletter' => 'न',
+'boteditletter' => 'बो',
+'rc-enhanced-expand' => 'विस्तृत जानकारी देखाबॊ (ऐकरा लेली जावास्क्रिप्ट चाहियॊ)',
+'rc-enhanced-hide' => 'विस्तृत जानकारी छिपाबॊ',
+
+# Recent changes linked
+'recentchangeslinked' => 'इ पृष्ठ संबंधी बदलाव',
+'recentchangeslinked-title' => '"$1" मॆं होलॊ बदलाव',
+'recentchangeslinked-summary' => "कोनो पन्ना के हवाले कत्तॆ भी पन्ना मौजूद हुऎ सकॆ छै, इ सूची उ पन्ना (या कोनो श्रेणी के सदस्यॊ) मॆं होलॊ हाल के बदलाव देखाबै छै.
+[[Special:Watchlist|आपनॆ के ध्यानसूची]] मॆं मौजूद पन्ना '''मोटा''' अक्षरॊ मॆं दिखतै.",
+'recentchangeslinked-page' => 'पृष्ठ नाम:',
+'recentchangeslinked-to' => 'ऐकरॊ बदला मॆं देलॊ पन्ना सीनी सॆं जुडलॊ पन्ना सीनी के बदलाव दिखलाबॊ',
+
+# Upload
+'upload' => 'फाईल अपलोड',
+'uploadlogpage' => 'अपलोड सूची',
+'uploadedimage' => '"[[$1]]" कॆ अपलोड करलॊ गेलै',
+
+# File description page
+'filehist' => 'फाइल के इतिहास',
+'filehist-help' => 'संचिका पुरानॊ समय में कैन्हॊ दिखै रहै इ जानै लेली वांछित दिनांक/समय पर चटका लगाबॊ.',
+'filehist-current' => 'मौजूदा',
+'filehist-datetime' => 'तारीख/समय',
+'filehist-thumb' => 'थम्बनेल',
+'filehist-thumbtext' => '$1 केरॊ समय के संस्करण के अँगूठाकार प्रारूप',
+'filehist-user' => 'सदस्य',
+'filehist-dimensions' => 'आयाम',
+'filehist-comment' => 'टिप्पणी',
+'imagelinks' => 'फाईल लिंक',
+'linkstoimage' => 'निम्नोक्त {{PLURAL:$1|पन्ने|$1 पन्ना सीनी}} मॆं इ संचिका के हवाले छै:',
+'sharedupload' => 'ई फाईल $1 सॆ छै आरू संभवतः अन्य परियोजना भी एकरॊ इस्तेमाल करी रहलॊ होतै.',
+'uploadnewversion-linktext' => 'इ फाईल के नया संस्करण अपलॊड करॊ',
+
+# Statistics
+'statistics' => 'आँकड़ा',
+
+# Miscellaneous special pages
+'nbytes' => '{{PLURAL:$1|बाइट|बाइट}}',
+'nmembers' => '{{PLURAL:$1|एगॊ सदस्य|$1 सदस्य}}',
+'prefixindex' => 'इ उपसर्ग वाल सब्भे पन्ना',
+'newpages' => 'नया पन्ना',
+'move' => 'स्थानांतरण',
+'movethispage' => 'इ पन्ना स्थानांतरित करॊ',
+'pager-newer-n' => '{{PLURAL:$1|नया 1|नया सीनी $1}}',
+'pager-older-n' => '{{PLURAL:$1|पुराना 1|पुरानॊ सीनी $1}}',
+
+# Book sources
+'booksources' => 'पुस्तक स्रोत',
+'booksources-search-legend' => 'पुस्तक स्रोत खोजॊ',
+'booksources-go' => 'जा',
+
+# Special:Log
+'log' => 'लॉग सूची',
+
+# Special:AllPages
+'allpages' => 'सब्भे पन्ना',
+'alphaindexline' => '$1 सॆ $2 तलक',
+'prevpage' => 'पिछला पन्ना ($1)',
+'allpagesfrom' => 'देलॊ गेलॊ अक्षर सॆं आरंभ होयवाला लेख दर्शाबॊ:',
+'allpagesto' => 'ऐना समाप्त होय वाला पन्ना दिखाबॊ:',
+'allarticles' => 'सब्भे पन्ना',
+'allpagessubmit' => 'चलॊ',
+
+# Special:LinkSearch
+'linksearch' => 'बाहरी कड़ी',
+
+# Special:Log/newusers
+'newuserlogpage' => 'नया सदस्यॊ के सूची',
+'newuserlog-create-entry' => 'नवीन सदस्य',
+
+# Special:ListGroupRights
+'listgrouprights-members' => '(सदस्य सूची)',
+
+# E-mail user
+'emailuser' => 'इ सदस्य कॆ ई-मेल भेजॊ',
+
+# Watchlist
+'watchlist' => 'हमरॊ ध्यानसूची',
+'mywatchlist' => 'हमरॊ ध्यानसूची',
+'addedwatchtext' => '"[[:$1]]" आपनॆके [[Special:Watchlist|ध्यानसूची]] मॆं "<nowiki>$1</nowiki>" केरॊ समावेश करी देलॊ गेलॊ छै.
+भविष्य मॆं इ पन्ना तथा इ पन्ने केरॊ वार्ता मॆं होय वाला बदलाव आपनॆकॆ ध्यानसूची मॆं दिखतै तथा [[Special:RecentChanges|हाल मॆं होलॊ बदलावॊ के सूची]] मॆं ई पन्ना बोल्ड दिखतै ताकि आपनॆ आसानी सॆं एकरॊ ध्यान रखॆ सकियै.
+
+<p>अगर आपनॆकॆ इ पन्ना कॆ अपनॊ ध्यानसूची सॆं निकालना छै तॆ [[Special:RecentChanges|टटका परिवर्तन]] पर क्लिक करॊ.',
+'removedwatchtext' => '"[[:$1]]" नामक पन्ना कॆ आपनॆ के [[Special:Watchlist|ध्यानसूची]] सॆं हटाय देलॊ गेलॊ छै.',
+'watch' => 'ध्यान रखॊ',
+'watchthispage' => 'ई पन्ना ध्यानसूची में डालॊ',
+'unwatch' => 'ध्यान हटाबॊ',
+'watchlist-details' => 'वार्ता पन्ना केरॊ अलावा {{PLURAL:$1|$1 पन्ना|$1 पन्ने}} आपने के ध्यानसूची मॆं छै.',
+'wlshowlast' => 'पिछला $1 घंटा $2 दिन $3 देखॊ',
+'watchlist-options' => 'ध्यानसूची विकल्प',
+
+# Displayed when you click the "watch" button and it is in the process of watching
+'watching' => 'ध्यान दय रहलॊ छै...',
+'unwatching' => 'ध्यान हटाय रहलॊ छियै...',
+
+# Delete
+'deletepage' => 'पन्ना हटाबॊ',
+'confirmdeletetext' => 'आपनॆ एगॊ लेख ओकरॊ सब्भॆ अवतरणॊ के साथ हटाय लॆ चाहै छहॊ.
+आपनॆ सॆं अनुरोध छै कि आपनॆ जे करी रहलॊ छियै वू मीडिया विकि के [[{{MediaWiki:Policy-url}}|नीतिनुसार]] छै इ बात के पुष्टि करी लॆ तथा क्रिया करला सॆं पहले आपनॊ क्रिया के परिणाम जानी लॆ.',
+'actioncomplete' => 'कार्य पूर्ण',
+'actionfailed' => 'क्रिया विफल',
+'deletedtext' => '"$1" कॆ हटैलॊ गेलॊ छै.
+हाल में हटैलॊ गेलॊ लेखॊ के सूची लेली $2 देखॊ.',
+'deletedarticle' => '"[[$1]]" कॆ हटैलॊ गेलॊ छै.',
+'suppressedarticle' => 'दबैलॊ "[[$1]]"',
+'dellogpage' => 'हटाबै के सूची',
+'dellogpagetext' => 'नीचॆ हाल मॆं हटैलॊ गेलॊ पन्ना के सूची छै.',
+'deletionlog' => 'हटाबै के सूची',
+'reverted' => 'पुराने अवतरण कॆ पूर्ववत करलॊ गेलै',
+'deletecomment' => 'कारण:',
+'deleteotherreason' => 'दोसरॊ/अतिरिक्त कारण:',
+'deletereasonotherlist' => 'दोसरॊ कारण',
+'deletereason-dropdown' => '*हटाबै के सामान्य कारण
+** लेखक के बिनती
+** कॉपीराईट
+** वॅन्डॅलिजम',
+'delete-edit-reasonlist' => 'हटाबै के कारण कॆ संपादित करॊ',
+'delete-toobig' => 'इ पन्ना केरॊ संपादन इतिहास $1 सॆं अधिक {{PLURAL:$1|संस्करण|संस्करण}} होला के वजह सॆं बहुत बड़ा छै.
+{{SITENAME}} के अनपेक्षित रूप सॆं बंद होला सॆं रोकै लेली ऐसनॊ पन्ना कॆ हटाबै के अनुमति नै छै.',
+'delete-warning-toobig' => 'इस लेख केरॊ संपादन इतिहास काफ़ी लंबा चौड़ा छै, ऐकरॊ $1 सॆं अधिक {{PLURAL:$1|संस्करण|संस्करण}} छै.
+एकरा हटैला सॆं {{SITENAME}} के आँकड़ाकोष के गतिविधियॊ मॆं व्यवधान आबॆ सकॆ छै;
+कृपया सोची समझी कॆ आगू बढ़ॊ.',
+
+# Rollback
+'rollback' => 'संपादन पीछू लॆ जाय',
+'rollback_short' => 'पूर्ववत करॊ',
+'rollbacklink' => 'वापस लॆ',
+'rollbackfailed' => 'पूर्ववत स्थिति निष्फल',
+'cantrollback' => 'पुराना अवतरण पूर्ववत नै करॆ सकॆ छियै;
+इ पन्ना के आखिरी योगदानकर्ता इ लेख के एकमात्र लेखक छेकै.',
+'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) द्वारा करलॊ गेलॊ [[:$1]] के पिछला संपादन कॆ वापस पुरानॊ स्थिति पर नै लानलॊ जाबॆ सकॆ छै;
+कोय आरू इ बीच या तॆ इ पन्ना कॆ फिर सॆं संपादित करी देनॆ छै या पहले ही पन्ना पुरानॊ स्थिति पर लानलॊ जाय चुकलॊ छै.
+
+इ पन्ना के ताज़ातरीन संपादन [[User:$3|$3]] ([[User talk:$3|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) नॆ करनॆ छै.',
+'editcomment' => "संपादन टिप्पणी छेलै: \"''\$1''\".",
+'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) केरॊ संपादनॊ कॆ हटायकॆ [[User:$1|$1]] के आखिरी अवतरण कॆ पूर्ववत करलॊ गेलै.',
+'revertpage-nouser' => '(प्रयोक्ता नाम हटैलॊ गेलॊ छै) द्वारा करलॊ संपादन कॆ वापस पुरानॊ स्थिति मॆं लाना कॆ ऐकरॊ पहले केरॊ [[User:$1|$1]] द्वारा बनैलॊ संस्करण कॆ फिर सॆं ताज़ा संस्करण बनाबॊ.',
+'rollback-success' => '$1 केरॊ संपादन हटाबॊ;
+$2 द्वारा संपादित आखिरी अवतरण कॆ पुनर्स्थापित करलॊ गेलै.',
+
+# Edit tokens
+'sessionfailure-title' => 'निष्फल सत्र',
+'sessionfailure' => 'ऐसनॊ प्रतीत होय छै कि आपनॆ के लोगिन सत्र के साथ कोनो समस्या छै.
+सत्र अपहरण सॆं बचाबै लेली सावधानी के तौर पर आपनॆ के इ क्रियाकलाप रद्द करी देलॊ गेलॊ छै.
+कृपया "back" पर वार करॊ आरू पृष्ठ कॆ दुबारा सॆं लोड करॊ, तबॆ दुबारा कोशिश करॊ.',
+
+# Protect
+'protectlogpage' => 'सुरक्षा सूची',
+'protectedarticle' => '"[[$1]]" सुरक्षित करलका',
+'modifiedarticleprotection' => '"[[$1]]" के बदललॊ सुरक्षा-स्तर',
+'protectcomment' => 'कारण:',
+'protectexpiry' => 'कालावधि समाप्ति:',
+'protect_expiry_invalid' => 'समाप्ती समय गलत छै.',
+'protect_expiry_old' => 'समाप्ती समय पहिनै बीती चुकलॊ छै.',
+'protect-text' => "'''$1''' पन्ना के सुरक्षा-स्तर आपनॆ यहां देखॆ सकॆ छियै आरू ओकरा बदलॆ भी सकॆ छियै.",
+'protect-locked-access' => "आपनॆ कॆ इ पन्ना के सुरक्षा-स्तर बदलै के अनुमति नै छै.
+'''$1''' केरॊ अखनकॊ सुरक्षा-स्तर:",
+'protect-cascadeon' => 'ई पन्ना अभी सुरक्षित छै कैन्हेंकि वू {{PLURAL:$1|इ पन्ना के | इ पन्ना के}} सुरक्षा-सीढीपर छै. आपनॆ इ पन्ना के सुरक्षा-स्तर बदलॆ सकॆ छियै, पर एकरा सॆं सुरक्षा-सीढी मॆं बदलाव नै होतै.',
+'protect-default' => 'सब्भॆ सदस्यॊ कॆ अनुमति दॆ',
+'protect-fallback' => '"$1" इजाज़त जरूरी छै',
+'protect-level-autoconfirmed' => 'नयॊ व अपंजीकृत सदस्यॊ कॆ अवरोधित करॊ',
+'protect-level-sysop' => 'सिर्फ प्रचालक',
+'protect-summary-cascade' => 'सीढी',
+'protect-expiring' => 'समाप्ती $1 (UTC)',
+'protect-expiry-indefinite' => 'बेमियादी',
+'protect-cascade' => 'इस पन्ना सॆं जुडलॊ पन्ना सुरक्षित करॊ (सुरक्षा-सीढी)',
+'protect-cantedit' => 'आपनॆ इ पन्ना के सुरक्षा-स्तर बदलॆ नै सकॆ छियै कैन्हेकि आपनॆ कॆ ऐसनॊ करै के अनुमति नै छै.',
+'restriction-type' => 'इजाज़त:',
+'restriction-level' => 'सुरक्षा-स्तर',
+'minimum-size' => 'कम सॆं कम आकार',
+'maximum-size' => 'जादा सॆं जादा आकार:',
+'pagesize' => '(बाईट्स)',
+
+# Restrictions (nouns)
+'restriction-edit' => 'संपादन',
+'restriction-move' => 'स्थानांतरण',
+'restriction-create' => 'सृजन करॊ',
+'restriction-upload' => 'अपलोड',
+
+# Restriction levels
+'restriction-level-sysop' => 'पूर्ण सुरक्षित',
+'restriction-level-autoconfirmed' => 'अर्ध सुरक्षित',
+'restriction-level-all' => 'कोय्यॊ लेवल(स्तर)',
+
+# Undelete
+'undelete' => 'हटैलॊ पन्ना वापस लानॊ',
+'undeletepage' => 'हटैलॊ पन्ना देखॊ आरू पुनर्स्थापित करॊ',
+'undeletepagetitle' => "'''नीचे [[:$1]] केरॊ हटैलॊ गेलॊ अवतरण भी दर्शैलॊ गेलॊ छै.'''",
+'viewdeletedpage' => 'हटैलॊ पन्ना वापस लानॊ',
+'undeletelink' => 'देखॊ/पुनर्स्थापित करॊ',
+'undeletedarticle' => '"[[$1]]" पुनर्स्थापित करलॊ गेलै',
+
+# Namespace form on various pages
+'namespace' => 'नामस्थान:',
+'invert' => 'विपरीत प्रवरण',
+'blanknamespace' => '(मुख्य)',
+
+# Contributions
+'contributions' => 'सदस्य योगदान',
+'contributions-title' => '$1 लेली सदस्यॊ के योगदान',
+'mycontris' => 'हमरॊ योगदान',
+'contribsub2' => '$1 लेली ($2)',
+'uctop' => '(उपर)',
+'month' => 'इ महिना सॆं (आरू पुरानॊ):',
+'year' => 'इ साल सॆं (आरू पुरानॊ):',
+
+'sp-contributions-newbies' => 'सिर्फ नया सदस्यॊ के योगदान दर्शाबॊ',
+'sp-contributions-blocklog' => 'ब्लॉक सूची',
+'sp-contributions-search' => 'योगदान लेली खोज',
+'sp-contributions-username' => 'आईपी एड्रेस या सदस्यनाम:',
+'sp-contributions-submit' => 'खोज',
+
+# What links here
+'whatlinkshere' => 'एन्जां की जुड़तै',
+'whatlinkshere-title' => '$1 सॆं जुड़लॊ पन्ना',
+'whatlinkshere-page' => 'पन्ना:',
+'linkshere' => "नीचे के सब पन्ना '''[[:$1]]''' सॆं जुड़लॊ:",
+'isredirect' => 'पुन: निर्दिष्ट पन्ना',
+'istemplate' => 'मिलाबॊ',
+'isimage' => 'तस्वीर लिंक',
+'whatlinkshere-prev' => '{{PLURAL:$1|पिछला|पिछला सीनी $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|अगला|अगला $1}}',
+'whatlinkshere-links' => '← लिंक',
+'whatlinkshere-hideredirs' => '$1 अनुप्रेषितें',
+'whatlinkshere-hidetrans' => '$1 ट्रान्स्क्ल्युजन्स',
+'whatlinkshere-hidelinks' => '$1 लिंक',
+'whatlinkshere-filters' => 'फिल्टर्स',
+
+# Block/unblock
+'blockip' => 'अवरोधित करॊ',
+'ipboptions' => '२ घंटा:2 hours,१ दिन:1 day,३ दिन:3 days,१ हफ्ता:1 week,२ हफ्ता:2 weeks,१ महिना:1 month,३ महिना:3 months,६ महिना:6 months,१ साल:1 year,अनंत:infinite',
+'ipblocklist' => 'अवरोधित आईपी पता व सदस्यनाम',
+'blocklink' => 'अवरोधित करॊ',
+'unblocklink' => 'अवरोध हटाएँ (अनब्लॉक)',
+'change-blocklink' => 'ब्लॉक बदलॊ',
+'contribslink' => 'योगदान',
+'blocklogpage' => 'ब्लॉक सूची',
+'blocklogentry' => '"[[$1]]" कॆ $2 $3 तलक बदलाव करै सॆं रोकी देलॊ गेलॊ छै.',
+'unblocklogentry' => '$1 ब्लॉक निकाली देलॊ गेलॊ छै.',
+'block-log-flags-nocreate' => 'खाता निर्माण पर रोक',
+
+# Move page
+'movepagetext' => "नीचॆं देलॊ पर्चा पन्ना के नाम बदली देतै, ऐकरॊ सारा इतिहास भी नयॊ नाम सॆं दिखना शुरू होय जैतै.
+पुराना शीर्षक नया नाम कॆ अनुप्रेषित करी लेतै.
+मूल शीर्षक दन्नॆ जाय वाला अग्रेषणॊ कॆ आपनॆ स्वचालित रूपॊ सॆं बदलॆ सकॆ छियै.
+यदि आपनॆ ऐन्हॊ नै करै छियै तॆ कृपया [[Special:DoubleRedirects|दोहरा]] पुनर्निर्देशण या [[Special:BrokenRedirects|टूटलॊ पुनर्निर्देशन]] लेली ज़रूर जाँच करॊ.
+कड़ी सीनी सही जगह इंगित करी रहलॊ छै, ई सुनिश्चित करना आपनॆ कॆ जिम्मेदारी छै.
+
+अगर नयॊ शीर्षक के लेख पहलै सॆं छै तॆ स्थानांतरण '''नै''' होतै. पर अगर नयॊ शीर्षक वाला लेख खाली छै अथवा कहीं आरू अनुप्रेषित करै छियै आरू साथ ही ओकरॊ पुरानॊ संस्करण नै छै तॆ स्थानांतरण होय जैतै.
+एकरॊ मतलब कि यदि आपनॆ सॆं गलती हो जाय तॆ आपनॆ वापस पुरानॊ नाम पर इ पन्ना कॆ स्थानांतरण करॆ सकॆ छियै, आरू साथ ही आपनॆ कोनॊ मौजूदा पन्ना के बदले ई स्थानांतरण नै करॆ सकॆ छियै.
+
+'''चेतावनी!'''
+यदि पन्ना काफ़ी लोकप्रिय छै तॆ ओकरा लेली ई एक बहुत बड़ा व अकस्मात् परिवर्तन हुऎ सकॆ छै;
+आगू बढ़ला सॆं पहले अंजाम अच्छा सॆं समझी लॆ.
+
+'''सूचना!'''
+स्थानांतरण करला सॆं कोय भी महत्वपूर्ण लेख मॆं अनपेक्षित बदलाव हुऎ सकॆ छै
+आपनॆ सॆं अनुरोध छै कि आपनॆ एकरॊ परिणाम जानी लियै.",
+'movepagetalktext' => "संबंधित वार्ता पृष्ठ ऐकरॊ साथ स्थानांतरीत नै होतै '''अगर:'''
+* आपनॆ पन्ना दोसरॊ नामस्थान मॆं स्थानांतरीत करी रहलॊ छहॊ.
+* इ नाम के वार्ता पृष्ठ पहलॆ सॆं बनलॊ छै, या
+* नीचॆं देलॊ गेलॊ चेक बॉक्स आपनॆ निकाली देनॆ छियै.
+
+इ मामला मॆं आपनॆकॆ स्वयं इ पन्ना जोडै लॆ पड़तै.",
+'movearticle' => 'पन्ना केरॊ स्थानांतरण',
+'newtitle' => 'नया शीर्षक दन्नॆ:',
+'move-watch' => 'ध्यान रखॊ स्रोत आरू लक्ष्य फाइल के',
+'movepagebtn' => 'पन्ना स्थांतरण करॊ',
+'pagemovedsub' => 'स्थानांतरण सफल रहलै',
+'movepage-moved' => '\'\'\'"$1" कॆ "$2" पर स्थानांतरीत करलॊ गेलै\'\'\'',
+'articleexists' => 'इ नाम के एगॊ पन्ना पहले सॆं मौजूद छै,या फेरू आपनॆ अमान्य नाम चुननॆ छियै. कृपया दोसरॊ नाम चुनॊ.',
+'talkexists' => "'''पन्ना के नाम बदली देलॊ गेलॊ छै, पर ओकरा सॆं संबंधित वार्ता पृष्ठ नै बदललॊ गेलॊ छै कैन्हेंकि वू पहले सॆं बनलॊ छै.
+कृपया एकरा स्वयं बदली दहॊ'''",
+'movedto' => ' स्थानांतरीत करलॊ गेलै',
+'movetalk' => 'संबंधित वार्ता पृष्ठ भी बदलॊ',
+'1movedto2' => '[[$1]] सॆ[[$2]] पर स्थानांतरित करलॊ गेलै',
+'1movedto2_redir' => '[[$1]] इ लेख के नाम बदली कॆ [[$2]] करी देलॊ गेलॊ छै (अनुप्रेषित)',
+'movelogpage' => 'स्थानांतरण सूची',
+'movereason' => 'कारण:',
+'revertmove' => 'पुरानॊ अवतरण पर लॆ चलॊ (रिवर्ट)',
+
+# Export
+'export' => 'पन्ना कॆ निर्यात करॊ',
+
+# Thumbnails
+'thumbnail-more' => 'बड़ा करॊ',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'आपनॆ के प्रयोक्ता पन्ना',
+'tooltip-pt-mytalk' => 'आपनॆ के वार्ता पन्ना',
+'tooltip-pt-preferences' => 'आपनॆ के वरीयता',
+'tooltip-pt-watchlist' => 'आपनॆ के ध्यान देलॊ पन्ना के सूची',
+'tooltip-pt-mycontris' => 'आपनॆ के योगदानॊ के सूची',
+'tooltip-pt-login' => 'आपनॆ सॆं सत्रारंभ करै के गुज़ारिश छै; लेकिन इ अनिवार्य नै छै.',
+'tooltip-pt-logout' => 'सत्रांत',
+'tooltip-ca-talk' => 'सामग्री पन्ना केरॊ बारे मॆं वार्तालाप',
+'tooltip-ca-edit' => 'आपनॆ इ पन्ना बदलॆ सकै छौ, कृपया बदलाव संजोवै सॆं पहलॆ झलक देखॊ.',
+'tooltip-ca-addsection' => 'नया विभाग शुरू करॊ',
+'tooltip-ca-viewsource' => 'इ पन्ना सुरक्षित छै आपनॆ एकरॊ स्रोत देखॆ सकै छियै.',
+'tooltip-ca-history' => 'इ पन्ना के पिछला संशोधन',
+'tooltip-ca-protect' => 'इ पन्ना सुरक्षित करॊ',
+'tooltip-ca-delete' => 'इ पन्ना हटाबॊ',
+'tooltip-ca-move' => 'इ पन्ना स्थानांतरित करॊ',
+'tooltip-ca-watch' => 'इ पन्ना कॆ आपनॊ ध्यानसूची मॆं डालॊ',
+'tooltip-ca-unwatch' => 'इ पन्ना कॆ आपनॊ ध्यानसूची सॆं हटाबॊ.',
+'tooltip-search' => '{{SITENAME}} में खोजॊ',
+'tooltip-search-go' => 'अगर इ शीर्षक के पन्ना छै तॆ ओकरा पॆ चलॊ',
+'tooltip-search-fulltext' => 'इ वाक्यांश कॆ पन्ना मॆं खोजॊ',
+'tooltip-n-mainpage' => 'मुखपृष्ठ पॆ जा',
+'tooltip-n-mainpage-description' => 'मुख्य पन्ना पर पधारॊ',
+'tooltip-n-portal' => 'प्रकल्प के बारे मेँ, आपनॆ की करॆ सकॆ छियै, मदद कहाँ से लेभॆ',
+'tooltip-n-currentevents' => 'हाल के घटना के पृष्ठभूमि प्राप्त करॊ.',
+'tooltip-n-recentchanges' => 'विकि मॆं हाल मॆं होलॊ बदलावॊ के फ़ेहरिस्त',
+'tooltip-n-randompage' => 'कोनो एक लेख पर जा',
+'tooltip-n-help' => 'मदत मिलै केरॊ ठिकानॊ',
+'tooltip-t-whatlinkshere' => 'यहाँकरॊ हवाला दै वाला सबभॆ विकि पन्ना के सूची',
+'tooltip-t-recentchangeslinked' => 'इ पन्ना से जुड़लॊ पन्ना पर होलॊ हाल के बदलाव',
+'tooltip-feed-rss' => 'इ पन्ना के आरएसएस फ़ीड',
+'tooltip-feed-atom' => 'इ पन्ना के अणु फ़ीड',
+'tooltip-t-contributions' => 'इ सदस्य के योगदान केरॊ सूची देखियै',
+'tooltip-t-emailuser' => 'इस सदस्य कॆ इमेल भेजॊ',
+'tooltip-t-upload' => 'फाईल लादॊ (अपलोड )',
+'tooltip-t-specialpages' => 'ख़ास पन्ना केरॊ सूची',
+'tooltip-t-print' => 'इ पन्ना के छापे लायक संस्करण.',
+'tooltip-t-permalink' => 'इ पन्ना के संसोधन खातिर स्थायी लिंक',
+'tooltip-ca-nstab-main' => 'सामग्री पन्ना देखॊ',
+'tooltip-ca-nstab-user' => 'सदस्य पन्ना देखियै',
+'tooltip-ca-nstab-special' => 'इ एगॊ खास पन्ना छै, आपनॆ एकरा बदलॆ नो सकै छियै.',
+'tooltip-ca-nstab-project' => 'प्रोजेक्ट पन्ना देखियै',
+'tooltip-ca-nstab-image' => 'फाइल के पन्ना देखॊ',
+'tooltip-ca-nstab-template' => 'टेम्प्लेट देखियें',
+'tooltip-ca-nstab-category' => 'श्रेणी पन्ना देखॊ',
+'tooltip-minoredit' => 'ऐकरा छोटा बदलाव के तौर पर दर्ज करॊ',
+'tooltip-save' => 'आपनॊ बदलाव कॆ सुरक्षित करॊ',
+'tooltip-preview' => 'आपनॊ बदलावॊ के झलक देखॊ, कृपया सँजोला सॆं पहिनै ऐकरॊ इस्तेमाल करॊ !',
+'tooltip-diff' => 'इ पाठ्य मॆं आपनॊ द्वारा करलॊ बदलाव देखॊ.',
+'tooltip-compareselectedversions' => 'इ पन्ना के चुनलॊ अवतरणॊ मॆं फर्क देखाबॊ.',
+'tooltip-watch' => 'इ पन्ना कॆ आपनॊ ध्यानसूची मॆं डालॊ.',
+'tooltip-rollback' => ' "वापस लॆ चलॊ" इ पन्ना के पिछला योगदाता के बदलाव एक्के चटका में ग़ायब करी दै छै.',
+'tooltip-undo' => '"पुरानॊ स्थिति पर लानॊ" इ बदलाव कॆ वापस लॆ जाय कॆ संपादन पर्चा कॆ झलक रीति मॆं दिखलाबै छै.
+एकरॊ जरिया सारांश मॆं पुरानॊ स्थिति मॆं लानै के कारण लिखलॊ जाबॆ पारॆ.',
+
+# Browsing diffs
+'previousdiff' => ' पुराना संपादन',
+'nextdiff' => 'टटका संपादन',
+
+# Media information
+'file-info-size' => '$1 × $2 चित्रतत्व, संचिका के आकार: $3, MIME प्रकार: $4',
+'file-nohires' => '<small>सॆं ज्यादा रिज़ोल्यूशन उपलब्ध नै छै.</small>',
+'svg-long-desc' => 'SVG फ़ाईल, साधारणत: $1 × $2 पीक्सेल्स, फ़ाईल केरॊ आकार: $3',
+'show-big-image' => 'संपूर्ण रिजोल्यूशन',
+
+# Bad image list
+'bad_image_list' => 'फोर्मेट निम्न अनुसार छै:
+खाली सूची सामग्री (* सॆं शुरु होय वाला पंक्ति ) चुनलॊ जैतै.
+पंक्ति पर पहिला लिंक एगो खराब फाईल के साथ जुड़ल होना चाहियॊ.
+कोय भी बाद वाला लिंक ओही पंक्ति पर अईला पर ओकरा अपवाद मानलॊ जैतै, अर्थात वू पन्ना जेकरॊ अंदर इ फाईल जुङलॊ हुऎ सकॆ छै.',
+
+# Metadata
+'metadata' => 'मेटाडाटा',
+'metadata-help' => 'इ फ़ाईल मॆ अतिरिक्त जानकारी छै, हुऎ सकॆ छै कि इ फ़ाईल बनाबै मॆं इस्तेमाल करलॊ गेलॊ स्कैनर अथवा कैमरा सॆं इ प्राप्त होलॊ हुऒ. अगर इ फ़ाईल बदली देलॊ गेलॊ छै तॆ ई जानकारी नया फ़ाईल सॆं मेल नै खाबै के आशंका छै.',
+'metadata-expand' => 'अतिरिक्त जानकारी दिखाबॊ',
+'metadata-collapse' => 'विस्तारित जानकारी छुपाबॊ',
+'metadata-fields' => 'इ सूची मॆं देलॊ गेलॊ जानकारी फ़ाईल केरॊ नीचे मेटाडाटा जानकारी मॆं हमेशा दिखतै.
+बचलॊ जानकारी हमेशा छुपलॊ रहतै
+* make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# External editor support
+'edit-externally' => 'बाहरी प्रणाली केरॊ इस्तेमाल करतें इ फ़ाईल कॆ संपादित करॊ.',
+'edit-externally-help' => '(आरू जानकारी लेली[//www.mediawiki.org/wiki/Manual:External_editors जमाव निर्देश] देखॊ)',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'सब्भे',
+'namespacesall' => 'सब्भे',
+'monthsall' => 'सब्भे',
+
+# Watchlist editing tools
+'watchlisttools-view' => 'प्रासंगिक बदलाव देखॊ',
+'watchlisttools-edit' => 'ध्यानसूची देखॊ आरू संपादित करॊ.',
+'watchlisttools-raw' => 'अनिर्मित ध्यानसूची देखॊ एवम्‌ संपादित करॊ',
+
+# Special:SpecialPages
+'specialpages' => 'खास पन्ना',
+
+);
diff --git a/languages/messages/MessagesAr.php b/languages/messages/MessagesAr.php
index 9d461a2e..4cd2795c 100644
--- a/languages/messages/MessagesAr.php
+++ b/languages/messages/MessagesAr.php
@@ -28,6 +28,7 @@
* @author Lord Anubis
* @author MK
* @author Majid Al-Dharrab
+ * @author Malhargan
* @author Menasim
* @author Meno25
* @author Mido
@@ -58,12 +59,6 @@ $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,
-);
/**
* A list of date format preference keys which can be selected in user
@@ -172,6 +167,17 @@ $namespaceAliases = array(
'نقاش_الصورة' => NS_FILE_TALK,
);
+$namespaceGenderAliases = array(
+ NS_USER => array(
+ 'male' => 'مستخدم',
+ 'female' => 'مستخدمة'
+ ),
+ NS_USER_TALK => array(
+ 'male' => 'نقاش_المستخدم',
+ 'female' => 'نقاش_المستخدمة'
+ ),
+);
+
$magicWords = array(
'redirect' => array( '0', '#تحويل', '#REDIRECT' ),
'notoc' => array( '0', '__لافهرس__', '__NOTOC__' ),
@@ -324,100 +330,102 @@ $magicWords = array(
);
$specialPageAliases = array(
- 'DoubleRedirects' => array( 'تحويلات_مزدوجة' ),
+ 'Activeusers' => array( 'مستخدمون_نشطون' ),
+ 'Allmessages' => array( 'كل_الرسائل' ),
+ 'Allpages' => array( 'كل_الصفحات' ),
+ 'Ancientpages' => array( 'صفحات_قديمة' ),
+ 'Blankpage' => array( 'صفحة_فارغة' ),
+ 'Block' => array( 'منع', 'منع_أيبي', 'منع_مستخدم' ),
+ 'Blockme' => array( 'منعي' ),
+ 'Booksources' => array( 'مصادر_كتاب' ),
'BrokenRedirects' => array( 'تحويلات_مكسورة' ),
- 'Disambiguations' => array( 'توضيحات' ),
- 'Userlogin' => array( 'دخول_المستخدم' ),
- 'Userlogout' => array( 'خروج_المستخدم' ),
+ 'Categories' => array( 'تصنيفات' ),
+ 'ChangePassword' => array( 'تغيير_كلمة_السر', 'ضبط_كلمة_السر' ),
+ 'ComparePages' => array( 'مقارنة_الصفحات' ),
+ 'Confirmemail' => array( 'تأكيد_البريد' ),
+ 'Contributions' => array( 'مساهمات' ),
'CreateAccount' => array( 'إنشاء_حساب' ),
- 'Preferences' => array( 'تفضيلات' ),
- 'Watchlist' => array( 'قائمة_المراقبة' ),
- 'Recentchanges' => array( 'أحدث_التغييرات' ),
- 'Upload' => array( 'رفع' ),
- 'UploadStash' => array( 'رفع_مخفي' ),
+ 'Deadendpages' => array( 'صفحات_نهاية_مسدودة' ),
+ 'DeletedContributions' => array( 'مساهمات_محذوفة' ),
+ 'Disambiguations' => array( 'توضيحات' ),
+ 'DoubleRedirects' => array( 'تحويلات_مزدوجة' ),
+ 'EditWatchlist' => array( 'تعديل_قائمة_المراقبة' ),
+ 'Emailuser' => array( 'مراسلة_المستخدم' ),
+ 'Export' => array( 'تصدير' ),
+ 'Fewestrevisions' => array( 'الأقل_تعديلا' ),
+ 'FileDuplicateSearch' => array( 'بحث_ملف_مكرر' ),
+ 'Filepath' => array( 'مسار_ملف' ),
+ 'Import' => array( 'استيراد' ),
+ 'Invalidateemail' => array( 'تعطيل_البريد_الإلكتروني' ),
+ 'BlockList' => array( 'قائمة_المنع', 'عرض_المنع', 'قائمة_منع_أيبي' ),
+ 'LinkSearch' => array( 'بحث_الوصلات' ),
+ 'Listadmins' => array( 'عرض_الإداريين' ),
+ 'Listbots' => array( 'عرض_البوتات' ),
'Listfiles' => array( 'عرض_الملفات', 'قائمة_الملفات', 'قائمة_الصور' ),
- 'Newimages' => array( 'ملفات_جديدة', 'صور_جديدة' ),
- 'Listusers' => array( 'عرض_المستخدمين', 'قائمة_المستخدمين' ),
'Listgrouprights' => array( 'عرض_صلاحيات_المجموعات', 'صلاحيات_مجموعات_المستخدمين' ),
- 'Statistics' => array( 'إحصاءات' ),
- 'Randompage' => array( 'عشوائي', 'صفحة_عشوائية' ),
+ 'Listredirects' => array( 'عرض_التحويلات' ),
+ 'Listusers' => array( 'عرض_المستخدمين', 'قائمة_المستخدمين' ),
+ 'Lockdb' => array( 'غلق_قب' ),
+ 'Log' => array( 'سجل', 'سجلات' ),
'Lonelypages' => array( 'صفحات_وحيدة', 'صفحات_يتيمة' ),
- 'Uncategorizedpages' => array( 'صفحات_غير_مصنفة' ),
- 'Uncategorizedcategories' => array( 'تصنيفات_غير_مصنفة' ),
- 'Uncategorizedimages' => array( 'ملفات_غير_مصنفة', 'صور_غير_مصنفة' ),
- 'Uncategorizedtemplates' => array( 'قوالب_غير_مصنفة' ),
- 'Unusedcategories' => array( 'تصنيفات_غير_مستخدمة' ),
- 'Unusedimages' => array( 'ملفات_غير_مستخدمة', 'صور_غير_مستخدمة' ),
- 'Wantedpages' => array( 'صفحات_مطلوبة', 'وصلات_مكسورة' ),
- 'Wantedcategories' => array( 'تصنيفات_مطلوبة' ),
- 'Wantedfiles' => array( 'ملفات_مطلوبة' ),
- 'Wantedtemplates' => array( 'قوالب_مطلوبة' ),
+ 'Longpages' => array( 'صفحات_طويلة' ),
+ 'MergeHistory' => array( 'دمج_التاريخ' ),
+ 'MIMEsearch' => array( 'بحث_ميم' ),
+ 'Mostcategories' => array( 'الأكثر_تصنيفا' ),
+ 'Mostimages' => array( 'أكثر_الملفات_وصلا', 'أكثر_الملفات', 'أكثر_الصور' ),
'Mostlinked' => array( 'أكثر_الصفحات_وصلا', 'الأكثر_وصلا' ),
'Mostlinkedcategories' => array( 'أكثر_التصنيفات_وصلا', 'أكثر_التصنيفات_استخداما' ),
'Mostlinkedtemplates' => array( 'أكثر_القوالب_وصلا', 'أكثر_القوالب_استخداما' ),
- 'Mostimages' => array( 'أكثر_الملفات_وصلا', 'أكثر_الملفات', 'أكثر_الصور' ),
- 'Mostcategories' => array( 'الأكثر_تصنيفا' ),
'Mostrevisions' => array( 'الأكثر_تعديلا' ),
- 'Fewestrevisions' => array( 'الأقل_تعديلا' ),
- 'Shortpages' => array( 'صفحات_قصيرة' ),
- 'Longpages' => array( 'صفحات_طويلة' ),
+ 'Movepage' => array( 'نقل_صفحة' ),
+ 'Mycontributions' => array( 'مساهماتي' ),
+ 'Mypage' => array( 'صفحتي' ),
+ 'Mytalk' => array( 'نقاشي' ),
+ 'Myuploads' => array( 'رفوعاتي' ),
+ 'Newimages' => array( 'ملفات_جديدة', 'صور_جديدة' ),
'Newpages' => array( 'صفحات_جديدة' ),
- 'Ancientpages' => array( 'صفحات_قديمة' ),
- 'Deadendpages' => array( 'صفحات_نهاية_مسدودة' ),
+ 'PasswordReset' => array( 'إعادة_ضبط_كلمة_السر' ),
+ 'PermanentLink' => array( 'وصلة_دائمة', 'رابط_دائم' ),
+ 'Popularpages' => array( 'صفحات_مشهورة' ),
+ 'Preferences' => array( 'تفضيلات' ),
+ 'Prefixindex' => array( 'فهرس_بادئة' ),
'Protectedpages' => array( 'صفحات_محمية' ),
'Protectedtitles' => array( 'عناوين_محمية' ),
- 'Allpages' => array( 'كل_الصفحات' ),
- 'Prefixindex' => array( 'فهرس_بادئة' ),
- 'Ipblocklist' => array( 'قائمة_المنع', 'عرض_المنع', 'قائمة_منع_أيبي' ),
- 'Unblock' => array( 'رفع_منع' ),
- 'Specialpages' => array( 'صفحات_خاصة' ),
- 'Contributions' => array( 'مساهمات' ),
- 'Emailuser' => array( 'مراسلة_المستخدم' ),
- 'Confirmemail' => array( 'تأكيد_البريد' ),
- 'Whatlinkshere' => array( 'ماذا_يصل_هنا' ),
+ 'Randompage' => array( 'عشوائي', 'صفحة_عشوائية' ),
+ 'Randomredirect' => array( 'تحويلة_عشوائية' ),
+ 'Recentchanges' => array( 'أحدث_التغييرات' ),
'Recentchangeslinked' => array( 'أحدث_التغييرات_الموصولة', 'تغييرات_مرتبطة' ),
- 'Movepage' => array( 'نقل_صفحة' ),
- 'Blockme' => array( 'منعي' ),
- 'Booksources' => array( 'مصادر_كتاب' ),
- 'Categories' => array( 'تصنيفات' ),
- 'Export' => array( 'تصدير' ),
- 'Version' => array( 'نسخة' ),
- 'Allmessages' => array( 'كل_الرسائل' ),
- 'Log' => array( 'سجل', 'سجلات' ),
- 'Blockip' => array( 'منع', 'منع_أيبي', 'منع_مستخدم' ),
+ 'Revisiondelete' => array( 'حذف_مراجعة' ),
+ 'RevisionMove' => array( 'نقل_مراجعة' ),
+ 'Search' => array( 'بحث' ),
+ 'Shortpages' => array( 'صفحات_قصيرة' ),
+ 'Specialpages' => array( 'صفحات_خاصة' ),
+ 'Statistics' => array( 'إحصاءات' ),
+ 'Tags' => array( 'وسوم' ),
+ 'Unblock' => array( 'رفع_منع' ),
+ 'Uncategorizedcategories' => array( 'تصنيفات_غير_مصنفة' ),
+ 'Uncategorizedimages' => array( 'ملفات_غير_مصنفة', 'صور_غير_مصنفة' ),
+ 'Uncategorizedpages' => array( 'صفحات_غير_مصنفة' ),
+ 'Uncategorizedtemplates' => array( 'قوالب_غير_مصنفة' ),
'Undelete' => array( 'استرجاع' ),
- 'Import' => array( 'استيراد' ),
- 'Lockdb' => array( 'غلق_قب' ),
'Unlockdb' => array( 'فتح_قب' ),
- 'Userrights' => array( 'صلاحيات_المستخدم', 'ترقية_مدير_نظام', 'ترقية_بوت' ),
- 'MIMEsearch' => array( 'بحث_ميم' ),
- 'FileDuplicateSearch' => array( 'بحث_ملف_مكرر' ),
- 'Unwatchedpages' => array( 'صفحات_غير_مراقبة' ),
- 'Listredirects' => array( 'عرض_التحويلات' ),
- 'Revisiondelete' => array( 'حذف_مراجعة' ),
+ 'Unusedcategories' => array( 'تصنيفات_غير_مستخدمة' ),
+ 'Unusedimages' => array( 'ملفات_غير_مستخدمة', 'صور_غير_مستخدمة' ),
'Unusedtemplates' => array( 'قوالب_غير_مستخدمة' ),
- 'Randomredirect' => array( 'تحويلة_عشوائية' ),
- 'Mypage' => array( 'صفحتي' ),
- 'Mytalk' => array( 'نقاشي' ),
- 'Mycontributions' => array( 'مساهماتي' ),
- 'Myuploads' => array( 'رفوعاتي' ),
- 'Listadmins' => array( 'عرض_الإداريين' ),
- 'Listbots' => array( 'عرض_البوتات' ),
- 'Popularpages' => array( 'صفحات_مشهورة' ),
- 'Search' => array( 'بحث' ),
- 'Resetpass' => array( 'تغيير_كلمة_السر', 'ضبط_كلمة_السر' ),
+ 'Unwatchedpages' => array( 'صفحات_غير_مراقبة' ),
+ 'Upload' => array( 'رفع' ),
+ 'UploadStash' => array( 'رفع_مخفي' ),
+ 'Userlogin' => array( 'دخول_المستخدم' ),
+ 'Userlogout' => array( 'خروج_المستخدم' ),
+ 'Userrights' => array( 'صلاحيات_المستخدم', 'ترقية_مدير_نظام', 'ترقية_بوت' ),
+ 'Version' => array( 'نسخة' ),
+ 'Wantedcategories' => array( 'تصنيفات_مطلوبة' ),
+ 'Wantedfiles' => array( 'ملفات_مطلوبة' ),
+ 'Wantedpages' => array( 'صفحات_مطلوبة', 'وصلات_مكسورة' ),
+ 'Wantedtemplates' => array( 'قوالب_مطلوبة' ),
+ 'Watchlist' => array( 'قائمة_المراقبة' ),
+ 'Whatlinkshere' => array( 'ماذا_يصل_هنا' ),
'Withoutinterwiki' => array( 'بدون_إنترويكي' ),
- 'MergeHistory' => array( 'دمج_التاريخ' ),
- 'Filepath' => array( 'مسار_ملف' ),
- 'Invalidateemail' => array( 'تعطيل_البريد_الإلكتروني' ),
- 'Blankpage' => array( 'صفحة_فارغة' ),
- 'LinkSearch' => array( 'بحث_الوصلات' ),
- 'DeletedContributions' => array( 'مساهمات_محذوفة' ),
- 'Tags' => array( 'وسوم' ),
- 'Activeusers' => array( 'مستخدمون_نشطون' ),
- 'ComparePages' => array( 'مقارنة_الصفحات' ),
- 'Badtitle' => array( 'عوان_سئ' ),
- 'DisableAccount' => array( 'تعطيل_الحساب' ),
);
/**
@@ -467,8 +475,8 @@ $messages = array(
'tog-shownumberswatching' => 'اعرض عدد المستخدمين المراقبين',
'tog-oldsig' => 'التوقيع الحالي:',
'tog-fancysig' => 'عامل التوقيع كنص ويكي (بدون وصلة أوتوماتيكية)',
-'tog-externaleditor' => 'استخدم محررا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([http://www.mediawiki.org/wiki/Manual:External_editors مزيد من المعلومات.])',
-'tog-externaldiff' => 'استخدم فرقا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([http://www.mediawiki.org/wiki/Manual:External_editors للمزيد من المعلومات.])',
+'tog-externaleditor' => 'استخدم محررا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([//www.mediawiki.org/wiki/Manual:External_editors مزيد من المعلومات.])',
+'tog-externaldiff' => 'استخدم فرقا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([//www.mediawiki.org/wiki/Manual:External_editors للمزيد من المعلومات.])',
'tog-showjumplinks' => 'مكن وصلات "اذهب إلى" المساعدة',
'tog-uselivepreview' => 'استخدم الاستعراض السريع (جافاسكريبت) (تجريبي)',
'tog-forceeditsummary' => 'نبهني عند إدخال ملخص تعديل فارغ',
@@ -550,7 +558,7 @@ $messages = array(
# Categories related messages
'pagecategories' => '{{PLURAL:$1|لا تصانيف|التصنيف|التصنيفان|التصنيفات}}',
-'category_header' => 'الصفحات في التصنيف "$1"',
+'category_header' => 'صفحات تصنيف "$1"',
'subcategories' => 'التصنيفات الفرعية',
'category-media-header' => 'الوسائط في التصنيف "$1"',
'category-empty' => "''هذا التصنيف لا يحتوي حاليا على صفحات أو وسائط.''",
@@ -561,19 +569,11 @@ $messages = array(
'category-article-count' => '{{PLURAL:$2|لا يحتوي هذا التصنيف أي صفحات.|هذا التصنيف يحتوي على الصفحة التالية فقط.|{{PLURAL:$1||الصفحة التالية|الصفحتان التاليتان|ال$1 صفحات التالية|ال$1 صفحة التالية|ال$1 صفحة التالية}} في هذا التصنيف، من إجمالي $2.}}',
'category-article-count-limited' => '{{PLURAL:$1||الصفحة التالية|الصفحتان التاليتان|ال$1 صفحات التالية|ال$1 صفحة التالية|ال$1 صفحة التالية}} في التصنيف الحالي.',
'category-file-count' => '{{PLURAL:$2|هذا التصنيف يحتوي فقط على الملف التالي.|{{PLURAL:$1|الملف|ال$1 ملف}} التالية في هذا التصنيف، من إجمالي $2.}}',
-'category-file-count-limited' => 'بالأسفل {{PLURAL:$1|ملف|$1 ملف}} في التصنيف الحالي.',
+'category-file-count-limited' => '{{PLURAL:$1|الملف التالي|الملفان التاليان|ال$1 ملفات التالية|ال$1 ملفًا تاليًا|ال$1 ملف تالٍ}}) في التصنيف الحالي.',
'listingcontinuesabbrev' => 'متابعة',
'index-category' => 'صفحات مفهرسة',
'noindex-category' => 'صفحات غير مفهرسة',
-
-'mainpagetext' => "'''تم تثبيت ميدياويكي بنجاح.'''",
-'mainpagedocfooter' => 'استشر [http://meta.wikimedia.org/wiki/Help:Contents دليل المستخدم] لمعلومات حول استخدام برنامج الويكي.
-
-== البداية ==
-
-* [http://www.mediawiki.org/wiki/Manual:Configuration_settings قائمة إعدادات الضبط]
-* [http://www.mediawiki.org/wiki/Manual:FAQ أسئلة متكررة حول ميدياويكي]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce القائمة البريدية الخاصة بإصدار ميدياويكي]',
+'broken-file-category' => 'صفحات تحتوي وصلات ملفات معطوبة',
'about' => 'عن',
'article' => 'صفحة محتوى',
@@ -625,10 +625,10 @@ $messages = array(
'history' => 'تاريخ الصفحة',
'history_short' => 'تاريخ',
'updatedmarker' => 'تم تحديثها منذ زيارتي الأخيرة',
-'info_short' => 'معلومات',
'printableversion' => 'نسخة للطباعة',
'permalink' => 'وصلة دائمة',
'print' => 'اطبع',
+'view' => 'عرض',
'edit' => 'عدل',
'create' => 'أنشئ',
'editthispage' => 'عدل هذه الصفحة',
@@ -636,6 +636,7 @@ $messages = array(
'delete' => 'احذف',
'deletethispage' => 'احذف هذه الصفحة',
'undelete_short' => 'استرجاع {{PLURAL:$1|تعديل واحد|تعديلين|$1 تعديلات|$1 تعديل|$1 تعديلا}}',
+'viewdeleted_short' => 'عرض {{PLURAL:$1|تعديل محذوف|$1 تعديلات محذوفة}}',
'protect' => 'احم',
'protect_change' => 'غير',
'protectthispage' => 'احم هذه الصفحة',
@@ -719,6 +720,8 @@ $1',
'toc' => 'محتويات',
'showtoc' => 'اعرض',
'hidetoc' => 'أخف',
+'collapsible-collapse' => 'اطو',
+'collapsible-expand' => 'وسع',
'thisisdeleted' => 'أأعرض أو أسترجع $1؟',
'viewdeleted' => 'أأعرض $1؟',
'restorelink' => '{{PLURAL:$1|$1 تعديل محذوف|تعديلا واحدا محذوفا|تعديلين محذوفين|$1 تعديلات محذوفة|$1 تعديلا محذوفا|$1 تعديلا محذوفا}}',
@@ -732,6 +735,8 @@ $1',
'feed-atom' => 'أتوم',
'feed-rss' => 'أر إس إس',
'red-link-title' => '$1 (الصفحة غير موجودة)',
+'sort-descending' => 'ترتيب تنازلي',
+'sort-ascending' => 'ترتيب تصاعدي',
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'صفحة',
@@ -819,12 +824,13 @@ $1',
'protectedinterface' => 'هذه الصفحة توفر نص الواجهة للبرنامج، وهي مقفلة لمنع التخريب.',
'editinginterface' => "'''تحذير:''' أنت تقوم بتحرير صفحة تستخدم في الواجهة النصية للبرنامج.
سوف تؤثر التغييرات على هذه الصفحة على مظهر واجهة المستخدم للمستخدمين الآخرين.
-للترجمات، من فضلك استخدم مشروع ترجمة ميدياويكي [http://translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
+للترجمات، من فضلك استخدم مشروع ترجمة ميدياويكي [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
'sqlhidden' => '(استعلام SQL مخفي)',
'cascadeprotected' => 'تمت حماية هذه الصفحة من التعديل لأنها مدمجة في {{PLURAL:$1||الصفحة التالية، والتي|الصفحتين التاليتين، واللتين|الصفحات التالية، والتي}} تم استعمال خاصية "حماية الصفحات المدمجة" {{PLURAL:$1||بها|بهما|بها}}:
$2',
'namespaceprotected' => "لا تمتلك الصلاحية لتعديل الصفحات في نطاق '''$1'''.",
-'customcssjsprotected' => 'لا تمتلك الصلاحية لتعديل هذه الصفحة، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.',
+'customcssprotected' => 'أنت لا تمتلك السماح لتعديل صفحة الCSS هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.',
+'customjsprotected' => 'أنت لا تمتلك السماح لتعديل صفحة الجافاسكريبت هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.',
'ns-specialprotected' => 'الصفحات الخاصة لا يمكن تعديلها.',
'titleprotected' => "{{GENDER:$1|حمى|حمت}} [[User:$1|$1]] هذا العنوان من الإنشاء.
السبب المعطى هو ''$2''.",
@@ -862,6 +868,7 @@ $2',
'createaccount' => 'أنشئ حسابا',
'gotaccount' => "تمتلك حسابا بالفعل؟ '''$1'''.",
'gotaccountlink' => 'لُج',
+'userlogin-resetlink' => 'أنسيت بيانات الولوج؟',
'createaccountmail' => 'بواسطة البريد الإلكتروني',
'createaccountreason' => 'السبب:',
'badretype' => 'كلمات السر التي أدخلتها لا تتطابق.',
@@ -876,13 +883,15 @@ $2',
'nocookieslogin' => 'يستخدم {{SITENAME}} الكوكيز لتسجيل الدخول.
الكوكيز معطلة لديك.
من فضلك فعلها ثم حاول مرة أخرى.',
+'nocookiesfornew' => 'لم يتم إنشاء حساب المستخدم ، ونحن لا يستطيع تأكيد مصدره.
+تأكد من أن ملفات تعريف الارتباط (كوكيز) مفعلة، ثم أعد تحديث الصفحة وحاول مرة أخرى.',
'noname' => 'لم تحدد اسم مستخدم صحيح.',
'loginsuccesstitle' => 'تم الدخول بشكل صحيح',
'loginsuccess' => "'''لقد قمت بتسجيل الدخول ل{{SITENAME}} باسم \"\$1\".'''",
'nosuchuser' => 'لا يوجد مستخدم بالاسم "$1".
أسماء المستخدمين حساسة لحالة الحروف.
تأكد من إملاء الاسم، أو [[Special:UserLogin/signup|قم بإنشاء حساب جديد]].',
-'nosuchusershort' => 'لا يوجد مستخدم باسم <nowiki>$1</nowiki>".
+'nosuchusershort' => 'لا يوجد مستخدم باسم $1".
تأكد من إملاء الاسم.',
'nouserspecified' => 'يجب عليك تحديد اسم مستخدم.',
'login-userblocked' => 'هذا المستخدم ممنوع. لا يسمح بالولوج.',
@@ -930,13 +939,14 @@ $2',
'usernamehasherror' => 'لا يمكن أن يحتوي اسم المستخدم على محارف هاش',
'login-throttled' => 'لقد قمت بمحاولات دخول كثيرة جدا مؤخرا.
من فضلك انتظر قبل المحاولة مرة أخرى.',
+'login-abort-generic' => 'لم ينجح ولوجك - إجهاض',
'loginlanguagelabel' => 'اللغة: $1',
'suspicious-userlogout' => 'رفض طلب خروجك لأنه يبدو كأنه أرسل عن طريق متصفح معطوب أو وسيط تخزين.',
# E-mail sending
'php-mail-error-unknown' => "خطأ غير معروف في وظيفة البريد PHP's mail()",
-# Password reset dialog
+# Change password dialog
'resetpass' => 'تغيير كلمة السر',
'resetpass_announce' => 'تم تسجيل دخولك بكلمة سر مؤقتة.
للدخول بشكل نهائي، يجب عليك ضبط كلمة سر جديدة هنا:',
@@ -955,6 +965,34 @@ $2',
ربما تكون غيرت كلمة السر الخاصة بك بنجاح أو طلبت كلمة سر مؤقتة جديدة.',
'resetpass-temp-password' => 'كلمة سر مؤقتة:',
+# Special:PasswordReset
+'passwordreset' => 'تمت إعادة ضبط كلمة السر',
+'passwordreset-text' => 'أكمل هذا النموذج لتتلقى بريدا إلكترونيا يذكر بتفاصيل حسابك.',
+'passwordreset-legend' => 'إعادة تعيين كلمة السر',
+'passwordreset-disabled' => 'عُطّلت إعادة تعيين كلمة السر على هذه الويكي.',
+'passwordreset-pretext' => '{{PLURAL:$1||أدخل أحد أجزاء البيانات أدناه}}',
+'passwordreset-username' => 'اسم المستخدم:',
+'passwordreset-domain' => 'النطاق:',
+'passwordreset-email' => 'عنوان البريد الإلكتروني:',
+'passwordreset-emailtitle' => 'تفاصيل حساب {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :
+
+$2
+
+{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}
+من الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .
+إذا قام شخص آخر بهذا الطلب، أو إذا تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام كلمة المرورالقديمة.',
+'passwordreset-emailtext-user' => 'احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :
+
+$2
+
+{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}
+من الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .
+إذا قام شخص آخر بهذا الطلب، أو إذا تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام كلمة المرورالقديمة.',
+'passwordreset-emailelement' => 'اسم المستخدم: $1
+كلمة السر المؤقتة: $2',
+'passwordreset-emailsent' => 'أرسل بريد إلكتروني تذكيري',
+
# Edit page toolbar
'bold_sample' => 'نص غليظ',
'bold_tip' => 'نص غليظ',
@@ -966,8 +1004,6 @@ $2',
'extlink_tip' => 'وصلة خارجية (تذكر بادئة http://)',
'headline_sample' => 'نص عنوان رئيسي',
'headline_tip' => 'عنوان من المستوى الثاني',
-'math_sample' => 'أدخل الصيغة هنا',
-'math_tip' => 'صيغة رياضية (لا تك)',
'nowiki_sample' => 'أدخل النص غير المنسق هنا',
'nowiki_tip' => 'أهمل تهيئة الويكي',
'image_tip' => 'ملف مدرج',
@@ -1054,7 +1090,7 @@ $2',
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} البحث في السجلات المتعلقة]،
أو [{{fullurl:{{FULLPAGENAME}}|action=edit}} تعديل هذه الصفحة]</span>.',
'noarticletext-nopermission' => 'لا يوجد حاليا أي نص في هذه الصفحة.يمكنك [[Special:Search/{{PAGENAME}}|البحث عن عنوان هذه الصفحة]] في الصفحات الأخرى,أو <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} بحث السجلات المتصلة]</span>.',
-'userpage-userdoesnotexist' => 'حساب المستخدم "$1" غير مسجل.
+'userpage-userdoesnotexist' => 'حساب المستخدم "<nowiki>$1</nowiki>" غير مسجل.
من فضلك تأكد أنك تريد إنشاء/تعديل هذه الصفحة.',
'userpage-userdoesnotexist-view' => 'حساب المستخدم "$1" غير مسجل.',
'blocked-notice-logextract' => 'هذا المستخدم ممنوع حاليا.
@@ -1094,6 +1130,7 @@ $2',
'token_suffix_mismatch' => "'''تعديلك تم رفضه لأن عميلك أخطأ في علامات الترقيم
في نص التعديل. تم رفض التعديل لمنع فساد نص المقالة.
هذا يحدث أحيانا عندما تستخدم خدمة بروكسي مجهول معيبة مبنية على الوب.'''",
+'edit_form_incomplete' => "'''بعض أجزاء من نموذج التعديل لم تصل إلى الخادم؛ تأكد من أن تعديلاتك لم تمس وحاول مجددا.'''",
'editing' => 'تحرير $1',
'editingsection' => 'تحرير $1 (قسم)',
'editingcomment' => 'تعديل $1 (قسم جديد)',
@@ -1333,8 +1370,8 @@ $1",
# Suppression log
'suppressionlog' => 'سجل الإخفاء',
-'suppressionlogtext' => 'بالأسفل قائمة بعمليات الحذف والمنع التي تتضمن محتوى مخفي من الإداريين.
-انظر [[Special:IPBlockList|لقائمة المنع]] لترى عمليات المنع القائمة الآن.',
+'suppressionlogtext' => 'بالأسفل قائمة بعمليات الحذف والمنع التي تتضمن محتوى مخفيا عن الإداريين.
+انظر [[Special:BlockList|قائمة منع الآيبي]] لترى عمليات المنع القائمة الآن.',
# History merging
'mergehistory' => 'دمج تواريخ الصفحة',
@@ -1446,12 +1483,13 @@ $1",
لاحظ أن فهارسه لمحتوى {{SITENAME}} ربما تكون غير محدثة.',
# Quickbar
-'qbsettings' => 'لوح سريع',
-'qbsettings-none' => 'بلا تحديد',
-'qbsettings-fixedleft' => 'مثبت لليسار',
-'qbsettings-fixedright' => 'مثبت لليمين',
-'qbsettings-floatingleft' => 'حر لليسار',
-'qbsettings-floatingright' => 'حر لليمين',
+'qbsettings' => 'لوح سريع',
+'qbsettings-none' => 'بلا تحديد',
+'qbsettings-fixedleft' => 'مثبت لليسار',
+'qbsettings-fixedright' => 'مثبت لليمين',
+'qbsettings-floatingleft' => 'حر لليسار',
+'qbsettings-floatingright' => 'حر لليمين',
+'qbsettings-directionality' => 'ثابت، بناءً على اتجاه كتابة لغتك',
# Preferences page
'preferences' => 'تفضيلات',
@@ -1462,9 +1500,10 @@ $1",
'changepassword' => 'غير كلمة السر',
'prefs-skin' => 'واجهة',
'skin-preview' => 'عاين',
-'prefs-math' => 'رياضيات',
'datedefault' => 'لا تفضيل',
+'prefs-beta' => 'مزايا بيتا',
'prefs-datetime' => 'وقت وتاريخ',
+'prefs-labs' => 'مزايا مُختَبرية',
'prefs-personal' => 'ملف المستخدم',
'prefs-rc' => 'أحدث التغييرات',
'prefs-watchlist' => 'قائمة المراقبة',
@@ -1486,8 +1525,6 @@ $1",
'columns' => 'أعمدة:',
'searchresultshead' => 'ابحث',
'resultsperpage' => 'عدد النتائج في الصفحة:',
-'contextlines' => 'عدد الأسطر في كل نتيجة:',
-'contextchars' => 'عدد الأحرف في كل سطر',
'stub-threshold' => 'الحد لتنسيق <a href="#" class="stub">وصلة البذرة</a>:',
'stub-threshold-disabled' => 'معطل',
'recentchangesdays' => 'عدد الأيام المعروضة في أحدث التغييرات:',
@@ -1500,7 +1537,7 @@ $1",
'savedprefs' => 'تم حفظ تفضيلاتك.',
'timezonelegend' => 'المنطقة الزمنية:',
'localtime' => 'الوقت المحلي:',
-'timezoneuseserverdefault' => 'استخدم افتراض الخادوم',
+'timezoneuseserverdefault' => 'استخدام الويكي الافتراضي ($1)',
'timezoneuseoffset' => 'آخر (حدد الفرق)',
'timezoneoffset' => 'الفرق¹:',
'servertime' => 'وقت الخادوم:',
@@ -1549,8 +1586,8 @@ $1",
'email' => 'البريد الإلكتروني',
'prefs-help-realname' => 'الاسم الحقيقي اختياري.
لو اخترت أن توفره، فسيستخدم في الإشارة إلى عملك.',
-'prefs-help-email' => 'عنوان البريد الإلكتروني اختياري، لكن يسمح بأن يتم إرسال كلمة السر الخاصة بك إليك لو نسيتها.
-يمكنك أيضا اختيار السماح للآخرين بالاتصال بك عن طريق صفحتك أو صفحة نقاشك من دون معرفة هويتك.',
+'prefs-help-email' => 'عنوان البريد الإلكتروني هو أمر اختياري، ولكن ستحتاج لإعادة تعيين كلمة المرور، إن نسيت كلمة المرور الخاصة بك.',
+'prefs-help-email-others' => 'يمكنك أيضا اختيار للسماح للآخرين الاتصال بك عن طريق صفحة المستخدم أو نقاش المستخدم الخاص بك دون الحاجة إلى الكشف عن الهوية الخاصة بك.',
'prefs-help-email-required' => 'عنوان البريد الإلكتروني مطلوب.',
'prefs-info' => 'المعلومات الأساسية',
'prefs-i18n' => 'الترجمة',
@@ -1675,15 +1712,15 @@ $1",
'right-userrights' => 'تعديل كل صلاحيات المستخدمين',
'right-userrights-interwiki' => 'تعديل صلاحيات المستخدم للمستخدمين في الويكيات الأخرى',
'right-siteadmin' => 'غلق ورفع غلق قاعدة البيانات',
-'right-reset-passwords' => 'إعادة ضبط كلمة السر للمستخدمين الآخرين',
'right-override-export-depth' => 'تصدير الصفحات متضمنة الصفحات الموصولة حتى عمق 5',
'right-sendemail' => 'إرسال رسائل بريد إلكتروني إلى مستخدمين آخرين',
# User rights log
-'rightslog' => 'سجل صلاحيات المستخدمين',
-'rightslogtext' => 'هذا سجل بالتغييرات في صلاحيات المستخدمين.',
-'rightslogentry' => 'غير صلاحيات $1 من $2 إلى $3',
-'rightsnone' => '(لا شيء)',
+'rightslog' => 'سجل صلاحيات المستخدمين',
+'rightslogtext' => 'هذا سجل بالتغييرات في صلاحيات المستخدمين.',
+'rightslogentry' => 'غير صلاحيات $1 من $2 إلى $3',
+'rightslogentry-autopromote' => 'تمت ترقيته تلقائيا من $2 إلى $3',
+'rightsnone' => '(لا شيء)',
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'قراءة هذه الصفحة',
@@ -1754,7 +1791,7 @@ $1",
'rc_categories_any' => 'أي',
'newsectionsummary' => '/* $1 */ قسم جديد',
'rc-enhanced-expand' => 'عرض التفاصيل (يتطلب جافاسكريبت)',
-'rc-enhanced-hide' => 'إخفاء التفاصيل',
+'rc-enhanced-hide' => 'أخفِ التفاصيل',
# Recent changes linked
'recentchangeslinked' => 'تغييرات ذات علاقة',
@@ -1807,13 +1844,13 @@ $1",
'illegalfilename' => 'اسم الملف "$1" يحتوي على حروف غير مسموح بها في عناوين الصفحات.
من فضلك أعد تسمية الملف وحاول رفعه مرة أخرى.',
'badfilename' => 'تم تغيير اسم الملف إلى "$1".',
-'filetype-mime-mismatch' => 'امتداد الملف لا يطابق نوع MIME.',
+'filetype-mime-mismatch' => 'امتداد الملف ".$1" لا يطابق نوع MIME للملف ($2).',
'filetype-badmime' => 'من غير المسموح به رفع ملفات من النوع "$1".',
'filetype-bad-ie-mime' => 'لم يمكن رفع هذا المف لأن إنترنت إكسبلورر سيكتشفه ك"$1", وهو نوع ملف ممنوع ومن المحتمل أن يكون خطرا.',
'filetype-unwanted-type' => "'''\".\$1\"''' هو نوع ملف غير مرغوب فيه.
{{PLURAL:\$3|نوع الملف المفضل هو|أنواع الملفات المفضلة هي}} \$2.",
-'filetype-banned-type' => "'''\".\$1\"''' ليس نوع ملف مسموح به.
-{{PLURAL:\$3|نوع الملف المسموح به هو|أنواع الملفات المسموح بها هي}} \$2.",
+'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|ليس نوع ملف مسموح به|ليسوا أنواع ملفات مسموح بها}}.
+{{PLURAL:$3|نوع الملف المسموح به هو|أنواع الملفات المسموح بها هي}} $2.',
'filetype-missing' => 'الملف بدون امتداد (مثل ".jpg").',
'empty-file' => 'الملف الذي أرسلته كان فارغا.',
'file-too-large' => 'الملف الذي أرسلته كان كبيرا جدا.',
@@ -1831,6 +1868,7 @@ $1",
'emptyfile' => 'يبدو أن الملف الذي رفعته فارغ.
قد يكون سبب ذلك خطأ في كتابة الاسم.
من فضلك تأكد من أنك تريد فعلا رفع هذا الملف.',
+'windows-nonascii-filename' => 'هذا ويكي لا يعتمد أسماء الملفات مع الأحرف الخاصة.',
'fileexists' => "هناك ملف موجود يحمل نفس هذا الاسم الرجاء التأكد من هذا الملف باتباع الوصلة التالية '''<tt>[[:$1]]</tt>''' قبل القيام بتغييره.
[[$1|thumb]]",
'filepageexists' => "أنشئت صفحة وصف هذا الملف في '''<tt>[[:$1]]</tt>'''، لكن لا يوجد ملف بهذا الاسم حاليا.
@@ -1866,6 +1904,8 @@ $1",
'php-uploaddisabledtext' => 'رفع ملفات PHP معطل. من فضلك تحقق من إعدادات رفع الملفات.',
'uploadscripted' => 'هذا الملف يضم كود HTML أو كود آخر يمكن أن يفسره متصفح الوب بطريقة خاطئة.',
'uploadvirus' => 'الملف يحتوي على فيروس! التفاصيل: $1',
+'uploadjava' => 'يحتوي ملف ZIP هذا على ملفات جافا .class.
+لا يسمح برفع ملفات جافا لأنها تتيح تخطي القيود الأمنية.',
'upload-source' => 'الملف المصدر',
'sourcefilename' => 'اسم ملف المصدر:',
'sourceurl' => 'مسار المصدر:',
@@ -1876,10 +1916,6 @@ $1",
'watchthisupload' => 'راقب هذا الملف',
'filewasdeleted' => 'تم رفع ثم حذف ملف بهذا الاسم من قبل.
من الأفضل مراجعة $1 قبل رفعه مرة أخرى.',
-'upload-wasdeleted' => "'''تحذير: أنت تقوم برفع ملف تم حذفه في السابق.'''
-
-يجب عليك التيقن من أن الاستمرار برفع هذا الملف ملائم.
-سجل الحذف لهذا الملف معروض هنا للتيسير:",
'filename-bad-prefix' => "اسم الملف الذي ترفعه يبدأ ب'''\"\$1\"'''، وهو اسم غير وصفي عادة يوضع تلقائيا من الكاميرات الرقمية.
من فضلك اختر اسما أكثر وصفا لملفك.",
'filename-prefix-blacklist' => ' #<!-- اترك هذا السطر تماما كما هو --> <pre>
@@ -1918,12 +1954,29 @@ $1',
'upload-unknown-size' => 'حجم غير معروف',
'upload-http-error' => 'صودف خطأ HTTP: $1',
+# ZipDirectoryReader
+'zip-file-open-error' => 'صودف خطأ أثناء فتح الملف لفحوصات ZIP.',
+'zip-wrong-format' => 'الملف المحدد ليس ملف ZIP.',
+'zip-bad' => 'ملف ZIP هذا معطوب أو لا يمكن قراءته لسبب آخر.
+لا يمكن التحقق من سلامته.',
+'zip-unsupported' => 'هذا ملف ZIP يستخدم بعض مزايا ZIP التي لا يدعمها ميدياويكي.
+لا يمكن التحقق من سلامته.',
+
+# Special:UploadStash
+'uploadstash' => 'تحميل مخبأ',
+'uploadstash-summary' => ' توفر هذه الصفحة الوصول إلى الملفات التي يتم تحميلها (أو في أثناء عملية التحميل) ولكنها لم تنشر بعد. هذه الملفات هي غير مرئية لأحد إلا للمستخدم الذين تم الرفع لهم.',
+'uploadstash-clear' => 'مسح الملفات المخبأة',
+'uploadstash-nofiles' => 'ليس لديك أي ملفات مخبأة.',
+'uploadstash-badtoken' => 'لم ينجح أداء ذلك العمل، ربما لأن وثائق تفويض التحرير الخاصة بك منتهية الصلاحية. حاول مرة أخرى.',
+'uploadstash-errclear' => 'لم تنجح عملية مسح الملفات.',
+'uploadstash-refresh' => 'تحديث قائمة الملفات',
+
# img_auth script messages
'img-auth-accessdenied' => 'رفض الوصول',
-'img-auth-nopathinfo' => 'PATH_INFO مفقودة.
-خادمك ليس مضبوطا لتمرير هذه المعلومات.
-ربما يكون CGI-based ولا يمكنه دعم img_auth.
-انظر http://www.mediawiki.org/wiki/Manual:Image_Authorization.',
+'img-auth-nopathinfo' => 'PATH_INFO مفقود.
+خادومك ليس مضبوطا لتمرير هذه المعلومات.
+ربما يكون مبني على CGI ولا يمكنه دعم img_auth.
+[//www.mediawiki.org/wiki/Manual:Image_Authorization راجع تصريح الصور].',
'img-auth-notindir' => 'المسار المطلوب غير موجود في مجلد الرفع المضبوط.',
'img-auth-badtitle' => 'تعذر تشكيل عنوان صالح من "$1".',
'img-auth-nologinnWL' => 'لست والجا و"$1" ليست في القائمة البيضاء.',
@@ -2001,7 +2054,7 @@ $1',
[[Special:WhatLinksHere/$2|قائمة كاملة]] متوفرة.',
'nolinkstoimage' => 'لا توجد صفحات تصل لهذا الملف.',
'morelinkstoimage' => 'عرض [[Special:WhatLinksHere/$1|المزيد من الوصلات]] إلى هذا الملف.',
-'redirectstofile' => '{{PLURAL:$1|الملف|ال$1 ملف}} التالي يحول إلى هذا الملف:',
+'linkstoimage-redirect' => '$1 (تحويلة ملف) $2',
'duplicatesoffile' => '{{PLURAL:$1|الملف التالي مكرر|ال$1 ملف التالي مكررات}} لهذا الملف
([[Special:FileDuplicateSearch/$2|المزيد من التفاصيل]]):',
'sharedupload' => 'هذا الملف من $1 ويمكن استخدامه بواسطة المشاريع الأخرى.',
@@ -2094,18 +2147,19 @@ $1',
'statistics-users-active-desc' => 'المستخدمون الذين قاموا بفعل في آخر {{PLURAL:$1|يوم|$1 يوم}}',
'statistics-mostpopular' => 'أكثر الصفحات مشاهدة',
-'disambiguations' => 'صفحات التوضيح',
+'disambiguations' => 'الصفحات التي ترتبط بصفحات توضيح',
'disambiguationspage' => 'Template:توضيح',
'disambiguations-text' => "الصفحات التالية تصل إلى '''صفحة توضيح'''.
ينبغي في المقابل أن تصل إلى الصفحة الملائمة. <br />
تعامل الصفحة كصفحة توضيح إذا كان بها قالب موجود في [[MediaWiki:Disambiguationspage]]",
-'doubleredirects' => 'تحويلات مزدوجة',
-'doubleredirectstext' => 'هذه الصفحة تعرض الصفحات التي تحول إلى صفحات تحويل أخرى.
+'doubleredirects' => 'تحويلات مزدوجة',
+'doubleredirectstext' => 'هذه الصفحة تعرض الصفحات التي تحول إلى صفحات تحويل أخرى.
كل سطر يحتوي على وصلات للتحويلة الأولى والثانية وهدف التحويلة الثانية، والذي عادة ما يشير إلى صفحة الهدف "الحقيقية"، التي من المفترض أن تحول إليها التحويلة الأولى.
المدخلات <del>المشطوبة</del> صححت.',
-'double-redirect-fixed-move' => '[[$1]] تم نقلها، هي الآن تحويلة إلى [[$2]]',
-'double-redirect-fixer' => 'مصلح التحويل',
+'double-redirect-fixed-move' => '[[$1]] تم نقلها، هي الآن تحويلة إلى [[$2]]',
+'double-redirect-fixed-maintenance' => 'تصليح تحويلة مزدوجة من [[$1]] إلى [[$2]].',
+'double-redirect-fixer' => 'مصلح التحويل',
'brokenredirects' => 'تحويلات مكسورة',
'brokenredirectstext' => 'التحويلات التالية تصل لصفحات غير موجودة:',
@@ -2124,7 +2178,7 @@ $1',
'ncategories' => '$1 {{PLURAL:$1|تصنيف واحد|تصنيفان|تصنيفات|تصنيف|تصنيفا}}',
'nlinks' => '{{PLURAL:$1|لا وصلات|وصلة واحدة|وصلتان|$1 وصلات|$1 وصلة}}',
'nmembers' => '{{PLURAL:$1|لا أعضاء|عضو واحد|عضوان|$1 أعضاء|$1 عضوا|$1 عضو}}',
-'nrevisions' => '{{PLURAL:$1|تعديل وحيد|تعديلان|$1 تعديلات|$1 تعديل|$1 تعديلا}}',
+'nrevisions' => '{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}',
'nviews' => '{{PLURAL:$1|مشاهدة واحدة|مشاهدتان|$1 مشاهدات|$1 مشاهدة}}',
'nimagelinks' => 'مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}',
'ntransclusions' => 'مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}',
@@ -2165,7 +2219,7 @@ $1',
'listusers' => 'قائمة الأعضاء',
'listusers-editsonly' => 'اعرض المستخدمين الذين قاموا بتعديلات فقط',
'listusers-creationsort' => 'رتب حسب تاريخ الإنشاء',
-'usereditcount' => '$1 {{PLURAL:$1|تعديل|تعديل}}',
+'usereditcount' => '{{PLURAL:$1|لا تعديلات|تعديل واحد|تعديلان|$1 تعديلات|$1 تعديلًا|$1 تعديل}}',
'usercreated' => 'تم إنشاؤه في $1 الساعة $2',
'newpages' => 'صفحات جديدة',
'newpages-username' => 'اسم المستخدم:',
@@ -2182,6 +2236,7 @@ $1',
'pager-newer-n' => '{{PLURAL:$1|أجدد 1|أجدد $1}}',
'pager-older-n' => '{{PLURAL:$1|أقدم 1|أقدم $1}}',
'suppress' => 'أوفرسايت',
+'querypage-disabled' => 'تم تعطيل هذه الصفحة الخاصة لأسباب تتعلق بالأداء.',
# Book sources
'booksources' => 'مصادر كتاب',
@@ -2234,7 +2289,7 @@ $1',
'sp-deletedcontributions-contribs' => 'مساهمات',
# Special:LinkSearch
-'linksearch' => 'وصلات خارجية',
+'linksearch' => 'بحث في الوصلات الخارجية',
'linksearch-pat' => 'نمط البحث:',
'linksearch-ns' => 'النطاق:',
'linksearch-ok' => 'ابحث',
@@ -2300,6 +2355,10 @@ $1',
'noemailtext' => 'لم يحدد هذا المستخدم عنوان بريد إلكتروني صحيح.',
'nowikiemailtitle' => 'لا بريد إلكتروني مسموح به',
'nowikiemailtext' => 'هذا المستخدم اختار ألا يستقبل البريد الإلكتروني من المستخدمين الآخرين.',
+'emailnotarget' => 'المستلم ليس مستخدمًا موجودًا أو ليس مستخدمًا صحيحًا.',
+'emailtarget' => 'أدخل اسم مستخدم المستلم',
+'emailusername' => 'اسم المستخدم:',
+'emailusernamesubmit' => 'أرسل',
'email-legend' => 'إرسال بريد إلكتروني إلى مستخدم {{SITENAME}} آخر',
'emailfrom' => 'من:',
'emailto' => 'إلى:',
@@ -2324,10 +2383,10 @@ $1',
'watchlistanontext' => 'الرجاء $1 لعرض أو تعديل الصفحات في قائمة مراقبتك.',
'watchnologin' => 'غير مسجل',
'watchnologintext' => 'يجب أن تكون [[Special:UserLogin|مسجلا الدخول]] لتعدل قائمة مراقبتك.',
-'addedwatch' => 'تمت الإضافة لقائمة المراقبة',
+'addwatch' => 'إضافة إلى قائمة المراقبة',
'addedwatchtext' => "أضيفت الصفحة \"[[:\$1]]\" إلى [[Special:Watchlist|قائمة مراقبتك]].
التغييرات القادمة على هذه الصفحة وصفحة نقاشها سيتم وضعها هناك، وسيتم إظهار اسم الصفحة بخط '''غليظ''' في صفحة [[Special:RecentChanges|أحدث التغييرات]] لتسهيل تحديدها واكتشافها.",
-'removedwatch' => 'تمت الإزالة من قائمة المراقبة',
+'removewatch' => 'إزالة من قائمة المراقبة',
'removedwatchtext' => 'الصفحة "[[:$1]]" تمت إزالتها من [[Special:Watchlist|قائمة مراقبتك]].',
'watch' => 'راقب',
'watchthispage' => 'راقب هذه الصفحة',
@@ -2341,15 +2400,16 @@ $1',
'wlheader-showupdated' => "* الصفحات التي تم تحريرها بعد زيارتك لها لآخر مرة معروضة بالخط '''الغليظ'''",
'watchmethod-recent' => 'فحص التعديلات الأخيرة للصفحات المراقبة',
'watchmethod-list' => 'فحص الصفحات المراقبة للتعديلات الحديثة',
-'watchlistcontains' => 'تحتوي قائمة مراقبتك على $1 {{PLURAL:$1|صفحة|صفحة}}.',
+'watchlistcontains' => 'تحتوي قائمة مراقبتك على {{PLURAL:$1|لا صفحات|صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}.',
'iteminvalidname' => "مشكلة في المدخل '$1'، اسم غير صحيح...",
'wlnote' => "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}}.",
'wlshowlast' => 'عرض آخر $1 ساعات $2 أيام $3',
'watchlist-options' => 'خيارات قائمة المراقبة',
# Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'يراقب...',
-'unwatching' => 'إزالة المراقبة...',
+'watching' => 'يراقب...',
+'unwatching' => 'إزالة المراقبة...',
+'watcherrortext' => 'حدث خطأ أثناء تغيير إعدادات الرصد الخاصة بك "$1".',
'enotif_mailer' => 'نظام {{SITENAME}} البريدي للإخطارات',
'enotif_reset' => 'علم على كل الصفحات كمزارة',
@@ -2361,32 +2421,32 @@ $1',
'enotif_lastvisited' => 'انظر $1 لكل التغييرات منذ زيارتك الأخيرة.',
'enotif_lastdiff' => 'انظر $1 لرؤية هذا التغيير.',
'enotif_anon_editor' => 'مستخدم مجهول $1',
-'enotif_body' => 'عزيزي $ WATCHINGUSERNAMEE
-صفحة $PAGETITLE قد $ CHANGEDORCREATEDفي $PAGEEDITDATE ب$PAGEEDITOR, انظر$PAGETITLE_URL للمراجعة الحالية
-موجز للمحرر: $PAGESUMMARY $PAGEMINOREDIT
+'enotif_body' => 'عزيزي $WATCHINGUSERNAME
+صفحة $PAGETITLE قد $CHANGEDORCREATED في $PAGEEDITDATE بواسطة $PAGEEDITOR, انظر $PAGETITLE_URL للنسخة الحالية
+ملخص التعديل: $PAGESUMMARY $PAGEMINOREDIT
الاتصال بالمحرر:
- البريد: $PAGEEDITOR_EMAIL
- ويكي: $PAGEEDITOR_WIKI
+البريد: $PAGEEDITOR_EMAIL
+ويكي: $PAGEEDITOR_WIKI
-لن يكون هناك لا إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة هذه الصفحة.
+لن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة.
يمكن أيضا تعيين إشارات الإعلام لجميع صفحات شاهد على هيئة الرصد الخاصة بك.
- {{SITENAME}} إعلام النظام الخاص بك ودية
+ {{SITENAME}} إعلام البريد الإلكتروني لموقع
--
لتغيير إعدادات إعلام البريد الإلكتروني الخاص بك، قم بزيارة
-{{fullurl: {{# الخاص: تفضيلات}}}}
+{{canonicalurl:{{#special:Preferences}}}}
-لتغيير إعدادات الرصد الخاصة بك، قم بزيارة
-{{fullurl: {{# الخاص: الرصد}}/تحرير}}
+لتغيير إعدادات المراقبة الخاصة بك، قم بزيارة
+{{canonicalurl:{{#special:EditWatchlist}}}}
-لحذف الصفحة من هيئة الرصد الخاصة بك، قم بزيارة
-$ أونواتشورل
+لحذف الصفحة من قائمة المراقبة الخاصة بك، قم بزيارة
+$UNWATCHURL
التغذية المرتدة، والحصول على مساعدة إضافية:
-{{fullurl: {{MediaWiki:Helppage}}}}',
+{{canonicalurl: {{MediaWiki:Helppage}}}}',
# Delete
'deletepage' => 'حذف الصفحة',
@@ -2402,7 +2462,7 @@ $ أونواتشورل
من فضلك التأكد من عزمك على الحذف، وبأنك مدرك للعواقب، وبأنك تقوم بهذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
'actioncomplete' => 'انتهاء العملية',
'actionfailed' => 'الفعل فشل',
-'deletedtext' => '"<nowiki>$1</nowiki>" تم حذفها.
+'deletedtext' => '"$1" تم حذفها.
انظر في $2 لسجل آخر عمليات الحذف.',
'deletedarticle' => 'حذف "[[$1]]"',
'suppressedarticle' => 'أخفى "[[$1]]"',
@@ -2418,10 +2478,10 @@ $ أونواتشورل
** خرق لحقوق التأليف والنشر
** تخريب',
'delete-edit-reasonlist' => 'عدل أسباب الحذف',
-'delete-toobig' => 'هذه الصفحة لها تاريخ تعديل كبير، أكثر من $1 {{PLURAL:$1|مراجعة|مراجعة}}.
-حذف مثل هذه الصفحات تم تحديده لمنع الاضطراب العرضي في {{SITENAME}}.',
-'delete-warning-toobig' => 'هذه الصفحة لها تاريخ تعديل كبير، أكثر من $1 {{PLURAL:$1|مراجعة|مراجعة}}.
-حذفها ربما يؤدي إلى اضطراب عمليات قاعدة البيانات في {{SITENAME}}؛
+'delete-toobig' => 'لهذه الصفحة تاريخ تعديل طويل، أكثر من {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}}.
+قُيّد محذف مثل هذه الصفحات لمنع الاضطراب المفاجئة في {{SITENAME}}.',
+'delete-warning-toobig' => 'لهذه الصفحة تاريخ تعديل طويل، أكثر من {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}}.
+قد يؤدي حذفها إلى اضطراب عمليات قاعدة البيانات في {{SITENAME}}؛
استمر مع الحذر.',
# Rollback
@@ -2463,7 +2523,7 @@ $ أونواتشورل
'protect_expiry_invalid' => 'وقت الانتهاء غير صحيح.',
'protect_expiry_old' => 'وقت انتهاء المنع يقع في الماضي.',
'protect-unchain-permissions' => 'ألغ قفل خيارات الحماية الأخرى',
-'protect-text' => "يمكنك هنا أن تعرض وتغير مستوى الحماية للصفحة '''<nowiki>$1</nowiki>'''.",
+'protect-text' => "يمكنك هنا أن تعرض وتغير مستوى الحماية للصفحة '''$1'''.",
'protect-locked-blocked' => "لا يمكنك تغيير مستويات الحماية وأنت ممنوع.
الإعدادات الحالية للصفحة '''$1''' هي:",
'protect-locked-dblock' => "لا يمكن تغيير مستويات الحماية بسبب غلق قاعدة البيانات حاليا.
@@ -2518,9 +2578,8 @@ $ أونواتشورل
'undeletepagetext' => 'حُذفت {{PLURAL:$1||الصفحة التالية|الصفحتان التاليتان|$1 الصفحات التالية|ال$1 صفحة التالية}} ولكنها مازالت في الأرشيف ويمكن استرجاعها.
قد يمسح الأرشيف دوريا.',
'undelete-fieldset-title' => 'استرجاع المراجعات',
-'undeleteextrahelp' => "لاسترجاع تاريخ الصفحة كاملا، اترك جميع الصناديق فارغة واضغط '''''استرجاع'''''.
-للاسترجاع بشكل انتقائي، ضع علامة في الصناديق أمام المراجعات التي تريد استرجاعها، واضغط '''''استرجاع'''''.
-الضغط على '''''إلغاء''''' سيؤدي إلى إفراغ حقل التعليق وكل العلامات من الصناديق.",
+'undeleteextrahelp' => "لاسترجاع تاريخ الصفحة كاملا، اترك جميع الصناديق فارغة واضغط '''''{{int:undeletebtn}}'''''..
+للاسترجاع بشكل انتقائي، ضع علامة في الصناديق أمام المراجعات التي تريد استرجاعها، واضغط '''''{{int:undeletebtn}}'''''.",
'undeleterevisions' => '{{PLURAL:$1|لم تؤرشف أي مراجعة|أرشفت مراجعة واحدة|أرشفت مراجعتان|أرشفت $1 مراجعات|أرشفت $1 مراجعة}}',
'undeletehistory' => 'لو استرجعت الصفحة، كل المراجعات سيتم استرجاعها إلى التاريخ.
لو كان قد تم إنشاء صفحة جديدة بالاسم نفسه بعد الحذف، المراجعات المسترجعة ستظهر في التاريخ السابق.',
@@ -2566,9 +2625,12 @@ $1',
'undelete-show-file-submit' => 'نعم',
# Namespace form on various pages
-'namespace' => 'النطاق:',
-'invert' => 'اعكس الاختيار',
-'blanknamespace' => '(رئيسي)',
+'namespace' => 'النطاق:',
+'invert' => 'اعكس الاختيار',
+'tooltip-invert' => 'علم على هذا الصندوق لإخفاء التغييرات للصفحات في النطاق المختار (والنطاق المصاحب لو معلم عليها)',
+'namespace_association' => 'النطاق المقترن',
+'tooltip-namespace_association' => 'علم على هذا الصندوق لتضمين نطاق النقاش أو الموضوع لالمصاحب للنطاق المختار',
+'blanknamespace' => '(رئيسي)',
# Contributions
'contributions' => 'مساهمات المستخدم',
@@ -2618,11 +2680,13 @@ $1',
'whatlinkshere-filters' => 'مرشحات',
# Block/unblock
+'autoblockid' => 'منع تلقائي #$1',
+'block' => 'امنع المستخدم',
+'unblock' => 'إلغاء منع مستخدم',
'blockip' => 'منع مستخدم',
'blockip-title' => 'منع مستخدم',
'blockip-legend' => 'منع المستخدم',
'blockiptext' => 'استخدم النموذج التالي لمنع مستخدم، أو عنوان آيبي، معين من التعديل أو إنشاء حسابات جديدة. تُستخدم هذه العملية لمنع التخريب فقط، ويجب أن تتماشى مع [[{{MediaWiki:Policy-url}}|سياسة المنع]]. أدخل تعليلاً واضحًا لسبب المنع في الخانة المخصصة لذلك (مثلاً: ذكر صفحات محددة تمّ تخريبها من قبل المستخدم).',
-'ipaddress' => 'عنوان الأيبي:',
'ipadressorusername' => 'عنوان الأيبي أو اسم المستخدم:',
'ipbexpiry' => 'مدة المنع:',
'ipbreason' => 'السبب:',
@@ -2635,7 +2699,7 @@ $1',
** سلوك عدواني
** إساءة استخدام حسابات متعددة
** اسم مستخدم غير مقبول',
-'ipbanononly' => 'امنع المستخدمين المجهولين فقط',
+'ipb-hardblock' => 'امنع المستخدمين الوالجين من التعديل بعنوان الآيبي هذا',
'ipbcreateaccount' => 'امنع إنشاء الحسابات',
'ipbemailban' => 'امنع المستخدم من إرسال بريد إلكتروني',
'ipbenableautoblock' => 'تلقائيا امنع آخر عنوان أيبي تم استعماله بواسطة هذا المستخدم، وأي عناوين أيبي أخرى يحاول التحرير من خلالها',
@@ -2646,12 +2710,15 @@ $1',
'ipbotherreason' => 'سبب إضافي/آخر:',
'ipbhidename' => 'أخف اسم المستخدم من التعديلات والقوائم',
'ipbwatchuser' => 'راقب صفحتي المستخدم والنقاش لهذا المستخدم',
-'ipballowusertalk' => 'اسمح لهذا المستخدم بتعديل صفحة نقاشه أثناء المنع',
+'ipb-disableusertalk' => 'امنع هذا المستخدم من تعديل صفحة نقاشه ما دام ممنوعا',
'ipb-change-block' => 'أعد منع المستخدم بهذه الإعدادات',
+'ipb-confirm' => 'أكّد المنع',
'badipaddress' => 'عنوان أيبي غير صحيح',
'blockipsuccesssub' => 'تم المنع بنجاح',
'blockipsuccesstext' => 'تم منع [[Special:Contributions/$1|$1]].<br />
انظر [[Special:IPBlockList|قائمة منع الأيبي]] لمراجعة حالات المنع.',
+'ipb-blockingself' => 'أنت على وشك منع نفسك! أمتأكد من رغبتك في القيام بذلك؟',
+'ipb-confirmhideuser' => 'أنت على وشك منع مستخدم مع تفعيل خيار "أخف المستخدم". سوف يخفي هذا الخيار اسم المستخدم من جميل القوائم ومدخلات السجلات. أمتأكد من رغبتك في القيام بذلك؟',
'ipb-edit-dropdown' => 'عدل أسباب المنع',
'ipb-unblock-addr' => 'رفع منع $1',
'ipb-unblock' => 'رفع المنع عن مستخدم أو عنوان أيبي',
@@ -2661,17 +2728,23 @@ $1',
'unblockiptext' => 'استخدم الاستمارة أدناه لاسترجاع صلاحية الكتابة الخاصة بعنوان أيبي أو مستخدم تم سحبها منه مسبقا.',
'ipusubmit' => 'ارفع هذا المنع',
'unblocked' => '[[User:$1|$1]] تم رفع منعه',
+'unblocked-range' => 'تم إلغاء منع $1',
'unblocked-id' => 'منع $1 تم رفعه',
+'blocklist' => 'المستخدمون الممنوعون',
'ipblocklist' => 'المستخدمون الممنوعون',
'ipblocklist-legend' => 'إيجاد مستخدم ممنوع',
-'ipblocklist-username' => 'اسم المستخدم أو عنوان الأيبي:',
-'ipblocklist-sh-userblocks' => '$1 عمليات منع الحسابات',
-'ipblocklist-sh-tempblocks' => '$1 عمليات المنع المؤقتة',
-'ipblocklist-sh-addressblocks' => '$1 عمليات منع الأيبي المفردة',
+'blocklist-userblocks' => 'أخفِ منع الحسابات',
+'blocklist-tempblocks' => 'أخفِ المنع المؤقت',
+'blocklist-addressblocks' => 'أخفِ منع عنوان آيبي واحد',
+'blocklist-timestamp' => 'الزمن',
+'blocklist-target' => 'الهدف',
+'blocklist-expiry' => 'ينتهي في',
+'blocklist-by' => 'حظر المشرف',
+'blocklist-params' => 'معطيات المنع',
+'blocklist-reason' => 'السبب',
'ipblocklist-submit' => 'ابحث',
'ipblocklist-localblock' => 'المنع المحلي',
-'ipblocklist-otherblocks' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخريات}}',
-'blocklistline' => '$1, $2 منع $3 ($4)',
+'ipblocklist-otherblocks' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخرى}}',
'infiniteblock' => 'لا نهائي',
'expiringblock' => 'ينتهي في يوم $1 عند الساعة $2',
'anononlyblock' => 'مجهول فقط',
@@ -2682,7 +2755,7 @@ $1',
'ipblocklist-empty' => 'قائمة المنع فارغة.',
'ipblocklist-no-results' => 'عنوان الأيبي أو اسم المستخدم المطلوب غير ممنوع.',
'blocklink' => 'امنع',
-'unblocklink' => 'رفع المنع',
+'unblocklink' => 'ارفع المنع',
'change-blocklink' => 'تغيير المنع',
'contribslink' => 'مساهمات',
'autoblocker' => 'تم منعك تلقائيا لأن الأيبي الخاص بك تم استخدامه مؤخرا بواسطة "[[User:$1|$1]]".
@@ -2696,7 +2769,7 @@ $1',
'reblock-logentry' => 'غير إعدادات المنع ل[[$1]] بتاريخ انتهاء $2 $3',
'blocklogtext' => 'هذا سجل بعمليات المنع ورفع المنع.
عناوين الأيبي الممنوعة تلقائيا ليست معروضة.
-انظر [[Special:IPBlockList|عناوين الأيبي الممنوعة]] لرؤية عمليات المنع المفعلة حاليا.',
+انظر [[Special:BlockList|عناوين الأيبي الممنوعة]] لرؤية عمليات المنع المفعلة حاليا.',
'unblocklogentry' => 'رفع منع $1',
'block-log-flags-anononly' => 'المستخدمون المجهولون فقط',
'block-log-flags-nocreate' => 'إنشاء الحسابات ممنوع',
@@ -2710,9 +2783,9 @@ $1',
'ipb_expiry_temp' => 'عمليات منع أسماء المستخدمين المخفية يجب أن تكون دائمة.',
'ipb_hide_invalid' => 'غير قادر على إخفاء هذا الحساب؛ ربما يكون قد قام بالكثير من التعديلات.',
'ipb_already_blocked' => '"$1" ممنوع بالفعل',
-'ipb-needreblock' => '== ممنوع بالفعل ==
-$1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
-'ipb-otherblocks-header' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخريات}}',
+'ipb-needreblock' => '$1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
+'ipb-otherblocks-header' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخرى}}',
+'unblock-hideuser' => 'لا يمكنك إلغاء منع هذا المستخدم لأن اسم مستخدمه أُخفي.',
'ipb_cant_unblock' => 'خطأ: لم يتم إيجاد الممنوع $1.
ربما تم رفع منعه بالفعل.',
'ipb_blocked_as_range' => 'خطأ: الأيبي $1 ليس ممنوعا مباشرة ولا يمكن رفع المنع عنه.
@@ -2741,8 +2814,8 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
من فضلك تأكد من أن هذا حقا ما ترغب القيام به، ومن أنك سوف تقوم بإزالة الغلق بعد الانتهاء من الصيانة.',
'unlockdbtext' => 'فتح قاعدة البيانات سيسترجع قدرة كل المستخدمين على تحرير الصفحات، تغيير تفضيلاتهم، تعديل قوائم المراقبة الخاصة بهم، وأشياء أخرى تحتاج التغيير في قاعدة البيانات.
من فضلك أكد أن هذا هو ما تريده.',
-'lockconfirm' => 'نعم، أنا أريد فعلا قفل قاعدة البيانات.',
-'unlockconfirm' => 'نعم، أنا أريد فعلا فتح قاعدة البيانات.',
+'lockconfirm' => 'نعم، أريد فعلا قفل قاعدة البيانات.',
+'unlockconfirm' => 'نعم، أريد فعلا فتح قاعدة البيانات.',
'lockbtn' => 'قفل قاعدة البيانات',
'unlockbtn' => 'رفع غلق قاعدة البيانات',
'locknoconfirm' => 'لم تقم بتعليم صندوق التأكيد.',
@@ -2754,6 +2827,7 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'lockfilenotwritable' => 'ملف غلق قاعدة البيانات لا يمكن الكتابة عليه.
لغلق قاعدة البيانات أو إزالة الغلق يجب أن يكون هذا الملف قابلا للكتابة من قبل خادوم الوب.',
'databasenotlocked' => 'قاعدة البيانات ليست مغلقة.',
+'lockedbyandtime' => '(من $1 على $2 في $3 )',
# Move page
'move-page' => 'نقل $1',
@@ -2799,7 +2873,7 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'move-watch' => 'راقب هذه الصفحة',
'movepagebtn' => 'انقل الصفحة',
'pagemovedsub' => 'تم النقل بنجاح',
-'movepage-moved' => '\'\'\'"$1" تم نقلها إلى "$2"\'\'\'',
+'movepage-moved' => '\'\'\'نُقِلت "$1" إلى "$2"\'\'\'',
'movepage-moved-redirect' => 'تم إنشاء تحويلة.',
'movepage-moved-noredirect' => 'إنشاء التحويلة تم التغاضي عنه.',
'articleexists' => 'توجد صفحة بهذا الاسم، أو أن الاسم الذي تم اختياره غير صالح.
@@ -2807,22 +2881,22 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'cantmove-titleprotected' => 'لا يمكنك نقل صفحة إلى هذا الموقع، لأن العنوان الجديد تمت حمايته ضد الإنشاء',
'talkexists' => "'''الصفحة نفسها تم نقلها بنجاح، ولكن صفحة النقاش لم يمكن نقلها لوجود صفحة مسبقا تحت العنوان الجديد.
من فضلك ادمجهما يدويا.'''",
-'movedto' => 'تم نقلها إلى',
+'movedto' => 'نُقِلت إلى',
'movetalk' => 'انقل صفحة النقاش المرفقة',
'move-subpages' => 'انقل الصفحات الفرعية (حتى $1)',
'move-talk-subpages' => 'انقل الصفحات الفرعية لصفحة النقاش (حتى $1)',
'movepage-page-exists' => 'الصفحة $1 موجودة بالفعل ولا يمكن الكتابة عليها تلقائيا.',
-'movepage-page-moved' => 'تم نقل الصفحة $1 إلى $2.',
-'movepage-page-unmoved' => 'لم يمكن نقل الصفحة $1 إلى $2.',
-'movepage-max-pages' => 'الحد الأقصى $1 {{PLURAL:$1|صفحة|صفحة}} تم نقله ولن يتم نقل المزيد تلقائيا.',
+'movepage-page-moved' => 'نُقِلت صفحة $1 إلى $2.',
+'movepage-page-unmoved' => 'لم يمكن نقل صفحة $1 إلى $2.',
+'movepage-max-pages' => 'تم نقل الحد الأقصى وهو {{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} ولن يتم نقل المزيد تلقائيا.',
'1movedto2' => '[[$1]] تم نقلها إلى [[$2]]',
'1movedto2_redir' => '[[$1]] تم نقلها إلى [[$2]] فوق التحويلة',
'move-redirect-suppressed' => 'تم التغاضي عن التحويلة',
'movelogpage' => 'سجل النقل',
'movelogpagetext' => 'بالأسفل قائمة بالصفحات التي تم نقلها.',
-'movesubpage' => '{{PLURAL:$1|صفحة فرعية|صفحات فرعية}}',
-'movesubpagetext' => 'هذه الصفحة لديها $1 {{PLURAL:$1|صفحة فرعية|صفحة فرعية}} معروضة بالأسفل.',
-'movenosubpage' => 'هذه الصفحة ليس لديها صفحات فرعية.',
+'movesubpage' => '{{PLURAL:$1||الصفحة الفرعية|الصفحتان الفرعيتان|الصفحات الفرعية}}',
+'movesubpagetext' => 'لهذه الصفحة {{PLURAL:$1||صفحة فرعية واحدة معروضة|صفحتان فرعيتان معروضتان|$1 صفحات فرعية معروضة|$1 صفحة فرعية معروضة}} بالأسفل.',
+'movenosubpage' => 'ليس لهذه الصفحة صفحات فرعية.',
'movereason' => 'السبب:',
'revertmove' => 'استرجع',
'delete_and_move' => 'حذف ونقل',
@@ -2878,7 +2952,7 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'allmessagesdefault' => 'النص الافتراضي',
'allmessagescurrent' => 'النص الحالي',
'allmessagestext' => 'هذه قائمة برسائل النظام المتوفرة في نطاق ميدياويكي.
-من فضلك زر [http://www.mediawiki.org/wiki/Localisation ترجمة ميدياويكي] و [http://translatewiki.net بيتاويكي] لو كنت ترغب في المساهمة في ترجمة ميدياويكي الأساسية.',
+من فضلك زر [//www.mediawiki.org/wiki/Localisation ترجمة ميدياويكي] و [//translatewiki.net بيتاويكي] لو كنت ترغب في المساهمة في ترجمة ميدياويكي الأساسية.',
'allmessagesnotsupportedDB' => "هذه الصفحة لا يمكن استخدامها لأن '''\$wgUseDatabaseMessages''' تم تعطيله.",
'allmessages-filter-legend' => 'المرشح',
'allmessages-filter' => 'رشح حسب حالة التخصيص:',
@@ -2946,9 +3020,9 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'importlogpage' => 'سجل الاستيراد',
'importlogpagetext' => 'عمليات الاستيراد الإدارية للصفحات مع تاريخ التعديل من ويكيات أخرى.',
'import-logentry-upload' => 'استورد [[$1]] بواسطة رفع ملف',
-'import-logentry-upload-detail' => '$1 {{PLURAL:$1|مراجعة واحدة|مراجعة}}',
+'import-logentry-upload-detail' => '{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}',
'import-logentry-interwiki' => 'استورد عبر الويكي $1',
-'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|مراجعة واحدة|مراجعة}} من $2',
+'import-logentry-interwiki-detail' => '{{PLURAL:$1||مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}} من $2',
# Tooltip help for the actions
'tooltip-pt-userpage' => 'صفحة المستخدم الخاصة بك',
@@ -3020,35 +3094,42 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'tooltip-summary' => 'أدخل ملخصا قصيرا',
# Stylesheets
-'common.css' => '/* ستؤثر الأنماط المتراصة (CSS) المعروضة هنا على كل الواجهات */',
-'standard.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة ستاندرد */',
-'nostalgia.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة نوستالشيا */',
-'cologneblue.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة كولون بلو */',
-'monobook.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مونوبوك */',
-'myskin.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة ماي سكين */',
-'chick.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة تشيك */',
-'simple.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة سيمبل */',
-'modern.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مودرن */',
-'vector.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */',
-'print.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على ناتج الطباعة */',
-'handheld.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على الأجهزة المحمولة بالاعتماد على الواجهة المضبوطة في $wgHandheldStyle */',
+'common.css' => '/* ستؤثر الأنماط المتراصة (CSS) المعروضة هنا على كل الواجهات */',
+'standard.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة ستاندرد */',
+'nostalgia.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة نوستالشيا */',
+'cologneblue.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة كولون بلو */',
+'monobook.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مونوبوك */',
+'myskin.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة ماي سكين */',
+'chick.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة تشيك */',
+'simple.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة سيمبل */',
+'modern.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مودرن */',
+'vector.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */',
+'print.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على ناتج الطباعة */',
+'handheld.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على الأجهزة المحمولة بالاعتماد على الواجهة المضبوطة في $wgHandheldStyle */',
+'noscript.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على المستخدمين الذين الجافاسكريبت لديهم معطلة */',
+'group-autoconfirmed.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على المستخدمين المؤكدين تلقائيا فقط */',
+'group-bot.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على البوتات فقط */',
+'group-sysop.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على الإداريين فقط */',
+'group-bureaucrat.css' => '/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على البيروقراطيين فقط */',
# Scripts
-'common.js' => '/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */',
-'standard.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة ستاندرد */',
-'nostalgia.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة نوستالشيا */',
-'cologneblue.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة كولون بلو */',
-'monobook.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مونوبوك */',
-'myskin.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة ماي سكين */',
-'chick.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة تشيك */',
-'simple.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة سيمبل */',
-'modern.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مودرن */',
-'vector.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */',
+'common.js' => '/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */',
+'standard.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة ستاندرد */',
+'nostalgia.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة نوستالشيا */',
+'cologneblue.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة كولون بلو */',
+'monobook.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مونوبوك */',
+'myskin.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة ماي سكين */',
+'chick.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة تشيك */',
+'simple.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة سيمبل */',
+'modern.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مودرن */',
+'vector.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */',
+'group-autoconfirmed.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين المؤكدين تلقائيا فقط */',
+'group-bot.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للبوتات فقط */',
+'group-sysop.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للإداريين فقط */',
+'group-bureaucrat.js' => '/* أي جافاسكريبت هنا سيتم تحميلها للبيروقراطيين فقط */',
# Metadata
-'nodublincore' => 'Dublin Core RDF metadata معطلة لهذا الخادوم.',
-'nocreativecommons' => 'Creative Commons RDF metadata معطلة لهذا الخادوم.',
-'notacceptable' => 'لا يمكن لخادوم الويكي تزويدك ببيانات بصيغة يستطيع عميلك قراءتها.',
+'notacceptable' => 'لا يمكن لخادوم الويكي تزويدك ببيانات بصيغة يستطيع عميلك قراءتها.',
# Attribution
'anonymous' => '{{PLURAL:$1|مستخدم مجهول|مستخدمون مجهولون}} ل{{SITENAME}}',
@@ -3072,12 +3153,17 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'spam_blanking' => 'كل النسخ احتوت على وصلات ل $1، إفراغ',
# Info page
-'infosubtitle' => 'المعلومات للصفحة',
-'numedits' => 'عدد التعديلات (صفحة): $1',
-'numtalkedits' => 'عدد التعديلات (صفحة نقاش): $1',
-'numwatchers' => 'عدد المراقبين: $1',
-'numauthors' => 'عدد المحررين (صفحة): $1',
-'numtalkauthors' => 'عدد المحررين (صحفة نقاش): $1',
+'pageinfo-title' => 'المعلومات ل"$1"',
+'pageinfo-header-edits' => 'التعديلات',
+'pageinfo-header-watchlist' => 'قائمة المراقبة',
+'pageinfo-header-views' => 'مشاهدات',
+'pageinfo-subjectpage' => 'الصفحة',
+'pageinfo-talkpage' => 'صفحة نقاش',
+'pageinfo-watchers' => 'عدد المراقبين',
+'pageinfo-edits' => 'عدد التعديلات',
+'pageinfo-authors' => 'عدد المؤلفين المختلفين',
+'pageinfo-views' => 'عدد المشاهدات',
+'pageinfo-viewsperedit' => 'المشاهدات لكل تعديل',
# Skin names
'skinname-standard' => 'كلاسيك',
@@ -3090,26 +3176,6 @@ $1 ممنوع بالفعل. هل تريد تغيير الإعدادات؟',
'skinname-modern' => 'مودرن',
'skinname-vector' => 'فكتور',
-# Math options
-'mw_math_png' => 'دائما اعرض على هيئة PNG',
-'mw_math_simple' => 'اعرض على هيئة HTML للصيغ البسيطة جدا، وإلا فاعرض بهئية PNG',
-'mw_math_html' => 'اعرض بصيغة HTML إن أمكن، وإلا فاعرض كهيئة PNG',
-'mw_math_source' => 'اعرض على هيئة TeX (للمتصفحات النصية)',
-'mw_math_modern' => 'مستحسن للمتصفحات الحديثة',
-'mw_math_mathml' => 'اعرض بصيغة MathML إن أمكن (تجريبي)',
-
-# Math errors
-'math_failure' => 'خطأ رياضيات',
-'math_unknown_error' => 'خطأ غير معروف',
-'math_unknown_function' => 'وظيفة غير معروفة',
-'math_lexing_error' => 'خطأ في الصيغة',
-'math_syntax_error' => 'خطأ في الصياغة',
-'math_image_error' => 'فشل التحويل إلى صيغة PNG؛ تحقق من تثبيت كل من Latex و dvipng (أو dvips + gs + محول)',
-'math_bad_tmpdir' => 'لا يمكن الكتابة إلى أو إنشاء مجلد الرياضيات المؤقت',
-'math_bad_output' => 'لا يمكن الكتابة إلى أو إنشاء مجلد الخرج للرياضيات',
-'math_notexvc' => 'مفقود texvc executable؛
-من فضلك انظر math/README للضبط.',
-
# Patrolling
'markaspatrolleddiff' => 'علم كمراجعة',
'markaspatrolledtext' => 'علم على هذه الصفحة كمراجعة',
@@ -3145,21 +3211,24 @@ $1',
'nextdiff' => 'التعديل اللاحق ←',
# Media information
-'mediawarning' => "'''تحذير''': قد يحتوي نوع هذا الملف على كود خبيث، يمكن عند تشغيله السيطرة على نظامك.",
-'imagemaxsize' => "حد حجم الصور:<br />''(لصفحات وصف الملفات)''",
-'thumbsize' => 'حجم العرض المصغر:',
-'widthheightpage' => '$1×$2، $3 {{PLURAL:$3|صفحة|صفحة}}',
-'file-info' => 'حجم الملف: $1، نوع MIME: $2',
-'file-info-size' => '$1 × $2 بكسل حجم الملف: $3، نوع MIME: $4',
-'file-nohires' => '<small>لا توجد دقة أعلى متوفرة.</small>',
-'svg-long-desc' => 'ملف SVG، أبعاده $1 × $2 بكسل، حجم الملف: $3',
-'show-big-image' => 'دقة كاملة',
-'show-big-image-thumb' => '<small>حجم هذا العرض: $1 × $2 بكسل</small>',
-'file-info-gif-looped' => 'ملفوف',
-'file-info-gif-frames' => '{{PLURAL:$1||إطار واحد|إطاران|$1 إطارات|$1 إطارا|$1 إطار}}',
-'file-info-png-looped' => 'ملفوف',
-'file-info-png-repeat' => 'عرضت {{PLURAL:$1||مرة واحدة|مرتين|$1 مرات|$1 مرة}}',
-'file-info-png-frames' => '{{PLURAL:$1||إطار واحد|إطاران|$1 إطارات|$1 إطارًا|$1 إطار}}',
+'mediawarning' => "'''تحذير''': قد يحتوي نوع هذا الملف على كود خبيث، يمكن عند تشغيله السيطرة على نظامك.",
+'imagemaxsize' => "حد حجم الصور:<br />''(لصفحات وصف الملفات)''",
+'thumbsize' => 'حجم العرض المصغر:',
+'widthheightpage' => '$1×$2، {{PLURAL:$1|لا صفحات|صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}',
+'file-info' => 'حجم الملف: $1، نوع MIME: $2',
+'file-info-size' => '$1 × $2 بكسل حجم الملف: $3، نوع MIME: $4',
+'file-info-size-pages' => '$1 × $2 بكسل, حجم الملف : $3 ، نوع الملف : $4 ، $5 {{PLURAL:$5| صفحة | صفحات}}',
+'file-nohires' => '<small>لا توجد دقة أعلى متوفرة.</small>',
+'svg-long-desc' => 'ملف SVG، أبعاده $1 × $2 بكسل، حجم الملف: $3',
+'show-big-image' => 'دقة كاملة',
+'show-big-image-preview' => '<small>حجم هذه المعاينة: $1.</small>',
+'show-big-image-other' => '<small>الأبعاد الأخرى: $1.</small>',
+'show-big-image-size' => '$1 × $2 بكسل',
+'file-info-gif-looped' => 'ملفوف',
+'file-info-gif-frames' => '{{PLURAL:$1||إطار واحد|إطاران|$1 إطارات|$1 إطارا|$1 إطار}}',
+'file-info-png-looped' => 'ملفوف',
+'file-info-png-repeat' => 'عرضت {{PLURAL:$1||مرة واحدة|مرتين|$1 مرات|$1 مرة}}',
+'file-info-png-frames' => '{{PLURAL:$1||إطار واحد|إطاران|$1 إطارات|$1 إطارًا|$1 إطار}}',
# Special:NewFiles
'newimages' => 'معرض الملفات الجديدة',
@@ -3192,7 +3261,7 @@ $1',
إذا كان الملف قد عدل عن حالته الأصلية، فبعض التفاصيل قد لا تعبر عن الملف المعدل.',
'metadata-expand' => 'عرض التفاصيل الممتدة',
'metadata-collapse' => 'إخفاء التفاصيل الممتدة',
-'metadata-fields' => 'حقول معطيات الميتا EXIF الموجودة في هذه الرسالة سوف تعرض في صفحة الصورة عندما يكون جدول معطيات الميتا مضغوطا.
+'metadata-fields' => 'حقول معطيات الميتا الموجودة في هذه الرسالة سوف تعرض في صفحة الصورة عندما يكون جدول معطيات الميتا مضغوطا.
الحقول الأخرى ستكون مخفية افتراضيا.
* make
* model
@@ -3200,7 +3269,13 @@ $1',
* exposuretime
* fnumber
* isospeedratings
-* focallength',
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
# EXIF tags
'exif-imagewidth' => 'العرض',
@@ -3215,13 +3290,11 @@ $1',
'exif-ycbcrpositioning' => 'وضع Y و C',
'exif-xresolution' => 'الدقة الأفقية',
'exif-yresolution' => 'الدقة الرأسية',
-'exif-resolutionunit' => 'وحدة تحليل X و Y',
'exif-stripoffsets' => 'موقع بيانات الصورة',
'exif-rowsperstrip' => 'عدد الصفوف لكل شريحة',
'exif-stripbytecounts' => 'بايت لكل شريحة مضغوطة',
'exif-jpeginterchangeformat' => 'الحد ل JPEG SOI',
'exif-jpeginterchangeformatlength' => 'بايت من بيانات JPEG',
-'exif-transferfunction' => 'وظيفة النقل',
'exif-whitepoint' => 'ألوان النقطة البيضاء',
'exif-primarychromaticities' => 'ألوان الأساسيات',
'exif-ycbcrcoefficients' => 'معاملات مصفوفة تحويل فراغ اللون',
@@ -3240,7 +3313,6 @@ $1',
'exif-compressedbitsperpixel' => 'طور ضغط الصورة',
'exif-pixelydimension' => 'عرض الصورة',
'exif-pixelxdimension' => 'ارتفاع الصورة',
-'exif-makernote' => 'ملاحظات المصنع',
'exif-usercomment' => 'تعليقات المستخدم',
'exif-relatedsoundfile' => 'ملف صوتي مرتبط',
'exif-datetimeoriginal' => 'تاريخ ووقت توليد البيانات',
@@ -3255,7 +3327,6 @@ $1',
'exif-exposureprogram' => 'برنامج التعرض',
'exif-spectralsensitivity' => 'الحساسية الطيفية',
'exif-isospeedratings' => 'تقييم سرعة أيزو',
-'exif-oecf' => 'عامل التحويل الكهروضوئي',
'exif-shutterspeedvalue' => 'سرعة الغالق APEX',
'exif-aperturevalue' => 'فتحة الغالق APEX',
'exif-brightnessvalue' => 'سطوع APEX',
@@ -3269,7 +3340,6 @@ $1',
'exif-focallength-format' => '$1 ملم',
'exif-subjectarea' => 'مساحة الجسم',
'exif-flashenergy' => 'طاقة الفلاش',
-'exif-spatialfrequencyresponse' => 'استجابة التردد الفراغي',
'exif-focalplanexresolution' => 'تحليل المستوى البؤري X',
'exif-focalplaneyresolution' => 'تحليل المستوى البؤري Y',
'exif-focalplaneresolutionunit' => 'وحدة تحليل المستوى البؤري',
@@ -3278,7 +3348,6 @@ $1',
'exif-sensingmethod' => 'وسيلة الاستشعار',
'exif-filesource' => 'مصدر الملف',
'exif-scenetype' => 'نوع المشهد',
-'exif-cfapattern' => 'نمط CFA',
'exif-customrendered' => 'معالجة الصورة حسب الطلب',
'exif-exposuremode' => 'طور التعرض',
'exif-whitebalance' => 'توازن الأبيض',
@@ -3323,11 +3392,88 @@ $1',
'exif-gpsareainformation' => 'اسم مساحة GPS',
'exif-gpsdatestamp' => 'تاريخ GPS',
'exif-gpsdifferential' => 'تصحيح GPS التفاضلي',
+'exif-jpegfilecomment' => 'تعليق ملف JPEG',
+'exif-keywords' => 'الكلمات المفتاحية',
+'exif-worldregioncreated' => ' المنطقة التي التقطت الصورة فيها',
+'exif-countrycreated' => 'الدولة التي التقطت الصورة فيها',
+'exif-countrycodecreated' => 'رمز البلد التي أخذت الصورة فيه',
+'exif-provinceorstatecreated' => 'المقاطعة أو الدولة اين تم التقاط هذه الصورة',
+'exif-citycreated' => ' المدينة التي التقطت الصورة فيها',
+'exif-sublocationcreated' => 'موقع من المدينة التي تم التقاط هذه الصورة فيها',
+'exif-worldregiondest' => 'مناطق العالم المعروضة',
+'exif-countrydest' => 'الدولة المصورة',
+'exif-countrycodedest' => 'رمز الدولة المصورة',
+'exif-provinceorstatedest' => 'المقاطعة أو الولاية المصورة',
+'exif-citydest' => 'المدينة المصورة',
+'exif-sublocationdest' => 'موقع من المدينة المعروضة',
'exif-objectname' => 'عنوان قصير',
+'exif-specialinstructions' => 'تعليمات خاصة',
+'exif-headline' => 'عنوان',
+'exif-credit' => 'الرصيد/المزود',
+'exif-source' => 'المصدر',
+'exif-editstatus' => 'الحالة التحريرية للصورة',
+'exif-urgency' => 'إلحاح',
+'exif-fixtureidentifier' => 'اسم العنصر',
+'exif-locationdest' => 'اسم الموقع مصورا',
+'exif-locationdestcode' => 'رمز الموقع مصورا',
+'exif-objectcycle' => 'الوقت من اليوم المتعلق بوسائل الإعلام',
+'exif-contact' => 'معلومات الاتصال',
+'exif-writer' => 'الكاتب',
+'exif-languagecode' => 'اللغة',
+'exif-iimversion' => 'نسخة IIM',
+'exif-iimcategory' => 'التصنيف',
+'exif-iimsupplementalcategory' => 'تصنيفات تكميلية',
+'exif-datetimeexpires' => 'لا تستخدم بعد',
+'exif-datetimereleased' => 'صدر في يوم',
+'exif-originaltransmissionref' => 'رمز موقع الإرسال الأصلي',
+'exif-identifier' => 'معرف',
+'exif-lens' => 'العدسة المستخدمة',
+'exif-serialnumber' => 'الرقم التسلسلي للكاميرا',
+'exif-cameraownername' => 'مالك الكاميرا',
+'exif-label' => 'علامة',
+'exif-datetimemetadata' => 'آخر تعديل للبيانات التعريفية',
+'exif-nickname' => 'الاسم غير الرسمي للصورة',
+'exif-rating' => 'التقييم (من 5)',
+'exif-rightscertificate' => 'شهادة إدارة الحقوق',
+'exif-copyrighted' => 'حالة حقوق النشر',
+'exif-copyrightowner' => 'مالك حقوق النشر',
+'exif-usageterms' => 'شروط الاستخدام',
+'exif-webstatement' => 'بيان حقوق التأليف والنشر على شبكة الإنترنت',
+'exif-originaldocumentid' => 'المعرف الفريد للمستند الأصلي',
+'exif-licenseurl' => 'عنوان الموقع لرخصة حقوق الطبع والنشر',
+'exif-morepermissionsurl' => 'معلومات الرخصة البديلة',
+'exif-attributionurl' => 'عند إعادة استخدام الملف، رجاءً ضع وصلة إلى',
+'exif-preferredattributionname' => 'عند إعادة استخدام الملف، رجاءً انسبه إلى',
+'exif-pngfilecomment' => 'تعليق ملف PNG',
+'exif-disclaimer' => 'إخلاء مسؤولية',
+'exif-contentwarning' => 'تحذير محتوى',
+'exif-giffilecomment' => 'تعليق ملف GIF',
+'exif-intellectualgenre' => 'نوع العنصر',
+'exif-subjectnewscode' => 'رمز الموضوع',
+'exif-scenecode' => 'رمز مشهد IPTC',
+'exif-event' => 'اسم الحدث مصورا',
+'exif-organisationinimage' => 'المنظمة مصورة',
+'exif-personinimage' => 'الشخص مصورا',
+'exif-originalimageheight' => 'ارتفاع الصورة قبل أن تقتطع',
+'exif-originalimagewidth' => 'عرض الصورة قبل أن تقتطع',
+
+# Make & model, can be wikified in order to link to the camera and model name
+'exif-subjectnewscode-value' => '$2 ($1)',
# EXIF attributes
-'exif-compression-1' => 'غير مضغوط',
-'exif-compression-6' => 'جيه بي إي جي',
+'exif-compression-1' => 'غير مضغوط',
+'exif-compression-2' => 'CCITT المجموعة 3 -1 تعديل طول تشغيل ترميز هوفمان البعدي',
+'exif-compression-3' => 'ترميز فاكس المجموعة 3 CCITT',
+'exif-compression-4' => 'ترميز فاكس المجموعة 4 CCITT',
+'exif-compression-6' => 'JPEG (قديم)',
+'exif-compression-7' => 'جيه بي إي جي',
+'exif-compression-8' => 'Deflate (أدوبي)',
+'exif-compression-32773' => 'PackBits (ماكنتوش RLE)',
+'exif-compression-32946' => 'Deflate (بي كيه زيب)',
+'exif-compression-34712' => 'جيه بي إي جي2000',
+
+'exif-copyrighted-true' => 'محفوظ الحقوق',
+'exif-copyrighted-false' => 'ملكية عامة',
'exif-photometricinterpretation-2' => 'آر جي بي',
'exif-photometricinterpretation-6' => 'واي سب سر',
@@ -3349,8 +3495,8 @@ $1',
'exif-xyresolution-i' => '$1 نقطة لكل بوصة',
'exif-xyresolution-c' => '$1 دي بي سي',
-'exif-colorspace-1' => 'إس آر جي بي',
-'exif-colorspace-ffff.h' => 'إف إف إف إف.إتش',
+'exif-colorspace-1' => 'إس آر جي بي',
+'exif-colorspace-65535' => 'غير معاير',
'exif-componentsconfiguration-0' => 'غير موجود',
'exif-componentsconfiguration-1' => 'واي',
@@ -3475,6 +3621,10 @@ $1',
'exif-gpslongitude-e' => 'خط الطول الشرقي',
'exif-gpslongitude-w' => 'خط الطول الغربي',
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '{{PLURAL:$1||متر|متران|$1 أمتار|$1 مترًا|$1 متر}} فوق سطح البحر',
+'exif-gpsaltitude-below-sealevel' => '{{PLURAL:$1||متر|متران|$1 أمتار|$1 مترًا|$1 متر}} تحت سطح البحر',
+
'exif-gpsstatus-a' => 'عملية القياس الحالية',
'exif-gpsstatus-v' => 'شمول القياس',
@@ -3486,21 +3636,73 @@ $1',
'exif-gpsspeed-m' => 'ميل في الساعة',
'exif-gpsspeed-n' => 'عقد',
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'كيلومتر',
+'exif-gpsdestdistance-m' => 'ميل',
+'exif-gpsdestdistance-n' => 'ميل بحري',
+
+'exif-gpsdop-excellent' => 'ممتاز ($1)',
+'exif-gpsdop-good' => 'جيد ($1)',
+'exif-gpsdop-moderate' => 'متوسط ($1)',
+'exif-gpsdop-fair' => 'مقبول ($1)',
+'exif-gpsdop-poor' => 'ضعيف ($1)',
+
+'exif-objectcycle-a' => 'صباحا فقط',
+'exif-objectcycle-p' => 'مساء فقط',
+'exif-objectcycle-b' => 'صباحا ومساء',
+
# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
'exif-gpsdirection-t' => 'الاتجاه الحقيقي',
'exif-gpsdirection-m' => 'الاتجاه المغناطيسي',
+'exif-ycbcrpositioning-1' => 'توسيط',
+'exif-ycbcrpositioning-2' => 'مذكورة في أكثر من موقع',
+
+'exif-dc-contributor' => 'المساهمون',
+'exif-dc-coverage' => 'النطاق المكاني أو الزماني لوسائل الإعلام',
+'exif-dc-date' => 'التاريخ (التواريخ)',
+'exif-dc-publisher' => 'الناشر',
+'exif-dc-relation' => 'وسائط متعلقة',
+'exif-dc-rights' => 'الحقوق',
+'exif-dc-source' => 'مصدر الوسائط',
+'exif-dc-type' => 'نوع الوسيط',
+
+'exif-rating-rejected' => 'مرفوض',
+
+'exif-isospeedratings-overflow' => 'أكبر من 65535',
+
+'exif-iimcategory-ace' => 'فنون وثقافة وترفيه',
+'exif-iimcategory-clj' => 'جريمة وقانون',
+'exif-iimcategory-dis' => 'كوارث وحوادث',
+'exif-iimcategory-fin' => 'اقتصاد وتجارة',
+'exif-iimcategory-edu' => 'تعليم',
+'exif-iimcategory-evn' => 'بيئة',
+'exif-iimcategory-hth' => 'صحة',
+'exif-iimcategory-hum' => '# اهتمام البشرية',
+'exif-iimcategory-lab' => 'عمل',
+'exif-iimcategory-lif' => 'أسلوب الحياة وأوقات الفراغ',
+'exif-iimcategory-pol' => 'سياسة',
+'exif-iimcategory-rel' => 'دين ومعتقدات',
+'exif-iimcategory-sci' => 'علم وتقنية',
+'exif-iimcategory-soi' => 'قضايا اجتماعية',
+'exif-iimcategory-spo' => 'رياضة',
+'exif-iimcategory-war' => 'حروب وصراعات واضطرابات',
+'exif-iimcategory-wea' => 'الطقس',
+
+'exif-urgency-normal' => 'عادي ($1)',
+'exif-urgency-low' => 'منخفض ( $1 )',
+'exif-urgency-high' => 'عالي ( $1 )',
+'exif-urgency-other' => 'الأولوية المعرفة من قبل المستخدم ($1)',
+
# External editor support
'edit-externally' => 'عدل هذا الملف باستخدام تطبيق خارجي',
-'edit-externally-help' => '(انظر [http://www.mediawiki.org/wiki/Manual:External_editors تعليمات الإعداد] لمزيد من المعلومات)',
+'edit-externally-help' => '(انظر [//www.mediawiki.org/wiki/Manual:External_editors تعليمات الإعداد] لمزيد من المعلومات)',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'الكل',
-'imagelistall' => 'الكل',
-'watchlistall2' => 'الكل',
-'namespacesall' => 'الكل',
-'monthsall' => 'الكل',
-'limitall' => 'الكل',
+'watchlistall2' => 'الكل',
+'namespacesall' => 'الكل',
+'monthsall' => 'الكل',
+'limitall' => 'الكل',
# E-mail address confirmation
'confirmemail' => 'تأكيد عنوان البريد الإلكتروني',
@@ -3586,11 +3788,12 @@ $1',
'trackbackdeleteok' => 'المتابعة تم حذفها بنجاح.',
# Delete conflict
-'deletedwhileediting' => "'''تحذير''': هذه الصفحة تم حذفها بعد أن بدأت أنت بتعديلها!",
-'confirmrecreate' => "حذف المستخدم [[User:$1|$1]] ([[User talk:$1|نقاش]]) هذه الصفحة بعد أن بدأت أنت بتحريرها للسبب التالي:
+'deletedwhileediting' => "'''تحذير''': هذه الصفحة تم حذفها بعد أن بدأت أنت بتعديلها!",
+'confirmrecreate' => "حذف المستخدم [[User:$1|$1]] ([[User talk:$1|نقاش]]) هذه الصفحة بعد أن بدأت أنت بتحريرها للسبب التالي:
:''$2''
الرجاء التأكد من أنك تريد إعادة إنشاء هذه الصفحة.",
-'recreate' => 'أعد الإنشاء',
+'confirmrecreate-noreason' => 'حذف المستخدم [[User:$1|$1]] ([[User talk:$1|نقاش]]) هذه الصفحة بعد أن بدأت أنت بتحريرها. الرجاء التأكد من أنك تريد إعادة إنشاء هذه الصفحة.',
+'recreate' => 'أعد الإنشاء',
'unit-pixel' => 'بك',
@@ -3599,6 +3802,12 @@ $1',
'confirm-purge-top' => 'امسح مختزن هذه الصفحة؟',
'confirm-purge-bottom' => 'إفراغ مختزن الصفحة يمحو المختزن ويجبر أحدث نسخة على الظهور.',
+# action=watch/unwatch
+'confirm-watch-button' => 'موافق',
+'confirm-watch-top' => 'إضافة هذه الصفحة إلى قائمة مراقبتك؟',
+'confirm-unwatch-button' => 'موافق',
+'confirm-unwatch-top' => 'إزالة هذه الصفحة من قائمة مراقبتك؟',
+
# Separators for various lists, etc.
'semicolon-separator' => '؛&#32;',
'comma-separator' => '،&#32;',
@@ -3617,7 +3826,7 @@ $1',
'table_pager_first' => 'الصفحة الأولى',
'table_pager_last' => 'الصفحة الأخيرة',
'table_pager_limit' => 'اعرض $1 مدخلة في الصفحة',
-'table_pager_limit_label' => 'العناصر لكل صفحة:',
+'table_pager_limit_label' => 'العناصر في كل صفحة:',
'table_pager_limit_submit' => 'اذهب',
'table_pager_empty' => 'لا نتائج',
@@ -3634,36 +3843,36 @@ $1',
'size-gigabytes' => '$1 جيجابايت',
# Live preview
-'livepreview-loading' => 'تحميل…',
-'livepreview-ready' => 'تحميل… جاهز!',
+'livepreview-loading' => 'يُحمّل...',
+'livepreview-ready' => 'يُحمّل… جاهز!',
'livepreview-failed' => 'فشل العرض المباشر!
حاول تجربة العرض العادي.',
'livepreview-error' => 'لم ينجح الاتصال: $1 "$2"
حاول تجربة العرض العادي.',
# Friendlier slave lag warnings
-'lag-warn-normal' => 'التغييرات الأحدث من $1 {{PLURAL:$1|ثانية|ثانية}} قد لا تظهر في هذه القائمة.',
+'lag-warn-normal' => 'التغييرات الأحدث من {{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتين|$1 ثوانٍ|$1 ثانية}} قد لا تظهر في هذه القائمة.',
'lag-warn-high' => 'نتيجة لوجود تأخر كبير في تحديث قاعدة بيانات الخادوم، التغييرات الأحدث من {{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتين|$1 ثوانٍ|$1 ثانية}} ربما لا تكون ظاهرة في هذه القائمة.',
# Watchlist editor
-'watchlistedit-numitems' => 'قائمة مراقبتك تحتوي على {{PLURAL:$1|عنوان واحد|$1 عنوان}}، بدون احتساب صفحات النقاش.',
+'watchlistedit-numitems' => 'قائمة مراقبتك تحتوي على {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانًا|$1 عنوان}}، بدون احتساب صفحات النقاش.',
'watchlistedit-noitems' => 'قائمة مراقبتك لا تحتوي على أية عناوين.',
'watchlistedit-normal-title' => 'تعديل قائمة المراقبة',
'watchlistedit-normal-legend' => 'إزالة عناوين من قائمة المراقبة',
'watchlistedit-normal-explain' => 'العناوين في قائمة مراقبتك معروضة بالأسفل.
لإزالة عنوان، اضغط على الصندوق بجواره، واضغط "{{int:Watchlistedit-normal-submit}}".
-يمكنك أيضا [[Special:Watchlist/raw|تعديل القائمة الخام]].',
+يمكنك أيضا [[Special:EditWatchlist/raw|تعديل القائمة الخام]].',
'watchlistedit-normal-submit' => 'أزل العناوين',
-'watchlistedit-normal-done' => '{{PLURAL:$1|عنوان واحد|$1 عنوان}} تمت إزالته من قائمة مراقبتك:',
+'watchlistedit-normal-done' => 'تمت إزالة {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانا|$1 عنوان}} من قائمة مراقبتك:',
'watchlistedit-raw-title' => 'تعديل قائمة المراقبة الخام',
'watchlistedit-raw-legend' => 'عدل قائمة المراقبة الخام',
'watchlistedit-raw-explain' => 'العناوين في قائمة مراقبتك معروضة بالأسفل، ويمكن تعديلها عن طريق الإضافة والإزالة من القائمة؛ عنوان واحد لكل سطر.
عند الانتهاء، اضغط "{{int:Watchlistedit-raw-submit}}".
-يمكنك أيضا [[Special:Watchlist/edit|استخدام المحرر القياسي]].',
+يمكنك أيضا [[Special:EditWatchlist|استخدام المحرر القياسي]].',
'watchlistedit-raw-titles' => 'العناوين:',
'watchlistedit-raw-submit' => 'حدث قائمة المراقبة',
'watchlistedit-raw-done' => 'قائمة مراقبتك تم تحديثها.',
-'watchlistedit-raw-added' => '{{PLURAL:$1|عنوان واحد|$1 عنوان}} تمت إضافته:',
+'watchlistedit-raw-added' => 'تمت إضافة {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانا|$1 عنوان}}:',
'watchlistedit-raw-removed' => 'تمت إزالة {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانا|$1 عنوان}}:',
# Watchlist editing tools
@@ -3737,34 +3946,34 @@ $1',
'duplicate-defaultsort' => '\'\'\'تحذير:\'\'\' مفتاح الترتيب الافتراضي "$2" يتجاوز مفتاح الترتيب الافتراضي السابق "$1".',
# Special:Version
-'version' => 'نسخة',
-'version-extensions' => 'الامتدادات المثبتة',
-'version-specialpages' => 'صفحات خاصة',
-'version-parserhooks' => 'خطاطيف المحلل',
-'version-variables' => 'المتغيرات',
-'version-skins' => 'واجهات',
-'version-other' => 'أخرى',
-'version-mediahandlers' => 'متحكمات الميديا',
-'version-hooks' => 'الخطاطيف',
-'version-extension-functions' => 'وظائف الامتداد',
-'version-parser-extensiontags' => 'وسوم امتداد المحلل',
-'version-parser-function-hooks' => 'خطاطيف دالة المحلل',
-'version-skin-extension-functions' => 'دوال امتداد الواجهة',
-'version-hook-name' => 'اسم الخطاف',
-'version-hook-subscribedby' => 'يستخدم بواسطة',
-'version-version' => '(نسخة $1)',
-'version-svn-revision' => '(&رلم;r$2)',
-'version-license' => 'الرخصة',
-'version-poweredby-credits' => "تدار هذه الويكي ب'''[http://www.mediawiki.org/ ميدياويكي]''', حقوق النشر © 2001-$1 $2.",
-'version-poweredby-others' => 'آخرون',
-'version-license-info' => "ميدياويكي برنامج حر، يحق لك توزيعه و/أو تعديله وفقاً لبنود رخصة غنو العمومية كما نشرتها مؤسسة البرمجيات الحرة، الإصدار الثاني أو (وفقا لاختيارك أنت) أي إصدار لاحق.
+'version' => 'نسخة',
+'version-extensions' => 'الامتدادات المثبتة',
+'version-specialpages' => 'صفحات خاصة',
+'version-parserhooks' => 'خطاطيف المحلل',
+'version-variables' => 'المتغيرات',
+'version-antispam' => 'منع البريد المزعج',
+'version-skins' => 'واجهات',
+'version-other' => 'أخرى',
+'version-mediahandlers' => 'متحكمات الميديا',
+'version-hooks' => 'الخطاطيف',
+'version-extension-functions' => 'وظائف الامتداد',
+'version-parser-extensiontags' => 'وسوم امتداد المحلل',
+'version-parser-function-hooks' => 'خطاطيف دالة المحلل',
+'version-hook-name' => 'اسم الخطاف',
+'version-hook-subscribedby' => 'يستخدم بواسطة',
+'version-version' => '(نسخة $1)',
+'version-svn-revision' => '(&رلم;r$2)',
+'version-license' => 'الرخصة',
+'version-poweredby-credits' => "تدار هذه الويكي ب'''[//www.mediawiki.org/ ميدياويكي]''', حقوق النشر © 2001-$1 $2.",
+'version-poweredby-others' => 'آخرون',
+'version-license-info' => "ميدياويكي برنامج حر، يحق لك توزيعه و/أو تعديله وفقاً لبنود رخصة غنو العمومية كما نشرتها مؤسسة البرمجيات الحرة، الإصدار الثاني أو (وفقا لاختيارك أنت) أي إصدار لاحق.
هذا البرنامج يوزع على أمل أن يكون مفيداً، ولكن '''دون أية ضمانات'''، بما في ذلك ضمانات '''التسويق''' أو '''الملاءمة لغرض معين'''. انظر رخصة غنو العمومية لمزيد من التفاصيل.
-ينبغي أن تكون قد تلقيت نسخة من رخصة غنو العمومية إذا لم يتم ذلك، اكتب إلى: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA أو [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html اقرأ على الإنترنت].",
-'version-software' => 'البرنامج المثبت',
-'version-software-product' => 'المنتج',
-'version-software-version' => 'النسخة',
+ينبغي أن تكون قد تلقيت نسخة من رخصة غنو العمومية إذا لم يتم ذلك، اكتب إلى: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA أو [//www.gnu.org/licenses/old-licenses/gpl-2.0.html اقرأ على الإنترنت].",
+'version-software' => 'البرنامج المثبت',
+'version-software-product' => 'المنتج',
+'version-software-version' => 'النسخة',
# Special:FilePath
'filepath' => 'مسار ملف',
@@ -3774,22 +3983,22 @@ $1',
ستعرض الصور بأقصى دقة، ستعمل أنواع الملفات الأخرى بالبرنامج المخصص لهم مباشرة.',
# Special:FileDuplicateSearch
-'fileduplicatesearch' => 'بحث عن ملفات مكررة',
-'fileduplicatesearch-summary' => 'ابحث عن الملفات المكررة بناء على قيمة الهاش الخاصة بها.
-
-أدخل اسم الملف بدون بادئة "{{ns:file}}:".',
-'fileduplicatesearch-legend' => 'بحث عن مكرر',
-'fileduplicatesearch-filename' => 'اسم الملف:',
-'fileduplicatesearch-submit' => 'ابحث',
-'fileduplicatesearch-info' => '$1 × $2 بكسل<br />حجم الملف: $3<br />نوع MIME: $4',
-'fileduplicatesearch-result-1' => 'الملف "$1" ليس له تكرار مطابق.',
-'fileduplicatesearch-result-n' => 'الملف "$1" له {{PLURAL:$2|1 تكرار مطابق|$2 تكرار مطابق}}.',
+'fileduplicatesearch' => 'بحث عن ملفات مكررة',
+'fileduplicatesearch-summary' => 'ابحث عن الملفات المكررة بناء على قيم الهاش.',
+'fileduplicatesearch-legend' => 'بحث عن مكرر',
+'fileduplicatesearch-filename' => 'اسم الملف:',
+'fileduplicatesearch-submit' => 'ابحث',
+'fileduplicatesearch-info' => '$1 × $2 بكسل<br />حجم الملف: $3<br />نوع MIME: $4',
+'fileduplicatesearch-result-1' => 'الملف "$1" ليس له تكرار مطابق.',
+'fileduplicatesearch-result-n' => 'الملف "$1" له {{PLURAL:$2|1 تكرار مطابق|$2 تكرار مطابق}}.',
+'fileduplicatesearch-noresults' => 'لا ملف بالاسم "$1" تم العثور عليه.',
# Special:SpecialPages
'specialpages' => 'الصفحات الخاصة',
'specialpages-note' => '----
* صفحات خاصة عادية.
-* <strong class="mw-specialpagerestricted">صفحات خاصة للمخولين.</strong>',
+* <span class="mw-specialpagerestricted">صفحات خاصة للمخولين.</span>
+* <span class="mw-specialpagecached">صفحات خاصة لبيانات مخزنة فقط (قد تكون مهجورة).</span>',
'specialpages-group-maintenance' => 'تقارير الصيانة',
'specialpages-group-other' => 'صفحات خاصة أخرى',
'specialpages-group-login' => 'دخول / تسجيل',
diff --git a/languages/messages/MessagesArc.php b/languages/messages/MessagesArc.php
index f213e88e..7dcb6503 100644
--- a/languages/messages/MessagesArc.php
+++ b/languages/messages/MessagesArc.php
@@ -10,10 +10,13 @@
* @author 334a
* @author A2raya07
* @author Basharh
+ * @author Man2fly2002
* @author Michaelovic
* @author The Thadman
*/
+$rtl = true;
+
$namespaceNames = array(
NS_MEDIA => 'ܡܝܕܝܐ',
NS_SPECIAL => 'ܕܝܠܢܝܐ',
@@ -40,29 +43,29 @@ $namespaceAliases = array(
);
$specialPageAliases = array(
+ 'Allmessages' => array( 'ܟܠ_ܐܓܪ̈ܬܐ' ),
+ 'Allpages' => array( 'ܟܠ_ܦܐܬܬ̈ܐ' ),
+ 'Blankpage' => array( 'ܦܐܬܐ_ܣܦܝܩܬܐ' ),
+ 'Categories' => array( 'ܣܕܪ̈ܐ' ),
+ 'Contributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ' ),
'CreateAccount' => array( 'ܒܪܝ_ܚܘܫܒܢܐ' ),
- 'Preferences' => array( 'ܓܒܝܬ̈ܐ' ),
- 'Watchlist' => array( 'ܪ̈ܗܝܬܐ' ),
- 'Recentchanges' => array( 'ܫܘܚܠܦ̈ܐ_ܚܕ̈ܬܐ' ),
- 'Upload' => array( 'ܐܣܩ' ),
- 'Shortpages' => array( 'ܦܐܬܬ̈ܐ_ܟܪ̈ܝܬܐ' ),
+ 'DeletedContributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ_ܫܝܦܬ̈ܐ' ),
+ 'Filepath' => array( 'ܫܒܝܠܐ_ܕܦܐܬܐ' ),
+ 'Log' => array( 'ܣܓܠ̈ܐ' ),
'Longpages' => array( 'ܦܐܬܬ̈ܐ_ܐܪ̈ܝܟܬܐ' ),
+ 'Movepage' => array( 'ܫܢܝ_ܦܐܬܐ' ),
+ 'Mycontributions' => array( 'ܫܘܬܦܘܝܬ̈ܝ' ),
'Newpages' => array( 'ܦܐܬܬ̈ܐ_ܚܕ̈ܬܬܐ' ),
+ 'Preferences' => array( 'ܓܒܝܬ̈ܐ' ),
'Protectedpages' => array( 'ܦܐܬܬ̈ܐ_ܢܛܝܪ̈ܬܐ' ),
'Protectedtitles' => array( 'ܟܘܢܝ̈ܐ_ܢܛܝܪ̈ܐ' ),
- 'Allpages' => array( 'ܟܠ_ܦܐܬܬ̈ܐ' ),
+ 'Recentchanges' => array( 'ܫܘܚܠܦ̈ܐ_ܚܕ̈ܬܐ' ),
+ 'Search' => array( 'ܒܨܝܐ' ),
+ 'Shortpages' => array( 'ܦܐܬܬ̈ܐ_ܟܪ̈ܝܬܐ' ),
'Specialpages' => array( 'ܦܐܬܬ̈ܐ_ܕ̈ܝܠܢܝܬܐ' ),
- 'Contributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ' ),
+ 'Upload' => array( 'ܐܣܩ' ),
+ 'Watchlist' => array( 'ܪ̈ܗܝܬܐ' ),
'Whatlinkshere' => array( 'ܡܐ_ܐܣܪ_ܠܗܪܟܐ' ),
- 'Movepage' => array( 'ܫܢܝ_ܦܐܬܐ' ),
- 'Categories' => array( 'ܣܕܪ̈ܐ' ),
- 'Allmessages' => array( 'ܟܠ_ܐܓܪ̈ܬܐ' ),
- 'Log' => array( 'ܣܓܠ̈ܐ' ),
- 'Mycontributions' => array( 'ܫܘܬܦܘܝܬ̈ܝ' ),
- 'Search' => array( 'ܒܨܝܐ' ),
- 'Filepath' => array( 'ܫܒܝܠܐ_ܕܦܐܬܐ' ),
- 'Blankpage' => array( 'ܦܐܬܐ_ܣܦܝܩܬܐ' ),
- 'DeletedContributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ_ܫܝܦܬ̈ܐ' ),
);
$magicWords = array(
@@ -92,13 +95,6 @@ $magicWords = array(
'url_wiki' => array( '0', 'ܘܝܩܝ', 'WIKI' ),
);
-$rtl = true;
-
-$defaultUserOptionOverrides = array(
- # Swap sidebar to right side by default
- 'quickbar' => 2,
-);
-
$messages = array(
# User preference toggles
'tog-underline' => 'ܪܫܘܡ ܣܪܛܐ ܬܚܝܬ ܐܣܘܪܐ:',
@@ -232,7 +228,7 @@ $messages = array(
'searcharticle' => 'ܙܠ',
'history' => 'ܬܫܥܝܬܐ ܕܦܐܬܐ',
'history_short' => 'ܬܫܥܝܬܐ',
-'info_short' => 'ܝܕ̈ܥܬܐ',
+'updatedmarker' => 'ܐܬܚܕܬ ܗܐ ܡܢ ܬܦܩܬܝ ܐܚܪܝܬܐ',
'printableversion' => 'ܨܚܚܐ ܡܬܛܒܥܢܐ',
'permalink' => 'ܐܣܘܪܐ ܦܝܘܫܐ',
'print' => 'ܛܒܘܥ',
@@ -243,6 +239,7 @@ $messages = array(
'delete' => 'ܫܘܦ',
'deletethispage' => 'ܫܘܦ ܦܐܬܐ ܗܕܐ',
'undelete_short' => 'ܠܐ ܫܘܦ {{PLURAL:$1|ܚܕ ܫܘܚܠܦܐ|$1 ܫܘܚܠܦ̈ܐ}}',
+'viewdeleted_short' => 'ܚܙܝ {{PLURAL:$1|ܚܕ ܫܘܚܠܦܐ ܫܝܦܐ|$1 ܫܘܚܠܦ̈ܐ ܫܝܦ̈ܐ}}',
'protect' => 'ܢܛܘܪ',
'protect_change' => 'ܫܚܠܦ',
'protectthispage' => 'ܢܛܘܪ ܗܕܐ ܦܐܬܐ',
@@ -275,6 +272,11 @@ $messages = array(
'jumpto' => 'ܫܘܪ ܠ:',
'jumptonavigation' => 'ܐܠܦܪܘܬܐ',
'jumptosearch' => 'ܒܨܝܐ',
+'view-pool-error' => 'ܬܘܝܚܐ، ܚܕܡ̈ܐ ܗܘܐ ܓܗ̈ܝܐ ܗܫܐܝܬ
+ܣܓܝ ܡܦܠܚܢ̈ܐ ܩܫܕܘܪܐ ܠܡܛܐ ܠܗܢܐ ܦܐܬܐ
+ܦܝܣܐ ܡܢܟ ܣܟܝ ܩܠܝܠ ܡܢ ܩܕܡ ܕܓܪܒܬ ܠܡܛܝܐ ܠܐܗܐ ܦܐܬܐ ܬܢܝܢܘܬ.
+
+$1',
'pool-errorunknown' => 'ܦܘܕܐ ܠܐ ܝܕܝܥܐ',
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -345,6 +347,13 @@ $messages = array(
'badtitle' => 'ܟܘܢܝܐ ܠܐ ܛܒܐ',
'viewsource' => 'ܚܙܝ ܡܒܘܥܐ',
'viewsourcefor' => 'ܕ $1',
+'actionthrottled' => 'ܠܐ ܘܪܕ ܠܡܥܒܕ ܝܬܝܪ ܡܢ ܐܗܐ ܥܒܕܐ',
+'viewsourcetext' => 'ܡܨܐ ܐܢܬ ܠܚܙܝܐ ܘܢܣܚܐ ܠܡܒܘܥ̈ܐ ܕܐܗܐ ܦܐܬܐ:',
+'protectedinterface' => 'ܐܗܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ, ܘܐܝܠܗ ܢܛܪܬܐ ܠܡܘܢܥܐ ܚܪܒܐ.',
+'editinginterface' => "''ܙܘܗܪܐ:''' ܐܢܬ ܥܒܕܬ ܫܚܠܦܬܐ ܒܦܐܬܐ ܡܬܦܠܚܬ ܠܡܘܬܘܪ̈ܐ ܦܐܬܘܬ̈ܐ ܟܬܝܒ̈ܐ ܠܚܘܪܙܐ.
+ܟܠ ܫܘܚܠܦܐ ܒܐܗܐ ܦܐܬܐ ܒܕ ܥܒܕ ܟܪ ܥܠ ܡܚܙܝܬܐ ܦܐܬܐ ܕܡܦܠܚܢܐ ܠܡܦܠܚܢ̈ܐ ܐܚܪ̈ܝܢܐ.
+ܠܬܘܪ̈ܓܡܐ، ܡܦܠܚ ܬܪܡܝܬܐ ܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
+'sqlhidden' => '(ܒܘܬܬܐ SQL ܛܫܝܐ)',
'namespaceprotected' => "ܠܝܬ ܠܟ ܦܣܣܐ ܠܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܚܩܠܐ ܕ'''$1'''.",
# Login and logout pages
@@ -373,12 +382,14 @@ $messages = array(
'createaccount' => 'ܒܪܝ ܚܘܫܒܢܐ',
'gotaccount' => "ܐܝܬ ܠܟ ܚܘܫܒܢܐ؟ '''$1'''.",
'gotaccountlink' => 'ܥܘܠ',
+'userlogin-resetlink' => 'ܐܬܢܫܝܬ ܝܕ̈ܥܬܐ ܕܥܠܠܐ؟',
'createaccountmail' => 'ܒܝܕ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
'createaccountreason' => 'ܥܠܬܐ',
'badretype' => 'ܡܠܬܐ ܕܥܠܠܐ ܟܬܒܬ ܐܢܬ ܠܐ ܐܘܝܢܬܐ.',
'userexists' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܕܐܥܠܬ ܫܩܝܠܐ ܐܝܬܘܗܝ.
ܫܦܝܪܐܝܬ ܓܒܝ ܫܡܐ ܐܚܪܢܐ.',
'loginerror' => 'ܦܘܕܐ ܒܥܠܠܐ',
+'createaccounterror' => 'ܠܐ ܡܫܟܚ ܠܒܪܝܐ ܚܘܫܒܢܐ: $1',
'noname' => 'ܠܐ ܦܪܫ ܐܢܬ ܫܡܐ ܕܡܦܠܚܢܐ ܬܪܝܨܐ',
'loginsuccesstitle' => 'ܥܠܠܐ ܓܡܪ',
'loginsuccess' => "'''ܗܫܐ ܥܠܝܠܐ ܐܢܬ ܒ{{SITENAME}} ܒܫܡ \"\$1\".'''",
@@ -393,7 +404,7 @@ $messages = array(
'createaccount-title' => 'ܒܪܝܐ ܕܚܘܫܒܢܐ ܒ {{SITENAME}}',
'loginlanguagelabel' => 'ܠܫܢܐ: $1',
-# Password reset dialog
+# Change password dialog
'resetpass' => 'ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ',
'resetpass_header' => 'ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ ܕܚܘܫܒܢܐ',
'oldpassword' => 'ܡܠܬܐ ܕܥܠܠܐ ܥܬܝܩܬܐ:',
@@ -403,6 +414,9 @@ $messages = array(
'resetpass-submit-cancel' => 'ܒܛܘܠ',
'resetpass-temp-password' => 'ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܢܝܬܐ:',
+# Special:PasswordReset
+'passwordreset-username' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
+
# Edit page toolbar
'bold_sample' => 'ܟܬܒܬܐ ܥܒܝܬܐ',
'bold_tip' => 'ܟܬܒܬܐ ܥܒܝܬܐ',
@@ -572,7 +586,7 @@ $messages = array(
'searchprofile-images' => 'ܡܝܕ̈ܝܐ ܣܓܝܐ̈ܐ (Multimedia)',
'searchprofile-everything' => 'ܟܠ ܡܕܡ',
'searchprofile-advanced' => 'ܡܬܩܕܡܢܐ',
-'searchprofile-articles-tooltip' => 'Search in $1',
+'searchprofile-articles-tooltip' => '',
'searchprofile-project-tooltip' => '',
'search-result-size' => '$1 ({{PLURAL:$2|1 ܡܠܬܐ|$2 ܡܠ̈ܐ}})',
'search-redirect' => '(ܨܝܒ $1)',
@@ -611,7 +625,6 @@ $messages = array(
'changepassword' => 'ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ',
'prefs-skin' => 'ܓܠܕܐ',
'skin-preview' => 'ܚܝܪܐ ܩܕܡܝܐ',
-'prefs-math' => 'ܡܬܡܐܛܝܩܘܬܐ',
'datedefault' => 'ܠܐ ܓܒܝܬܐ',
'prefs-datetime' => 'ܣܝܩܘܡܐ ܘܙܒܢܐ',
'prefs-personal' => 'ܦܘܓܪܦܐ ܕܡܦܠܚܢܐ',
@@ -861,7 +874,6 @@ $1',
'imagelinks' => 'ܚܫܚܬܐ ܕܠܦܦܐ',
'linkstoimage' => '{{PLURAL:$1|ܦܐܬܐ ܗܕܐ ܐܣܪ|$1 ܦܐܬܬ̈ܐ ܗܠܝܢ ܐܣܪܝܢ}} ܥܡ ܗܢܐ ܠܦܦܐ:',
'nolinkstoimage' => 'ܠܝܬ ܦܐܬܐ ܕܐܣܪ ܠܗܢܐ ܠܦܦܐ.',
-'redirectstofile' => '{{PLURAL:$1|ܠܦܦܐ|$1 ܠܦܦ̈ܐ}} ܕܐܬܐ ܐܣܪ ܠܗܢܐ ܠܦܦܐ:',
'uploadnewversion-linktext' => 'ܐܣܩ ܨܚܚܐ ܚܕܬܐ ܡܢ ܗܢܐ ܠܦܦܐ',
'shared-repo-from' => 'ܡܢ $1',
@@ -1005,7 +1017,7 @@ $1',
'sp-deletedcontributions-contribs' => 'ܫܘܬܦܘܝܬ̈ܐ',
# Special:LinkSearch
-'linksearch' => 'ܐܣܘܪܐ ܒܪܝܐ',
+'linksearch' => 'ܐܣܘܪ̈ܐ ܒܪ̈ܝܐ ܒܨܝܐ',
'linksearch-ns' => 'ܚܩܠܐ:',
'linksearch-ok' => 'ܒܨܝ',
@@ -1068,8 +1080,6 @@ $1',
'watchlistfor2' => 'ܠ $1 $2',
'nowatchlist' => 'ܠܝܬ ܠܟ ܡܕܡ ܒܪ̈ܗܝܬܐ ܕܝܠܟ',
'watchnologin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
-'addedwatch' => 'ܐܘܣܦ ܠܪ̈ܗܝܬܐ',
-'removedwatch' => 'ܠܚܝܬ ܡܢ ܪ̈ܗܝܬܟ',
'removedwatchtext' => 'ܦܐܬܐ "[[:$1]]" ܐܫܬܩܠܬ ܡܢ [[Special:Watchlist|ܪ̈ܗܝܬܟ]].',
'watch' => 'ܪܗܝ',
'watchthispage' => 'ܪܗܝ ܗܕܐ ܦܐܬܐ',
@@ -1222,11 +1232,9 @@ $1',
'blockip' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
'blockip-title' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
'blockip-legend' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
-'ipaddress' => 'ܐܝ ܦܝ (IP):',
'ipadressorusername' => 'ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:',
'ipbreason' => 'ܥܠܬܐ:',
'ipbreasonotherlist' => 'ܥܠܬܐ ܐܚܪܬܐ',
-'ipbanononly' => 'ܚܪܘܡ ܡܦܠܚܢ̈ܐ ܠܐ ܝܕ̈ܝܥܐ ܒܠܚܘܕ',
'ipbsubmit' => 'ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ',
'ipbother' => 'ܥܕܢܐ ܐܚܪܬܐ',
'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',
@@ -1244,12 +1252,8 @@ $1',
'unblocked' => 'ܐܫܬܩܠ ܚܪܡܐ ܡܢ [[User:$1|$1]]',
'ipblocklist' => 'ܡܦܠܚܢ̈ܐ ܡܚܪ̈ܡܐ',
'ipblocklist-legend' => 'ܐܫܟܚ ܡܦܠܚܢܐ ܡܚܪܡܐ',
-'ipblocklist-username' => 'ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:',
-'ipblocklist-sh-userblocks' => '$1 ܚܪ̈ܡܐ ܕܚܘܫܒܢܐ',
-'ipblocklist-sh-tempblocks' => '$1 ܚܪ̈ܡܐ ܙܒܢܢܝ̈ܐ',
'ipblocklist-submit' => 'ܒܨܝ',
'ipblocklist-localblock' => 'ܚܪܡܐ ܕܘܟܬܢܝܐ',
-'blocklistline' => '$1, $2 ܚܪܡ $3 ($4)',
'infiniteblock' => 'ܕܠܐ ܣܟ',
'anononlyblock' => 'ܠܐ ܝܕ̈ܝܥܐ ܒܠܚܘܕ',
'ipblocklist-empty' => 'ܣܓܠܐ ܕܚܪܡܐ ܣܦܝܩܐ.',
@@ -1263,8 +1267,7 @@ $1',
'block-log-flags-anononly' => 'ܡܦܠܚܢ̈ܐ ܠܐ ܝܕ̈ܝܥܐ ܒܠܚܘܕ',
'block-log-flags-hiddenname' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܛܘܫܝܐ',
'ipb_already_blocked' => '"$1" ܡܚܪܡܐ ܗܘ ܡܢ ܟܕܘ',
-'ipb-needreblock' => '==ܡܚܪܡܐ ܡܢ ܟܕܘ==
-"$1" ܡܚܪܡܐ ܗܘ ܡܢ ܟܕܘ
+'ipb-needreblock' => '"$1" ܡܚܪܡܐ ܗܘ ܡܢ ܟܕܘ
Do you want to change the settings?',
'blockme' => 'ܚܪܘܡ ܠܝ',
'proxyblocksuccess' => 'ܒܪܐ',
@@ -1338,17 +1341,6 @@ Do you want to change the settings?',
'anonusers' => '{{SITENAME}} {{PLURAL:$2|ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ|ܡܦܠܚܢ̈ܐ ܠܐ ܝܕ̈ܝܥܐ}} $1',
'creditspage' => 'ܙܕ̈ܩܐ ܕܦܐܬܐ',
-# Info page
-'infosubtitle' => 'ܝܕ̈ܥܬܐ ܕܦܐܬܐ',
-'numedits' => 'ܡܢܝܢܐ ܕܫܘܚܠܦ̈ܐ (ܦܐܬܐ): $1',
-'numtalkedits' => 'ܡܢܝܢܐ ܕܫܘܚܠܦ̈ܐ (ܦܐܬܐ ܕܕܘܪܫܐ): $1',
-'numwatchers' => 'ܡܢܝܢܐ ܕܪ̈ܗܝܐ: $1',
-'numauthors' => 'ܡܢܝܢܐ ܕܡܫܚܠܦܢ̈ܐ (ܦܐܬܐ): $1',
-'numtalkauthors' => 'ܡܢܝܢܐ ܕܡܫܚܠܦܢ̈ܐ (ܦܐܬܐ ܕܕܘܪܫܐ): $1',
-
-# Math errors
-'math_unknown_error' => 'ܦܘܕܐ ܠܐ ܝܕܝܥܐ',
-
# Patrol log
'patrol-log-auto' => '(ܝܬܐܝܬ)',
'patrol-log-diff' => 'ܬܢܝܬܐ $1',
@@ -1386,7 +1378,6 @@ $1',
'exif-imagelength' => 'ܐܘܪܟܐ',
'exif-xresolution' => 'ܢܩܕܘܬܐ ܐܘܦܩܝܬܐ',
'exif-yresolution' => 'ܢܩܕܘܬܐ ܥܡܘܕܝܬܐ',
-'exif-resolutionunit' => 'ܚܕܝܘܬܐ ܕ X ܘ Y ܕܢܩܕܘܬܐ',
'exif-imagedescription' => 'ܟܘܢܝܐ ܕܨܘܪܬܐ',
'exif-artist' => 'ܣܝܘܡܐ',
'exif-exposuretime-format' => '$1 ܪܦܦܐ ($2)',
@@ -1395,6 +1386,7 @@ $1',
'exif-gpstrack' => 'ܨܘܒܐ ܕܫܘܢܝܐ',
'exif-gpsimgdirectionref' => 'ܓܒܝܬܐ ܕܨܘܒܐ ܕܫܘܢܝܐ',
'exif-gpsimgdirection' => 'ܨܘܒܐ ܕܨܘܪܬܐ',
+'exif-languagecode' => 'ܠܫܢܐ',
'exif-unknowndate' => 'ܣܝܩܘܡܐ ܠܐ ܝܕܝܥܐ',
@@ -1436,17 +1428,18 @@ $1',
'exif-gpsspeed-m' => 'ܡܝܠܐ ܒܫܥܬܐ',
'exif-gpsspeed-n' => 'ܩܛܪ̈ܐ',
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-m' => 'ܡܝܠ̈ܐ',
+
# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
'exif-gpsdirection-t' => 'ܨܘܒܐ ܬܪܝܨܐ',
'exif-gpsdirection-m' => 'ܨܘܒܐ ܡܓܢܛܝܣܝܐ',
# 'all' in various places, this might be different for inflected languages
-'recentchangesall' => 'ܟܠ',
-'imagelistall' => 'ܟܠ',
-'watchlistall2' => 'ܟܠ',
-'namespacesall' => 'ܟܠ',
-'monthsall' => 'ܟܠ',
-'limitall' => 'ܟܠ',
+'watchlistall2' => 'ܟܠ',
+'namespacesall' => 'ܟܠ',
+'monthsall' => 'ܟܠ',
+'limitall' => 'ܟܠ',
# E-mail address confirmation
'confirmemail' => 'ܚܬܬ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
diff --git a/languages/messages/MessagesArn.php b/languages/messages/MessagesArn.php
index e6257b38..90c25db9 100644
--- a/languages/messages/MessagesArn.php
+++ b/languages/messages/MessagesArn.php
@@ -8,6 +8,7 @@
* @file
*
* @author Clerc
+ * @author Fiestoforo
* @author Kaniw
* @author Lin linao
* @author Poquil
@@ -78,8 +79,10 @@ $messages = array(
'dec' => 'konlu disiempüre küyeṉ mew',
# Categories related messages
+'category-empty' => "''Tüfachi trokiñ fewla nielay wülngiñ kam fill dungu no rume.''",
'listingcontinuesabbrev' => 'ramt.',
+'about' => 'Ñi dungu',
'moredotdotdot' => 'Doy...',
'mypage' => 'tañi nütramkawe',
'mytalk' => 'Tañi nütramkawe',
@@ -96,12 +99,14 @@ $messages = array(
'faqpage' => 'Project:FAQ',
# Vector skin
-'vector-action-delete' => 'Ñamümün',
-'vector-view-create' => 'Zewmape',
-'vector-view-edit' => 'Pepikan',
-'vector-view-history' => 'Pegelpe rupañmael',
-'vector-view-view' => 'Chillkatun',
-
+'vector-action-delete' => 'Ñamümün',
+'vector-action-protect' => 'Kuñiwtun',
+'vector-view-create' => 'Zewmape',
+'vector-view-edit' => 'Pepikan',
+'vector-view-history' => 'Pegelpe rupañmael',
+'vector-view-view' => 'Chillkatun',
+
+'errorpagetitle' => 'Welulkan',
'returnto' => 'Amutun $1 püle.',
'tagline' => '{{SITENAME}} mew',
'help' => 'Kejuaqen',
@@ -121,6 +126,7 @@ $messages = array(
'delete' => 'Ñamümün',
'deletethispage' => 'Ñamümün tüfachi pakina',
'protect' => 'Elulan ñi wiriael',
+'protect_change' => 'kalekünun',
'unprotect' => 'Elun ñi wiriael',
'newpage' => 'We Pakina',
'talkpage' => 'Nütramkafinge tüfachi pakina',
@@ -145,6 +151,10 @@ $messages = array(
'jumptosearch' => 'kintupe',
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
+'aboutsite' => '{{SITENAME}} ñi dungu',
+'aboutpage' => 'Project:Dungu',
+'currentevents' => 'Fantepu chemkün',
+'disclaimers' => 'Tukulzugun ñi pin ley',
'edithelp' => 'Kellü wirin',
'edithelppage' => 'Help:Chum wiringekey pakina',
'helppage' => 'Help:Kellu',
@@ -152,6 +162,7 @@ $messages = array(
'mainpage-description' => 'Ñizol Wvbgiñ',